@proofhound/core 0.1.7 → 0.1.9

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 (199) hide show
  1. package/dist/server/channels/mcp/annotation.tools.d.ts.map +1 -1
  2. package/dist/server/channels/mcp/annotation.tools.js +18 -5
  3. package/dist/server/channels/mcp/annotation.tools.js.map +1 -1
  4. package/dist/server/channels/mcp/canary-release.tools.d.ts.map +1 -1
  5. package/dist/server/channels/mcp/canary-release.tools.js +2 -1
  6. package/dist/server/channels/mcp/canary-release.tools.js.map +1 -1
  7. package/dist/server/channels/mcp/dataset.tools.d.ts.map +1 -1
  8. package/dist/server/channels/mcp/dataset.tools.js +49 -1
  9. package/dist/server/channels/mcp/dataset.tools.js.map +1 -1
  10. package/dist/server/channels/mcp/mcp-server.factory.d.ts +9 -1
  11. package/dist/server/channels/mcp/mcp-server.factory.d.ts.map +1 -1
  12. package/dist/server/channels/mcp/mcp-server.factory.js +28 -3
  13. package/dist/server/channels/mcp/mcp-server.factory.js.map +1 -1
  14. package/dist/server/channels/mcp/prompt.tools.d.ts.map +1 -1
  15. package/dist/server/channels/mcp/prompt.tools.js +34 -2
  16. package/dist/server/channels/mcp/prompt.tools.js.map +1 -1
  17. package/dist/server/channels/mcp/release-line.tools.d.ts.map +1 -1
  18. package/dist/server/channels/mcp/release-line.tools.js +292 -4
  19. package/dist/server/channels/mcp/release-line.tools.js.map +1 -1
  20. package/dist/server/channels/mcp/run-result.tools.d.ts.map +1 -1
  21. package/dist/server/channels/mcp/run-result.tools.js +7 -5
  22. package/dist/server/channels/mcp/run-result.tools.js.map +1 -1
  23. package/dist/server/common/contracts/index.d.ts +1 -0
  24. package/dist/server/common/contracts/index.d.ts.map +1 -1
  25. package/dist/server/common/contracts/index.js +1 -0
  26. package/dist/server/common/contracts/index.js.map +1 -1
  27. package/dist/server/common/contracts/local-contracts.module.d.ts.map +1 -1
  28. package/dist/server/common/contracts/local-contracts.module.js +3 -0
  29. package/dist/server/common/contracts/local-contracts.module.js.map +1 -1
  30. package/dist/server/common/contracts/usage-metering.hook.d.ts +33 -0
  31. package/dist/server/common/contracts/usage-metering.hook.d.ts.map +1 -0
  32. package/dist/server/common/contracts/usage-metering.hook.js +43 -0
  33. package/dist/server/common/contracts/usage-metering.hook.js.map +1 -0
  34. package/dist/server/infrastructure/llm/run-result-writer.d.ts +4 -1
  35. package/dist/server/infrastructure/llm/run-result-writer.d.ts.map +1 -1
  36. package/dist/server/infrastructure/llm/run-result-writer.js +66 -14
  37. package/dist/server/infrastructure/llm/run-result-writer.js.map +1 -1
  38. package/dist/server/modules/annotation/annotation.controller.d.ts +28 -13
  39. package/dist/server/modules/annotation/annotation.controller.d.ts.map +1 -1
  40. package/dist/server/modules/annotation/annotation.repository.d.ts +6 -2
  41. package/dist/server/modules/annotation/annotation.repository.d.ts.map +1 -1
  42. package/dist/server/modules/annotation/annotation.repository.js +340 -96
  43. package/dist/server/modules/annotation/annotation.repository.js.map +1 -1
  44. package/dist/server/modules/annotation/annotation.service.d.ts.map +1 -1
  45. package/dist/server/modules/annotation/annotation.service.js +62 -10
  46. package/dist/server/modules/annotation/annotation.service.js.map +1 -1
  47. package/dist/server/modules/canary-release/canary-release.controller.d.ts +63 -42
  48. package/dist/server/modules/canary-release/canary-release.controller.d.ts.map +1 -1
  49. package/dist/server/modules/canary-release/canary-release.repository.d.ts +23 -5
  50. package/dist/server/modules/canary-release/canary-release.repository.d.ts.map +1 -1
  51. package/dist/server/modules/canary-release/canary-release.repository.js +28 -12
  52. package/dist/server/modules/canary-release/canary-release.repository.js.map +1 -1
  53. package/dist/server/modules/canary-release/canary-release.service.d.ts.map +1 -1
  54. package/dist/server/modules/canary-release/canary-release.service.js +32 -10
  55. package/dist/server/modules/canary-release/canary-release.service.js.map +1 -1
  56. package/dist/server/modules/canary-release/canary-runtime.d.ts +11 -1
  57. package/dist/server/modules/canary-release/canary-runtime.d.ts.map +1 -1
  58. package/dist/server/modules/canary-release/canary-runtime.js +63 -8
  59. package/dist/server/modules/canary-release/canary-runtime.js.map +1 -1
  60. package/dist/server/modules/dataset/dataset-deletion.hook.d.ts +16 -0
  61. package/dist/server/modules/dataset/dataset-deletion.hook.d.ts.map +1 -0
  62. package/dist/server/modules/dataset/dataset-deletion.hook.js +57 -0
  63. package/dist/server/modules/dataset/dataset-deletion.hook.js.map +1 -0
  64. package/dist/server/modules/dataset/dataset-import.controller.d.ts +2 -0
  65. package/dist/server/modules/dataset/dataset-import.controller.d.ts.map +1 -1
  66. package/dist/server/modules/dataset/dataset-import.service.d.ts.map +1 -1
  67. package/dist/server/modules/dataset/dataset-import.service.js +7 -0
  68. package/dist/server/modules/dataset/dataset-import.service.js.map +1 -1
  69. package/dist/server/modules/dataset/dataset.controller.d.ts +98 -0
  70. package/dist/server/modules/dataset/dataset.controller.d.ts.map +1 -1
  71. package/dist/server/modules/dataset/dataset.controller.js +36 -0
  72. package/dist/server/modules/dataset/dataset.controller.js.map +1 -1
  73. package/dist/server/modules/dataset/dataset.module.d.ts.map +1 -1
  74. package/dist/server/modules/dataset/dataset.module.js +8 -1
  75. package/dist/server/modules/dataset/dataset.module.js.map +1 -1
  76. package/dist/server/modules/dataset/dataset.repository.d.ts +19 -0
  77. package/dist/server/modules/dataset/dataset.repository.d.ts.map +1 -1
  78. package/dist/server/modules/dataset/dataset.repository.js +248 -9
  79. package/dist/server/modules/dataset/dataset.repository.js.map +1 -1
  80. package/dist/server/modules/dataset/dataset.service.d.ts +45 -1
  81. package/dist/server/modules/dataset/dataset.service.d.ts.map +1 -1
  82. package/dist/server/modules/dataset/dataset.service.js +132 -7
  83. package/dist/server/modules/dataset/dataset.service.js.map +1 -1
  84. package/dist/server/modules/experiment/experiment.controller.d.ts +8 -8
  85. package/dist/server/modules/experiment/experiment.repository.d.ts.map +1 -1
  86. package/dist/server/modules/experiment/experiment.repository.js +28 -0
  87. package/dist/server/modules/experiment/experiment.repository.js.map +1 -1
  88. package/dist/server/modules/experiment/experiment.service.d.ts.map +1 -1
  89. package/dist/server/modules/experiment/experiment.service.js +6 -3
  90. package/dist/server/modules/experiment/experiment.service.js.map +1 -1
  91. package/dist/server/modules/model/model.service.d.ts +5 -1
  92. package/dist/server/modules/model/model.service.d.ts.map +1 -1
  93. package/dist/server/modules/model/model.service.js +65 -3
  94. package/dist/server/modules/model/model.service.js.map +1 -1
  95. package/dist/server/modules/model/project-model.controller.d.ts +5 -5
  96. package/dist/server/modules/monitoring/monitoring.repository.js +1 -1
  97. package/dist/server/modules/optimization/optimization.controller.d.ts +12 -12
  98. package/dist/server/modules/optimization/optimization.repository.d.ts +6 -0
  99. package/dist/server/modules/optimization/optimization.repository.d.ts.map +1 -1
  100. package/dist/server/modules/optimization/optimization.repository.js +96 -4
  101. package/dist/server/modules/optimization/optimization.repository.js.map +1 -1
  102. package/dist/server/modules/optimization/optimization.service.d.ts.map +1 -1
  103. package/dist/server/modules/optimization/optimization.service.js +13 -4
  104. package/dist/server/modules/optimization/optimization.service.js.map +1 -1
  105. package/dist/server/modules/optimization/optimization.workflow.js +1 -1
  106. package/dist/server/modules/optimization/optimization.workflow.js.map +1 -1
  107. package/dist/server/modules/production-release/production-release.controller.d.ts +12 -9
  108. package/dist/server/modules/production-release/production-release.controller.d.ts.map +1 -1
  109. package/dist/server/modules/production-release/production-release.repository.d.ts +2 -1
  110. package/dist/server/modules/production-release/production-release.repository.d.ts.map +1 -1
  111. package/dist/server/modules/production-release/production-release.repository.js +3 -1
  112. package/dist/server/modules/production-release/production-release.repository.js.map +1 -1
  113. package/dist/server/modules/production-release/production-release.service.d.ts.map +1 -1
  114. package/dist/server/modules/production-release/production-release.service.js +10 -1
  115. package/dist/server/modules/production-release/production-release.service.js.map +1 -1
  116. package/dist/server/modules/prompt/prompt-deletion.hook.d.ts +18 -0
  117. package/dist/server/modules/prompt/prompt-deletion.hook.d.ts.map +1 -0
  118. package/dist/server/modules/prompt/prompt-deletion.hook.js +69 -0
  119. package/dist/server/modules/prompt/prompt-deletion.hook.js.map +1 -0
  120. package/dist/server/modules/prompt/prompt.controller.d.ts +146 -38
  121. package/dist/server/modules/prompt/prompt.controller.d.ts.map +1 -1
  122. package/dist/server/modules/prompt/prompt.controller.js +24 -0
  123. package/dist/server/modules/prompt/prompt.controller.js.map +1 -1
  124. package/dist/server/modules/prompt/prompt.module.d.ts.map +1 -1
  125. package/dist/server/modules/prompt/prompt.module.js +7 -1
  126. package/dist/server/modules/prompt/prompt.module.js.map +1 -1
  127. package/dist/server/modules/prompt/prompt.repository.d.ts +33 -3
  128. package/dist/server/modules/prompt/prompt.repository.d.ts.map +1 -1
  129. package/dist/server/modules/prompt/prompt.repository.js +267 -39
  130. package/dist/server/modules/prompt/prompt.repository.js.map +1 -1
  131. package/dist/server/modules/prompt/prompt.service.d.ts +78 -6
  132. package/dist/server/modules/prompt/prompt.service.d.ts.map +1 -1
  133. package/dist/server/modules/prompt/prompt.service.js +79 -49
  134. package/dist/server/modules/prompt/prompt.service.js.map +1 -1
  135. package/dist/server/modules/quick-start/quick-start.controller.d.ts +1 -1
  136. package/dist/server/modules/quick-start/quick-start.service.d.ts +1 -1
  137. package/dist/server/modules/release-line/release-line-deletion.hook.d.ts +16 -0
  138. package/dist/server/modules/release-line/release-line-deletion.hook.d.ts.map +1 -0
  139. package/dist/server/modules/release-line/release-line-deletion.hook.js +60 -0
  140. package/dist/server/modules/release-line/release-line-deletion.hook.js.map +1 -0
  141. package/dist/server/modules/release-line/release-line.controller.d.ts +2503 -82
  142. package/dist/server/modules/release-line/release-line.controller.d.ts.map +1 -1
  143. package/dist/server/modules/release-line/release-line.controller.js +169 -0
  144. package/dist/server/modules/release-line/release-line.controller.js.map +1 -1
  145. package/dist/server/modules/release-line/release-line.module.d.ts.map +1 -1
  146. package/dist/server/modules/release-line/release-line.module.js +8 -1
  147. package/dist/server/modules/release-line/release-line.module.js.map +1 -1
  148. package/dist/server/modules/release-line/release-line.repository.d.ts +55 -3
  149. package/dist/server/modules/release-line/release-line.repository.d.ts.map +1 -1
  150. package/dist/server/modules/release-line/release-line.repository.js +797 -111
  151. package/dist/server/modules/release-line/release-line.repository.js.map +1 -1
  152. package/dist/server/modules/release-line/release-line.service.d.ts +25 -5
  153. package/dist/server/modules/release-line/release-line.service.d.ts.map +1 -1
  154. package/dist/server/modules/release-line/release-line.service.js +312 -4
  155. package/dist/server/modules/release-line/release-line.service.js.map +1 -1
  156. package/dist/server/modules/release-line/release-runner.repository.d.ts +2 -1
  157. package/dist/server/modules/release-line/release-runner.repository.d.ts.map +1 -1
  158. package/dist/server/modules/release-line/release-runner.repository.js +14 -10
  159. package/dist/server/modules/release-line/release-runner.repository.js.map +1 -1
  160. package/dist/server/modules/release-line/release-runner.service.d.ts +6 -2
  161. package/dist/server/modules/release-line/release-runner.service.d.ts.map +1 -1
  162. package/dist/server/modules/release-line/release-runner.service.js +138 -11
  163. package/dist/server/modules/release-line/release-runner.service.js.map +1 -1
  164. package/dist/server/modules/release-line/release-variable-mapping.d.ts +9 -0
  165. package/dist/server/modules/release-line/release-variable-mapping.d.ts.map +1 -0
  166. package/dist/server/modules/release-line/release-variable-mapping.js +83 -0
  167. package/dist/server/modules/release-line/release-variable-mapping.js.map +1 -0
  168. package/dist/server/modules/run-result/run-result.controller.d.ts +10 -7
  169. package/dist/server/modules/run-result/run-result.controller.d.ts.map +1 -1
  170. package/dist/server/modules/run-result/run-result.repository.d.ts.map +1 -1
  171. package/dist/server/modules/run-result/run-result.repository.js +43 -18
  172. package/dist/server/modules/run-result/run-result.repository.js.map +1 -1
  173. package/dist/webhook/channels/webhook/webhook.controller.d.ts +4 -0
  174. package/dist/webhook/channels/webhook/webhook.controller.d.ts.map +1 -1
  175. package/dist/webhook/channels/webhook/webhook.service.d.ts +2 -0
  176. package/dist/webhook/channels/webhook/webhook.service.d.ts.map +1 -1
  177. package/dist/webhook/channels/webhook/webhook.service.js +6 -0
  178. package/dist/webhook/channels/webhook/webhook.service.js.map +1 -1
  179. package/dist/worker/consumers/llm.consumer.d.ts +4 -1
  180. package/dist/worker/consumers/llm.consumer.d.ts.map +1 -1
  181. package/dist/worker/consumers/llm.consumer.js +41 -6
  182. package/dist/worker/consumers/llm.consumer.js.map +1 -1
  183. package/dist/worker/consumers/probe.consumer.d.ts +4 -1
  184. package/dist/worker/consumers/probe.consumer.d.ts.map +1 -1
  185. package/dist/worker/consumers/probe.consumer.js +35 -3
  186. package/dist/worker/consumers/probe.consumer.js.map +1 -1
  187. package/dist/worker/runners/llm-runner.d.ts +3 -1
  188. package/dist/worker/runners/llm-runner.d.ts.map +1 -1
  189. package/dist/worker/runners/llm-runner.js +110 -55
  190. package/dist/worker/runners/llm-runner.js.map +1 -1
  191. package/dist/worker/runners/probe-runner.d.ts +9 -2
  192. package/dist/worker/runners/probe-runner.d.ts.map +1 -1
  193. package/dist/worker/runners/probe-runner.js +46 -2
  194. package/dist/worker/runners/probe-runner.js.map +1 -1
  195. package/dist/worker/runners/run-result-writer.d.ts +4 -1
  196. package/dist/worker/runners/run-result-writer.d.ts.map +1 -1
  197. package/dist/worker/runners/run-result-writer.js +63 -13
  198. package/dist/worker/runners/run-result-writer.js.map +1 -1
  199. package/package.json +12 -12
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createReleaseLineTools = createReleaseLineTools;
4
4
  /**
5
5
  * MCP tool definitions for unified release lines.
6
- * Mirrors the REST surface for release line read APIs, traffic-ratio adjustment,
7
- * and run config changes.
6
+ * Mirrors the REST surface for release line read APIs, canary promotion,
7
+ * traffic-ratio adjustment, and config changes.
8
8
  * See docs/specs/00-overview.md §5 (three-channel parity) + docs/specs/27-releases.md.
9
9
  */
10
10
  const shared_1 = require("@proofhound/shared");
@@ -54,6 +54,22 @@ function createReleaseLineTools(service) {
54
54
  return service.listEvents(projectId, releaseLineId, (0, mcp_context_1.getMcpActor)(ctx));
55
55
  },
56
56
  },
57
+ {
58
+ name: 'release_line_delete_impact',
59
+ description: '预览彻底删除发布线会移除的版本、事件、发布运行结果与标注任务',
60
+ inputSchema: {
61
+ type: 'object',
62
+ required: ['releaseLineId'],
63
+ properties: {
64
+ releaseLineId: { type: 'string', format: 'uuid' },
65
+ },
66
+ },
67
+ handler: async (input, ctx) => {
68
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
69
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
70
+ return service.getDeletionImpact(projectId, releaseLineId, (0, mcp_context_1.getMcpActor)(ctx));
71
+ },
72
+ },
57
73
  {
58
74
  name: 'release_line_update_traffic_ratio',
59
75
  description: '调整发布线当前灰度 lane 的流量比例',
@@ -72,9 +88,167 @@ function createReleaseLineTools(service) {
72
88
  return service.updateTrafficRatio(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
73
89
  },
74
90
  },
91
+ {
92
+ name: 'release_line_promote_canary',
93
+ description: '将发布线当前运行中的灰度 lane 提升为正式发布',
94
+ inputSchema: {
95
+ type: 'object',
96
+ required: ['releaseLineId'],
97
+ properties: {
98
+ releaseLineId: { type: 'string', format: 'uuid' },
99
+ },
100
+ },
101
+ handler: async (input, ctx) => {
102
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
103
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
104
+ return service.promoteCanary(projectId, releaseLineId, (0, mcp_context_1.getMcpActor)(ctx));
105
+ },
106
+ },
107
+ {
108
+ name: 'release_line_stop',
109
+ description: '停止发布线当前运行中的 production / 灰度 lane',
110
+ inputSchema: {
111
+ type: 'object',
112
+ required: ['releaseLineId', 'reason'],
113
+ properties: {
114
+ releaseLineId: { type: 'string', format: 'uuid' },
115
+ reason: { type: 'string', minLength: 1, maxLength: 2000 },
116
+ },
117
+ },
118
+ handler: async (input, ctx) => {
119
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
120
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
121
+ const body = shared_1.stopReleaseLineInputSchema.parse({ reason: input.reason });
122
+ return service.stopLine(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
123
+ },
124
+ },
125
+ {
126
+ name: 'release_line_start',
127
+ description: '从最近一次停止的 production / 灰度 lane 恢复运行发布线',
128
+ inputSchema: {
129
+ type: 'object',
130
+ required: ['releaseLineId'],
131
+ properties: {
132
+ releaseLineId: { type: 'string', format: 'uuid' },
133
+ reason: { type: 'string', minLength: 1, maxLength: 2000 },
134
+ },
135
+ },
136
+ handler: async (input, ctx) => {
137
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
138
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
139
+ const body = shared_1.startReleaseLineInputSchema.parse({ reason: input.reason });
140
+ return service.startLine(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
141
+ },
142
+ },
143
+ {
144
+ name: 'release_line_archive',
145
+ description: '归档已停止的发布线',
146
+ inputSchema: {
147
+ type: 'object',
148
+ required: ['releaseLineId'],
149
+ properties: {
150
+ releaseLineId: { type: 'string', format: 'uuid' },
151
+ reason: { type: 'string', minLength: 1, maxLength: 2000 },
152
+ },
153
+ },
154
+ handler: async (input, ctx) => {
155
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
156
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
157
+ const body = shared_1.archiveReleaseLineInputSchema.parse({ reason: input.reason });
158
+ return service.archiveLine(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
159
+ },
160
+ },
161
+ {
162
+ name: 'release_line_unarchive',
163
+ description: '取消归档发布线并恢复为 stopped 状态',
164
+ inputSchema: {
165
+ type: 'object',
166
+ required: ['releaseLineId'],
167
+ properties: {
168
+ releaseLineId: { type: 'string', format: 'uuid' },
169
+ reason: { type: 'string', minLength: 1, maxLength: 2000 },
170
+ },
171
+ },
172
+ handler: async (input, ctx) => {
173
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
174
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
175
+ const body = shared_1.unarchiveReleaseLineInputSchema.parse({ reason: input.reason });
176
+ return service.unarchiveLine(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
177
+ },
178
+ },
179
+ {
180
+ name: 'release_line_restore_history_to_production',
181
+ description: '将发布线的某条历史事件快照恢复到当前正式发布槽位',
182
+ inputSchema: {
183
+ type: 'object',
184
+ required: ['releaseLineId', 'sourceEventId'],
185
+ properties: {
186
+ releaseLineId: { type: 'string', format: 'uuid' },
187
+ sourceEventId: { type: 'string', format: 'uuid' },
188
+ reason: { type: 'string', minLength: 1, maxLength: 2000 },
189
+ },
190
+ },
191
+ handler: async (input, ctx) => {
192
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
193
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
194
+ const body = shared_1.restoreReleaseLineHistoryInputSchema.parse({
195
+ sourceEventId: input.sourceEventId,
196
+ reason: input.reason,
197
+ });
198
+ return service.restoreHistoryToProduction(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
199
+ },
200
+ },
201
+ {
202
+ name: 'release_line_restore_history_to_canary',
203
+ description: '将发布线的某条历史事件快照恢复到当前灰度候选槽位',
204
+ inputSchema: {
205
+ type: 'object',
206
+ required: ['releaseLineId', 'sourceEventId'],
207
+ properties: {
208
+ releaseLineId: { type: 'string', format: 'uuid' },
209
+ sourceEventId: { type: 'string', format: 'uuid' },
210
+ reason: { type: 'string', minLength: 1, maxLength: 2000 },
211
+ },
212
+ },
213
+ handler: async (input, ctx) => {
214
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
215
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
216
+ const body = shared_1.restoreReleaseLineHistoryInputSchema.parse({
217
+ sourceEventId: input.sourceEventId,
218
+ reason: input.reason,
219
+ });
220
+ return service.restoreHistoryToCanary(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
221
+ },
222
+ },
223
+ {
224
+ name: 'release_line_delete',
225
+ description: '彻底删除发布线聚合及其版本、事件、发布运行结果与标注任务',
226
+ inputSchema: {
227
+ type: 'object',
228
+ required: ['releaseLineId', 'confirmationName'],
229
+ properties: {
230
+ releaseLineId: { type: 'string', format: 'uuid' },
231
+ confirmationName: { type: 'string', minLength: 1, maxLength: 200 },
232
+ reason: { type: 'string', minLength: 1, maxLength: 2000 },
233
+ },
234
+ },
235
+ handler: async (input, ctx) => {
236
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
237
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
238
+ const body = shared_1.deleteReleaseLineInputSchema.parse({
239
+ confirmationName: input.confirmationName,
240
+ reason: input.reason,
241
+ });
242
+ await service.deleteLine(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
243
+ return { ok: true };
244
+ },
245
+ },
75
246
  {
76
247
  name: 'release_line_update_run_config',
77
- description: '通过配置变更事件更新发布线当前 production 或灰度 lane 的模型与运行配置',
248
+ description: '通过配置变更事件更新发布线当前 production 或灰度 lane 的模型、运行配置与记录模式。' +
249
+ 'runConfig 必含 rpmLimit / tpmLimit(正整数),可选 concurrency / temperature;' +
250
+ 'laneType="canary" 时额外可带 stopConditions({ maxDurationSeconds?, maxSamples? } 至少一项非空)。' +
251
+ '不符合所选 lane 形状会被拒绝。',
78
252
  inputSchema: {
79
253
  type: 'object',
80
254
  required: ['releaseLineId', 'laneType', 'runConfig'],
@@ -82,7 +256,16 @@ function createReleaseLineTools(service) {
82
256
  releaseLineId: { type: 'string', format: 'uuid' },
83
257
  laneType: { type: 'string', enum: ['production', 'canary'] },
84
258
  modelId: { type: 'string', format: 'uuid' },
85
- runConfig: { type: 'object', additionalProperties: true },
259
+ runConfig: {
260
+ // Shape is laneType-dependent (DTO discriminatedUnion): canary additionally accepts
261
+ // stopConditions; both lanes require rpmLimit/tpmLimit. A mismatch is rejected by the DTO
262
+ // and surfaced as a structured tool error (isError) by the dispatch layer, not a 500.
263
+ description: '运行配置;必含 rpmLimit / tpmLimit,可选 concurrency / temperature;canary lane 额外可带 stopConditions。',
264
+ type: 'object',
265
+ additionalProperties: true,
266
+ },
267
+ recordMode: { type: 'string', enum: ['all', 'selected_categories'] },
268
+ recordCategories: { type: 'array', items: { type: 'string' } },
86
269
  },
87
270
  },
88
271
  handler: async (input, ctx) => {
@@ -92,10 +275,115 @@ function createReleaseLineTools(service) {
92
275
  laneType: input.laneType,
93
276
  modelId: input.modelId,
94
277
  runConfig: input.runConfig,
278
+ recordMode: input.recordMode,
279
+ recordCategories: input.recordCategories,
95
280
  });
96
281
  return service.updateRunConfig(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
97
282
  },
98
283
  },
284
+ {
285
+ name: 'release_line_update_output_route',
286
+ description: '通过配置变更事件更新发布线当前 production 或灰度 lane 的输出连接器与输出字段映射',
287
+ inputSchema: {
288
+ type: 'object',
289
+ required: ['releaseLineId', 'laneType', 'outputConnectorIds', 'outputMapping'],
290
+ properties: {
291
+ releaseLineId: { type: 'string', format: 'uuid' },
292
+ laneType: { type: 'string', enum: ['production', 'canary'] },
293
+ outputConnectorIds: {
294
+ type: 'array',
295
+ items: { type: 'string', format: 'uuid' },
296
+ },
297
+ outputMapping: {
298
+ type: 'array',
299
+ items: {
300
+ type: 'object',
301
+ required: ['connectorId', 'outputMapping'],
302
+ properties: {
303
+ connectorId: { type: 'string', format: 'uuid' },
304
+ outputMapping: {
305
+ type: 'array',
306
+ items: {
307
+ type: 'object',
308
+ required: ['source', 'target'],
309
+ properties: {
310
+ source: { type: 'string', minLength: 1 },
311
+ target: { type: 'string', minLength: 1 },
312
+ },
313
+ },
314
+ },
315
+ },
316
+ },
317
+ },
318
+ },
319
+ },
320
+ handler: async (input, ctx) => {
321
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
322
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
323
+ const body = shared_1.updateReleaseLineOutputRouteInputSchema.parse({
324
+ laneType: input.laneType,
325
+ outputConnectorIds: input.outputConnectorIds,
326
+ outputMapping: input.outputMapping,
327
+ });
328
+ return service.updateOutputRoute(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
329
+ },
330
+ },
331
+ {
332
+ name: 'release_line_update_input_route',
333
+ description: '通过配置变更事件更新发布线当前 production 或灰度 lane 的字段映射与过滤规则。' +
334
+ 'variableMapping 的形状由 laneType 决定:laneType="production" 必须是对象映射({ 源字段: 目标变量 } 的字符串键值对);' +
335
+ 'laneType="canary" 必须是数组(每项 { source, target, required?, defaultValue? })。形状与 laneType 不匹配会被拒绝。',
336
+ inputSchema: {
337
+ type: 'object',
338
+ required: ['releaseLineId', 'laneType', 'variableMapping', 'externalIdField'],
339
+ properties: {
340
+ releaseLineId: { type: 'string', format: 'uuid' },
341
+ laneType: { type: 'string', enum: ['production', 'canary'] },
342
+ variableMapping: {
343
+ // The accepted shape is cross-field dependent on laneType (a Zod discriminatedUnion in the
344
+ // DTO): production => object map, canary => array. JSON Schema oneOf cannot express that
345
+ // dependency, so both shapes are advertised here and the per-lane requirement is documented
346
+ // in the tool description; a mismatched shape is rejected by the DTO and surfaced as a
347
+ // structured tool error (isError) rather than a 500.
348
+ description: 'laneType="production": 对象映射(值为字符串的键值对);laneType="canary": 映射项数组({ source, target, required?, defaultValue? })。',
349
+ oneOf: [
350
+ {
351
+ description: 'production lane 形状:源字段 -> 目标变量 的字符串映射',
352
+ type: 'object',
353
+ additionalProperties: { type: 'string' },
354
+ },
355
+ {
356
+ description: 'canary lane 形状:映射项数组',
357
+ type: 'array',
358
+ items: {
359
+ type: 'object',
360
+ required: ['source', 'target'],
361
+ properties: {
362
+ source: { type: 'string', minLength: 1 },
363
+ target: { type: 'string', minLength: 1 },
364
+ required: { type: 'boolean' },
365
+ defaultValue: {},
366
+ },
367
+ },
368
+ },
369
+ ],
370
+ },
371
+ filterRules: { type: ['object', 'null'], additionalProperties: true },
372
+ externalIdField: { type: 'string', minLength: 1 },
373
+ },
374
+ },
375
+ handler: async (input, ctx) => {
376
+ const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
377
+ const releaseLineId = uuidParam.parse(input.releaseLineId);
378
+ const body = shared_1.updateReleaseLineInputRouteInputSchema.parse({
379
+ laneType: input.laneType,
380
+ variableMapping: input.variableMapping,
381
+ filterRules: input.filterRules ?? null,
382
+ externalIdField: input.externalIdField,
383
+ });
384
+ return service.updateInputRoute(projectId, releaseLineId, body, (0, mcp_context_1.getMcpActor)(ctx));
385
+ },
386
+ },
99
387
  ];
100
388
  }
101
389
  //# sourceMappingURL=release-line.tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"release-line.tools.js","sourceRoot":"","sources":["../../../../src/server/channels/mcp/release-line.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release-line.tools.js","sourceRoot":"","sources":["../../../../src/server/channels/mcp/release-line.tools.ts"],"names":[],"mappings":";;AAyBA,wDA0XC;AAnZD;;;;;GAKG;AACH,+CAW4B;AAC5B,6BAAwB;AACxB,+CAAsE;AAItE,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAEpC,SAAgB,sBAAsB,CAAC,OAA2B;IAChE,OAAO;QACL;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,wBAAwB;YACrC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;iBAClD;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YACjE,CAAC;SACF;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;iBAClD;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,OAAO,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YACxE,CAAC;SACF;QACD;YACE,IAAI,EAAE,4BAA4B;YAClC,WAAW,EAAE,gCAAgC;YAC7C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;iBAClD;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,OAAO,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YAC/E,CAAC;SACF;QACD;YACE,IAAI,EAAE,mCAAmC;YACzC,WAAW,EAAE,sBAAsB;YACnC,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;gBAC3C,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;iBACzD;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,iDAAwC,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBAClG,OAAO,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YACtF,CAAC;SACF;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,WAAW,EAAE,2BAA2B;YACxC,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;iBAClD;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,OAAO,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,CAAC;SACF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC;gBACrC,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC1D;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,mCAA0B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxE,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YAC5E,CAAC;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,uCAAuC;YACpD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC1D;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,oCAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzE,OAAO,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YAC7E,CAAC;SACF;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC1D;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,sCAA6B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3E,OAAO,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YAC/E,CAAC;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,wBAAwB;YACrC,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,CAAC;gBAC3B,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC1D;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,wCAA+B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7E,OAAO,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YACjF,CAAC;SACF;QACD;YACE,IAAI,EAAE,4CAA4C;YAClD,WAAW,EAAE,0BAA0B;YACvC,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;gBAC5C,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC1D;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,6CAAoC,CAAC,KAAK,CAAC;oBACtD,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,0BAA0B,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YAC9F,CAAC;SACF;QACD;YACE,IAAI,EAAE,wCAAwC;YAC9C,WAAW,EAAE,0BAA0B;YACvC,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;gBAC5C,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC1D;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,6CAAoC,CAAC,KAAK,CAAC;oBACtD,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YAC1F,CAAC;SACF;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,8BAA8B;YAC3C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC;gBAC/C,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;oBAClE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC1D;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,qCAA4B,CAAC,KAAK,CAAC;oBAC9C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;gBAC3E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;SACF;QACD;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EACT,oDAAoD;gBACpD,qEAAqE;gBACrE,sFAAsF;gBACtF,oBAAoB;YACtB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC;gBACpD,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE;oBAC5D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBAC3C,SAAS,EAAE;wBACT,oFAAoF;wBACpF,0FAA0F;wBAC1F,sFAAsF;wBACtF,WAAW,EACT,2FAA2F;wBAC7F,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,IAAI;qBAC3B;oBACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,EAAE;oBACpE,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iBAC/D;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,8CAAqC,CAAC,KAAK,CAAC;oBACvD,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;iBACzC,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YACnF,CAAC;SACF;QACD;YACE,IAAI,EAAE,kCAAkC;YACxC,WAAW,EAAE,mDAAmD;YAChE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAE,eAAe,CAAC;gBAC9E,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE;oBAC5D,kBAAkB,EAAE;wBAClB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;qBAC1C;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;4BAC1C,UAAU,EAAE;gCACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;gCAC/C,aAAa,EAAE;oCACb,IAAI,EAAE,OAAO;oCACb,KAAK,EAAE;wCACL,IAAI,EAAE,QAAQ;wCACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;wCAC9B,UAAU,EAAE;4CACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;4CACxC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;yCACzC;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,gDAAuC,CAAC,KAAK,CAAC;oBACzD,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;oBAC5C,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YACrF,CAAC;SACF;QACD;YACE,IAAI,EAAE,iCAAiC;YACvC,WAAW,EACT,iDAAiD;gBACjD,wFAAwF;gBACxF,gGAAgG;YAClG,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;gBAC7E,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;oBACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE;oBAC5D,eAAe,EAAE;wBACf,2FAA2F;wBAC3F,yFAAyF;wBACzF,4FAA4F;wBAC5F,uFAAuF;wBACvF,qDAAqD;wBACrD,WAAW,EACT,gHAAgH;wBAClH,KAAK,EAAE;4BACL;gCACE,WAAW,EAAE,uCAAuC;gCACpD,IAAI,EAAE,QAAQ;gCACd,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BACzC;4BACD;gCACE,WAAW,EAAE,sBAAsB;gCACnC,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;oCAC9B,UAAU,EAAE;wCACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wCACxC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wCACxC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wCAC7B,YAAY,EAAE,EAAE;qCACjB;iCACF;6BACF;yBACF;qBACF;oBACD,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE;oBACrE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;iBAClD;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,+CAAsC,CAAC,KAAK,CAAC;oBACxD,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,eAAe,EAAE,KAAK,CAAC,eAAe;oBACtC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;oBACtC,eAAe,EAAE,KAAK,CAAC,eAAe;iBACvC,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;YACpF,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-result.tools.d.ts","sourceRoot":"","sources":["../../../../src/server/channels/mcp/run-result.tools.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,wBAAgB,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CAwG5F"}
1
+ {"version":3,"file":"run-result.tools.d.ts","sourceRoot":"","sources":["../../../../src/server/channels/mcp/run-result.tools.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,wBAAgB,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CA0G5F"}
@@ -22,7 +22,7 @@ function createRunResultTools(runResultService) {
22
22
  experimentId: { type: 'string', format: 'uuid' },
23
23
  page: { type: 'integer', minimum: 1 },
24
24
  pageSize: { type: 'integer', minimum: 1, maximum: 200 },
25
- status: { type: 'array', items: { type: 'string', enum: ['success', 'error', 'timeout', 'rate_limited'] } },
25
+ status: { type: 'array', items: { type: 'string', enum: ['running', 'success', 'failed'] } },
26
26
  judgmentStatus: {
27
27
  type: 'array',
28
28
  items: { type: 'string', enum: ['correct', 'incorrect', 'parse_error', 'judge_error'] },
@@ -67,12 +67,13 @@ function createRunResultTools(runResultService) {
67
67
  },
68
68
  {
69
69
  name: 'run_result_list_for_release',
70
- description: '按发布维度查询运行结果列表(production / canary lane,支持发布组合 / sourceIds / promptVersionIds / externalId / 状态 / 时间窗过滤)',
70
+ description: '按发布维度查询运行结果列表(production / canary lane,支持发布版本 / sourceIds / promptVersionIds / externalId / 状态 / 时间窗过滤)',
71
71
  inputSchema: {
72
72
  type: 'object',
73
73
  properties: {
74
74
  sourceIds: { type: 'array', items: { type: 'string', format: 'uuid' } },
75
- releaseVariantIds: { type: 'array', items: { type: 'string', format: 'uuid' } },
75
+ releaseVersionIds: { type: 'array', items: { type: 'string', format: 'uuid' } },
76
+ releaseVersionScope: { type: 'string', enum: ['exact', 'journey'] },
76
77
  promptVersionIds: { type: 'array', items: { type: 'string', format: 'uuid' } },
77
78
  lane: { type: 'array', items: { type: 'string', enum: ['production', 'canary'] } },
78
79
  externalId: { type: 'string' },
@@ -80,7 +81,7 @@ function createRunResultTools(runResultService) {
80
81
  to: { type: 'string', format: 'date-time' },
81
82
  page: { type: 'integer', minimum: 1 },
82
83
  pageSize: { type: 'integer', minimum: 1, maximum: 200 },
83
- status: { type: 'array', items: { type: 'string', enum: ['success', 'error', 'timeout', 'rate_limited'] } },
84
+ status: { type: 'array', items: { type: 'string', enum: ['running', 'success', 'failed'] } },
84
85
  judgmentStatus: {
85
86
  type: 'array',
86
87
  items: { type: 'string', enum: ['correct', 'incorrect', 'parse_error', 'judge_error'] },
@@ -94,7 +95,8 @@ function createRunResultTools(runResultService) {
94
95
  const { projectId } = (0, mcp_context_1.resolveMcpProjectContext)(ctx);
95
96
  const query = shared_1.runResultReleaseListQuerySchema.parse({
96
97
  sourceIds: input.sourceIds,
97
- releaseVariantIds: input.releaseVariantIds,
98
+ releaseVersionIds: input.releaseVersionIds,
99
+ releaseVersionScope: input.releaseVersionScope,
98
100
  promptVersionIds: input.promptVersionIds,
99
101
  lane: input.lane,
100
102
  externalId: input.externalId,
@@ -1 +1 @@
1
- {"version":3,"file":"run-result.tools.js","sourceRoot":"","sources":["../../../../src/server/channels/mcp/run-result.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-result.tools.js","sourceRoot":"","sources":["../../../../src/server/channels/mcp/run-result.tools.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export * from './token.service';
8
8
  export * from './limiter-key.strategy';
9
9
  export * from './runtime-limits.provider';
10
10
  export * from './quota-policy.hook';
11
+ export * from './usage-metering.hook';
11
12
  export * from './workflow-authorization.hook';
12
13
  export * from './http-actor.guard';
13
14
  export * from './local-project-context.resolver';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,cAAc,sCAAsC,CAAC;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oEAAoE,CAAC;AACnH,cAAc,sDAAsD,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,cAAc,sCAAsC,CAAC;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oEAAoE,CAAC;AACnH,cAAc,sDAAsD,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -27,6 +27,7 @@ __exportStar(require("./token.service"), exports);
27
27
  __exportStar(require("./limiter-key.strategy"), exports);
28
28
  __exportStar(require("./runtime-limits.provider"), exports);
29
29
  __exportStar(require("./quota-policy.hook"), exports);
30
+ __exportStar(require("./usage-metering.hook"), exports);
30
31
  __exportStar(require("./workflow-authorization.hook"), exports);
31
32
  __exportStar(require("./http-actor.guard"), exports);
32
33
  __exportStar(require("./local-project-context.resolver"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/index.ts"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,6CAA6C;;;;;;;;;;;;;;;;;AAE7C,0CAAwB;AACxB,6DAA2C;AAC3C,2DAAyC;AACzC,sDAAoC;AACpC,2DAAyC;AACzC,+DAA6C;AAC7C,kDAAgC;AAChC,yDAAuC;AACvC,4DAA0C;AAC1C,sDAAoC;AACpC,gEAA8C;AAC9C,qDAAmC;AACnC,mEAAiD;AACjD,iEAA+C;AAC/C,4DAA0C;AAC1C,iEAA+C;AAC/C,8DAA4C;AAC5C,mEAAsE;AAA7D,kHAAA,iBAAiB,OAAA;AAC1B,uEAAqD;AACrD,uHAAmH;AAA1G,iJAAA,6BAA6B,OAAA;AACtC,uFAAqE;AACrE,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/index.ts"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,6CAA6C;;;;;;;;;;;;;;;;;AAE7C,0CAAwB;AACxB,6DAA2C;AAC3C,2DAAyC;AACzC,sDAAoC;AACpC,2DAAyC;AACzC,+DAA6C;AAC7C,kDAAgC;AAChC,yDAAuC;AACvC,4DAA0C;AAC1C,sDAAoC;AACpC,wDAAsC;AACtC,gEAA8C;AAC9C,qDAAmC;AACnC,mEAAiD;AACjD,iEAA+C;AAC/C,4DAA0C;AAC1C,iEAA+C;AAC/C,8DAA4C;AAC5C,mEAAsE;AAA7D,kHAAA,iBAAiB,OAAA;AAC1B,uEAAqD;AACrD,uHAAmH;AAA1G,iJAAA,6BAA6B,OAAA;AACtC,uFAAqE;AACrE,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-contracts.module.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/local-contracts.module.ts"],"names":[],"mappings":"AAiCA,qBAgCa,oBAAoB;CAAG"}
1
+ {"version":3,"file":"local-contracts.module.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/local-contracts.module.ts"],"names":[],"mappings":"AAkCA,qBAkCa,oBAAoB;CAAG"}
@@ -37,6 +37,7 @@ const project_context_resolver_1 = require("./project-context.resolver");
37
37
  const quota_policy_hook_1 = require("./quota-policy.hook");
38
38
  const runtime_limits_provider_1 = require("./runtime-limits.provider");
39
39
  const token_service_2 = require("./token.service");
40
+ const usage_metering_hook_1 = require("./usage-metering.hook");
40
41
  const workflow_authorization_hook_1 = require("./workflow-authorization.hook");
41
42
  let LocalContractsModule = class LocalContractsModule {
42
43
  };
@@ -58,6 +59,7 @@ exports.LocalContractsModule = LocalContractsModule = __decorate([
58
59
  { provide: limiter_key_strategy_1.LimiterKeyStrategy, useClass: limiter_key_strategy_1.LocalLimiterKeyStrategy },
59
60
  { provide: runtime_limits_provider_1.RuntimeLimitsProvider, useClass: runtime_limits_provider_1.LocalRuntimeLimitsProvider },
60
61
  { provide: quota_policy_hook_1.QuotaPolicyHook, useClass: quota_policy_hook_1.LocalQuotaPolicyHook },
62
+ { provide: usage_metering_hook_1.UsageMeteringHook, useClass: usage_metering_hook_1.NoopUsageMeteringHook },
61
63
  { provide: workflow_authorization_hook_1.WorkflowAuthorizationHook, useClass: workflow_authorization_hook_1.LocalWorkflowAuthorizationHook },
62
64
  ],
63
65
  exports: [
@@ -70,6 +72,7 @@ exports.LocalContractsModule = LocalContractsModule = __decorate([
70
72
  limiter_key_strategy_1.LimiterKeyStrategy,
71
73
  runtime_limits_provider_1.RuntimeLimitsProvider,
72
74
  quota_policy_hook_1.QuotaPolicyHook,
75
+ usage_metering_hook_1.UsageMeteringHook,
73
76
  workflow_authorization_hook_1.WorkflowAuthorizationHook,
74
77
  local_user_token_verifier_1.LocalUserTokenVerifier,
75
78
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"local-contracts.module.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/local-contracts.module.ts"],"names":[],"mappings":";AAAA,gGAAgG;AAChG,sCAAsC;AACtC,sDAAsD;AACtD,EAAE;AACF,oGAAoG;AACpG,oGAAoG;AACpG,+FAA+F;AAC/F,EAAE;AACF,iGAAiG;;;;;;;;;AAEjG,2CAAgD;AAChD,wEAAoE;AACpE,8EAA0E;AAC1E,yHAAmH;AACnH,6FAAyF;AACzF,2EAAuE;AACvE,qEAAsE;AACtE,qEAAgE;AAChE,qEAAgE;AAChE,6EAAwE;AACxE,iEAAqF;AACrF,iFAA2E;AAC3E,iFAA2E;AAC3E,uEAAiE;AACjE,qFAA+E;AAC/E,2EAAqE;AACrE,2DAAsD;AACtD,yEAAoE;AACpE,2DAA4E;AAC5E,uEAA8F;AAC9F,mDAA+C;AAC/C,+EAA0G;AAkCnG,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oDAAoB;+BAApB,oBAAoB;IAhChC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAY,EAAE,gCAAc,CAAC;QACvC,SAAS,EAAE;YACT,sCAAiB;YACjB,kCAAe;YACf,kDAAsB;YACtB,EAAE,OAAO,EAAE,iDAAsB,EAAE,QAAQ,EAAE,4DAA2B,EAAE;YAC1E,EAAE,OAAO,EAAE,6CAAoB,EAAE,QAAQ,EAAE,wDAAyB,EAAE;YACtE,EAAE,OAAO,EAAE,mCAAe,EAAE,QAAQ,EAAE,8CAAoB,EAAE;YAC5D,EAAE,OAAO,EAAE,qDAAwB,EAAE,QAAQ,EAAE,gEAA6B,EAAE;YAC9E,EAAE,OAAO,EAAE,4BAAY,EAAE,QAAQ,EAAE,iCAAiB,EAAE;YACtD,EAAE,OAAO,EAAE,6CAAoB,EAAE,QAAQ,EAAE,wDAAyB,EAAE;YACtE,EAAE,OAAO,EAAE,yCAAkB,EAAE,QAAQ,EAAE,8CAAuB,EAAE;YAClE,EAAE,OAAO,EAAE,+CAAqB,EAAE,QAAQ,EAAE,oDAA0B,EAAE;YACxE,EAAE,OAAO,EAAE,mCAAe,EAAE,QAAQ,EAAE,wCAAoB,EAAE;YAC5D,EAAE,OAAO,EAAE,uDAAyB,EAAE,QAAQ,EAAE,4DAA8B,EAAE;SACjF;QACD,OAAO,EAAE;YACP,iDAAsB;YACtB,6CAAoB;YACpB,mCAAe;YACf,qDAAwB;YACxB,4BAAY;YACZ,6CAAoB;YACpB,yCAAkB;YAClB,+CAAqB;YACrB,mCAAe;YACf,uDAAyB;YACzB,kDAAsB;SACvB;KACF,CAAC;GACW,oBAAoB,CAAG"}
1
+ {"version":3,"file":"local-contracts.module.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/local-contracts.module.ts"],"names":[],"mappings":";AAAA,gGAAgG;AAChG,sCAAsC;AACtC,sDAAsD;AACtD,EAAE;AACF,oGAAoG;AACpG,oGAAoG;AACpG,+FAA+F;AAC/F,EAAE;AACF,iGAAiG;;;;;;;;;AAEjG,2CAAgD;AAChD,wEAAoE;AACpE,8EAA0E;AAC1E,yHAAmH;AACnH,6FAAyF;AACzF,2EAAuE;AACvE,qEAAsE;AACtE,qEAAgE;AAChE,qEAAgE;AAChE,6EAAwE;AACxE,iEAAqF;AACrF,iFAA2E;AAC3E,iFAA2E;AAC3E,uEAAiE;AACjE,qFAA+E;AAC/E,2EAAqE;AACrE,2DAAsD;AACtD,yEAAoE;AACpE,2DAA4E;AAC5E,uEAA8F;AAC9F,mDAA+C;AAC/C,+DAAiF;AACjF,+EAA0G;AAoCnG,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oDAAoB;+BAApB,oBAAoB;IAlChC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAY,EAAE,gCAAc,CAAC;QACvC,SAAS,EAAE;YACT,sCAAiB;YACjB,kCAAe;YACf,kDAAsB;YACtB,EAAE,OAAO,EAAE,iDAAsB,EAAE,QAAQ,EAAE,4DAA2B,EAAE;YAC1E,EAAE,OAAO,EAAE,6CAAoB,EAAE,QAAQ,EAAE,wDAAyB,EAAE;YACtE,EAAE,OAAO,EAAE,mCAAe,EAAE,QAAQ,EAAE,8CAAoB,EAAE;YAC5D,EAAE,OAAO,EAAE,qDAAwB,EAAE,QAAQ,EAAE,gEAA6B,EAAE;YAC9E,EAAE,OAAO,EAAE,4BAAY,EAAE,QAAQ,EAAE,iCAAiB,EAAE;YACtD,EAAE,OAAO,EAAE,6CAAoB,EAAE,QAAQ,EAAE,wDAAyB,EAAE;YACtE,EAAE,OAAO,EAAE,yCAAkB,EAAE,QAAQ,EAAE,8CAAuB,EAAE;YAClE,EAAE,OAAO,EAAE,+CAAqB,EAAE,QAAQ,EAAE,oDAA0B,EAAE;YACxE,EAAE,OAAO,EAAE,mCAAe,EAAE,QAAQ,EAAE,wCAAoB,EAAE;YAC5D,EAAE,OAAO,EAAE,uCAAiB,EAAE,QAAQ,EAAE,2CAAqB,EAAE;YAC/D,EAAE,OAAO,EAAE,uDAAyB,EAAE,QAAQ,EAAE,4DAA8B,EAAE;SACjF;QACD,OAAO,EAAE;YACP,iDAAsB;YACtB,6CAAoB;YACpB,mCAAe;YACf,qDAAwB;YACxB,4BAAY;YACZ,6CAAoB;YACpB,yCAAkB;YAClB,+CAAqB;YACrB,mCAAe;YACf,uCAAiB;YACjB,uDAAyB;YACzB,kDAAsB;SACvB;KACF,CAAC;GACW,oBAAoB,CAAG"}
@@ -0,0 +1,33 @@
1
+ export type UsageMeteringDimension = 'project' | 'job' | 'run_result' | 'release' | 'storage' | 'concurrency' | 'model';
2
+ export type UsageMeteringSource = 'server' | 'worker' | 'workflow' | 'release-runner';
3
+ export interface UsageMeteringEvent {
4
+ idempotencyKey: string;
5
+ dimension: UsageMeteringDimension;
6
+ eventType: string;
7
+ projectId: string;
8
+ actorId?: string | null;
9
+ occurredAt: Date;
10
+ source: UsageMeteringSource;
11
+ payload?: Record<string, unknown>;
12
+ }
13
+ /**
14
+ * Observation-only usage event hook.
15
+ *
16
+ * Implementations run on request, worker, and release-runner hot paths, so
17
+ * record() must stay bounded/O(1): append an idempotent event and optionally
18
+ * mark a coarse dirty key. It must not synchronously aggregate run_results,
19
+ * storage, release, or other detail tables, nor rebuild usage read models.
20
+ * Expensive recompute and rollups belong in async batched reconcile jobs.
21
+ */
22
+ export declare abstract class UsageMeteringHook {
23
+ abstract record(event: UsageMeteringEvent): Promise<void>;
24
+ }
25
+ export declare class NoopUsageMeteringHook extends UsageMeteringHook {
26
+ record(_event: UsageMeteringEvent): Promise<void>;
27
+ }
28
+ export interface UsageMeteringLogger {
29
+ warn?(payload: Record<string, unknown>, message: string): void;
30
+ error?(payload: Record<string, unknown>, message: string): void;
31
+ }
32
+ export declare function safeRecordUsageEvent(hook: UsageMeteringHook, event: UsageMeteringEvent, logger?: UsageMeteringLogger): Promise<void>;
33
+ //# sourceMappingURL=usage-metering.hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-metering.hook.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/usage-metering.hook.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;AAExH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAEtF,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,sBAAsB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,8BAAsB,iBAAiB;IACrC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAC1D;AAED,qBAAa,qBAAsB,SAAQ,iBAAiB;IACpD,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjE;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,kBAAkB,EACzB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoopUsageMeteringHook = exports.UsageMeteringHook = void 0;
4
+ exports.safeRecordUsageEvent = safeRecordUsageEvent;
5
+ /**
6
+ * Observation-only usage event hook.
7
+ *
8
+ * Implementations run on request, worker, and release-runner hot paths, so
9
+ * record() must stay bounded/O(1): append an idempotent event and optionally
10
+ * mark a coarse dirty key. It must not synchronously aggregate run_results,
11
+ * storage, release, or other detail tables, nor rebuild usage read models.
12
+ * Expensive recompute and rollups belong in async batched reconcile jobs.
13
+ */
14
+ class UsageMeteringHook {
15
+ }
16
+ exports.UsageMeteringHook = UsageMeteringHook;
17
+ class NoopUsageMeteringHook extends UsageMeteringHook {
18
+ async record(_event) {
19
+ return;
20
+ }
21
+ }
22
+ exports.NoopUsageMeteringHook = NoopUsageMeteringHook;
23
+ async function safeRecordUsageEvent(hook, event, logger) {
24
+ try {
25
+ await hook.record(event);
26
+ }
27
+ catch (error) {
28
+ const payload = {
29
+ error: error.message,
30
+ idempotencyKey: event.idempotencyKey,
31
+ eventType: event.eventType,
32
+ projectId: event.projectId,
33
+ dimension: event.dimension,
34
+ };
35
+ if (logger?.warn) {
36
+ logger.warn(payload, 'usage_metering_record_failed');
37
+ }
38
+ else {
39
+ logger?.error?.(payload, 'usage_metering_record_failed');
40
+ }
41
+ }
42
+ }
43
+ //# sourceMappingURL=usage-metering.hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-metering.hook.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/usage-metering.hook.ts"],"names":[],"mappings":";;;AAuCA,oDAqBC;AA7CD;;;;;;;;GAQG;AACH,MAAsB,iBAAiB;CAEtC;AAFD,8CAEC;AAED,MAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,KAAK,CAAC,MAAM,CAAC,MAA0B;QACrC,OAAO;IACT,CAAC;CACF;AAJD,sDAIC;AAOM,KAAK,UAAU,oBAAoB,CACxC,IAAuB,EACvB,KAAyB,EACzB,MAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG;YACd,KAAK,EAAG,KAAe,CAAC,OAAO;YAC/B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC;QACF,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,10 +1,13 @@
1
1
  import type { DbClient } from '@proofhound/db';
2
2
  import type { LLMRunResultRecord, LLMRunResultWriter } from '@proofhound/llm-client';
3
3
  import { QuotaPolicyHook } from '../../common/contracts/quota-policy.hook';
4
+ import { UsageMeteringHook } from '../../common/contracts/usage-metering.hook';
4
5
  export declare class DrizzleRunResultWriter implements LLMRunResultWriter {
5
6
  private readonly db;
6
7
  private readonly quotaPolicy;
7
- constructor(db: DbClient, quotaPolicy: QuotaPolicyHook);
8
+ private readonly usageMetering?;
9
+ private readonly logger;
10
+ constructor(db: DbClient, quotaPolicy: QuotaPolicyHook, usageMetering?: UsageMeteringHook | undefined);
8
11
  writeRunResult(record: LLMRunResultRecord): Promise<void>;
9
12
  }
10
13
  //# sourceMappingURL=run-result-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-result-writer.d.ts","sourceRoot":"","sources":["../../../../src/server/infrastructure/llm/run-result-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAO3E,qBACa,sBAAuB,YAAW,kBAAkB;IAEpC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADc,EAAE,EAAE,QAAQ,EACrC,WAAW,EAAE,eAAe;IAGzC,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsDhE"}
1
+ {"version":3,"file":"run-result-writer.d.ts","sourceRoot":"","sources":["../../../../src/server/infrastructure/llm/run-result-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAwB,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAOrG,qBACa,sBAAuB,YAAW,kBAAkB;IAIpC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAChB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAL7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmE;gBAG9C,EAAE,EAAE,QAAQ,EACrC,WAAW,EAAE,eAAe,EAChB,aAAa,CAAC,EAAE,iBAAiB,YAAA;IAG1D,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CA0FhE"}