ai-project-manage-cli 2.0.26 → 3.0.2

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 (293) hide show
  1. package/dist/index.js +500 -20
  2. package/package.json +27 -25
  3. package/template/apm.config.json +5 -0
  4. package/template/deploy/README.md +3 -0
  5. package/template/skills/apm-review/SKILL.md +38 -0
  6. package/template/skills/apm-review/apm-review-reference.md +89 -0
  7. package/template/workitems/README.md +19 -0
  8. package/README.md +0 -171
  9. package/dist/api/cli.d.ts +0 -228
  10. package/dist/api/cli.d.ts.map +0 -1
  11. package/dist/api/cli.js +0 -3
  12. package/dist/api/cli.js.map +0 -1
  13. package/dist/api/client.d.ts +0 -5
  14. package/dist/api/client.d.ts.map +0 -1
  15. package/dist/api/client.js +0 -30
  16. package/dist/api/client.js.map +0 -1
  17. package/dist/api/http.d.ts +0 -21
  18. package/dist/api/http.d.ts.map +0 -1
  19. package/dist/api/http.js +0 -108
  20. package/dist/api/http.js.map +0 -1
  21. package/dist/api/index.d.ts +0 -6
  22. package/dist/api/index.d.ts.map +0 -1
  23. package/dist/api/index.js +0 -13
  24. package/dist/api/index.js.map +0 -1
  25. package/dist/api/request-config.d.ts +0 -25
  26. package/dist/api/request-config.d.ts.map +0 -1
  27. package/dist/api/request-config.js +0 -73
  28. package/dist/api/request-config.js.map +0 -1
  29. package/dist/api/requirement.d.ts +0 -1
  30. package/dist/api/requirement.d.ts.map +0 -1
  31. package/dist/api/requirement.js +0 -2
  32. package/dist/api/requirement.js.map +0 -1
  33. package/dist/apm-dotenv.d.ts +0 -8
  34. package/dist/apm-dotenv.d.ts.map +0 -1
  35. package/dist/apm-dotenv.js +0 -73
  36. package/dist/apm-dotenv.js.map +0 -1
  37. package/dist/cli/agent-stream-log.d.ts +0 -41
  38. package/dist/cli/agent-stream-log.d.ts.map +0 -1
  39. package/dist/cli/agent-stream-log.js +0 -364
  40. package/dist/cli/agent-stream-log.js.map +0 -1
  41. package/dist/cli/commands/auth.d.ts +0 -3
  42. package/dist/cli/commands/auth.d.ts.map +0 -1
  43. package/dist/cli/commands/auth.js +0 -51
  44. package/dist/cli/commands/auth.js.map +0 -1
  45. package/dist/cli/commands/chat.d.ts +0 -3
  46. package/dist/cli/commands/chat.d.ts.map +0 -1
  47. package/dist/cli/commands/chat.js +0 -32
  48. package/dist/cli/commands/chat.js.map +0 -1
  49. package/dist/cli/commands/comment.d.ts +0 -3
  50. package/dist/cli/commands/comment.d.ts.map +0 -1
  51. package/dist/cli/commands/comment.js +0 -66
  52. package/dist/cli/commands/comment.js.map +0 -1
  53. package/dist/cli/commands/config.d.ts +0 -3
  54. package/dist/cli/commands/config.d.ts.map +0 -1
  55. package/dist/cli/commands/config.js +0 -39
  56. package/dist/cli/commands/config.js.map +0 -1
  57. package/dist/cli/commands/deploy-backend.d.ts +0 -7
  58. package/dist/cli/commands/deploy-backend.d.ts.map +0 -1
  59. package/dist/cli/commands/deploy-backend.js +0 -77
  60. package/dist/cli/commands/deploy-backend.js.map +0 -1
  61. package/dist/cli/commands/deploy-frontend.d.ts +0 -3
  62. package/dist/cli/commands/deploy-frontend.d.ts.map +0 -1
  63. package/dist/cli/commands/deploy-frontend.js +0 -167
  64. package/dist/cli/commands/deploy-frontend.js.map +0 -1
  65. package/dist/cli/commands/get.d.ts +0 -3
  66. package/dist/cli/commands/get.d.ts.map +0 -1
  67. package/dist/cli/commands/get.js +0 -145
  68. package/dist/cli/commands/get.js.map +0 -1
  69. package/dist/cli/commands/init.d.ts +0 -3
  70. package/dist/cli/commands/init.d.ts.map +0 -1
  71. package/dist/cli/commands/init.js +0 -179
  72. package/dist/cli/commands/init.js.map +0 -1
  73. package/dist/cli/commands/minio.d.ts +0 -3
  74. package/dist/cli/commands/minio.d.ts.map +0 -1
  75. package/dist/cli/commands/minio.js +0 -65
  76. package/dist/cli/commands/minio.js.map +0 -1
  77. package/dist/cli/commands/publish.d.ts +0 -3
  78. package/dist/cli/commands/publish.d.ts.map +0 -1
  79. package/dist/cli/commands/publish.js +0 -130
  80. package/dist/cli/commands/publish.js.map +0 -1
  81. package/dist/cli/commands/release.d.ts +0 -3
  82. package/dist/cli/commands/release.d.ts.map +0 -1
  83. package/dist/cli/commands/release.js +0 -37
  84. package/dist/cli/commands/release.js.map +0 -1
  85. package/dist/cli/commands/requirement.d.ts +0 -3
  86. package/dist/cli/commands/requirement.d.ts.map +0 -1
  87. package/dist/cli/commands/requirement.js +0 -169
  88. package/dist/cli/commands/requirement.js.map +0 -1
  89. package/dist/cli/commands/set.d.ts +0 -3
  90. package/dist/cli/commands/set.d.ts.map +0 -1
  91. package/dist/cli/commands/set.js +0 -103
  92. package/dist/cli/commands/set.js.map +0 -1
  93. package/dist/cli/commands/status.d.ts +0 -3
  94. package/dist/cli/commands/status.d.ts.map +0 -1
  95. package/dist/cli/commands/status.js +0 -42
  96. package/dist/cli/commands/status.js.map +0 -1
  97. package/dist/cli/commands/update.d.ts +0 -3
  98. package/dist/cli/commands/update.d.ts.map +0 -1
  99. package/dist/cli/commands/update.js +0 -36
  100. package/dist/cli/commands/update.js.map +0 -1
  101. package/dist/cli/commands/ws.d.ts +0 -3
  102. package/dist/cli/commands/ws.d.ts.map +0 -1
  103. package/dist/cli/commands/ws.js +0 -25
  104. package/dist/cli/commands/ws.js.map +0 -1
  105. package/dist/cli/credentials.d.ts +0 -30
  106. package/dist/cli/credentials.d.ts.map +0 -1
  107. package/dist/cli/credentials.js +0 -52
  108. package/dist/cli/credentials.js.map +0 -1
  109. package/dist/cli/exit-api-error.d.ts +0 -2
  110. package/dist/cli/exit-api-error.d.ts.map +0 -1
  111. package/dist/cli/exit-api-error.js +0 -18
  112. package/dist/cli/exit-api-error.js.map +0 -1
  113. package/dist/cli/instruction-log-stream-sink.d.ts +0 -31
  114. package/dist/cli/instruction-log-stream-sink.d.ts.map +0 -1
  115. package/dist/cli/instruction-log-stream-sink.js +0 -59
  116. package/dist/cli/instruction-log-stream-sink.js.map +0 -1
  117. package/dist/cli/session.d.ts +0 -26
  118. package/dist/cli/session.d.ts.map +0 -1
  119. package/dist/cli/session.js +0 -41
  120. package/dist/cli/session.js.map +0 -1
  121. package/dist/cli/utils/parse.d.ts +0 -2
  122. package/dist/cli/utils/parse.d.ts.map +0 -1
  123. package/dist/cli/utils/parse.js +0 -12
  124. package/dist/cli/utils/parse.js.map +0 -1
  125. package/dist/cli/ws-run-command.d.ts +0 -13
  126. package/dist/cli/ws-run-command.d.ts.map +0 -1
  127. package/dist/cli/ws-run-command.js +0 -330
  128. package/dist/cli/ws-run-command.js.map +0 -1
  129. package/dist/cli-version.d.ts +0 -9
  130. package/dist/cli-version.d.ts.map +0 -1
  131. package/dist/cli-version.js +0 -61
  132. package/dist/cli-version.js.map +0 -1
  133. package/dist/cli.d.ts +0 -3
  134. package/dist/cli.d.ts.map +0 -1
  135. package/dist/cli.js +0 -36
  136. package/dist/cli.js.map +0 -1
  137. package/dist/config-store.d.ts +0 -38
  138. package/dist/config-store.d.ts.map +0 -1
  139. package/dist/config-store.js +0 -131
  140. package/dist/config-store.js.map +0 -1
  141. package/dist/core/apm-config.d.ts +0 -81
  142. package/dist/core/apm-config.d.ts.map +0 -1
  143. package/dist/core/apm-config.js +0 -147
  144. package/dist/core/apm-config.js.map +0 -1
  145. package/dist/core/backend-deploy/backend-deploy-workflow.d.ts +0 -20
  146. package/dist/core/backend-deploy/backend-deploy-workflow.d.ts.map +0 -1
  147. package/dist/core/backend-deploy/backend-deploy-workflow.js +0 -86
  148. package/dist/core/backend-deploy/backend-deploy-workflow.js.map +0 -1
  149. package/dist/core/backend-deploy/command-runner.d.ts +0 -11
  150. package/dist/core/backend-deploy/command-runner.d.ts.map +0 -1
  151. package/dist/core/backend-deploy/command-runner.js +0 -47
  152. package/dist/core/backend-deploy/command-runner.js.map +0 -1
  153. package/dist/core/backend-deploy/dockerode-client/client.d.ts +0 -18
  154. package/dist/core/backend-deploy/dockerode-client/client.d.ts.map +0 -1
  155. package/dist/core/backend-deploy/dockerode-client/client.js +0 -114
  156. package/dist/core/backend-deploy/dockerode-client/client.js.map +0 -1
  157. package/dist/core/backend-deploy/dockerode-client/connection-options.d.ts +0 -6
  158. package/dist/core/backend-deploy/dockerode-client/connection-options.d.ts.map +0 -1
  159. package/dist/core/backend-deploy/dockerode-client/connection-options.js +0 -62
  160. package/dist/core/backend-deploy/dockerode-client/connection-options.js.map +0 -1
  161. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.d.ts +0 -3
  162. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.d.ts.map +0 -1
  163. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.js +0 -23
  164. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.js.map +0 -1
  165. package/dist/core/backend-deploy/dockerode-client/container-options.d.ts +0 -4
  166. package/dist/core/backend-deploy/dockerode-client/container-options.d.ts.map +0 -1
  167. package/dist/core/backend-deploy/dockerode-client/container-options.js +0 -44
  168. package/dist/core/backend-deploy/dockerode-client/container-options.js.map +0 -1
  169. package/dist/core/backend-deploy/dockerode-client/env.d.ts +0 -3
  170. package/dist/core/backend-deploy/dockerode-client/env.d.ts.map +0 -1
  171. package/dist/core/backend-deploy/dockerode-client/env.js +0 -40
  172. package/dist/core/backend-deploy/dockerode-client/env.js.map +0 -1
  173. package/dist/core/backend-deploy/dockerode-client/index.d.ts +0 -8
  174. package/dist/core/backend-deploy/dockerode-client/index.d.ts.map +0 -1
  175. package/dist/core/backend-deploy/dockerode-client/index.js +0 -17
  176. package/dist/core/backend-deploy/dockerode-client/index.js.map +0 -1
  177. package/dist/core/backend-deploy/dockerode-client/ports.d.ts +0 -9
  178. package/dist/core/backend-deploy/dockerode-client/ports.d.ts.map +0 -1
  179. package/dist/core/backend-deploy/dockerode-client/ports.js +0 -35
  180. package/dist/core/backend-deploy/dockerode-client/ports.js.map +0 -1
  181. package/dist/core/backend-deploy/dockerode-client/runtime.d.ts +0 -7
  182. package/dist/core/backend-deploy/dockerode-client/runtime.d.ts.map +0 -1
  183. package/dist/core/backend-deploy/dockerode-client/runtime.js +0 -26
  184. package/dist/core/backend-deploy/dockerode-client/runtime.js.map +0 -1
  185. package/dist/core/backend-deploy/dockerode-client/types.d.ts +0 -64
  186. package/dist/core/backend-deploy/dockerode-client/types.d.ts.map +0 -1
  187. package/dist/core/backend-deploy/dockerode-client/types.js +0 -3
  188. package/dist/core/backend-deploy/dockerode-client/types.js.map +0 -1
  189. package/dist/core/backend-deploy/image-tag.d.ts +0 -2
  190. package/dist/core/backend-deploy/image-tag.d.ts.map +0 -1
  191. package/dist/core/backend-deploy/image-tag.js +0 -15
  192. package/dist/core/backend-deploy/image-tag.js.map +0 -1
  193. package/dist/core/backend-deploy/index.d.ts +0 -3
  194. package/dist/core/backend-deploy/index.d.ts.map +0 -1
  195. package/dist/core/backend-deploy/index.js +0 -6
  196. package/dist/core/backend-deploy/index.js.map +0 -1
  197. package/dist/core/backend-deploy/local-docker-build.d.ts +0 -8
  198. package/dist/core/backend-deploy/local-docker-build.d.ts.map +0 -1
  199. package/dist/core/backend-deploy/local-docker-build.js +0 -25
  200. package/dist/core/backend-deploy/local-docker-build.js.map +0 -1
  201. package/dist/core/backend-deploy/logger.d.ts +0 -10
  202. package/dist/core/backend-deploy/logger.d.ts.map +0 -1
  203. package/dist/core/backend-deploy/logger.js +0 -22
  204. package/dist/core/backend-deploy/logger.js.map +0 -1
  205. package/dist/core/backend-deploy/registry-login-push.d.ts +0 -24
  206. package/dist/core/backend-deploy/registry-login-push.d.ts.map +0 -1
  207. package/dist/core/backend-deploy/registry-login-push.js +0 -37
  208. package/dist/core/backend-deploy/registry-login-push.js.map +0 -1
  209. package/dist/core/backend-deploy/remote-docker-client.d.ts +0 -11
  210. package/dist/core/backend-deploy/remote-docker-client.d.ts.map +0 -1
  211. package/dist/core/backend-deploy/remote-docker-client.js +0 -34
  212. package/dist/core/backend-deploy/remote-docker-client.js.map +0 -1
  213. package/dist/core/backend-deploy/remote-pull-image.d.ts +0 -9
  214. package/dist/core/backend-deploy/remote-pull-image.d.ts.map +0 -1
  215. package/dist/core/backend-deploy/remote-pull-image.js +0 -39
  216. package/dist/core/backend-deploy/remote-pull-image.js.map +0 -1
  217. package/dist/core/backend-deploy/resolve-dockerfile.d.ts +0 -7
  218. package/dist/core/backend-deploy/resolve-dockerfile.d.ts.map +0 -1
  219. package/dist/core/backend-deploy/resolve-dockerfile.js +0 -24
  220. package/dist/core/backend-deploy/resolve-dockerfile.js.map +0 -1
  221. package/dist/core/backend-deploy/run-docker-cli.d.ts +0 -9
  222. package/dist/core/backend-deploy/run-docker-cli.d.ts.map +0 -1
  223. package/dist/core/backend-deploy/run-docker-cli.js +0 -14
  224. package/dist/core/backend-deploy/run-docker-cli.js.map +0 -1
  225. package/dist/core/backend-deploy/types.d.ts +0 -23
  226. package/dist/core/backend-deploy/types.d.ts.map +0 -1
  227. package/dist/core/backend-deploy/types.js +0 -3
  228. package/dist/core/backend-deploy/types.js.map +0 -1
  229. package/dist/core/branch-name.d.ts +0 -8
  230. package/dist/core/branch-name.d.ts.map +0 -1
  231. package/dist/core/branch-name.js +0 -37
  232. package/dist/core/branch-name.js.map +0 -1
  233. package/dist/core/constants.d.ts +0 -4
  234. package/dist/core/constants.d.ts.map +0 -1
  235. package/dist/core/constants.js +0 -16
  236. package/dist/core/constants.js.map +0 -1
  237. package/dist/core/cursor-cmd.d.ts +0 -30
  238. package/dist/core/cursor-cmd.d.ts.map +0 -1
  239. package/dist/core/cursor-cmd.js +0 -193
  240. package/dist/core/cursor-cmd.js.map +0 -1
  241. package/dist/core/minio.d.ts +0 -37
  242. package/dist/core/minio.d.ts.map +0 -1
  243. package/dist/core/minio.js +0 -159
  244. package/dist/core/minio.js.map +0 -1
  245. package/dist/core/parse-testcase-md.d.ts +0 -17
  246. package/dist/core/parse-testcase-md.d.ts.map +0 -1
  247. package/dist/core/parse-testcase-md.js +0 -79
  248. package/dist/core/parse-testcase-md.js.map +0 -1
  249. package/dist/core/std-event-handler.d.ts +0 -25
  250. package/dist/core/std-event-handler.d.ts.map +0 -1
  251. package/dist/core/std-event-handler.js +0 -90
  252. package/dist/core/std-event-handler.js.map +0 -1
  253. package/dist/core/utils.d.ts +0 -19
  254. package/dist/core/utils.d.ts.map +0 -1
  255. package/dist/core/utils.js +0 -71
  256. package/dist/core/utils.js.map +0 -1
  257. package/dist/core/ws-client.d.ts +0 -29
  258. package/dist/core/ws-client.d.ts.map +0 -1
  259. package/dist/core/ws-client.js +0 -81
  260. package/dist/core/ws-client.js.map +0 -1
  261. package/dist/employee-ws-client.d.ts +0 -42
  262. package/dist/employee-ws-client.d.ts.map +0 -1
  263. package/dist/employee-ws-client.js +0 -99
  264. package/dist/employee-ws-client.js.map +0 -1
  265. package/dist/index.d.ts +0 -6
  266. package/dist/index.d.ts.map +0 -1
  267. package/dist/index.js.map +0 -1
  268. package/templates/commands/apm-auto-dev.md +0 -6
  269. package/templates/commands/apm-fixbug.md +0 -6
  270. package/templates/commands/apm-prd-review.md +0 -6
  271. package/templates/commands/apm-prd-sync.md +0 -6
  272. package/templates/skills/apm-apply-change/SKILL.md +0 -191
  273. package/templates/skills/apm-auto-dev/SKILL.md +0 -170
  274. package/templates/skills/apm-fixbug/SKILL.md +0 -97
  275. package/templates/skills/apm-propose/SKILL.md +0 -123
  276. package/templates/skills/apm-propose/design-instruction.md +0 -94
  277. package/templates/skills/apm-propose/propose-instruction.md +0 -81
  278. package/templates/skills/apm-propose/specs-instruction.md +0 -114
  279. package/templates/skills/apm-propose/tasks-instruction.md +0 -90
  280. package/templates/skills/apm-release/SKILL.md +0 -87
  281. package/templates/skills/code-change-summary/SKILL.md +0 -84
  282. package/templates/skills/code-change-summary/summary-template.md +0 -55
  283. package/templates/skills/code-deploy/SKILL.md +0 -39
  284. package/templates/skills/prd-review/SKILL.md +0 -48
  285. package/templates/skills/prd-review/output-template.md +0 -47
  286. package/templates/skills/prd-sync/SKILL.md +0 -74
  287. package/templates/skills/prd-sync/updated-requirement-template.md +0 -39
  288. package/templates/skills/prd-testcase/SKILL.md +0 -82
  289. package/templates/skills/prd-testcase/reference.md +0 -44
  290. package/templates/skills/product-capability-inventory/SKILL.md +0 -131
  291. package/templates/skills/product-capability-inventory/template.md +0 -80
  292. package/templates/skills/product-capability-inventory//344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +0 -36
  293. package/templates/skills/product-capability-inventory//347/233/256/345/275/225/350/247/204/350/214/203.md +0 -58
@@ -0,0 +1,89 @@
1
+ # APM 需求评审规范与模板
2
+
3
+ > 供 `apm-review` 技能使用:撰写并落盘到临时文件的评审正文时,遵守本节全文。
4
+
5
+ ## 评论受众与用语(写入 `apm comment` 的正文)
6
+
7
+ - **读者**:产品经理与业务方为主;评论会作为协作记录,应**全程可读、可转发**,不假设读者会写代码或熟悉工程名词。
8
+ - **禁止出现在评论正文里**:代码片段、文件路径、类名/函数名/接口名、库名、数据库表字段名、配置项名、命令行等与实现绑定的符号;也避免堆叠「中间件、DTO、ORM、幂等、熔断」等纯工程术语(除非已在 `prd.md` 里作为约定用语出现且别无说法)。
9
+ - **推荐写法**:用日常中文说明「用户会看到什么」「缺了哪条规则大家会各猜各的」「和现有能力会不会打架」等;若必须指向实现,只说「与当前后台/前台的既有能力有关」或「需要和技术同事确认某某板块是否已有」,**不把符号留给 PM 去对号入座**。
10
+ - **立场声明(业务白话,一两句即可)**:若本轮仅为**单侧**对照(只看清浏览器端或只看清服务端),正文**开头**用不加术语的一句话标明**评审视角**(例如「本轮主要对照当前浏览器里可见的界面与流程」或「本轮主要对照当前服务端已暴露的能力与数据边界」),让读者知道评论**不是**全链路结论;**两侧均已实质核对**时,可写一句「前后台实现均已对照」或省略。**禁止**用「从前端角度」「站在后端」等角色标签式套话堆砌,一句说清范围即可。
11
+ - **内部核对**:Agent 读代码时仍可自用路径与符号做推理;**落盘到临时文件、提交评论前**须把「代码依据」改写成上述白话,不复制粘贴技术标识符。
12
+
13
+ ## 正文形态与语气(写入临时文件的评审)
14
+
15
+ - **像真人写的**:自然段落或简短条目均可;**禁止**行政腔、教程腔套话,例如「请先确认」「建议补一句」「会上拍板」「建议各方对齐」等指向「写作动作」的提示——只陈述**文档里哪里不顺、会导致什么后果**。
16
+ - **直入问题**:不写「对用户意图的理解」这类总起段;意图若与某条缺陷强相关,**并入该条一句带过**即可。
17
+ - **只写有内容的条目**:某类问题不存在则**整段不写**;**禁止**用「未发现矛盾」「未见明显问题」「在已对照范围内无……」等否定句凑篇幅。若通读后没有可写问题:正文可仅为一两句说明「按当前正文暂无新增评审意见」,**仍不写**空洞分类标题。
18
+ - **Markdown 结构与可读性(写入评论的正文)**:平台讨论区按 Markdown 渲染。正文宜用 **`##` 二级标题**按条拆分(标题里点明文档位置),条内可用 **「要点 / 后果」** 或等价两项列表;**关键短语加粗**,必要时用 `---` 分隔大段,避免「一整块纯叙述」难以扫读。结构服从内容:**没有问题则不硬凑条目**。
19
+
20
+ ## 评审立场(依可见代码)
21
+
22
+ 对照需求完成检索后,根据**本轮实际读过、且作为依据写入评论的代码范围**选定立场;**评论写什么、写到哪一层,以该可见范围为上限**。
23
+
24
+ | 可见范围 | 评审立场 | 写入评论时的要求 |
25
+ | -------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
26
+ | 主要只见 **浏览器端 / 前台界面与交互** | **前台视角** | 只评界面入口、流程、状态与交互缺口;涉及持久化、权限、接口形态时,用白话写成「须与服务端/后台约定」「单凭当前界面看不出是否已有支撑」,**不下「后台一定如何」的断定**。 |
27
+ | 主要只见 **服务端 / API 与数据层** | **后台视角** | 只评服务能力、数据含义、权限与边界;涉及页面怎么摆、按钮文案时,用「展示层须另侧对齐」一类表述,**不代替产品写 UI 细则**。 |
28
+ | **前台与后台均已就本需求相关链路核对** | **全栈视角** | 可写前后衔接断层、端到端验收风险(仍用业务白话、禁止符号)。 |
29
+
30
+ **禁止**:只读过一侧却在评论中写超出该侧可见范围的**全称断定**(例如仅对照前台却断言「库里不会有某类数据」)。单侧视角下若发现需求显然依赖另一侧而未写明,应写「文档未约定与后台/前台的衔接点,易导致联调分歧」,而非编造另一侧实现细节。
31
+
32
+ ---
33
+
34
+ ## 立场:专业评审,而非复述原文
35
+
36
+ - `prd.md` 可能口语化、不完整;正文用**清晰、可决策**的语言(业务名词与文档对齐),**对准具体条款**写缺口或风险。
37
+ - **禁止**空洞表态(例如「技术上都能做」);谈可行性须**建立在已读相关代码与模块边界之上**(且不超过上文「评审立场」准许的范围),说明与**现有能力划分、数据含义、产品约定**的关系及**后续改版成本**,用语落在「需求若坚持某种表述会带来何种**产品规则或协作上的代价**」,而非教人怎么写代码。
38
+
39
+ ## 评审范围
40
+
41
+ ### 要做(需求侧 + 基于代码的落地风险)
42
+
43
+ | 类别 | 说明 |
44
+ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
45
+ | **意图与表述** | 业务目标、约束、成功画面是否可从文中唯一推断;关键名词是否需统一 |
46
+ | **歧义** | 多种合理解读并存 |
47
+ | **遗漏 / 不完整** | 边界、异常、权限、状态组合未写清;代码已覆盖场景文档未提 |
48
+ | **矛盾** | 章节或枚举互斥 |
49
+ | **不可验收** | 缺可观测判据或主语不明 |
50
+ | **与现状冲突 / 迭代风险** | **须在读完相关代码后**再写,且**不超出**上文「评审立场」准许的范围:与现有能力划分、数据含义、权限或流程约定抵触,或大牵连、难演进——**需求层取舍提醒**;正文只用**白话概括依据**,不写路径与符号(见「评论受众与用语」),非代码好坏评判 |
51
+
52
+ ### 不要做
53
+
54
+ 代码风格与微重构、与需求清晰度无关的性能闲话、替写完整正式 PRD(除非用户明确要求)、长篇复述 `prd.md` 全文。
55
+
56
+ 若「实现与文档不一致」,表述落在**需求如何写清或与现状对齐**,不指责实现错误。
57
+
58
+ **与代码交付面脱节的「空头边界」**:对照代码后若已能判断**实际交付仅为 Web**(仓库无独立 App、小程序等其它端实现),且 `prd.md` **已写明**某条范围或非目标(例如「本期不考虑移动端 ×× 适配」),则**不再**单独写「未界定移动端是否包含窄屏桌面浏览器、平板横竖屏」等与**当前单一 Web 交付**无实质冲突、也不会改变验收判据的抠字条款——除非文档与「仅 Web」或验收环境约定**明显矛盾**,或 PRD 自己承诺了多终端却与代码不符。
59
+
60
+ ## 书写约束(针对写入文件的评审正文)
61
+
62
+ - 每条问题须说清「指向文档哪一句 / 哪一节」+「会卡在哪」。篇幅上**优先简洁**:段落式宜控制在**两三句话量级**;若采用 **Markdown 分条**,每条下的「要点 / 后果」也各自保持简短,**禁止**为套模板而重复空话。
63
+ - 引用需求文档用章节名、小节编号或口语转述条款;**不写**代码或工程标识符,技术边界用「评论受众与用语」中的白话改写。
64
+ - **简洁优先**:宁可少写几条,也不要为显得「全面」而重复或空话。
65
+ - 不对「业务价值高低」做主观评判;可说明「需求未定义清楚会导致何种决策瘫痪或返工风险」。
66
+
67
+ ---
68
+
69
+ ## 评审模板(写入临时文件的正文示例,结构仅供参考)
70
+
71
+ 按问题组织,**每条尽量点明文档位置**(章节名、小节编号、列表要点均可)。可读性要求高时优先采用 **Markdown 分条 + 要点/后果**(见上文「正文形态与语气」)。
72
+
73
+ **示例(标题 + 要点/后果 + 加粗):**
74
+
75
+ ```markdown
76
+ ## 「需求范围」第三条:主链路落在哪一屏没说死
77
+
78
+ - **要点**:……
79
+ - **后果**:……
80
+
81
+ ---
82
+
83
+ ## 「交互与功能要求」第 4 节:类型认定规则缺失
84
+
85
+ - **要点**:……
86
+ - **后果**:……
87
+ ```
88
+
89
+ (以上为示例:实际只保留**本轮确有依据**的条目;没有问题则不硬写。)
@@ -0,0 +1,19 @@
1
+ ## 需求文档
2
+
3
+ 在这里保存需求相关文件
4
+
5
+ ## 目录
6
+
7
+ workitems/<需求 ID>
8
+
9
+ ## 文件清单
10
+
11
+ - `status.yaml`: 需求的状态(包含当前的分支名称,需求状态,缺陷列表及状态)
12
+ - `prd.md`: pull 后写入的需求聚合正文
13
+ - `reviews.xml`: pull 后写入的评论与回复
14
+ - `defect.xml`: 缺陷信息
15
+ - `testcase.xml`: 测试用例占位数据
16
+ - `change.md`: 代码变更信息
17
+ - `specs/proposal.md`: 提议
18
+ - `specs/tasks.md`: 任务
19
+ - `specs/`
package/README.md DELETED
@@ -1,171 +0,0 @@
1
- # ai-project-manage-cli (`apm`)
2
-
3
- AI 项目管理后端的命令行工具与 SDK(包名 `ai-project-manage-cli`,可执行文件 `apm`)。
4
-
5
- 全局帮助:`apm --help`;各子命令可加 `--help` 查看参数说明。
6
-
7
- ## 配置文件
8
-
9
- 默认路径:`~/.config/apm/config.json`;若设置了 `$XDG_CONFIG_HOME`,则为 `$XDG_CONFIG_HOME/apm/config.json`。
10
-
11
- 典型字段:`baseUrl`、`token`、`employeeId`(由 `apm login` 写入);可选 `wsPort`(员工 WebSocket 端口,供 `apm ws` 使用)。
12
-
13
- ## `apm config`
14
-
15
- 读写本机配置(键名与 `npm config` 风格一致)。
16
-
17
- | 命令 | 说明 |
18
- |------|------|
19
- | `apm config set base-url <url>` | 服务根地址(不含末尾 `/`) |
20
- | `apm config get base-url` | 打印已配置的 base-url |
21
- | `apm config set ws-port <1–65535>` | 员工 WebSocket 端口 |
22
- | `apm config get ws-port` | 打印当前解析到的 ws 端口(未配置时有内置默认) |
23
-
24
- ## `apm login` / `apm logout`
25
-
26
- ```bash
27
- apm config set base-url http://localhost:3000
28
- apm login -u <员工ID> # 交互输入 CLI 口令;或 --password(勿写入 shell 历史)
29
- apm login -u <员工ID> --url <url> # 登录并覆盖/写入 base-url
30
- apm logout # 清除 token、employeeId,保留 base-url(及 ws-port 等)
31
- ```
32
-
33
- ## `apm init`
34
-
35
- 在**当前项目**中:初始化标准 `.apm` 目录;将内置 skills 安装到 `.apm/skills`(按技能子目录删除后全量复制);将 `templates/commands` 中的命令文件**合并**到 `.cursor/commands`(按文件名写入/覆盖,不删除其它已有文件)。需在含 `.cursor`、`.apm` 或 `.git` 的项目根(或向上查找)下执行。
36
-
37
- ```bash
38
- apm init
39
- ```
40
-
41
- ## `apm deploy-frontend`
42
-
43
- 将本地构建产物目录**递归上传**到 **MinIO**(S3 兼容),对象键规则为 `{分支名}/dist/{相对路径}`。上传前会清空该分支在存储中的已有前缀;上传完成后会为当前 `MINIO_BUCKET` 设置**匿名可读对象**(`s3:GetObject`)桶策略,便于 HTTP 直链访问。
44
-
45
- ### 环境与凭证
46
-
47
- - **不需要** `apm login`:本命令不访问业务 HTTP API。
48
- - MinIO 连接信息只从 **`process.env`** 读取 `MINIO_*`;执行前会尝试加载**当前工作目录**下固定路径 **`.apm/.env`**(若某键在环境中已存在,则**不会**被 `.env` 覆盖)。
49
- - 常用变量示例:`MINIO_ENDPOINT`、`MINIO_PORT`、`MINIO_USE_SSL`、`MINIO_BUCKET`、`MINIO_ACCESS_KEY`、`MINIO_SECRET_KEY`。
50
-
51
- 请在**含有 `.apm/.env` 的目录**作为当前目录运行(例如在 monorepo 根目录执行,而不是在子项目目录下)。
52
-
53
- ### 用法示例
54
-
55
- ```bash
56
- apm deploy-frontend feat/foo
57
- # 默认上传当前目录下的 ./dist
58
-
59
- apm deploy-frontend feat/foo --dir ./apps/fe/dist
60
- ```
61
-
62
- ### 本仓库内联调
63
-
64
- 在仓库根目录已配置 **`.apm/.env`** 的前提下,可在 `packages/cli` 下执行(会先切到 monorepo 根再调用 `deploy-frontend`,以便读到根目录的 `.apm/.env`):
65
-
66
- ```bash
67
- cd packages/cli
68
- rushx build
69
- rushx apm:deploy-frontend:test
70
- ```
71
-
72
- 默认将 **`packages/cli/dist`** 上传到 MinIO 前缀 **`cli-publish-test/dist/`**,用于验证 MinIO 连通与上传逻辑。
73
-
74
- ---
75
-
76
- ## 凭证与哪些命令需要登录
77
-
78
- 除 **`config`**、**`init`**、**`login`**、**`logout`**、**`update`**、**`ws`**、**`chat`**、**`deploy-frontend`**、**`deploy-backend`** 外,其余子命令会在执行前从配置文件读取 **`baseUrl`、`token`、`employeeId`**;未配置完整时会提示先执行 `apm login`。
79
-
80
- `apm ws` 可单独用 **`--url`**、**`--token`** 覆盖配置文件,不依赖上述 preAction 注入逻辑。
81
-
82
- ---
83
-
84
- ## `apm comment`(需求内容版本评论)
85
-
86
- | 子命令 | 说明 |
87
- |--------|------|
88
- | `comment update` | 提交评论正文:仅「已创建」状态可写,成功后变为「待处理」 |
89
- | `comment process` | 将指定版本下你名下「待处理」评论标为已处理并创建新版本(同步需求正文) |
90
-
91
- ```bash
92
- apm comment update --id <评论id> --content "评论正文"
93
-
94
- apm comment process --requirement-id <需求id> --version-seq <n> --content "新版本正文"
95
- apm comment process --requirement-id <需求id> --version-seq <n> --content-file ./updated.md
96
- ```
97
-
98
- `--version-seq` 为该需求下的版本序号,与界面 **v1、v2** 一致(不是数据库里的版本行 id)。
99
-
100
- ---
101
-
102
- ## `apm requirement`
103
-
104
- ### `requirement version content`
105
-
106
- 按需求 id 与版本序号获取该版本正文(**stdout** 输出 JSON,含 `content`、`comments` 等)。
107
-
108
- ```bash
109
- apm requirement version content --requirement-id <需求id> --version-seq <n>
110
- ```
111
-
112
- ### `requirement test-case import`
113
-
114
- 从 UTF-8 JSON **数组**文件批量导入测试用例;元素字段与单条创建一致(如 `title`、`steps`,可选 `expectedResult`、`status`)。
115
-
116
- ```bash
117
- apm requirement test-case import --requirement-id <需求id> --file ./cases.json
118
- ```
119
-
120
- ### `requirement branch set-status`
121
-
122
- 更新分支状态,两种方式二选一:
123
-
124
- 1. **按分支记录 id**(`branches/list` 返回的 `id`):
125
-
126
- ```bash
127
- apm requirement branch set-status --branch-id <分支记录id> --status <状态>
128
- ```
129
-
130
- 2. **按需求 id + 远程分支名(精确匹配)**:
131
-
132
- ```bash
133
- apm requirement branch set-status \
134
- --requirement-id <需求id> \
135
- --branch-name <远程分支名> \
136
- --status <状态>
137
- ```
138
-
139
- 状态取值与后端一致,例如:`CREATED`、`IN_DEVELOPMENT`、`PENDING_TEST`、`MERGED`。
140
-
141
- ### `requirement defect set-status`
142
-
143
- 按缺陷 id 更新状态。
144
-
145
- ```bash
146
- apm requirement defect set-status --defect-id <id> --status <状态>
147
- ```
148
-
149
- ---
150
-
151
- ## `apm ws`
152
-
153
- 启动员工 **WebSocket** 客户端,连接后等待服务端推送(**Ctrl+C** 退出)。
154
-
155
- 常用选项:
156
-
157
- - `--version`:打印当前 CLI 包版本后退出
158
- - `-u, --url`:服务根地址(覆盖配置中的 base-url)
159
- - `--token`:员工 token(可覆盖配置文件)
160
- - `-p, --port`:WebSocket 端口(覆盖 `apm config` 中的 `ws-port`)
161
- - `--employee-id`:仅用于日志展示,可选
162
-
163
- ---
164
-
165
- ## 员工 CLI 口令
166
-
167
- 员工 CLI 口令在库中为可配置项;在 Web 端维护员工节点时填写,或通过后端员工更新接口设置后再执行 `apm login`。
168
-
169
- ## SDK
170
-
171
- 本包导出 `createApmClient`、`requestConfig` 等,供在 Node 中调用与 CLI 相同的 HTTP API;详见包内 `package.json` 的 `exports` 与 `dist` 类型声明。
package/dist/api/cli.d.ts DELETED
@@ -1,228 +0,0 @@
1
- /** 对应 lpm-server `POST /cli/variables/get` */
2
- export type ReqCliVariablesGet = void;
3
- export type ResCliVariables = {
4
- frontendDeploy: {
5
- endpoint: string;
6
- port: number;
7
- useSsl: boolean;
8
- bucket: string;
9
- accessKey: string;
10
- secretKey: string;
11
- };
12
- backendDeploy: {
13
- registryHost: string;
14
- registryUser: string;
15
- registryPassword: string;
16
- remoteHost: string;
17
- remotePort: number;
18
- remoteProtocol: "https" | "http";
19
- caPath: string;
20
- certPath: string;
21
- keyPath: string;
22
- remotePullServeraddress: string;
23
- remotePullUser: string;
24
- remotePullPassword: string;
25
- imageRepository: string;
26
- containerName: string;
27
- };
28
- server: {
29
- url: string;
30
- wsPort: number;
31
- };
32
- auth: {
33
- id: number;
34
- token: string;
35
- };
36
- };
37
- /** 对应 lpm-server `POST /cli/employee/auth`;`username` 为员工 id */
38
- export type ReqCliLoginByEmployee = {
39
- username: number;
40
- password: string;
41
- };
42
- export type ResCliLoginByEmployee = {
43
- token: string;
44
- id: number;
45
- };
46
- /** 对应 lpm-server `POST /cli/resource/requirement/defects`(Bearer:当前员工名下工作目录作为处理人的缺陷) */
47
- export type ReqCliResourceRequirementDefectsList = {
48
- id: number;
49
- };
50
- export type CliDefectRow = {
51
- id: string;
52
- title: string;
53
- status: string;
54
- /** 处理人的开发目录(服务端返回 RequirementDeveloper.workdir.path) */
55
- workdir?: string | null;
56
- };
57
- export type ResCliResourceRequirementDefectsList = {
58
- list: CliDefectRow[];
59
- };
60
- /** 对应 lpm-server `POST /cli/resource/requirement/developers/branch-names` */
61
- export type ReqCliResourceRequirementDevelopersBranchNamesList = {
62
- id: number;
63
- };
64
- export type CliDeveloperBranchNameRow = {
65
- branchName: string | null;
66
- /** 工作目录绝对路径(与缺陷列表 `workdir` 一致,用于本地过滤) */
67
- workdir: string;
68
- };
69
- export type ResCliResourceRequirementDevelopersBranchNamesList = {
70
- list: CliDeveloperBranchNameRow[];
71
- };
72
- /** 对应 lpm-server `POST /cli/resource/requirement` */
73
- export type ReqCliResourceRequirementGet = {
74
- id: number;
75
- };
76
- export type ResCliResourceRequirementGet = {
77
- content: string;
78
- comments: {
79
- reviewer: number;
80
- content: string;
81
- reply: string;
82
- employeeId: number;
83
- }[];
84
- };
85
- /** 对应 lpm-server `POST /cli/resource/requirement/comment`(更新 RequirementDeveloper) */
86
- export type ReqCliResourceRequirementCommentSet = {
87
- id: number;
88
- content: string;
89
- };
90
- export type ResCliResourceRequirementCommentSet = {
91
- id: number;
92
- workitemId: string;
93
- title: string;
94
- workdirId: number;
95
- model: string;
96
- status: string;
97
- reviewResult: string | null;
98
- reviewReply: string | null;
99
- branchName: string | null;
100
- };
101
- /** 对应 lpm-server `POST /cli/resource/requirement/pull-request`(创建 PR/MR,不合并;标题由服务端根据需求解析) */
102
- export type ReqCliResourceRequirementPullRequestCreate = {
103
- id: number;
104
- };
105
- export type ResCliResourceRequirementPullRequestCreate = {
106
- remote: "GITHUB" | "GITEE";
107
- pullNumber: number;
108
- htmlUrl: string | null;
109
- action: "created" | "updated";
110
- };
111
- /** 对应 lpm-server `POST /cli/resource/requirement/release`(测试通过:待上线 + 建 PR;`forceMerge` 时再合并) */
112
- export type ReqCliResourceRequirementRelease = {
113
- id: number;
114
- forceMerge?: boolean;
115
- /** 必填:仅对该分支生效;标记失败时亦须携带(`apm release -b`) */
116
- branchName: string;
117
- /** 若填写:仅标记上线失败(FAILED_RELEASE),不执行 PR/合并(须与 branchName 同传) */
118
- failureReason?: string;
119
- };
120
- export type ResCliResourceRequirementRelease = {
121
- outcome: "released";
122
- message: string;
123
- } | {
124
- outcome: "marked_failed";
125
- id: number;
126
- status: "FAILED_RELEASE";
127
- failedReleaseReason: string | null;
128
- };
129
- /** 对应 lpm-server `POST /cli/resource/requirement/developer/branch-name` */
130
- export type ReqCliResourceRequirementDeveloperBranchNameSet = {
131
- id: number;
132
- branchName: string;
133
- };
134
- export type ResCliResourceRequirementDeveloperBranchNameSet = ResCliResourceRequirementCommentSet;
135
- /** 对应 lpm-server `POST /cli/resource/requirement/content`(同步需求正文) */
136
- export type ReqCliResourceRequirementContentSet = {
137
- id: number;
138
- content: string;
139
- };
140
- export type ResCliResourceRequirementContentSet = {
141
- id: number;
142
- workitemId: string;
143
- clearedRequirementDevelopers: number;
144
- };
145
- /** 对应 lpm-server `POST /cli/resource/requirement/test-cases/import` */
146
- export type ReqCliResourceRequirementTestCasesImport = {
147
- requirementId: number;
148
- items: {
149
- title: string;
150
- steps: string;
151
- expectedResult?: string;
152
- }[];
153
- };
154
- export type ResCliResourceRequirementTestCasesImport = {
155
- count: number;
156
- list: {
157
- id: number;
158
- spaceId: string;
159
- workitemId: string;
160
- title: string;
161
- steps: string;
162
- expectedResult: string | null;
163
- status: string;
164
- }[];
165
- };
166
- /** 对应 lpm-server `POST /cli/resource/environment`(创建环境,需 Bearer) */
167
- export type ReqCliResourceEnvironmentCreate = {
168
- requirementId: number;
169
- name: string;
170
- tag?: string;
171
- type?: "FRONTEND" | "BACKEND";
172
- };
173
- export type ResCliResourceEnvironmentCreate = {
174
- id: number;
175
- name: string;
176
- tag: string | null;
177
- type: string;
178
- creatorId: number | null;
179
- requirementId: number | null;
180
- createdAt: Date | string;
181
- updatedAt: Date | string;
182
- };
183
- /** 对应 lpm-server `POST /cli/log/report` */
184
- export type ReqCliResourceDevelopLogPayloadReport = {
185
- developLogId: string;
186
- chatId: string;
187
- skill: string;
188
- payload: Record<string, unknown>;
189
- };
190
- export type ResCliResourceDevelopLogPayloadReport = {
191
- id: number;
192
- developLogId: string;
193
- chatId: string;
194
- skill: string;
195
- payload: unknown;
196
- createdAt: string;
197
- };
198
- /** 对应 lpm-server `POST /cli/status/developer`(按开发日志 id 更新 `RequirementDeveloper.status`) */
199
- export type ReqCliLogDeveloperStatusSet = {
200
- developLogId: string;
201
- /** `DeveloperStatus` 枚举字符串,如 `DEVELOPING`、`REVIEWING` */
202
- status: string;
203
- };
204
- export type ResCliLogDeveloperStatusSet = {
205
- id: number;
206
- workitemId: string;
207
- title: string;
208
- workdirId: number;
209
- model: string;
210
- status: string;
211
- reviewResult: string | null;
212
- reviewReply: string | null;
213
- branchName: string | null;
214
- };
215
- /** 对应 lpm-server `POST /cli/status` */
216
- export type ReqCliStatusSet = {
217
- entity: "defect";
218
- defectId: string;
219
- } | {
220
- entity: "requirement";
221
- requirementId: number;
222
- };
223
- export type ResCliStatusSet = {
224
- entity: "defect" | "requirement";
225
- id: string | number;
226
- status: string;
227
- };
228
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/api/cli.ts"],"names":[],"mappings":"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"}
package/dist/api/cli.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/api/cli.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { type ApiClient } from "listpage-http";
2
- import { requestConfig } from "./request-config";
3
- export type ApmClient = ApiClient<typeof requestConfig>;
4
- export declare function createApmClient(): ApmClient;
5
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,aAAa,CAAC,CAAC;AAExD,wBAAgB,eAAe,IAAI,SAAS,CAkB3C"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createApmClient = createApmClient;
4
- const listpage_http_1 = require("listpage-http");
5
- const request_config_1 = require("./request-config");
6
- const apm_config_1 = require("../core/apm-config");
7
- function normalizeBaseUrl(url) {
8
- return url.trim().replace(/\/+$/, "");
9
- }
10
- function createApmClient() {
11
- const config = (0, apm_config_1.getApmRuntimeConfig)();
12
- const baseURL = `${normalizeBaseUrl(config.server.url)}/api/v1`;
13
- const defaultHeaders = {};
14
- return (0, listpage_http_1.createApiClient)(request_config_1.requestConfig, {
15
- baseURL,
16
- getToken: () => {
17
- const t = config.auth.token.trim();
18
- return t.length > 0 ? t : undefined;
19
- },
20
- defaultHeaders,
21
- successCodes: [20000, 200, 201],
22
- unauthorizedCodes: [],
23
- onError(code, message, opts) {
24
- if (opts?.quiet)
25
- return;
26
- console.error(`[APM API] ${String(code)}: ${message ?? "请求失败"}`);
27
- },
28
- });
29
- }
30
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":";;AAUA,0CAkBC;AA5BD,iDAAgE;AAChE,qDAAiD;AACjD,mDAAyD;AAEzD,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAID,SAAgB,eAAe;IAC7B,MAAM,MAAM,GAAG,IAAA,gCAAmB,GAAE,CAAC;IACrC,MAAM,OAAO,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;IAChE,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,OAAO,IAAA,+BAAe,EAAC,8BAAa,EAAE;QACpC,OAAO;QACP,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtC,CAAC;QACD,cAAc;QACd,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;QAC/B,iBAAiB,EAAE,EAAE;QACrB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAA0B;YAC/C,IAAI,IAAI,EAAE,KAAK;gBAAE,OAAO;YACxB,OAAO,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,KAAK,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;QACnE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * 与前端 listpage-http 约定一致:成功码与 { code, message, data } 包体。
3
- */
4
- export declare const APM_SUCCESS_CODES: readonly [20000, 200, 201];
5
- export declare class ApmSdkError extends Error {
6
- readonly httpStatus?: number | undefined;
7
- readonly businessCode?: number | undefined;
8
- readonly name = "ApmSdkError";
9
- constructor(message: string, httpStatus?: number | undefined, businessCode?: number | undefined, options?: {
10
- cause?: unknown;
11
- });
12
- }
13
- export type CreateJsonTransportOptions = {
14
- baseUrl: string;
15
- token: string;
16
- timeoutMs?: number;
17
- fetch?: typeof fetch;
18
- };
19
- export type JsonPostFn = <Req, Res>(path: string, body: Req) => Promise<Res>;
20
- export declare function createJsonPostTransport(options: CreateJsonTransportOptions): JsonPostFn;
21
- //# sourceMappingURL=http.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,eAAO,MAAM,iBAAiB,4BAA6B,CAAC;AAI5D,qBAAa,WAAY,SAAQ,KAAK;IAKlC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IALhC,SAAkB,IAAI,iBAAiB;gBAGrC,OAAO,EAAE,MAAM,EACN,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,YAAY,CAAC,EAAE,MAAM,YAAA,EAC9B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAIhC;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAwCF,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE7E,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,0BAA0B,GAClC,UAAU,CA0EZ"}