abelien-harness 0.3.0 → 0.4.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 (45) hide show
  1. package/README.md +9 -3
  2. package/package.json +1 -1
  3. package/skills/abelien-3dgen/SKILL.md +4 -2
  4. package/skills/abelien-3dgen/providers/tripo.json +64 -1
  5. package/skills/abelien-3dgen/references/engineering-lowpoly-qualification.md +20 -0
  6. package/skills/abelien-3dgen/references/host-api.md +128 -0
  7. package/skills/abelien-3dgen/references/provider-profile.md +4 -0
  8. package/skills/abelien-appearance/SKILL.md +2 -0
  9. package/skills/abelien-appearance/references/local-component-edit.md +31 -0
  10. package/skills/abelien-clarify/SKILL.md +8 -3
  11. package/skills/abelien-clarify/references/examples.md +9 -0
  12. package/skills/abelien-clarify/scripts/check_result.py +53 -1
  13. package/skills/abelien-clarify/scripts/test_check_result.py +40 -0
  14. package/skills/abelien-guide/SKILL.md +2 -0
  15. package/skills/abelien-guide/references/shared-response-rules.md +2 -2
  16. package/skills/abelien-hardware/SKILL.md +5 -0
  17. package/skills/abelien-hardware/domain.json +2 -2
  18. package/skills/abelien-hardware/references/search-index-format.md +31 -2
  19. package/skills/abelien-hardware/references/search-index-release.md +9 -0
  20. package/skills/abelien-hardware/references/selection-service-contract.md +3 -0
  21. package/skills/abelien-hardware/scripts/build-search-index.mjs +50 -6
  22. package/skills/abelien-hardware/scripts/dimensions.mjs +184 -0
  23. package/skills/abelien-hardware/scripts/finalize-selection.mjs +11 -0
  24. package/skills/abelien-hardware/scripts/publish-search-index.mjs +2 -1
  25. package/skills/abelien-hardware/scripts/search-index-release.mjs +15 -2
  26. package/skills/abelien-hardware/scripts/tos-wiki-search.mjs +38 -20
  27. package/skills/abelien-hardware-selection/domain.json +2 -2
  28. package/skills/abelien-hardware-selection/references/selection-service-contract.md +12 -1
  29. package/skills/abelien-hardware-selection/scripts/select.mjs +9 -0
  30. package/skills/abelien-harness/references/workflow-spec.md +15 -2
  31. package/skills/abelien-harness/scripts/generate3d-host.mjs +398 -0
  32. package/skills/abelien-harness/scripts/generate3d.mjs +54 -15
  33. package/skills/abelien-harness/scripts/receipt.mjs +8 -2
  34. package/skills/abelien-harness/scripts/studio.mjs +18 -10
  35. package/skills/abelien-structure/SKILL.md +3 -1
  36. package/skills/abelien-structure/references/build123d-execution.md +1 -1
  37. package/skills/abelien-structure/scripts/run_stage.py +8 -1
  38. package/skills/abelien-workspace/SKILL.md +2 -0
  39. package/skills/abelien-workspace/domain.json +1 -1
  40. package/skills/abelien-workspace/workflows/definitions/a6e8254e1839d94530ae243cba779e423953b7169cbce338f0503d748d44800b.json +175 -0
  41. package/skills/abelien-workspace/workflows/definitions/b37f3b47e1e8bd1208859de57456152b149416e21949297b22bba937c51a5670.json +149 -0
  42. package/skills/abelien-workspace/workflows/definitions/b780bf280d61596b43eb6dbc6a417cf8df1ec9a7ae79a6de10f048da9ed58729.json +229 -0
  43. package/skills/abelien-workspace/workflows/user-journey-hardware-algorithm.json +1 -1
  44. package/skills/abelien-workspace/workflows/user-journey-hardware-candidates.json +1 -1
  45. package/skills/abelien-workspace/workflows/user-journey-hardware.json +1 -1
@@ -105,7 +105,7 @@
105
105
  {
106
106
  "id": "select-hardware-from-wikis",
107
107
  "executor": "agent",
108
- "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. 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.",
108
+ "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; unknown/risk stays needs_confirmation when an envelope is active. 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.",
109
109
  "replySchema": {
110
110
  "status": "proposed|needs_confirmation",
111
111
  "plan_mode": "adapt_system|assemble_new",
@@ -106,7 +106,7 @@
106
106
  {
107
107
  "id": "select-hardware-from-wikis",
108
108
  "executor": "agent",
109
- "instruction": "先读 abelien-hardware-selection/references/selection-service-contract.md 与真实候选的完整 Wiki。每槽位选择一个真实 component_id,显式 quantity 等于槽位 quantity;manufacturer/model 取候选,selection_reason 非空,wiki_evidence 为至少 8 字符的 Wiki 原文引用数组。selected_models 每项需 constraint_checks,覆盖 function、slot:<hard_constraints 的键>、limit:<每项 hard limit.id>;每项包含 constraint_id、status=verified|unknown|incompatible、reason、evidence:[{component_id,quote}]。多型号另给 compatibility_checks,逐 power/interfaces/mechanical/thermal/software 维度包含 status、reason、每个型号的原文 evidence。证据不足填 unknown,不可编造。status=verified|needs_confirmation,plan_mode=assemble_new|adapt_system,其余数组 selected_models/coverage_ledger/remaining_slots/unknowns/replacement_plan 必填。先比较整机,但整机继承缺 manifest 必须待确认,不凭文案抵扣数量。verified 只表示 Wiki 证据判断通过,不是独立工程兼容求解或实测,不代表采用。 Read only merge-hardware-web candidates for the final choice. 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.",
109
+ "instruction": "先读 abelien-hardware-selection/references/selection-service-contract.md 与真实候选的完整 Wiki。每槽位选择一个真实 component_id,显式 quantity 等于槽位 quantity;manufacturer/model 取候选,selection_reason 非空,wiki_evidence 为至少 8 字符的 Wiki 原文引用数组。selected_models 每项需 constraint_checks,覆盖 function、slot:<hard_constraints 的键>、limit:<每项 hard limit.id>;每项包含 constraint_id、status=verified|unknown|incompatible、reason、evidence:[{component_id,quote}]。多型号另给 compatibility_checks,逐 power/interfaces/mechanical/thermal/software 维度包含 status、reason、每个型号的原文 evidence。证据不足填 unknown,不可编造。status=verified|needs_confirmation,plan_mode=assemble_new|adapt_system,其余数组 selected_models/coverage_ledger/remaining_slots/unknowns/replacement_plan 必填。先比较整机,但整机继承缺 manifest 必须待确认,不凭文案抵扣数量。verified 只表示 Wiki 证据判断通过,不是独立工程兼容求解或实测,不代表采用。 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; unknown/risk stays needs_confirmation when an envelope is active. 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.",
110
110
  "replySchema": {
111
111
  "status": "verified|needs_confirmation",
112
112
  "plan_mode": "adapt_system|assemble_new",