koishi-plugin-media-luna 0.0.1

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 (437) hide show
  1. package/client/README.md +558 -0
  2. package/client/api.ts +256 -0
  3. package/client/components/ChannelConfigDialog.vue +1113 -0
  4. package/client/components/ChannelsView.vue +698 -0
  5. package/client/components/ConfigRenderer.vue +164 -0
  6. package/client/components/EmptyState.vue +87 -0
  7. package/client/components/GenerateView.vue +778 -0
  8. package/client/components/HistoryGallery.vue +590 -0
  9. package/client/components/ImageLightbox.vue +510 -0
  10. package/client/components/ImageUpload.vue +298 -0
  11. package/client/components/JsonEditor.vue +68 -0
  12. package/client/components/LoadingState.vue +73 -0
  13. package/client/components/PresetsView.vue +800 -0
  14. package/client/components/ScrollContainer.vue +45 -0
  15. package/client/components/SettingsView.vue +231 -0
  16. package/client/components/StatusBadge.vue +55 -0
  17. package/client/components/TagFilter.vue +139 -0
  18. package/client/components/TagInput.vue +63 -0
  19. package/client/components/TasksView.vue +1074 -0
  20. package/client/components/ViewModeSwitch.vue +78 -0
  21. package/client/components/settings/CachePanel.vue +142 -0
  22. package/client/components/settings/MiddlewaresPanel.vue +480 -0
  23. package/client/components/settings/PluginsPanel.vue +493 -0
  24. package/client/index.ts +13 -0
  25. package/client/pages/index.vue +177 -0
  26. package/client/styles/shared.css +258 -0
  27. package/client/types.ts +158 -0
  28. package/client/utils/format.ts +72 -0
  29. package/dist/index.js +1 -0
  30. package/dist/style.css +1 -0
  31. package/lib/api/README.md +643 -0
  32. package/lib/api/cache-api.d.ts +6 -0
  33. package/lib/api/cache-api.d.ts.map +1 -0
  34. package/lib/api/cache-api.js +147 -0
  35. package/lib/api/cache-api.js.map +1 -0
  36. package/lib/api/channel-api.d.ts +6 -0
  37. package/lib/api/channel-api.d.ts.map +1 -0
  38. package/lib/api/channel-api.js +148 -0
  39. package/lib/api/channel-api.js.map +1 -0
  40. package/lib/api/connector-api.d.ts +6 -0
  41. package/lib/api/connector-api.d.ts.map +1 -0
  42. package/lib/api/connector-api.js +63 -0
  43. package/lib/api/connector-api.js.map +1 -0
  44. package/lib/api/generate-api.d.ts +6 -0
  45. package/lib/api/generate-api.d.ts.map +1 -0
  46. package/lib/api/generate-api.js +123 -0
  47. package/lib/api/generate-api.js.map +1 -0
  48. package/lib/api/index.d.ts +15 -0
  49. package/lib/api/index.d.ts.map +1 -0
  50. package/lib/api/index.js +34 -0
  51. package/lib/api/index.js.map +1 -0
  52. package/lib/api/middleware-api.d.ts +6 -0
  53. package/lib/api/middleware-api.d.ts.map +1 -0
  54. package/lib/api/middleware-api.js +212 -0
  55. package/lib/api/middleware-api.js.map +1 -0
  56. package/lib/api/plugin-api.d.ts +6 -0
  57. package/lib/api/plugin-api.d.ts.map +1 -0
  58. package/lib/api/plugin-api.js +78 -0
  59. package/lib/api/plugin-api.js.map +1 -0
  60. package/lib/api/preset-api.d.ts +6 -0
  61. package/lib/api/preset-api.d.ts.map +1 -0
  62. package/lib/api/preset-api.js +256 -0
  63. package/lib/api/preset-api.js.map +1 -0
  64. package/lib/api/settings-api.d.ts +6 -0
  65. package/lib/api/settings-api.d.ts.map +1 -0
  66. package/lib/api/settings-api.js +118 -0
  67. package/lib/api/settings-api.js.map +1 -0
  68. package/lib/api/task-api.d.ts +6 -0
  69. package/lib/api/task-api.d.ts.map +1 -0
  70. package/lib/api/task-api.js +148 -0
  71. package/lib/api/task-api.js.map +1 -0
  72. package/lib/config.d.ts +6 -0
  73. package/lib/config.d.ts.map +1 -0
  74. package/lib/config.js +8 -0
  75. package/lib/config.js.map +1 -0
  76. package/lib/connectors/builtin/chat-api.d.ts +9 -0
  77. package/lib/connectors/builtin/chat-api.d.ts.map +1 -0
  78. package/lib/connectors/builtin/chat-api.js +351 -0
  79. package/lib/connectors/builtin/chat-api.js.map +1 -0
  80. package/lib/connectors/builtin/dalle.d.ts +6 -0
  81. package/lib/connectors/builtin/dalle.d.ts.map +1 -0
  82. package/lib/connectors/builtin/dalle.js +109 -0
  83. package/lib/connectors/builtin/dalle.js.map +1 -0
  84. package/lib/connectors/builtin/flux.d.ts +7 -0
  85. package/lib/connectors/builtin/flux.d.ts.map +1 -0
  86. package/lib/connectors/builtin/flux.js +199 -0
  87. package/lib/connectors/builtin/flux.js.map +1 -0
  88. package/lib/connectors/builtin/index.d.ts +5 -0
  89. package/lib/connectors/builtin/index.d.ts.map +1 -0
  90. package/lib/connectors/builtin/index.js +6 -0
  91. package/lib/connectors/builtin/index.js.map +1 -0
  92. package/lib/connectors/builtin/sd-webui.d.ts +7 -0
  93. package/lib/connectors/builtin/sd-webui.d.ts.map +1 -0
  94. package/lib/connectors/builtin/sd-webui.js +157 -0
  95. package/lib/connectors/builtin/sd-webui.js.map +1 -0
  96. package/lib/connectors/connector-registry.d.ts +36 -0
  97. package/lib/connectors/connector-registry.d.ts.map +1 -0
  98. package/lib/connectors/connector-registry.js +66 -0
  99. package/lib/connectors/connector-registry.js.map +1 -0
  100. package/lib/connectors/index.d.ts +3 -0
  101. package/lib/connectors/index.d.ts.map +1 -0
  102. package/lib/connectors/index.js +4 -0
  103. package/lib/connectors/index.js.map +1 -0
  104. package/lib/core/api/api-utils.d.ts +46 -0
  105. package/lib/core/api/api-utils.d.ts.map +1 -0
  106. package/lib/core/api/api-utils.js +78 -0
  107. package/lib/core/api/api-utils.js.map +1 -0
  108. package/lib/core/api/cache-api.d.ts +6 -0
  109. package/lib/core/api/cache-api.d.ts.map +1 -0
  110. package/lib/core/api/cache-api.js +147 -0
  111. package/lib/core/api/cache-api.js.map +1 -0
  112. package/lib/core/api/channel-api.d.ts +6 -0
  113. package/lib/core/api/channel-api.d.ts.map +1 -0
  114. package/lib/core/api/channel-api.js +146 -0
  115. package/lib/core/api/channel-api.js.map +1 -0
  116. package/lib/core/api/connector-api.d.ts +6 -0
  117. package/lib/core/api/connector-api.d.ts.map +1 -0
  118. package/lib/core/api/connector-api.js +63 -0
  119. package/lib/core/api/connector-api.js.map +1 -0
  120. package/lib/core/api/generate-api.d.ts +6 -0
  121. package/lib/core/api/generate-api.d.ts.map +1 -0
  122. package/lib/core/api/generate-api.js +124 -0
  123. package/lib/core/api/generate-api.js.map +1 -0
  124. package/lib/core/api/index.d.ts +16 -0
  125. package/lib/core/api/index.d.ts.map +1 -0
  126. package/lib/core/api/index.js +38 -0
  127. package/lib/core/api/index.js.map +1 -0
  128. package/lib/core/api/middleware-api.d.ts +6 -0
  129. package/lib/core/api/middleware-api.d.ts.map +1 -0
  130. package/lib/core/api/middleware-api.js +196 -0
  131. package/lib/core/api/middleware-api.js.map +1 -0
  132. package/lib/core/api/plugin-api.d.ts +6 -0
  133. package/lib/core/api/plugin-api.d.ts.map +1 -0
  134. package/lib/core/api/plugin-api.js +78 -0
  135. package/lib/core/api/plugin-api.js.map +1 -0
  136. package/lib/core/api/preset-api.d.ts +6 -0
  137. package/lib/core/api/preset-api.d.ts.map +1 -0
  138. package/lib/core/api/preset-api.js +272 -0
  139. package/lib/core/api/preset-api.js.map +1 -0
  140. package/lib/core/api/settings-api.d.ts +6 -0
  141. package/lib/core/api/settings-api.d.ts.map +1 -0
  142. package/lib/core/api/settings-api.js +118 -0
  143. package/lib/core/api/settings-api.js.map +1 -0
  144. package/lib/core/api/task-api.d.ts +6 -0
  145. package/lib/core/api/task-api.d.ts.map +1 -0
  146. package/lib/core/api/task-api.js +281 -0
  147. package/lib/core/api/task-api.js.map +1 -0
  148. package/lib/core/channel.service.d.ts +44 -0
  149. package/lib/core/channel.service.d.ts.map +1 -0
  150. package/lib/core/channel.service.js +146 -0
  151. package/lib/core/channel.service.js.map +1 -0
  152. package/lib/core/config/config.service.d.ts +89 -0
  153. package/lib/core/config/config.service.d.ts.map +1 -0
  154. package/lib/core/config/config.service.js +216 -0
  155. package/lib/core/config/config.service.js.map +1 -0
  156. package/lib/core/config/index.d.ts +3 -0
  157. package/lib/core/config/index.d.ts.map +1 -0
  158. package/lib/core/config/index.js +3 -0
  159. package/lib/core/config/index.js.map +1 -0
  160. package/lib/core/error.d.ts +73 -0
  161. package/lib/core/error.d.ts.map +1 -0
  162. package/lib/core/error.js +137 -0
  163. package/lib/core/error.js.map +1 -0
  164. package/lib/core/index.d.ts +12 -0
  165. package/lib/core/index.d.ts.map +1 -0
  166. package/lib/core/index.js +23 -0
  167. package/lib/core/index.js.map +1 -0
  168. package/lib/core/logger.d.ts +18 -0
  169. package/lib/core/logger.d.ts.map +1 -0
  170. package/lib/core/logger.js +39 -0
  171. package/lib/core/logger.js.map +1 -0
  172. package/lib/core/medialuna.service.d.ts +168 -0
  173. package/lib/core/medialuna.service.d.ts.map +1 -0
  174. package/lib/core/medialuna.service.js +423 -0
  175. package/lib/core/medialuna.service.js.map +1 -0
  176. package/lib/core/pipeline/dependency-graph.d.ts +43 -0
  177. package/lib/core/pipeline/dependency-graph.d.ts.map +1 -0
  178. package/lib/core/pipeline/dependency-graph.js +223 -0
  179. package/lib/core/pipeline/dependency-graph.js.map +1 -0
  180. package/lib/core/pipeline/generation-pipeline.d.ts +40 -0
  181. package/lib/core/pipeline/generation-pipeline.d.ts.map +1 -0
  182. package/lib/core/pipeline/generation-pipeline.js +216 -0
  183. package/lib/core/pipeline/generation-pipeline.js.map +1 -0
  184. package/lib/core/pipeline/index.d.ts +4 -0
  185. package/lib/core/pipeline/index.d.ts.map +1 -0
  186. package/lib/core/pipeline/index.js +5 -0
  187. package/lib/core/pipeline/index.js.map +1 -0
  188. package/lib/core/pipeline/middleware-registry.d.ts +33 -0
  189. package/lib/core/pipeline/middleware-registry.d.ts.map +1 -0
  190. package/lib/core/pipeline/middleware-registry.js +78 -0
  191. package/lib/core/pipeline/middleware-registry.js.map +1 -0
  192. package/lib/core/plugin-loader.d.ts +77 -0
  193. package/lib/core/plugin-loader.d.ts.map +1 -0
  194. package/lib/core/plugin-loader.js +300 -0
  195. package/lib/core/plugin-loader.js.map +1 -0
  196. package/lib/core/registry/connector.registry.d.ts +36 -0
  197. package/lib/core/registry/connector.registry.d.ts.map +1 -0
  198. package/lib/core/registry/connector.registry.js +65 -0
  199. package/lib/core/registry/connector.registry.js.map +1 -0
  200. package/lib/core/registry/index.d.ts +3 -0
  201. package/lib/core/registry/index.d.ts.map +1 -0
  202. package/lib/core/registry/index.js +4 -0
  203. package/lib/core/registry/index.js.map +1 -0
  204. package/lib/core/registry/service.registry.d.ts +27 -0
  205. package/lib/core/registry/service.registry.d.ts.map +1 -0
  206. package/lib/core/registry/service.registry.js +54 -0
  207. package/lib/core/registry/service.registry.js.map +1 -0
  208. package/lib/core/request.service.d.ts +83 -0
  209. package/lib/core/request.service.d.ts.map +1 -0
  210. package/lib/core/request.service.js +237 -0
  211. package/lib/core/request.service.js.map +1 -0
  212. package/lib/core/types.d.ts +270 -0
  213. package/lib/core/types.d.ts.map +1 -0
  214. package/lib/core/types.js +17 -0
  215. package/lib/core/types.js.map +1 -0
  216. package/lib/database.d.ts +6 -0
  217. package/lib/database.d.ts.map +1 -0
  218. package/lib/database.js +89 -0
  219. package/lib/database.js.map +1 -0
  220. package/lib/index.d.ts +13 -0
  221. package/lib/index.d.ts.map +1 -0
  222. package/lib/index.js +54 -0
  223. package/lib/index.js.map +1 -0
  224. package/lib/middlewares/builtin/billing.d.ts +45 -0
  225. package/lib/middlewares/builtin/billing.d.ts.map +1 -0
  226. package/lib/middlewares/builtin/billing.js +362 -0
  227. package/lib/middlewares/builtin/billing.js.map +1 -0
  228. package/lib/middlewares/builtin/index.d.ts +6 -0
  229. package/lib/middlewares/builtin/index.d.ts.map +1 -0
  230. package/lib/middlewares/builtin/index.js +7 -0
  231. package/lib/middlewares/builtin/index.js.map +1 -0
  232. package/lib/middlewares/builtin/preset.d.ts +14 -0
  233. package/lib/middlewares/builtin/preset.d.ts.map +1 -0
  234. package/lib/middlewares/builtin/preset.js +156 -0
  235. package/lib/middlewares/builtin/preset.js.map +1 -0
  236. package/lib/middlewares/builtin/remote-preset-sync.d.ts +8 -0
  237. package/lib/middlewares/builtin/remote-preset-sync.d.ts.map +1 -0
  238. package/lib/middlewares/builtin/remote-preset-sync.js +32 -0
  239. package/lib/middlewares/builtin/remote-preset-sync.js.map +1 -0
  240. package/lib/middlewares/builtin/request.d.ts +10 -0
  241. package/lib/middlewares/builtin/request.d.ts.map +1 -0
  242. package/lib/middlewares/builtin/request.js +50 -0
  243. package/lib/middlewares/builtin/request.js.map +1 -0
  244. package/lib/middlewares/builtin/storage.d.ts +64 -0
  245. package/lib/middlewares/builtin/storage.d.ts.map +1 -0
  246. package/lib/middlewares/builtin/storage.js +715 -0
  247. package/lib/middlewares/builtin/storage.js.map +1 -0
  248. package/lib/middlewares/builtin/task-recorder.d.ts +20 -0
  249. package/lib/middlewares/builtin/task-recorder.d.ts.map +1 -0
  250. package/lib/middlewares/builtin/task-recorder.js +138 -0
  251. package/lib/middlewares/builtin/task-recorder.js.map +1 -0
  252. package/lib/middlewares/index.d.ts +2 -0
  253. package/lib/middlewares/index.d.ts.map +1 -0
  254. package/lib/middlewares/index.js +3 -0
  255. package/lib/middlewares/index.js.map +1 -0
  256. package/lib/pipeline/dependency-graph.d.ts +43 -0
  257. package/lib/pipeline/dependency-graph.d.ts.map +1 -0
  258. package/lib/pipeline/dependency-graph.js +240 -0
  259. package/lib/pipeline/dependency-graph.js.map +1 -0
  260. package/lib/pipeline/generation-pipeline.d.ts +38 -0
  261. package/lib/pipeline/generation-pipeline.d.ts.map +1 -0
  262. package/lib/pipeline/generation-pipeline.js +211 -0
  263. package/lib/pipeline/generation-pipeline.js.map +1 -0
  264. package/lib/pipeline/index.d.ts +4 -0
  265. package/lib/pipeline/index.d.ts.map +1 -0
  266. package/lib/pipeline/index.js +5 -0
  267. package/lib/pipeline/index.js.map +1 -0
  268. package/lib/pipeline/middleware-registry.d.ts +36 -0
  269. package/lib/pipeline/middleware-registry.d.ts.map +1 -0
  270. package/lib/pipeline/middleware-registry.js +83 -0
  271. package/lib/pipeline/middleware-registry.js.map +1 -0
  272. package/lib/plugins/billing/config.d.ts +19 -0
  273. package/lib/plugins/billing/config.d.ts.map +1 -0
  274. package/lib/plugins/billing/config.js +98 -0
  275. package/lib/plugins/billing/config.js.map +1 -0
  276. package/lib/plugins/billing/index.d.ts +4 -0
  277. package/lib/plugins/billing/index.d.ts.map +1 -0
  278. package/lib/plugins/billing/index.js +20 -0
  279. package/lib/plugins/billing/index.js.map +1 -0
  280. package/lib/plugins/billing/middleware.d.ts +12 -0
  281. package/lib/plugins/billing/middleware.d.ts.map +1 -0
  282. package/lib/plugins/billing/middleware.js +233 -0
  283. package/lib/plugins/billing/middleware.js.map +1 -0
  284. package/lib/plugins/cache/config.d.ts +44 -0
  285. package/lib/plugins/cache/config.d.ts.map +1 -0
  286. package/lib/plugins/cache/config.js +187 -0
  287. package/lib/plugins/cache/config.js.map +1 -0
  288. package/lib/plugins/cache/index.d.ts +6 -0
  289. package/lib/plugins/cache/index.d.ts.map +1 -0
  290. package/lib/plugins/cache/index.js +87 -0
  291. package/lib/plugins/cache/index.js.map +1 -0
  292. package/lib/plugins/cache/middleware.d.ts +12 -0
  293. package/lib/plugins/cache/middleware.d.ts.map +1 -0
  294. package/lib/plugins/cache/middleware.js +194 -0
  295. package/lib/plugins/cache/middleware.js.map +1 -0
  296. package/lib/plugins/cache/service.d.ts +106 -0
  297. package/lib/plugins/cache/service.d.ts.map +1 -0
  298. package/lib/plugins/cache/service.js +467 -0
  299. package/lib/plugins/cache/service.js.map +1 -0
  300. package/lib/plugins/cache/utils/index.d.ts +4 -0
  301. package/lib/plugins/cache/utils/index.d.ts.map +1 -0
  302. package/lib/plugins/cache/utils/index.js +5 -0
  303. package/lib/plugins/cache/utils/index.js.map +1 -0
  304. package/lib/plugins/cache/utils/mime.d.ts +9 -0
  305. package/lib/plugins/cache/utils/mime.d.ts.map +1 -0
  306. package/lib/plugins/cache/utils/mime.js +65 -0
  307. package/lib/plugins/cache/utils/mime.js.map +1 -0
  308. package/lib/plugins/cache/utils/s3.d.ts +19 -0
  309. package/lib/plugins/cache/utils/s3.d.ts.map +1 -0
  310. package/lib/plugins/cache/utils/s3.js +147 -0
  311. package/lib/plugins/cache/utils/s3.js.map +1 -0
  312. package/lib/plugins/cache/utils/webdav.d.ts +16 -0
  313. package/lib/plugins/cache/utils/webdav.d.ts.map +1 -0
  314. package/lib/plugins/cache/utils/webdav.js +69 -0
  315. package/lib/plugins/cache/utils/webdav.js.map +1 -0
  316. package/lib/plugins/connector-chat-api/index.d.ts +7 -0
  317. package/lib/plugins/connector-chat-api/index.d.ts.map +1 -0
  318. package/lib/plugins/connector-chat-api/index.js +400 -0
  319. package/lib/plugins/connector-chat-api/index.js.map +1 -0
  320. package/lib/plugins/connector-dalle/index.d.ts +7 -0
  321. package/lib/plugins/connector-dalle/index.d.ts.map +1 -0
  322. package/lib/plugins/connector-dalle/index.js +140 -0
  323. package/lib/plugins/connector-dalle/index.js.map +1 -0
  324. package/lib/plugins/connector-flux/index.d.ts +7 -0
  325. package/lib/plugins/connector-flux/index.d.ts.map +1 -0
  326. package/lib/plugins/connector-flux/index.js +232 -0
  327. package/lib/plugins/connector-flux/index.js.map +1 -0
  328. package/lib/plugins/connector-sd-webui/index.d.ts +7 -0
  329. package/lib/plugins/connector-sd-webui/index.d.ts.map +1 -0
  330. package/lib/plugins/connector-sd-webui/index.js +171 -0
  331. package/lib/plugins/connector-sd-webui/index.js.map +1 -0
  332. package/lib/plugins/index.d.ts +22 -0
  333. package/lib/plugins/index.d.ts.map +1 -0
  334. package/lib/plugins/index.js +21 -0
  335. package/lib/plugins/index.js.map +1 -0
  336. package/lib/plugins/preset/config.d.ts +37 -0
  337. package/lib/plugins/preset/config.d.ts.map +1 -0
  338. package/lib/plugins/preset/config.js +74 -0
  339. package/lib/plugins/preset/config.js.map +1 -0
  340. package/lib/plugins/preset/index.d.ts +6 -0
  341. package/lib/plugins/preset/index.d.ts.map +1 -0
  342. package/lib/plugins/preset/index.js +58 -0
  343. package/lib/plugins/preset/index.js.map +1 -0
  344. package/lib/plugins/preset/middleware.d.ts +6 -0
  345. package/lib/plugins/preset/middleware.d.ts.map +1 -0
  346. package/lib/plugins/preset/middleware.js +126 -0
  347. package/lib/plugins/preset/middleware.js.map +1 -0
  348. package/lib/plugins/preset/remote-sync.service.d.ts +84 -0
  349. package/lib/plugins/preset/remote-sync.service.d.ts.map +1 -0
  350. package/lib/plugins/preset/remote-sync.service.js +342 -0
  351. package/lib/plugins/preset/remote-sync.service.js.map +1 -0
  352. package/lib/plugins/preset/service.d.ts +64 -0
  353. package/lib/plugins/preset/service.d.ts.map +1 -0
  354. package/lib/plugins/preset/service.js +196 -0
  355. package/lib/plugins/preset/service.js.map +1 -0
  356. package/lib/plugins/prompt-encoding/config.d.ts +25 -0
  357. package/lib/plugins/prompt-encoding/config.d.ts.map +1 -0
  358. package/lib/plugins/prompt-encoding/config.js +62 -0
  359. package/lib/plugins/prompt-encoding/config.js.map +1 -0
  360. package/lib/plugins/prompt-encoding/index.d.ts +5 -0
  361. package/lib/plugins/prompt-encoding/index.d.ts.map +1 -0
  362. package/lib/plugins/prompt-encoding/index.js +21 -0
  363. package/lib/plugins/prompt-encoding/index.js.map +1 -0
  364. package/lib/plugins/prompt-encoding/middleware.d.ts +6 -0
  365. package/lib/plugins/prompt-encoding/middleware.d.ts.map +1 -0
  366. package/lib/plugins/prompt-encoding/middleware.js +151 -0
  367. package/lib/plugins/prompt-encoding/middleware.js.map +1 -0
  368. package/lib/plugins/task/config.d.ts +15 -0
  369. package/lib/plugins/task/config.d.ts.map +1 -0
  370. package/lib/plugins/task/config.js +33 -0
  371. package/lib/plugins/task/config.js.map +1 -0
  372. package/lib/plugins/task/index.d.ts +5 -0
  373. package/lib/plugins/task/index.d.ts.map +1 -0
  374. package/lib/plugins/task/index.js +58 -0
  375. package/lib/plugins/task/index.js.map +1 -0
  376. package/lib/plugins/task/middleware.d.ts +14 -0
  377. package/lib/plugins/task/middleware.d.ts.map +1 -0
  378. package/lib/plugins/task/middleware.js +123 -0
  379. package/lib/plugins/task/middleware.js.map +1 -0
  380. package/lib/plugins/task/service.d.ts +94 -0
  381. package/lib/plugins/task/service.d.ts.map +1 -0
  382. package/lib/plugins/task/service.js +226 -0
  383. package/lib/plugins/task/service.js.map +1 -0
  384. package/lib/plugins/webui-auth/config.d.ts +12 -0
  385. package/lib/plugins/webui-auth/config.d.ts.map +1 -0
  386. package/lib/plugins/webui-auth/config.js +30 -0
  387. package/lib/plugins/webui-auth/config.js.map +1 -0
  388. package/lib/plugins/webui-auth/index.d.ts +5 -0
  389. package/lib/plugins/webui-auth/index.d.ts.map +1 -0
  390. package/lib/plugins/webui-auth/index.js +99 -0
  391. package/lib/plugins/webui-auth/index.js.map +1 -0
  392. package/lib/plugins/webui-auth/service.d.ts +42 -0
  393. package/lib/plugins/webui-auth/service.d.ts.map +1 -0
  394. package/lib/plugins/webui-auth/service.js +106 -0
  395. package/lib/plugins/webui-auth/service.js.map +1 -0
  396. package/lib/services/asset-cache.service.d.ts +133 -0
  397. package/lib/services/asset-cache.service.d.ts.map +1 -0
  398. package/lib/services/asset-cache.service.js +882 -0
  399. package/lib/services/asset-cache.service.js.map +1 -0
  400. package/lib/services/cache.service.d.ts +110 -0
  401. package/lib/services/cache.service.d.ts.map +1 -0
  402. package/lib/services/cache.service.js +333 -0
  403. package/lib/services/cache.service.js.map +1 -0
  404. package/lib/services/channel.service.d.ts +44 -0
  405. package/lib/services/channel.service.d.ts.map +1 -0
  406. package/lib/services/channel.service.js +154 -0
  407. package/lib/services/channel.service.js.map +1 -0
  408. package/lib/services/config.service.d.ts +73 -0
  409. package/lib/services/config.service.d.ts.map +1 -0
  410. package/lib/services/config.service.js +171 -0
  411. package/lib/services/config.service.js.map +1 -0
  412. package/lib/services/index.d.ts +8 -0
  413. package/lib/services/index.d.ts.map +1 -0
  414. package/lib/services/index.js +9 -0
  415. package/lib/services/index.js.map +1 -0
  416. package/lib/services/medialuna.service.d.ts +173 -0
  417. package/lib/services/medialuna.service.d.ts.map +1 -0
  418. package/lib/services/medialuna.service.js +455 -0
  419. package/lib/services/medialuna.service.js.map +1 -0
  420. package/lib/services/preset.service.d.ts +69 -0
  421. package/lib/services/preset.service.d.ts.map +1 -0
  422. package/lib/services/preset.service.js +202 -0
  423. package/lib/services/preset.service.js.map +1 -0
  424. package/lib/services/remote-preset.service.d.ts +97 -0
  425. package/lib/services/remote-preset.service.d.ts.map +1 -0
  426. package/lib/services/remote-preset.service.js +212 -0
  427. package/lib/services/remote-preset.service.js.map +1 -0
  428. package/lib/services/task.service.d.ts +57 -0
  429. package/lib/services/task.service.d.ts.map +1 -0
  430. package/lib/services/task.service.js +138 -0
  431. package/lib/services/task.service.js.map +1 -0
  432. package/lib/types/index.d.ts +357 -0
  433. package/lib/types/index.d.ts.map +1 -0
  434. package/lib/types/index.js +21 -0
  435. package/lib/types/index.js.map +1 -0
  436. package/package.json +66 -0
  437. package/readme.md +326 -0
@@ -0,0 +1,223 @@
1
+ // 中间件依赖图 - 基于 Kahn 算法的拓扑排序
2
+ import { LIFECYCLE_PHASES } from '../types';
3
+ /**
4
+ * 中间件依赖图
5
+ *
6
+ * 使用 Kahn 算法进行拓扑排序,支持:
7
+ * - before/after 依赖声明
8
+ * - 生命周期阶段约束
9
+ * - 并行执行优化(同层中间件可并行)
10
+ * - 循环依赖检测
11
+ */
12
+ export class MiddlewareDependencyGraph {
13
+ /** 所有节点 */
14
+ _nodes = new Map();
15
+ /** 依赖边 (from -> Set<to>,表示 from 执行完后 to 可以执行) */
16
+ _dependencies = new Map();
17
+ /** 缓存的拓扑排序结果 */
18
+ _cachedOrder = null;
19
+ constructor() {
20
+ this._initLifecycleNodes();
21
+ }
22
+ /** 初始化生命周期节点并建立顺序依赖 */
23
+ _initLifecycleNodes() {
24
+ for (let i = 0; i < LIFECYCLE_PHASES.length; i++) {
25
+ const phase = LIFECYCLE_PHASES[i];
26
+ this._nodes.set(phase, {
27
+ name: phase,
28
+ middleware: null,
29
+ phase: phase
30
+ });
31
+ this._dependencies.set(phase, new Set());
32
+ // 建立生命周期节点间的顺序依赖
33
+ if (i > 0) {
34
+ const prevPhase = LIFECYCLE_PHASES[i - 1];
35
+ this._dependencies.get(prevPhase).add(phase);
36
+ }
37
+ }
38
+ }
39
+ /** 注册中间件 */
40
+ register(middleware) {
41
+ this._cachedOrder = null;
42
+ const { name, phase, before = [], after = [] } = middleware;
43
+ this._nodes.set(name, {
44
+ name,
45
+ middleware,
46
+ phase
47
+ });
48
+ if (!this._dependencies.has(name)) {
49
+ this._dependencies.set(name, new Set());
50
+ }
51
+ // 处理 before 依赖
52
+ for (const target of before) {
53
+ const deps = this._dependencies.get(name) ?? new Set();
54
+ deps.add(target);
55
+ this._dependencies.set(name, deps);
56
+ }
57
+ // 处理 after 依赖
58
+ for (const target of after) {
59
+ const deps = this._dependencies.get(target) ?? new Set();
60
+ deps.add(name);
61
+ this._dependencies.set(target, deps);
62
+ }
63
+ this._addLifecycleConstraints(name, phase);
64
+ }
65
+ /** 注销中间件 */
66
+ unregister(name) {
67
+ this._cachedOrder = null;
68
+ this._nodes.delete(name);
69
+ this._dependencies.delete(name);
70
+ for (const deps of this._dependencies.values()) {
71
+ deps.delete(name);
72
+ }
73
+ }
74
+ /** 为中间件添加生命周期约束 */
75
+ _addLifecycleConstraints(name, phase) {
76
+ const phaseIndex = LIFECYCLE_PHASES.indexOf(phase);
77
+ const deps = this._dependencies.get(phase) ?? new Set();
78
+ deps.add(name);
79
+ this._dependencies.set(phase, deps);
80
+ if (phaseIndex < LIFECYCLE_PHASES.length - 1) {
81
+ const nextPhase = LIFECYCLE_PHASES[phaseIndex + 1];
82
+ const middlewareDeps = this._dependencies.get(name) ?? new Set();
83
+ middlewareDeps.add(nextPhase);
84
+ this._dependencies.set(name, middlewareDeps);
85
+ }
86
+ }
87
+ /**
88
+ * 构建执行顺序(拓扑排序)
89
+ * 返回二维数组,每个内层数组是可以并行执行的中间件
90
+ */
91
+ build() {
92
+ if (this._cachedOrder) {
93
+ return this._cachedOrder;
94
+ }
95
+ const indegree = new Map();
96
+ const tempGraph = new Map();
97
+ for (const name of this._nodes.keys()) {
98
+ indegree.set(name, 0);
99
+ tempGraph.set(name, new Set());
100
+ }
101
+ for (const [from, deps] of this._dependencies.entries()) {
102
+ if (!this._nodes.has(from))
103
+ continue;
104
+ const depsSet = tempGraph.get(from) ?? new Set();
105
+ for (const to of deps) {
106
+ if (!this._nodes.has(to))
107
+ continue;
108
+ depsSet.add(to);
109
+ indegree.set(to, (indegree.get(to) ?? 0) + 1);
110
+ }
111
+ tempGraph.set(from, depsSet);
112
+ }
113
+ const levels = [];
114
+ const visited = new Set();
115
+ let currentLevel = [];
116
+ for (const [name, degree] of indegree.entries()) {
117
+ if (degree === 0) {
118
+ currentLevel.push(name);
119
+ }
120
+ }
121
+ while (currentLevel.length > 0) {
122
+ const levelMiddlewares = [];
123
+ const nextLevel = [];
124
+ for (const current of currentLevel) {
125
+ if (visited.has(current))
126
+ continue;
127
+ visited.add(current);
128
+ const node = this._nodes.get(current);
129
+ if (node?.middleware) {
130
+ levelMiddlewares.push(node.middleware);
131
+ }
132
+ const successors = tempGraph.get(current) ?? new Set();
133
+ for (const next of successors) {
134
+ const newDegree = indegree.get(next) - 1;
135
+ indegree.set(next, newDegree);
136
+ if (newDegree === 0) {
137
+ nextLevel.push(next);
138
+ }
139
+ }
140
+ }
141
+ if (levelMiddlewares.length > 0) {
142
+ levels.push(levelMiddlewares);
143
+ }
144
+ currentLevel = nextLevel;
145
+ }
146
+ // 检测循环依赖
147
+ for (const [node, degree] of indegree.entries()) {
148
+ if (degree > 0) {
149
+ const cycles = this._findAllCycles();
150
+ const relevantCycle = cycles.find(cycle => cycle.includes(node));
151
+ throw new Error(`Circular dependency detected involving: ${relevantCycle?.join(' -> ') ?? node}`);
152
+ }
153
+ }
154
+ this._cachedOrder = levels;
155
+ return levels;
156
+ }
157
+ /** 查找所有循环依赖 */
158
+ _findAllCycles() {
159
+ const cycles = [];
160
+ const visited = new Set();
161
+ const recursionStack = new Set();
162
+ const path = [];
163
+ const dfs = (node) => {
164
+ if (recursionStack.has(node)) {
165
+ const cycleStart = path.indexOf(node);
166
+ if (cycleStart !== -1) {
167
+ cycles.push([...path.slice(cycleStart), node]);
168
+ }
169
+ return;
170
+ }
171
+ if (visited.has(node))
172
+ return;
173
+ visited.add(node);
174
+ recursionStack.add(node);
175
+ path.push(node);
176
+ const deps = this._dependencies.get(node) ?? new Set();
177
+ for (const dep of deps) {
178
+ if (this._nodes.has(dep)) {
179
+ dfs(dep);
180
+ }
181
+ }
182
+ path.pop();
183
+ recursionStack.delete(node);
184
+ };
185
+ for (const node of this._nodes.keys()) {
186
+ if (!visited.has(node)) {
187
+ dfs(node);
188
+ }
189
+ }
190
+ return cycles;
191
+ }
192
+ /** 获取所有已注册的中间件 */
193
+ getMiddlewares() {
194
+ return Array.from(this._nodes.values())
195
+ .filter(node => node.middleware !== null)
196
+ .map(node => node.middleware);
197
+ }
198
+ /** 检查中间件是否已注册 */
199
+ has(name) {
200
+ const node = this._nodes.get(name);
201
+ return node !== undefined && node.middleware !== null;
202
+ }
203
+ /** 获取中间件定义 */
204
+ get(name) {
205
+ return this._nodes.get(name)?.middleware ?? undefined;
206
+ }
207
+ /** 清空所有中间件(保留生命周期节点) */
208
+ clear() {
209
+ this._cachedOrder = null;
210
+ const lifecycleNodes = new Map();
211
+ const lifecycleDeps = new Map();
212
+ for (const phase of LIFECYCLE_PHASES) {
213
+ lifecycleNodes.set(phase, this._nodes.get(phase));
214
+ lifecycleDeps.set(phase, new Set());
215
+ }
216
+ for (let i = 0; i < LIFECYCLE_PHASES.length - 1; i++) {
217
+ lifecycleDeps.get(LIFECYCLE_PHASES[i]).add(LIFECYCLE_PHASES[i + 1]);
218
+ }
219
+ this._nodes = lifecycleNodes;
220
+ this._dependencies = lifecycleDeps;
221
+ }
222
+ }
223
+ //# sourceMappingURL=dependency-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../../src/core/pipeline/dependency-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Context, Logger } from 'koishi';
2
+ import { GenerationRequest, GenerationResult, ChannelConfig } from '../types';
3
+ import { MiddlewareDependencyGraph } from './dependency-graph';
4
+ /**
5
+ * GenerationPipeline - 生成管道
6
+ *
7
+ * 负责执行中间件链,处理生成请求
8
+ */
9
+ export declare class GenerationPipeline {
10
+ private _ctx;
11
+ private _logger;
12
+ private _graph;
13
+ private _getChannel;
14
+ private _getMiddlewareConfig;
15
+ private _isMiddlewareEnabled;
16
+ private _getService;
17
+ constructor(ctx: Context, logger: Logger, graph: MiddlewareDependencyGraph, options: {
18
+ getChannel: (id: number) => Promise<ChannelConfig | null>;
19
+ getMiddlewareConfig: (name: string) => Promise<Record<string, any> | null>;
20
+ isMiddlewareEnabled: (name: string, channel: ChannelConfig | null) => Promise<boolean>;
21
+ getService: <T>(name: string) => T | undefined;
22
+ });
23
+ /**
24
+ * 执行生成请求
25
+ */
26
+ execute(request: GenerationRequest): Promise<GenerationResult>;
27
+ /**
28
+ * 创建中间件上下文
29
+ */
30
+ private _createContext;
31
+ /**
32
+ * 执行一层中间件(并行)
33
+ */
34
+ private _executeLevel;
35
+ /**
36
+ * 执行单个中间件
37
+ */
38
+ private _executeMiddleware;
39
+ }
40
+ //# sourceMappingURL=generation-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-pipeline.d.ts","sourceRoot":"","sources":["../../../src/core/pipeline/generation-pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAIL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAU9D;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,oBAAoB,CAAuD;IACnF,OAAO,CAAC,oBAAoB,CAAmE;IAC/F,OAAO,CAAC,WAAW,CAAoC;gBAGrD,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,yBAAyB,EAChC,OAAO,EAAE;QACP,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;QACzD,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;QAC1E,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;QACtF,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAA;KAC/C;IAWH;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6FpE;;OAEG;YACW,cAAc;IA0D5B;;OAEG;YACW,aAAa;IAsD3B;;OAEG;YACW,kBAAkB;CAkBjC"}
@@ -0,0 +1,216 @@
1
+ // GenerationPipeline - 生成管道执行器
2
+ import { MiddlewareRunStatus } from '../types';
3
+ /**
4
+ * GenerationPipeline - 生成管道
5
+ *
6
+ * 负责执行中间件链,处理生成请求
7
+ */
8
+ export class GenerationPipeline {
9
+ _ctx;
10
+ _logger;
11
+ _graph;
12
+ _getChannel;
13
+ _getMiddlewareConfig;
14
+ _isMiddlewareEnabled;
15
+ _getService;
16
+ constructor(ctx, logger, graph, options) {
17
+ this._ctx = ctx;
18
+ this._logger = logger;
19
+ this._graph = graph;
20
+ this._getChannel = options.getChannel;
21
+ this._getMiddlewareConfig = options.getMiddlewareConfig;
22
+ this._isMiddlewareEnabled = options.isMiddlewareEnabled;
23
+ this._getService = options.getService;
24
+ }
25
+ /**
26
+ * 执行生成请求
27
+ */
28
+ async execute(request) {
29
+ const startTime = Date.now();
30
+ // 解析渠道 ID
31
+ let channelId;
32
+ if (typeof request.channel === 'string') {
33
+ // TODO: 通过名称查询渠道 ID
34
+ this._logger.error('Channel name lookup not implemented yet');
35
+ return {
36
+ success: false,
37
+ error: 'Channel name lookup not implemented yet'
38
+ };
39
+ }
40
+ else {
41
+ channelId = request.channel;
42
+ }
43
+ this._logger.info(`Starting generation for channel ${channelId}`);
44
+ // 创建中间件上下文
45
+ const context = await this._createContext(request, channelId);
46
+ try {
47
+ // 构建执行层级
48
+ const levels = this._graph.build();
49
+ if (levels.length === 0) {
50
+ this._logger.warn('No middlewares to execute');
51
+ return {
52
+ success: true,
53
+ output: [],
54
+ taskId: context.taskId
55
+ };
56
+ }
57
+ this._logger.info(`Executing ${levels.length} middleware levels`);
58
+ // 逐层执行中间件
59
+ for (const level of levels) {
60
+ // 过滤禁用的中间件
61
+ const enabledMiddlewares = [];
62
+ for (const middleware of level) {
63
+ if (await this._isMiddlewareEnabled(middleware.name, context.channel)) {
64
+ enabledMiddlewares.push(middleware);
65
+ }
66
+ else {
67
+ this._logger.debug(`Skipping disabled middleware: ${middleware.name}`);
68
+ }
69
+ }
70
+ if (enabledMiddlewares.length === 0)
71
+ continue;
72
+ const results = await this._executeLevel(enabledMiddlewares, context);
73
+ // 检查是否有停止或错误
74
+ for (const result of results) {
75
+ if (result.status === 'stop') {
76
+ this._logger.info(`Pipeline stopped by middleware: ${result.name}`);
77
+ return {
78
+ success: true,
79
+ output: context.output ?? [],
80
+ taskId: context.taskId
81
+ };
82
+ }
83
+ if (result.status === 'error') {
84
+ this._logger.error(`Middleware error in ${result.name}:`, result.error);
85
+ return {
86
+ success: false,
87
+ error: result.error?.message ?? 'Unknown middleware error',
88
+ taskId: context.taskId
89
+ };
90
+ }
91
+ }
92
+ }
93
+ const duration = Date.now() - startTime;
94
+ this._logger.info(`Pipeline completed in ${duration}ms, output: ${context.output?.length ?? 0} assets`);
95
+ return {
96
+ success: true,
97
+ output: context.output ?? [],
98
+ taskId: context.taskId,
99
+ duration
100
+ };
101
+ }
102
+ catch (error) {
103
+ this._logger.error('Pipeline execution error:', error);
104
+ return {
105
+ success: false,
106
+ error: error instanceof Error ? error.message : String(error),
107
+ taskId: context.taskId
108
+ };
109
+ }
110
+ }
111
+ /**
112
+ * 创建中间件上下文
113
+ */
114
+ async _createContext(request, channelId) {
115
+ const middlewareLogs = {};
116
+ // 获取渠道配置
117
+ const channel = await this._getChannel(channelId);
118
+ const context = {
119
+ ctx: this._ctx,
120
+ session: request.session ?? null,
121
+ prompt: request.prompt,
122
+ files: request.files ?? [],
123
+ parameters: request.parameters ?? {},
124
+ channelId,
125
+ channel,
126
+ output: null,
127
+ uid: request.uid ?? null,
128
+ store: new Map(),
129
+ getMiddlewareConfig: async (name) => {
130
+ // 获取全局配置
131
+ const globalConfig = await this._getMiddlewareConfig(name);
132
+ // 获取渠道级覆盖
133
+ const channelOverride = channel?.pluginOverrides?.[name];
134
+ if (!globalConfig && !channelOverride) {
135
+ return null;
136
+ }
137
+ // 合并配置(渠道级覆盖优先)
138
+ return {
139
+ ...(globalConfig ?? {}),
140
+ ...(channelOverride ?? {})
141
+ };
142
+ },
143
+ setMiddlewareLog: (name, data) => {
144
+ middlewareLogs[name] = data;
145
+ },
146
+ getMiddlewareLogs: () => middlewareLogs,
147
+ getService: (name) => {
148
+ return this._getService(name);
149
+ }
150
+ };
151
+ return context;
152
+ }
153
+ /**
154
+ * 执行一层中间件(并行)
155
+ */
156
+ async _executeLevel(middlewares, context) {
157
+ const abortController = new AbortController();
158
+ const results = [];
159
+ let hasStop = false;
160
+ let hasError = false;
161
+ const promises = middlewares.map(async (middleware, index) => {
162
+ try {
163
+ // 检查是否已中止
164
+ if (abortController.signal.aborted) {
165
+ return {
166
+ name: middleware.name,
167
+ status: 'success',
168
+ output: MiddlewareRunStatus.SKIPPED
169
+ };
170
+ }
171
+ const result = await this._executeMiddleware(middleware, context);
172
+ // 如果返回 STOP,中止其他中间件
173
+ if (result.output === MiddlewareRunStatus.STOP && !hasStop) {
174
+ hasStop = true;
175
+ abortController.abort();
176
+ results[index] = { ...result, status: 'stop' };
177
+ return results[index];
178
+ }
179
+ results[index] = result;
180
+ return result;
181
+ }
182
+ catch (error) {
183
+ if (!hasError) {
184
+ hasError = true;
185
+ abortController.abort();
186
+ }
187
+ const result = {
188
+ name: middleware.name,
189
+ status: 'error',
190
+ output: MiddlewareRunStatus.STOP,
191
+ error: error instanceof Error ? error : new Error(String(error))
192
+ };
193
+ results[index] = result;
194
+ return result;
195
+ }
196
+ });
197
+ await Promise.all(promises);
198
+ return results.filter(r => r !== undefined);
199
+ }
200
+ /**
201
+ * 执行单个中间件
202
+ */
203
+ async _executeMiddleware(middleware, context) {
204
+ this._logger.info(`Executing middleware: ${middleware.name}`);
205
+ const next = async () => {
206
+ return MiddlewareRunStatus.CONTINUE;
207
+ };
208
+ const output = await middleware.execute(context, next);
209
+ return {
210
+ name: middleware.name,
211
+ status: 'success',
212
+ output
213
+ };
214
+ }
215
+ }
216
+ //# sourceMappingURL=generation-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-pipeline.js","sourceRoot":"","sources":["../../../src/core/pipeline/generation-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { MiddlewareDependencyGraph } from './dependency-graph';
2
+ export { MiddlewareRegistry } from './middleware-registry';
3
+ export { GenerationPipeline } from './generation-pipeline';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/pipeline/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,5 @@
1
+ // Pipeline Module Exports
2
+ export { MiddlewareDependencyGraph } from './dependency-graph';
3
+ export { MiddlewareRegistry } from './middleware-registry';
4
+ export { GenerationPipeline } from './generation-pipeline';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/pipeline/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { Context } from 'koishi';
2
+ import type { MiddlewareDefinition, CardField } from '../types';
3
+ import { MiddlewareDependencyGraph } from './dependency-graph';
4
+ /**
5
+ * 中间件注册中心
6
+ *
7
+ * 管理中间件的注册、注销和查询
8
+ */
9
+ export declare class MiddlewareRegistry {
10
+ private _graph;
11
+ private _ctx;
12
+ constructor(ctx: Context);
13
+ /**
14
+ * 注册中间件
15
+ * @returns 注销函数
16
+ */
17
+ register(middleware: MiddlewareDefinition): () => void;
18
+ /** 注销中间件 */
19
+ unregister(name: string): void;
20
+ /** 获取中间件定义 */
21
+ get(name: string): MiddlewareDefinition | undefined;
22
+ /** 检查中间件是否存在 */
23
+ has(name: string): boolean;
24
+ /** 获取所有中间件 */
25
+ list(): MiddlewareDefinition[];
26
+ /** 获取依赖图 */
27
+ getGraph(): MiddlewareDependencyGraph;
28
+ /** 获取所有中间件的卡片展示字段(去重) */
29
+ getCardFields(): CardField[];
30
+ /** 清空所有中间件 */
31
+ clear(): void;
32
+ }
33
+ //# sourceMappingURL=middleware-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware-registry.d.ts","sourceRoot":"","sources":["../../../src/core/pipeline/middleware-registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,IAAI,CAAS;gBAET,GAAG,EAAE,OAAO;IAKxB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAatD,YAAY;IACZ,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS9B,cAAc;IACd,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAInD,gBAAgB;IAChB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,cAAc;IACd,IAAI,IAAI,oBAAoB,EAAE;IAI9B,YAAY;IACZ,QAAQ,IAAI,yBAAyB;IAIrC,yBAAyB;IACzB,aAAa,IAAI,SAAS,EAAE;IAmB5B,cAAc;IACd,KAAK,IAAI,IAAI;CAMd"}
@@ -0,0 +1,78 @@
1
+ // 中间件注册中心
2
+ import { MiddlewareDependencyGraph } from './dependency-graph';
3
+ /**
4
+ * 中间件注册中心
5
+ *
6
+ * 管理中间件的注册、注销和查询
7
+ */
8
+ export class MiddlewareRegistry {
9
+ _graph;
10
+ _ctx;
11
+ constructor(ctx) {
12
+ this._ctx = ctx;
13
+ this._graph = new MiddlewareDependencyGraph();
14
+ }
15
+ /**
16
+ * 注册中间件
17
+ * @returns 注销函数
18
+ */
19
+ register(middleware) {
20
+ if (this._graph.has(middleware.name)) {
21
+ throw new Error(`Middleware "${middleware.name}" is already registered`);
22
+ }
23
+ this._graph.register(middleware);
24
+ this._ctx.emit('mediaLuna/middleware-added', middleware);
25
+ return () => {
26
+ this.unregister(middleware.name);
27
+ };
28
+ }
29
+ /** 注销中间件 */
30
+ unregister(name) {
31
+ if (!this._graph.has(name)) {
32
+ return;
33
+ }
34
+ this._graph.unregister(name);
35
+ this._ctx.emit('mediaLuna/middleware-removed', name);
36
+ }
37
+ /** 获取中间件定义 */
38
+ get(name) {
39
+ return this._graph.get(name);
40
+ }
41
+ /** 检查中间件是否存在 */
42
+ has(name) {
43
+ return this._graph.has(name);
44
+ }
45
+ /** 获取所有中间件 */
46
+ list() {
47
+ return this._graph.getMiddlewares();
48
+ }
49
+ /** 获取依赖图 */
50
+ getGraph() {
51
+ return this._graph;
52
+ }
53
+ /** 获取所有中间件的卡片展示字段(去重) */
54
+ getCardFields() {
55
+ const fields = [];
56
+ const seen = new Set();
57
+ for (const middleware of this._graph.getMiddlewares()) {
58
+ if (middleware.cardFields) {
59
+ for (const field of middleware.cardFields) {
60
+ const key = `${field.source}:${field.key}`;
61
+ if (!seen.has(key)) {
62
+ seen.add(key);
63
+ fields.push(field);
64
+ }
65
+ }
66
+ }
67
+ }
68
+ return fields;
69
+ }
70
+ /** 清空所有中间件 */
71
+ clear() {
72
+ for (const middleware of this._graph.getMiddlewares()) {
73
+ this._ctx.emit('mediaLuna/middleware-removed', middleware.name);
74
+ }
75
+ this._graph.clear();
76
+ }
77
+ }
78
+ //# sourceMappingURL=middleware-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware-registry.js","sourceRoot":"","sources":["../../../src/core/pipeline/middleware-registry.ts"],"names":[],"mappings":"AAAA,UAAU;AAIV,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAA2B;IACjC,IAAI,CAAS;IAErB,YAAY,GAAY;QACtB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAyB,EAAE,CAAA;IAC/C,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,UAAgC;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,CAAC,IAAI,yBAAyB,CAAC,CAAA;QAC1E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAA;QAExD,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC,CAAA;IACH,CAAC;IAED,YAAY;IACZ,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAA;IACtD,CAAC;IAED,cAAc;IACd,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,gBAAgB;IAChB,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,cAAc;IACd,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;IACrC,CAAC;IAED,YAAY;IACZ,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,yBAAyB;IACzB,aAAa;QACX,MAAM,MAAM,GAAgB,EAAE,CAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAE9B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;YACtD,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC1B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;oBAC1C,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,CAAA;oBAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;wBACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc;IACd,KAAK;QACH,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;CACF"}