@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,8 @@
1
+ import { EnterpriseAssetClient } from '../cloud/enterprise-asset-client.js';
2
+ import type { AssetUpdateProvider } from './types.js';
3
+ export interface EnterpriseAssetUpdateProviderOptions {
4
+ readonly client: EnterpriseAssetClient;
5
+ }
6
+ export declare function createEnterpriseAssetUpdateProvider(options: EnterpriseAssetUpdateProviderOptions): AssetUpdateProvider;
7
+ export declare function createDefaultAssetUpdateProvider(): AssetUpdateProvider;
8
+ //# sourceMappingURL=enterprise-update-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-update-provider.d.ts","sourceRoot":"","sources":["../../src/update/enterprise-update-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EAEtB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EACV,mBAAmB,EAIpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AA6BD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,oCAAoC,GAC5C,mBAAmB,CA2CrB;AAED,wBAAgB,gCAAgC,IAAI,mBAAmB,CAUtE"}
@@ -0,0 +1,76 @@
1
+ import { HarnessError } from '../contracts/errors.js';
2
+ import { EnterpriseAssetClient, createEnterpriseAssetClient, } from '../cloud/enterprise-asset-client.js';
3
+ import { parseEnterpriseAssetIdFromSourceRef } from '../skills/providers/harness-service.js';
4
+ function toServiceType(assetType) {
5
+ if (assetType === 'mcp_config') {
6
+ return 'mcp_config';
7
+ }
8
+ if (assetType === 'spec') {
9
+ return 'spec_template';
10
+ }
11
+ return assetType;
12
+ }
13
+ async function resolveAssetId(client, target, serviceType) {
14
+ const id = parseEnterpriseAssetIdFromSourceRef(target.source);
15
+ if (id) {
16
+ return id;
17
+ }
18
+ const listed = await client.searchPublished({
19
+ type: serviceType,
20
+ query: target.name,
21
+ });
22
+ const hit = listed.find((item) => item.name === target.name);
23
+ return hit?.id;
24
+ }
25
+ export function createEnterpriseAssetUpdateProvider(options) {
26
+ const { client } = options;
27
+ return {
28
+ async resolveTargetVersion(target) {
29
+ const serviceType = toServiceType(target.assetType);
30
+ let assetId;
31
+ try {
32
+ assetId = await resolveAssetId(client, target, serviceType);
33
+ }
34
+ catch (error) {
35
+ if (error instanceof HarnessError && error.code === 'HARNESS_SERVICE_UNAVAILABLE') {
36
+ throw error;
37
+ }
38
+ throw error;
39
+ }
40
+ if (!assetId) {
41
+ return null;
42
+ }
43
+ let detail;
44
+ try {
45
+ detail = await client.getAssetDetail(assetId);
46
+ }
47
+ catch (error) {
48
+ if (error instanceof HarnessError && error.code === 'HARNESS_SERVICE_UNAVAILABLE') {
49
+ throw error;
50
+ }
51
+ throw error;
52
+ }
53
+ if (!detail?.latestPublished) {
54
+ return null;
55
+ }
56
+ const latest = detail.latestPublished;
57
+ return {
58
+ version: latest.version,
59
+ revision: latest.contentHash,
60
+ source: target.source,
61
+ };
62
+ },
63
+ };
64
+ }
65
+ export function createDefaultAssetUpdateProvider() {
66
+ const client = createEnterpriseAssetClient();
67
+ if (!client) {
68
+ return {
69
+ async resolveTargetVersion() {
70
+ throw new HarnessError('HARNESS_SERVICE_UNAVAILABLE', 'HARNESS_SERVICE_URL is not configured.');
71
+ },
72
+ };
73
+ }
74
+ return createEnterpriseAssetUpdateProvider({ client });
75
+ }
76
+ //# sourceMappingURL=enterprise-update-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-update-provider.js","sourceRoot":"","sources":["../../src/update/enterprise-update-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type HarnessProjectManifest, type ProjectAssetRegistryEntry } from '../assets/project-manifest.js';
2
+ import type { SupportedUpdateAssetType } from './types.js';
3
+ export interface ProjectManifestUpdateRecord {
4
+ assetType: SupportedUpdateAssetType;
5
+ name: string;
6
+ version: string;
7
+ source: string;
8
+ revision: string | null;
9
+ installFrom: string;
10
+ id: string;
11
+ installPath: string;
12
+ }
13
+ export declare function projectRegistryEntryToUpdateRecord(entry: ProjectAssetRegistryEntry): ProjectManifestUpdateRecord | null;
14
+ export declare function readProjectManifestUpdateRecords(args: {
15
+ manifestPath: string;
16
+ }): Promise<{
17
+ manifest: HarnessProjectManifest;
18
+ records: ProjectManifestUpdateRecord[];
19
+ }>;
20
+ export declare function resolveProjectManifestPathForUpdate(cwd: string, explicitPath?: string): string;
21
+ /** 配置包 installFrom 标签(去重;manifest.configPacks 优先)。 */
22
+ export declare function collectConfigPackInstallFromLabels(args: {
23
+ manifest: HarnessProjectManifest;
24
+ records: readonly ProjectManifestUpdateRecord[];
25
+ }): string[];
26
+ export interface ResolvedConfigPackTarget {
27
+ packId: string;
28
+ packName: string;
29
+ installFromLabel: string;
30
+ }
31
+ export declare function resolveConfigPackTarget(manifest: HarnessProjectManifest, targetName: string): ResolvedConfigPackTarget | null;
32
+ export declare function orderRecordsForAllUpdate(records: readonly ProjectManifestUpdateRecord[]): ProjectManifestUpdateRecord[];
33
+ //# sourceMappingURL=manifest-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-source.d.ts","sourceRoot":"","sources":["../../src/update/manifest-source.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,wBAAwB,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAqBD,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,yBAAyB,GAAG,2BAA2B,GAAG,IAAI,CAgBvH;AAED,wBAAsB,gCAAgC,CAAC,IAAI,EAAE;IAC3D,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,2BAA2B,EAAE,CAAA;CAAE,CAAC,CAMxF;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9F;AAgBD,sDAAsD;AACtD,wBAAgB,kCAAkC,CAAC,IAAI,EAAE;IACvD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,SAAS,2BAA2B,EAAE,CAAC;CACjD,GAAG,MAAM,EAAE,CAaX;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,MAAM,GACjB,wBAAwB,GAAG,IAAI,CAiCjC;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,SAAS,2BAA2B,EAAE,GAAG,2BAA2B,EAAE,CAQvH"}
@@ -0,0 +1,111 @@
1
+ import { isManualInstallFrom } from '../assets/install-from.js';
2
+ import { getManifestConfigPacks, readProjectManifest, resolveProjectManifestPath, } from '../assets/project-manifest.js';
3
+ function metadataAssetTypeToUpdateType(assetType) {
4
+ switch (assetType) {
5
+ case 'skill':
6
+ return 'skill';
7
+ case 'rule':
8
+ return 'rule';
9
+ case 'command':
10
+ return 'command';
11
+ case 'prompt':
12
+ return 'prompt';
13
+ case 'mcp-config':
14
+ return 'mcp_config';
15
+ case 'spec':
16
+ return 'spec';
17
+ default:
18
+ return null;
19
+ }
20
+ }
21
+ export function projectRegistryEntryToUpdateRecord(entry) {
22
+ const assetType = metadataAssetTypeToUpdateType(entry.assetMetadata.assetType);
23
+ if (!assetType) {
24
+ return null;
25
+ }
26
+ const name = entry.assetMetadata.name;
27
+ return {
28
+ assetType,
29
+ name,
30
+ version: entry.assetMetadata.version,
31
+ source: entry.assetMetadata.sourceRef ?? entry.assetMetadata.source,
32
+ revision: entry.assetMetadata.revision,
33
+ installFrom: entry.installFrom,
34
+ id: entry.id,
35
+ installPath: entry.installPath,
36
+ };
37
+ }
38
+ export async function readProjectManifestUpdateRecords(args) {
39
+ const manifest = await readProjectManifest(args.manifestPath);
40
+ const records = manifest.installed
41
+ .map((entry) => projectRegistryEntryToUpdateRecord(entry))
42
+ .filter((entry) => entry !== null);
43
+ return { manifest, records };
44
+ }
45
+ export function resolveProjectManifestPathForUpdate(cwd, explicitPath) {
46
+ return explicitPath ?? resolveProjectManifestPath(cwd);
47
+ }
48
+ function pushInstallFromLabel(labels, seen, label) {
49
+ if (!label || isManualInstallFrom(label)) {
50
+ return;
51
+ }
52
+ for (const part of label.split(',').map((entry) => entry.trim()).filter(Boolean)) {
53
+ if (seen.has(part)) {
54
+ continue;
55
+ }
56
+ seen.add(part);
57
+ labels.push(part);
58
+ }
59
+ }
60
+ /** 配置包 installFrom 标签(去重;manifest.configPacks 优先)。 */
61
+ export function collectConfigPackInstallFromLabels(args) {
62
+ const labels = [];
63
+ const seen = new Set();
64
+ for (const pack of getManifestConfigPacks(args.manifest)) {
65
+ pushInstallFromLabel(labels, seen, pack.id);
66
+ }
67
+ for (const record of args.records) {
68
+ pushInstallFromLabel(labels, seen, record.installFrom);
69
+ }
70
+ return labels;
71
+ }
72
+ export function resolveConfigPackTarget(manifest, targetName) {
73
+ const normalized = targetName.trim();
74
+ if (!normalized) {
75
+ return null;
76
+ }
77
+ for (const pack of getManifestConfigPacks(manifest)) {
78
+ if (pack.id === normalized || pack.name === normalized) {
79
+ return {
80
+ packId: pack.id,
81
+ packName: pack.name,
82
+ installFromLabel: pack.id,
83
+ };
84
+ }
85
+ }
86
+ const packLabels = collectConfigPackInstallFromLabels({
87
+ manifest,
88
+ records: manifest.installed
89
+ .map((entry) => projectRegistryEntryToUpdateRecord(entry))
90
+ .filter((entry) => entry !== null),
91
+ });
92
+ if (packLabels.includes(normalized)) {
93
+ const matchedPack = getManifestConfigPacks(manifest).find((pack) => pack.id === normalized);
94
+ return {
95
+ packId: normalized,
96
+ packName: matchedPack?.name ?? normalized,
97
+ installFromLabel: normalized,
98
+ };
99
+ }
100
+ return null;
101
+ }
102
+ export function orderRecordsForAllUpdate(records) {
103
+ const packLabels = [...new Set(records.map((record) => record.installFrom).filter((label) => !isManualInstallFrom(label)))];
104
+ const ordered = [];
105
+ for (const label of packLabels) {
106
+ ordered.push(...records.filter((record) => record.installFrom === label));
107
+ }
108
+ ordered.push(...records.filter((record) => isManualInstallFrom(record.installFrom)));
109
+ return ordered;
110
+ }
111
+ //# sourceMappingURL=manifest-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-source.js","sourceRoot":"","sources":["../../src/update/manifest-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,GAG3B,MAAM,+BAA+B,CAAC;AAcvC,SAAS,6BAA6B,CAAC,SAAqC;IAC1E,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAAgC;IACjF,MAAM,SAAS,GAAG,6BAA6B,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;IACtC,OAAO;QACL,SAAS;QACT,IAAI;QACJ,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO;QACpC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM;QACnE,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ;QACtC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,IAEtD;IACC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS;SAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;SACzD,MAAM,CAAC,CAAC,KAAK,EAAwC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAC3E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,GAAW,EAAE,YAAqB;IACpF,OAAO,YAAY,IAAI,0BAA0B,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAgB,EAAE,IAAiB,EAAE,KAAyB;IAC1F,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACjF,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,kCAAkC,CAAC,IAGlD;IACC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD,MAAM,UAAU,uBAAuB,CACrC,QAAgC,EAChC,UAAkB;IAElB,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACvD,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,gBAAgB,EAAE,IAAI,CAAC,EAAE;aAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,kCAAkC,CAAC;QACpD,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,SAAS;aACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,KAAK,EAAwC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;KAC3E,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC5F,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI,UAAU;YACzC,gBAAgB,EAAE,UAAU;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA+C;IACtF,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5H,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AssetUpdatePlan } from './types.js';
2
+ export declare function resolvePlanConfigPackId(plan: AssetUpdatePlan): string | undefined;
3
+ export declare function isConfigPackManagedPlan(plan: AssetUpdatePlan): boolean;
4
+ export declare function shouldPromptConfigPackScope(mode: 'single' | 'all' | 'config-pack', actionablePlans: readonly AssetUpdatePlan[]): boolean;
5
+ //# sourceMappingURL=plan-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-utils.d.ts","sourceRoot":"","sources":["../../src/update/plan-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAEjF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAEtE;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,aAAa,EACtC,eAAe,EAAE,SAAS,eAAe,EAAE,GAC1C,OAAO,CAMT"}
@@ -0,0 +1,13 @@
1
+ import { isManualInstallFrom } from '../assets/install-from.js';
2
+ export function resolvePlanConfigPackId(plan) {
3
+ return plan.configPackId ?? (plan.installFrom && !isManualInstallFrom(plan.installFrom) ? plan.installFrom : undefined);
4
+ }
5
+ export function isConfigPackManagedPlan(plan) {
6
+ return Boolean(resolvePlanConfigPackId(plan));
7
+ }
8
+ export function shouldPromptConfigPackScope(mode, actionablePlans) {
9
+ return (mode === 'single' &&
10
+ actionablePlans.length > 0 &&
11
+ actionablePlans.every((plan) => isConfigPackManagedPlan(plan)));
12
+ }
13
+ //# sourceMappingURL=plan-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-utils.js","sourceRoot":"","sources":["../../src/update/plan-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,MAAM,UAAU,uBAAuB,CAAC,IAAqB;IAC3D,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC1H,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAqB;IAC3D,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAsC,EACtC,eAA2C;IAE3C,OAAO,CACL,IAAI,KAAK,QAAQ;QACjB,eAAe,CAAC,MAAM,GAAG,CAAC;QAC1B,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAC/D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface UpdateApplyConfirmation {
2
+ readonly actionableCount: number;
3
+ }
4
+ export interface ConfigPackScopeConfirmation {
5
+ readonly assetName: string;
6
+ readonly packId: string;
7
+ readonly packLabel?: string;
8
+ }
9
+ export type ConfigPackApplyScope = 'pack' | 'single';
10
+ export interface UpdatePromptAdapter {
11
+ confirmApply(input: UpdateApplyConfirmation): Promise<boolean>;
12
+ confirmConfigPackScope?(input: ConfigPackScopeConfirmation): Promise<ConfigPackApplyScope>;
13
+ }
14
+ export interface CreateCliUpdatePromptAdapterOptions {
15
+ input?: NodeJS.ReadStream;
16
+ output?: NodeJS.WriteStream;
17
+ }
18
+ export declare function createCliUpdatePromptAdapter(options?: CreateCliUpdatePromptAdapterOptions): UpdatePromptAdapter;
19
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/update/prompt.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,sBAAsB,CAAC,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC5F;AAED,MAAM,WAAW,mCAAmC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;CAC7B;AAgBD,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,mCAAwC,GAChD,mBAAmB,CA+DrB"}
@@ -0,0 +1,72 @@
1
+ import { stdin as processStdin, stdout as processStdout } from 'node:process';
2
+ import { createInterface } from 'node:readline/promises';
3
+ function parseYesNo(input, options) {
4
+ const normalized = input.trim().toLowerCase();
5
+ if (normalized === 'y' || normalized === 'yes') {
6
+ return true;
7
+ }
8
+ if (normalized === 'n' || normalized === 'no') {
9
+ return false;
10
+ }
11
+ if (normalized.length === 0 && options?.defaultYes) {
12
+ return true;
13
+ }
14
+ return null;
15
+ }
16
+ export function createCliUpdatePromptAdapter(options = {}) {
17
+ const streamInput = options.input ?? processStdin;
18
+ const streamOutput = options.output ?? processStdout;
19
+ return {
20
+ async confirmApply(input) {
21
+ if (!streamInput.isTTY || !streamOutput.isTTY) {
22
+ return true;
23
+ }
24
+ const rl = createInterface({
25
+ input: streamInput,
26
+ output: streamOutput,
27
+ });
28
+ try {
29
+ streamOutput.write(`\n共 ${input.actionableCount} 项资产需要变更。\n`);
30
+ while (true) {
31
+ const answer = await rl.question('是否立即更新? [y]es / [n]o(回车默认更新)\n> ');
32
+ const confirmed = parseYesNo(answer, { defaultYes: true });
33
+ if (confirmed !== null) {
34
+ return confirmed;
35
+ }
36
+ streamOutput.write('请输入 y 或 n。\n');
37
+ }
38
+ }
39
+ finally {
40
+ rl.close();
41
+ }
42
+ },
43
+ async confirmConfigPackScope(input) {
44
+ if (!streamInput.isTTY || !streamOutput.isTTY) {
45
+ return 'single';
46
+ }
47
+ const rl = createInterface({
48
+ input: streamInput,
49
+ output: streamOutput,
50
+ });
51
+ try {
52
+ const packLabel = input.packLabel ?? input.packId;
53
+ streamOutput.write(`\n资产 ${input.assetName} 归属于配置包「${packLabel}」。\n`);
54
+ while (true) {
55
+ const answer = await rl.question('是否更新整个配置包? [y]es / [n]o(回车默认仅更新该资产)\n> ');
56
+ const updateWholePack = parseYesNo(answer, { defaultYes: false });
57
+ if (updateWholePack === true) {
58
+ return 'pack';
59
+ }
60
+ if (updateWholePack === false) {
61
+ return 'single';
62
+ }
63
+ streamOutput.write('请输入 y 或 n。\n');
64
+ }
65
+ }
66
+ finally {
67
+ rl.close();
68
+ }
69
+ },
70
+ };
71
+ }
72
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/update/prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ResolvedAssetVersion, UpdatePlanAction } from './types.js';
2
+ /** 同一发布标签下 revision 变化也视为需要更新(如 v1 内容重发)。 */
3
+ export declare function resolveExistingAssetUpdateAction(local: {
4
+ version: string;
5
+ revision: string | null;
6
+ }, remote: ResolvedAssetVersion | null): UpdatePlanAction;
7
+ //# sourceMappingURL=resolve-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-action.d.ts","sourceRoot":"","sources":["../../src/update/resolve-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzE,6CAA6C;AAC7C,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACnD,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAClC,gBAAgB,CAWlB"}
@@ -0,0 +1,14 @@
1
+ /** 同一发布标签下 revision 变化也视为需要更新(如 v1 内容重发)。 */
2
+ export function resolveExistingAssetUpdateAction(local, remote) {
3
+ if (!remote) {
4
+ return 'skip';
5
+ }
6
+ if (local.version !== remote.version) {
7
+ return 'update';
8
+ }
9
+ if (local.revision !== remote.revision) {
10
+ return 'update';
11
+ }
12
+ return 'skip';
13
+ }
14
+ //# sourceMappingURL=resolve-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-action.js","sourceRoot":"","sources":["../../src/update/resolve-action.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,UAAU,gCAAgC,CAC9C,KAAmD,EACnD,MAAmC;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /** CLI 与云 API 对齐;`mcp_config` 对应本地元数据中的 `mcp-config`。 */
2
+ export type SupportedUpdateAssetType = 'skill' | 'rule' | 'command' | 'prompt' | 'mcp_config' | 'spec';
3
+ export interface LocalAssetUpdateTarget {
4
+ assetType: SupportedUpdateAssetType;
5
+ name: string;
6
+ version: string;
7
+ source: string;
8
+ revision: string | null;
9
+ }
10
+ export interface ResolvedAssetVersion {
11
+ version: string;
12
+ revision: string | null;
13
+ source: string;
14
+ }
15
+ export interface AssetUpdateProvider {
16
+ resolveTargetVersion(target: LocalAssetUpdateTarget): Promise<ResolvedAssetVersion | null>;
17
+ }
18
+ export type UpdatePlanAction = 'add' | 'update' | 'skip' | 'remove';
19
+ export interface AssetUpdatePlan {
20
+ assetType: SupportedUpdateAssetType;
21
+ name: string;
22
+ action: UpdatePlanAction;
23
+ currentVersion: string;
24
+ targetVersion: string;
25
+ currentRevision: string | null;
26
+ targetRevision: string | null;
27
+ source: string;
28
+ /** 本地登记中的安装来源;更新计划不改变该值。 */
29
+ installFrom?: string;
30
+ configPackId?: string;
31
+ installPath?: string;
32
+ }
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/update/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;AAEvG,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,wBAAwB,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;CAC5F;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,wBAAwB,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/update/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@ytinnovation/harness-core",
3
+ "version": "0.0.0",
4
+ "type": "module",
5
+ "description": "Core runtime and shared command modules for Harness CLI.",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./assets/mcp-config-format": {
14
+ "types": "./dist/assets/mcp-config-format.d.ts",
15
+ "import": "./dist/assets/mcp-config-format.js"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "build": "tsc -p tsconfig.json",
20
+ "dev": "tsc -p tsconfig.json --watch --preserveWatchOutput",
21
+ "typecheck": "tsc -p tsconfig.json --noEmit",
22
+ "test": "vitest run"
23
+ },
24
+ "files": [
25
+ "dist/**/*",
26
+ "README.md"
27
+ ],
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "devDependencies": {
32
+ "@types/node": "^22.10.0",
33
+ "typescript": "~5.7.2",
34
+ "vitest": "^3.0.4"
35
+ },
36
+ "dependencies": {
37
+ "@clack/prompts": "^1.4.0",
38
+ "@modelcontextprotocol/sdk": "^1.29.0",
39
+ "picocolors": "^1.1.1",
40
+ "table": "^6.9.0"
41
+ }
42
+ }