@wowok/agent-mcp 2.7.1 → 2.7.2
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/dist/config/index.js +1 -1
- package/dist/config/runtime.js +1 -238
- package/dist/customer/customer-advice.js +1 -130
- package/dist/customer/index.js +1 -11
- package/dist/customer/industry-risks.js +1 -438
- package/dist/customer/info-puzzle.js +1 -681
- package/dist/customer/order-monitor.js +1 -328
- package/dist/customer/order-strategy.js +1 -373
- package/dist/customer/post-purchase.js +1 -351
- package/dist/customer/preorder-compare.js +1 -34
- package/dist/customer/reminder-system.js +1 -316
- package/dist/customer/risk-assessment.js +1 -397
- package/dist/customer/types.js +1 -13
- package/dist/customer/user-preferences.js +1 -460
- package/dist/evaluation/arbitration-game.d.ts +9 -2
- package/dist/evaluation/arbitration-game.js +1 -48
- package/dist/evaluation/builtins/demand-match.js +1 -153
- package/dist/evaluation/builtins/index.js +1 -10
- package/dist/evaluation/builtins/service-risk.js +1 -55
- package/dist/evaluation/capability.js +1 -13
- package/dist/evaluation/composer.js +1 -40
- package/dist/evaluation/engine.js +1 -175
- package/dist/evaluation/extract.js +1 -115
- package/dist/evaluation/game-strategy.d.ts +27 -0
- package/dist/evaluation/game-strategy.js +1 -0
- package/dist/evaluation/gap.js +1 -100
- package/dist/evaluation/index.d.ts +1 -0
- package/dist/evaluation/index.js +1 -11
- package/dist/evaluation/node-game.d.ts +31 -3
- package/dist/evaluation/node-game.js +1 -57
- package/dist/evaluation/region.js +1 -36
- package/dist/evaluation/types.d.ts +1 -0
- package/dist/evaluation/types.js +1 -1
- package/dist/evaluation/user-injection.js +1 -27
- package/dist/experience/experience-reuse.js +1 -103
- package/dist/experience/index.js +1 -5
- package/dist/experience/intent-distill.js +1 -83
- package/dist/experience/realtime-feedback.js +1 -94
- package/dist/experience/types.js +1 -1
- package/dist/experience/user-profile.js +1 -171
- package/dist/extensions/business-modules.js +1 -287
- package/dist/extensions/capability-manifest.js +1 -781
- package/dist/extensions/constraint-registry.js +1 -198
- package/dist/extensions/index.js +1 -6
- package/dist/extensions/metric-registry.js +1 -257
- package/dist/extensions/mode-evaluator.js +1 -170
- package/dist/extensions/modes.js +1 -499
- package/dist/extensions/registry.js +1 -717
- package/dist/extensions/types.js +1 -1
- package/dist/harness/auto-escalation.js +1 -68
- package/dist/harness/checkpoint.js +1 -129
- package/dist/harness/index.js +1 -78
- package/dist/harness/plan.js +1 -315
- package/dist/harness/recover.js +1 -139
- package/dist/harness/types.js +1 -1
- package/dist/harness/verify.js +1 -237
- package/dist/index.js +1 -273
- package/dist/intent/enrich.js +1 -67
- package/dist/intent/index.js +1 -60
- package/dist/intent/matcher.js +1 -81
- package/dist/intent/store.js +1 -55
- package/dist/intent/types.js +1 -10
- package/dist/knowledge/acquisition-flywheel.js +1 -192
- package/dist/knowledge/allocation-confirm.js +1 -534
- package/dist/knowledge/allocation-context.js +1 -249
- package/dist/knowledge/allocation-ledger.js +1 -463
- package/dist/knowledge/allocation-puzzle.js +1 -298
- package/dist/knowledge/allocation-risk.js +1 -568
- package/dist/knowledge/allocation-templates.js +1 -970
- package/dist/knowledge/allocation-translation.js +1 -585
- package/dist/knowledge/arb-risk.js +1 -210
- package/dist/knowledge/arbitration-confirm.js +1 -559
- package/dist/knowledge/arbitration-context.js +1 -505
- package/dist/knowledge/arbitration-ledger.js +1 -521
- package/dist/knowledge/arbitration-puzzle.js +1 -304
- package/dist/knowledge/arbitration-risk.js +1 -423
- package/dist/knowledge/arbitration-templates.js +1 -276
- package/dist/knowledge/arbitration-translation.js +1 -487
- package/dist/knowledge/arbitration-trust.js +1 -117
- package/dist/knowledge/audit-rules.js +1 -141
- package/dist/knowledge/bridge-risk.js +1 -263
- package/dist/knowledge/contact-risk.js +1 -200
- package/dist/knowledge/contact-templates.js +1 -60
- package/dist/knowledge/demand-confirm.js +1 -206
- package/dist/knowledge/demand-matching.js +1 -132
- package/dist/knowledge/demand-risk.js +1 -240
- package/dist/knowledge/demand-translation.js +1 -354
- package/dist/knowledge/deployment-scanner.js +1 -823
- package/dist/knowledge/dynamic-pricing.js +1 -87
- package/dist/knowledge/examples-scanner-cli.js +1 -26
- package/dist/knowledge/examples-scanner.js +1 -843
- package/dist/knowledge/flywheel-loop.js +1 -404
- package/dist/knowledge/fund-layer.js +1 -973
- package/dist/knowledge/glossary.js +1 -211
- package/dist/knowledge/guard-confirm.js +1 -406
- package/dist/knowledge/guard-context.js +1 -287
- package/dist/knowledge/guard-design-patterns.js +1 -360
- package/dist/knowledge/guard-ledger.js +1 -260
- package/dist/knowledge/guard-lint.js +1 -670
- package/dist/knowledge/guard-migration.js +1 -228
- package/dist/knowledge/guard-puzzle.js +1 -805
- package/dist/knowledge/guard-render.js +1 -700
- package/dist/knowledge/guard-risk.js +1 -1879
- package/dist/knowledge/guard-submission-prompt.js +1 -171
- package/dist/knowledge/guard-templates.js +1 -1105
- package/dist/knowledge/guard-translation.js +1 -1119
- package/dist/knowledge/index.js +1 -436
- package/dist/knowledge/industry-evolution.js +1 -323
- package/dist/knowledge/industry-generalizer.js +1 -381
- package/dist/knowledge/industry-registry.js +1 -174
- package/dist/knowledge/intent-metrics.d.ts +4 -3
- package/dist/knowledge/intent-metrics.js +1 -566
- package/dist/knowledge/machine-confirm.js +1 -559
- package/dist/knowledge/machine-context.js +1 -833
- package/dist/knowledge/machine-ledger.js +1 -338
- package/dist/knowledge/machine-puzzle.js +1 -494
- package/dist/knowledge/machine-render.js +1 -565
- package/dist/knowledge/machine-risk.js +1 -669
- package/dist/knowledge/machine-templates.js +1 -1597
- package/dist/knowledge/machine-topology.js +1 -234
- package/dist/knowledge/machine-translation.js +1 -513
- package/dist/knowledge/mcp-schema-audit-cli.js +1 -45
- package/dist/knowledge/mcp-schema-audit.js +1 -777
- package/dist/knowledge/onchain-constants.js +1 -35
- package/dist/knowledge/order-confirm.js +1 -573
- package/dist/knowledge/order-context.js +1 -390
- package/dist/knowledge/order-ledger.js +1 -341
- package/dist/knowledge/order-puzzle.js +1 -255
- package/dist/knowledge/order-risk.js +1 -653
- package/dist/knowledge/order-templates.js +1 -368
- package/dist/knowledge/order-translation.js +1 -550
- package/dist/knowledge/overrides-loader.js +1 -65
- package/dist/knowledge/passport-confirm.js +1 -531
- package/dist/knowledge/passport-context.js +1 -306
- package/dist/knowledge/passport-ledger.js +1 -282
- package/dist/knowledge/passport-puzzle.js +1 -333
- package/dist/knowledge/passport-risk.js +1 -450
- package/dist/knowledge/passport-templates.js +1 -568
- package/dist/knowledge/passport-translation.js +1 -516
- package/dist/knowledge/payment-risk.js +1 -249
- package/dist/knowledge/permission-confirm.js +1 -426
- package/dist/knowledge/permission-context.js +1 -224
- package/dist/knowledge/permission-ledger.js +1 -403
- package/dist/knowledge/permission-puzzle.js +1 -173
- package/dist/knowledge/permission-risk.js +1 -411
- package/dist/knowledge/permission-templates.js +1 -234
- package/dist/knowledge/permission-translation.js +1 -350
- package/dist/knowledge/personal-risk.js +1 -212
- package/dist/knowledge/process-model.js +1 -160
- package/dist/knowledge/progress-confirm.js +1 -456
- package/dist/knowledge/progress-context.js +1 -452
- package/dist/knowledge/progress-ledger.js +1 -330
- package/dist/knowledge/progress-puzzle.js +1 -219
- package/dist/knowledge/progress-risk.js +1 -461
- package/dist/knowledge/progress-templates.js +1 -228
- package/dist/knowledge/progress-translation.js +1 -405
- package/dist/knowledge/proof-confirm.js +1 -187
- package/dist/knowledge/proof-risk.js +1 -207
- package/dist/knowledge/proof-translation.js +1 -283
- package/dist/knowledge/registrar-risk.js +1 -217
- package/dist/knowledge/repository-confirm.js +1 -286
- package/dist/knowledge/repository-risk.js +1 -373
- package/dist/knowledge/repository-translation.js +1 -445
- package/dist/knowledge/reputation-rules.js +1 -99
- package/dist/knowledge/resource-risk.js +1 -157
- package/dist/knowledge/reward-confirm.js +1 -526
- package/dist/knowledge/reward-context.js +1 -504
- package/dist/knowledge/reward-ledger.js +1 -502
- package/dist/knowledge/reward-puzzle.js +1 -300
- package/dist/knowledge/reward-risk.js +1 -627
- package/dist/knowledge/reward-templates.js +1 -197
- package/dist/knowledge/reward-translation.js +1 -501
- package/dist/knowledge/safety-rules.js +1 -404
- package/dist/knowledge/scenario-modes.js +1 -321
- package/dist/knowledge/service-confirm.js +1 -807
- package/dist/knowledge/service-context.js +1 -403
- package/dist/knowledge/service-ledger.js +1 -609
- package/dist/knowledge/service-puzzle.js +1 -236
- package/dist/knowledge/service-risk.js +1 -651
- package/dist/knowledge/service-templates.js +1 -456
- package/dist/knowledge/service-translation.js +1 -622
- package/dist/knowledge/template-registry.js +1 -353
- package/dist/knowledge/tool-constraints.js +1 -195
- package/dist/knowledge/tools-reference.js +1 -178
- package/dist/knowledge/treasury-confirm.js +1 -512
- package/dist/knowledge/treasury-context.js +1 -363
- package/dist/knowledge/treasury-ledger.js +1 -300
- package/dist/knowledge/treasury-puzzle.js +1 -216
- package/dist/knowledge/treasury-risk.js +1 -440
- package/dist/knowledge/treasury-templates.js +1 -358
- package/dist/knowledge/treasury-translation.js +1 -498
- package/dist/knowledge/trust-metrics.js +1 -198
- package/dist/knowledge/util-risk.js +1 -135
- package/dist/loop-engineering/aggregate.js +1 -132
- package/dist/loop-engineering/context-collect.js +1 -83
- package/dist/loop-engineering/diagnose.js +1 -273
- package/dist/loop-engineering/improve.js +1 -405
- package/dist/loop-engineering/index.js +1 -4
- package/dist/loop-engineering/pipeline.js +1 -56
- package/dist/mode-market/index.js +1 -3
- package/dist/mode-market/registry.js +1 -124
- package/dist/mode-market/review.js +1 -214
- package/dist/mode-market/submission.js +1 -85
- package/dist/participation/collaborator-interest.d.ts +23 -0
- package/dist/participation/collaborator-interest.js +1 -0
- package/dist/participation/customer-interest.d.ts +25 -0
- package/dist/participation/customer-interest.js +1 -0
- package/dist/participation/merchant-interest.js +1 -100
- package/dist/participation/radar-core.d.ts +13 -3
- package/dist/participation/radar-core.js +1 -269
- package/dist/participation/supplier-interest.d.ts +25 -0
- package/dist/participation/supplier-interest.js +1 -0
- package/dist/persona/analyzer.js +1 -66
- package/dist/persona/bridge.js +1 -86
- package/dist/persona/defaults.js +1 -195
- package/dist/persona/experience-bridge.js +1 -23
- package/dist/persona/index.js +1 -71
- package/dist/persona/model.js +1 -111
- package/dist/persona/store.js +1 -62
- package/dist/persona/types.d.ts +3 -1
- package/dist/persona/types.js +1 -5
- package/dist/project/business-puzzle.js +1 -383
- package/dist/project/context-assembly.js +1 -254
- package/dist/project/deployment-bridge.js +1 -120
- package/dist/project/deployment-doc.js +1 -1126
- package/dist/project/edit-planner.js +1 -1342
- package/dist/project/evaluation.js +1 -2011
- package/dist/project/game-theory.js +1 -177
- package/dist/project/graph-builder.js +1 -656
- package/dist/project/graph.js +1 -340
- package/dist/project/handlers.js +1 -1784
- package/dist/project/index.d.ts +1 -0
- package/dist/project/index.js +1 -301
- package/dist/project/intent-analyzer.js +1 -149
- package/dist/project/machine-nodes.js +1 -36
- package/dist/project/merchant-guide.js +1 -264
- package/dist/project/migration.js +1 -125
- package/dist/project/mode-actions.js +1 -309
- package/dist/project/namespace.js +1 -206
- package/dist/project/participation-radar.js +1 -428
- package/dist/project/pipeline-actions.js +1 -109
- package/dist/project/project-store.js +1 -422
- package/dist/project/query.js +1 -153
- package/dist/project/reverse-mapping.d.ts +34 -0
- package/dist/project/reverse-mapping.js +1 -0
- package/dist/project/risk-aggregator.js +1 -295
- package/dist/project/rollback-policy.js +1 -290
- package/dist/project/semantic-assembler.js +1 -345
- package/dist/project/semantic-graph.js +1 -292
- package/dist/project/stage-gate.js +1 -369
- package/dist/project/substep-trace.js +1 -332
- package/dist/project/task-tracker.js +1 -78
- package/dist/role/derivation.d.ts +18 -0
- package/dist/role/derivation.js +1 -0
- package/dist/role/index.d.ts +5 -0
- package/dist/role/index.js +1 -0
- package/dist/role/model.d.ts +8 -0
- package/dist/role/model.js +1 -0
- package/dist/role/resolution.d.ts +11 -0
- package/dist/role/resolution.js +1 -0
- package/dist/role/types.d.ts +11 -0
- package/dist/role/types.js +1 -0
- package/dist/rules.js +1 -52
- package/dist/safety/confirm-gate.js +1 -88
- package/dist/safety/index.js +1 -3
- package/dist/safety/preview.js +1 -52
- package/dist/schema/call/allocation.js +1 -34
- package/dist/schema/call/arbitration.js +1 -113
- package/dist/schema/call/base.d.ts +15 -15
- package/dist/schema/call/base.js +1 -370
- package/dist/schema/call/bridge-handler.js +1 -265
- package/dist/schema/call/bridge.d.ts +7 -7
- package/dist/schema/call/bridge.js +1 -458
- package/dist/schema/call/contact.js +1 -37
- package/dist/schema/call/demand.js +1 -47
- package/dist/schema/call/guard.js +1 -161
- package/dist/schema/call/handler.js +1 -322
- package/dist/schema/call/index.js +1 -20
- package/dist/schema/call/machine.js +1 -193
- package/dist/schema/call/order.js +1 -35
- package/dist/schema/call/payment.js +1 -37
- package/dist/schema/call/permission-handler.js +1 -54
- package/dist/schema/call/permission.js +1 -105
- package/dist/schema/call/personal.js +1 -78
- package/dist/schema/call/progress.js +1 -47
- package/dist/schema/call/proof.js +1 -33
- package/dist/schema/call/repository.js +1 -77
- package/dist/schema/call/reward.js +1 -30
- package/dist/schema/call/semantic.js +1 -1679
- package/dist/schema/call/service.js +1 -184
- package/dist/schema/call/treasury.js +1 -71
- package/dist/schema/common/index.js +1 -407
- package/dist/schema/config/index.js +1 -68
- package/dist/schema/evaluation/index.d.ts +213 -16
- package/dist/schema/evaluation/index.js +1 -356
- package/dist/schema/index.js +1 -17
- package/dist/schema/intent-radar/index.d.ts +13 -13
- package/dist/schema/intent-radar/index.js +1 -89
- package/dist/schema/local/index.d.ts +21 -21
- package/dist/schema/local/index.js +1 -927
- package/dist/schema/local/wip.js +1 -187
- package/dist/schema/messenger/index.d.ts +7 -7
- package/dist/schema/messenger/index.js +1 -475
- package/dist/schema/operations.d.ts +7 -7
- package/dist/schema/operations.js +1 -520
- package/dist/schema/persona/index.d.ts +54 -54
- package/dist/schema/persona/index.js +1 -148
- package/dist/schema/project/index.d.ts +94 -48
- package/dist/schema/project/index.js +1 -2057
- package/dist/schema/query/index.d.ts +423 -7
- package/dist/schema/query/index.js +1 -1646
- package/dist/schema/schema-query/index.js +1 -104
- package/dist/schema/schema-version.js +1 -76
- package/dist/schema/sync-layer4.js +1 -286
- package/dist/schema/task-status.js +1 -36
- package/dist/schema/trust/index.js +1 -314
- package/dist/schema/utils/guard-parser.js +1 -419
- package/dist/schema/utils/guard-query-utils.js +1 -46
- package/dist/schema/utils/node-parser.js +1 -369
- package/dist/schema/utils/object-type-utils.js +1 -35
- package/dist/schema/utils/permission-index-utils.js +1 -7
- package/dist/schema/utils/permission-machine-check.js +1 -121
- package/dist/schema/utils/skills-recommendation.js +1 -77
- package/dist/schema-query/index.js +1 -810
- package/dist/schemas/account_operation.output.json +5 -2
- package/dist/schemas/bridge_operation.output.json +5 -2
- package/dist/schemas/evaluation_operation.output.json +112 -7
- package/dist/schemas/evaluation_operation.schema.json +93 -6
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/intent_radar.output.json +4 -1
- package/dist/schemas/intent_radar.schema.json +4 -1
- package/dist/schemas/local_info_operation.output.json +5 -2
- package/dist/schemas/local_mark_operation.output.json +5 -2
- package/dist/schemas/messenger_operation.output.json +5 -2
- package/dist/schemas/onchain_events.output.json +5 -2
- package/dist/schemas/onchain_operations.output.json +5 -2
- package/dist/schemas/onchain_operations.schema.json +4 -4
- package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
- package/dist/schemas/onchain_operations_machine.schema.json +2 -2
- package/dist/schemas/onchain_operations_service.schema.json +1 -1
- package/dist/schemas/onchain_table_data.output.json +6 -3
- package/dist/schemas/persona_operation.output.json +4 -1
- package/dist/schemas/persona_operation.schema.json +4 -1
- package/dist/schemas/project_operation.output.json +28 -8
- package/dist/schemas/query_toolkit.output.json +8 -5
- package/dist/schemas/wowok_buildin_info.output.json +132 -0
- package/dist/schemas/wowok_buildin_info.schema.json +14 -0
- package/dist/telemetry/index.js +1 -112
- package/dist/telemetry/redact.js +1 -23
- package/dist/telemetry/storage.js +1 -80
- package/dist/tools/handlers/bridge.js +1 -1
- package/dist/tools/handlers/config.js +1 -74
- package/dist/tools/handlers/evaluation.js +1 -123
- package/dist/tools/handlers/file-export.js +1 -90
- package/dist/tools/handlers/intent-radar.js +1 -76
- package/dist/tools/handlers/local.js +1 -53
- package/dist/tools/handlers/messenger.js +1 -188
- package/dist/tools/handlers/onchain.js +1 -1180
- package/dist/tools/handlers/persona.js +1 -89
- package/dist/tools/handlers/project.js +1 -211
- package/dist/tools/handlers/query.js +1 -434
- package/dist/tools/handlers/schema-query.js +1 -176
- package/dist/tools/handlers/task-status.js +1 -26
- package/dist/tools/handlers/trust.js +1 -380
- package/dist/tools/handlers/wip.js +1 -90
- package/dist/tools/index.js +1 -1382
- package/dist/tools/retry.js +1 -85
- package/dist/tools/rules-hook.js +1 -23
- package/dist/tools/shared.js +1 -130
- package/dist/tools/types.js +1 -1
- package/dist/tools/upgrade-check.d.ts +19 -0
- package/dist/tools/upgrade-check.js +1 -0
- package/dist/tools/wip-deploy-assist.js +1 -306
- package/dist/tools/wrap.js +1 -500
- package/package.json +4 -2
package/dist/extensions/modes.js
CHANGED
|
@@ -1,499 +1 @@
|
|
|
1
|
-
import { getScenarioMode } from "../knowledge/scenario-modes.js";
|
|
2
|
-
import { getIndustryTraits } from "../knowledge/industry-registry.js";
|
|
3
|
-
import { getIndustryRiskChecks, getIndustryNeeds } from "../customer/index.js";
|
|
4
|
-
import { getFlywheelForIndustry } from "../knowledge/acquisition-flywheel.js";
|
|
5
|
-
const GENERAL_TRAITS = {
|
|
6
|
-
has_logistics: false,
|
|
7
|
-
communication_heavy: false,
|
|
8
|
-
pure_digital: false,
|
|
9
|
-
long_cycle: false,
|
|
10
|
-
deposit_required: false,
|
|
11
|
-
multi_tier_allocation: false,
|
|
12
|
-
regulatory_intensity: "low",
|
|
13
|
-
trust_sensitivity: "medium",
|
|
14
|
-
consumption_frequency: "occasional",
|
|
15
|
-
avg_ticket_size: "medium",
|
|
16
|
-
};
|
|
17
|
-
const GENERAL_FLYWHEEL = {
|
|
18
|
-
industry: "general",
|
|
19
|
-
trustSellingPoints: [],
|
|
20
|
-
keyActions: [],
|
|
21
|
-
rewardStrategy: "User-defined",
|
|
22
|
-
discountStrategy: "User-defined",
|
|
23
|
-
trustDescription: "User-defined trust mechanism",
|
|
24
|
-
};
|
|
25
|
-
const GENERAL_MACHINE_SHAPE = [
|
|
26
|
-
{ name: "paid", role: "Entry: order created and paid" },
|
|
27
|
-
{ name: "delivering", role: "Service delivery in progress" },
|
|
28
|
-
{ name: "delivered", role: "Deliverable available for review" },
|
|
29
|
-
{ name: "completed", role: "Service completed, funds released" },
|
|
30
|
-
{ name: "cancelled", role: "Pre-delivery cancellation — triggers refund Allocator" },
|
|
31
|
-
];
|
|
32
|
-
const GENERAL_ALLOCATOR = {
|
|
33
|
-
recipient: "signer",
|
|
34
|
-
count: 1,
|
|
35
|
-
mode: "surplus",
|
|
36
|
-
description: "Default: surplus to service owner (general fallback)",
|
|
37
|
-
};
|
|
38
|
-
const RETAIL_MACHINE_SHAPE = [
|
|
39
|
-
{ name: "paid", role: "Entry: order paid via Service.buy(); Machine starts here" },
|
|
40
|
-
{ name: "shipped", role: "Merchant ships goods, records shipping WIP (tracking number)" },
|
|
41
|
-
{ name: "delivered", role: "Goods delivered to buyer" },
|
|
42
|
-
{ name: "confirmed", role: "Buyer confirms receipt" },
|
|
43
|
-
{ name: "completed", role: "Funds released to merchant" },
|
|
44
|
-
{ name: "returned", role: "Buyer ships goods back — triggers refund Allocator (R-M1-11 compliant)" },
|
|
45
|
-
{ name: "cancelled", role: "Pre-ship cancellation — triggers refund Allocator" },
|
|
46
|
-
];
|
|
47
|
-
const RETAIL_GUARDS = [
|
|
48
|
-
{ template_id: "buy_guard_inventory", host: "service", purpose: "Verify inventory and buyer address on purchase" },
|
|
49
|
-
{ template_id: "ship_guard_wip", host: "machine", purpose: "Shipping evidence WIP (logistics tracking number)" },
|
|
50
|
-
{ template_id: "confirm_guard_signer", host: "machine", purpose: "Only buyer can confirm receipt" },
|
|
51
|
-
{ template_id: "refund_guard_permission", host: "machine", purpose: "Return & refund requires merchant permission OR arbiter" },
|
|
52
|
-
{ template_id: "tpl_payment_exception_compensation", host: "machine", purpose: "Logistics delay exception compensation (§2.13)" },
|
|
53
|
-
];
|
|
54
|
-
const RETAIL_ALLOCATOR = {
|
|
55
|
-
recipient: "entity",
|
|
56
|
-
count: 2,
|
|
57
|
-
mode: "rate",
|
|
58
|
-
description: "Platform 10% + Merchant 90% (rate-based split)",
|
|
59
|
-
};
|
|
60
|
-
const RETAIL_KEY_RISK = "Products don't match description — no refund path for returns";
|
|
61
|
-
const RETAIL_BUILD_NOTES = [
|
|
62
|
-
"Logistics WIP (tracking number) is essential — shipping evidence protects both parties in return disputes",
|
|
63
|
-
"confirm_gate prevents merchant from self-confirming receipt",
|
|
64
|
-
"Refund path must support return-and-exchange flow",
|
|
65
|
-
"Compensation fund covers return/exchange disputes",
|
|
66
|
-
];
|
|
67
|
-
const RETAIL_D2C_MACHINE_SHAPE = [
|
|
68
|
-
{ name: "ordered", role: "Entry: order created (funds escrowed in Allocation)" },
|
|
69
|
-
{ name: "shipped", role: "Merchant ships goods" },
|
|
70
|
-
{ name: "delivered", role: "Goods delivered to buyer" },
|
|
71
|
-
{ name: "completed", role: "Buyer confirms receipt — withdraw_guard releases funds" },
|
|
72
|
-
{ name: "cancelled", role: "Pre-ship cancellation — refund_guard refunds buyer" },
|
|
73
|
-
];
|
|
74
|
-
const RETAIL_D2C_GUARDS = [
|
|
75
|
-
{ template_id: "withdraw_guard_delivery", host: "service", purpose: "Release funds to merchant + processor on order completion (delivery confirmation)" },
|
|
76
|
-
{ template_id: "refund_guard_cancellation", host: "service", purpose: "Refund 100% to buyer on order cancellation" },
|
|
77
|
-
];
|
|
78
|
-
const RETAIL_D2C_ALLOCATOR = {
|
|
79
|
-
recipient: "entity",
|
|
80
|
-
count: 2,
|
|
81
|
-
mode: "rate",
|
|
82
|
-
description: "Merchant 97% + Processor 3% (rate-based split, no platform commission)",
|
|
83
|
-
};
|
|
84
|
-
const RETAIL_D2C_KEY_RISK = "No platform arbitration — disputes rely on optional Arbitration or off-chain chargeback";
|
|
85
|
-
const RETAIL_D2C_BUILD_NOTES = [
|
|
86
|
-
"Allocation escrow replaces platform custody — funds locked in contract until Guard releases",
|
|
87
|
-
"withdraw_guard enforces delivery gate — merchant must reach 'completed' state to receive payment",
|
|
88
|
-
"refund_guard ensures 100% refund on cancellation — no merchant approval needed",
|
|
89
|
-
"No buy_guard needed — D2C doesn't gate purchases (open storefront)",
|
|
90
|
-
"Arbitration is optional — add when dispute volume justifies the cost",
|
|
91
|
-
"Service ↔ Guard circular dependency: create Service (unpublished) → create Guards → update Service (publish)",
|
|
92
|
-
];
|
|
93
|
-
const SUPPORTED_INDUSTRY_SET = new Set([
|
|
94
|
-
"freelance", "rental", "education", "travel", "subscription", "retail", "retail_d2c",
|
|
95
|
-
]);
|
|
96
|
-
function fetchTemplate(name) {
|
|
97
|
-
const traitsLookupName = name === "retail_d2c" ? "retail" : name;
|
|
98
|
-
const traits = getIndustryTraits(traitsLookupName) ?? GENERAL_TRAITS;
|
|
99
|
-
const isSupported = SUPPORTED_INDUSTRY_SET.has(name);
|
|
100
|
-
const industryLookupName = name === "retail_d2c" ? "retail" : name;
|
|
101
|
-
const risk_checks = isSupported
|
|
102
|
-
? getIndustryRiskChecks(industryLookupName)
|
|
103
|
-
: [];
|
|
104
|
-
const needs = isSupported
|
|
105
|
-
? getIndustryNeeds(industryLookupName)
|
|
106
|
-
: [];
|
|
107
|
-
const flywheel = getFlywheelForIndustry(traitsLookupName) ?? GENERAL_FLYWHEEL;
|
|
108
|
-
let machine_shape;
|
|
109
|
-
let guards;
|
|
110
|
-
let allocator;
|
|
111
|
-
let key_risk;
|
|
112
|
-
let build_notes;
|
|
113
|
-
if (name === "retail") {
|
|
114
|
-
machine_shape = RETAIL_MACHINE_SHAPE;
|
|
115
|
-
guards = RETAIL_GUARDS;
|
|
116
|
-
allocator = RETAIL_ALLOCATOR;
|
|
117
|
-
key_risk = RETAIL_KEY_RISK;
|
|
118
|
-
build_notes = RETAIL_BUILD_NOTES;
|
|
119
|
-
}
|
|
120
|
-
else if (name === "retail_d2c") {
|
|
121
|
-
machine_shape = RETAIL_D2C_MACHINE_SHAPE;
|
|
122
|
-
guards = RETAIL_D2C_GUARDS;
|
|
123
|
-
allocator = RETAIL_D2C_ALLOCATOR;
|
|
124
|
-
key_risk = RETAIL_D2C_KEY_RISK;
|
|
125
|
-
build_notes = RETAIL_D2C_BUILD_NOTES;
|
|
126
|
-
}
|
|
127
|
-
else if (name === "general") {
|
|
128
|
-
const sm = getScenarioMode("general");
|
|
129
|
-
machine_shape = GENERAL_MACHINE_SHAPE;
|
|
130
|
-
guards = [];
|
|
131
|
-
allocator = GENERAL_ALLOCATOR;
|
|
132
|
-
key_risk = sm?.key_risk ?? "No safety net — user must design all trust mechanisms manually";
|
|
133
|
-
build_notes = sm?.build_notes;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
const sm = getScenarioMode(name);
|
|
137
|
-
if (!sm) {
|
|
138
|
-
throw new Error(`[modes.ts] No scenario mode found for industry: ${name}`);
|
|
139
|
-
}
|
|
140
|
-
machine_shape = sm.machine_shape;
|
|
141
|
-
guards = sm.guards;
|
|
142
|
-
allocator = sm.allocator;
|
|
143
|
-
key_risk = sm.key_risk;
|
|
144
|
-
build_notes = sm.build_notes;
|
|
145
|
-
}
|
|
146
|
-
return { traits, risk_checks, needs, flywheel, machine_shape, guards, allocator, key_risk, build_notes };
|
|
147
|
-
}
|
|
148
|
-
export const BUILTIN_MODES = [
|
|
149
|
-
{
|
|
150
|
-
name: "freelance",
|
|
151
|
-
display_name: "Freelance",
|
|
152
|
-
version: "v1",
|
|
153
|
-
source: "builtin",
|
|
154
|
-
...fetchTemplate("freelance"),
|
|
155
|
-
capabilities_used: [
|
|
156
|
-
"permission.index_create", "permission.role_assign",
|
|
157
|
-
"guard.validate_buy", "guard.validate_wip_hash",
|
|
158
|
-
"machine.node_topology",
|
|
159
|
-
"treasury.owner_receive",
|
|
160
|
-
"allocation.distribute", "allocation.distribute_milestone",
|
|
161
|
-
"service.publish", "progress.advance",
|
|
162
|
-
"arb.vote_weighted", "contact.im_create",
|
|
163
|
-
],
|
|
164
|
-
config_overrides: {
|
|
165
|
-
service: { setting_locked_time: "30d", engagement_type: "milestone" },
|
|
166
|
-
machine: { wip_required: true, wip_hash_algorithm: "sha256", acceptance_gate: true },
|
|
167
|
-
},
|
|
168
|
-
expected_benefits: [
|
|
169
|
-
{ metric: "Dispute rate reduction", expected_value: "40%", evidence: "WIP hash + milestone allocation enforces delivery evidence" },
|
|
170
|
-
{ metric: "Delivery confirmation efficiency", expected_value: "+50%", evidence: "acceptance gate automates acceptance workflow" },
|
|
171
|
-
{ metric: "Provider payment assurance", expected_value: "100%", evidence: "Funds auto-release to provider after accepted node" },
|
|
172
|
-
],
|
|
173
|
-
risk_appetite: "balanced",
|
|
174
|
-
risk_constraints: {
|
|
175
|
-
require_arbitration: true,
|
|
176
|
-
require_compensation_fund: false,
|
|
177
|
-
require_wip_evidence: true,
|
|
178
|
-
other_constraints: [
|
|
179
|
-
"setting_locked_time >= 7d to lock engagement-period rules",
|
|
180
|
-
"ISSUE-P1-4: 48h auto-accept requires off-chain keeper (WoWok Guard does not support time-based triggers). Deploy a keeper service that polls Progress objects in 'delivered' state and calls adminUnhold (permission 224) after 48h timeout. See keeper template in docs.",
|
|
181
|
-
],
|
|
182
|
-
},
|
|
183
|
-
applicable_conditions: {
|
|
184
|
-
business_scale: "small",
|
|
185
|
-
min_daily_orders: 1,
|
|
186
|
-
other_conditions: ["Suitable for mid-to-long-term project delivery", "Requires milestone-based phased acceptance"],
|
|
187
|
-
},
|
|
188
|
-
similar_industries: ["rental", "education"],
|
|
189
|
-
novel_capabilities: ["allocation.distribute_milestone"],
|
|
190
|
-
disabled_builtin_constraints: ["require_compensation_fund"],
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
name: "rental",
|
|
194
|
-
display_name: "Rental",
|
|
195
|
-
version: "v1",
|
|
196
|
-
source: "builtin",
|
|
197
|
-
...fetchTemplate("rental"),
|
|
198
|
-
capabilities_used: [
|
|
199
|
-
"permission.index_create", "permission.role_assign",
|
|
200
|
-
"guard.validate_buy", "guard.validate_wip_hash",
|
|
201
|
-
"machine.node_topology",
|
|
202
|
-
"treasury.owner_receive",
|
|
203
|
-
"allocation.distribute",
|
|
204
|
-
"service.publish", "progress.advance",
|
|
205
|
-
"arb.vote_weighted", "contact.im_create",
|
|
206
|
-
],
|
|
207
|
-
config_overrides: {
|
|
208
|
-
treasury: { deposit_escrow: true, deposit_deductible: true },
|
|
209
|
-
machine: { wip_required: true, wip_stages: ["handover_out", "returned"], inspection_gate: true },
|
|
210
|
-
},
|
|
211
|
-
expected_benefits: [
|
|
212
|
-
{ metric: "Deposit dispute rate", expected_value: "-60%", evidence: "pre-rental WIP mandatorily records item's original state" },
|
|
213
|
-
{ metric: "Damage liability accuracy", expected_value: "+70%", evidence: "pre/post WIP hash comparison eliminates unfounded deductions" },
|
|
214
|
-
{ metric: "Trust score", expected_value: "+25%", evidence: "compensation_fund covers damage risk" },
|
|
215
|
-
],
|
|
216
|
-
risk_appetite: "conservative",
|
|
217
|
-
risk_constraints: {
|
|
218
|
-
require_arbitration: true,
|
|
219
|
-
require_compensation_fund: true,
|
|
220
|
-
require_wip_evidence: true,
|
|
221
|
-
max_single_transaction: 10000,
|
|
222
|
-
compensation_fund_coverage_ratio: 10,
|
|
223
|
-
other_constraints: ["Deposit must be escrowed (no direct transfer)", "lock_duration >= 7d to prevent arbitrary merchant withdrawal"],
|
|
224
|
-
},
|
|
225
|
-
applicable_conditions: {
|
|
226
|
-
business_scale: "small",
|
|
227
|
-
min_daily_orders: 1,
|
|
228
|
-
other_conditions: ["Requires physical item handover", "Has logistics or offline delivery leg"],
|
|
229
|
-
},
|
|
230
|
-
similar_industries: ["retail", "travel"],
|
|
231
|
-
novel_capabilities: [],
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
name: "education",
|
|
235
|
-
display_name: "Education",
|
|
236
|
-
version: "v1",
|
|
237
|
-
source: "builtin",
|
|
238
|
-
...fetchTemplate("education"),
|
|
239
|
-
capabilities_used: [
|
|
240
|
-
"permission.index_create", "permission.role_assign",
|
|
241
|
-
"guard.validate_buy", "guard.validate_wip_hash",
|
|
242
|
-
"machine.node_topology",
|
|
243
|
-
"treasury.owner_receive",
|
|
244
|
-
"allocation.distribute", "allocation.distribute_milestone",
|
|
245
|
-
"service.publish", "progress.advance",
|
|
246
|
-
"arb.vote_weighted", "contact.im_create",
|
|
247
|
-
],
|
|
248
|
-
config_overrides: {
|
|
249
|
-
allocation: {
|
|
250
|
-
strategy: {
|
|
251
|
-
recipient: "entity",
|
|
252
|
-
count: 1,
|
|
253
|
-
mode: "amount",
|
|
254
|
-
description: "1/N of tuition released per session attendance",
|
|
255
|
-
},
|
|
256
|
-
session_threshold: true,
|
|
257
|
-
},
|
|
258
|
-
service: { setting_locked_time: "120d", anti_runaway: true },
|
|
259
|
-
},
|
|
260
|
-
expected_benefits: [
|
|
261
|
-
{ metric: "Refund dispute rate", expected_value: "-50%", evidence: "per-session release distributes tuition by class" },
|
|
262
|
-
{ metric: "Institution runaway risk", expected_value: "eliminated", evidence: "Funds release per session; undelivered portion is refundable" },
|
|
263
|
-
{ metric: "Attendance traceability", expected_value: "100%", evidence: "attendance_guard signs each session" },
|
|
264
|
-
],
|
|
265
|
-
risk_appetite: "conservative",
|
|
266
|
-
risk_constraints: {
|
|
267
|
-
require_arbitration: true,
|
|
268
|
-
require_compensation_fund: true,
|
|
269
|
-
require_wip_evidence: false,
|
|
270
|
-
other_constraints: ["setting_locked_time covers the entire term (>=90d)", "Long-cycle projects must monitor >90d progress"],
|
|
271
|
-
},
|
|
272
|
-
applicable_conditions: {
|
|
273
|
-
business_scale: "medium",
|
|
274
|
-
min_daily_orders: 1,
|
|
275
|
-
other_conditions: ["Long-cycle delivery", "Requires per-session acceptance", "Regulatory intensity: medium"],
|
|
276
|
-
},
|
|
277
|
-
similar_industries: ["freelance", "subscription"],
|
|
278
|
-
novel_capabilities: ["allocation.distribute_milestone"],
|
|
279
|
-
disabled_builtin_constraints: ["require_wip_evidence"],
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
name: "travel",
|
|
283
|
-
display_name: "Travel",
|
|
284
|
-
version: "v1",
|
|
285
|
-
source: "builtin",
|
|
286
|
-
...fetchTemplate("travel"),
|
|
287
|
-
capabilities_used: [
|
|
288
|
-
"permission.index_create", "permission.role_assign",
|
|
289
|
-
"guard.validate_buy", "guard.validate_wip_hash",
|
|
290
|
-
"machine.node_topology",
|
|
291
|
-
"treasury.owner_receive",
|
|
292
|
-
"allocation.distribute",
|
|
293
|
-
"service.publish", "progress.advance",
|
|
294
|
-
"arb.vote_weighted", "contact.im_create",
|
|
295
|
-
],
|
|
296
|
-
config_overrides: {
|
|
297
|
-
allocation: {
|
|
298
|
-
strategy: {
|
|
299
|
-
recipient: "entity",
|
|
300
|
-
count: 3,
|
|
301
|
-
mode: "amount",
|
|
302
|
-
description: "Deposit 20% to agency, final 80% to agency, then agency-side Allocation splits to hotel/guide/driver per segment",
|
|
303
|
-
},
|
|
304
|
-
multi_tier_waterfall: true,
|
|
305
|
-
guard_chaining: true,
|
|
306
|
-
},
|
|
307
|
-
service: { supply_chain_suborders: true, segment_guard_required: true },
|
|
308
|
-
},
|
|
309
|
-
expected_benefits: [
|
|
310
|
-
{ metric: "Fund transparency", expected_value: "100%", evidence: "multi-tier allocation splits per segment to hotel/guide/driver" },
|
|
311
|
-
{ metric: "Itinerary change disputes", expected_value: "-45%", evidence: "segment WIP accepts each leg" },
|
|
312
|
-
{ metric: "Breach compensation assurance", expected_value: "+60%", evidence: "compensation_fund covers itinerary breach" },
|
|
313
|
-
],
|
|
314
|
-
risk_appetite: "balanced",
|
|
315
|
-
risk_constraints: {
|
|
316
|
-
require_arbitration: true,
|
|
317
|
-
require_compensation_fund: true,
|
|
318
|
-
require_wip_evidence: true,
|
|
319
|
-
other_constraints: ["Multi-tier allocation requires guard chaining validation", "deposit 20% + final 80% two-stage payment"],
|
|
320
|
-
},
|
|
321
|
-
applicable_conditions: {
|
|
322
|
-
business_scale: "medium",
|
|
323
|
-
min_daily_orders: 1,
|
|
324
|
-
other_conditions: ["Multi-segment itinerary combination", "Requires hotel/guide/driver multi-party allocation"],
|
|
325
|
-
},
|
|
326
|
-
similar_industries: ["rental", "education"],
|
|
327
|
-
novel_capabilities: [],
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
name: "subscription",
|
|
331
|
-
display_name: "Subscription",
|
|
332
|
-
version: "v1",
|
|
333
|
-
source: "builtin",
|
|
334
|
-
...fetchTemplate("subscription"),
|
|
335
|
-
capabilities_used: [
|
|
336
|
-
"permission.index_create", "permission.role_assign",
|
|
337
|
-
"guard.validate_buy",
|
|
338
|
-
"machine.node_topology",
|
|
339
|
-
"treasury.owner_receive",
|
|
340
|
-
"allocation.distribute",
|
|
341
|
-
"service.publish", "progress.advance",
|
|
342
|
-
"arb.vote_weighted", "reward.claim_guard", "contact.im_create",
|
|
343
|
-
],
|
|
344
|
-
config_overrides: {
|
|
345
|
-
machine: {
|
|
346
|
-
no_auto_renew_trap: true,
|
|
347
|
-
user_confirmed_charge: true,
|
|
348
|
-
cancel_anytime: true,
|
|
349
|
-
next_period_effective: true,
|
|
350
|
-
},
|
|
351
|
-
service: { creator_data_subscription: true, periodic_billing: true },
|
|
352
|
-
},
|
|
353
|
-
expected_benefits: [
|
|
354
|
-
{ metric: "Renewal rate", expected_value: "+25%", evidence: "loyalty reward + transparent subscription mechanism" },
|
|
355
|
-
{ metric: "Cancellation disputes", expected_value: "eliminated", evidence: "cancel anytime + no auto-renew trap" },
|
|
356
|
-
{ metric: "Creator retention", expected_value: "+30%", evidence: "deliver_guard_wip prevents content dropout" },
|
|
357
|
-
],
|
|
358
|
-
risk_appetite: "aggressive",
|
|
359
|
-
risk_constraints: {
|
|
360
|
-
require_arbitration: false,
|
|
361
|
-
require_compensation_fund: false,
|
|
362
|
-
require_wip_evidence: false,
|
|
363
|
-
compensation_fund_coverage_ratio: 3,
|
|
364
|
-
other_constraints: ["Forbid dead-end nodes (prevent lock-in)", "charge_guard requires user confirmation each period"],
|
|
365
|
-
},
|
|
366
|
-
applicable_conditions: {
|
|
367
|
-
business_scale: "small",
|
|
368
|
-
min_daily_orders: 5,
|
|
369
|
-
other_conditions: ["Pure-digital delivery", "Periodic content or SaaS service"],
|
|
370
|
-
},
|
|
371
|
-
similar_industries: ["freelance", "education"],
|
|
372
|
-
novel_capabilities: [],
|
|
373
|
-
disabled_builtin_constraints: ["require_arbitration", "require_compensation_fund", "require_wip_evidence"],
|
|
374
|
-
},
|
|
375
|
-
{
|
|
376
|
-
name: "retail",
|
|
377
|
-
display_name: "Retail",
|
|
378
|
-
version: "v1",
|
|
379
|
-
source: "builtin",
|
|
380
|
-
...fetchTemplate("retail"),
|
|
381
|
-
capabilities_used: [
|
|
382
|
-
"permission.index_create", "permission.role_assign",
|
|
383
|
-
"guard.validate_buy", "guard.validate_wip_hash",
|
|
384
|
-
"machine.node_topology",
|
|
385
|
-
"treasury.owner_receive",
|
|
386
|
-
"allocation.distribute",
|
|
387
|
-
"service.publish", "progress.advance",
|
|
388
|
-
"arb.vote_weighted", "reward.claim_guard", "contact.im_create",
|
|
389
|
-
],
|
|
390
|
-
config_overrides: {
|
|
391
|
-
machine: {
|
|
392
|
-
wip_required: true,
|
|
393
|
-
wip_field: "tracking_number",
|
|
394
|
-
confirm_gate: true,
|
|
395
|
-
refund_requires_approval: true,
|
|
396
|
-
},
|
|
397
|
-
service: { logistics_mode: "standard", first_order_discount: true },
|
|
398
|
-
},
|
|
399
|
-
expected_benefits: [
|
|
400
|
-
{ metric: "Return dispute rate", expected_value: "-35%", evidence: "logistics WIP + refund path assurance" },
|
|
401
|
-
{ metric: "Repurchase rate", expected_value: "+20%", evidence: "spend cashback reward" },
|
|
402
|
-
{ metric: "Product authenticity traceability", expected_value: "100%", evidence: "WIP verifies product/logistics info" },
|
|
403
|
-
],
|
|
404
|
-
risk_appetite: "conservative",
|
|
405
|
-
risk_constraints: {
|
|
406
|
-
require_arbitration: true,
|
|
407
|
-
require_compensation_fund: true,
|
|
408
|
-
require_wip_evidence: false,
|
|
409
|
-
compensation_fund_coverage_ratio: 5,
|
|
410
|
-
other_constraints: ["refund_window >= 7d", "confirm_gate: only buyer can confirm receipt"],
|
|
411
|
-
},
|
|
412
|
-
applicable_conditions: {
|
|
413
|
-
business_scale: "medium",
|
|
414
|
-
min_daily_orders: 10,
|
|
415
|
-
other_conditions: ["Has logistics shipping leg", "High-frequency small-ticket transactions"],
|
|
416
|
-
},
|
|
417
|
-
similar_industries: ["rental", "subscription"],
|
|
418
|
-
novel_capabilities: [],
|
|
419
|
-
disabled_builtin_constraints: ["require_wip_evidence"],
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
name: "retail_d2c",
|
|
423
|
-
display_name: "Retail D2C (Direct-to-Consumer)",
|
|
424
|
-
version: "v1",
|
|
425
|
-
source: "builtin",
|
|
426
|
-
...fetchTemplate("retail_d2c"),
|
|
427
|
-
capabilities_used: [
|
|
428
|
-
"permission.index_create", "permission.role_assign",
|
|
429
|
-
"guard.validate_withdraw", "guard.validate_refund",
|
|
430
|
-
"machine.node_topology",
|
|
431
|
-
"allocation.distribute",
|
|
432
|
-
"service.publish", "progress.advance",
|
|
433
|
-
"contact.im_create",
|
|
434
|
-
],
|
|
435
|
-
config_overrides: {
|
|
436
|
-
machine: {
|
|
437
|
-
wip_required: false,
|
|
438
|
-
confirm_gate: true,
|
|
439
|
-
refund_requires_approval: false,
|
|
440
|
-
},
|
|
441
|
-
service: { logistics_mode: "merchant_managed", multi_recipient_allocation: true },
|
|
442
|
-
},
|
|
443
|
-
expected_benefits: [
|
|
444
|
-
{ metric: "Merchant revenue share", expected_value: "97%", evidence: "No platform commission — only 3% processing fee" },
|
|
445
|
-
{ metric: "Fund safety", expected_value: "contract-grade", evidence: "Allocation escrow + Guard verification replaces platform custody" },
|
|
446
|
-
{ metric: "Delivery reliability", expected_value: "high", evidence: "withdraw_guard enforces delivery confirmation before payment" },
|
|
447
|
-
],
|
|
448
|
-
risk_appetite: "balanced",
|
|
449
|
-
risk_constraints: {
|
|
450
|
-
require_arbitration: false,
|
|
451
|
-
require_compensation_fund: false,
|
|
452
|
-
require_wip_evidence: false,
|
|
453
|
-
other_constraints: [
|
|
454
|
-
"Allocation escrow required (withdraw_guard + refund_guard)",
|
|
455
|
-
"Service ↔ Guard circular dependency requires 3-step creation pattern",
|
|
456
|
-
],
|
|
457
|
-
},
|
|
458
|
-
applicable_conditions: {
|
|
459
|
-
business_scale: "small",
|
|
460
|
-
min_daily_orders: 1,
|
|
461
|
-
other_conditions: ["Independent storefront (no marketplace)", "Merchant-managed logistics", "Allocation escrow model"],
|
|
462
|
-
},
|
|
463
|
-
similar_industries: ["retail", "subscription"],
|
|
464
|
-
novel_capabilities: ["Allocation escrow as platform-custody alternative", "Multi-recipient allocation (merchant + processor)"],
|
|
465
|
-
disabled_builtin_constraints: ["require_arbitration", "require_compensation_fund", "require_wip_evidence"],
|
|
466
|
-
},
|
|
467
|
-
{
|
|
468
|
-
name: "general",
|
|
469
|
-
display_name: "General",
|
|
470
|
-
version: "v1",
|
|
471
|
-
source: "builtin",
|
|
472
|
-
...fetchTemplate("general"),
|
|
473
|
-
capabilities_used: [
|
|
474
|
-
"permission.index_create",
|
|
475
|
-
"machine.node_topology",
|
|
476
|
-
"treasury.owner_receive",
|
|
477
|
-
"allocation.distribute",
|
|
478
|
-
"service.publish",
|
|
479
|
-
"progress.advance",
|
|
480
|
-
],
|
|
481
|
-
expected_benefits: [
|
|
482
|
-
{ metric: "Flexibility", expected_value: "100%", evidence: "User customizes all trust mechanism parameters" },
|
|
483
|
-
{ metric: "Degraded safety", expected_value: "usable", evidence: "Can fall back to general at any time" },
|
|
484
|
-
],
|
|
485
|
-
risk_appetite: "balanced",
|
|
486
|
-
risk_constraints: {
|
|
487
|
-
require_arbitration: false,
|
|
488
|
-
require_compensation_fund: false,
|
|
489
|
-
require_wip_evidence: false,
|
|
490
|
-
},
|
|
491
|
-
applicable_conditions: {
|
|
492
|
-
business_scale: "small",
|
|
493
|
-
other_conditions: ["Fallback degraded mode", "Hybrid scenarios not covered by other industries"],
|
|
494
|
-
},
|
|
495
|
-
similar_industries: [],
|
|
496
|
-
novel_capabilities: [],
|
|
497
|
-
disabled_builtin_constraints: ["require_arbitration", "require_compensation_fund", "require_wip_evidence"],
|
|
498
|
-
},
|
|
499
|
-
];
|
|
1
|
+
import{getScenarioMode}from'../knowledge/scenario-modes.js';import{getIndustryTraits}from'../knowledge/industry-registry.js';import{getIndustryRiskChecks,getIndustryNeeds}from'../customer/index.js';import{getFlywheelForIndustry}from'../knowledge/acquisition-flywheel.js';const GENERAL_TRAITS={'has_logistics':![],'communication_heavy':![],'pure_digital':![],'long_cycle':![],'deposit_required':![],'multi_tier_allocation':![],'regulatory_intensity':'low','trust_sensitivity':'medium','consumption_frequency':'occasional','avg_ticket_size':'medium'},GENERAL_FLYWHEEL={'industry':'general','trustSellingPoints':[],'keyActions':[],'rewardStrategy':'User-defined','discountStrategy':'User-defined','trustDescription':'User-defined\x20trust\x20mechanism'},GENERAL_MACHINE_SHAPE=[{'name':'paid','role':'Entry:\x20order\x20created\x20and\x20paid'},{'name':'delivering','role':'Service\x20delivery\x20in\x20progress'},{'name':'delivered','role':'Deliverable\x20available\x20for\x20review'},{'name':'completed','role':'Service\x20completed,\x20funds\x20released'},{'name':'cancelled','role':'Pre-delivery\x20cancellation\x20—\x20triggers\x20refund\x20Allocator'}],GENERAL_ALLOCATOR={'recipient':'signer','count':0x1,'mode':'surplus','description':'Default:\x20surplus\x20to\x20service\x20owner\x20(general\x20fallback)'},RETAIL_MACHINE_SHAPE=[{'name':'paid','role':'Entry:\x20order\x20paid\x20via\x20Service.buy();\x20Machine\x20starts\x20here'},{'name':'shipped','role':'Merchant\x20ships\x20goods,\x20records\x20shipping\x20WIP\x20(tracking\x20number)'},{'name':'delivered','role':'Goods\x20delivered\x20to\x20buyer'},{'name':'confirmed','role':'Buyer\x20confirms\x20receipt'},{'name':'completed','role':'Funds\x20released\x20to\x20merchant'},{'name':'returned','role':'Buyer\x20ships\x20goods\x20back\x20—\x20triggers\x20refund\x20Allocator\x20(R-M1-11\x20compliant)'},{'name':'cancelled','role':'Pre-ship\x20cancellation\x20—\x20triggers\x20refund\x20Allocator'}],RETAIL_GUARDS=[{'template_id':'buy_guard_inventory','host':'service','purpose':'Verify\x20inventory\x20and\x20buyer\x20address\x20on\x20purchase'},{'template_id':'ship_guard_wip','host':'machine','purpose':'Shipping\x20evidence\x20WIP\x20(logistics\x20tracking\x20number)'},{'template_id':'confirm_guard_signer','host':'machine','purpose':'Only\x20buyer\x20can\x20confirm\x20receipt'},{'template_id':'refund_guard_permission','host':'machine','purpose':'Return\x20&\x20refund\x20requires\x20merchant\x20permission\x20OR\x20arbiter'},{'template_id':'tpl_payment_exception_compensation','host':'machine','purpose':'Logistics\x20delay\x20exception\x20compensation\x20(§2.13)'}],RETAIL_ALLOCATOR={'recipient':'entity','count':0x2,'mode':'rate','description':'Platform\x2010%\x20+\x20Merchant\x2090%\x20(rate-based\x20split)'},RETAIL_KEY_RISK='Products\x20don\x27t\x20match\x20description\x20—\x20no\x20refund\x20path\x20for\x20returns',RETAIL_BUILD_NOTES=['Logistics\x20WIP\x20(tracking\x20number)\x20is\x20essential\x20—\x20shipping\x20evidence\x20protects\x20both\x20parties\x20in\x20return\x20disputes','confirm_gate\x20prevents\x20merchant\x20from\x20self-confirming\x20receipt','Refund\x20path\x20must\x20support\x20return-and-exchange\x20flow','Compensation\x20fund\x20covers\x20return/exchange\x20disputes'],RETAIL_D2C_MACHINE_SHAPE=[{'name':'ordered','role':'Entry:\x20order\x20created\x20(funds\x20escrowed\x20in\x20Allocation)'},{'name':'shipped','role':'Merchant\x20ships\x20goods'},{'name':'delivered','role':'Goods\x20delivered\x20to\x20buyer'},{'name':'completed','role':'Buyer\x20confirms\x20receipt\x20—\x20withdraw_guard\x20releases\x20funds'},{'name':'cancelled','role':'Pre-ship\x20cancellation\x20—\x20refund_guard\x20refunds\x20buyer'}],RETAIL_D2C_GUARDS=[{'template_id':'withdraw_guard_delivery','host':'service','purpose':'Release\x20funds\x20to\x20merchant\x20+\x20processor\x20on\x20order\x20completion\x20(delivery\x20confirmation)'},{'template_id':'refund_guard_cancellation','host':'service','purpose':'Refund\x20100%\x20to\x20buyer\x20on\x20order\x20cancellation'}],RETAIL_D2C_ALLOCATOR={'recipient':'entity','count':0x2,'mode':'rate','description':'Merchant\x2097%\x20+\x20Processor\x203%\x20(rate-based\x20split,\x20no\x20platform\x20commission)'},RETAIL_D2C_KEY_RISK='No\x20platform\x20arbitration\x20—\x20disputes\x20rely\x20on\x20optional\x20Arbitration\x20or\x20off-chain\x20chargeback',RETAIL_D2C_BUILD_NOTES=['Allocation\x20escrow\x20replaces\x20platform\x20custody\x20—\x20funds\x20locked\x20in\x20contract\x20until\x20Guard\x20releases','withdraw_guard\x20enforces\x20delivery\x20gate\x20—\x20merchant\x20must\x20reach\x20\x27completed\x27\x20state\x20to\x20receive\x20payment','refund_guard\x20ensures\x20100%\x20refund\x20on\x20cancellation\x20—\x20no\x20merchant\x20approval\x20needed','No\x20buy_guard\x20needed\x20—\x20D2C\x20doesn\x27t\x20gate\x20purchases\x20(open\x20storefront)','Arbitration\x20is\x20optional\x20—\x20add\x20when\x20dispute\x20volume\x20justifies\x20the\x20cost','Service\x20↔\x20Guard\x20circular\x20dependency:\x20create\x20Service\x20(unpublished)\x20→\x20create\x20Guards\x20→\x20update\x20Service\x20(publish)'],SUPPORTED_INDUSTRY_SET=new Set(['freelance','rental','education','travel','subscription','retail','retail_d2c']);function fetchTemplate(a){const b=a==='retail_d2c'?'retail':a,c=getIndustryTraits(b)??GENERAL_TRAITS,d=SUPPORTED_INDUSTRY_SET['has'](a),e=a==='retail_d2c'?'retail':a,f=d?getIndustryRiskChecks(e):[],g=d?getIndustryNeeds(e):[],h=getFlywheelForIndustry(b)??GENERAL_FLYWHEEL;let i,j,k,l,m;if(a==='retail')i=RETAIL_MACHINE_SHAPE,j=RETAIL_GUARDS,k=RETAIL_ALLOCATOR,l=RETAIL_KEY_RISK,m=RETAIL_BUILD_NOTES;else{if(a==='retail_d2c')i=RETAIL_D2C_MACHINE_SHAPE,j=RETAIL_D2C_GUARDS,k=RETAIL_D2C_ALLOCATOR,l=RETAIL_D2C_KEY_RISK,m=RETAIL_D2C_BUILD_NOTES;else{if(a==='general'){const n=getScenarioMode('general');i=GENERAL_MACHINE_SHAPE,j=[],k=GENERAL_ALLOCATOR,l=n?.['key_risk']??'No\x20safety\x20net\x20—\x20user\x20must\x20design\x20all\x20trust\x20mechanisms\x20manually',m=n?.['build_notes'];}else{const o=getScenarioMode(a);if(!o)throw new Error('[modes.ts]\x20No\x20scenario\x20mode\x20found\x20for\x20industry:\x20'+a);i=o['machine_shape'],j=o['guards'],k=o['allocator'],l=o['key_risk'],m=o['build_notes'];}}}return{'traits':c,'risk_checks':f,'needs':g,'flywheel':h,'machine_shape':i,'guards':j,'allocator':k,'key_risk':l,'build_notes':m};}export const BUILTIN_MODES=[{'name':'freelance','display_name':'Freelance','version':'v1','source':'builtin',...fetchTemplate('freelance'),'capabilities_used':['permission.index_create','permission.role_assign','guard.validate_buy','guard.validate_wip_hash','machine.node_topology','treasury.owner_receive','allocation.distribute','allocation.distribute_milestone','service.publish','progress.advance','arb.vote_weighted','contact.im_create'],'config_overrides':{'service':{'setting_locked_time':'30d','engagement_type':'milestone'},'machine':{'wip_required':!![],'wip_hash_algorithm':'sha256','acceptance_gate':!![]}},'expected_benefits':[{'metric':'Dispute\x20rate\x20reduction','expected_value':'40%','evidence':'WIP\x20hash\x20+\x20milestone\x20allocation\x20enforces\x20delivery\x20evidence'},{'metric':'Delivery\x20confirmation\x20efficiency','expected_value':'+50%','evidence':'acceptance\x20gate\x20automates\x20acceptance\x20workflow'},{'metric':'Provider\x20payment\x20assurance','expected_value':'100%','evidence':'Funds\x20auto-release\x20to\x20provider\x20after\x20accepted\x20node'}],'risk_appetite':'balanced','risk_constraints':{'require_arbitration':!![],'require_compensation_fund':![],'require_wip_evidence':!![],'other_constraints':['setting_locked_time\x20>=\x207d\x20to\x20lock\x20engagement-period\x20rules','ISSUE-P1-4:\x2048h\x20auto-accept\x20requires\x20off-chain\x20keeper\x20(WoWok\x20Guard\x20does\x20not\x20support\x20time-based\x20triggers).\x20Deploy\x20a\x20keeper\x20service\x20that\x20polls\x20Progress\x20objects\x20in\x20\x27delivered\x27\x20state\x20and\x20calls\x20adminUnhold\x20(permission\x20224)\x20after\x2048h\x20timeout.\x20See\x20keeper\x20template\x20in\x20docs.']},'applicable_conditions':{'business_scale':'small','min_daily_orders':0x1,'other_conditions':['Suitable\x20for\x20mid-to-long-term\x20project\x20delivery','Requires\x20milestone-based\x20phased\x20acceptance']},'similar_industries':['rental','education'],'novel_capabilities':['allocation.distribute_milestone'],'disabled_builtin_constraints':['require_compensation_fund']},{'name':'rental','display_name':'Rental','version':'v1','source':'builtin',...fetchTemplate('rental'),'capabilities_used':['permission.index_create','permission.role_assign','guard.validate_buy','guard.validate_wip_hash','machine.node_topology','treasury.owner_receive','allocation.distribute','service.publish','progress.advance','arb.vote_weighted','contact.im_create'],'config_overrides':{'treasury':{'deposit_escrow':!![],'deposit_deductible':!![]},'machine':{'wip_required':!![],'wip_stages':['handover_out','returned'],'inspection_gate':!![]}},'expected_benefits':[{'metric':'Deposit\x20dispute\x20rate','expected_value':'-60%','evidence':'pre-rental\x20WIP\x20mandatorily\x20records\x20item\x27s\x20original\x20state'},{'metric':'Damage\x20liability\x20accuracy','expected_value':'+70%','evidence':'pre/post\x20WIP\x20hash\x20comparison\x20eliminates\x20unfounded\x20deductions'},{'metric':'Trust\x20score','expected_value':'+25%','evidence':'compensation_fund\x20covers\x20damage\x20risk'}],'risk_appetite':'conservative','risk_constraints':{'require_arbitration':!![],'require_compensation_fund':!![],'require_wip_evidence':!![],'max_single_transaction':0x2710,'compensation_fund_coverage_ratio':0xa,'other_constraints':['Deposit\x20must\x20be\x20escrowed\x20(no\x20direct\x20transfer)','lock_duration\x20>=\x207d\x20to\x20prevent\x20arbitrary\x20merchant\x20withdrawal']},'applicable_conditions':{'business_scale':'small','min_daily_orders':0x1,'other_conditions':['Requires\x20physical\x20item\x20handover','Has\x20logistics\x20or\x20offline\x20delivery\x20leg']},'similar_industries':['retail','travel'],'novel_capabilities':[]},{'name':'education','display_name':'Education','version':'v1','source':'builtin',...fetchTemplate('education'),'capabilities_used':['permission.index_create','permission.role_assign','guard.validate_buy','guard.validate_wip_hash','machine.node_topology','treasury.owner_receive','allocation.distribute','allocation.distribute_milestone','service.publish','progress.advance','arb.vote_weighted','contact.im_create'],'config_overrides':{'allocation':{'strategy':{'recipient':'entity','count':0x1,'mode':'amount','description':'1/N\x20of\x20tuition\x20released\x20per\x20session\x20attendance'},'session_threshold':!![]},'service':{'setting_locked_time':'120d','anti_runaway':!![]}},'expected_benefits':[{'metric':'Refund\x20dispute\x20rate','expected_value':'-50%','evidence':'per-session\x20release\x20distributes\x20tuition\x20by\x20class'},{'metric':'Institution\x20runaway\x20risk','expected_value':'eliminated','evidence':'Funds\x20release\x20per\x20session;\x20undelivered\x20portion\x20is\x20refundable'},{'metric':'Attendance\x20traceability','expected_value':'100%','evidence':'attendance_guard\x20signs\x20each\x20session'}],'risk_appetite':'conservative','risk_constraints':{'require_arbitration':!![],'require_compensation_fund':!![],'require_wip_evidence':![],'other_constraints':['setting_locked_time\x20covers\x20the\x20entire\x20term\x20(>=90d)','Long-cycle\x20projects\x20must\x20monitor\x20>90d\x20progress']},'applicable_conditions':{'business_scale':'medium','min_daily_orders':0x1,'other_conditions':['Long-cycle\x20delivery','Requires\x20per-session\x20acceptance','Regulatory\x20intensity:\x20medium']},'similar_industries':['freelance','subscription'],'novel_capabilities':['allocation.distribute_milestone'],'disabled_builtin_constraints':['require_wip_evidence']},{'name':'travel','display_name':'Travel','version':'v1','source':'builtin',...fetchTemplate('travel'),'capabilities_used':['permission.index_create','permission.role_assign','guard.validate_buy','guard.validate_wip_hash','machine.node_topology','treasury.owner_receive','allocation.distribute','service.publish','progress.advance','arb.vote_weighted','contact.im_create'],'config_overrides':{'allocation':{'strategy':{'recipient':'entity','count':0x3,'mode':'amount','description':'Deposit\x2020%\x20to\x20agency,\x20final\x2080%\x20to\x20agency,\x20then\x20agency-side\x20Allocation\x20splits\x20to\x20hotel/guide/driver\x20per\x20segment'},'multi_tier_waterfall':!![],'guard_chaining':!![]},'service':{'supply_chain_suborders':!![],'segment_guard_required':!![]}},'expected_benefits':[{'metric':'Fund\x20transparency','expected_value':'100%','evidence':'multi-tier\x20allocation\x20splits\x20per\x20segment\x20to\x20hotel/guide/driver'},{'metric':'Itinerary\x20change\x20disputes','expected_value':'-45%','evidence':'segment\x20WIP\x20accepts\x20each\x20leg'},{'metric':'Breach\x20compensation\x20assurance','expected_value':'+60%','evidence':'compensation_fund\x20covers\x20itinerary\x20breach'}],'risk_appetite':'balanced','risk_constraints':{'require_arbitration':!![],'require_compensation_fund':!![],'require_wip_evidence':!![],'other_constraints':['Multi-tier\x20allocation\x20requires\x20guard\x20chaining\x20validation','deposit\x2020%\x20+\x20final\x2080%\x20two-stage\x20payment']},'applicable_conditions':{'business_scale':'medium','min_daily_orders':0x1,'other_conditions':['Multi-segment\x20itinerary\x20combination','Requires\x20hotel/guide/driver\x20multi-party\x20allocation']},'similar_industries':['rental','education'],'novel_capabilities':[]},{'name':'subscription','display_name':'Subscription','version':'v1','source':'builtin',...fetchTemplate('subscription'),'capabilities_used':['permission.index_create','permission.role_assign','guard.validate_buy','machine.node_topology','treasury.owner_receive','allocation.distribute','service.publish','progress.advance','arb.vote_weighted','reward.claim_guard','contact.im_create'],'config_overrides':{'machine':{'no_auto_renew_trap':!![],'user_confirmed_charge':!![],'cancel_anytime':!![],'next_period_effective':!![]},'service':{'creator_data_subscription':!![],'periodic_billing':!![]}},'expected_benefits':[{'metric':'Renewal\x20rate','expected_value':'+25%','evidence':'loyalty\x20reward\x20+\x20transparent\x20subscription\x20mechanism'},{'metric':'Cancellation\x20disputes','expected_value':'eliminated','evidence':'cancel\x20anytime\x20+\x20no\x20auto-renew\x20trap'},{'metric':'Creator\x20retention','expected_value':'+30%','evidence':'deliver_guard_wip\x20prevents\x20content\x20dropout'}],'risk_appetite':'aggressive','risk_constraints':{'require_arbitration':![],'require_compensation_fund':![],'require_wip_evidence':![],'compensation_fund_coverage_ratio':0x3,'other_constraints':['Forbid\x20dead-end\x20nodes\x20(prevent\x20lock-in)','charge_guard\x20requires\x20user\x20confirmation\x20each\x20period']},'applicable_conditions':{'business_scale':'small','min_daily_orders':0x5,'other_conditions':['Pure-digital\x20delivery','Periodic\x20content\x20or\x20SaaS\x20service']},'similar_industries':['freelance','education'],'novel_capabilities':[],'disabled_builtin_constraints':['require_arbitration','require_compensation_fund','require_wip_evidence']},{'name':'retail','display_name':'Retail','version':'v1','source':'builtin',...fetchTemplate('retail'),'capabilities_used':['permission.index_create','permission.role_assign','guard.validate_buy','guard.validate_wip_hash','machine.node_topology','treasury.owner_receive','allocation.distribute','service.publish','progress.advance','arb.vote_weighted','reward.claim_guard','contact.im_create'],'config_overrides':{'machine':{'wip_required':!![],'wip_field':'tracking_number','confirm_gate':!![],'refund_requires_approval':!![]},'service':{'logistics_mode':'standard','first_order_discount':!![]}},'expected_benefits':[{'metric':'Return\x20dispute\x20rate','expected_value':'-35%','evidence':'logistics\x20WIP\x20+\x20refund\x20path\x20assurance'},{'metric':'Repurchase\x20rate','expected_value':'+20%','evidence':'spend\x20cashback\x20reward'},{'metric':'Product\x20authenticity\x20traceability','expected_value':'100%','evidence':'WIP\x20verifies\x20product/logistics\x20info'}],'risk_appetite':'conservative','risk_constraints':{'require_arbitration':!![],'require_compensation_fund':!![],'require_wip_evidence':![],'compensation_fund_coverage_ratio':0x5,'other_constraints':['refund_window\x20>=\x207d','confirm_gate:\x20only\x20buyer\x20can\x20confirm\x20receipt']},'applicable_conditions':{'business_scale':'medium','min_daily_orders':0xa,'other_conditions':['Has\x20logistics\x20shipping\x20leg','High-frequency\x20small-ticket\x20transactions']},'similar_industries':['rental','subscription'],'novel_capabilities':[],'disabled_builtin_constraints':['require_wip_evidence']},{'name':'retail_d2c','display_name':'Retail\x20D2C\x20(Direct-to-Consumer)','version':'v1','source':'builtin',...fetchTemplate('retail_d2c'),'capabilities_used':['permission.index_create','permission.role_assign','guard.validate_withdraw','guard.validate_refund','machine.node_topology','allocation.distribute','service.publish','progress.advance','contact.im_create'],'config_overrides':{'machine':{'wip_required':![],'confirm_gate':!![],'refund_requires_approval':![]},'service':{'logistics_mode':'merchant_managed','multi_recipient_allocation':!![]}},'expected_benefits':[{'metric':'Merchant\x20revenue\x20share','expected_value':'97%','evidence':'No\x20platform\x20commission\x20—\x20only\x203%\x20processing\x20fee'},{'metric':'Fund\x20safety','expected_value':'contract-grade','evidence':'Allocation\x20escrow\x20+\x20Guard\x20verification\x20replaces\x20platform\x20custody'},{'metric':'Delivery\x20reliability','expected_value':'high','evidence':'withdraw_guard\x20enforces\x20delivery\x20confirmation\x20before\x20payment'}],'risk_appetite':'balanced','risk_constraints':{'require_arbitration':![],'require_compensation_fund':![],'require_wip_evidence':![],'other_constraints':['Allocation\x20escrow\x20required\x20(withdraw_guard\x20+\x20refund_guard)','Service\x20↔\x20Guard\x20circular\x20dependency\x20requires\x203-step\x20creation\x20pattern']},'applicable_conditions':{'business_scale':'small','min_daily_orders':0x1,'other_conditions':['Independent\x20storefront\x20(no\x20marketplace)','Merchant-managed\x20logistics','Allocation\x20escrow\x20model']},'similar_industries':['retail','subscription'],'novel_capabilities':['Allocation\x20escrow\x20as\x20platform-custody\x20alternative','Multi-recipient\x20allocation\x20(merchant\x20+\x20processor)'],'disabled_builtin_constraints':['require_arbitration','require_compensation_fund','require_wip_evidence']},{'name':'general','display_name':'General','version':'v1','source':'builtin',...fetchTemplate('general'),'capabilities_used':['permission.index_create','machine.node_topology','treasury.owner_receive','allocation.distribute','service.publish','progress.advance'],'expected_benefits':[{'metric':'Flexibility','expected_value':'100%','evidence':'User\x20customizes\x20all\x20trust\x20mechanism\x20parameters'},{'metric':'Degraded\x20safety','expected_value':'usable','evidence':'Can\x20fall\x20back\x20to\x20general\x20at\x20any\x20time'}],'risk_appetite':'balanced','risk_constraints':{'require_arbitration':![],'require_compensation_fund':![],'require_wip_evidence':![]},'applicable_conditions':{'business_scale':'small','other_conditions':['Fallback\x20degraded\x20mode','Hybrid\x20scenarios\x20not\x20covered\x20by\x20other\x20industries']},'similar_industries':[],'novel_capabilities':[],'disabled_builtin_constraints':['require_arbitration','require_compensation_fund','require_wip_evidence']}];
|