abelien-harness 0.16.0 → 0.17.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 (320) hide show
  1. package/.env.example +1 -1
  2. package/README.md +9 -10
  3. package/package.json +2 -1
  4. package/skills/abelien-3dgen/domain.json +1 -1
  5. package/skills/abelien-algorithm/SKILL.md +13 -24
  6. package/skills/abelien-algorithm/actions/algorithm.finalize.json +7 -2
  7. package/skills/abelien-algorithm/actions/algorithm.research.json +9 -4
  8. package/skills/abelien-algorithm/bindings.json +0 -13
  9. package/skills/abelien-algorithm/contract/host-tools.generated.json +2438 -223
  10. package/skills/abelien-algorithm/domain.json +6 -23
  11. package/skills/abelien-algorithm/references/actions/algorithm.candidates.generated.md +39 -7
  12. package/skills/abelien-algorithm/references/actions/algorithm.finalize.generated.md +40 -11
  13. package/skills/abelien-algorithm/references/actions/algorithm.research.generated.md +78 -10
  14. package/skills/abelien-algorithm/references/actions.generated.md +2 -3
  15. package/skills/abelien-algorithm/references/research-policy.md +5 -5
  16. package/skills/abelien-algorithm/references/selection-service-contract.md +19 -20
  17. package/skills/abelien-algorithm/schemas/algorithm-bindings.v1.json +42 -18
  18. package/skills/abelien-algorithm/schemas/algorithm-candidates.v1.json +9 -4
  19. package/skills/abelien-algorithm/schemas/algorithm-common.v1.json +104 -2
  20. package/skills/abelien-algorithm/schemas/algorithm-flow-input.v1.json +181 -0
  21. package/skills/abelien-algorithm/schemas/candidates-input.v1.json +3 -3
  22. package/skills/abelien-algorithm/schemas/candidates-result.v1.json +3 -3
  23. package/skills/abelien-algorithm/schemas/finalize-input.v1.json +6 -6
  24. package/skills/abelien-algorithm/schemas/finalize-result.v1.json +12 -4
  25. package/skills/abelien-algorithm/schemas/research-input.v1.json +1 -2
  26. package/skills/abelien-algorithm/schemas/research-result.v1.json +4 -2
  27. package/skills/abelien-algorithm/scripts/candidates.mjs +63 -26
  28. package/skills/abelien-algorithm/scripts/evidence.mjs +17 -6
  29. package/skills/abelien-algorithm/scripts/finalize-selection.mjs +107 -34
  30. package/skills/abelien-algorithm/scripts/hardware-revision.mjs +48 -0
  31. package/skills/abelien-algorithm/scripts/research.mjs +78 -28
  32. package/skills/abelien-algorithm/workflows/user-journey-algorithm.json +7 -6
  33. package/skills/abelien-appearance/actions/appearance.points-fallback.json +1 -1
  34. package/skills/abelien-appearance/contract/host-tools.generated.json +3 -2
  35. package/skills/abelien-appearance/domain.json +1 -1
  36. package/skills/abelien-appearance/references/actions/appearance.points-fallback.generated.md +3 -3
  37. package/skills/abelien-appearance/references/points.md +1 -1
  38. package/skills/abelien-appearance/schemas/points-fallback-input.v1.json +2 -2
  39. package/skills/abelien-appearance/scripts/points.mjs +1 -0
  40. package/skills/abelien-clarify/SKILL.md +2 -2
  41. package/skills/abelien-clarify/domain.json +1 -1
  42. package/skills/abelien-clarify/schemas/skill-result.v1.json +10 -0
  43. package/skills/abelien-clarify/scripts/check_result.py +4 -1
  44. package/skills/abelien-clarify/scripts/test_check_result.py +18 -0
  45. package/skills/abelien-guide/SKILL.md +1 -1
  46. package/skills/abelien-hardware/actions/hardware.guide.json +7 -1
  47. package/skills/abelien-hardware/actions/hardware.search.json +10 -0
  48. package/skills/abelien-hardware/actions/hardware.web-search.json +5 -0
  49. package/skills/abelien-hardware/bindings.json +0 -42
  50. package/skills/abelien-hardware/contract/hardware-journey-orchestration.md +1 -1
  51. package/skills/abelien-hardware/contract/host-tools.generated.json +481 -185
  52. package/skills/abelien-hardware/domain.json +4 -5
  53. package/skills/abelien-hardware/references/actions/hardware.guide.generated.md +3 -1
  54. package/skills/abelien-hardware/references/actions/hardware.search.generated.md +41 -1
  55. package/skills/abelien-hardware/references/actions/hardware.selection-recall.generated.md +2 -1
  56. package/skills/abelien-hardware/references/actions/hardware.web-merge.generated.md +50 -12
  57. package/skills/abelien-hardware/references/actions/hardware.web-search.generated.md +23 -0
  58. package/skills/abelien-hardware/references/actions.generated.md +0 -2
  59. package/skills/abelien-hardware/references/selection-service-contract.md +8 -0
  60. package/skills/abelien-hardware/schemas/classify-reply.v1.json +12 -0
  61. package/skills/abelien-hardware/schemas/extract-reply.v1.json +16 -0
  62. package/skills/abelien-hardware/schemas/hardware-candidates-flow-input.v1.json +16 -0
  63. package/skills/abelien-hardware/schemas/hardware-carry-flow-input.v1.json +36 -0
  64. package/skills/abelien-hardware/schemas/hardware-flow-input.v1.json +16 -0
  65. package/skills/abelien-hardware/schemas/hardware-replace-flow-input.v1.json +32 -0
  66. package/skills/abelien-hardware/schemas/hardware-selection.v2.json +10 -4
  67. package/skills/abelien-hardware/schemas/host-tools-input.v1.json +1 -33
  68. package/skills/abelien-hardware/schemas/proposal-reply.v1.json +7 -0
  69. package/skills/abelien-hardware/schemas/recall-tables.v1.json +247 -0
  70. package/skills/abelien-hardware/schemas/replace-plan-reply.v1.json +27 -0
  71. package/skills/abelien-hardware/schemas/review-reply.v1.json +16 -0
  72. package/skills/abelien-hardware/schemas/search-input.v1.json +1 -1
  73. package/skills/abelien-hardware/schemas/search-result.v1.json +2 -1
  74. package/skills/abelien-hardware/schemas/select-reply.v1.json +7 -0
  75. package/skills/abelien-hardware/schemas/web-merge-input.v1.json +12 -12
  76. package/skills/abelien-hardware/schemas/web-merge-result.v1.json +2 -1
  77. package/skills/abelien-hardware/schemas/web-search-result.v1.json +2 -1
  78. package/skills/abelien-hardware/scripts/oss-wiki-search.mjs +82 -19
  79. package/skills/abelien-hardware/scripts/prismer.mjs +3 -1
  80. package/skills/abelien-hardware/scripts/provider-chain-contract.mjs +26 -0
  81. package/skills/abelien-hardware/scripts/result-schemas.mjs +14 -0
  82. package/skills/abelien-hardware/scripts/select.mjs +24 -12
  83. package/skills/abelien-hardware/scripts/selection-model.mjs +3 -0
  84. package/skills/abelien-hardware/scripts/selection-propose.mjs +12 -10
  85. package/skills/abelien-hardware/scripts/selection-recall.mjs +24 -18
  86. package/skills/abelien-hardware/scripts/volc-web-search.mjs +1 -1
  87. package/skills/abelien-hardware/scripts/web-common.mjs +3 -3
  88. package/skills/abelien-hardware/scripts/web-evidence-storage.mjs +8 -0
  89. package/skills/abelien-hardware/scripts/web-merge.mjs +134 -46
  90. package/skills/abelien-hardware/scripts/web-pdf.mjs +4 -1
  91. package/skills/abelien-hardware/scripts/web-provider-chain.mjs +4 -2
  92. package/skills/abelien-hardware/scripts/wiki-content.mjs +46 -0
  93. package/skills/abelien-hardware/workflows/definitions/07a5d69cf67108f65a466bcb78c03c259d4665405f5c86eb49cc0c6fcac6c658.json +377 -0
  94. package/skills/abelien-hardware/workflows/definitions/0c2fa0e6a2f0dd2c61dcc396174c0ebc74a0aa6283ecb020467550ef726c48e7.json +145 -0
  95. package/skills/abelien-hardware/workflows/definitions/0e9aee1087fab30733fa5a73da252e06d949ecf2a5ee3e97dd06191b5f10d0ff.json +377 -0
  96. package/skills/abelien-hardware/workflows/definitions/145631bcfe0ed2c06af2ccb88f46c3749f3f1d5390dc764a7900208d26f232ea.json +309 -0
  97. package/skills/abelien-hardware/workflows/definitions/184bb6e58daaaccabd651bf42a43b65766da7f7c73c3d3c427d7540324b60ae9.json +437 -0
  98. package/skills/abelien-hardware/workflows/definitions/1d3ec4710a0b6b94dad6b20fd23b31e36e47a8d0bf6807ccbee2a6af53b3133d.json +448 -0
  99. package/skills/abelien-hardware/workflows/definitions/1eff11d69d85f1542b7dc46d90498ff0025a97a3066cbfd30adb09b882e2c3a7.json +438 -0
  100. package/skills/abelien-hardware/workflows/definitions/20453618dcbb5262713342ba2ee006c8a235ab473a32401e1389fa655c34793d.json +389 -0
  101. package/skills/abelien-hardware/workflows/definitions/2d2f040e51ea401ed1913eb1f92cb753d14bd699ebdabfdac408064e9448496f.json +296 -0
  102. package/skills/abelien-hardware/workflows/definitions/2d3819d7f9de9999755e5b4887e9185925e5ae19b3d30b3a0cc9ff4ceedc95db.json +392 -0
  103. package/skills/abelien-hardware/workflows/definitions/38ee23450becf81ee19d29ffbdf715cd02dbaac66fc447e52bb7c34c17d3e648.json +447 -0
  104. package/skills/abelien-hardware/workflows/definitions/3f98517ff28cea95c3402b1c36c3b14888d05a2856c7b6e168dee416b418e53e.json +307 -0
  105. package/skills/abelien-hardware/workflows/definitions/44818c5ac8cde303c0b3b60f5b01c7f680e67c6ab848b56f914f3b19e7dc4a10.json +297 -0
  106. package/skills/abelien-hardware/workflows/definitions/4c35db9add116e824c1da4ddb359fd7d9485911957a70696fcb46855ef38fcda.json +387 -0
  107. package/skills/abelien-hardware/workflows/definitions/50ea928ec99c92ced34003fb460c4577099112b08e8eebe3833b7501f15a2da5.json +452 -0
  108. package/skills/abelien-hardware/workflows/definitions/5269f4b4aeefbe148ae6100557462d3e8af0cd47444d7f3f0e9f493c6646a3a2.json +309 -0
  109. package/skills/abelien-hardware/workflows/definitions/5b1639e607a9b2d8e43d355d01bb9454e43c09216f9da15816223ae643fc4f8b.json +377 -0
  110. package/skills/abelien-hardware/workflows/definitions/5f19c2a16ec3a8fdee759cd0edbbe1c774e564f76a968cd693e49f10eb70509c.json +313 -0
  111. package/skills/abelien-hardware/workflows/definitions/64031f26c71b5940a53613e6434974b97910d80d48f0b9ffc3852283e9fbdc6e.json +388 -0
  112. package/skills/abelien-hardware/workflows/definitions/6925478172e8faa6b05d7c0aa81a34713e4dfd13befa5182da0854c36e2a2c0b.json +443 -0
  113. package/skills/abelien-hardware/workflows/definitions/70323801ae0919cf2db88538d280801bd39674d7b4e4a72551e2aecdbd836f18.json +303 -0
  114. package/skills/abelien-hardware/workflows/definitions/720ae54ed7871edee19e1d728c7255e63a0fb5a2cb5a9ca36edc2e72513e8585.json +310 -0
  115. package/skills/abelien-hardware/workflows/definitions/7c99690da295664767c579ce64b8fdc944a9f12999497042a3a26368b4485d3a.json +437 -0
  116. package/skills/abelien-hardware/workflows/definitions/8e7330bfd83bcc452dc2ef50c5ef16a03d63156952cf536468fe62457a20ef04.json +448 -0
  117. package/skills/abelien-hardware/workflows/definitions/9be15a6d5078d5296340c01177cab9b7d8df924ac405f29924d7d5b8842e4b15.json +452 -0
  118. package/skills/abelien-hardware/workflows/definitions/b3b472e817443960f3fb209c7561947b93350cd4c7538052a2b65362cd207576.json +449 -0
  119. package/skills/abelien-hardware/workflows/definitions/bc48eca9a43214ec0687bcc5361cf68325692e498129965425203682e76cc58f.json +312 -0
  120. package/skills/abelien-hardware/workflows/definitions/bfe4a2d363de928f22aaa1acf58c71ff14b1f0dbc40716da0547a3bac2856704.json +376 -0
  121. package/skills/abelien-hardware/workflows/definitions/c338d59553c9e51e7dc79c19bd8599658b7bb186550e232dc47771a102faf2b6.json +297 -0
  122. package/skills/abelien-hardware/workflows/definitions/ce9380dbb4886a5237665b16e1b19784a52e604c15817914589a86d4d81d9034.json +388 -0
  123. package/skills/abelien-hardware/workflows/definitions/d560de3b0aeeaf9447f7bf2d7f831d638067ab7f6cd028527c892ff623ccd00d.json +297 -0
  124. package/skills/abelien-hardware/workflows/definitions/e31a1d0f33e2980b828dd670879f8ac78344426bfaa7faef1551f50b7b6ba8d0.json +437 -0
  125. package/skills/abelien-hardware/workflows/definitions/f12ea33699b795215620ca81b01052ed76ce79c53796cc2f71166c3cc28cbc54.json +392 -0
  126. package/skills/abelien-hardware/workflows/definitions/fd0c57ea806fbf9c46f313c3905bdfa49f5a1207689551cb3b60ffde3cb23f08.json +383 -0
  127. package/skills/abelien-hardware/workflows/user-journey-hardware-candidates.json +107 -21
  128. package/skills/abelien-hardware/workflows/user-journey-hardware-carry.json +1 -0
  129. package/skills/abelien-hardware/workflows/user-journey-hardware-replace.json +125 -24
  130. package/skills/abelien-hardware/workflows/user-journey-hardware.json +107 -22
  131. package/skills/abelien-harness/SKILL.md +2 -2
  132. package/skills/abelien-harness/contract/action-registry.md +2 -2
  133. package/skills/abelien-harness/contract/fixtures/studio-harness-receipt-v1.json +6 -11
  134. package/skills/abelien-harness/contract/kernel-protocol.md +2 -2
  135. package/skills/abelien-harness/contract/workflow-spec.md +30 -27
  136. package/skills/abelien-harness/contracts/README.md +6 -2
  137. package/skills/abelien-harness/contracts/examples/ModelProfile/invalid-image-detail-low.json +28 -0
  138. package/skills/abelien-harness/contracts/examples/ModelProfile/invalid-missing-output-reserve.json +27 -0
  139. package/skills/abelien-harness/contracts/examples/ModelProfile/valid-deepseek-v4-1-flash.json +28 -0
  140. package/skills/abelien-harness/contracts/examples/expectations.json +8 -0
  141. package/skills/abelien-harness/contracts/index.d.mts +16 -1
  142. package/skills/abelien-harness/contracts/index.mjs +60 -0
  143. package/skills/abelien-harness/contracts/model-profiles/deepseek-v4-1-flash-260910.json +28 -0
  144. package/skills/abelien-harness/contracts/ports/ports.d.ts +5 -0
  145. package/skills/abelien-harness/contracts/schemas/action.v1.json +1 -0
  146. package/skills/abelien-harness/contracts/schemas/confirmation.v1.json +8 -0
  147. package/skills/abelien-harness/contracts/schemas/cross-domain.v1.json +141 -0
  148. package/skills/abelien-harness/contracts/schemas/model-profile.v1.json +157 -0
  149. package/skills/abelien-harness/contracts/schemas/store.v1.json +2 -2
  150. package/skills/abelien-harness/contracts/types.d.ts +28 -1
  151. package/skills/abelien-harness/runtime/README.md +35 -16
  152. package/skills/abelien-harness/runtime/actions.mjs +1 -1
  153. package/skills/abelien-harness/runtime/conformance/README.md +2 -0
  154. package/skills/abelien-harness/runtime/conformance/artifact-store.mjs +28 -1
  155. package/skills/abelien-harness/runtime/conformance/fixtures.mjs +12 -0
  156. package/skills/abelien-harness/runtime/data-contracts.mjs +52 -0
  157. package/skills/abelien-harness/runtime/engine.mjs +187 -20
  158. package/skills/abelien-harness/runtime/errors.mjs +7 -4
  159. package/skills/abelien-harness/runtime/executors.mjs +12 -0
  160. package/skills/abelien-harness/runtime/flow-graph.mjs +14 -1
  161. package/skills/abelien-harness/runtime/graph.mjs +48 -7
  162. package/skills/abelien-harness/runtime/index.mjs +11 -6
  163. package/skills/abelien-harness/runtime/kernel.mjs +20 -1
  164. package/skills/abelien-harness/runtime/model-actions.md +9 -1
  165. package/skills/abelien-harness/runtime/model-actions.mjs +15 -2
  166. package/skills/abelien-harness/runtime/snapshot.mjs +2 -42
  167. package/skills/abelien-harness/runtime/task-view/README.md +7 -5
  168. package/skills/abelien-harness/runtime/task-view/index.mjs +40 -17
  169. package/skills/abelien-harness/runtime/testing/index.mjs +26 -1
  170. package/skills/abelien-harness/runtime/workflow/cli-actions.mjs +29 -0
  171. package/skills/abelien-harness/runtime/workflow/{legacy-flow.mjs → compile.mjs} +19 -15
  172. package/skills/abelien-harness/runtime/{legacy → workflow}/definitions.mjs +15 -47
  173. package/skills/abelien-harness/runtime/{legacy → workflow}/external-recovery.mjs +1 -1
  174. package/skills/abelien-harness/runtime/workflow/flows.mjs +25 -4
  175. package/skills/abelien-harness/runtime/workflow/httl.mjs +3 -3
  176. package/skills/abelien-harness/runtime/workflow/index.mjs +17 -36
  177. package/skills/abelien-harness/runtime/workflow/view.mjs +3 -3
  178. package/skills/abelien-harness/scripts/ab.mjs +14 -19
  179. package/skills/abelien-harness/scripts/action-registry.mjs +22 -3
  180. package/skills/abelien-harness/scripts/calc/errors.mjs +7 -0
  181. package/skills/abelien-harness/scripts/calc/evaluate.mjs +364 -0
  182. package/skills/abelien-harness/scripts/calc/expression.mjs +136 -0
  183. package/skills/abelien-harness/scripts/calc/index.mjs +10 -0
  184. package/skills/abelien-harness/scripts/calc/quantities.mjs +104 -0
  185. package/skills/abelien-harness/scripts/calc/rational.mjs +125 -0
  186. package/skills/abelien-harness/scripts/calc/units.mjs +60 -0
  187. package/skills/abelien-harness/scripts/generate3d-host.mjs +2 -1
  188. package/skills/abelien-harness/scripts/generate3d.mjs +9 -8
  189. package/skills/abelien-harness/scripts/receipt.mjs +9 -98
  190. package/skills/abelien-harness/scripts/store.mjs +0 -2
  191. package/skills/abelien-harness/scripts/studio.mjs +19 -11
  192. package/skills/abelien-harness/scripts/web/common.mjs +6 -1
  193. package/skills/abelien-harness/scripts/web/pdf-reader.mjs +3 -2
  194. package/skills/abelien-harness/scripts/web/public-read.mjs +30 -4
  195. package/skills/abelien-harness/scripts/web/safe-text.mjs +95 -0
  196. package/skills/abelien-harness/scripts/web/search.mjs +1 -1
  197. package/skills/abelien-harness/scripts/web/source-registry.mjs +21 -2
  198. package/skills/abelien-harness/scripts/web/vision.mjs +7 -5
  199. package/skills/abelien-harness/scripts/web/volc.mjs +43 -7
  200. package/skills/abelien-reference/actions/reference.research.json +5 -0
  201. package/skills/abelien-reference/contract/host-responsibilities.md +1 -0
  202. package/skills/abelien-reference/contract/host-tools.generated.json +2 -2
  203. package/skills/abelien-reference/domain.json +1 -1
  204. package/skills/abelien-reference/references/actions/reference.research.generated.md +1 -0
  205. package/skills/abelien-reference/references/research-contract.md +1 -1
  206. package/skills/abelien-reference/scripts/evidence.mjs +1 -1
  207. package/skills/abelien-reference/scripts/finalize.mjs +14 -6
  208. package/skills/abelien-reference/scripts/image-import.mjs +90 -0
  209. package/skills/abelien-reference/scripts/research.mjs +22 -23
  210. package/skills/abelien-structure/SKILL.md +2 -8
  211. package/skills/abelien-structure/actions/cad.assets.json +22 -1
  212. package/skills/abelien-structure/actions/cad.build.json +32 -1
  213. package/skills/abelien-structure/actions/cad.fallback.json +27 -1
  214. package/skills/abelien-structure/actions/cad.precheck.json +21 -1
  215. package/skills/abelien-structure/actions/structure.cad-assemble.json +1 -1
  216. package/skills/abelien-structure/actions/structure.cad-check.json +2 -2
  217. package/skills/abelien-structure/contract/host-tools.generated.json +77 -12
  218. package/skills/abelien-structure/domain.json +3 -2
  219. package/skills/abelien-structure/flows/user-journey-cad.json +2 -2
  220. package/skills/abelien-structure/references/actions/cad.assets.generated.md +6 -1
  221. package/skills/abelien-structure/references/actions/cad.build.generated.md +8 -1
  222. package/skills/abelien-structure/references/actions/cad.fallback.generated.md +7 -1
  223. package/skills/abelien-structure/references/actions/cad.precheck.generated.md +5 -1
  224. package/skills/abelien-structure/references/actions/structure.cad-assemble.generated.md +3 -3
  225. package/skills/abelien-structure/references/actions/structure.cad-check.generated.md +2 -2
  226. package/skills/abelien-structure/references/actions/structure.layout-request.generated.md +17 -0
  227. package/skills/abelien-structure/references/actions.generated.md +1 -1
  228. package/skills/abelien-structure/references/cad-functions.generated.md +43 -2
  229. package/skills/abelien-structure/references/cad-modules.md +4 -4
  230. package/skills/abelien-structure/references/handoff.md +2 -2
  231. package/skills/abelien-structure/references/skeleton.md +12 -2
  232. package/skills/abelien-structure/schemas/cad-flow-input.v1.json +1 -1
  233. package/skills/abelien-structure/schemas/cad-modules.v1.json +2 -2
  234. package/skills/abelien-structure/schemas/cad-result.v1.json +1 -1
  235. package/skills/abelien-structure/schemas/layout-request-input.v1.json +25 -1
  236. package/skills/abelien-structure/scripts/cad.mjs +61 -8
  237. package/skills/abelien-structure/scripts/layout.mjs +56 -1
  238. package/skills/abelien-structure/scripts/schemas.mjs +1 -1
  239. package/skills/abelien-structure-worker/SKILL.md +2 -0
  240. package/skills/abelien-structure-worker/domain.json +1 -1
  241. package/skills/abelien-structure-worker/worker/abelien_cad.py +223 -62
  242. package/skills/abelien-structure-worker/worker/cad.py +441 -91
  243. package/skills/abelien-structure-worker/worker/jobs.mjs +12 -2
  244. package/skills/abelien-structure-worker/worker/source-contract.mjs +3 -2
  245. package/skills/abelien-workspace/SKILL.md +8 -7
  246. package/skills/abelien-workspace/actions/calc.evaluate.json +23 -0
  247. package/skills/abelien-workspace/actions/image.generate.json +27 -1
  248. package/skills/abelien-workspace/actions/image.import.json +27 -1
  249. package/skills/abelien-workspace/actions/reference.image-import.json +64 -0
  250. package/skills/abelien-workspace/actions/step.tool-result.json +27 -0
  251. package/skills/abelien-workspace/actions/studio.prepare.json +17 -1
  252. package/skills/abelien-workspace/actions/visual.review.json +27 -1
  253. package/skills/abelien-workspace/assets/creation-start-flow.json +1 -0
  254. package/skills/abelien-workspace/assets/hardware-reselect-flow.json +2 -1
  255. package/skills/abelien-workspace/assets/journey-stage-plan.json +339 -25
  256. package/skills/abelien-workspace/assets/lane-plan.json +11 -10
  257. package/skills/abelien-workspace/bindings.json +38 -35
  258. package/skills/abelien-workspace/contract/host-binding.md +24 -6
  259. package/skills/abelien-workspace/contract/host-tools.generated.json +1514 -545
  260. package/skills/abelien-workspace/domain.json +18 -51
  261. package/skills/abelien-workspace/flows/creation.create.json +265 -38
  262. package/skills/abelien-workspace/flows/creation.modify.json +265 -38
  263. package/skills/abelien-workspace/flows/creation.remix.json +44 -13
  264. package/skills/abelien-workspace/flows/creation.restore.json +364 -42
  265. package/skills/abelien-workspace/references/actions/calc.evaluate.generated.md +86 -0
  266. package/skills/abelien-workspace/references/actions/image.generate.generated.md +7 -1
  267. package/skills/abelien-workspace/references/actions/image.import.generated.md +7 -1
  268. package/skills/abelien-workspace/references/actions/question.card.generated.md +3 -3
  269. package/skills/abelien-workspace/references/actions/reference.image-import.generated.md +78 -0
  270. package/skills/abelien-workspace/references/actions/step.tool-result.generated.md +50 -0
  271. package/skills/abelien-workspace/references/actions/studio.prepare.generated.md +23 -2
  272. package/skills/abelien-workspace/references/actions/visual.review.generated.md +7 -1
  273. package/skills/abelien-workspace/references/actions/workspace.hardware-reselect-input.generated.md +62 -24
  274. package/skills/abelien-workspace/references/actions/workspace.intake-complete.generated.md +5 -0
  275. package/skills/abelien-workspace/references/actions/workspace.intake-route.generated.md +5 -0
  276. package/skills/abelien-workspace/references/actions/workspace.intake-wait.generated.md +5 -0
  277. package/skills/abelien-workspace/references/actions.generated.md +3 -3
  278. package/skills/abelien-workspace/references/creation-intake.md +2 -0
  279. package/skills/abelien-workspace/references/delivery-policy.md +3 -1
  280. package/skills/abelien-workspace/references/flow-input-contracts.md +23 -0
  281. package/skills/abelien-workspace/references/harness-binding.md +14 -11
  282. package/skills/abelien-workspace/references/journey-stage-plan.md +47 -14
  283. package/skills/abelien-workspace/references/product-flow.md +7 -7
  284. package/skills/abelien-workspace/references/user-journey.md +6 -6
  285. package/skills/abelien-workspace/schemas/calc.v1.json +112 -0
  286. package/skills/abelien-workspace/schemas/creation-flow-input.v1.json +24 -0
  287. package/skills/abelien-workspace/schemas/hardware-reselect-input.v1.json +1 -1
  288. package/skills/abelien-workspace/schemas/host-ack-reply.v1.json +12 -0
  289. package/skills/abelien-workspace/schemas/host-tools.v1.json +155 -14
  290. package/skills/abelien-workspace/schemas/plan-common.v1.json +3 -1
  291. package/skills/abelien-workspace/schemas/reference-image-import-input.v1.json +23 -0
  292. package/skills/abelien-workspace/schemas/reference-image.v1.json +55 -0
  293. package/skills/abelien-workspace/schemas/skeleton-model-reply.v1.json +10 -0
  294. package/skills/abelien-workspace/schemas/stored-result-reply.v1.json +12 -0
  295. package/skills/abelien-workspace/scripts/calc.mjs +109 -0
  296. package/skills/abelien-workspace/scripts/creation-tasks.mjs +212 -50
  297. package/skills/abelien-workspace/scripts/flow-compile.mjs +26 -8
  298. package/skills/abelien-workspace/scripts/plans.mjs +18 -7
  299. package/skills/abelien-algorithm/actions/algorithm.lane-state.json +0 -38
  300. package/skills/abelien-algorithm/references/actions/algorithm.lane-state.generated.md +0 -67
  301. package/skills/abelien-algorithm/schemas/lane-state-input.v1.json +0 -14
  302. package/skills/abelien-algorithm/schemas/lane-state-result.v1.json +0 -14
  303. package/skills/abelien-algorithm/scripts/lane-state.mjs +0 -27
  304. package/skills/abelien-hardware/actions/hardware.prepare.json +0 -28
  305. package/skills/abelien-hardware/actions/hardware.web-extract.json +0 -28
  306. package/skills/abelien-hardware/references/actions/hardware.prepare.generated.md +0 -38
  307. package/skills/abelien-hardware/references/actions/hardware.web-extract.generated.md +0 -36
  308. package/skills/abelien-harness/runtime/legacy/workflow-store.mjs +0 -183
  309. package/skills/abelien-workspace/actions/component.search.json +0 -27
  310. package/skills/abelien-workspace/actions/workspace.journey-next.json +0 -30
  311. package/skills/abelien-workspace/actions/workspace.lanes-next.json +0 -30
  312. package/skills/abelien-workspace/references/actions/component.search.generated.md +0 -35
  313. package/skills/abelien-workspace/references/actions/workspace.journey-next.generated.md +0 -89
  314. package/skills/abelien-workspace/references/actions/workspace.lanes-next.generated.md +0 -59
  315. package/skills/abelien-workspace/schemas/journey-next-input.v1.json +0 -52
  316. package/skills/abelien-workspace/schemas/journey-next-result.v1.json +0 -92
  317. package/skills/abelien-workspace/schemas/lanes-next-input.v1.json +0 -49
  318. package/skills/abelien-workspace/schemas/lanes-next-result.v1.json +0 -54
  319. package/skills/abelien-workspace/scripts/journey-next.mjs +0 -73
  320. package/skills/abelien-workspace/scripts/lanes-next.mjs +0 -36
@@ -0,0 +1,297 @@
1
+ {
2
+ "name": "user-journey-hardware-candidates",
3
+ "domain": "abelien-hardware",
4
+ "description": "Library recall, suitability review, English Volc query and direct source reads (Prismer switchable, off by default) for unresolved slots, source-bound merge, then candidate proposal",
5
+ "input": {
6
+ "required": [
7
+ "requirements"
8
+ ]
9
+ },
10
+ "steps": [
11
+ {
12
+ "id": "record-requirements",
13
+ "executor": "cli",
14
+ "action": "resource.put",
15
+ "args": {
16
+ "kind": "draft",
17
+ "id": "hardware-candidates-d-{{hash}}",
18
+ "body": {
19
+ "requirements": "{{input.requirements}}"
20
+ }
21
+ }
22
+ },
23
+ {
24
+ "id": "classify-hardware",
25
+ "executor": "agent",
26
+ "instruction": "需求已澄清;requirements 是 clarify 交回的 Requirements:context 为落点与场景,reaction[] 为全部触发→反应,limits[] 每项带 strength。按全部 reaction 推导功能槽位与数量,strength=hard 的 limits 进 hard_constraints,preference 只作排序提示;缺 reaction 或只有品类标签时停止并说明。读取同级 abelien-hardware/SKILL.md,并用其 scripts/load-guide.mjs 依次按需加载 entry、命中的 level1、命中的 level2、contract;只提交功能槽位、数量、受控三级路径和本次硬约束。回复 {\"slots\":[...]},不要提交型号。",
27
+ "task": {
28
+ "actions": [
29
+ "hardware.guide"
30
+ ],
31
+ "skills": [
32
+ {
33
+ "package": "abelien-hardware",
34
+ "path": "SKILL.md"
35
+ },
36
+ {
37
+ "package": "abelien-hardware",
38
+ "path": "references/selection-service-contract.md"
39
+ }
40
+ ],
41
+ "budget": {
42
+ "tool_calls": 32
43
+ },
44
+ "refs": {
45
+ "input": "input"
46
+ },
47
+ "output": {
48
+ "package": "abelien-hardware",
49
+ "schema": "schemas/classify-reply.v1.json"
50
+ }
51
+ }
52
+ },
53
+ {
54
+ "id": "search-hardware-wikis",
55
+ "executor": "cli",
56
+ "action": "capability.run",
57
+ "args": {
58
+ "capability": "hardware.search",
59
+ "input": {
60
+ "operation": "search",
61
+ "query": "{{input.requirements}}",
62
+ "requirements": "{{input.requirements}}",
63
+ "slots": "{{steps.classify-hardware.result.slots}}",
64
+ "policy": {
65
+ "prefer_system_candidates": true,
66
+ "top_k_per_slot": 8,
67
+ "include_content": true
68
+ }
69
+ }
70
+ }
71
+ },
72
+ {
73
+ "id": "hardware-knowledge-recalled",
74
+ "executor": "cli",
75
+ "action": "machine.send",
76
+ "args": {
77
+ "machine": "hardware-recall",
78
+ "event": "confirmRecall",
79
+ "instance": "{{steps.search-hardware-wikis.resource.id}}"
80
+ }
81
+ },
82
+ {
83
+ "id": "review-hardware-candidates",
84
+ "executor": "agent",
85
+ "instruction": "The library candidates are listed in refs.search-hardware-wikis.data.candidate_table: one row per candidate, no page text. Judge candidates from the table first; read a full record or Wiki only for candidates you may keep or whose fit the table cannot decide (one step's reads are budgeted: a reply read_budget_exhausted means decide from what you have read, a candidate already read in this step is answered already_read, and slots with the same candidate list are judged once). Read a full record with hardware.resource {\"resourceId\": refs.search-hardware-wikis.data.resource.id, \"sourcePath\": [\"results\", \"<slot position>\", \"candidates\", \"<row index>\"]} (every segment is a string, e.g. [\"results\", \"0\", \"candidates\", \"3\"]) and its full Wiki with hardware.wiki {\"componentIds\": [...]}; read the original requirements/slots in full. Review suitability against function and every hard constraint. Reply {\"unresolved_slots\":[{\"slot_id\":\"original slot\",\"reason\":\"no candidates or specific reasons all candidates are unsuitable\",\"query\":\"official model search targeting function/category/key hard constraints\",\"count\":5}]}. Every zero-candidate slot requires supplemental search. All unsuitable candidates also require search. Preserve rechargeable built-in battery, wireless charging, and all other original requirements; do not ask the user to drop a requirement because the catalog is empty. unresolved_slots contains only slots that need search. Omit suitable library slots entirely; never add placeholder rows with an empty query or count=0. Return [] when all slots are suitable. Before committing this review, the trusted host validates the full original requirements, slots and recall with validate-web-search-plan.mjs; a VALIDATION reply preserves this pause so the same run can be corrected. Write every query in English and keep model numbers and manufacturer names; a query containing Chinese, Japanese or Korean characters is rejected by that validation at this same pause. Count is optional, an integer from 1 to 5, and defaults to 5. When you already know the exact part for a slot, add optional \"models\":[{\"manufacturer\":\"exact manufacturer\",\"model\":\"full model with every suffix and version\"}] (1-5); the source registry is checked for those models before any search, and a slot whose every named model already has registered documents sends no search. Do not truncate requirements. The trusted host currently records Prismer as disabled for both the query and source reads: it searches Volc directly and reads source pages over public HTTPS, so PDF/image sources stay unavailable. When the host enables Prismer, Volc runs only after a saved definitive denial, successful empty query or unsent missing Key, and sources are read Prismer-first. Unknown dispatched effects never authorize fallback or a new invocation. Do not supply URLs, credentials, commands or providers. System reuse is optional: poor matches must not force complex whole systems. Concept visuals and the original requirements come first.",
86
+ "replySchema": {
87
+ "unresolved_slots": "array"
88
+ },
89
+ "task": {
90
+ "actions": [
91
+ "hardware.resource",
92
+ "hardware.wiki"
93
+ ],
94
+ "skills": [
95
+ {
96
+ "package": "abelien-hardware",
97
+ "path": "SKILL.md"
98
+ },
99
+ {
100
+ "package": "abelien-hardware",
101
+ "path": "references/selection-service-contract.md"
102
+ }
103
+ ],
104
+ "budget": {
105
+ "tool_calls": 32
106
+ },
107
+ "refs": {
108
+ "input": "input",
109
+ "classify-hardware": "steps.classify-hardware.result",
110
+ "search-hardware-wikis": {
111
+ "from": "steps.search-hardware-wikis.result",
112
+ "pick": [
113
+ "id",
114
+ "status",
115
+ "request_digest",
116
+ "source_snapshot",
117
+ "retrieval_mode",
118
+ "candidate_table",
119
+ "resource.id"
120
+ ]
121
+ }
122
+ }
123
+ }
124
+ },
125
+ {
126
+ "id": "search-hardware-web",
127
+ "executor": "cli",
128
+ "action": "capability.run",
129
+ "args": {
130
+ "capability": "hardware.web-search",
131
+ "input": {
132
+ "requirements": "{{input.requirements}}",
133
+ "slots": "{{steps.classify-hardware.result.slots}}",
134
+ "recall_id": "{{steps.search-hardware-wikis.resource.id}}",
135
+ "unresolved_slots": "{{steps.review-hardware-candidates.result.unresolved_slots}}",
136
+ "plan_rules": "volc-english-5"
137
+ }
138
+ }
139
+ },
140
+ {
141
+ "id": "extract-web-hardware",
142
+ "executor": "agent",
143
+ "instruction": "When pages contain blob_ref or have text null (their text lives in the source registry), use resource get <evidenceResourceId> --page <pageId> to read each required full original page; never copy page bodies into replies. Read the persisted hardware-web-evidence pages from search-hardware-web in full. Search Content/snippets/provider official labels are not complete official pages or proof of authority. Extract only manufacturer pages; uncertain source authority remains unknown and third-party mirrors are not official merely because their URL contains a manufacturer domain. Reply {\"candidates\":[{\"slot_id\":\"original slot\",\"page_id\":\"persisted page ID\",\"manufacturer\":\"exact manufacturer\",\"manufacturer_quote\":\"at least 8 source characters\",\"model\":\"exact model\",\"model_quote\":\"at least 8 source characters\",\"parts\":[{\"name\":\"physical part name\",\"name_quote\":\"exact source quote\",\"shape\":\"box|cylinder|sphere|unknown\",\"shape_quote\":\"exact source quote\",\"dimensions_mm\":{\"length\":20,\"width\":12,\"height\":3},\"dimension_quotes\":{\"length\":\"exact quote identifying this part, axis, numeric value and unit\",\"width\":\"exact quote\",\"height\":\"exact quote\"}}]}]}. Quotes must include the exact part/name/shape they support. Each physical part has separate dimensions; cylinders use diameter/height, spheres use diameter. Unknown dimensions are omitted, never invented or defaulted. Conflicting versions and unknown multi-part overall dimensions remain unknown; do not combine contradictory versions. Do not submit page bodies, official/verified/CAD_available/source/geometry claims. Missing reliable pages or no network means candidates empty. This is envelope_only, not true component CAD or engineering verification. For an attributed tuple such as Back Panel: 48mm x 32mm x 0.5mm, add dimensions_quote with the entire exact source string and dimension_axes:[\"length\",\"width\",\"height\"] in original order; dimensions_mm must map each original value/unit to that explicitly declared axis. Preserve alternate imperial tuples in the quote; never use their values as mm or borrow another part's measurements. A 2-value tuple leaves height unknown. A box inferred from dimensions is only an envelope expression: actual part shape and orientation remain unknown. dimension_quotes may be empty for this tuple mode. Never invent coil thickness or total assembly dimensions. A read PDF lists its drawing pages under transcriptions[] (kind vision_transcription): sizes the vision model read from a drawing. They are estimates, never datasheet facts and never quotes. A part may take its sizes from one completed transcription in the same slot instead of quotes: \"vision_dimensions\":{\"transcription_id\":\"vision-...\",\"items\":{\"length\":0,\"width\":1,\"height\":2}}, where each axis names the index of an item whose value in mm equals that dimension; name_quote still comes from a read page, and a box needs no shape_quote. Pick the item that is the whole outline, not the display area, PCB, mounting-hole pitch or connector.",
144
+ "replySchema": {
145
+ "candidates": "array"
146
+ },
147
+ "task": {
148
+ "actions": [
149
+ "hardware.resource"
150
+ ],
151
+ "skills": [
152
+ {
153
+ "package": "abelien-hardware",
154
+ "path": "SKILL.md"
155
+ },
156
+ {
157
+ "package": "abelien-hardware",
158
+ "path": "references/selection-service-contract.md"
159
+ }
160
+ ],
161
+ "budget": {
162
+ "tool_calls": 32
163
+ },
164
+ "refs": {
165
+ "input": "input",
166
+ "classify-hardware": "steps.classify-hardware.result",
167
+ "search-hardware-wikis": {
168
+ "from": "steps.search-hardware-wikis.result",
169
+ "pick": [
170
+ "id",
171
+ "status",
172
+ "request_digest",
173
+ "source_snapshot",
174
+ "retrieval_mode",
175
+ "candidate_table",
176
+ "resource.id"
177
+ ]
178
+ },
179
+ "review-hardware-candidates": "steps.review-hardware-candidates.result",
180
+ "search-hardware-web": {
181
+ "from": "steps.search-hardware-web.result",
182
+ "omit": [
183
+ "resource.body"
184
+ ]
185
+ }
186
+ }
187
+ }
188
+ },
189
+ {
190
+ "id": "merge-hardware-web",
191
+ "executor": "cli",
192
+ "action": "capability.run",
193
+ "args": {
194
+ "capability": "hardware.web-merge",
195
+ "input": {
196
+ "requirements": "{{input.requirements}}",
197
+ "slots": "{{steps.classify-hardware.result.slots}}",
198
+ "recall_id": "{{steps.search-hardware-wikis.resource.id}}",
199
+ "evidence_id": "{{steps.search-hardware-web.resource.id}}",
200
+ "candidates": "{{steps.extract-web-hardware.result.candidates}}"
201
+ }
202
+ }
203
+ },
204
+ {
205
+ "id": "select-hardware-from-wikis",
206
+ "executor": "agent",
207
+ "instruction": "读取 context-json 中 merge-hardware-web 的候选和完整 Wiki;按用户硬约束与功能覆盖为各槽位选择零部件;同类整机配置只作参考,不先提出或套用整机(还原、基于现成产品修改或用户明确要求沿用整机时才可提出整机方案),并检查接口、供电、机械、热和软件依赖。只选择候选中的 component_id,不按 draft、selection_gate 或 CAD 状态过滤。召回结果里 unmatched_slots 列出的槽位一个候选都没有:这些槽位必须逐条写进 remaining_slots,status 只能是 needs_confirmation——finalize 会拒绝把无候选槽位静默丢掉的「完整」提案。回复 {\"status\":\"proposed|needs_confirmation\",\"plan_mode\":\"adapt_system|assemble_new\",\"selected_models\":[...],\"coverage_ledger\":[...],\"remaining_slots\":[...],\"unknowns\":[...],\"replacement_plan\":[...]},每个型号带 slot_id、component_id(候选中的真实值)、manufacturer、model、quantity(1–128 的整数,本槽位实际要用几个,缺失或非整数会被 finalize 拒绝)、selection_reason(字符串)和 wiki_evidence(非空字符串数组,逐条引用该候选完整 Wiki 中支持此选择的原文要点);coverage_ledger、remaining_slots、unknowns、replacement_plan 均为数组,没有内容时给空数组。 提案不具有正式选型权限;不能提交 hardware-selected 或据此开始算法选型,须另走 hardware.select。 Read only merge-hardware-web candidates for the final choice. Preserve structured limits.envelope and source strength; dimension metadata/name/selection-line identity are supplied by the trusted finalizer, never invented. Incompatible dimension candidates require replacement; only decision_required (user hard limit, measured/datasheet size, no axis-aligned fit) returns needs_confirmation, other risk/unknown stays advisory and risk candidates rank last. A bus type or count shortfall on trusted data (ELECTRICAL_BUS_UNCONFIRMED) needs confirmation: prefer replacing one side, or explain the expansion or driver board that covers it; ELECTRICAL_SUPPLY_GAP means add a power or regulator part. all_indexed_candidates_rejected is scoped to this indexed category; occupancy is advisory and clear is only coarse single-part screening. Whole-system reuse is optional; a poor match never forces a complex baseline. External IDs are external:<hash>, with source authority and engineering unknowns; envelopes are not component CAD and cannot grant adoption or delivery.只读打算选用或需要核对的候选的完整 Wiki;同一步骤的读取有预算:回复 read_budget_exhausted 时按已读内容决定,本步骤已读过的候选回 already_read,不必重读。",
208
+ "replySchema": {
209
+ "status": "proposed|needs_confirmation",
210
+ "plan_mode": "adapt_system|assemble_new",
211
+ "selected_models": "array",
212
+ "coverage_ledger": "array",
213
+ "remaining_slots": "array",
214
+ "unknowns": "array",
215
+ "replacement_plan": "array"
216
+ },
217
+ "task": {
218
+ "actions": [
219
+ "hardware.resource",
220
+ "hardware.wiki"
221
+ ],
222
+ "skills": [
223
+ {
224
+ "package": "abelien-hardware",
225
+ "path": "SKILL.md"
226
+ },
227
+ {
228
+ "package": "abelien-hardware",
229
+ "path": "references/selection-service-contract.md"
230
+ }
231
+ ],
232
+ "budget": {
233
+ "tool_calls": 32
234
+ },
235
+ "refs": {
236
+ "input": "input",
237
+ "classify-hardware": "steps.classify-hardware.result",
238
+ "search-hardware-wikis": {
239
+ "from": "steps.search-hardware-wikis.result",
240
+ "pick": [
241
+ "id",
242
+ "status",
243
+ "request_digest",
244
+ "source_snapshot",
245
+ "retrieval_mode",
246
+ "candidate_table",
247
+ "resource.id"
248
+ ]
249
+ },
250
+ "review-hardware-candidates": "steps.review-hardware-candidates.result",
251
+ "search-hardware-web": {
252
+ "from": "steps.search-hardware-web.result",
253
+ "omit": [
254
+ "resource.body"
255
+ ]
256
+ },
257
+ "extract-web-hardware": "steps.extract-web-hardware.result",
258
+ "merge-hardware-web": {
259
+ "from": "steps.merge-hardware-web.result",
260
+ "omit": [
261
+ "resource.body"
262
+ ]
263
+ }
264
+ }
265
+ }
266
+ },
267
+ {
268
+ "id": "finalize-hardware-proposal",
269
+ "executor": "cli",
270
+ "action": "capability.run",
271
+ "args": {
272
+ "capability": "hardware.finalize",
273
+ "input": {
274
+ "operation": "create",
275
+ "planning_mode": "auto",
276
+ "requirements": "{{input.requirements}}",
277
+ "slots": "{{steps.classify-hardware.result.slots}}",
278
+ "knowledge_recall": "{{steps.merge-hardware-web.resource.body}}",
279
+ "selection_proposal": "{{steps.select-hardware-from-wikis.result}}"
280
+ }
281
+ }
282
+ },
283
+ {
284
+ "id": "record-hardware-proposal",
285
+ "executor": "cli",
286
+ "action": "resource.update",
287
+ "args": {
288
+ "id": "{{steps.record-requirements.resource.id}}",
289
+ "bodyPatch": {
290
+ "hardwareProposalId": "{{steps.finalize-hardware-proposal.resource.id}}",
291
+ "hardwareProposalStatus": "{{steps.finalize-hardware-proposal.result.status}}",
292
+ "hardwareProposalRevision": "{{steps.finalize-hardware-proposal.result.revision}}"
293
+ }
294
+ }
295
+ }
296
+ ]
297
+ }