@ytinnovation/harness-core 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/README.md +17 -0
  2. package/dist/assets/fetch-published-by-name.d.ts +16 -0
  3. package/dist/assets/fetch-published-by-name.d.ts.map +1 -0
  4. package/dist/assets/fetch-published-by-name.js +40 -0
  5. package/dist/assets/fetch-published-by-name.js.map +1 -0
  6. package/dist/assets/install-content.d.ts +7 -0
  7. package/dist/assets/install-content.d.ts.map +1 -0
  8. package/dist/assets/install-content.js +24 -0
  9. package/dist/assets/install-content.js.map +1 -0
  10. package/dist/assets/install-from.d.ts +6 -0
  11. package/dist/assets/install-from.d.ts.map +1 -0
  12. package/dist/assets/install-from.js +13 -0
  13. package/dist/assets/install-from.js.map +1 -0
  14. package/dist/assets/install.d.ts +36 -0
  15. package/dist/assets/install.d.ts.map +1 -0
  16. package/dist/assets/install.js +199 -0
  17. package/dist/assets/install.js.map +1 -0
  18. package/dist/assets/mcp-config-format.d.ts +11 -0
  19. package/dist/assets/mcp-config-format.d.ts.map +1 -0
  20. package/dist/assets/mcp-config-format.js +101 -0
  21. package/dist/assets/mcp-config-format.js.map +1 -0
  22. package/dist/assets/metadata.d.ts +65 -0
  23. package/dist/assets/metadata.d.ts.map +1 -0
  24. package/dist/assets/metadata.js +164 -0
  25. package/dist/assets/metadata.js.map +1 -0
  26. package/dist/assets/project-manifest.d.ts +80 -0
  27. package/dist/assets/project-manifest.d.ts.map +1 -0
  28. package/dist/assets/project-manifest.js +556 -0
  29. package/dist/assets/project-manifest.js.map +1 -0
  30. package/dist/assets/published-content.d.ts +28 -0
  31. package/dist/assets/published-content.d.ts.map +1 -0
  32. package/dist/assets/published-content.js +137 -0
  33. package/dist/assets/published-content.js.map +1 -0
  34. package/dist/assets/registry-entry.d.ts +9 -0
  35. package/dist/assets/registry-entry.d.ts.map +1 -0
  36. package/dist/assets/registry-entry.js +72 -0
  37. package/dist/assets/registry-entry.js.map +1 -0
  38. package/dist/assets/remote-list.d.ts +15 -0
  39. package/dist/assets/remote-list.d.ts.map +1 -0
  40. package/dist/assets/remote-list.js +36 -0
  41. package/dist/assets/remote-list.js.map +1 -0
  42. package/dist/cli-output/clipboard.d.ts +9 -0
  43. package/dist/cli-output/clipboard.d.ts.map +1 -0
  44. package/dist/cli-output/clipboard.js +56 -0
  45. package/dist/cli-output/clipboard.js.map +1 -0
  46. package/dist/cli-output/renderers.d.ts +99 -0
  47. package/dist/cli-output/renderers.d.ts.map +1 -0
  48. package/dist/cli-output/renderers.js +267 -0
  49. package/dist/cli-output/renderers.js.map +1 -0
  50. package/dist/cloud/enterprise-asset-client.d.ts +32 -0
  51. package/dist/cloud/enterprise-asset-client.d.ts.map +1 -0
  52. package/dist/cloud/enterprise-asset-client.js +179 -0
  53. package/dist/cloud/enterprise-asset-client.js.map +1 -0
  54. package/dist/cloud/enterprise-asset-types.d.ts +74 -0
  55. package/dist/cloud/enterprise-asset-types.d.ts.map +1 -0
  56. package/dist/cloud/enterprise-asset-types.js +2 -0
  57. package/dist/cloud/enterprise-asset-types.js.map +1 -0
  58. package/dist/cloud/harness-service-url.d.ts +3 -0
  59. package/dist/cloud/harness-service-url.d.ts.map +1 -0
  60. package/dist/cloud/harness-service-url.js +13 -0
  61. package/dist/cloud/harness-service-url.js.map +1 -0
  62. package/dist/cloud/rag-client.d.ts +18 -0
  63. package/dist/cloud/rag-client.d.ts.map +1 -0
  64. package/dist/cloud/rag-client.js +57 -0
  65. package/dist/cloud/rag-client.js.map +1 -0
  66. package/dist/cloud/redaction.d.ts +2 -0
  67. package/dist/cloud/redaction.d.ts.map +1 -0
  68. package/dist/cloud/redaction.js +53 -0
  69. package/dist/cloud/redaction.js.map +1 -0
  70. package/dist/cloud/telemetry-client.d.ts +21 -0
  71. package/dist/cloud/telemetry-client.d.ts.map +1 -0
  72. package/dist/cloud/telemetry-client.js +39 -0
  73. package/dist/cloud/telemetry-client.js.map +1 -0
  74. package/dist/contracts/config.d.ts +9 -0
  75. package/dist/contracts/config.d.ts.map +1 -0
  76. package/dist/contracts/config.defaults.d.ts +5 -0
  77. package/dist/contracts/config.defaults.d.ts.map +1 -0
  78. package/dist/contracts/config.defaults.js +5 -0
  79. package/dist/contracts/config.defaults.js.map +1 -0
  80. package/dist/contracts/config.js +5 -0
  81. package/dist/contracts/config.js.map +1 -0
  82. package/dist/contracts/config.loader.d.ts +3 -0
  83. package/dist/contracts/config.loader.d.ts.map +1 -0
  84. package/dist/contracts/config.loader.js +38 -0
  85. package/dist/contracts/config.loader.js.map +1 -0
  86. package/dist/contracts/errors.d.ts +8 -0
  87. package/dist/contracts/errors.d.ts.map +1 -0
  88. package/dist/contracts/errors.js +10 -0
  89. package/dist/contracts/errors.js.map +1 -0
  90. package/dist/cursor-acp-demo/index.d.ts +2 -0
  91. package/dist/cursor-acp-demo/index.d.ts.map +1 -0
  92. package/dist/cursor-acp-demo/index.js +63 -0
  93. package/dist/cursor-acp-demo/index.js.map +1 -0
  94. package/dist/dashboard/command.d.ts +15 -0
  95. package/dist/dashboard/command.d.ts.map +1 -0
  96. package/dist/dashboard/command.js +283 -0
  97. package/dist/dashboard/command.js.map +1 -0
  98. package/dist/dashboard/http-api.d.ts +3 -0
  99. package/dist/dashboard/http-api.d.ts.map +1 -0
  100. package/dist/dashboard/http-api.js +376 -0
  101. package/dist/dashboard/http-api.js.map +1 -0
  102. package/dist/dashboard/telemetry-snapshot.d.ts +11 -0
  103. package/dist/dashboard/telemetry-snapshot.d.ts.map +1 -0
  104. package/dist/dashboard/telemetry-snapshot.js +27 -0
  105. package/dist/dashboard/telemetry-snapshot.js.map +1 -0
  106. package/dist/dashboard-assets/assets/index-BNx5sFKx.css +1 -0
  107. package/dist/dashboard-assets/assets/index-ruRt5sDA.js +40 -0
  108. package/dist/dashboard-assets/index.html +13 -0
  109. package/dist/gateway/auth.d.ts +44 -0
  110. package/dist/gateway/auth.d.ts.map +1 -0
  111. package/dist/gateway/auth.js +2 -0
  112. package/dist/gateway/auth.js.map +1 -0
  113. package/dist/gateway/client.d.ts +65 -0
  114. package/dist/gateway/client.d.ts.map +1 -0
  115. package/dist/gateway/client.js +133 -0
  116. package/dist/gateway/client.js.map +1 -0
  117. package/dist/gateway/command.d.ts +4 -0
  118. package/dist/gateway/command.d.ts.map +1 -0
  119. package/dist/gateway/command.js +213 -0
  120. package/dist/gateway/command.js.map +1 -0
  121. package/dist/gateway/service-http-exchange.d.ts +17 -0
  122. package/dist/gateway/service-http-exchange.d.ts.map +1 -0
  123. package/dist/gateway/service-http-exchange.js +183 -0
  124. package/dist/gateway/service-http-exchange.js.map +1 -0
  125. package/dist/gateway/token-exchange.d.ts +10 -0
  126. package/dist/gateway/token-exchange.d.ts.map +1 -0
  127. package/dist/gateway/token-exchange.js +8 -0
  128. package/dist/gateway/token-exchange.js.map +1 -0
  129. package/dist/index.d.ts +111 -0
  130. package/dist/index.d.ts.map +1 -0
  131. package/dist/index.js +62 -0
  132. package/dist/index.js.map +1 -0
  133. package/dist/init/cloud-asset-client.d.ts +74 -0
  134. package/dist/init/cloud-asset-client.d.ts.map +1 -0
  135. package/dist/init/cloud-asset-client.js +399 -0
  136. package/dist/init/cloud-asset-client.js.map +1 -0
  137. package/dist/init/cloud-auto.d.ts +16 -0
  138. package/dist/init/cloud-auto.d.ts.map +1 -0
  139. package/dist/init/cloud-auto.js +61 -0
  140. package/dist/init/cloud-auto.js.map +1 -0
  141. package/dist/init/command.d.ts +17 -0
  142. package/dist/init/command.d.ts.map +1 -0
  143. package/dist/init/command.js +783 -0
  144. package/dist/init/command.js.map +1 -0
  145. package/dist/init/cursor-adapter.d.ts +24 -0
  146. package/dist/init/cursor-adapter.d.ts.map +1 -0
  147. package/dist/init/cursor-adapter.js +71 -0
  148. package/dist/init/cursor-adapter.js.map +1 -0
  149. package/dist/init/fingerprint.d.ts +6 -0
  150. package/dist/init/fingerprint.d.ts.map +1 -0
  151. package/dist/init/fingerprint.js +157 -0
  152. package/dist/init/fingerprint.js.map +1 -0
  153. package/dist/init/git-identity-catalog.d.ts +17 -0
  154. package/dist/init/git-identity-catalog.d.ts.map +1 -0
  155. package/dist/init/git-identity-catalog.js +48 -0
  156. package/dist/init/git-identity-catalog.js.map +1 -0
  157. package/dist/init/local-fallback-config-packs.d.ts +5 -0
  158. package/dist/init/local-fallback-config-packs.d.ts.map +1 -0
  159. package/dist/init/local-fallback-config-packs.js +6 -0
  160. package/dist/init/local-fallback-config-packs.js.map +1 -0
  161. package/dist/init/manifest-records.d.ts +34 -0
  162. package/dist/init/manifest-records.d.ts.map +1 -0
  163. package/dist/init/manifest-records.js +296 -0
  164. package/dist/init/manifest-records.js.map +1 -0
  165. package/dist/init/matched-init.d.ts +64 -0
  166. package/dist/init/matched-init.d.ts.map +1 -0
  167. package/dist/init/matched-init.js +263 -0
  168. package/dist/init/matched-init.js.map +1 -0
  169. package/dist/init/plan.d.ts +8 -0
  170. package/dist/init/plan.d.ts.map +1 -0
  171. package/dist/init/plan.js +165 -0
  172. package/dist/init/plan.js.map +1 -0
  173. package/dist/init/project-fingerprint-catalog.d.ts +17 -0
  174. package/dist/init/project-fingerprint-catalog.d.ts.map +1 -0
  175. package/dist/init/project-fingerprint-catalog.js +105 -0
  176. package/dist/init/project-fingerprint-catalog.js.map +1 -0
  177. package/dist/init/prompt.d.ts +38 -0
  178. package/dist/init/prompt.d.ts.map +1 -0
  179. package/dist/init/prompt.js +217 -0
  180. package/dist/init/prompt.js.map +1 -0
  181. package/dist/init/questions.d.ts +5 -0
  182. package/dist/init/questions.d.ts.map +1 -0
  183. package/dist/init/questions.js +71 -0
  184. package/dist/init/questions.js.map +1 -0
  185. package/dist/init/template-match.d.ts +10 -0
  186. package/dist/init/template-match.d.ts.map +1 -0
  187. package/dist/init/template-match.js +125 -0
  188. package/dist/init/template-match.js.map +1 -0
  189. package/dist/init/types.d.ts +162 -0
  190. package/dist/init/types.d.ts.map +1 -0
  191. package/dist/init/types.js +2 -0
  192. package/dist/init/types.js.map +1 -0
  193. package/dist/init/write.d.ts +7 -0
  194. package/dist/init/write.d.ts.map +1 -0
  195. package/dist/init/write.js +155 -0
  196. package/dist/init/write.js.map +1 -0
  197. package/dist/install/command.d.ts +25 -0
  198. package/dist/install/command.d.ts.map +1 -0
  199. package/dist/install/command.js +251 -0
  200. package/dist/install/command.js.map +1 -0
  201. package/dist/install/prompt.d.ts +21 -0
  202. package/dist/install/prompt.d.ts.map +1 -0
  203. package/dist/install/prompt.js +60 -0
  204. package/dist/install/prompt.js.map +1 -0
  205. package/dist/kernel/commands/init.d.ts +11 -0
  206. package/dist/kernel/commands/init.d.ts.map +1 -0
  207. package/dist/kernel/commands/init.js +144 -0
  208. package/dist/kernel/commands/init.js.map +1 -0
  209. package/dist/kernel/create.d.ts +3 -0
  210. package/dist/kernel/create.d.ts.map +1 -0
  211. package/dist/kernel/create.js +31 -0
  212. package/dist/kernel/create.js.map +1 -0
  213. package/dist/kernel/router.d.ts +14 -0
  214. package/dist/kernel/router.d.ts.map +1 -0
  215. package/dist/kernel/router.js +73 -0
  216. package/dist/kernel/router.js.map +1 -0
  217. package/dist/kernel/types.d.ts +6 -0
  218. package/dist/kernel/types.d.ts.map +1 -0
  219. package/dist/kernel/types.js +2 -0
  220. package/dist/kernel/types.js.map +1 -0
  221. package/dist/knowledge/command.d.ts +6 -0
  222. package/dist/knowledge/command.d.ts.map +1 -0
  223. package/dist/knowledge/command.js +151 -0
  224. package/dist/knowledge/command.js.map +1 -0
  225. package/dist/knowledge/query.d.ts +23 -0
  226. package/dist/knowledge/query.d.ts.map +1 -0
  227. package/dist/knowledge/query.js +133 -0
  228. package/dist/knowledge/query.js.map +1 -0
  229. package/dist/knowledge/rag.d.ts +74 -0
  230. package/dist/knowledge/rag.d.ts.map +1 -0
  231. package/dist/knowledge/rag.js +55 -0
  232. package/dist/knowledge/rag.js.map +1 -0
  233. package/dist/knowledge/types.d.ts +40 -0
  234. package/dist/knowledge/types.d.ts.map +1 -0
  235. package/dist/knowledge/types.js +13 -0
  236. package/dist/knowledge/types.js.map +1 -0
  237. package/dist/mcp/command.d.ts +19 -0
  238. package/dist/mcp/command.d.ts.map +1 -0
  239. package/dist/mcp/command.js +359 -0
  240. package/dist/mcp/command.js.map +1 -0
  241. package/dist/mcp/server.d.ts +14 -0
  242. package/dist/mcp/server.d.ts.map +1 -0
  243. package/dist/mcp/server.js +44 -0
  244. package/dist/mcp/server.js.map +1 -0
  245. package/dist/mcp/tool-registry.d.ts +38 -0
  246. package/dist/mcp/tool-registry.d.ts.map +1 -0
  247. package/dist/mcp/tool-registry.js +50 -0
  248. package/dist/mcp/tool-registry.js.map +1 -0
  249. package/dist/mcp/tools/add-skill.d.ts +29 -0
  250. package/dist/mcp/tools/add-skill.d.ts.map +1 -0
  251. package/dist/mcp/tools/add-skill.js +184 -0
  252. package/dist/mcp/tools/add-skill.js.map +1 -0
  253. package/dist/mcp/tools/assemble-init-assets.d.ts +26 -0
  254. package/dist/mcp/tools/assemble-init-assets.d.ts.map +1 -0
  255. package/dist/mcp/tools/assemble-init-assets.js +136 -0
  256. package/dist/mcp/tools/assemble-init-assets.js.map +1 -0
  257. package/dist/mcp/tools/query-knowledge.d.ts +28 -0
  258. package/dist/mcp/tools/query-knowledge.d.ts.map +1 -0
  259. package/dist/mcp/tools/query-knowledge.js +92 -0
  260. package/dist/mcp/tools/query-knowledge.js.map +1 -0
  261. package/dist/mcp/tools/read-instructions.d.ts +14 -0
  262. package/dist/mcp/tools/read-instructions.d.ts.map +1 -0
  263. package/dist/mcp/tools/read-instructions.js +81 -0
  264. package/dist/mcp/tools/read-instructions.js.map +1 -0
  265. package/dist/mcp/tools/sync-spec.d.ts +17 -0
  266. package/dist/mcp/tools/sync-spec.d.ts.map +1 -0
  267. package/dist/mcp/tools/sync-spec.js +80 -0
  268. package/dist/mcp/tools/sync-spec.js.map +1 -0
  269. package/dist/mcp/tools/update-rule.d.ts +49 -0
  270. package/dist/mcp/tools/update-rule.d.ts.map +1 -0
  271. package/dist/mcp/tools/update-rule.js +188 -0
  272. package/dist/mcp/tools/update-rule.js.map +1 -0
  273. package/dist/mcp/types.d.ts +21 -0
  274. package/dist/mcp/types.d.ts.map +1 -0
  275. package/dist/mcp/types.js +8 -0
  276. package/dist/mcp/types.js.map +1 -0
  277. package/dist/prompt/command.d.ts +10 -0
  278. package/dist/prompt/command.d.ts.map +1 -0
  279. package/dist/prompt/command.js +260 -0
  280. package/dist/prompt/command.js.map +1 -0
  281. package/dist/rule/command.d.ts +10 -0
  282. package/dist/rule/command.d.ts.map +1 -0
  283. package/dist/rule/command.js +120 -0
  284. package/dist/rule/command.js.map +1 -0
  285. package/dist/skills/command.d.ts +23 -0
  286. package/dist/skills/command.d.ts.map +1 -0
  287. package/dist/skills/command.js +713 -0
  288. package/dist/skills/command.js.map +1 -0
  289. package/dist/skills/default-internal-skill-provider.d.ts +4 -0
  290. package/dist/skills/default-internal-skill-provider.d.ts.map +1 -0
  291. package/dist/skills/default-internal-skill-provider.js +23 -0
  292. package/dist/skills/default-internal-skill-provider.js.map +1 -0
  293. package/dist/skills/gitlab-skill-publish-client.d.ts +13 -0
  294. package/dist/skills/gitlab-skill-publish-client.d.ts.map +1 -0
  295. package/dist/skills/gitlab-skill-publish-client.js +255 -0
  296. package/dist/skills/gitlab-skill-publish-client.js.map +1 -0
  297. package/dist/skills/install.d.ts +23 -0
  298. package/dist/skills/install.d.ts.map +1 -0
  299. package/dist/skills/install.js +143 -0
  300. package/dist/skills/install.js.map +1 -0
  301. package/dist/skills/list-scan.d.ts +29 -0
  302. package/dist/skills/list-scan.d.ts.map +1 -0
  303. package/dist/skills/list-scan.js +230 -0
  304. package/dist/skills/list-scan.js.map +1 -0
  305. package/dist/skills/metadata.d.ts +5 -0
  306. package/dist/skills/metadata.d.ts.map +1 -0
  307. package/dist/skills/metadata.js +44 -0
  308. package/dist/skills/metadata.js.map +1 -0
  309. package/dist/skills/providers/harness-service.d.ts +11 -0
  310. package/dist/skills/providers/harness-service.d.ts.map +1 -0
  311. package/dist/skills/providers/harness-service.js +111 -0
  312. package/dist/skills/providers/harness-service.js.map +1 -0
  313. package/dist/skills/providers/stub.d.ts +4 -0
  314. package/dist/skills/providers/stub.d.ts.map +1 -0
  315. package/dist/skills/providers/stub.js +18 -0
  316. package/dist/skills/providers/stub.js.map +1 -0
  317. package/dist/skills/publish.d.ts +35 -0
  318. package/dist/skills/publish.d.ts.map +1 -0
  319. package/dist/skills/publish.js +115 -0
  320. package/dist/skills/publish.js.map +1 -0
  321. package/dist/skills/registry.d.ts +24 -0
  322. package/dist/skills/registry.d.ts.map +1 -0
  323. package/dist/skills/registry.js +124 -0
  324. package/dist/skills/registry.js.map +1 -0
  325. package/dist/skills/remove.d.ts +14 -0
  326. package/dist/skills/remove.d.ts.map +1 -0
  327. package/dist/skills/remove.js +44 -0
  328. package/dist/skills/remove.js.map +1 -0
  329. package/dist/skills/search.d.ts +9 -0
  330. package/dist/skills/search.d.ts.map +1 -0
  331. package/dist/skills/search.js +65 -0
  332. package/dist/skills/search.js.map +1 -0
  333. package/dist/skills/skill-markdown-manifest.d.ts +6 -0
  334. package/dist/skills/skill-markdown-manifest.d.ts.map +1 -0
  335. package/dist/skills/skill-markdown-manifest.js +57 -0
  336. package/dist/skills/skill-markdown-manifest.js.map +1 -0
  337. package/dist/skills/types.d.ts +138 -0
  338. package/dist/skills/types.d.ts.map +1 -0
  339. package/dist/skills/types.js +2 -0
  340. package/dist/skills/types.js.map +1 -0
  341. package/dist/skills/update.d.ts +11 -0
  342. package/dist/skills/update.d.ts.map +1 -0
  343. package/dist/skills/update.js +55 -0
  344. package/dist/skills/update.js.map +1 -0
  345. package/dist/spec/command.d.ts +11 -0
  346. package/dist/spec/command.d.ts.map +1 -0
  347. package/dist/spec/command.js +201 -0
  348. package/dist/spec/command.js.map +1 -0
  349. package/dist/telemetry/reporter.d.ts +14 -0
  350. package/dist/telemetry/reporter.d.ts.map +1 -0
  351. package/dist/telemetry/reporter.js +31 -0
  352. package/dist/telemetry/reporter.js.map +1 -0
  353. package/dist/telemetry/sink.d.ts +7 -0
  354. package/dist/telemetry/sink.d.ts.map +1 -0
  355. package/dist/telemetry/sink.js +309 -0
  356. package/dist/telemetry/sink.js.map +1 -0
  357. package/dist/telemetry/types.d.ts +48 -0
  358. package/dist/telemetry/types.d.ts.map +1 -0
  359. package/dist/telemetry/types.js +2 -0
  360. package/dist/telemetry/types.js.map +1 -0
  361. package/dist/update/apply.d.ts +11 -0
  362. package/dist/update/apply.d.ts.map +1 -0
  363. package/dist/update/apply.js +94 -0
  364. package/dist/update/apply.js.map +1 -0
  365. package/dist/update/command.d.ts +43 -0
  366. package/dist/update/command.d.ts.map +1 -0
  367. package/dist/update/command.js +524 -0
  368. package/dist/update/command.js.map +1 -0
  369. package/dist/update/config-pack-sync.d.ts +11 -0
  370. package/dist/update/config-pack-sync.d.ts.map +1 -0
  371. package/dist/update/config-pack-sync.js +88 -0
  372. package/dist/update/config-pack-sync.js.map +1 -0
  373. package/dist/update/enterprise-update-provider.d.ts +8 -0
  374. package/dist/update/enterprise-update-provider.d.ts.map +1 -0
  375. package/dist/update/enterprise-update-provider.js +76 -0
  376. package/dist/update/enterprise-update-provider.js.map +1 -0
  377. package/dist/update/manifest-source.d.ts +33 -0
  378. package/dist/update/manifest-source.d.ts.map +1 -0
  379. package/dist/update/manifest-source.js +111 -0
  380. package/dist/update/manifest-source.js.map +1 -0
  381. package/dist/update/plan-utils.d.ts +5 -0
  382. package/dist/update/plan-utils.d.ts.map +1 -0
  383. package/dist/update/plan-utils.js +13 -0
  384. package/dist/update/plan-utils.js.map +1 -0
  385. package/dist/update/prompt.d.ts +19 -0
  386. package/dist/update/prompt.d.ts.map +1 -0
  387. package/dist/update/prompt.js +72 -0
  388. package/dist/update/prompt.js.map +1 -0
  389. package/dist/update/resolve-action.d.ts +7 -0
  390. package/dist/update/resolve-action.d.ts.map +1 -0
  391. package/dist/update/resolve-action.js +14 -0
  392. package/dist/update/resolve-action.js.map +1 -0
  393. package/dist/update/types.d.ts +33 -0
  394. package/dist/update/types.d.ts.map +1 -0
  395. package/dist/update/types.js +2 -0
  396. package/dist/update/types.js.map +1 -0
  397. package/package.json +42 -0
@@ -0,0 +1,267 @@
1
+ import pc from 'picocolors';
2
+ import { table } from 'table';
3
+ export function renderJson(payload) {
4
+ return JSON.stringify(payload);
5
+ }
6
+ export function renderSection(title, subtitle) {
7
+ const lines = [pc.bold(pc.cyan(`▶ ${title}`))];
8
+ if (subtitle?.trim()) {
9
+ lines.push(pc.dim(subtitle.trim()));
10
+ }
11
+ return lines.join('\n');
12
+ }
13
+ export function renderEmptyState(title, message) {
14
+ return [pc.yellow(`○ ${title}`), pc.dim(message)].join('\n');
15
+ }
16
+ export function renderKeyValueBlock(title, rows) {
17
+ const body = rows
18
+ .map(([label, value]) => ` ${pc.dim(label)}: ${formatValue(value)}`)
19
+ .join('\n');
20
+ return [renderSection(title), body].filter(Boolean).join('\n');
21
+ }
22
+ export function renderErrorBlock(input) {
23
+ const lines = [pc.bold(pc.red(`✖ ${input.title}`)), input.message];
24
+ if (input.code) {
25
+ lines.push(`${pc.dim('错误码')}: ${input.code}`);
26
+ }
27
+ if (input.suggestions?.length) {
28
+ lines.push(pc.yellow('建议:'));
29
+ for (const suggestion of input.suggestions) {
30
+ lines.push(` - ${suggestion}`);
31
+ }
32
+ }
33
+ return lines.join('\n');
34
+ }
35
+ export function renderSuccessBlock(title, rows = [], nextSteps = []) {
36
+ const lines = [pc.bold(pc.green(`✔ ${title}`))];
37
+ for (const [label, value] of rows) {
38
+ lines.push(` ${pc.dim(label)}: ${formatValue(value)}`);
39
+ }
40
+ if (nextSteps.length > 0) {
41
+ lines.push(pc.cyan('下一步:'));
42
+ for (const step of nextSteps) {
43
+ lines.push(` - ${step}`);
44
+ }
45
+ }
46
+ return lines.join('\n');
47
+ }
48
+ export function renderWarningBlock(title, rows = [], nextSteps = []) {
49
+ const lines = [pc.bold(pc.yellow(`▲ ${title}`))];
50
+ for (const [label, value] of rows) {
51
+ lines.push(` ${pc.dim(label)}: ${formatValue(value)}`);
52
+ }
53
+ if (nextSteps.length > 0) {
54
+ lines.push(pc.cyan('建议:'));
55
+ for (const step of nextSteps) {
56
+ lines.push(` - ${step}`);
57
+ }
58
+ }
59
+ return lines.join('\n');
60
+ }
61
+ export function renderTable(rows, columns) {
62
+ if (rows.length === 0) {
63
+ return '';
64
+ }
65
+ const resolvedColumns = columns ??
66
+ rows[0]?.map(() => ({ wrapWord: true, width: 18 })) ??
67
+ [];
68
+ return table(rows, {
69
+ border: {
70
+ topBody: '─',
71
+ topJoin: '┬',
72
+ topLeft: '┌',
73
+ topRight: '┐',
74
+ bottomBody: '─',
75
+ bottomJoin: '┴',
76
+ bottomLeft: '└',
77
+ bottomRight: '┘',
78
+ bodyLeft: '│',
79
+ bodyRight: '│',
80
+ bodyJoin: '│',
81
+ joinBody: '─',
82
+ joinLeft: '├',
83
+ joinRight: '┤',
84
+ joinJoin: '┼',
85
+ },
86
+ columns: resolvedColumns.map((column) => ({
87
+ wrapWord: column.wrapWord ?? true,
88
+ ...(column.width !== undefined ? { width: column.width } : {}),
89
+ ...('alignment' in column && column.alignment ? { alignment: column.alignment } : {}),
90
+ })),
91
+ }).trimEnd();
92
+ }
93
+ export function renderRemoteAssetTable(assets) {
94
+ if (assets.length === 0) {
95
+ return renderEmptyState('暂无远程资产', '企业服务当前没有返回热门资产。');
96
+ }
97
+ const rows = [
98
+ ['排名', '类型', '名称', '版本', '下载', '评分', 'Asset ID'],
99
+ ...assets.map((asset, index) => [
100
+ String(index + 1),
101
+ asset.type,
102
+ asset.name,
103
+ asset.version ?? 'unknown',
104
+ String(asset.downloadCount),
105
+ asset.rating > 0 ? asset.rating.toFixed(1) : '暂无',
106
+ asset.assetId,
107
+ ]),
108
+ ];
109
+ return table(colorHeader(rows), {
110
+ columns: [
111
+ { width: 4 },
112
+ { width: 10 },
113
+ { width: 24 },
114
+ { width: 12 },
115
+ { width: 8, alignment: 'right' },
116
+ { width: 8, alignment: 'right' },
117
+ { width: 28 },
118
+ ],
119
+ }).trimEnd();
120
+ }
121
+ export function renderRemoteAssetList(title, assets) {
122
+ return [
123
+ renderSection(title, `共 ${assets.length} 个远程热门资产。`),
124
+ renderRemoteAssetTable(assets),
125
+ ].join('\n');
126
+ }
127
+ export function renderSkillLocalList(input) {
128
+ const sections = [
129
+ renderSection('本地 Skill 清单', `扫描根目录:${input.workspaceRoot}`),
130
+ renderNamedRows('Harness 维护的 Skills', ['名称', '版本', '路径', '描述'], input.maintained.map((entry) => [
131
+ entry.manifest?.name ?? 'unknown',
132
+ entry.manifest?.version ?? 'unknown',
133
+ entry.relativePath,
134
+ entry.manifest?.description ?? '',
135
+ ]), '当前没有发现 managedBy=harness 的 Skill。'),
136
+ renderNamedRows('其他发现的 Skills', ['名称', '原因', '路径'], input.other.map((entry) => [
137
+ entry.manifest?.name ?? 'unknown',
138
+ entry.reason ?? 'unknown',
139
+ entry.relativePath,
140
+ ]), '当前没有发现非 Harness 维护的 Skill。'),
141
+ renderNamedRows('安装注册表', ['名称', '版本', '来源', 'Revision'], input.registry.map((entry) => [
142
+ entry.skillName,
143
+ entry.manifest?.version ?? 'unknown',
144
+ entry.source ?? 'unknown',
145
+ entry.revision ?? 'unknown',
146
+ ]), '本地注册表暂时没有安装记录。'),
147
+ ];
148
+ return sections.join('\n\n');
149
+ }
150
+ export function renderSearchResults(input) {
151
+ return [
152
+ renderSection('Skill 搜索结果', `查询:${input.query}`),
153
+ renderNamedRows('匹配项', ['名称', '来源', '审核', '可安装', 'Revision', '描述'], input.results.map((result) => [
154
+ result.skillName,
155
+ result.sourceLabel ?? 'unknown',
156
+ result.reviewStatus ?? 'unknown',
157
+ result.installable === false ? '否' : '是',
158
+ result.latestRevision ?? 'unknown',
159
+ result.description,
160
+ ]), `没有找到匹配的 Skill。可以自行到 https://www.skillhub.club/skills?q=${encodeURIComponent(input.query)} 搜索下载`),
161
+ ].join('\n');
162
+ }
163
+ function formatUpdatePlanAction(action) {
164
+ switch (action) {
165
+ case 'update':
166
+ return pc.yellow('需要更新');
167
+ case 'add':
168
+ return pc.cyan('新增');
169
+ case 'remove':
170
+ return pc.red('移除');
171
+ case 'skip':
172
+ return pc.green('已是最新');
173
+ default:
174
+ return action;
175
+ }
176
+ }
177
+ const UPDATE_PLAN_TABLE_COLUMNS = [
178
+ { width: 22, wrapWord: false },
179
+ { width: 10, wrapWord: false },
180
+ { width: 10, wrapWord: false },
181
+ { width: 10, wrapWord: false },
182
+ { width: 42, wrapWord: false },
183
+ { width: 42, wrapWord: false },
184
+ ];
185
+ export function renderUpdatePlans(input) {
186
+ const typeLabel = input.assetType ? `,类型:${input.assetType}` : '';
187
+ const header = ['名称', '动作', '当前版本', '目标版本', '当前修订', '目标修订'];
188
+ const rows = input.plans.map((plan) => [
189
+ plan.name,
190
+ formatUpdatePlanAction(plan.action),
191
+ plan.currentVersion ?? 'unknown',
192
+ plan.targetVersion ?? 'unknown',
193
+ plan.currentRevision ?? 'unknown',
194
+ plan.targetRevision ?? 'unknown',
195
+ ]);
196
+ if (rows.length === 0) {
197
+ return [
198
+ renderSection('资产更新计划', `模式:${input.mode === 'all' ? '全部资产' : '单个资产'}${typeLabel}`),
199
+ renderSection('计划明细'),
200
+ renderEmptyState('暂无数据', '没有生成更新计划。'),
201
+ ].join('\n');
202
+ }
203
+ return [
204
+ renderSection('资产更新计划', `模式:${input.mode === 'all' ? '全部资产' : '单个资产'}${typeLabel}`),
205
+ renderSection('计划明细'),
206
+ renderTable([header, ...rows], UPDATE_PLAN_TABLE_COLUMNS),
207
+ ].join('\n');
208
+ }
209
+ export function renderKnowledgeResult(input) {
210
+ if (input.status === 'error') {
211
+ return renderErrorBlock({
212
+ title: '知识库查询失败',
213
+ message: input.message ?? '查询执行失败。',
214
+ code: input.errorCode,
215
+ });
216
+ }
217
+ if (input.status === 'unavailable') {
218
+ return renderWarningBlock('知识库暂不可用', [
219
+ ['原因', input.message],
220
+ ['错误码', input.errorCode],
221
+ ], ['检查知识库挂载路径或企业 RAG 配置后重试。']);
222
+ }
223
+ if (input.status === 'empty') {
224
+ return [
225
+ renderSection('知识库查询结果', `查询:${input.query ?? ''}`),
226
+ renderEmptyState('没有命中结果', '可以换一个关键词,或确认知识库目录中已有相关文档。'),
227
+ ].join('\n');
228
+ }
229
+ return [
230
+ renderSection('知识库查询结果', `查询:${input.query ?? ''},命中 ${input.totalHits ?? 0} 条。`),
231
+ renderNamedRows('命中文档', ['标题', '路径', '分数', '摘录'], (input.hits ?? []).map((hit) => [
232
+ hit.title ?? 'unknown',
233
+ hit.path ?? hit.sourceUri ?? 'unknown',
234
+ hit.score === undefined ? 'unknown' : hit.score.toFixed(2),
235
+ hit.excerpt ?? hit.snippet ?? '',
236
+ ]), '没有命中结果。'),
237
+ ].join('\n');
238
+ }
239
+ export function renderNamedRows(title, header, rows, emptyMessage, columns) {
240
+ if (rows.length === 0) {
241
+ return [renderSection(title), renderEmptyState('暂无数据', emptyMessage)].join('\n');
242
+ }
243
+ return [renderSection(title), renderTable(colorHeader([header, ...rows]), columns)].join('\n');
244
+ }
245
+ export function renderDebugBoundary(command, durationMs, budgetMs, enabled = isDebugEnabled()) {
246
+ if (!enabled) {
247
+ return '';
248
+ }
249
+ const status = durationMs <= budgetMs ? pc.green('预算内') : pc.yellow('超预算');
250
+ return pc.dim(`性能边界:command=${command} durationMs=${durationMs} budgetMs=${budgetMs} status=${status}`);
251
+ }
252
+ export function isDebugEnabled() {
253
+ return process.env.HARNESS_DEBUG === '1' || process.env.HARNESS_DEBUG === 'true';
254
+ }
255
+ export function formatValue(value) {
256
+ if (value === null || value === undefined || value === '') {
257
+ return pc.dim('unknown');
258
+ }
259
+ if (typeof value === 'boolean') {
260
+ return value ? pc.green('是') : pc.dim('否');
261
+ }
262
+ return String(value);
263
+ }
264
+ export function colorHeader(rows) {
265
+ return rows.map((row, index) => row.map((cell) => (index === 0 ? pc.bold(pc.cyan(cell)) : cell)));
266
+ }
267
+ //# sourceMappingURL=renderers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../src/cli-output/renderers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { HarnessServiceAssetDetail, HarnessServiceAssetListItem, HarnessServiceCheckUpdatesEntry, HarnessServiceCheckUpdatesItem, HarnessServicePublishedVersionPayload, HarnessServiceAssetType, RemoteTopAssetEntry, RemoteTopAssetType } from './enterprise-asset-types.js';
2
+ export interface EnterpriseAssetClientOptions {
3
+ baseUrl?: string;
4
+ fetchImpl?: typeof fetch;
5
+ }
6
+ export declare class EnterpriseAssetClient {
7
+ private readonly baseUrl;
8
+ private readonly fetchImpl;
9
+ constructor(baseUrl: string, fetchImpl: typeof fetch);
10
+ private url;
11
+ searchPublished(filters: {
12
+ readonly type?: HarnessServiceAssetType;
13
+ readonly query?: string;
14
+ readonly tags?: readonly string[];
15
+ readonly scope?: string;
16
+ readonly sort?: string;
17
+ readonly limit?: number;
18
+ }): Promise<readonly HarnessServiceAssetListItem[]>;
19
+ getAssetDetail(assetId: string): Promise<HarnessServiceAssetDetail | null>;
20
+ getPublishedVersion(assetId: string, version: string): Promise<HarnessServicePublishedVersionPayload | null>;
21
+ checkUpdates(items: readonly HarnessServiceCheckUpdatesItem[]): Promise<readonly HarnessServiceCheckUpdatesEntry[]>;
22
+ recordDownload(assetId: string): Promise<number>;
23
+ listRemoteTopAssets(input: {
24
+ readonly type: RemoteTopAssetType;
25
+ readonly limit?: number;
26
+ }): Promise<readonly RemoteTopAssetEntry[]>;
27
+ private rawFetch;
28
+ private fetchJson;
29
+ private throwFromResponse;
30
+ }
31
+ export declare function createEnterpriseAssetClient(options?: EnterpriseAssetClientOptions): EnterpriseAssetClient | null;
32
+ //# sourceMappingURL=enterprise-asset-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-asset-client.d.ts","sourceRoot":"","sources":["../../src/cloud/enterprise-asset-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,qCAAqC,EACrC,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAIrC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AA4BD,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,KAAK;IAG1C,OAAO,CAAC,GAAG;IAYL,eAAe,CAAC,OAAO,EAAE;QAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC;QACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC;IAc7C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAmB1E,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qCAAqC,GAAG,IAAI,CAAC;IAgB5G,YAAY,CAAC,KAAK,EAAE,SAAS,8BAA8B,EAAE,GAAG,OAAO,CAAC,SAAS,+BAA+B,EAAE,CAAC;IAgBnH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAehD,mBAAmB,CAAC,KAAK,EAAE;QAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC;YA0B7B,QAAQ;YAeR,SAAS;YAQT,iBAAiB;CAgBhC;AAED,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,4BAAiC,GAAG,qBAAqB,GAAG,IAAI,CAOpH"}
@@ -0,0 +1,179 @@
1
+ import { HarnessError } from '../contracts/errors.js';
2
+ import { resolveHarnessServiceBaseUrl } from './harness-service-url.js';
3
+ import { formatRemoteTopAsset } from '../assets/remote-list.js';
4
+ function isRecord(v) {
5
+ return !!v && typeof v === 'object' && !Array.isArray(v);
6
+ }
7
+ function fromRemoteTopAssetType(type) {
8
+ if (type === 'mcp-config') {
9
+ return 'mcp_config';
10
+ }
11
+ if (type === 'spec') {
12
+ return 'spec_template';
13
+ }
14
+ return type;
15
+ }
16
+ async function readJson(response) {
17
+ const text = await response.text();
18
+ if (!text.trim()) {
19
+ return {};
20
+ }
21
+ try {
22
+ return JSON.parse(text);
23
+ }
24
+ catch {
25
+ return {};
26
+ }
27
+ }
28
+ export class EnterpriseAssetClient {
29
+ baseUrl;
30
+ fetchImpl;
31
+ constructor(baseUrl, fetchImpl) {
32
+ this.baseUrl = baseUrl;
33
+ this.fetchImpl = fetchImpl;
34
+ }
35
+ url(path, query) {
36
+ const u = new URL(path.startsWith('/') ? `${this.baseUrl}${path}` : `${this.baseUrl}/${path}`);
37
+ if (query) {
38
+ for (const [k, v] of Object.entries(query)) {
39
+ if (v !== undefined && v !== '') {
40
+ u.searchParams.set(k, v);
41
+ }
42
+ }
43
+ }
44
+ return u.toString();
45
+ }
46
+ async searchPublished(filters) {
47
+ const tags = filters.tags?.length ? filters.tags.join(',') : undefined;
48
+ const limit = filters.limit === undefined ? undefined : String(filters.limit);
49
+ const raw = await this.fetchJson('GET', this.url('/assets', { type: filters.type, sort: filters.sort, limit, query: filters.query, tags, scope: filters.scope }));
50
+ const items = isRecord(raw) ? raw.items : undefined;
51
+ if (!Array.isArray(items)) {
52
+ return [];
53
+ }
54
+ return items.filter((x) => isRecord(x) && typeof x.id === 'string' && typeof x.name === 'string');
55
+ }
56
+ async getAssetDetail(assetId) {
57
+ const response = await this.rawFetch('GET', this.url(`/assets/${encodeURIComponent(assetId)}`));
58
+ if (response.status === 404) {
59
+ return null;
60
+ }
61
+ if (!response.ok) {
62
+ await this.throwFromResponse(response);
63
+ }
64
+ const body = (await readJson(response));
65
+ if (!isRecord(body)) {
66
+ return null;
67
+ }
68
+ const detail = isRecord(body.asset) ? { ...body.asset, latestPublished: body.latestPublished } : body;
69
+ if (!isRecord(detail) || typeof detail.id !== 'string') {
70
+ return null;
71
+ }
72
+ return detail;
73
+ }
74
+ async getPublishedVersion(assetId, version) {
75
+ const path = `/assets/${encodeURIComponent(assetId)}/versions/${encodeURIComponent(version)}`;
76
+ const response = await this.rawFetch('GET', this.url(path));
77
+ if (response.status === 404) {
78
+ return null;
79
+ }
80
+ if (!response.ok) {
81
+ await this.throwFromResponse(response);
82
+ }
83
+ const body = (await readJson(response));
84
+ if (!isRecord(body)) {
85
+ return null;
86
+ }
87
+ return body;
88
+ }
89
+ async checkUpdates(items) {
90
+ const raw = await this.fetchJson('POST', this.url('/assets/check-updates'), { items });
91
+ const updates = isRecord(raw) ? raw.updates : undefined;
92
+ if (!Array.isArray(updates)) {
93
+ return [];
94
+ }
95
+ return updates.filter((x) => isRecord(x) &&
96
+ typeof x.assetId === 'string' &&
97
+ typeof x.name === 'string' &&
98
+ isRecord(x.latestPublished) &&
99
+ typeof x.latestPublished.version === 'string');
100
+ }
101
+ async recordDownload(assetId) {
102
+ const response = await this.rawFetch('POST', this.url(`/assets/${encodeURIComponent(assetId)}/download`));
103
+ if (response.status === 404) {
104
+ throw new HarnessError('ASSET_NOT_FOUND', `Asset not found: ${assetId}`);
105
+ }
106
+ if (!response.ok) {
107
+ await this.throwFromResponse(response);
108
+ }
109
+ const body = (await readJson(response));
110
+ if (isRecord(body) && typeof body.downloadCount === 'number') {
111
+ return body.downloadCount;
112
+ }
113
+ throw new HarnessError('HARNESS_SERVICE_ERROR', 'Download count response is malformed.');
114
+ }
115
+ async listRemoteTopAssets(input) {
116
+ const limit = input.limit ?? 10;
117
+ const serviceType = fromRemoteTopAssetType(input.type);
118
+ const assets = await this.searchPublished({
119
+ type: serviceType,
120
+ sort: 'download_count',
121
+ limit,
122
+ });
123
+ const results = [];
124
+ for (const detail of assets) {
125
+ const remote = formatRemoteTopAsset({
126
+ type: detail.type,
127
+ name: detail.name,
128
+ assetId: detail.id,
129
+ version: detail.latestPublished?.version ?? null,
130
+ downloadCount: detail.downloadCount,
131
+ rating: detail.rating,
132
+ });
133
+ if (!remote || remote.type !== input.type) {
134
+ continue;
135
+ }
136
+ results.push(remote);
137
+ }
138
+ return results.sort((a, b) => b.downloadCount - a.downloadCount);
139
+ }
140
+ async rawFetch(method, url, body) {
141
+ try {
142
+ return await this.fetchImpl(url, {
143
+ method,
144
+ headers: body !== undefined ? { 'content-type': 'application/json' } : undefined,
145
+ body: body !== undefined ? JSON.stringify(body) : undefined,
146
+ });
147
+ }
148
+ catch (error) {
149
+ throw new HarnessError('HARNESS_SERVICE_UNAVAILABLE', `Cannot reach harness-service: ${error instanceof Error ? error.message : String(error)}`);
150
+ }
151
+ }
152
+ async fetchJson(method, url, body) {
153
+ const response = await this.rawFetch(method, url, body);
154
+ if (!response.ok) {
155
+ await this.throwFromResponse(response);
156
+ }
157
+ return readJson(response);
158
+ }
159
+ async throwFromResponse(response) {
160
+ const parsed = await readJson(response);
161
+ const errorCode = isRecord(parsed) && typeof parsed.errorCode === 'string' ? parsed.errorCode : 'HARNESS_SERVICE_ERROR';
162
+ const message = isRecord(parsed) && typeof parsed.message === 'string'
163
+ ? parsed.message
164
+ : `harness-service returned HTTP ${response.status}`;
165
+ if (response.status === 503 && errorCode === 'SERVICE_UNAVAILABLE') {
166
+ throw new HarnessError('HARNESS_SERVICE_UNAVAILABLE', message);
167
+ }
168
+ throw new HarnessError(errorCode === 'SERVICE_UNAVAILABLE' ? 'HARNESS_SERVICE_UNAVAILABLE' : 'HARNESS_SERVICE_ERROR', message);
169
+ }
170
+ }
171
+ export function createEnterpriseAssetClient(options = {}) {
172
+ const base = options.baseUrl ?? resolveHarnessServiceBaseUrl();
173
+ if (!base) {
174
+ return null;
175
+ }
176
+ const normalized = base.endsWith('/') ? base.slice(0, -1) : base;
177
+ return new EnterpriseAssetClient(normalized, options.fetchImpl ?? globalThis.fetch);
178
+ }
179
+ //# sourceMappingURL=enterprise-asset-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-asset-client.js","sourceRoot":"","sources":["../../src/cloud/enterprise-asset-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /** 与 harness-service `EnterpriseAssetType` 对齐(用于远端 API)。 */
2
+ export type HarnessServiceAssetType = 'skill' | 'rule' | 'command' | 'prompt' | 'mcp_config' | 'spec_template' | 'config_pack';
3
+ export type HarnessServicePublishedSummary = {
4
+ readonly version: string;
5
+ readonly contentHash: string | null;
6
+ readonly publishedAt: string | null;
7
+ };
8
+ export type HarnessServiceAssetListItem = {
9
+ readonly id: string;
10
+ readonly type: HarnessServiceAssetType;
11
+ readonly name: string;
12
+ readonly scope: string;
13
+ readonly description: string | null;
14
+ readonly tags: unknown;
15
+ readonly metadata: unknown;
16
+ readonly downloadCount?: number;
17
+ readonly rating?: number;
18
+ readonly createdAt: string;
19
+ readonly updatedAt: string;
20
+ readonly latestPublished: HarnessServicePublishedSummary;
21
+ };
22
+ export type HarnessServiceAssetDetail = {
23
+ readonly id: string;
24
+ readonly type: HarnessServiceAssetType;
25
+ readonly name: string;
26
+ readonly scope: string;
27
+ readonly description: string | null;
28
+ readonly tags: unknown;
29
+ readonly metadata: unknown;
30
+ readonly createdBy: string | null;
31
+ readonly downloadCount?: number;
32
+ readonly rating?: number;
33
+ readonly createdAt: string;
34
+ readonly updatedAt: string;
35
+ readonly latestPublished: (HarnessServicePublishedSummary & {
36
+ readonly metadata: unknown;
37
+ }) | null;
38
+ };
39
+ export type HarnessServicePublishedVersionPayload = {
40
+ readonly version: string;
41
+ readonly contentCommitSha: string | null;
42
+ readonly content: string | null;
43
+ readonly metadata: unknown;
44
+ readonly publishedAt: string | null;
45
+ };
46
+ export type HarnessServiceCheckUpdatesItem = {
47
+ readonly assetId?: string;
48
+ readonly type?: HarnessServiceAssetType;
49
+ readonly scope?: string;
50
+ readonly name?: string;
51
+ readonly version?: string;
52
+ readonly contentHash?: string;
53
+ };
54
+ export type HarnessServiceCheckUpdatesEntry = {
55
+ readonly assetId: string;
56
+ readonly type: HarnessServiceAssetType;
57
+ readonly scope: string;
58
+ readonly name: string;
59
+ readonly local?: {
60
+ readonly version?: string;
61
+ readonly contentHash?: string;
62
+ };
63
+ readonly latestPublished: HarnessServicePublishedSummary;
64
+ };
65
+ export type RemoteTopAssetType = 'skill' | 'rule' | 'spec' | 'mcp-config' | 'prompt';
66
+ export type RemoteTopAssetEntry = {
67
+ readonly type: RemoteTopAssetType;
68
+ readonly name: string;
69
+ readonly assetId: string;
70
+ readonly version: string | null;
71
+ readonly downloadCount: number;
72
+ readonly rating: number;
73
+ };
74
+ //# sourceMappingURL=enterprise-asset-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-asset-types.d.ts","sourceRoot":"","sources":["../../src/cloud/enterprise-asset-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=enterprise-asset-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-asset-types.js","sourceRoot":"","sources":["../../src/cloud/enterprise-asset-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ /** 企业端 harness-service 基址;优先读独立变量,兼容历史 `HARNESS_CLOUD_BASE_URL`。 */
2
+ export declare function resolveHarnessServiceBaseUrl(): string | undefined;
3
+ //# sourceMappingURL=harness-service-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-service-url.d.ts","sourceRoot":"","sources":["../../src/cloud/harness-service-url.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,wBAAgB,4BAA4B,IAAI,MAAM,GAAG,SAAS,CAUjE"}
@@ -0,0 +1,13 @@
1
+ /** 企业端 harness-service 基址;优先读独立变量,兼容历史 `HARNESS_CLOUD_BASE_URL`。 */
2
+ export function resolveHarnessServiceBaseUrl() {
3
+ const direct = process.env.HARNESS_SERVICE_URL?.trim();
4
+ if (direct) {
5
+ return direct.endsWith('/') ? direct.slice(0, -1) : direct;
6
+ }
7
+ const legacy = process.env.HARNESS_CLOUD_BASE_URL?.trim();
8
+ if (legacy) {
9
+ return legacy.endsWith('/') ? legacy.slice(0, -1) : legacy;
10
+ }
11
+ return undefined;
12
+ }
13
+ //# sourceMappingURL=harness-service-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-service-url.js","sourceRoot":"","sources":["../../src/cloud/harness-service-url.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,UAAU,4BAA4B;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface HarnessRagQueryRequest {
2
+ query: string;
3
+ projectFingerprint?: string;
4
+ topK?: number;
5
+ filters?: Record<string, unknown>;
6
+ }
7
+ export interface HarnessRagNotConfiguredResponse {
8
+ enabled: false;
9
+ errorCode: 'RAG_NOT_CONFIGURED';
10
+ message: string;
11
+ }
12
+ export interface QueryHarnessRagOptions {
13
+ baseUrl?: string;
14
+ fetchImpl?: typeof fetch;
15
+ workspaceRoot?: string;
16
+ }
17
+ export declare function queryHarnessRag(request: HarnessRagQueryRequest, options?: QueryHarnessRagOptions): Promise<HarnessRagNotConfiguredResponse>;
18
+ //# sourceMappingURL=rag-client.d.ts.map