abelien-harness 0.20.0 → 0.22.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.
- package/package.json +1 -1
- package/skills/abelien-appearance/references/points.md +7 -3
- package/skills/abelien-appearance/schemas/points-reading-reply.v1.json +2 -2
- package/skills/abelien-appearance/scripts/points.mjs +46 -4
- package/skills/abelien-appearance/scripts/spatial-images.mjs +16 -0
- package/skills/abelien-hardware/domain.json +33 -1
- package/skills/abelien-hardware/references/selection-service-contract.md +2 -0
- package/skills/abelien-harness/runtime/README.md +3 -0
- package/skills/abelien-harness/runtime/actions.mjs +8 -2
- package/skills/abelien-harness/runtime/engine.mjs +52 -8
- package/skills/abelien-harness/runtime/graph.mjs +4 -2
- package/skills/abelien-harness/runtime/index.mjs +2 -0
- package/skills/abelien-harness/runtime/model-actions.md +17 -0
- package/skills/abelien-harness/runtime/task-view/README.md +7 -2
- package/skills/abelien-harness/runtime/task-view/index.mjs +10 -4
- package/skills/abelien-harness/runtime/task-view/retention.mjs +39 -0
- package/skills/abelien-harness/scripts/ab.mjs +1 -1
- package/skills/abelien-structure/domain.json +1 -0
- package/skills/abelien-structure/flows/user-journey-cad.json +34 -2
- package/skills/abelien-structure/references/skeleton.md +1 -0
- package/skills/abelien-structure/scripts/cad.mjs +5 -4
- package/skills/abelien-workspace/actions/image.generate.json +2 -2
- package/skills/abelien-workspace/actions/step.tool-result.json +1 -1
- package/skills/abelien-workspace/assets/journey-stage-plan.json +465 -4
- package/skills/abelien-workspace/assets/lane-plan.json +2 -2
- package/skills/abelien-workspace/contract/host-tools.generated.json +463 -16
- package/skills/abelien-workspace/flows/creation.create.json +855 -152
- package/skills/abelien-workspace/flows/creation.modify.json +855 -152
- package/skills/abelien-workspace/flows/creation.remix.json +189 -2
- package/skills/abelien-workspace/flows/creation.restore.json +443 -6
- package/skills/abelien-workspace/references/actions/image.generate.generated.md +41 -2
- package/skills/abelien-workspace/references/actions/step.tool-result.generated.md +23 -3
- package/skills/abelien-workspace/references/actions.generated.md +1 -1
- package/skills/abelien-workspace/references/journey-stage-plan.md +35 -2
- package/skills/abelien-workspace/schemas/appearance-views.v1.json +208 -0
- package/skills/abelien-workspace/schemas/host-tools.v1.json +131 -5
- package/skills/abelien-workspace/schemas/image-task.v1.json +92 -0
- package/skills/abelien-workspace/schemas/plan-common.v1.json +3 -1
- package/skills/abelien-workspace/scripts/appearance-views.mjs +49 -0
- package/skills/abelien-workspace/scripts/creation-tasks.mjs +20 -10
- package/skills/abelien-workspace/scripts/flow-compile.mjs +3 -1
|
@@ -519,13 +519,165 @@
|
|
|
519
519
|
},
|
|
520
520
|
{
|
|
521
521
|
"action_id": "image.generate",
|
|
522
|
-
"contract_version":
|
|
523
|
-
"definition_digest": "
|
|
522
|
+
"contract_version": 2,
|
|
523
|
+
"definition_digest": "d3dab05bac6e752a1ab4d03329b52e38e227214f33086a44df849b0d52fb02c1",
|
|
524
524
|
"audience": "agent",
|
|
525
525
|
"description": "生成概念图:等待已结算回执并冻结外观参考;可能收费,未知或在途的调用只按原身份恢复",
|
|
526
526
|
"input_schema": {
|
|
527
|
+
"title": "image-task.v1",
|
|
527
528
|
"type": "object",
|
|
528
|
-
"
|
|
529
|
+
"required": [
|
|
530
|
+
"schema",
|
|
531
|
+
"purpose",
|
|
532
|
+
"requirements_ref",
|
|
533
|
+
"source_images",
|
|
534
|
+
"confirmation_ref",
|
|
535
|
+
"view_specs",
|
|
536
|
+
"output_role"
|
|
537
|
+
],
|
|
538
|
+
"properties": {
|
|
539
|
+
"schema": {
|
|
540
|
+
"const": "image.task.v1"
|
|
541
|
+
},
|
|
542
|
+
"purpose": {
|
|
543
|
+
"enum": [
|
|
544
|
+
"concept",
|
|
545
|
+
"spatial_views"
|
|
546
|
+
]
|
|
547
|
+
},
|
|
548
|
+
"requirements_ref": {
|
|
549
|
+
"description": "不可变对象引用:id 固定一条谱系,version 固定其中一个版本,digest 是该版本内容的摘要。设计里写的 ref@version 指的就是这个对象;摘要用来区分同版本号下内容不同的对象(例如同一需求修订下重画的图)。",
|
|
550
|
+
"type": "object",
|
|
551
|
+
"required": [
|
|
552
|
+
"id",
|
|
553
|
+
"version",
|
|
554
|
+
"digest"
|
|
555
|
+
],
|
|
556
|
+
"properties": {
|
|
557
|
+
"id": {
|
|
558
|
+
"description": "稳定标识符:字母或数字开头,可含 _ . : -,最长 128。与硬件选型、Studio 回执现有的标识符规则相同;不含 @(@ 留给 id@version 的写法)。",
|
|
559
|
+
"type": "string",
|
|
560
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
|
|
561
|
+
},
|
|
562
|
+
"version": {
|
|
563
|
+
"description": "对象版本号,按字符串比较相等,不比较大小(例如 \"7\"、\"r-1a2b3c4d5e6f\")。",
|
|
564
|
+
"type": "string",
|
|
565
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$"
|
|
566
|
+
},
|
|
567
|
+
"digest": {
|
|
568
|
+
"description": "sha256 小写十六进制(64 位,不带 sha256: 前缀)。对 JSON 值一律取 harness scripts/web/common.mjs 的 digest(),即对 canonical()(键排序、无空白)后的字节求 sha256。",
|
|
569
|
+
"type": "string",
|
|
570
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
571
|
+
}
|
|
572
|
+
},
|
|
573
|
+
"additionalProperties": false
|
|
574
|
+
},
|
|
575
|
+
"source_images": {
|
|
576
|
+
"type": "array",
|
|
577
|
+
"maxItems": 8,
|
|
578
|
+
"items": {
|
|
579
|
+
"description": "不可变对象引用:id 固定一条谱系,version 固定其中一个版本,digest 是该版本内容的摘要。设计里写的 ref@version 指的就是这个对象;摘要用来区分同版本号下内容不同的对象(例如同一需求修订下重画的图)。",
|
|
580
|
+
"type": "object",
|
|
581
|
+
"required": [
|
|
582
|
+
"id",
|
|
583
|
+
"version",
|
|
584
|
+
"digest"
|
|
585
|
+
],
|
|
586
|
+
"properties": {
|
|
587
|
+
"id": {
|
|
588
|
+
"description": "稳定标识符:字母或数字开头,可含 _ . : -,最长 128。与硬件选型、Studio 回执现有的标识符规则相同;不含 @(@ 留给 id@version 的写法)。",
|
|
589
|
+
"type": "string",
|
|
590
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
|
|
591
|
+
},
|
|
592
|
+
"version": {
|
|
593
|
+
"description": "对象版本号,按字符串比较相等,不比较大小(例如 \"7\"、\"r-1a2b3c4d5e6f\")。",
|
|
594
|
+
"type": "string",
|
|
595
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$"
|
|
596
|
+
},
|
|
597
|
+
"digest": {
|
|
598
|
+
"description": "sha256 小写十六进制(64 位,不带 sha256: 前缀)。对 JSON 值一律取 harness scripts/web/common.mjs 的 digest(),即对 canonical()(键排序、无空白)后的字节求 sha256。",
|
|
599
|
+
"type": "string",
|
|
600
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
601
|
+
}
|
|
602
|
+
},
|
|
603
|
+
"additionalProperties": false
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
"confirmation_ref": {
|
|
607
|
+
"oneOf": [
|
|
608
|
+
{
|
|
609
|
+
"type": "null"
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
"description": "不可变对象引用:id 固定一条谱系,version 固定其中一个版本,digest 是该版本内容的摘要。设计里写的 ref@version 指的就是这个对象;摘要用来区分同版本号下内容不同的对象(例如同一需求修订下重画的图)。",
|
|
613
|
+
"type": "object",
|
|
614
|
+
"required": [
|
|
615
|
+
"id",
|
|
616
|
+
"version",
|
|
617
|
+
"digest"
|
|
618
|
+
],
|
|
619
|
+
"properties": {
|
|
620
|
+
"id": {
|
|
621
|
+
"description": "稳定标识符:字母或数字开头,可含 _ . : -,最长 128。与硬件选型、Studio 回执现有的标识符规则相同;不含 @(@ 留给 id@version 的写法)。",
|
|
622
|
+
"type": "string",
|
|
623
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
|
|
624
|
+
},
|
|
625
|
+
"version": {
|
|
626
|
+
"description": "对象版本号,按字符串比较相等,不比较大小(例如 \"7\"、\"r-1a2b3c4d5e6f\")。",
|
|
627
|
+
"type": "string",
|
|
628
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$"
|
|
629
|
+
},
|
|
630
|
+
"digest": {
|
|
631
|
+
"description": "sha256 小写十六进制(64 位,不带 sha256: 前缀)。对 JSON 值一律取 harness scripts/web/common.mjs 的 digest(),即对 canonical()(键排序、无空白)后的字节求 sha256。",
|
|
632
|
+
"type": "string",
|
|
633
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
634
|
+
}
|
|
635
|
+
},
|
|
636
|
+
"additionalProperties": false
|
|
637
|
+
}
|
|
638
|
+
]
|
|
639
|
+
},
|
|
640
|
+
"view_specs": {
|
|
641
|
+
"type": "array",
|
|
642
|
+
"maxItems": 7,
|
|
643
|
+
"items": {
|
|
644
|
+
"type": "object",
|
|
645
|
+
"required": [
|
|
646
|
+
"view_id",
|
|
647
|
+
"orientation",
|
|
648
|
+
"purpose"
|
|
649
|
+
],
|
|
650
|
+
"properties": {
|
|
651
|
+
"view_id": {
|
|
652
|
+
"type": "string",
|
|
653
|
+
"minLength": 1
|
|
654
|
+
},
|
|
655
|
+
"orientation": {
|
|
656
|
+
"enum": [
|
|
657
|
+
"front",
|
|
658
|
+
"back",
|
|
659
|
+
"left",
|
|
660
|
+
"right",
|
|
661
|
+
"top",
|
|
662
|
+
"bottom",
|
|
663
|
+
"custom"
|
|
664
|
+
]
|
|
665
|
+
},
|
|
666
|
+
"purpose": {
|
|
667
|
+
"type": "string",
|
|
668
|
+
"minLength": 1
|
|
669
|
+
}
|
|
670
|
+
},
|
|
671
|
+
"additionalProperties": false
|
|
672
|
+
}
|
|
673
|
+
},
|
|
674
|
+
"output_role": {
|
|
675
|
+
"enum": [
|
|
676
|
+
"user_concept",
|
|
677
|
+
"internal_spatial_reference"
|
|
678
|
+
]
|
|
679
|
+
}
|
|
680
|
+
},
|
|
529
681
|
"additionalProperties": false
|
|
530
682
|
},
|
|
531
683
|
"output_schema": {
|
|
@@ -960,15 +1112,15 @@
|
|
|
960
1112
|
{
|
|
961
1113
|
"action_id": "step.tool-result",
|
|
962
1114
|
"contract_version": 1,
|
|
963
|
-
"definition_digest": "
|
|
1115
|
+
"definition_digest": "b097fa2dc29e766e86e718194ed52cdf0d9b92c0fd2e7a7beb76bddcf9013178",
|
|
964
1116
|
"audience": "agent",
|
|
965
|
-
"description": "按 result_id
|
|
1117
|
+
"description": "按 result_id 回读本模型步骤此前的原工具结果(同一执行实例、同一任务视图)。无 pointer 时保留原全文字符分页与 sha256 校验;pointer 模式须同时提供原全文 sha256 和选中值 value_sha256,回读原值 canonical JSON 的 UTF-16 分页,不重跑原工具。读取字节再次计入本步骤预算,不回 already_read。",
|
|
966
1118
|
"input_schema": {
|
|
967
1119
|
"type": "object",
|
|
968
1120
|
"required": [
|
|
969
1121
|
"result_id"
|
|
970
1122
|
],
|
|
971
|
-
"description": "
|
|
1123
|
+
"description": "本模型步骤的原工具结果回读。无 pointer 时保持原全文 UTF-16 分页;可选 sha256 校验原工具消息 UTF-8 全文。指定 pointer(RFC 6901,空串为根)时必须同时给 sha256 与 value_sha256:前者绑定原全文,后者绑定选中原值的 canonical JSON UTF-8 摘要;分页针对该 canonical JSON,不重新执行工具、不跨执行实例或视图。",
|
|
972
1124
|
"properties": {
|
|
973
1125
|
"result_id": {
|
|
974
1126
|
"type": "string",
|
|
@@ -985,17 +1137,38 @@
|
|
|
985
1137
|
},
|
|
986
1138
|
"sha256": {
|
|
987
1139
|
"type": "string",
|
|
988
|
-
"pattern": "^[0-9a-f]{64}$"
|
|
1140
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
1141
|
+
"description": "原工具消息完整原文的 UTF-8 SHA-256;pointer 模式必填。"
|
|
1142
|
+
},
|
|
1143
|
+
"pointer": {
|
|
1144
|
+
"type": "string",
|
|
1145
|
+
"pattern": "^(?:/(?:[^~/]|~[01])*)*$(?![\\s\\S])",
|
|
1146
|
+
"description": "严格 RFC 6901 JSON Pointer;空串选根,~0/~1 分别表示 ~ 与 /。仅选择已归档原 JSON 值。"
|
|
1147
|
+
},
|
|
1148
|
+
"value_sha256": {
|
|
1149
|
+
"type": "string",
|
|
1150
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
1151
|
+
"description": "选中值 canonical JSON 的 UTF-8 SHA-256;不是原工具全文摘要,也不是本页摘要。"
|
|
989
1152
|
}
|
|
990
1153
|
},
|
|
991
|
-
"additionalProperties": false
|
|
1154
|
+
"additionalProperties": false,
|
|
1155
|
+
"dependentRequired": {
|
|
1156
|
+
"pointer": [
|
|
1157
|
+
"sha256",
|
|
1158
|
+
"value_sha256"
|
|
1159
|
+
],
|
|
1160
|
+
"value_sha256": [
|
|
1161
|
+
"pointer",
|
|
1162
|
+
"sha256"
|
|
1163
|
+
]
|
|
1164
|
+
}
|
|
992
1165
|
},
|
|
993
1166
|
"output_schema": {
|
|
994
1167
|
"type": "object",
|
|
995
1168
|
"required": [
|
|
996
1169
|
"ok"
|
|
997
1170
|
],
|
|
998
|
-
"description": "
|
|
1171
|
+
"description": "无 pointer 的旧调用原样回原工具消息 UTF-16 分页。pointer 模式回选中值 canonical JSON 的 UTF-16 分页:pointer 回显定位,sha256 与 source_sha256 均为原工具消息全文摘要,value_sha256 为选中值完整 canonical JSON 摘要;bytes/totalCharacters/start/end/content/next 针对选中值序列化文本。原文和摘要由宿主校验,不重跑工具。",
|
|
999
1172
|
"properties": {
|
|
1000
1173
|
"ok": {
|
|
1001
1174
|
"type": "boolean"
|
|
@@ -1041,8 +1214,110 @@
|
|
|
1041
1214
|
},
|
|
1042
1215
|
"error": {
|
|
1043
1216
|
"type": "object"
|
|
1217
|
+
},
|
|
1218
|
+
"pointer": {
|
|
1219
|
+
"type": "string",
|
|
1220
|
+
"pattern": "^(?:/(?:[^~/]|~[01])*)*$(?![\\s\\S])",
|
|
1221
|
+
"description": "严格 RFC 6901 JSON Pointer;空串选根,~0/~1 分别表示 ~ 与 /。仅选择已归档原 JSON 值。"
|
|
1222
|
+
},
|
|
1223
|
+
"source_sha256": {
|
|
1224
|
+
"type": "string",
|
|
1225
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
1226
|
+
"description": "原工具消息完整原文的 UTF-8 SHA-256,与 sha256 相同;仅 pointer 模式返回。"
|
|
1227
|
+
},
|
|
1228
|
+
"value_sha256": {
|
|
1229
|
+
"type": "string",
|
|
1230
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
1231
|
+
"description": "选中值完整 canonical JSON 的 UTF-8 SHA-256;不是分页片段的摘要。"
|
|
1232
|
+
},
|
|
1233
|
+
"archive_references": {
|
|
1234
|
+
"type": "array",
|
|
1235
|
+
"description": "仅 pointer 模式可选:选中原值内已验证旧引用的位置及同 journal 归档目标。content 保持原值,映射不代表跨 scope/step/view 权限。",
|
|
1236
|
+
"items": {
|
|
1237
|
+
"type": "object",
|
|
1238
|
+
"required": [
|
|
1239
|
+
"at",
|
|
1240
|
+
"result_id",
|
|
1241
|
+
"sha256",
|
|
1242
|
+
"pointer",
|
|
1243
|
+
"value_sha256"
|
|
1244
|
+
],
|
|
1245
|
+
"properties": {
|
|
1246
|
+
"at": {
|
|
1247
|
+
"type": "string",
|
|
1248
|
+
"pattern": "^(?:/(?:[^~/]|~[01])*)*$(?![\\s\\S])",
|
|
1249
|
+
"description": "选中值内旧引用 marker 的相对 JSON Pointer;空串表示选中值本身就是 marker。"
|
|
1250
|
+
},
|
|
1251
|
+
"result_id": {
|
|
1252
|
+
"type": "string",
|
|
1253
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
1254
|
+
"description": "同一 journal 中引用目标原结果的身份。"
|
|
1255
|
+
},
|
|
1256
|
+
"sha256": {
|
|
1257
|
+
"type": "string",
|
|
1258
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
1259
|
+
"description": "目标原工具消息完整原文 UTF-8 SHA-256。"
|
|
1260
|
+
},
|
|
1261
|
+
"pointer": {
|
|
1262
|
+
"type": "string",
|
|
1263
|
+
"pattern": "^(?:/(?:[^~/]|~[01])*)*$(?![\\s\\S])",
|
|
1264
|
+
"description": "严格 RFC 6901 JSON Pointer;空串选根,~0/~1 分别表示 ~ 与 /。仅选择已归档原 JSON 值。"
|
|
1265
|
+
},
|
|
1266
|
+
"value_sha256": {
|
|
1267
|
+
"type": "string",
|
|
1268
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
1269
|
+
"description": "目标值 canonical JSON 的 UTF-8 SHA-256。"
|
|
1270
|
+
}
|
|
1271
|
+
},
|
|
1272
|
+
"additionalProperties": false
|
|
1273
|
+
}
|
|
1044
1274
|
}
|
|
1045
|
-
}
|
|
1275
|
+
},
|
|
1276
|
+
"dependentRequired": {
|
|
1277
|
+
"pointer": [
|
|
1278
|
+
"result_id",
|
|
1279
|
+
"action_id",
|
|
1280
|
+
"format",
|
|
1281
|
+
"sha256",
|
|
1282
|
+
"source_sha256",
|
|
1283
|
+
"value_sha256",
|
|
1284
|
+
"bytes",
|
|
1285
|
+
"totalCharacters",
|
|
1286
|
+
"start",
|
|
1287
|
+
"end",
|
|
1288
|
+
"complete",
|
|
1289
|
+
"content",
|
|
1290
|
+
"next"
|
|
1291
|
+
],
|
|
1292
|
+
"source_sha256": [
|
|
1293
|
+
"pointer",
|
|
1294
|
+
"value_sha256"
|
|
1295
|
+
],
|
|
1296
|
+
"value_sha256": [
|
|
1297
|
+
"pointer",
|
|
1298
|
+
"source_sha256"
|
|
1299
|
+
],
|
|
1300
|
+
"archive_references": [
|
|
1301
|
+
"pointer"
|
|
1302
|
+
]
|
|
1303
|
+
},
|
|
1304
|
+
"allOf": [
|
|
1305
|
+
{
|
|
1306
|
+
"if": {
|
|
1307
|
+
"required": [
|
|
1308
|
+
"pointer"
|
|
1309
|
+
]
|
|
1310
|
+
},
|
|
1311
|
+
"then": {
|
|
1312
|
+
"properties": {
|
|
1313
|
+
"sha256": {
|
|
1314
|
+
"type": "string",
|
|
1315
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
]
|
|
1046
1321
|
}
|
|
1047
1322
|
},
|
|
1048
1323
|
{
|
|
@@ -10656,8 +10931,8 @@
|
|
|
10656
10931
|
{
|
|
10657
10932
|
"tool": "harness_image_generate",
|
|
10658
10933
|
"action_id": "image.generate",
|
|
10659
|
-
"contract_version":
|
|
10660
|
-
"definition_digest": "
|
|
10934
|
+
"contract_version": 2,
|
|
10935
|
+
"definition_digest": "d3dab05bac6e752a1ab4d03329b52e38e227214f33086a44df849b0d52fb02c1",
|
|
10661
10936
|
"transport": "studio_tool",
|
|
10662
10937
|
"implementation_id": "web-host.harness_image_generate",
|
|
10663
10938
|
"input_owner": "action",
|
|
@@ -10666,7 +10941,158 @@
|
|
|
10666
10941
|
"required": [],
|
|
10667
10942
|
"input_schema": {
|
|
10668
10943
|
"type": "object",
|
|
10669
|
-
"
|
|
10944
|
+
"required": [
|
|
10945
|
+
"schema",
|
|
10946
|
+
"purpose",
|
|
10947
|
+
"requirements_ref",
|
|
10948
|
+
"source_images",
|
|
10949
|
+
"confirmation_ref",
|
|
10950
|
+
"view_specs",
|
|
10951
|
+
"output_role"
|
|
10952
|
+
],
|
|
10953
|
+
"properties": {
|
|
10954
|
+
"schema": {
|
|
10955
|
+
"const": "image.task.v1"
|
|
10956
|
+
},
|
|
10957
|
+
"purpose": {
|
|
10958
|
+
"enum": [
|
|
10959
|
+
"concept",
|
|
10960
|
+
"spatial_views"
|
|
10961
|
+
]
|
|
10962
|
+
},
|
|
10963
|
+
"requirements_ref": {
|
|
10964
|
+
"description": "不可变对象引用:id 固定一条谱系,version 固定其中一个版本,digest 是该版本内容的摘要。设计里写的 ref@version 指的就是这个对象;摘要用来区分同版本号下内容不同的对象(例如同一需求修订下重画的图)。",
|
|
10965
|
+
"type": "object",
|
|
10966
|
+
"required": [
|
|
10967
|
+
"id",
|
|
10968
|
+
"version",
|
|
10969
|
+
"digest"
|
|
10970
|
+
],
|
|
10971
|
+
"properties": {
|
|
10972
|
+
"id": {
|
|
10973
|
+
"description": "稳定标识符:字母或数字开头,可含 _ . : -,最长 128。与硬件选型、Studio 回执现有的标识符规则相同;不含 @(@ 留给 id@version 的写法)。",
|
|
10974
|
+
"type": "string",
|
|
10975
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
|
|
10976
|
+
},
|
|
10977
|
+
"version": {
|
|
10978
|
+
"description": "对象版本号,按字符串比较相等,不比较大小(例如 \"7\"、\"r-1a2b3c4d5e6f\")。",
|
|
10979
|
+
"type": "string",
|
|
10980
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$"
|
|
10981
|
+
},
|
|
10982
|
+
"digest": {
|
|
10983
|
+
"description": "sha256 小写十六进制(64 位,不带 sha256: 前缀)。对 JSON 值一律取 harness scripts/web/common.mjs 的 digest(),即对 canonical()(键排序、无空白)后的字节求 sha256。",
|
|
10984
|
+
"type": "string",
|
|
10985
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
10986
|
+
}
|
|
10987
|
+
},
|
|
10988
|
+
"additionalProperties": false
|
|
10989
|
+
},
|
|
10990
|
+
"source_images": {
|
|
10991
|
+
"type": "array",
|
|
10992
|
+
"maxItems": 8,
|
|
10993
|
+
"items": {
|
|
10994
|
+
"description": "不可变对象引用:id 固定一条谱系,version 固定其中一个版本,digest 是该版本内容的摘要。设计里写的 ref@version 指的就是这个对象;摘要用来区分同版本号下内容不同的对象(例如同一需求修订下重画的图)。",
|
|
10995
|
+
"type": "object",
|
|
10996
|
+
"required": [
|
|
10997
|
+
"id",
|
|
10998
|
+
"version",
|
|
10999
|
+
"digest"
|
|
11000
|
+
],
|
|
11001
|
+
"properties": {
|
|
11002
|
+
"id": {
|
|
11003
|
+
"description": "稳定标识符:字母或数字开头,可含 _ . : -,最长 128。与硬件选型、Studio 回执现有的标识符规则相同;不含 @(@ 留给 id@version 的写法)。",
|
|
11004
|
+
"type": "string",
|
|
11005
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
|
|
11006
|
+
},
|
|
11007
|
+
"version": {
|
|
11008
|
+
"description": "对象版本号,按字符串比较相等,不比较大小(例如 \"7\"、\"r-1a2b3c4d5e6f\")。",
|
|
11009
|
+
"type": "string",
|
|
11010
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$"
|
|
11011
|
+
},
|
|
11012
|
+
"digest": {
|
|
11013
|
+
"description": "sha256 小写十六进制(64 位,不带 sha256: 前缀)。对 JSON 值一律取 harness scripts/web/common.mjs 的 digest(),即对 canonical()(键排序、无空白)后的字节求 sha256。",
|
|
11014
|
+
"type": "string",
|
|
11015
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
11016
|
+
}
|
|
11017
|
+
},
|
|
11018
|
+
"additionalProperties": false
|
|
11019
|
+
}
|
|
11020
|
+
},
|
|
11021
|
+
"confirmation_ref": {
|
|
11022
|
+
"oneOf": [
|
|
11023
|
+
{
|
|
11024
|
+
"type": "null"
|
|
11025
|
+
},
|
|
11026
|
+
{
|
|
11027
|
+
"description": "不可变对象引用:id 固定一条谱系,version 固定其中一个版本,digest 是该版本内容的摘要。设计里写的 ref@version 指的就是这个对象;摘要用来区分同版本号下内容不同的对象(例如同一需求修订下重画的图)。",
|
|
11028
|
+
"type": "object",
|
|
11029
|
+
"required": [
|
|
11030
|
+
"id",
|
|
11031
|
+
"version",
|
|
11032
|
+
"digest"
|
|
11033
|
+
],
|
|
11034
|
+
"properties": {
|
|
11035
|
+
"id": {
|
|
11036
|
+
"description": "稳定标识符:字母或数字开头,可含 _ . : -,最长 128。与硬件选型、Studio 回执现有的标识符规则相同;不含 @(@ 留给 id@version 的写法)。",
|
|
11037
|
+
"type": "string",
|
|
11038
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
|
|
11039
|
+
},
|
|
11040
|
+
"version": {
|
|
11041
|
+
"description": "对象版本号,按字符串比较相等,不比较大小(例如 \"7\"、\"r-1a2b3c4d5e6f\")。",
|
|
11042
|
+
"type": "string",
|
|
11043
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$"
|
|
11044
|
+
},
|
|
11045
|
+
"digest": {
|
|
11046
|
+
"description": "sha256 小写十六进制(64 位,不带 sha256: 前缀)。对 JSON 值一律取 harness scripts/web/common.mjs 的 digest(),即对 canonical()(键排序、无空白)后的字节求 sha256。",
|
|
11047
|
+
"type": "string",
|
|
11048
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
11049
|
+
}
|
|
11050
|
+
},
|
|
11051
|
+
"additionalProperties": false
|
|
11052
|
+
}
|
|
11053
|
+
]
|
|
11054
|
+
},
|
|
11055
|
+
"view_specs": {
|
|
11056
|
+
"type": "array",
|
|
11057
|
+
"maxItems": 7,
|
|
11058
|
+
"items": {
|
|
11059
|
+
"type": "object",
|
|
11060
|
+
"required": [
|
|
11061
|
+
"view_id",
|
|
11062
|
+
"orientation",
|
|
11063
|
+
"purpose"
|
|
11064
|
+
],
|
|
11065
|
+
"properties": {
|
|
11066
|
+
"view_id": {
|
|
11067
|
+
"type": "string",
|
|
11068
|
+
"minLength": 1
|
|
11069
|
+
},
|
|
11070
|
+
"orientation": {
|
|
11071
|
+
"enum": [
|
|
11072
|
+
"front",
|
|
11073
|
+
"back",
|
|
11074
|
+
"left",
|
|
11075
|
+
"right",
|
|
11076
|
+
"top",
|
|
11077
|
+
"bottom",
|
|
11078
|
+
"custom"
|
|
11079
|
+
]
|
|
11080
|
+
},
|
|
11081
|
+
"purpose": {
|
|
11082
|
+
"type": "string",
|
|
11083
|
+
"minLength": 1
|
|
11084
|
+
}
|
|
11085
|
+
},
|
|
11086
|
+
"additionalProperties": false
|
|
11087
|
+
}
|
|
11088
|
+
},
|
|
11089
|
+
"output_role": {
|
|
11090
|
+
"enum": [
|
|
11091
|
+
"user_concept",
|
|
11092
|
+
"internal_spatial_reference"
|
|
11093
|
+
]
|
|
11094
|
+
}
|
|
11095
|
+
},
|
|
10670
11096
|
"additionalProperties": false
|
|
10671
11097
|
}
|
|
10672
11098
|
},
|
|
@@ -10691,7 +11117,7 @@
|
|
|
10691
11117
|
"tool": "harness_step_tool_result",
|
|
10692
11118
|
"action_id": "step.tool-result",
|
|
10693
11119
|
"contract_version": 1,
|
|
10694
|
-
"definition_digest": "
|
|
11120
|
+
"definition_digest": "b097fa2dc29e766e86e718194ed52cdf0d9b92c0fd2e7a7beb76bddcf9013178",
|
|
10695
11121
|
"transport": "studio_tool",
|
|
10696
11122
|
"implementation_id": "web-host.harness_step_tool_result",
|
|
10697
11123
|
"input_owner": "action",
|
|
@@ -10719,10 +11145,31 @@
|
|
|
10719
11145
|
},
|
|
10720
11146
|
"sha256": {
|
|
10721
11147
|
"type": "string",
|
|
10722
|
-
"pattern": "^[0-9a-f]{64}$"
|
|
11148
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
11149
|
+
"description": "原工具消息完整原文的 UTF-8 SHA-256;pointer 模式必填。"
|
|
11150
|
+
},
|
|
11151
|
+
"pointer": {
|
|
11152
|
+
"type": "string",
|
|
11153
|
+
"pattern": "^(?:/(?:[^~/]|~[01])*)*$(?![\\s\\S])",
|
|
11154
|
+
"description": "严格 RFC 6901 JSON Pointer;空串选根,~0/~1 分别表示 ~ 与 /。仅选择已归档原 JSON 值。"
|
|
11155
|
+
},
|
|
11156
|
+
"value_sha256": {
|
|
11157
|
+
"type": "string",
|
|
11158
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
11159
|
+
"description": "选中值 canonical JSON 的 UTF-8 SHA-256;不是原工具全文摘要,也不是本页摘要。"
|
|
10723
11160
|
}
|
|
10724
11161
|
},
|
|
10725
|
-
"additionalProperties": false
|
|
11162
|
+
"additionalProperties": false,
|
|
11163
|
+
"dependentRequired": {
|
|
11164
|
+
"pointer": [
|
|
11165
|
+
"sha256",
|
|
11166
|
+
"value_sha256"
|
|
11167
|
+
],
|
|
11168
|
+
"value_sha256": [
|
|
11169
|
+
"pointer",
|
|
11170
|
+
"sha256"
|
|
11171
|
+
]
|
|
11172
|
+
}
|
|
10726
11173
|
}
|
|
10727
11174
|
},
|
|
10728
11175
|
{
|