abelien-harness 0.14.0 → 1.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 (338) hide show
  1. package/.env.example +9 -0
  2. package/README.md +2 -2
  3. package/package.json +2 -1
  4. package/skills/abelien-algorithm/SKILL.md +1 -0
  5. package/skills/abelien-algorithm/actions/algorithm.candidates.json +43 -0
  6. package/skills/abelien-algorithm/actions/algorithm.finalize.json +38 -0
  7. package/skills/abelien-algorithm/actions/algorithm.lane-state.json +38 -0
  8. package/skills/abelien-algorithm/actions/algorithm.research.json +70 -0
  9. package/skills/abelien-algorithm/bindings.json +58 -0
  10. package/skills/abelien-algorithm/contract/host-tools.generated.json +1235 -0
  11. package/skills/abelien-algorithm/domain.json +8 -2
  12. package/skills/abelien-algorithm/references/actions.generated.md +289 -0
  13. package/skills/abelien-algorithm/schemas/algorithm-common.v1.json +22 -0
  14. package/skills/abelien-algorithm/schemas/candidates-input.v1.json +15 -0
  15. package/skills/abelien-algorithm/schemas/candidates-result.v1.json +17 -0
  16. package/skills/abelien-algorithm/schemas/finalize-input.v1.json +17 -0
  17. package/skills/abelien-algorithm/schemas/finalize-result.v1.json +28 -0
  18. package/skills/abelien-algorithm/schemas/lane-state-input.v1.json +14 -0
  19. package/skills/abelien-algorithm/schemas/lane-state-result.v1.json +14 -0
  20. package/skills/abelien-algorithm/schemas/research-input.v1.json +45 -0
  21. package/skills/abelien-algorithm/schemas/research-result.v1.json +19 -0
  22. package/skills/abelien-appearance/SKILL.md +2 -1
  23. package/skills/abelien-appearance/domain.json +69 -0
  24. package/skills/abelien-appearance/references/points.md +61 -0
  25. package/skills/abelien-appearance/schemas/points-fallback-input.v1.json +16 -0
  26. package/skills/abelien-appearance/schemas/points-fallback-result.v1.json +18 -0
  27. package/skills/abelien-appearance/schemas/points-input.v1.json +36 -0
  28. package/skills/abelien-appearance/schemas/points-reading.v1.json +90 -0
  29. package/skills/abelien-appearance/schemas/points-result.v1.json +60 -0
  30. package/skills/abelien-appearance/scripts/points.mjs +163 -0
  31. package/skills/abelien-appearance/scripts/schemas.mjs +27 -0
  32. package/skills/abelien-hardware/SKILL.md +8 -0
  33. package/skills/abelien-hardware/actions/hardware.change-scope.json +31 -0
  34. package/skills/abelien-hardware/actions/hardware.finalize.json +33 -0
  35. package/skills/abelien-hardware/actions/hardware.guide.json +27 -0
  36. package/skills/abelien-hardware/actions/hardware.prepare.json +28 -0
  37. package/skills/abelien-hardware/actions/hardware.replace-plan.json +31 -0
  38. package/skills/abelien-hardware/actions/hardware.resource.json +27 -0
  39. package/skills/abelien-hardware/actions/hardware.search.json +97 -0
  40. package/skills/abelien-hardware/actions/hardware.select.json +64 -0
  41. package/skills/abelien-hardware/actions/hardware.selection-commit.json +68 -0
  42. package/skills/abelien-hardware/actions/hardware.selection-propose.json +52 -0
  43. package/skills/abelien-hardware/actions/hardware.selection-recall.json +47 -0
  44. package/skills/abelien-hardware/actions/hardware.web-extract.json +28 -0
  45. package/skills/abelien-hardware/actions/hardware.web-merge.json +48 -0
  46. package/skills/abelien-hardware/actions/hardware.web-search.json +87 -0
  47. package/skills/abelien-hardware/actions/hardware.wiki.json +27 -0
  48. package/skills/abelien-hardware/actions/hardware.workflow.json +31 -0
  49. package/skills/abelien-hardware/assets/pdf-drawing-prompt.txt +1 -0
  50. package/skills/abelien-hardware/bindings.json +302 -0
  51. package/skills/abelien-hardware/contract/host-tools.generated.json +15924 -0
  52. package/skills/abelien-hardware/contract/online-supplement-host.md +2 -0
  53. package/skills/abelien-hardware/contract/web-evidence-contract.md +4 -0
  54. package/skills/abelien-hardware/domain.json +96 -2
  55. package/skills/abelien-hardware/references/actions.generated.md +1487 -0
  56. package/skills/abelien-hardware/references/selection-evidence-v2.md +57 -0
  57. package/skills/abelien-hardware/schemas/change-scope-input.v1.json +29 -0
  58. package/skills/abelien-hardware/schemas/change-scope-result.v1.json +21 -0
  59. package/skills/abelien-hardware/schemas/hardware-common.v1.json +188 -0
  60. package/skills/abelien-hardware/schemas/hardware-selection-actions.v1.json +121 -0
  61. package/skills/abelien-hardware/schemas/hardware-selection.v2.json +496 -0
  62. package/skills/abelien-hardware/schemas/host-tools-input.v1.json +292 -0
  63. package/skills/abelien-hardware/schemas/proposal-input.v1.json +149 -0
  64. package/skills/abelien-hardware/schemas/proposal-result.v1.json +25 -0
  65. package/skills/abelien-hardware/schemas/replace-plan-input.v1.json +32 -0
  66. package/skills/abelien-hardware/schemas/replace-plan-result.v1.json +16 -0
  67. package/skills/abelien-hardware/schemas/search-input.v1.json +42 -0
  68. package/skills/abelien-hardware/schemas/search-result.v1.json +18 -0
  69. package/skills/abelien-hardware/schemas/select-input.v1.json +39 -0
  70. package/skills/abelien-hardware/schemas/select-result.v1.json +27 -0
  71. package/skills/abelien-hardware/schemas/web-merge-input.v1.json +52 -0
  72. package/skills/abelien-hardware/schemas/web-merge-result.v1.json +18 -0
  73. package/skills/abelien-hardware/schemas/web-search-input.v1.json +42 -0
  74. package/skills/abelien-hardware/schemas/web-search-result.v1.json +18 -0
  75. package/skills/abelien-hardware/scripts/admission.mjs +4 -2
  76. package/skills/abelien-hardware/scripts/provider-chain-contract.mjs +20 -7
  77. package/skills/abelien-hardware/scripts/selection-bom-use.mjs +47 -0
  78. package/skills/abelien-hardware/scripts/selection-commit.mjs +29 -0
  79. package/skills/abelien-hardware/scripts/selection-model.mjs +252 -0
  80. package/skills/abelien-hardware/scripts/selection-propose.mjs +256 -0
  81. package/skills/abelien-hardware/scripts/selection-recall.mjs +150 -0
  82. package/skills/abelien-hardware/scripts/selection-revision-store.mjs +97 -0
  83. package/skills/abelien-hardware/scripts/web-evidence-storage.mjs +6 -2
  84. package/skills/abelien-hardware/scripts/web-integrity.mjs +3 -1
  85. package/skills/abelien-hardware/scripts/web-merge.mjs +32 -3
  86. package/skills/abelien-hardware/scripts/web-pdf.mjs +135 -0
  87. package/skills/abelien-hardware/scripts/web-provider-chain.mjs +55 -6
  88. package/skills/abelien-hardware/workflows/definitions/136ef3d91d059f43e80a91338748f9d26a65be0cae6fc1ac553177f25af1faa5.json +176 -0
  89. package/skills/abelien-hardware/workflows/definitions/857a5b729a5164c4727d281d64b66941281173ebdde975a20f19a2a2acfbff3a.json +150 -0
  90. package/skills/abelien-hardware/workflows/definitions/b63cb14e876b7d274da3ecefa7e3b056a113ace7d7fb97fcd2c74b749673b6e3.json +218 -0
  91. package/skills/abelien-hardware/workflows/user-journey-hardware-candidates.json +1 -1
  92. package/skills/abelien-hardware/workflows/user-journey-hardware-replace.json +1 -1
  93. package/skills/abelien-hardware/workflows/user-journey-hardware.json +1 -1
  94. package/skills/abelien-harness/SKILL.md +6 -0
  95. package/skills/abelien-harness/contract/action-registry.md +76 -0
  96. package/skills/abelien-harness/contract/source-registry.md +5 -2
  97. package/skills/abelien-harness/contract/workflow-spec.md +15 -0
  98. package/skills/abelien-harness/contracts/README.md +109 -0
  99. package/skills/abelien-harness/contracts/examples/ActionDefinition/invalid-design-example-without-result-checks.json +24 -0
  100. package/skills/abelien-harness/contracts/examples/ActionDefinition/invalid-postcondition-without-entry.json +31 -0
  101. package/skills/abelien-harness/contracts/examples/ActionDefinition/invalid-transport-in-definition.json +32 -0
  102. package/skills/abelien-harness/contracts/examples/ActionDefinition/invalid-unknown-effect.json +33 -0
  103. package/skills/abelien-harness/contracts/examples/ActionDefinition/valid-async-web-search.json +45 -0
  104. package/skills/abelien-harness/contracts/examples/ActionDefinition/valid-implementation-dependent-build.json +32 -0
  105. package/skills/abelien-harness/contracts/examples/ActionDefinition/valid-local-change-scope.json +31 -0
  106. package/skills/abelien-harness/contracts/examples/ActionError/invalid-missing-submission-state.json +8 -0
  107. package/skills/abelien-harness/contracts/examples/ActionError/invalid-transient-after-submit.json +10 -0
  108. package/skills/abelien-harness/contracts/examples/ActionError/invalid-unknown-retried.json +9 -0
  109. package/skills/abelien-harness/contracts/examples/ActionError/valid-config-blocked.json +9 -0
  110. package/skills/abelien-harness/contracts/examples/ActionError/valid-design-conflict.json +24 -0
  111. package/skills/abelien-harness/contracts/examples/ActionError/valid-unknown-reconcile.json +9 -0
  112. package/skills/abelien-harness/contracts/examples/AppearancePoints/invalid-fallback-with-guessed-points.json +47 -0
  113. package/skills/abelien-harness/contracts/examples/AppearancePoints/invalid-missing-image-ref.json +94 -0
  114. package/skills/abelien-harness/contracts/examples/AppearancePoints/invalid-mm-without-scale.json +104 -0
  115. package/skills/abelien-harness/contracts/examples/AppearancePoints/invalid-ready-without-frame.json +100 -0
  116. package/skills/abelien-harness/contracts/examples/AppearancePoints/valid-degraded-fallback.json +27 -0
  117. package/skills/abelien-harness/contracts/examples/AppearancePoints/valid-ready.json +104 -0
  118. package/skills/abelien-harness/contracts/examples/ArtifactApplicability/invalid-current-with-reasons.json +30 -0
  119. package/skills/abelien-harness/contracts/examples/ArtifactApplicability/invalid-stale-without-reasons.json +15 -0
  120. package/skills/abelien-harness/contracts/examples/ArtifactApplicability/valid-current.json +15 -0
  121. package/skills/abelien-harness/contracts/examples/ArtifactApplicability/valid-stale-after-redraw.json +30 -0
  122. package/skills/abelien-harness/contracts/examples/ArtifactEnvelope/invalid-degraded-without-unknowns.json +17 -0
  123. package/skills/abelien-harness/contracts/examples/ArtifactEnvelope/invalid-design-example-string-inputs.json +19 -0
  124. package/skills/abelien-harness/contracts/examples/ArtifactEnvelope/invalid-fallback-on-ready.json +27 -0
  125. package/skills/abelien-harness/contracts/examples/ArtifactEnvelope/valid-degraded-fallback.json +27 -0
  126. package/skills/abelien-harness/contracts/examples/ArtifactEnvelope/valid-ready-evidence.json +17 -0
  127. package/skills/abelien-harness/contracts/examples/ArtifactNeed/invalid-accept-failed.json +6 -0
  128. package/skills/abelien-harness/contracts/examples/ArtifactNeed/invalid-empty-quality.json +4 -0
  129. package/skills/abelien-harness/contracts/examples/ArtifactNeed/valid-points-accept-degraded.json +7 -0
  130. package/skills/abelien-harness/contracts/examples/ArtifactNeed/valid-selection-ready-only.json +6 -0
  131. package/skills/abelien-harness/contracts/examples/ArtifactRecord/invalid-no-provenance.json +38 -0
  132. package/skills/abelien-harness/contracts/examples/ArtifactRecord/valid-degraded-points.json +44 -0
  133. package/skills/abelien-harness/contracts/examples/BomLine/invalid-placeholder-posing-as-purchased.json +24 -0
  134. package/skills/abelien-harness/contracts/examples/BomLine/invalid-placeholder-without-open-issues.json +20 -0
  135. package/skills/abelien-harness/contracts/examples/BomLine/invalid-purchased-without-identity-status.json +23 -0
  136. package/skills/abelien-harness/contracts/examples/BomLine/valid-designed-substitute.json +24 -0
  137. package/skills/abelien-harness/contracts/examples/BomLine/valid-placeholder.json +23 -0
  138. package/skills/abelien-harness/contracts/examples/BomLine/valid-purchased-exact.json +24 -0
  139. package/skills/abelien-harness/contracts/examples/BomLine/valid-purchased-series-only.json +24 -0
  140. package/skills/abelien-harness/contracts/examples/ConfirmationAnswer/invalid-client-operation-id.json +17 -0
  141. package/skills/abelien-harness/contracts/examples/ConfirmationAnswer/valid-accept.json +17 -0
  142. package/skills/abelien-harness/contracts/examples/ConfirmationIdentity/invalid-missing-version.json +8 -0
  143. package/skills/abelien-harness/contracts/examples/ConfirmationIdentity/invalid-zero-semantics-version.json +9 -0
  144. package/skills/abelien-harness/contracts/examples/ConfirmationIdentity/valid-selection-card.json +9 -0
  145. package/skills/abelien-harness/contracts/examples/ConfirmationRequest/invalid-no-options.json +20 -0
  146. package/skills/abelien-harness/contracts/examples/ConfirmationRequest/invalid-ui-copy-in-option.json +25 -0
  147. package/skills/abelien-harness/contracts/examples/ConfirmationRequest/valid-hardware-card.json +27 -0
  148. package/skills/abelien-harness/contracts/examples/DispatchClaim/invalid-claim-without-fence.json +44 -0
  149. package/skills/abelien-harness/contracts/examples/DispatchClaim/valid-claim.json +45 -0
  150. package/skills/abelien-harness/contracts/examples/EffectiveAction/invalid-bound-unresolved-determinism.json +78 -0
  151. package/skills/abelien-harness/contracts/examples/EffectiveAction/invalid-unbound-with-binding-digest.json +69 -0
  152. package/skills/abelien-harness/contracts/examples/EffectiveAction/valid-bound-module.json +70 -0
  153. package/skills/abelien-harness/contracts/examples/EffectiveAction/valid-bound-studio-tool.json +78 -0
  154. package/skills/abelien-harness/contracts/examples/EffectiveAction/valid-unbound.json +69 -0
  155. package/skills/abelien-harness/contracts/examples/EventCursor/invalid-negative.json +4 -0
  156. package/skills/abelien-harness/contracts/examples/EventCursor/valid-fresh-tree.json +4 -0
  157. package/skills/abelien-harness/contracts/examples/EventEnvelope/invalid-legacy-state-name.json +14 -0
  158. package/skills/abelien-harness/contracts/examples/EventEnvelope/invalid-step-event-without-step.json +26 -0
  159. package/skills/abelien-harness/contracts/examples/EventEnvelope/invalid-zero-sequence.json +17 -0
  160. package/skills/abelien-harness/contracts/examples/EventEnvelope/valid-late-receipt-history.json +18 -0
  161. package/skills/abelien-harness/contracts/examples/EventEnvelope/valid-operation-accepted.json +17 -0
  162. package/skills/abelien-harness/contracts/examples/EventEnvelope/valid-step-waiting-on-card.json +27 -0
  163. package/skills/abelien-harness/contracts/examples/ExecutionClaim/invalid-zero-fence.json +7 -0
  164. package/skills/abelien-harness/contracts/examples/ExecutionClaim/valid-after-takeover.json +7 -0
  165. package/skills/abelien-harness/contracts/examples/ExecutionIdentity/invalid-fence-in-identity.json +19 -0
  166. package/skills/abelien-harness/contracts/examples/ExecutionIdentity/invalid-missing-target-revision.json +13 -0
  167. package/skills/abelien-harness/contracts/examples/ExecutionIdentity/valid-rework.json +20 -0
  168. package/skills/abelien-harness/contracts/examples/ExecutionIdentity/valid-web-search.json +18 -0
  169. package/skills/abelien-harness/contracts/examples/ExecutionManifest/invalid-alias-claimed-frozen.json +77 -0
  170. package/skills/abelien-harness/contracts/examples/ExecutionManifest/invalid-runtime-version-alias.json +77 -0
  171. package/skills/abelien-harness/contracts/examples/ExecutionManifest/valid-legacy-mapping.json +59 -0
  172. package/skills/abelien-harness/contracts/examples/ExecutionManifest/valid-runtime-run.json +77 -0
  173. package/skills/abelien-harness/contracts/examples/ImplementationBinding/invalid-credential-in-entry.json +23 -0
  174. package/skills/abelien-harness/contracts/examples/ImplementationBinding/invalid-module-without-export.json +19 -0
  175. package/skills/abelien-harness/contracts/examples/ImplementationBinding/invalid-studio-tool-with-path.json +24 -0
  176. package/skills/abelien-harness/contracts/examples/ImplementationBinding/invalid-unresolved-determinism.json +23 -0
  177. package/skills/abelien-harness/contracts/examples/ImplementationBinding/valid-http.json +23 -0
  178. package/skills/abelien-harness/contracts/examples/ImplementationBinding/valid-module.json +20 -0
  179. package/skills/abelien-harness/contracts/examples/ImplementationBinding/valid-studio-tool.json +23 -0
  180. package/skills/abelien-harness/contracts/examples/InputDigestSubject/invalid-shorthand-input-ref.json +22 -0
  181. package/skills/abelien-harness/contracts/examples/InputDigestSubject/invalid-transport-field.json +32 -0
  182. package/skills/abelien-harness/contracts/examples/InputDigestSubject/valid-web-search.json +31 -0
  183. package/skills/abelien-harness/contracts/examples/OperationRecord/invalid-prepared-but-submitted.json +36 -0
  184. package/skills/abelien-harness/contracts/examples/OperationRecord/invalid-unknown-not-submitted.json +36 -0
  185. package/skills/abelien-harness/contracts/examples/OperationRecord/valid-accepted.json +36 -0
  186. package/skills/abelien-harness/contracts/examples/OperationRecord/valid-prepared.json +36 -0
  187. package/skills/abelien-harness/contracts/examples/OperationRecord/valid-unknown.json +44 -0
  188. package/skills/abelien-harness/contracts/examples/PortError/invalid-unknown-code.json +4 -0
  189. package/skills/abelien-harness/contracts/examples/PortError/valid-fence-stale.json +9 -0
  190. package/skills/abelien-harness/contracts/examples/Receipt/invalid-failed-without-error.json +15 -0
  191. package/skills/abelien-harness/contracts/examples/Receipt/invalid-missing-implementation-identity.json +19 -0
  192. package/skills/abelien-harness/contracts/examples/Receipt/invalid-succeeded-with-error.json +44 -0
  193. package/skills/abelien-harness/contracts/examples/Receipt/valid-failed.json +39 -0
  194. package/skills/abelien-harness/contracts/examples/Receipt/valid-succeeded.json +20 -0
  195. package/skills/abelien-harness/contracts/examples/Ref/invalid-digest-with-prefix.json +5 -0
  196. package/skills/abelien-harness/contracts/examples/Ref/invalid-shorthand-string.json +1 -0
  197. package/skills/abelien-harness/contracts/examples/Ref/valid-concept-image.json +5 -0
  198. package/skills/abelien-harness/contracts/examples/ResourceRecord/invalid-digest-without-prefix.json +19 -0
  199. package/skills/abelien-harness/contracts/examples/ResourceRecord/invalid-renamed-meta.json +13 -0
  200. package/skills/abelien-harness/contracts/examples/ResourceRecord/valid-existing-store-shape.json +19 -0
  201. package/skills/abelien-harness/contracts/examples/RunRecord/invalid-child-without-parent-step.json +27 -0
  202. package/skills/abelien-harness/contracts/examples/RunRecord/invalid-runtime-without-manifest.json +21 -0
  203. package/skills/abelien-harness/contracts/examples/RunRecord/valid-legacy-child.json +27 -0
  204. package/skills/abelien-harness/contracts/examples/RunRecord/valid-root.json +21 -0
  205. package/skills/abelien-harness/contracts/examples/RunSnapshot/invalid-child-run-on-model-step.json +270 -0
  206. package/skills/abelien-harness/contracts/examples/RunSnapshot/invalid-legacy-state-name.json +153 -0
  207. package/skills/abelien-harness/contracts/examples/RunSnapshot/invalid-legacy-without-registration.json +266 -0
  208. package/skills/abelien-harness/contracts/examples/RunSnapshot/invalid-waiting-without-reason.json +268 -0
  209. package/skills/abelien-harness/contracts/examples/RunSnapshot/valid-cancelled-late-result-rework.json +139 -0
  210. package/skills/abelien-harness/contracts/examples/RunSnapshot/valid-legacy-hardware-subflow.json +272 -0
  211. package/skills/abelien-harness/contracts/examples/RunSnapshot/valid-parallel-join-degraded.json +153 -0
  212. package/skills/abelien-harness/contracts/examples/SkeletonOccurrence/invalid-missing-fit-envelope.json +27 -0
  213. package/skills/abelien-harness/contracts/examples/SkeletonOccurrence/invalid-uppercase-id.json +43 -0
  214. package/skills/abelien-harness/contracts/examples/SkeletonOccurrence/invalid-view-transform-fields.json +44 -0
  215. package/skills/abelien-harness/contracts/examples/SkeletonOccurrence/valid-speaker-1.json +43 -0
  216. package/skills/abelien-harness/contracts/examples/SkeletonOccurrence/valid-speaker-2.json +43 -0
  217. package/skills/abelien-harness/contracts/examples/Slot/invalid-box-with-diameter.json +29 -0
  218. package/skills/abelien-harness/contracts/examples/Slot/invalid-missing-reaction-ids.json +11 -0
  219. package/skills/abelien-harness/contracts/examples/Slot/invalid-two-level-path.json +11 -0
  220. package/skills/abelien-harness/contracts/examples/Slot/invalid-zero-quantity.json +12 -0
  221. package/skills/abelien-harness/contracts/examples/Slot/valid-shared-power.json +12 -0
  222. package/skills/abelien-harness/contracts/examples/Slot/valid-speaker-with-zone.json +33 -0
  223. package/skills/abelien-harness/contracts/examples/StepExecutionRecord/invalid-child-run-on-cli.json +23 -0
  224. package/skills/abelien-harness/contracts/examples/StepExecutionRecord/invalid-waiting-without-reason.json +19 -0
  225. package/skills/abelien-harness/contracts/examples/StepExecutionRecord/valid-subflow.json +31 -0
  226. package/skills/abelien-harness/contracts/examples/StepExecutionRecord/valid-waiting-external.json +23 -0
  227. package/skills/abelien-harness/contracts/examples/TargetRevisionRef/invalid-extra-parent.json +6 -0
  228. package/skills/abelien-harness/contracts/examples/TargetRevisionRef/valid-revision-4.json +5 -0
  229. package/skills/abelien-harness/contracts/examples/WaitReason/invalid-configuration-with-source-error.json +12 -0
  230. package/skills/abelien-harness/contracts/examples/WaitReason/invalid-confirmation-without-subject.json +4 -0
  231. package/skills/abelien-harness/contracts/examples/WaitReason/valid-budget.json +6 -0
  232. package/skills/abelien-harness/contracts/examples/WaitReason/valid-configuration.json +12 -0
  233. package/skills/abelien-harness/contracts/examples/WaitReason/valid-confirmation.json +13 -0
  234. package/skills/abelien-harness/contracts/examples/WaitReason/valid-data-dependency.json +18 -0
  235. package/skills/abelien-harness/contracts/examples/expectations.json +294 -0
  236. package/skills/abelien-harness/contracts/index.d.mts +32 -0
  237. package/skills/abelien-harness/contracts/index.mjs +46 -0
  238. package/skills/abelien-harness/contracts/ports/memory.d.mts +11 -0
  239. package/skills/abelien-harness/contracts/ports/memory.mjs +349 -0
  240. package/skills/abelien-harness/contracts/ports/ports.d.ts +115 -0
  241. package/skills/abelien-harness/contracts/schemas/action.v1.json +330 -0
  242. package/skills/abelien-harness/contracts/schemas/artifact.v1.json +102 -0
  243. package/skills/abelien-harness/contracts/schemas/confirmation.v1.json +64 -0
  244. package/skills/abelien-harness/contracts/schemas/cross-domain.v1.json +241 -0
  245. package/skills/abelien-harness/contracts/schemas/error.v1.json +70 -0
  246. package/skills/abelien-harness/contracts/schemas/event.v1.json +204 -0
  247. package/skills/abelien-harness/contracts/schemas/execution-identity.v1.json +72 -0
  248. package/skills/abelien-harness/contracts/schemas/ref.v1.json +43 -0
  249. package/skills/abelien-harness/contracts/schemas/run-snapshot.v1.json +176 -0
  250. package/skills/abelien-harness/contracts/schemas/store.v1.json +209 -0
  251. package/skills/abelien-harness/contracts/types.d.ts +620 -0
  252. package/skills/abelien-harness/contracts/validate.mjs +164 -0
  253. package/skills/abelien-harness/runtime/README.md +103 -0
  254. package/skills/abelien-harness/runtime/conformance/README.md +32 -0
  255. package/skills/abelien-harness/runtime/conformance/artifact-store.mjs +167 -0
  256. package/skills/abelien-harness/runtime/conformance/execution-store.mjs +346 -0
  257. package/skills/abelien-harness/runtime/conformance/fixtures.mjs +56 -0
  258. package/skills/abelien-harness/runtime/conformance/index.mjs +71 -0
  259. package/skills/abelien-harness/runtime/engine.mjs +1021 -0
  260. package/skills/abelien-harness/runtime/errors.mjs +80 -0
  261. package/skills/abelien-harness/runtime/ids.mjs +25 -0
  262. package/skills/abelien-harness/runtime/index.mjs +15 -0
  263. package/skills/abelien-harness/runtime/legacy/definitions.mjs +115 -0
  264. package/skills/abelien-harness/runtime/legacy/external-recovery.mjs +48 -0
  265. package/skills/abelien-harness/runtime/legacy/workflow-store.mjs +183 -0
  266. package/skills/abelien-harness/runtime/ports/file/artifact-store.mjs +103 -0
  267. package/skills/abelien-harness/runtime/ports/file/common.mjs +100 -0
  268. package/skills/abelien-harness/runtime/ports/file/execution-store.mjs +248 -0
  269. package/skills/abelien-harness/runtime/ports/file/index.mjs +23 -0
  270. package/skills/abelien-harness/runtime/ports/file/resource-store.mjs +51 -0
  271. package/skills/abelien-harness/runtime/snapshot.mjs +96 -0
  272. package/skills/abelien-harness/runtime/testing/index.mjs +123 -0
  273. package/skills/abelien-harness/runtime/testing/scenarios.mjs +343 -0
  274. package/skills/abelien-harness/runtime/workflow/flows.mjs +38 -0
  275. package/skills/abelien-harness/runtime/workflow/httl.mjs +77 -0
  276. package/skills/abelien-harness/runtime/workflow/index.mjs +168 -0
  277. package/skills/abelien-harness/runtime/workflow/legacy-flow.mjs +156 -0
  278. package/skills/abelien-harness/runtime/workflow/view.mjs +66 -0
  279. package/skills/abelien-harness/scripts/ab.mjs +45 -589
  280. package/skills/abelien-harness/scripts/action-cli.mjs +54 -0
  281. package/skills/abelien-harness/scripts/action-docs.mjs +293 -0
  282. package/skills/abelien-harness/scripts/action-registry.mjs +423 -0
  283. package/skills/abelien-harness/scripts/receipt.mjs +5 -1
  284. package/skills/abelien-harness/scripts/store.mjs +212 -0
  285. package/skills/abelien-harness/scripts/studio.mjs +1 -1
  286. package/skills/abelien-harness/scripts/template.mjs +22 -0
  287. package/skills/abelien-harness/scripts/web/pdf-reader.mjs +105 -0
  288. package/skills/abelien-harness/scripts/web/vision.mjs +85 -0
  289. package/skills/abelien-reference/SKILL.md +1 -1
  290. package/skills/abelien-reference/actions/reference.finalize.json +48 -0
  291. package/skills/abelien-reference/actions/reference.page.json +28 -0
  292. package/skills/abelien-reference/actions/reference.research.json +68 -0
  293. package/skills/abelien-reference/bindings.json +78 -0
  294. package/skills/abelien-reference/contract/host-tools.generated.json +2386 -0
  295. package/skills/abelien-reference/domain.json +7 -2
  296. package/skills/abelien-reference/references/actions.generated.md +295 -0
  297. package/skills/abelien-reference/references/research-contract.md +4 -34
  298. package/skills/abelien-reference/schemas/finalize-input.v1.json +16 -0
  299. package/skills/abelien-reference/schemas/host-tools.v1.json +31 -0
  300. package/skills/abelien-reference/schemas/research-input.v1.json +142 -0
  301. package/skills/abelien-structure/SKILL.md +5 -0
  302. package/skills/abelien-structure/domain.json +95 -0
  303. package/skills/abelien-structure/references/skeleton.md +54 -0
  304. package/skills/abelien-structure/references/structure-reasonableness.md +3 -3
  305. package/skills/abelien-structure/schemas/layout-check-input.v1.json +13 -0
  306. package/skills/abelien-structure/schemas/layout-check-result.v1.json +57 -0
  307. package/skills/abelien-structure/schemas/layout-proposal.v1.json +61 -0
  308. package/skills/abelien-structure/schemas/layout-request-input.v1.json +79 -0
  309. package/skills/abelien-structure/schemas/layout-request.v1.json +105 -0
  310. package/skills/abelien-structure/schemas/skeleton.v1.json +183 -0
  311. package/skills/abelien-structure/schemas/swap-candidates-input.v1.json +50 -0
  312. package/skills/abelien-structure/schemas/swap-candidates-result.v1.json +46 -0
  313. package/skills/abelien-structure/scripts/geometry.mjs +141 -0
  314. package/skills/abelien-structure/scripts/layout.mjs +518 -0
  315. package/skills/abelien-structure/scripts/schemas.mjs +28 -0
  316. package/skills/abelien-structure/scripts/swap.mjs +79 -0
  317. package/skills/abelien-workspace/SKILL.md +2 -1
  318. package/skills/abelien-workspace/actions/cad.build.json +29 -0
  319. package/skills/abelien-workspace/actions/component.search.json +27 -0
  320. package/skills/abelien-workspace/actions/image.generate.json +29 -0
  321. package/skills/abelien-workspace/actions/image.import.json +30 -0
  322. package/skills/abelien-workspace/actions/question.card.json +26 -0
  323. package/skills/abelien-workspace/actions/studio.prepare.json +28 -0
  324. package/skills/abelien-workspace/actions/visual.review.json +31 -0
  325. package/skills/abelien-workspace/actions/workspace.journey-next.json +30 -0
  326. package/skills/abelien-workspace/actions/workspace.lanes-next.json +30 -0
  327. package/skills/abelien-workspace/assets/journey-stage-plan.json +20 -20
  328. package/skills/abelien-workspace/bindings.json +187 -0
  329. package/skills/abelien-workspace/contract/host-tools.generated.json +901 -0
  330. package/skills/abelien-workspace/domain.json +17 -2
  331. package/skills/abelien-workspace/references/actions.generated.md +361 -0
  332. package/skills/abelien-workspace/references/journey-stage-plan.md +14 -14
  333. package/skills/abelien-workspace/schemas/host-tools.v1.json +173 -0
  334. package/skills/abelien-workspace/schemas/journey-next-input.v1.json +55 -0
  335. package/skills/abelien-workspace/schemas/journey-next-result.v1.json +100 -0
  336. package/skills/abelien-workspace/schemas/lanes-next-input.v1.json +37 -0
  337. package/skills/abelien-workspace/schemas/lanes-next-result.v1.json +54 -0
  338. package/skills/abelien-workspace/schemas/plan-common.v1.json +34 -0
package/.env.example CHANGED
@@ -41,6 +41,15 @@ ABELIEN_SOURCE_REGISTRY_TIMEOUT_MS=30000
41
41
  # ... or an absolute local directory for tests, offline runs and a single local host.
42
42
  ABELIEN_SOURCE_REGISTRY_DIR=
43
43
 
44
+ # PDF reading for the web fallback (registry mode): the host installs mupdf.js separately (npm "mupdf") and points
45
+ # at its dist/mupdf.js; drawing pages are read by an Ark vision endpoint (deepseek-v4-1-flash). Leave empty to
46
+ # still fetch and register PDFs, with unreadable parts recorded as unavailable.
47
+ ABELIEN_PDF_ENGINE_MODULE=
48
+ ABELIEN_SOURCE_VISION_ENDPOINT_ID=
49
+ ABELIEN_SOURCE_VISION_API_KEY=
50
+ ABELIEN_SOURCE_VISION_TIMEOUT_MS=60000
51
+ ABELIEN_SOURCE_VISION_CONCURRENCY=4
52
+
44
53
  # Optional loopback HTTP wrapper only; main hardware.select executes locally without a URL.
45
54
  # At least 32 bytes, keep the real token in a private env file. Do not expose this server publicly.
46
55
  ABELIEN_HARDWARE_SELECT_TOKEN=
package/README.md CHANGED
@@ -12,8 +12,8 @@ npx 可安装的多 agent skill harness:**通用内核 + 可插拔域包**。
12
12
  [abelien-guide](skills/abelien-guide/SKILL.md)(对话调度与沟通)· [abelien-clarify](skills/abelien-clarify/SKILL.md)(需求澄清只读快照)。
13
13
  领域层:[abelien-hardware](skills/abelien-hardware/SKILL.md)(三级分类、OSS 召回、联网补位、本地选型与修订)·
14
14
  [abelien-algorithm](skills/abelien-algorithm/SKILL.md)(基于已验证硬件、官方资料优先的联网算法选型)·
15
- [abelien-appearance](skills/abelien-appearance/SKILL.md) 与 [abelien-structure](skills/abelien-structure/SKILL.md)(外观与机械结构)·
16
- 宿主包:[abelien-structure-worker](skills/abelien-structure-worker/SKILL.md)(Structure Worker 与 `structure.*` 宿主专用能力)·
15
+ [abelien-appearance](skills/abelien-appearance/SKILL.md) 与 [abelien-structure](skills/abelien-structure/SKILL.md)(外观与机械结构;读图出点位、骨架布局与换件条件的确定性动作)·
16
+ 宿主包:[abelien-structure-worker](skills/abelien-structure-worker/SKILL.md)(Structure Worker 与 14 个 `structure.*` 宿主专用能力)·
17
17
  [abelien-3dgen](skills/abelien-3dgen/SKILL.md)(四家 provider 的 3D 构件生成,经 `ab generate 3d` 与宿主 `mesh.generate` 使用)。
18
18
 
19
19
  ## Quickstart
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abelien-harness",
3
- "version": "0.14.0",
3
+ "version": "1.0.0",
4
4
  "description": "npx-installable multi-agent skill harness: generic kernel + pluggable domain packs",
5
5
  "type": "module",
6
6
  "engines": {
@@ -21,6 +21,7 @@
21
21
  "test": "node --test",
22
22
  "eval": "node eval/run.mjs",
23
23
  "render:journey-plan": "node tools/render-journey-plan.mjs",
24
+ "render:actions": "node tools/render-actions.mjs",
24
25
  "prepare": "node scripts/install-hooks.mjs",
25
26
  "branch:new": "node scripts/new-branch.mjs",
26
27
  "sync": "node scripts/sync.mjs",
@@ -29,6 +29,7 @@ metadata:
29
29
  4. 绑定:`algorithm.research`(`purpose=hardware`,查询带 `component_id`)→ `algorithm.finalize`(`operation=bind`,`research` 格式见 [algorithm-bindings.v1](schemas/algorithm-bindings.v1.json))。来源只写 `research_id` 与 `page_id`,回执由 Harness 从自己存下的正文填写。
30
30
  5. 宿主在每个阶段开跑前用只读的 `algorithm.lane-state` 查当前需求有没有已提议的候选、候选有没有绑定到当前硬件,映射成 `workspace.lanes-next` 的 artifacts。
31
31
  6. 已有的 `user-journey-algorithm` workflow(先有 verified 硬件再研究)保持可用,供不走车道的宿主使用。
32
+ 7. 各动作的参数、取值范围与错误码见[动作参数与错误手册](references/actions.generated.md)(由动作定义生成,以它为准)。
32
33
 
33
34
  ## 核心边界
34
35
 
@@ -0,0 +1,43 @@
1
+ {
2
+ "action_id": "algorithm.candidates",
3
+ "contract_version": 1,
4
+ "description": "核验 Agent 基于 implementation 研究为每个 reaction 提出的候选实现:引用须逐字出现在本次研究存下的正文,候选只能引用为自己 reaction 检索的页面,库内算法须来自研究输入的库清单;每个 reaction 要么有候选、要么写明未解决原因;保存为 status=proposed,不依赖硬件",
5
+ "audience": "agent",
6
+ "input_schema": "schemas/candidates-input.v1.json",
7
+ "output_schema": "schemas/candidates-result.v1.json",
8
+ "permissions": [
9
+ "algorithm.candidates",
10
+ "artifact.read",
11
+ "artifact.write"
12
+ ],
13
+ "effects": [
14
+ "data.read",
15
+ "artifact.write"
16
+ ],
17
+ "determinism": "deterministic",
18
+ "cache_policy": {
19
+ "mode": "disabled",
20
+ "allow_bypass": true
21
+ },
22
+ "errors": {
23
+ "VALIDATION": {
24
+ "category": "source",
25
+ "description": "research_id 不是 collected 的 implementation 研究、引用不在本次研究存下的正文、候选引用了别的 reaction 的页面、库内算法不在研究的库清单,或有 reaction 既没有候选也没有写明未解决原因",
26
+ "recovery": "correct_input"
27
+ },
28
+ "ALGORITHM_HOST": {
29
+ "category": "config",
30
+ "description": "宿主没有提供可信的资源读取、内容读写或资源列举端口",
31
+ "recovery": "await_configuration"
32
+ }
33
+ },
34
+ "result_checks": [
35
+ {
36
+ "kind": "output_schema"
37
+ },
38
+ {
39
+ "kind": "ref_integrity"
40
+ }
41
+ ],
42
+ "completion": "validated_result"
43
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "action_id": "algorithm.finalize",
3
+ "contract_version": 1,
4
+ "description": "把 Agent 基于硬件型号和官方联网证据做出的算法绑定归一化为版本化选型资源;operation=bind 时候选取自 algorithm.candidates,来源回执从 Harness 自己存下的研究正文解析,硬件基线尚未 verified 时结果固定为 needs_confirmation",
5
+ "audience": "agent",
6
+ "input_schema": "schemas/finalize-input.v1.json",
7
+ "output_schema": "schemas/finalize-result.v1.json",
8
+ "permissions": [
9
+ "algorithm.finalize",
10
+ "artifact.read",
11
+ "artifact.write"
12
+ ],
13
+ "effects": [
14
+ "data.read",
15
+ "artifact.write"
16
+ ],
17
+ "determinism": "deterministic",
18
+ "cache_policy": {
19
+ "mode": "disabled",
20
+ "allow_bypass": true
21
+ },
22
+ "errors": {
23
+ "VALIDATION": {
24
+ "category": "source",
25
+ "description": "operation 不对、硬件基线缺失或修订过期(select 还要求 verified)、reaction 不完整或没覆盖全部需求、来源不是一手资料或没有可核对的回执、绑定没选该 reaction 已提议的候选",
26
+ "recovery": "correct_input"
27
+ }
28
+ },
29
+ "result_checks": [
30
+ {
31
+ "kind": "output_schema"
32
+ },
33
+ {
34
+ "kind": "ref_integrity"
35
+ }
36
+ ],
37
+ "completion": "validated_result"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "action_id": "algorithm.lane-state",
3
+ "contract_version": 1,
4
+ "description": "只读:按本草稿已存的资源回答当前需求有没有已提议的候选(落点、reaction、limits 与研究时一致),以及这些候选有没有绑定到给定的硬件选型 id 与 revision;宿主把结果映射成 workspace.lanes-next 的 artifacts",
5
+ "audience": "agent",
6
+ "input_schema": "schemas/lane-state-input.v1.json",
7
+ "output_schema": "schemas/lane-state-result.v1.json",
8
+ "permissions": [
9
+ "algorithm.lane-state",
10
+ "artifact.read"
11
+ ],
12
+ "effects": [
13
+ "data.read"
14
+ ],
15
+ "determinism": "deterministic",
16
+ "cache_policy": {
17
+ "mode": "disabled",
18
+ "allow_bypass": true
19
+ },
20
+ "errors": {
21
+ "VALIDATION": {
22
+ "category": "source",
23
+ "description": "字段不在表内、需求不合规,或硬件选型 ID 与修订不成对",
24
+ "recovery": "correct_input"
25
+ },
26
+ "ALGORITHM_HOST": {
27
+ "category": "config",
28
+ "description": "宿主没有提供可信的资源读取、内容读写或资源列举端口",
29
+ "recovery": "await_configuration"
30
+ }
31
+ },
32
+ "result_checks": [
33
+ {
34
+ "kind": "output_schema"
35
+ }
36
+ ],
37
+ "completion": "validated_result"
38
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "action_id": "algorithm.research",
3
+ "contract_version": 1,
4
+ "description": "执行 Agent 的检索计划并保存证据:purpose=implementation 只凭需求检索实现资料(可与硬件选型并行),purpose=hardware 检索已选型号的厂商资料;Volc 检索(每次最多 5 条)与公开 HTTPS 页面安全直读,正文按 sha256 存证;每条付费检索先存 sent 再发送,重跑复用已完成检索、结果未知时要求对账而不重发;同一请求完成后重复运行直接返回已有结果",
5
+ "audience": "agent",
6
+ "input_schema": "schemas/research-input.v1.json",
7
+ "output_schema": "schemas/research-result.v1.json",
8
+ "permissions": [
9
+ "algorithm.research",
10
+ "artifact.read",
11
+ "artifact.write"
12
+ ],
13
+ "effects": [
14
+ "data.read",
15
+ "network.read",
16
+ "artifact.write",
17
+ "budget.consume"
18
+ ],
19
+ "determinism": "nondeterministic",
20
+ "cache_policy": {
21
+ "mode": "disabled_by_default",
22
+ "allow_bypass": true
23
+ },
24
+ "errors": {
25
+ "VALIDATION": {
26
+ "category": "source",
27
+ "description": "输入不合规:字段不在表内、用途不对、reaction 不是 1–20 条、库清单重复、检索条目不是 1–8 条或指向不存在的 reaction/零件,或 hardware 用途的选型缺失或修订过期",
28
+ "recovery": "correct_input"
29
+ },
30
+ "ALGORITHM_WEB_CONFIG": {
31
+ "category": "config",
32
+ "description": "缺少检索凭据或网络配置非法;在任何请求之前失败",
33
+ "recovery": "await_configuration"
34
+ },
35
+ "ALGORITHM_WEB_CHECKPOINT_REQUIRED": {
36
+ "category": "config",
37
+ "description": "计划里有付费检索,但宿主没有提供检查点;在任何请求之前拒绝",
38
+ "recovery": "await_configuration"
39
+ },
40
+ "ALGORITHM_HOST": {
41
+ "category": "config",
42
+ "description": "宿主没有提供可信的资源读取、内容读写或资源列举端口",
43
+ "recovery": "await_configuration"
44
+ },
45
+ "ALGORITHM_WEB_RECONCILIATION_REQUIRED": {
46
+ "category": "unknown",
47
+ "description": "检查点里有已发送、结果未知的检索,或已存证据与本请求不符;不会自动重发,需对账",
48
+ "recovery": "reconcile"
49
+ },
50
+ "ALGORITHM_WEB_RESPONSE": {
51
+ "category": "unknown",
52
+ "description": "检索服务的回执格式不符;按原检查点对账",
53
+ "recovery": "reconcile"
54
+ },
55
+ "CAPABILITY_CHECKPOINT_CONFLICT": {
56
+ "category": "unknown",
57
+ "description": "内核码:同一请求并发运行时,后写入检查点者失败",
58
+ "recovery": "reconcile"
59
+ }
60
+ },
61
+ "result_checks": [
62
+ {
63
+ "kind": "output_schema"
64
+ },
65
+ {
66
+ "kind": "ref_integrity"
67
+ }
68
+ ],
69
+ "completion": "validated_result"
70
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "schema": "abelien.bindings.v1",
3
+ "description": "本包的缺省部署 profile:全部动作由本包模块实现。",
4
+ "bindings": [
5
+ {
6
+ "action_id": "algorithm.research",
7
+ "transport": "module",
8
+ "location": "local",
9
+ "effects": [],
10
+ "cancel": "unsupported",
11
+ "submission": {
12
+ "idempotent_submit": true,
13
+ "query_by_operation": true,
14
+ "remote_task_identity": "none",
15
+ "not_found_definitive": false
16
+ }
17
+ },
18
+ {
19
+ "action_id": "algorithm.candidates",
20
+ "transport": "module",
21
+ "location": "local",
22
+ "effects": [],
23
+ "cancel": "unsupported",
24
+ "submission": {
25
+ "idempotent_submit": true,
26
+ "query_by_operation": false,
27
+ "remote_task_identity": "none",
28
+ "not_found_definitive": true
29
+ }
30
+ },
31
+ {
32
+ "action_id": "algorithm.lane-state",
33
+ "transport": "module",
34
+ "location": "local",
35
+ "effects": [],
36
+ "cancel": "unsupported",
37
+ "submission": {
38
+ "idempotent_submit": true,
39
+ "query_by_operation": false,
40
+ "remote_task_identity": "none",
41
+ "not_found_definitive": true
42
+ }
43
+ },
44
+ {
45
+ "action_id": "algorithm.finalize",
46
+ "transport": "module",
47
+ "location": "local",
48
+ "effects": [],
49
+ "cancel": "unsupported",
50
+ "submission": {
51
+ "idempotent_submit": true,
52
+ "query_by_operation": false,
53
+ "remote_task_identity": "none",
54
+ "not_found_definitive": true
55
+ }
56
+ }
57
+ ]
58
+ }