devchain-cli 0.1.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 (380) hide show
  1. package/LICENSE +53 -0
  2. package/README.md +74 -0
  3. package/dist/cli.js +782 -0
  4. package/dist/drizzle/0000_flippant_the_spike.sql +220 -0
  5. package/dist/drizzle/0001_shiny_snowbird.sql +7 -0
  6. package/dist/drizzle/0002_high_zemo.sql +19 -0
  7. package/dist/drizzle/0003_noisy_scarecrow.sql +21 -0
  8. package/dist/drizzle/0004_mcp_metadata.sql +5 -0
  9. package/dist/drizzle/0005_agent_profile_instructions.sql +3 -0
  10. package/dist/drizzle/0006_wakeful_marvex.sql +15 -0
  11. package/dist/drizzle/0007_agent_profile_options.sql +7 -0
  12. package/dist/drizzle/0008_event_logs.sql +31 -0
  13. package/dist/drizzle/0009_chat_tables.sql +42 -0
  14. package/dist/drizzle/0010_amazing_the_initiative.sql +11 -0
  15. package/dist/drizzle/0011_curved_payback.sql +16 -0
  16. package/dist/drizzle/0012_terminal_activity.sql +8 -0
  17. package/dist/drizzle/0013_chat_activities.sql +18 -0
  18. package/dist/drizzle/0014_chat_activities_start_msg_nullable.sql +5 -0
  19. package/dist/drizzle/0015_projects_is_template.sql +4 -0
  20. package/dist/drizzle/0016_agent_profiles_project_scoped.sql +4 -0
  21. package/dist/drizzle/meta/0000_snapshot.json +1388 -0
  22. package/dist/drizzle/meta/0001_snapshot.json +1434 -0
  23. package/dist/drizzle/meta/0002_snapshot.json +1434 -0
  24. package/dist/drizzle/meta/0003_snapshot.json +1583 -0
  25. package/dist/drizzle/meta/0004_snapshot.json +1605 -0
  26. package/dist/drizzle/meta/0005_snapshot.json +1612 -0
  27. package/dist/drizzle/meta/0006_snapshot.json +1742 -0
  28. package/dist/drizzle/meta/0007_snapshot.json +1742 -0
  29. package/dist/drizzle/meta/0008_snapshot.json +1897 -0
  30. package/dist/drizzle/meta/0009_snapshot.json +2202 -0
  31. package/dist/drizzle/meta/0010_snapshot.json +2283 -0
  32. package/dist/drizzle/meta/0011_snapshot.json +2407 -0
  33. package/dist/drizzle/meta/_journal.json +125 -0
  34. package/dist/lib/interactive-cli.js +279 -0
  35. package/dist/server/app.module.d.ts +4 -0
  36. package/dist/server/app.module.js +64 -0
  37. package/dist/server/app.module.js.map +1 -0
  38. package/dist/server/common/config/env.config.d.ts +23 -0
  39. package/dist/server/common/config/env.config.js +60 -0
  40. package/dist/server/common/config/env.config.js.map +1 -0
  41. package/dist/server/common/config/feature-flags.d.ts +5 -0
  42. package/dist/server/common/config/feature-flags.js +8 -0
  43. package/dist/server/common/config/feature-flags.js.map +1 -0
  44. package/dist/server/common/errors/error-types.d.ts +30 -0
  45. package/dist/server/common/errors/error-types.js +63 -0
  46. package/dist/server/common/errors/error-types.js.map +1 -0
  47. package/dist/server/common/filters/http-exception.filter.d.ts +4 -0
  48. package/dist/server/common/filters/http-exception.filter.js +72 -0
  49. package/dist/server/common/filters/http-exception.filter.js.map +1 -0
  50. package/dist/server/common/filters/ws-exception.filter.d.ts +5 -0
  51. package/dist/server/common/filters/ws-exception.filter.js +102 -0
  52. package/dist/server/common/filters/ws-exception.filter.js.map +1 -0
  53. package/dist/server/common/logging/logger.d.ts +3 -0
  54. package/dist/server/common/logging/logger.js +29 -0
  55. package/dist/server/common/logging/logger.js.map +1 -0
  56. package/dist/server/common/middleware/request-id.middleware.d.ts +12 -0
  57. package/dist/server/common/middleware/request-id.middleware.js +24 -0
  58. package/dist/server/common/middleware/request-id.middleware.js.map +1 -0
  59. package/dist/server/main.d.ts +1 -0
  60. package/dist/server/main.js +94 -0
  61. package/dist/server/main.js.map +1 -0
  62. package/dist/server/modules/agents/agents.module.d.ts +2 -0
  63. package/dist/server/modules/agents/agents.module.js +22 -0
  64. package/dist/server/modules/agents/agents.module.js.map +1 -0
  65. package/dist/server/modules/agents/controllers/agents.controller.d.ts +12 -0
  66. package/dist/server/modules/agents/controllers/agents.controller.js +115 -0
  67. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -0
  68. package/dist/server/modules/chat/chat.module.d.ts +2 -0
  69. package/dist/server/modules/chat/chat.module.js +28 -0
  70. package/dist/server/modules/chat/chat.module.js.map +1 -0
  71. package/dist/server/modules/chat/controllers/chat-settings.controller.d.ts +8 -0
  72. package/dist/server/modules/chat/controllers/chat-settings.controller.js +66 -0
  73. package/dist/server/modules/chat/controllers/chat-settings.controller.js.map +1 -0
  74. package/dist/server/modules/chat/controllers/chat.controller.d.ts +15 -0
  75. package/dist/server/modules/chat/controllers/chat.controller.js +152 -0
  76. package/dist/server/modules/chat/controllers/chat.controller.js.map +1 -0
  77. package/dist/server/modules/chat/dtos/chat-settings.dto.d.ts +31 -0
  78. package/dist/server/modules/chat/dtos/chat-settings.dto.js +17 -0
  79. package/dist/server/modules/chat/dtos/chat-settings.dto.js.map +1 -0
  80. package/dist/server/modules/chat/dtos/chat.dto.d.ts +309 -0
  81. package/dist/server/modules/chat/dtos/chat.dto.js +80 -0
  82. package/dist/server/modules/chat/dtos/chat.dto.js.map +1 -0
  83. package/dist/server/modules/chat/services/chat-settings.service.d.ts +12 -0
  84. package/dist/server/modules/chat/services/chat-settings.service.js +120 -0
  85. package/dist/server/modules/chat/services/chat-settings.service.js.map +1 -0
  86. package/dist/server/modules/chat/services/chat.service.d.ts +45 -0
  87. package/dist/server/modules/chat/services/chat.service.js +730 -0
  88. package/dist/server/modules/chat/services/chat.service.js.map +1 -0
  89. package/dist/server/modules/chat/services/invite-template.util.d.ts +17 -0
  90. package/dist/server/modules/chat/services/invite-template.util.js +70 -0
  91. package/dist/server/modules/chat/services/invite-template.util.js.map +1 -0
  92. package/dist/server/modules/core/controllers/health.controller.d.ts +7 -0
  93. package/dist/server/modules/core/controllers/health.controller.js +39 -0
  94. package/dist/server/modules/core/controllers/health.controller.js.map +1 -0
  95. package/dist/server/modules/core/controllers/preflight.controller.d.ts +10 -0
  96. package/dist/server/modules/core/controllers/preflight.controller.js +58 -0
  97. package/dist/server/modules/core/controllers/preflight.controller.js.map +1 -0
  98. package/dist/server/modules/core/core.module.d.ts +2 -0
  99. package/dist/server/modules/core/core.module.js +27 -0
  100. package/dist/server/modules/core/core.module.js.map +1 -0
  101. package/dist/server/modules/core/services/preflight.service.d.ts +44 -0
  102. package/dist/server/modules/core/services/preflight.service.js +400 -0
  103. package/dist/server/modules/core/services/preflight.service.js.map +1 -0
  104. package/dist/server/modules/documents/controllers/documents.controller.d.ts +12 -0
  105. package/dist/server/modules/documents/controllers/documents.controller.js +173 -0
  106. package/dist/server/modules/documents/controllers/documents.controller.js.map +1 -0
  107. package/dist/server/modules/documents/documents.module.d.ts +2 -0
  108. package/dist/server/modules/documents/documents.module.js +22 -0
  109. package/dist/server/modules/documents/documents.module.js.map +1 -0
  110. package/dist/server/modules/epics/controllers/epic-comments.controller.d.ts +10 -0
  111. package/dist/server/modules/epics/controllers/epic-comments.controller.js +94 -0
  112. package/dist/server/modules/epics/controllers/epic-comments.controller.js.map +1 -0
  113. package/dist/server/modules/epics/controllers/epics.controller.d.ts +16 -0
  114. package/dist/server/modules/epics/controllers/epics.controller.js +201 -0
  115. package/dist/server/modules/epics/controllers/epics.controller.js.map +1 -0
  116. package/dist/server/modules/epics/epics.module.d.ts +2 -0
  117. package/dist/server/modules/epics/epics.module.js +28 -0
  118. package/dist/server/modules/epics/epics.module.js.map +1 -0
  119. package/dist/server/modules/epics/services/epics.service.d.ts +34 -0
  120. package/dist/server/modules/epics/services/epics.service.js +251 -0
  121. package/dist/server/modules/epics/services/epics.service.js.map +1 -0
  122. package/dist/server/modules/events/catalog/epic.assigned.d.ts +36 -0
  123. package/dist/server/modules/events/catalog/epic.assigned.js +19 -0
  124. package/dist/server/modules/events/catalog/epic.assigned.js.map +1 -0
  125. package/dist/server/modules/events/catalog/index.d.ts +71 -0
  126. package/dist/server/modules/events/catalog/index.js +15 -0
  127. package/dist/server/modules/events/catalog/index.js.map +1 -0
  128. package/dist/server/modules/events/catalog/session.crashed.d.ts +15 -0
  129. package/dist/server/modules/events/catalog/session.crashed.js +12 -0
  130. package/dist/server/modules/events/catalog/session.crashed.js.map +1 -0
  131. package/dist/server/modules/events/catalog/session.started.d.ts +21 -0
  132. package/dist/server/modules/events/catalog/session.started.js +14 -0
  133. package/dist/server/modules/events/catalog/session.started.js.map +1 -0
  134. package/dist/server/modules/events/catalog/session.stopped.d.ts +12 -0
  135. package/dist/server/modules/events/catalog/session.stopped.js +11 -0
  136. package/dist/server/modules/events/catalog/session.stopped.js.map +1 -0
  137. package/dist/server/modules/events/controllers/event-log.controller.d.ts +7 -0
  138. package/dist/server/modules/events/controllers/event-log.controller.js +75 -0
  139. package/dist/server/modules/events/controllers/event-log.controller.js.map +1 -0
  140. package/dist/server/modules/events/dtos/event-log.dto.d.ts +33 -0
  141. package/dist/server/modules/events/dtos/event-log.dto.js +3 -0
  142. package/dist/server/modules/events/dtos/event-log.dto.js.map +1 -0
  143. package/dist/server/modules/events/events.module.d.ts +2 -0
  144. package/dist/server/modules/events/events.module.js +45 -0
  145. package/dist/server/modules/events/events.module.js.map +1 -0
  146. package/dist/server/modules/events/index.d.ts +6 -0
  147. package/dist/server/modules/events/index.js +23 -0
  148. package/dist/server/modules/events/index.js.map +1 -0
  149. package/dist/server/modules/events/services/event-log.service.d.ts +38 -0
  150. package/dist/server/modules/events/services/event-log.service.js +272 -0
  151. package/dist/server/modules/events/services/event-log.service.js.map +1 -0
  152. package/dist/server/modules/events/services/events-stream.service.d.ts +23 -0
  153. package/dist/server/modules/events/services/events-stream.service.js +45 -0
  154. package/dist/server/modules/events/services/events-stream.service.js.map +1 -0
  155. package/dist/server/modules/events/services/events.service.d.ts +14 -0
  156. package/dist/server/modules/events/services/events.service.js +65 -0
  157. package/dist/server/modules/events/services/events.service.js.map +1 -0
  158. package/dist/server/modules/events/subscribers/chat-message-broadcaster.subscriber.d.ts +20 -0
  159. package/dist/server/modules/events/subscribers/chat-message-broadcaster.subscriber.js +47 -0
  160. package/dist/server/modules/events/subscribers/chat-message-broadcaster.subscriber.js.map +1 -0
  161. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.d.ts +24 -0
  162. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.js +81 -0
  163. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.js.map +1 -0
  164. package/dist/server/modules/events/subscribers/epic-assignment-notifier.subscriber.d.ts +25 -0
  165. package/dist/server/modules/events/subscribers/epic-assignment-notifier.subscriber.js +223 -0
  166. package/dist/server/modules/events/subscribers/epic-assignment-notifier.subscriber.js.map +1 -0
  167. package/dist/server/modules/events/subscribers/index.d.ts +2 -0
  168. package/dist/server/modules/events/subscribers/index.js +12 -0
  169. package/dist/server/modules/events/subscribers/index.js.map +1 -0
  170. package/dist/server/modules/fs/fs.controller.d.ts +18 -0
  171. package/dist/server/modules/fs/fs.controller.js +56 -0
  172. package/dist/server/modules/fs/fs.controller.js.map +1 -0
  173. package/dist/server/modules/fs/fs.module.d.ts +2 -0
  174. package/dist/server/modules/fs/fs.module.js +20 -0
  175. package/dist/server/modules/fs/fs.module.js.map +1 -0
  176. package/dist/server/modules/mcp/constants.d.ts +9 -0
  177. package/dist/server/modules/mcp/constants.js +38 -0
  178. package/dist/server/modules/mcp/constants.js.map +1 -0
  179. package/dist/server/modules/mcp/controllers/mcp-http.controller.d.ts +16 -0
  180. package/dist/server/modules/mcp/controllers/mcp-http.controller.js +790 -0
  181. package/dist/server/modules/mcp/controllers/mcp-http.controller.js.map +1 -0
  182. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.d.ts +12 -0
  183. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.js +676 -0
  184. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.js.map +1 -0
  185. package/dist/server/modules/mcp/controllers/mcp-test.controller.d.ts +50 -0
  186. package/dist/server/modules/mcp/controllers/mcp-test.controller.js +115 -0
  187. package/dist/server/modules/mcp/controllers/mcp-test.controller.js.map +1 -0
  188. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +1094 -0
  189. package/dist/server/modules/mcp/dtos/mcp.dto.js +257 -0
  190. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -0
  191. package/dist/server/modules/mcp/gateways/mcp.gateway.d.ts +21 -0
  192. package/dist/server/modules/mcp/gateways/mcp.gateway.js +141 -0
  193. package/dist/server/modules/mcp/gateways/mcp.gateway.js.map +1 -0
  194. package/dist/server/modules/mcp/mcp.module.d.ts +2 -0
  195. package/dist/server/modules/mcp/mcp.module.js +83 -0
  196. package/dist/server/modules/mcp/mcp.module.js.map +1 -0
  197. package/dist/server/modules/mcp/services/instructions-resolver.d.ts +24 -0
  198. package/dist/server/modules/mcp/services/instructions-resolver.js +203 -0
  199. package/dist/server/modules/mcp/services/instructions-resolver.js.map +1 -0
  200. package/dist/server/modules/mcp/services/mcp-provider-registration.service.d.ts +52 -0
  201. package/dist/server/modules/mcp/services/mcp-provider-registration.service.js +327 -0
  202. package/dist/server/modules/mcp/services/mcp-provider-registration.service.js.map +1 -0
  203. package/dist/server/modules/mcp/services/mcp-server.service.d.ts +6 -0
  204. package/dist/server/modules/mcp/services/mcp-server.service.js +26 -0
  205. package/dist/server/modules/mcp/services/mcp-server.service.js.map +1 -0
  206. package/dist/server/modules/mcp/services/mcp.service.d.ts +69 -0
  207. package/dist/server/modules/mcp/services/mcp.service.js +2056 -0
  208. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -0
  209. package/dist/server/modules/mcp/services/terminal-activity.service.d.ts +9 -0
  210. package/dist/server/modules/mcp/services/terminal-activity.service.js +51 -0
  211. package/dist/server/modules/mcp/services/terminal-activity.service.js.map +1 -0
  212. package/dist/server/modules/profiles/controllers/profiles.controller.d.ts +45 -0
  213. package/dist/server/modules/profiles/controllers/profiles.controller.js +188 -0
  214. package/dist/server/modules/profiles/controllers/profiles.controller.js.map +1 -0
  215. package/dist/server/modules/profiles/dto.d.ts +75 -0
  216. package/dist/server/modules/profiles/dto.js +24 -0
  217. package/dist/server/modules/profiles/dto.js.map +1 -0
  218. package/dist/server/modules/profiles/profiles.module.d.ts +2 -0
  219. package/dist/server/modules/profiles/profiles.module.js +22 -0
  220. package/dist/server/modules/profiles/profiles.module.js.map +1 -0
  221. package/dist/server/modules/projects/controllers/projects.controller.d.ts +131 -0
  222. package/dist/server/modules/projects/controllers/projects.controller.js +196 -0
  223. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -0
  224. package/dist/server/modules/projects/projects.module.d.ts +2 -0
  225. package/dist/server/modules/projects/projects.module.js +26 -0
  226. package/dist/server/modules/projects/projects.module.js.map +1 -0
  227. package/dist/server/modules/projects/services/projects.service.d.ts +138 -0
  228. package/dist/server/modules/projects/services/projects.service.js +564 -0
  229. package/dist/server/modules/projects/services/projects.service.js.map +1 -0
  230. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +11 -0
  231. package/dist/server/modules/prompts/controllers/prompts.controller.js +112 -0
  232. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -0
  233. package/dist/server/modules/prompts/prompts.module.d.ts +2 -0
  234. package/dist/server/modules/prompts/prompts.module.js +22 -0
  235. package/dist/server/modules/prompts/prompts.module.js.map +1 -0
  236. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +9 -0
  237. package/dist/server/modules/providers/adapters/claude.adapter.js +46 -0
  238. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -0
  239. package/dist/server/modules/providers/adapters/codex.adapter.d.ts +9 -0
  240. package/dist/server/modules/providers/adapters/codex.adapter.js +46 -0
  241. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -0
  242. package/dist/server/modules/providers/adapters/index.d.ts +4 -0
  243. package/dist/server/modules/providers/adapters/index.js +21 -0
  244. package/dist/server/modules/providers/adapters/index.js.map +1 -0
  245. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +8 -0
  246. package/dist/server/modules/providers/adapters/provider-adapter.factory.js +42 -0
  247. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -0
  248. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +18 -0
  249. package/dist/server/modules/providers/adapters/provider-adapter.interface.js +3 -0
  250. package/dist/server/modules/providers/adapters/provider-adapter.interface.js.map +1 -0
  251. package/dist/server/modules/providers/controllers/providers.controller.d.ts +33 -0
  252. package/dist/server/modules/providers/controllers/providers.controller.js +399 -0
  253. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -0
  254. package/dist/server/modules/providers/providers.module.d.ts +2 -0
  255. package/dist/server/modules/providers/providers.module.js +27 -0
  256. package/dist/server/modules/providers/providers.module.js.map +1 -0
  257. package/dist/server/modules/records/controllers/records.controller.d.ts +13 -0
  258. package/dist/server/modules/records/controllers/records.controller.js +83 -0
  259. package/dist/server/modules/records/controllers/records.controller.js.map +1 -0
  260. package/dist/server/modules/records/records.module.d.ts +2 -0
  261. package/dist/server/modules/records/records.module.js +22 -0
  262. package/dist/server/modules/records/records.module.js.map +1 -0
  263. package/dist/server/modules/sessions/controllers/sessions.controller.d.ts +13 -0
  264. package/dist/server/modules/sessions/controllers/sessions.controller.js +93 -0
  265. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -0
  266. package/dist/server/modules/sessions/dtos/sessions.dto.d.ts +67 -0
  267. package/dist/server/modules/sessions/dtos/sessions.dto.js +18 -0
  268. package/dist/server/modules/sessions/dtos/sessions.dto.js.map +1 -0
  269. package/dist/server/modules/sessions/services/activity-tracker.service.d.ts +15 -0
  270. package/dist/server/modules/sessions/services/activity-tracker.service.js +103 -0
  271. package/dist/server/modules/sessions/services/activity-tracker.service.js.map +1 -0
  272. package/dist/server/modules/sessions/services/sessions.service.d.ts +49 -0
  273. package/dist/server/modules/sessions/services/sessions.service.js +511 -0
  274. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -0
  275. package/dist/server/modules/sessions/sessions.module.d.ts +2 -0
  276. package/dist/server/modules/sessions/sessions.module.js +36 -0
  277. package/dist/server/modules/sessions/sessions.module.js.map +1 -0
  278. package/dist/server/modules/sessions/utils/profile-options.d.ts +4 -0
  279. package/dist/server/modules/sessions/utils/profile-options.js +70 -0
  280. package/dist/server/modules/sessions/utils/profile-options.js.map +1 -0
  281. package/dist/server/modules/sessions/utils/template-renderer.d.ts +27 -0
  282. package/dist/server/modules/sessions/utils/template-renderer.js +38 -0
  283. package/dist/server/modules/sessions/utils/template-renderer.js.map +1 -0
  284. package/dist/server/modules/settings/controllers/settings.controller.d.ts +10 -0
  285. package/dist/server/modules/settings/controllers/settings.controller.js +77 -0
  286. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -0
  287. package/dist/server/modules/settings/dtos/settings.dto.d.ts +104 -0
  288. package/dist/server/modules/settings/dtos/settings.dto.js +44 -0
  289. package/dist/server/modules/settings/dtos/settings.dto.js.map +1 -0
  290. package/dist/server/modules/settings/services/settings.service.d.ts +20 -0
  291. package/dist/server/modules/settings/services/settings.service.js +310 -0
  292. package/dist/server/modules/settings/services/settings.service.js.map +1 -0
  293. package/dist/server/modules/settings/settings.module.d.ts +2 -0
  294. package/dist/server/modules/settings/settings.module.js +26 -0
  295. package/dist/server/modules/settings/settings.module.js.map +1 -0
  296. package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +17 -0
  297. package/dist/server/modules/statuses/controllers/statuses.controller.js +124 -0
  298. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -0
  299. package/dist/server/modules/statuses/statuses.module.d.ts +2 -0
  300. package/dist/server/modules/statuses/statuses.module.js +22 -0
  301. package/dist/server/modules/statuses/statuses.module.js.map +1 -0
  302. package/dist/server/modules/storage/db/db.config.d.ts +5 -0
  303. package/dist/server/modules/storage/db/db.config.js +19 -0
  304. package/dist/server/modules/storage/db/db.config.js.map +1 -0
  305. package/dist/server/modules/storage/db/db.module.d.ts +2 -0
  306. package/dist/server/modules/storage/db/db.module.js +22 -0
  307. package/dist/server/modules/storage/db/db.module.js.map +1 -0
  308. package/dist/server/modules/storage/db/db.provider.d.ts +3 -0
  309. package/dist/server/modules/storage/db/db.provider.js +61 -0
  310. package/dist/server/modules/storage/db/db.provider.js.map +1 -0
  311. package/dist/server/modules/storage/db/migrate.d.ts +1 -0
  312. package/dist/server/modules/storage/db/migrate.js +32 -0
  313. package/dist/server/modules/storage/db/migrate.js.map +1 -0
  314. package/dist/server/modules/storage/db/schema.d.ts +4058 -0
  315. package/dist/server/modules/storage/db/schema.js +393 -0
  316. package/dist/server/modules/storage/db/schema.js.map +1 -0
  317. package/dist/server/modules/storage/db/sqlite-raw.d.ts +3 -0
  318. package/dist/server/modules/storage/db/sqlite-raw.js +8 -0
  319. package/dist/server/modules/storage/db/sqlite-raw.js.map +1 -0
  320. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +193 -0
  321. package/dist/server/modules/storage/interfaces/storage.interface.js +5 -0
  322. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -0
  323. package/dist/server/modules/storage/local/local-storage.service.d.ts +105 -0
  324. package/dist/server/modules/storage/local/local-storage.service.js +2069 -0
  325. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -0
  326. package/dist/server/modules/storage/models/domain.models.d.ts +152 -0
  327. package/dist/server/modules/storage/models/domain.models.js +3 -0
  328. package/dist/server/modules/storage/models/domain.models.js.map +1 -0
  329. package/dist/server/modules/storage/storage.module.d.ts +2 -0
  330. package/dist/server/modules/storage/storage.module.js +29 -0
  331. package/dist/server/modules/storage/storage.module.js.map +1 -0
  332. package/dist/server/modules/terminal/dtos/ws-envelope.dto.d.ts +103 -0
  333. package/dist/server/modules/terminal/dtos/ws-envelope.dto.js +50 -0
  334. package/dist/server/modules/terminal/dtos/ws-envelope.dto.js.map +1 -0
  335. package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +83 -0
  336. package/dist/server/modules/terminal/gateways/terminal.gateway.js +622 -0
  337. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -0
  338. package/dist/server/modules/terminal/services/pty.service.d.ts +29 -0
  339. package/dist/server/modules/terminal/services/pty.service.js +236 -0
  340. package/dist/server/modules/terminal/services/pty.service.js.map +1 -0
  341. package/dist/server/modules/terminal/services/terminal-emulator.service.d.ts +40 -0
  342. package/dist/server/modules/terminal/services/terminal-emulator.service.js +356 -0
  343. package/dist/server/modules/terminal/services/terminal-emulator.service.js.map +1 -0
  344. package/dist/server/modules/terminal/services/terminal-seed.service.d.ts +29 -0
  345. package/dist/server/modules/terminal/services/terminal-seed.service.js +233 -0
  346. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -0
  347. package/dist/server/modules/terminal/services/terminal-send-coordinator.service.d.ts +5 -0
  348. package/dist/server/modules/terminal/services/terminal-send-coordinator.service.js +36 -0
  349. package/dist/server/modules/terminal/services/terminal-send-coordinator.service.js.map +1 -0
  350. package/dist/server/modules/terminal/services/terminal-stream.service.d.ts +17 -0
  351. package/dist/server/modules/terminal/services/terminal-stream.service.js +88 -0
  352. package/dist/server/modules/terminal/services/terminal-stream.service.js.map +1 -0
  353. package/dist/server/modules/terminal/services/tmux.service.d.ts +42 -0
  354. package/dist/server/modules/terminal/services/tmux.service.js +318 -0
  355. package/dist/server/modules/terminal/services/tmux.service.js.map +1 -0
  356. package/dist/server/modules/terminal/terminal.module.d.ts +2 -0
  357. package/dist/server/modules/terminal/terminal.module.js +47 -0
  358. package/dist/server/modules/terminal/terminal.module.js.map +1 -0
  359. package/dist/server/modules/terminal/utils/ansi-sanitizer.d.ts +8 -0
  360. package/dist/server/modules/terminal/utils/ansi-sanitizer.js +48 -0
  361. package/dist/server/modules/terminal/utils/ansi-sanitizer.js.map +1 -0
  362. package/dist/server/modules/terminal/utils/control-keys.d.ts +3 -0
  363. package/dist/server/modules/terminal/utils/control-keys.js +30 -0
  364. package/dist/server/modules/terminal/utils/control-keys.js.map +1 -0
  365. package/dist/server/modules/ui/ui.controller.d.ts +4 -0
  366. package/dist/server/modules/ui/ui.controller.js +55 -0
  367. package/dist/server/modules/ui/ui.controller.js.map +1 -0
  368. package/dist/server/modules/ui/ui.module.d.ts +2 -0
  369. package/dist/server/modules/ui/ui.module.js +22 -0
  370. package/dist/server/modules/ui/ui.module.js.map +1 -0
  371. package/dist/server/test-setup.d.ts +1 -0
  372. package/dist/server/test-setup.js +14 -0
  373. package/dist/server/test-setup.js.map +1 -0
  374. package/dist/server/tsconfig.tsbuildinfo +1 -0
  375. package/dist/server/ui/assets/index-DFChYYFN.css +32 -0
  376. package/dist/server/ui/assets/index-DpXRypHy.js +636 -0
  377. package/dist/server/ui/index.html +26 -0
  378. package/dist/templates/simple-codex.json +134 -0
  379. package/package.json +105 -0
  380. package/prebuilds/README.md +7 -0
@@ -0,0 +1,564 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ProjectsService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const storage_interface_1 = require("../../storage/interfaces/storage.interface");
18
+ const sessions_service_1 = require("../../sessions/services/sessions.service");
19
+ const settings_service_1 = require("../../settings/services/settings.service");
20
+ const logger_1 = require("../../../common/logging/logger");
21
+ const error_types_1 = require("../../../common/errors/error-types");
22
+ const path_1 = require("path");
23
+ const fs_1 = require("fs");
24
+ const env_config_1 = require("../../../common/config/env.config");
25
+ const zod_1 = require("zod");
26
+ const logger = (0, logger_1.createLogger)('ProjectsService');
27
+ const ExportSchema = zod_1.z
28
+ .object({
29
+ version: zod_1.z.number().optional().default(1),
30
+ exportedAt: zod_1.z.string().optional(),
31
+ prompts: zod_1.z
32
+ .array(zod_1.z.object({
33
+ id: zod_1.z.string().uuid().optional(),
34
+ title: zod_1.z.string().min(1),
35
+ content: zod_1.z.string().default(''),
36
+ version: zod_1.z.number().optional(),
37
+ tags: zod_1.z.array(zod_1.z.string()).optional().default([]),
38
+ }))
39
+ .optional()
40
+ .default([]),
41
+ profiles: zod_1.z
42
+ .array(zod_1.z.object({
43
+ id: zod_1.z.string().uuid().optional(),
44
+ name: zod_1.z.string().min(1),
45
+ provider: zod_1.z.object({ id: zod_1.z.string().optional(), name: zod_1.z.string().min(1) }),
46
+ options: zod_1.z.unknown().nullable().optional(),
47
+ instructions: zod_1.z.string().nullable().optional(),
48
+ temperature: zod_1.z.number().nullable().optional(),
49
+ maxTokens: zod_1.z.number().int().nullable().optional(),
50
+ }))
51
+ .optional()
52
+ .default([]),
53
+ agents: zod_1.z
54
+ .array(zod_1.z.object({
55
+ id: zod_1.z.string().uuid().optional(),
56
+ name: zod_1.z.string().min(1),
57
+ profileId: zod_1.z.string().uuid().optional(),
58
+ }))
59
+ .optional()
60
+ .default([]),
61
+ statuses: zod_1.z
62
+ .array(zod_1.z.object({
63
+ id: zod_1.z.string().uuid().optional(),
64
+ label: zod_1.z.string().min(1),
65
+ color: zod_1.z.string().min(1),
66
+ position: zod_1.z.number().int(),
67
+ }))
68
+ .optional()
69
+ .default([]),
70
+ initialPrompt: zod_1.z
71
+ .object({ promptId: zod_1.z.string().uuid().optional(), title: zod_1.z.string().optional() })
72
+ .nullable()
73
+ .optional(),
74
+ })
75
+ .strict();
76
+ let ProjectsService = class ProjectsService {
77
+ constructor(storage, sessions, settings) {
78
+ this.storage = storage;
79
+ this.sessions = sessions;
80
+ this.settings = settings;
81
+ }
82
+ findTemplatesDirectory() {
83
+ const env = (0, env_config_1.getEnvConfig)();
84
+ if (env.TEMPLATES_DIR) {
85
+ if ((0, fs_1.existsSync)(env.TEMPLATES_DIR)) {
86
+ logger.debug({ path: env.TEMPLATES_DIR }, 'Using TEMPLATES_DIR from environment');
87
+ return env.TEMPLATES_DIR;
88
+ }
89
+ logger.warn({ path: env.TEMPLATES_DIR }, 'TEMPLATES_DIR set but path does not exist');
90
+ }
91
+ const possibleTemplatePaths = [
92
+ (0, path_1.join)(__dirname, '../../../../templates'),
93
+ (0, path_1.join)(__dirname, '../../../../templates'),
94
+ (0, path_1.join)(process.cwd(), 'dist', 'templates'),
95
+ (0, path_1.join)(process.cwd(), 'apps', 'local-app', 'templates'),
96
+ (0, path_1.join)(process.cwd(), 'templates'),
97
+ ];
98
+ for (const path of possibleTemplatePaths) {
99
+ if ((0, fs_1.existsSync)(path)) {
100
+ logger.debug({ path }, 'Found templates directory');
101
+ return path;
102
+ }
103
+ }
104
+ return null;
105
+ }
106
+ async listTemplates() {
107
+ logger.info('listTemplates');
108
+ const templatesDir = this.findTemplatesDirectory();
109
+ if (!templatesDir) {
110
+ logger.error('Templates directory not found');
111
+ throw new common_1.InternalServerErrorException({
112
+ message: 'Templates directory not found',
113
+ hint: 'Templates directory is not available in this deployment',
114
+ });
115
+ }
116
+ try {
117
+ const files = (0, fs_1.readdirSync)(templatesDir);
118
+ const jsonFiles = files.filter((file) => file.endsWith('.json'));
119
+ const templates = jsonFiles.map((fileName) => {
120
+ const id = fileName.replace(/\.json$/, '');
121
+ return { id, fileName };
122
+ });
123
+ logger.info({ templatesDir, count: templates.length }, 'Listed project templates');
124
+ return templates;
125
+ }
126
+ catch (error) {
127
+ logger.error({ error, templatesDir }, 'Failed to read templates directory');
128
+ throw new common_1.InternalServerErrorException({
129
+ message: 'Failed to read templates directory',
130
+ hint: 'Error accessing templates',
131
+ });
132
+ }
133
+ }
134
+ async createFromTemplate(input) {
135
+ logger.info({ input }, 'createFromTemplate');
136
+ const templatesDir = this.findTemplatesDirectory();
137
+ if (!templatesDir) {
138
+ throw new common_1.InternalServerErrorException({
139
+ message: 'Templates directory not found',
140
+ hint: 'Templates directory is not available in this deployment',
141
+ });
142
+ }
143
+ const TEMPLATE_ID_REGEX = /^[a-zA-Z0-9_-]+$/;
144
+ if (!TEMPLATE_ID_REGEX.test(input.templateId)) {
145
+ throw new error_types_1.ValidationError('Invalid template ID: must contain only alphanumeric characters, hyphens, and underscores', { templateId: input.templateId });
146
+ }
147
+ const resolvedTemplatesDir = (0, path_1.resolve)(templatesDir);
148
+ const templatePath = (0, path_1.resolve)(templatesDir, `${input.templateId}.json`);
149
+ if (!templatePath.startsWith(resolvedTemplatesDir + path_1.sep)) {
150
+ logger.warn({ templateId: input.templateId, templatePath, templatesDir: resolvedTemplatesDir }, 'Path traversal attempt detected');
151
+ throw new error_types_1.ValidationError('Invalid template ID: path traversal not allowed', {
152
+ templateId: input.templateId,
153
+ });
154
+ }
155
+ if (!(0, fs_1.existsSync)(templatePath)) {
156
+ throw new error_types_1.NotFoundError('Template', input.templateId);
157
+ }
158
+ let templateContent;
159
+ try {
160
+ templateContent = (0, fs_1.readFileSync)(templatePath, 'utf-8');
161
+ }
162
+ catch (error) {
163
+ logger.error({ error, templatePath }, 'Failed to read template file');
164
+ throw new common_1.InternalServerErrorException({
165
+ message: 'Failed to read template file',
166
+ hint: 'Template file exists but cannot be read',
167
+ });
168
+ }
169
+ let payload;
170
+ try {
171
+ payload = ExportSchema.parse(JSON.parse(templateContent));
172
+ }
173
+ catch (error) {
174
+ logger.error({ error, templateId: input.templateId }, 'Invalid template format');
175
+ throw new common_1.BadRequestException({
176
+ message: 'Invalid template format',
177
+ hint: 'Template file does not match expected export schema',
178
+ });
179
+ }
180
+ const providerNames = new Set((payload.profiles ?? []).map((p) => p.provider.name.trim().toLowerCase()));
181
+ const providers = await this.storage.listProviders();
182
+ const available = new Map();
183
+ for (const prov of providers.items) {
184
+ available.set(prov.name.trim().toLowerCase(), prov.id);
185
+ }
186
+ const missingProviders = Array.from(providerNames).filter((n) => !available.has(n));
187
+ if (missingProviders.length > 0) {
188
+ throw new common_1.BadRequestException({
189
+ message: 'Import aborted: missing providers',
190
+ missingProviders,
191
+ hint: 'Install/configure providers by name before creating project from template.',
192
+ });
193
+ }
194
+ const templatePayload = {
195
+ prompts: payload.prompts.map((p) => ({
196
+ id: p.id,
197
+ title: p.title,
198
+ content: p.content,
199
+ version: p.version,
200
+ tags: p.tags,
201
+ })),
202
+ profiles: payload.profiles.map((prof) => {
203
+ const providerId = available.get(prof.provider.name.trim().toLowerCase());
204
+ if (!providerId) {
205
+ throw new common_1.BadRequestException({ message: `Provider not found: ${prof.provider.name}` });
206
+ }
207
+ let optionsStr = null;
208
+ if (typeof prof.options === 'string') {
209
+ optionsStr = prof.options;
210
+ }
211
+ else if (prof.options && typeof prof.options === 'object') {
212
+ try {
213
+ optionsStr = JSON.stringify(prof.options);
214
+ }
215
+ catch {
216
+ optionsStr = null;
217
+ }
218
+ }
219
+ return {
220
+ id: prof.id,
221
+ name: prof.name,
222
+ providerId,
223
+ options: optionsStr,
224
+ instructions: prof.instructions ?? null,
225
+ temperature: prof.temperature ?? null,
226
+ maxTokens: prof.maxTokens ?? null,
227
+ };
228
+ }),
229
+ agents: payload.agents.map((a) => ({
230
+ id: a.id,
231
+ name: a.name,
232
+ profileId: a.profileId,
233
+ })),
234
+ statuses: payload.statuses.map((s) => ({
235
+ id: s.id,
236
+ label: s.label,
237
+ color: s.color,
238
+ position: s.position,
239
+ })),
240
+ initialPrompt: payload.initialPrompt,
241
+ };
242
+ const result = await this.storage.createProjectWithTemplate({
243
+ name: input.name,
244
+ description: input.description ?? null,
245
+ rootPath: input.rootPath,
246
+ isTemplate: false,
247
+ }, templatePayload);
248
+ let initialPromptSet = false;
249
+ if (payload.initialPrompt) {
250
+ let targetPromptId = null;
251
+ if (payload.initialPrompt.title) {
252
+ const oldId = Object.keys(result.mappings.promptIdMap).find((oldId) => payload.prompts.some((p) => p.id === oldId &&
253
+ p.title.trim().toLowerCase() === payload.initialPrompt.title.trim().toLowerCase()));
254
+ if (oldId) {
255
+ targetPromptId = result.mappings.promptIdMap[oldId];
256
+ }
257
+ }
258
+ if (!targetPromptId && payload.initialPrompt.promptId) {
259
+ const mapped = result.mappings.promptIdMap[payload.initialPrompt.promptId];
260
+ if (mapped)
261
+ targetPromptId = mapped;
262
+ }
263
+ await this.settings.updateSettings({
264
+ projectId: result.project.id,
265
+ initialSessionPromptId: targetPromptId ?? null,
266
+ });
267
+ initialPromptSet = Boolean(targetPromptId);
268
+ }
269
+ return {
270
+ success: true,
271
+ project: result.project,
272
+ imported: result.imported,
273
+ mappings: result.mappings,
274
+ initialPromptSet,
275
+ message: 'Project created from template successfully.',
276
+ };
277
+ }
278
+ async exportProject(projectId) {
279
+ logger.info({ projectId }, 'exportProject');
280
+ const [promptsRes, profilesRes, agentsRes, statusesRes, initialPrompt] = await Promise.all([
281
+ this.storage.listPrompts(projectId, { limit: 1000, offset: 0 }),
282
+ this.storage.listAgentProfiles({ projectId, limit: 1000, offset: 0 }),
283
+ this.storage.listAgents(projectId, { limit: 1000, offset: 0 }),
284
+ this.storage.listStatuses(projectId, { limit: 1000, offset: 0 }),
285
+ this.storage.getInitialSessionPrompt(projectId),
286
+ ]);
287
+ const secretKeys = new Set([
288
+ 'apikey',
289
+ 'api_key',
290
+ 'api-key',
291
+ 'api_key_id',
292
+ 'api-secret',
293
+ 'api_secret',
294
+ 'token',
295
+ 'access_token',
296
+ 'access-token',
297
+ 'refresh_token',
298
+ 'refresh-token',
299
+ 'secret',
300
+ 'client_secret',
301
+ 'clientsecret',
302
+ 'password',
303
+ 'openaiapikey',
304
+ 'anthropicapikey',
305
+ 'azureapikey',
306
+ 'googleapikey',
307
+ 'geminiapikey',
308
+ ]);
309
+ const _sanitize = (value) => {
310
+ if (Array.isArray(value)) {
311
+ return value.map((v) => _sanitize(v));
312
+ }
313
+ if (value && typeof value === 'object') {
314
+ const out = {};
315
+ for (const [k, v] of Object.entries(value)) {
316
+ const keyLc = k.toLowerCase();
317
+ if (secretKeys.has(keyLc)) {
318
+ out[k] = '***';
319
+ }
320
+ else {
321
+ out[k] = _sanitize(v);
322
+ }
323
+ }
324
+ return out;
325
+ }
326
+ return value;
327
+ };
328
+ const sanitizeOptionsString = (options) => {
329
+ if (!options)
330
+ return null;
331
+ return options;
332
+ };
333
+ const prompts = promptsRes.items.map((p) => ({
334
+ id: p.id,
335
+ title: p.title,
336
+ content: p.content,
337
+ version: p.version,
338
+ tags: p.tags,
339
+ }));
340
+ const profiles = await Promise.all(profilesRes.items.map(async (prof) => {
341
+ const provider = await this.storage.getProvider(prof.providerId);
342
+ return {
343
+ id: prof.id,
344
+ name: prof.name,
345
+ provider: { id: provider.id, name: provider.name },
346
+ options: sanitizeOptionsString(prof.options),
347
+ instructions: prof.instructions,
348
+ temperature: prof.temperature,
349
+ maxTokens: prof.maxTokens,
350
+ };
351
+ }));
352
+ const agents = agentsRes.items.map((a) => ({ id: a.id, name: a.name, profileId: a.profileId }));
353
+ const statuses = statusesRes.items.map((s) => ({
354
+ id: s.id,
355
+ label: s.label,
356
+ color: s.color,
357
+ position: s.position,
358
+ }));
359
+ const exportPayload = {
360
+ version: 1,
361
+ exportedAt: new Date().toISOString(),
362
+ prompts,
363
+ profiles,
364
+ agents,
365
+ statuses,
366
+ initialPrompt: initialPrompt
367
+ ? { promptId: initialPrompt.id, title: initialPrompt.title }
368
+ : null,
369
+ };
370
+ return exportPayload;
371
+ }
372
+ async importProject(input) {
373
+ logger.info({ projectId: input.projectId, dryRun: input.dryRun }, 'importProject');
374
+ const isDryRun = input.dryRun ?? false;
375
+ const payload = ExportSchema.parse(input.payload ?? {});
376
+ const providerNames = new Set((payload.profiles ?? []).map((p) => p.provider.name.trim().toLowerCase()));
377
+ const providers = await this.storage.listProviders();
378
+ const available = new Map();
379
+ for (const prov of providers.items) {
380
+ available.set(prov.name.trim().toLowerCase(), prov.id);
381
+ }
382
+ const missingProviders = Array.from(providerNames).filter((n) => !available.has(n));
383
+ const [existingPrompts, existingProfiles, existingAgents, existingStatuses] = await Promise.all([
384
+ this.storage.listPrompts(input.projectId, { limit: 10000, offset: 0 }),
385
+ this.storage.listAgentProfiles({ projectId: input.projectId, limit: 10000, offset: 0 }),
386
+ this.storage.listAgents(input.projectId, { limit: 10000, offset: 0 }),
387
+ this.storage.listStatuses(input.projectId, { limit: 10000, offset: 0 }),
388
+ ]);
389
+ if (isDryRun) {
390
+ return {
391
+ dryRun: true,
392
+ missingProviders,
393
+ counts: {
394
+ toImport: {
395
+ prompts: payload.prompts.length,
396
+ profiles: payload.profiles.length,
397
+ agents: payload.agents.length,
398
+ statuses: payload.statuses.length,
399
+ },
400
+ toDelete: {
401
+ prompts: existingPrompts.total,
402
+ profiles: existingProfiles.total,
403
+ agents: existingAgents.total,
404
+ statuses: existingStatuses.total,
405
+ },
406
+ },
407
+ };
408
+ }
409
+ if (missingProviders.length > 0) {
410
+ throw new common_1.BadRequestException({
411
+ message: 'Import aborted: missing providers',
412
+ missingProviders,
413
+ hint: 'Install/configure providers by name before importing profiles.',
414
+ });
415
+ }
416
+ const activeSessions = await this.sessions.listActiveSessions(input.projectId);
417
+ if (activeSessions.length > 0) {
418
+ throw new common_1.BadRequestException({
419
+ message: 'Import aborted: active agent sessions detected',
420
+ activeSessions: activeSessions.map((s) => ({ id: s.id, agentId: s.agentId })),
421
+ hint: 'Terminate all running sessions for this project before importing.',
422
+ });
423
+ }
424
+ for (const a of existingAgents.items) {
425
+ await this.storage.deleteAgent(a.id);
426
+ }
427
+ for (const p of existingProfiles.items) {
428
+ await this.storage.deleteAgentProfile(p.id);
429
+ }
430
+ for (const pr of existingPrompts.items) {
431
+ await this.storage.deletePrompt(pr.id);
432
+ }
433
+ for (const s of existingStatuses.items) {
434
+ await this.storage.deleteStatus(s.id);
435
+ }
436
+ await this.settings.updateSettings({
437
+ projectId: input.projectId,
438
+ initialSessionPromptId: null,
439
+ });
440
+ const statusIdMap = {};
441
+ const promptIdMap = {};
442
+ const profileIdMap = {};
443
+ const agentIdMap = {};
444
+ for (const s of payload.statuses.sort((a, b) => a.position - b.position)) {
445
+ const created = await this.storage.createStatus({
446
+ projectId: input.projectId,
447
+ label: s.label,
448
+ color: s.color,
449
+ position: s.position,
450
+ });
451
+ if (s.id)
452
+ statusIdMap[s.id] = created.id;
453
+ }
454
+ const createdPrompts = [];
455
+ for (const p of payload.prompts) {
456
+ const created = await this.storage.createPrompt({
457
+ projectId: input.projectId,
458
+ title: p.title,
459
+ content: p.content,
460
+ tags: p.tags ?? [],
461
+ });
462
+ if (p.id)
463
+ promptIdMap[p.id] = created.id;
464
+ createdPrompts.push({ id: created.id, title: created.title });
465
+ }
466
+ for (const prof of payload.profiles) {
467
+ const providerId = available.get(prof.provider.name.trim().toLowerCase());
468
+ if (!providerId) {
469
+ throw new common_1.BadRequestException({ message: `Provider not found: ${prof.provider.name}` });
470
+ }
471
+ let optionsStr = null;
472
+ if (typeof prof.options === 'string') {
473
+ optionsStr = prof.options;
474
+ }
475
+ else if (prof.options && typeof prof.options === 'object') {
476
+ try {
477
+ optionsStr = JSON.stringify(prof.options);
478
+ }
479
+ catch {
480
+ optionsStr = null;
481
+ }
482
+ }
483
+ const created = await this.storage.createAgentProfile({
484
+ projectId: input.projectId,
485
+ name: prof.name,
486
+ providerId,
487
+ options: optionsStr ?? null,
488
+ systemPrompt: null,
489
+ instructions: prof.instructions ?? null,
490
+ temperature: prof.temperature ?? null,
491
+ maxTokens: prof.maxTokens ?? null,
492
+ });
493
+ if (prof.id)
494
+ profileIdMap[prof.id] = created.id;
495
+ }
496
+ for (const a of payload.agents) {
497
+ const oldProfileId = a.profileId ?? '';
498
+ const newProfileId = oldProfileId && profileIdMap[oldProfileId] ? profileIdMap[oldProfileId] : undefined;
499
+ if (!newProfileId) {
500
+ throw new common_1.BadRequestException({
501
+ message: `Profile mapping missing for agent ${a.name}`,
502
+ profileId: oldProfileId || null,
503
+ });
504
+ }
505
+ const created = await this.storage.createAgent({
506
+ projectId: input.projectId,
507
+ name: a.name,
508
+ profileId: newProfileId,
509
+ });
510
+ if (a.id)
511
+ agentIdMap[a.id] = created.id;
512
+ }
513
+ let initialPromptSet = false;
514
+ if (payload.initialPrompt) {
515
+ let targetPromptId = null;
516
+ if (payload.initialPrompt.title) {
517
+ const match = createdPrompts.find((cp) => cp.title.trim().toLowerCase() === payload.initialPrompt.title.trim().toLowerCase());
518
+ if (match)
519
+ targetPromptId = match.id;
520
+ }
521
+ if (!targetPromptId && payload.initialPrompt.promptId) {
522
+ const mapped = promptIdMap[payload.initialPrompt.promptId];
523
+ if (mapped)
524
+ targetPromptId = mapped;
525
+ }
526
+ await this.settings.updateSettings({
527
+ projectId: input.projectId,
528
+ initialSessionPromptId: targetPromptId ?? null,
529
+ });
530
+ initialPromptSet = Boolean(targetPromptId);
531
+ }
532
+ return {
533
+ success: true,
534
+ mode: 'replace',
535
+ replaced: true,
536
+ missingProviders: [],
537
+ counts: {
538
+ imported: {
539
+ prompts: payload.prompts.length,
540
+ profiles: payload.profiles.length,
541
+ agents: payload.agents.length,
542
+ statuses: payload.statuses.length,
543
+ },
544
+ deleted: {
545
+ prompts: existingPrompts.total,
546
+ profiles: existingProfiles.total,
547
+ agents: existingAgents.total,
548
+ statuses: existingStatuses.total,
549
+ },
550
+ },
551
+ mappings: { promptIdMap, profileIdMap, agentIdMap, statusIdMap },
552
+ initialPromptSet,
553
+ message: 'Project configuration replaced.',
554
+ };
555
+ }
556
+ };
557
+ exports.ProjectsService = ProjectsService;
558
+ exports.ProjectsService = ProjectsService = __decorate([
559
+ (0, common_1.Injectable)(),
560
+ __param(0, (0, common_1.Inject)(storage_interface_1.STORAGE_SERVICE)),
561
+ __metadata("design:paramtypes", [Object, sessions_service_1.SessionsService,
562
+ settings_service_1.SettingsService])
563
+ ], ProjectsService);
564
+ //# sourceMappingURL=projects.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.service.js","sourceRoot":"","sources":["../../../../src/modules/projects/services/projects.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { StorageService } from '../../storage/interfaces/storage.interface';
2
+ import { Prompt } from '../../storage/models/domain.models';
3
+ export declare class PromptsController {
4
+ private readonly storage;
5
+ constructor(storage: StorageService);
6
+ listPrompts(projectId?: string): Promise<import("../../storage/interfaces/storage.interface").ListResult<Prompt>>;
7
+ getPrompt(id: string): Promise<Prompt>;
8
+ createPrompt(body: unknown): Promise<Prompt>;
9
+ updatePrompt(id: string, body: unknown): Promise<Prompt>;
10
+ deletePrompt(id: string): Promise<void>;
11
+ }