@wowok/agent-mcp 2.7.1 → 2.7.3
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/account-events.d.ts +32 -0
- package/dist/customer/account-events.js +1 -0
- package/dist/customer/customer-advice.d.ts +1 -0
- 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.d.ts +1 -1
- 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.d.ts +2 -0
- package/dist/customer/reminder-system.js +1 -316
- package/dist/customer/risk-assessment.d.ts +1 -0
- package/dist/customer/risk-assessment.js +1 -397
- package/dist/customer/types.d.ts +2 -0
- 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/arbitration-score.d.ts +41 -0
- package/dist/evaluation/builtins/arbitration-score.js +1 -0
- package/dist/evaluation/builtins/demand-match.js +1 -153
- package/dist/evaluation/builtins/index.d.ts +1 -0
- 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/category-match-rules.d.ts +30 -0
- package/dist/evaluation/category-match-rules.js +1 -0
- 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 +2 -0
- package/dist/evaluation/index.js +1 -11
- package/dist/evaluation/location-match.d.ts +42 -0
- package/dist/evaluation/location-match.js +1 -0
- package/dist/evaluation/node-game.d.ts +31 -3
- package/dist/evaluation/node-game.js +1 -57
- package/dist/evaluation/path-reasoning.d.ts +35 -0
- package/dist/evaluation/path-reasoning.js +1 -0
- package/dist/evaluation/region.d.ts +6 -0
- package/dist/evaluation/region.js +1 -36
- package/dist/evaluation/types.d.ts +18 -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.d.ts +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.d.ts +6 -0
- package/dist/extensions/index.js +1 -6
- package/dist/extensions/industry-layers.d.ts +75 -0
- package/dist/extensions/industry-layers.js +1 -0
- package/dist/extensions/industry-pack.d.ts +105 -0
- package/dist/extensions/industry-pack.js +1 -0
- package/dist/extensions/metric-registry.js +1 -257
- package/dist/extensions/mode-evaluator.d.ts +1 -1
- package/dist/extensions/mode-evaluator.js +1 -170
- package/dist/extensions/modes.js +1 -499
- package/dist/extensions/registry.d.ts +1 -0
- package/dist/extensions/registry.js +1 -717
- package/dist/extensions/types.js +1 -1
- package/dist/graph/base.d.ts +8 -0
- package/dist/graph/base.js +1 -0
- package/dist/harness/auto-escalation.js +1 -68
- package/dist/harness/checkpoint.js +1 -129
- package/dist/harness/index.d.ts +1 -0
- package/dist/harness/index.js +1 -78
- package/dist/harness/plan.d.ts +2 -0
- package/dist/harness/plan.js +1 -315
- package/dist/harness/recover.d.ts +1 -1
- package/dist/harness/recover.js +1 -139
- package/dist/harness/types.d.ts +2 -3
- 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/anti-cheat.d.ts +37 -0
- package/dist/knowledge/anti-cheat.js +1 -0
- package/dist/knowledge/arb-confirm.d.ts +28 -0
- package/dist/knowledge/arb-confirm.js +1 -0
- package/dist/knowledge/arb-risk.js +1 -210
- package/dist/knowledge/arb-translation.d.ts +48 -0
- package/dist/knowledge/arb-translation.js +1 -0
- 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/audit-rules.js +1 -141
- package/dist/knowledge/bridge-confirm.d.ts +26 -0
- package/dist/knowledge/bridge-confirm.js +1 -0
- package/dist/knowledge/bridge-risk.js +1 -263
- package/dist/knowledge/bridge-translation.d.ts +37 -0
- package/dist/knowledge/bridge-translation.js +1 -0
- package/dist/knowledge/contact-confirm.d.ts +27 -0
- package/dist/knowledge/contact-confirm.js +1 -0
- package/dist/knowledge/contact-risk.js +1 -200
- package/dist/knowledge/contact-templates.js +1 -60
- package/dist/knowledge/contact-translation.d.ts +39 -0
- package/dist/knowledge/contact-translation.js +1 -0
- package/dist/knowledge/demand-confirm.js +1 -206
- package/dist/knowledge/demand-context.d.ts +17 -0
- package/dist/knowledge/demand-context.js +1 -0
- package/dist/knowledge/demand-ledger.d.ts +26 -0
- package/dist/knowledge/demand-ledger.js +1 -0
- package/dist/knowledge/demand-matching.js +1 -132
- package/dist/knowledge/demand-puzzle.d.ts +29 -0
- package/dist/knowledge/demand-puzzle.js +1 -0
- package/dist/knowledge/demand-risk.js +1 -240
- package/dist/knowledge/demand-templates.d.ts +12 -0
- package/dist/knowledge/demand-templates.js +1 -0
- 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/evidence-review.d.ts +12 -0
- package/dist/knowledge/evidence-review.js +1 -0
- package/dist/knowledge/examples-scanner-cli.js +1 -26
- package/dist/knowledge/examples-scanner.js +1 -843
- package/dist/knowledge/flywheel-loop.d.ts +0 -1
- 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.d.ts +1 -1
- 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.d.ts +71 -3
- 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/market-metrics.d.ts +12 -0
- package/dist/knowledge/market-metrics.js +1 -0
- package/dist/knowledge/market-operations.d.ts +46 -0
- package/dist/knowledge/market-operations.js +1 -0
- package/dist/knowledge/mcp-schema-audit-cli.js +1 -45
- package/dist/knowledge/mcp-schema-audit.d.ts +22 -22
- 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-confirm.d.ts +26 -0
- package/dist/knowledge/payment-confirm.js +1 -0
- package/dist/knowledge/payment-risk.js +1 -249
- package/dist/knowledge/payment-translation.d.ts +37 -0
- package/dist/knowledge/payment-translation.js +1 -0
- package/dist/knowledge/permission-confirm.js +1 -426
- package/dist/knowledge/permission-context.js +1 -224
- package/dist/knowledge/permission-ledger.d.ts +11 -0
- 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-confirm.d.ts +29 -0
- package/dist/knowledge/personal-confirm.js +1 -0
- package/dist/knowledge/personal-risk.js +1 -212
- package/dist/knowledge/personal-translation.d.ts +37 -0
- package/dist/knowledge/personal-translation.js +1 -0
- package/dist/knowledge/process-model.d.ts +1 -11
- 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-context.d.ts +17 -0
- package/dist/knowledge/proof-context.js +1 -0
- package/dist/knowledge/proof-ledger.d.ts +34 -0
- package/dist/knowledge/proof-ledger.js +1 -0
- package/dist/knowledge/proof-puzzle.d.ts +35 -0
- package/dist/knowledge/proof-puzzle.js +1 -0
- package/dist/knowledge/proof-risk.js +1 -207
- package/dist/knowledge/proof-templates.d.ts +22 -0
- package/dist/knowledge/proof-templates.js +1 -0
- package/dist/knowledge/proof-translation.js +1 -283
- package/dist/knowledge/registrar-confirm.d.ts +26 -0
- package/dist/knowledge/registrar-confirm.js +1 -0
- package/dist/knowledge/registrar-risk.js +1 -217
- package/dist/knowledge/registrar-translation.d.ts +37 -0
- package/dist/knowledge/registrar-translation.js +1 -0
- package/dist/knowledge/repository-confirm.js +1 -286
- package/dist/knowledge/repository-context.d.ts +12 -0
- package/dist/knowledge/repository-context.js +1 -0
- package/dist/knowledge/repository-ledger.d.ts +25 -0
- package/dist/knowledge/repository-ledger.js +1 -0
- package/dist/knowledge/repository-puzzle.d.ts +30 -0
- package/dist/knowledge/repository-puzzle.js +1 -0
- package/dist/knowledge/repository-risk.js +1 -373
- package/dist/knowledge/repository-templates.d.ts +14 -0
- package/dist/knowledge/repository-templates.js +1 -0
- package/dist/knowledge/repository-translation.js +1 -445
- package/dist/knowledge/reputation-rules.js +1 -99
- package/dist/knowledge/resource-confirm.d.ts +25 -0
- package/dist/knowledge/resource-confirm.js +1 -0
- package/dist/knowledge/resource-risk.js +1 -157
- package/dist/knowledge/resource-translation.d.ts +37 -0
- package/dist/knowledge/resource-translation.js +1 -0
- package/dist/knowledge/reward-confirm.js +1 -526
- package/dist/knowledge/reward-context.d.ts +2 -2
- 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.d.ts +1 -0
- 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.d.ts +1 -1
- 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/universal-template.d.ts +22 -0
- package/dist/knowledge/universal-template.js +1 -0
- package/dist/knowledge/util-confirm.d.ts +24 -0
- package/dist/knowledge/util-confirm.js +1 -0
- package/dist/knowledge/util-risk.js +1 -135
- package/dist/knowledge/util-translation.d.ts +38 -0
- package/dist/knowledge/util-translation.js +1 -0
- package/dist/knowledge/workflow-guidance.d.ts +116 -0
- package/dist/knowledge/workflow-guidance.js +1 -0
- 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/employee-kpi.d.ts +25 -0
- package/dist/participation/employee-kpi.js +1 -0
- package/dist/participation/employee-store.d.ts +16 -0
- package/dist/participation/employee-store.js +1 -0
- package/dist/participation/index.d.ts +2 -0
- package/dist/participation/index.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.d.ts +9 -2
- package/dist/persona/index.js +1 -71
- package/dist/persona/local-region.d.ts +20 -0
- package/dist/persona/local-region.js +1 -0
- package/dist/persona/model.js +1 -111
- package/dist/persona/overrides.d.ts +10 -0
- package/dist/persona/overrides.js +1 -0
- package/dist/persona/pack-personae.d.ts +11 -0
- package/dist/persona/pack-personae.js +1 -0
- package/dist/persona/store.js +1 -62
- package/dist/persona/strategy-intent.d.ts +20 -0
- package/dist/persona/strategy-intent.js +1 -0
- package/dist/persona/types.d.ts +6 -2
- package/dist/persona/types.js +1 -5
- package/dist/project/business-puzzle.d.ts +1 -1
- 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.d.ts +37 -1
- 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.d.ts +3 -6
- package/dist/project/graph.js +1 -340
- package/dist/project/handlers.d.ts +33 -2
- package/dist/project/handlers.js +1 -1784
- package/dist/project/index.d.ts +2 -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.d.ts +19 -0
- 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.d.ts +3 -5
- 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/project/workflow-design-assessment.d.ts +24 -0
- package/dist/project/workflow-design-assessment.js +1 -0
- 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.d.ts +1 -1
- 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.d.ts +186 -1385
- package/dist/schema/call/allocation.js +1 -34
- package/dist/schema/call/arbitration.d.ts +272 -1871
- package/dist/schema/call/arbitration.js +1 -113
- package/dist/schema/call/base.d.ts +1831 -9076
- package/dist/schema/call/base.js +1 -370
- package/dist/schema/call/bridge.d.ts +911 -3171
- package/dist/schema/call/bridge.js +1 -458
- package/dist/schema/call/contact.d.ts +135 -931
- package/dist/schema/call/contact.js +1 -37
- package/dist/schema/call/demand.d.ts +164 -1194
- package/dist/schema/call/demand.js +1 -47
- package/dist/schema/call/guard.d.ts +298 -1140
- 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.d.ts +459 -5403
- package/dist/schema/call/machine.js +1 -193
- package/dist/schema/call/order.d.ts +137 -844
- package/dist/schema/call/order.js +1 -35
- package/dist/schema/call/payment.d.ts +74 -561
- package/dist/schema/call/payment.js +1 -37
- package/dist/schema/call/permission-handler.js +1 -54
- package/dist/schema/call/permission.d.ts +335 -2791
- package/dist/schema/call/permission.js +1 -105
- package/dist/schema/call/personal.d.ts +227 -1814
- package/dist/schema/call/personal.js +1 -78
- package/dist/schema/call/progress.d.ts +140 -843
- package/dist/schema/call/progress.js +1 -47
- package/dist/schema/call/proof.d.ts +42 -258
- package/dist/schema/call/proof.js +1 -33
- package/dist/schema/call/repository.d.ts +324 -2222
- package/dist/schema/call/repository.js +1 -77
- package/dist/schema/call/reward.d.ts +153 -1183
- package/dist/schema/call/reward.js +1 -30
- package/dist/schema/call/semantic.js +1 -1679
- package/dist/schema/call/service.d.ts +376 -3431
- package/dist/schema/call/service.js +1 -184
- package/dist/schema/call/treasury.d.ts +252 -2158
- package/dist/schema/call/treasury.js +1 -71
- package/dist/schema/common/index.d.ts +222 -697
- package/dist/schema/common/index.js +1 -407
- package/dist/schema/config/index.d.ts +18 -161
- package/dist/schema/config/index.js +1 -68
- package/dist/schema/employee/index.d.ts +99 -0
- package/dist/schema/employee/index.js +1 -0
- package/dist/schema/evaluation/index.d.ts +1062 -3748
- package/dist/schema/evaluation/index.js +1 -356
- package/dist/schema/index.d.ts +3 -0
- package/dist/schema/index.js +1 -17
- package/dist/schema/industry-pack/index.d.ts +132 -0
- package/dist/schema/industry-pack/index.js +1 -0
- package/dist/schema/intent-radar/index.d.ts +92 -245
- package/dist/schema/intent-radar/index.js +1 -89
- package/dist/schema/local/index.d.ts +2045 -18080
- package/dist/schema/local/index.js +1 -927
- package/dist/schema/local/wip.d.ts +61 -651
- package/dist/schema/local/wip.js +1 -187
- package/dist/schema/messenger/index.d.ts +949 -5557
- package/dist/schema/messenger/index.js +1 -475
- package/dist/schema/operations.d.ts +2969 -26518
- package/dist/schema/operations.js +1 -520
- package/dist/schema/persona/index.d.ts +469 -1820
- package/dist/schema/persona/index.js +1 -148
- package/dist/schema/project/index.d.ts +1027 -8408
- package/dist/schema/project/index.js +1 -2057
- package/dist/schema/query/index.d.ts +12041 -75261
- package/dist/schema/query/index.js +1 -1646
- package/dist/schema/schema-query/index.d.ts +35 -98
- package/dist/schema/schema-query/index.js +1 -104
- package/dist/schema/schema-version.js +1 -76
- package/dist/schema/task-status.d.ts +26 -132
- package/dist/schema/task-status.js +1 -36
- package/dist/schema/trust/index.d.ts +194 -1290
- 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.d.ts +1 -0
- package/dist/schema/utils/skills-recommendation.js +1 -77
- package/dist/schema/workspace/index.d.ts +69 -0
- package/dist/schema/workspace/index.js +1 -0
- package/dist/schema-query-impl/index.js +1 -0
- package/dist/schemas/account_operation.output.json +3147 -1652
- package/dist/schemas/account_operation.schema.json +225 -218
- package/dist/schemas/bridge_operation.output.json +1168 -650
- package/dist/schemas/bridge_operation.schema.json +736 -504
- package/dist/schemas/config_operation.output.json +185 -179
- package/dist/schemas/config_operation.schema.json +21 -26
- package/dist/schemas/employee_operation.output.json +207 -0
- package/dist/schemas/employee_operation.schema.json +176 -0
- package/dist/schemas/evaluation_operation.output.json +2329 -557
- package/dist/schemas/evaluation_operation.schema.json +2939 -720
- package/dist/schemas/guard2file.output.json +58 -64
- package/dist/schemas/guard2file.schema.json +79 -81
- package/dist/schemas/index.json +29 -11
- package/dist/schemas/industry_pack_operation.output.json +594 -0
- package/dist/schemas/industry_pack_operation.schema.json +55 -0
- package/dist/schemas/intent_radar.output.json +275 -200
- package/dist/schemas/intent_radar.schema.json +124 -123
- package/dist/schemas/local_info_operation.output.json +1174 -657
- package/dist/schemas/local_info_operation.schema.json +119 -125
- package/dist/schemas/local_mark_operation.output.json +1239 -689
- package/dist/schemas/local_mark_operation.schema.json +91 -96
- package/dist/schemas/machineNode2file.output.json +63 -69
- package/dist/schemas/machineNode2file.schema.json +79 -81
- package/dist/schemas/messenger_operation.output.json +2722 -1528
- package/dist/schemas/messenger_operation.schema.json +1482 -1264
- package/dist/schemas/onchain_events.output.json +2590 -975
- package/dist/schemas/onchain_events.schema.json +117 -99
- package/dist/schemas/onchain_operations.output.json +3957 -2309
- package/dist/schemas/onchain_operations.schema.json +20799 -9285
- package/dist/schemas/onchain_operations_allocation.schema.json +172 -108
- package/dist/schemas/onchain_operations_arbitration.schema.json +233 -146
- package/dist/schemas/onchain_operations_contact.schema.json +129 -90
- package/dist/schemas/onchain_operations_demand.schema.json +170 -112
- package/dist/schemas/onchain_operations_gen_passport.schema.json +61 -646
- package/dist/schemas/onchain_operations_gen_proof.schema.json +40 -172
- package/dist/schemas/onchain_operations_guard.schema.json +3765 -294
- package/dist/schemas/onchain_operations_machine.schema.json +537 -164
- package/dist/schemas/onchain_operations_order.schema.json +126 -96
- package/dist/schemas/onchain_operations_payment.schema.json +82 -67
- package/dist/schemas/onchain_operations_permission.schema.json +331 -93
- package/dist/schemas/onchain_operations_personal.schema.json +636 -96
- package/dist/schemas/onchain_operations_progress.schema.json +125 -92
- package/dist/schemas/onchain_operations_proof.schema.json +76 -69
- package/dist/schemas/onchain_operations_repository.schema.json +636 -249
- package/dist/schemas/onchain_operations_reward.schema.json +218 -108
- package/dist/schemas/onchain_operations_service.schema.json +679 -221
- package/dist/schemas/onchain_operations_treasury.schema.json +401 -135
- package/dist/schemas/onchain_table_data.output.json +6018 -2430
- package/dist/schemas/onchain_table_data.schema.json +544 -430
- package/dist/schemas/persona_operation.output.json +1568 -265
- package/dist/schemas/persona_operation.schema.json +346 -202
- package/dist/schemas/project_operation.output.json +6957 -5147
- package/dist/schemas/project_operation.schema.json +1050 -1020
- package/dist/schemas/query_task_status.output.json +195 -99
- package/dist/schemas/query_task_status.schema.json +12 -18
- package/dist/schemas/query_toolkit.output.json +18870 -14566
- package/dist/schemas/query_toolkit.schema.json +614 -522
- package/dist/schemas/schema_query.output.json +127 -129
- package/dist/schemas/schema_query.schema.json +64 -69
- package/dist/schemas/trust_score.output.json +678 -587
- package/dist/schemas/trust_score.schema.json +289 -277
- package/dist/schemas/wip_file.output.json +116 -124
- package/dist/schemas/wip_file.schema.json +142 -143
- package/dist/schemas/workspace_operation.output.json +277 -0
- package/dist/schemas/workspace_operation.schema.json +45 -0
- package/dist/schemas/wowok_buildin_info.output.json +1693 -723
- package/dist/schemas/wowok_buildin_info.schema.json +576 -512
- 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.d.ts +8 -1
- package/dist/tools/handlers/bridge.js +1 -1
- package/dist/tools/handlers/config.js +1 -74
- package/dist/tools/handlers/employee.d.ts +2 -0
- package/dist/tools/handlers/employee.js +1 -0
- package/dist/tools/handlers/evaluation.js +1 -123
- package/dist/tools/handlers/file-export.js +1 -90
- package/dist/tools/handlers/industry-pack.d.ts +2 -0
- package/dist/tools/handlers/industry-pack.js +1 -0
- 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/handlers/workspace.d.ts +2 -0
- package/dist/tools/handlers/workspace.js +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.js +1 -1382
- package/dist/tools/retry.js +1 -85
- package/dist/tools/rules-hook.d.ts +1 -1
- package/dist/tools/rules-hook.js +1 -23
- package/dist/tools/shared.d.ts +1 -1
- package/dist/tools/shared.js +1 -130
- package/dist/tools/types.d.ts +2 -1
- 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 +7 -6
- package/dist/knowledge/arbitration-trust.d.ts +0 -24
- package/dist/knowledge/arbitration-trust.js +0 -117
- package/dist/schema/call/bridge-handler.d.ts +0 -8
- package/dist/schema/call/bridge-handler.js +0 -265
- package/dist/schema/sync-layer4.d.ts +0 -21
- package/dist/schema/sync-layer4.js +0 -286
- package/dist/schema-query/index.js +0 -810
- /package/dist/{schema-query → schema-query-impl}/index.d.ts +0 -0
|
@@ -1,351 +1 @@
|
|
|
1
|
-
import { CUSTOMER_INTELLIGENCE_VERSION } from "./types.js";
|
|
2
|
-
import { formatAmountText } from "../knowledge/fund-layer.js";
|
|
3
|
-
export function generatePostPurchaseAdvice(ctx) {
|
|
4
|
-
switch (ctx.phase) {
|
|
5
|
-
case "refund_tracking":
|
|
6
|
-
return trackRefund(ctx);
|
|
7
|
-
case "quality_issue":
|
|
8
|
-
return handleQualityIssue(ctx);
|
|
9
|
-
case "merchant_unreachable":
|
|
10
|
-
return handleMerchantUnreachable(ctx);
|
|
11
|
-
case "arbitration_support":
|
|
12
|
-
return arbitrationSupport(ctx);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
export function trackRefund(ctx) {
|
|
16
|
-
const actions = [];
|
|
17
|
-
const orderAmount = ctx.order_amount ?? 0n;
|
|
18
|
-
const refunded = ctx.refunded_amount ?? 0n;
|
|
19
|
-
if (orderAmount > 0n && refunded >= orderAmount) {
|
|
20
|
-
actions.push({
|
|
21
|
-
id: "refund_complete",
|
|
22
|
-
phase: "refund_tracking",
|
|
23
|
-
priority: "info",
|
|
24
|
-
title: "Refund complete",
|
|
25
|
-
message: `✅ Order ${ctx.order_id} refund fully received (${formatAmountText(refunded, ctx.token?.decimals, ctx.token?.symbol)})`,
|
|
26
|
-
next_step: "You can close post-purchase tracking; recommend submitting an order review",
|
|
27
|
-
});
|
|
28
|
-
return actions;
|
|
29
|
-
}
|
|
30
|
-
if (refunded > 0n && refunded < orderAmount) {
|
|
31
|
-
const diff = orderAmount - refunded;
|
|
32
|
-
actions.push({
|
|
33
|
-
id: "refund_partial",
|
|
34
|
-
phase: "refund_tracking",
|
|
35
|
-
priority: "required",
|
|
36
|
-
title: "Refund incomplete",
|
|
37
|
-
message: `⚠️ Order ${ctx.order_id} only refunded ${formatAmountText(refunded, ctx.token?.decimals, ctx.token?.symbol)} of ${formatAmountText(orderAmount, ctx.token?.decimals, ctx.token?.symbol)}; the difference of ${formatAmountText(diff, ctx.token?.decimals, ctx.token?.symbol)} has not been received`,
|
|
38
|
-
next_step: "Urge the merchant via Messenger to make up the difference, or initiate arbitration to recover it",
|
|
39
|
-
tool: "messenger_send",
|
|
40
|
-
});
|
|
41
|
-
return actions;
|
|
42
|
-
}
|
|
43
|
-
if (refunded === 0n && ctx.refund_requested === true) {
|
|
44
|
-
actions.push({
|
|
45
|
-
id: "refund_waiting",
|
|
46
|
-
phase: "refund_tracking",
|
|
47
|
-
priority: "recommended",
|
|
48
|
-
title: "Waiting for merchant refund",
|
|
49
|
-
message: `⏳ Order ${ctx.order_id} refund has been requested; waiting for the merchant to trigger the refund Allocator`,
|
|
50
|
-
next_step: "If not received within 48 hours, recommend urging via Messenger or initiating arbitration",
|
|
51
|
-
tool: "query_toolkit",
|
|
52
|
-
});
|
|
53
|
-
return actions;
|
|
54
|
-
}
|
|
55
|
-
const hasRefundPath = ctx.puzzle?.workflow_analysis?.has_refund_path ?? false;
|
|
56
|
-
if (refunded === 0n && ctx.refund_requested !== true && hasRefundPath) {
|
|
57
|
-
actions.push({
|
|
58
|
-
id: "refund_trigger_available",
|
|
59
|
-
phase: "refund_tracking",
|
|
60
|
-
priority: "recommended",
|
|
61
|
-
title: "Can trigger refund via Allocator",
|
|
62
|
-
message: `ℹ️ Order ${ctx.order_id} has a refund path; you can trigger the refund Allocator to refund`,
|
|
63
|
-
next_step: "Query the refund Allocator trigger conditions via query_toolkit and apply for a refund",
|
|
64
|
-
tool: "query_toolkit",
|
|
65
|
-
});
|
|
66
|
-
return actions;
|
|
67
|
-
}
|
|
68
|
-
actions.push({
|
|
69
|
-
id: "refund_no_path",
|
|
70
|
-
phase: "refund_tracking",
|
|
71
|
-
priority: "required",
|
|
72
|
-
title: "No refund path; arbitration required",
|
|
73
|
-
message: `🔴 Order ${ctx.order_id} has no refund Allocator path; funds must be recovered via arbitration`,
|
|
74
|
-
next_step: "Switch to the arbitration_support phase and submit an arbitration application",
|
|
75
|
-
tool: "mark_arbitration",
|
|
76
|
-
});
|
|
77
|
-
return actions;
|
|
78
|
-
}
|
|
79
|
-
export function handleQualityIssue(ctx) {
|
|
80
|
-
const actions = [];
|
|
81
|
-
if (ctx.original_wip_hash &&
|
|
82
|
-
ctx.wip_hash &&
|
|
83
|
-
ctx.original_wip_hash !== ctx.wip_hash) {
|
|
84
|
-
actions.push({
|
|
85
|
-
id: "quality_wip_mismatch",
|
|
86
|
-
phase: "quality_issue",
|
|
87
|
-
priority: "required",
|
|
88
|
-
title: "WIP hash mismatch detected",
|
|
89
|
-
message: `🔴 Order ${ctx.order_id} WIP hash differs from the one at order time; the deliverable may have been changed.\n` +
|
|
90
|
-
` Original: ${ctx.original_wip_hash}\n` +
|
|
91
|
-
` Current: ${ctx.wip_hash}`,
|
|
92
|
-
next_step: "Re-verify the WIP via query_toolkit and initiate arbitration immediately",
|
|
93
|
-
tool: "query_toolkit",
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
if (!ctx.wip_hash) {
|
|
97
|
-
actions.push({
|
|
98
|
-
id: "quality_wip_missing",
|
|
99
|
-
phase: "quality_issue",
|
|
100
|
-
priority: "recommended",
|
|
101
|
-
title: "Require merchant to provide WIP hash verification",
|
|
102
|
-
message: `⚠️ Order ${ctx.order_id} is missing the current WIP hash; deliverable integrity cannot be verified`,
|
|
103
|
-
next_step: "Request the latest WIP hash via Messenger and compare it with the original hash",
|
|
104
|
-
tool: "messenger_send",
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
const evidenceCount = ctx.evidence?.length ?? 0;
|
|
108
|
-
if (evidenceCount === 0) {
|
|
109
|
-
actions.push({
|
|
110
|
-
id: "quality_collect_evidence",
|
|
111
|
-
phase: "quality_issue",
|
|
112
|
-
priority: "recommended",
|
|
113
|
-
title: "Collect evidence: screenshots, chat logs, deliverable samples",
|
|
114
|
-
message: `📋 Order ${ctx.order_id} has no evidence collected yet. Recommend collecting immediately:\n` +
|
|
115
|
-
` • Deliverable screenshots / screen recordings\n` +
|
|
116
|
-
` • Messenger chat logs (export WTS evidence)\n` +
|
|
117
|
-
` • Deliverable samples or test results`,
|
|
118
|
-
next_step: "Generate a WTS evidence file via messenger_mark_evidence",
|
|
119
|
-
tool: "messenger_mark_evidence",
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
else if (evidenceCount < 3) {
|
|
123
|
-
actions.push({
|
|
124
|
-
id: "quality_supplement_evidence",
|
|
125
|
-
phase: "quality_issue",
|
|
126
|
-
priority: "recommended",
|
|
127
|
-
title: `Supplement more evidence (currently ${evidenceCount} item(s); recommend ≥3)`,
|
|
128
|
-
message: `⚠️ Order ${ctx.order_id} has collected ${evidenceCount} item(s) of evidence; recommend supplementing to at least 3 to strengthen the arbitration case.\n` +
|
|
129
|
-
` Current evidence: ${ctx.evidence?.join(" / ") ?? "none"}`,
|
|
130
|
-
next_step: "Add screenshots, chat logs, or third-party appraisal reports",
|
|
131
|
-
tool: "messenger_mark_evidence",
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
if (actions.length === 0) {
|
|
135
|
-
actions.push({
|
|
136
|
-
id: "quality_ok",
|
|
137
|
-
phase: "quality_issue",
|
|
138
|
-
priority: "info",
|
|
139
|
-
title: "Quality verification passed",
|
|
140
|
-
message: `✅ Order ${ctx.order_id} WIP hash matches the original, and evidence is complete (${evidenceCount} item(s))`,
|
|
141
|
-
next_step: "You can proceed with the acceptance workflow",
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
return actions;
|
|
145
|
-
}
|
|
146
|
-
export function handleMerchantUnreachable(ctx) {
|
|
147
|
-
const actions = [];
|
|
148
|
-
const lastReply = ctx.last_merchant_reply_at;
|
|
149
|
-
const days = lastReply !== undefined
|
|
150
|
-
? Math.floor((ctx.now - lastReply) / (24 * 60 * 60 * 1000))
|
|
151
|
-
: Infinity;
|
|
152
|
-
const hasArbitration = ctx.has_arbitration ?? ctx.puzzle?.workflow_analysis?.has_arbitration_path ?? false;
|
|
153
|
-
if (days > 7) {
|
|
154
|
-
if (hasArbitration) {
|
|
155
|
-
actions.push({
|
|
156
|
-
id: "unreachable_arb_recommend",
|
|
157
|
-
phase: "merchant_unreachable",
|
|
158
|
-
priority: "required",
|
|
159
|
-
title: "Recommend initiating arbitration",
|
|
160
|
-
message: `🔴 Order ${ctx.order_id} merchant has been unreachable for ${days} days; funds may be frozen. Recommend initiating arbitration immediately.`,
|
|
161
|
-
next_step: "Switch to the arbitration_support phase and submit an arbitration application",
|
|
162
|
-
tool: "mark_arbitration",
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
actions.push({
|
|
167
|
-
id: "unreachable_no_arb",
|
|
168
|
-
phase: "merchant_unreachable",
|
|
169
|
-
priority: "required",
|
|
170
|
-
title: "No arbitration channel; funds may be frozen; recommend contacting WoWok officials",
|
|
171
|
-
message: `🔴 Order ${ctx.order_id} merchant has been unreachable for ${days} days, and no arbitration channel is configured; funds may be frozen long-term. Recommend contacting WoWok officials for assistance.`,
|
|
172
|
-
next_step: "Contact WoWok official support and provide the order and communication records",
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
return actions;
|
|
176
|
-
}
|
|
177
|
-
if (days > 3) {
|
|
178
|
-
actions.push({
|
|
179
|
-
id: "unreachable_urge",
|
|
180
|
-
phase: "merchant_unreachable",
|
|
181
|
-
priority: "recommended",
|
|
182
|
-
title: "Persistent no response; send a follow-up message",
|
|
183
|
-
message: `⚠️ Order ${ctx.order_id} merchant has not replied for ${days} days; recommend sending a follow-up message via Messenger and keeping a record`,
|
|
184
|
-
next_step: "If there is still no reply within 3 days, initiate arbitration",
|
|
185
|
-
tool: "messenger_send",
|
|
186
|
-
});
|
|
187
|
-
return actions;
|
|
188
|
-
}
|
|
189
|
-
actions.push({
|
|
190
|
-
id: "unreachable_wait",
|
|
191
|
-
phase: "merchant_unreachable",
|
|
192
|
-
priority: "info",
|
|
193
|
-
title: "Merchant may be busy; await reply",
|
|
194
|
-
message: `ℹ️ Order ${ctx.order_id} merchant ${days === Infinity ? "has not replied yet" : `has not replied for ${days} day(s)`}; may be busy. Recommend waiting another 1-2 days`,
|
|
195
|
-
next_step: "If there is still no reply after 3 days, send a follow-up message",
|
|
196
|
-
});
|
|
197
|
-
return actions;
|
|
198
|
-
}
|
|
199
|
-
export function arbitrationSupport(ctx) {
|
|
200
|
-
const actions = [];
|
|
201
|
-
const initiated = ctx.arbitration_initiated === true;
|
|
202
|
-
const evidenceCount = ctx.evidence?.length ?? 0;
|
|
203
|
-
const arbWindowDays = ctx.arb_window_days ?? 0;
|
|
204
|
-
if (!initiated) {
|
|
205
|
-
actions.push({
|
|
206
|
-
id: "arb_not_initiated",
|
|
207
|
-
phase: "arbitration_support",
|
|
208
|
-
priority: "required",
|
|
209
|
-
title: "Recommend initiating an arbitration application",
|
|
210
|
-
message: `🔔 Order ${ctx.order_id} has not initiated arbitration. Recommend generating an arbitration application template and submitting it immediately.`,
|
|
211
|
-
next_step: "Call generateArbitrationTemplate to generate the application template",
|
|
212
|
-
tool: "mark_arbitration",
|
|
213
|
-
});
|
|
214
|
-
if (arbWindowDays > 0 && arbWindowDays <= 7) {
|
|
215
|
-
actions.push({
|
|
216
|
-
id: "arb_window_closing_soon",
|
|
217
|
-
phase: "arbitration_support",
|
|
218
|
-
priority: "required",
|
|
219
|
-
title: `Arbitration window will close in ${arbWindowDays} day(s)`,
|
|
220
|
-
message: `⏰ Order ${ctx.order_id} arbitration application window has only ${arbWindowDays} day(s) left; please submit the arbitration application as soon as possible`,
|
|
221
|
-
next_step: "Submit the arbitration application immediately",
|
|
222
|
-
deadline: ctx.now + arbWindowDays * 24 * 60 * 60 * 1000,
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
return actions;
|
|
226
|
-
}
|
|
227
|
-
if (arbWindowDays > 0 && arbWindowDays <= 3) {
|
|
228
|
-
actions.push({
|
|
229
|
-
id: "arb_window_urgent",
|
|
230
|
-
phase: "arbitration_support",
|
|
231
|
-
priority: "required",
|
|
232
|
-
title: "Arbitration window about to close",
|
|
233
|
-
message: `⏰ Order ${ctx.order_id} arbitration window has only ${arbWindowDays} day(s) left; please supplement evidence and follow up on voting progress as soon as possible`,
|
|
234
|
-
next_step: "Immediately supplement evidence and query arbitration progress",
|
|
235
|
-
tool: "query_toolkit",
|
|
236
|
-
deadline: ctx.now + arbWindowDays * 24 * 60 * 60 * 1000,
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
if (evidenceCount === 0) {
|
|
240
|
-
actions.push({
|
|
241
|
-
id: "arb_no_evidence",
|
|
242
|
-
phase: "arbitration_support",
|
|
243
|
-
priority: "required",
|
|
244
|
-
title: "Supplement evidence",
|
|
245
|
-
message: `📋 Order ${ctx.order_id} arbitration has been initiated but no evidence is recorded. Recommend collecting immediately:\n` +
|
|
246
|
-
` • Messenger chat logs\n` +
|
|
247
|
-
` • WIP hash comparison records\n` +
|
|
248
|
-
` • Progress stall screenshots`,
|
|
249
|
-
next_step: "Generate an evidence file via messenger_mark_evidence and submit it",
|
|
250
|
-
tool: "messenger_mark_evidence",
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
else if (evidenceCount < 3) {
|
|
254
|
-
actions.push({
|
|
255
|
-
id: "arb_supplement_evidence",
|
|
256
|
-
phase: "arbitration_support",
|
|
257
|
-
priority: "recommended",
|
|
258
|
-
title: `Supplement more evidence to strengthen the arbitration case (currently ${evidenceCount} item(s))`,
|
|
259
|
-
message: `⚠️ Order ${ctx.order_id} has submitted ${evidenceCount} item(s) of evidence; recommend supplementing to at least 3.\n` +
|
|
260
|
-
` Current evidence: ${ctx.evidence?.join(" / ") ?? "none"}`,
|
|
261
|
-
next_step: "Add third-party appraisals, chat logs, or deliverable screenshots",
|
|
262
|
-
tool: "messenger_mark_evidence",
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
if (evidenceCount >= 3 && (arbWindowDays === 0 || arbWindowDays > 3)) {
|
|
266
|
-
actions.push({
|
|
267
|
-
id: "arb_monitor_progress",
|
|
268
|
-
phase: "arbitration_support",
|
|
269
|
-
priority: "info",
|
|
270
|
-
title: "Arbitration in progress; continuously monitor voting progress",
|
|
271
|
-
message: `📊 Order ${ctx.order_id} arbitration has been initiated, with ${evidenceCount} item(s) of evidence complete. Recommend periodically querying voting progress and preparing supplemental evidence.`,
|
|
272
|
-
next_step: "Query arbitration voting status via query_toolkit",
|
|
273
|
-
tool: "query_toolkit",
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
return actions;
|
|
277
|
-
}
|
|
278
|
-
export function generateArbitrationTemplate(ctx) {
|
|
279
|
-
const phaseLabel = phaseToLabel(ctx.phase);
|
|
280
|
-
const evidenceCount = ctx.evidence?.length ?? 0;
|
|
281
|
-
const title = `Order ${ctx.order_id} Arbitration Application — ${phaseLabel}`;
|
|
282
|
-
const descriptionParts = [];
|
|
283
|
-
descriptionParts.push(`Order ID: ${ctx.order_id}`);
|
|
284
|
-
descriptionParts.push(`Service ID: ${ctx.service_id}`);
|
|
285
|
-
descriptionParts.push(`Dispute type: ${phaseLabel}`);
|
|
286
|
-
switch (ctx.phase) {
|
|
287
|
-
case "refund_tracking":
|
|
288
|
-
descriptionParts.push(`Dispute summary: The merchant did not refund as required. Order amount ${ctx.order_amount !== undefined ? formatAmountText(ctx.order_amount, ctx.token?.decimals, ctx.token?.symbol) : "unknown"}, refunded ${formatAmountText(ctx.refunded_amount ?? 0n, ctx.token?.decimals, ctx.token?.symbol)}.`);
|
|
289
|
-
break;
|
|
290
|
-
case "quality_issue":
|
|
291
|
-
descriptionParts.push(`Dispute summary: The deliverable has quality issues. Original WIP hash: ${ctx.original_wip_hash ?? "unknown"}, current: ${ctx.wip_hash ?? "unknown"}.`);
|
|
292
|
-
break;
|
|
293
|
-
case "merchant_unreachable":
|
|
294
|
-
descriptionParts.push(`Dispute summary: The merchant has been unreachable for a long time. Last reply time: ${ctx.last_merchant_reply_at ? new Date(ctx.last_merchant_reply_at).toISOString() : "unknown"}.`);
|
|
295
|
-
break;
|
|
296
|
-
case "arbitration_support":
|
|
297
|
-
descriptionParts.push("Dispute summary: See the phase records above.");
|
|
298
|
-
break;
|
|
299
|
-
}
|
|
300
|
-
descriptionParts.push(`Evidence collected: ${evidenceCount} item(s)`);
|
|
301
|
-
const description = descriptionParts.join("\n");
|
|
302
|
-
const evidence_required = [
|
|
303
|
-
"Messenger communication logs (export WTS evidence file)",
|
|
304
|
-
"Order creation and payment proof",
|
|
305
|
-
"Progress node advancement records",
|
|
306
|
-
];
|
|
307
|
-
switch (ctx.phase) {
|
|
308
|
-
case "quality_issue":
|
|
309
|
-
evidence_required.push("WIP hash comparison record (original vs current)");
|
|
310
|
-
evidence_required.push("Deliverable screenshots or samples");
|
|
311
|
-
break;
|
|
312
|
-
case "merchant_unreachable":
|
|
313
|
-
evidence_required.push("Unreachable duration record (based on last_merchant_reply_at)");
|
|
314
|
-
evidence_required.push("Follow-up message sending records");
|
|
315
|
-
break;
|
|
316
|
-
case "refund_tracking":
|
|
317
|
-
evidence_required.push("Refund application record");
|
|
318
|
-
evidence_required.push("Refund difference calculation proof");
|
|
319
|
-
break;
|
|
320
|
-
}
|
|
321
|
-
const claim = buildClaim(ctx);
|
|
322
|
-
return { title, description, evidence_required, claim };
|
|
323
|
-
}
|
|
324
|
-
function phaseToLabel(phase) {
|
|
325
|
-
switch (phase) {
|
|
326
|
-
case "refund_tracking": return "Refund dispute";
|
|
327
|
-
case "quality_issue": return "Quality issue";
|
|
328
|
-
case "merchant_unreachable": return "Merchant unreachable";
|
|
329
|
-
case "arbitration_support": return "Arbitration support";
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
function buildClaim(ctx) {
|
|
333
|
-
switch (ctx.phase) {
|
|
334
|
-
case "refund_tracking": {
|
|
335
|
-
const orderAmount = ctx.order_amount ?? 0n;
|
|
336
|
-
const refunded = ctx.refunded_amount ?? 0n;
|
|
337
|
-
const diff = orderAmount - refunded;
|
|
338
|
-
if (refunded === 0n) {
|
|
339
|
-
return `Request the arbitrator to order a full refund (${formatAmountText(orderAmount, ctx.token?.decimals, ctx.token?.symbol)}).`;
|
|
340
|
-
}
|
|
341
|
-
return `Request the arbitrator to order the merchant to make up the refund difference (${formatAmountText(diff, ctx.token?.decimals, ctx.token?.symbol)}).`;
|
|
342
|
-
}
|
|
343
|
-
case "quality_issue":
|
|
344
|
-
return "Request the arbitrator to order the merchant to redeliver a deliverable that meets the agreement, or to fully refund.";
|
|
345
|
-
case "merchant_unreachable":
|
|
346
|
-
return "Request the arbitrator to order the merchant to fulfill the order obligations or refund all payments, and to compensate for losses caused by being unreachable.";
|
|
347
|
-
case "arbitration_support":
|
|
348
|
-
return "Request the arbitrator to support this party's claim, and based on the attached evidence, rule that the merchant breached the contract and order compensation.";
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
export { CUSTOMER_INTELLIGENCE_VERSION };
|
|
1
|
+
import{CUSTOMER_INTELLIGENCE_VERSION}from'./types.js';import{formatAmountText}from'../knowledge/fund-layer.js';export function generatePostPurchaseAdvice(a){switch(a['phase']){case'refund_tracking':return trackRefund(a);case'quality_issue':return handleQualityIssue(a);case'merchant_unreachable':return handleMerchantUnreachable(a);case'arbitration_support':return arbitrationSupport(a);}}export function trackRefund(a){const b=[],c=a['order_amount']??0x0n,d=a['refunded_amount']??0x0n;if(c>0x0n&&d>=c)return b['push']({'id':'refund_complete','phase':'refund_tracking','priority':'info','title':'Refund\x20complete','message':'✅\x20Order\x20'+a['order_id']+'\x20refund\x20fully\x20received\x20('+formatAmountText(d,a['token']?.['decimals'],a['token']?.['symbol'])+')','next_step':'You\x20can\x20close\x20post-purchase\x20tracking;\x20recommend\x20submitting\x20an\x20order\x20review'}),b;if(d>0x0n&&d<c){const f=c-d;return b['push']({'id':'refund_partial','phase':'refund_tracking','priority':'required','title':'Refund\x20incomplete','message':'⚠️\x20Order\x20'+a['order_id']+'\x20only\x20refunded\x20'+formatAmountText(d,a['token']?.['decimals'],a['token']?.['symbol'])+'\x20of\x20'+formatAmountText(c,a['token']?.['decimals'],a['token']?.['symbol'])+';\x20the\x20difference\x20of\x20'+formatAmountText(f,a['token']?.['decimals'],a['token']?.['symbol'])+'\x20has\x20not\x20been\x20received','next_step':'Urge\x20the\x20merchant\x20via\x20Messenger\x20to\x20make\x20up\x20the\x20difference,\x20or\x20initiate\x20arbitration\x20to\x20recover\x20it','tool':'messenger_send'}),b;}if(d===0x0n&&a['refund_requested']===!![])return b['push']({'id':'refund_waiting','phase':'refund_tracking','priority':'recommended','title':'Waiting\x20for\x20merchant\x20refund','message':'⏳\x20Order\x20'+a['order_id']+'\x20refund\x20has\x20been\x20requested;\x20waiting\x20for\x20the\x20merchant\x20to\x20trigger\x20the\x20refund\x20Allocator','next_step':'If\x20not\x20received\x20within\x2048\x20hours,\x20recommend\x20urging\x20via\x20Messenger\x20or\x20initiating\x20arbitration','tool':'query_toolkit'}),b;const e=a['puzzle']?.['workflow_analysis']?.['has_refund_path']??![];if(d===0x0n&&a['refund_requested']!==!![]&&e)return b['push']({'id':'refund_trigger_available','phase':'refund_tracking','priority':'recommended','title':'Can\x20trigger\x20refund\x20via\x20Allocator','message':'ℹ️\x20Order\x20'+a['order_id']+'\x20has\x20a\x20refund\x20path;\x20you\x20can\x20trigger\x20the\x20refund\x20Allocator\x20to\x20refund','next_step':'Query\x20the\x20refund\x20Allocator\x20trigger\x20conditions\x20via\x20query_toolkit\x20and\x20apply\x20for\x20a\x20refund','tool':'query_toolkit'}),b;return b['push']({'id':'refund_no_path','phase':'refund_tracking','priority':'required','title':'No\x20refund\x20path;\x20arbitration\x20required','message':'🔴\x20Order\x20'+a['order_id']+'\x20has\x20no\x20refund\x20Allocator\x20path;\x20funds\x20must\x20be\x20recovered\x20via\x20arbitration','next_step':'Switch\x20to\x20the\x20arbitration_support\x20phase\x20and\x20submit\x20an\x20arbitration\x20application','tool':'mark_arbitration'}),b;}export function handleQualityIssue(a){const b=[];a['original_wip_hash']&&a['wip_hash']&&a['original_wip_hash']!==a['wip_hash']&&b['push']({'id':'quality_wip_mismatch','phase':'quality_issue','priority':'required','title':'WIP\x20hash\x20mismatch\x20detected','message':'🔴\x20Order\x20'+a['order_id']+'\x20WIP\x20hash\x20differs\x20from\x20the\x20one\x20at\x20order\x20time;\x20the\x20deliverable\x20may\x20have\x20been\x20changed.\x0a'+('\x20\x20Original:\x20'+a['original_wip_hash']+'\x0a')+('\x20\x20Current:\x20'+a['wip_hash']),'next_step':'Re-verify\x20the\x20WIP\x20via\x20query_toolkit\x20and\x20initiate\x20arbitration\x20immediately','tool':'query_toolkit'});!a['wip_hash']&&b['push']({'id':'quality_wip_missing','phase':'quality_issue','priority':'recommended','title':'Require\x20merchant\x20to\x20provide\x20WIP\x20hash\x20verification','message':'⚠️\x20Order\x20'+a['order_id']+'\x20is\x20missing\x20the\x20current\x20WIP\x20hash;\x20deliverable\x20integrity\x20cannot\x20be\x20verified','next_step':'Request\x20the\x20latest\x20WIP\x20hash\x20via\x20Messenger\x20and\x20compare\x20it\x20with\x20the\x20original\x20hash','tool':'messenger_send'});const c=a['evidence']?.['length']??0x0;if(c===0x0)b['push']({'id':'quality_collect_evidence','phase':'quality_issue','priority':'recommended','title':'Collect\x20evidence:\x20screenshots,\x20chat\x20logs,\x20deliverable\x20samples','message':'📋\x20Order\x20'+a['order_id']+'\x20has\x20no\x20evidence\x20collected\x20yet.\x20Recommend\x20collecting\x20immediately:\x0a'+'\x20\x20•\x20Deliverable\x20screenshots\x20/\x20screen\x20recordings\x0a'+'\x20\x20•\x20Messenger\x20chat\x20logs\x20(export\x20WTS\x20evidence)\x0a'+'\x20\x20•\x20Deliverable\x20samples\x20or\x20test\x20results','next_step':'Generate\x20a\x20WTS\x20evidence\x20file\x20via\x20messenger_mark_evidence','tool':'messenger_mark_evidence'});else c<0x3&&b['push']({'id':'quality_supplement_evidence','phase':'quality_issue','priority':'recommended','title':'Supplement\x20more\x20evidence\x20(currently\x20'+c+'\x20item(s);\x20recommend\x20≥3)','message':'⚠️\x20Order\x20'+a['order_id']+'\x20has\x20collected\x20'+c+'\x20item(s)\x20of\x20evidence;\x20recommend\x20supplementing\x20to\x20at\x20least\x203\x20to\x20strengthen\x20the\x20arbitration\x20case.\x0a'+('\x20\x20Current\x20evidence:\x20'+(a['evidence']?.['join']('\x20/\x20')??'none')),'next_step':'Add\x20screenshots,\x20chat\x20logs,\x20or\x20third-party\x20appraisal\x20reports','tool':'messenger_mark_evidence'});return b['length']===0x0&&b['push']({'id':'quality_ok','phase':'quality_issue','priority':'info','title':'Quality\x20verification\x20passed','message':'✅\x20Order\x20'+a['order_id']+'\x20WIP\x20hash\x20matches\x20the\x20original,\x20and\x20evidence\x20is\x20complete\x20('+c+'\x20item(s))','next_step':'You\x20can\x20proceed\x20with\x20the\x20acceptance\x20workflow'}),b;}export function handleMerchantUnreachable(a){const b=[],c=a['last_merchant_reply_at'],d=c!==undefined?Math['floor']((a['now']-c)/(0x18*0x3c*0x3c*0x3e8)):Infinity,e=a['has_arbitration']??a['puzzle']?.['workflow_analysis']?.['has_arbitration_path']??![];if(d>0x7)return e?b['push']({'id':'unreachable_arb_recommend','phase':'merchant_unreachable','priority':'required','title':'Recommend\x20initiating\x20arbitration','message':'🔴\x20Order\x20'+a['order_id']+'\x20merchant\x20has\x20been\x20unreachable\x20for\x20'+d+'\x20days;\x20funds\x20may\x20be\x20frozen.\x20Recommend\x20initiating\x20arbitration\x20immediately.','next_step':'Switch\x20to\x20the\x20arbitration_support\x20phase\x20and\x20submit\x20an\x20arbitration\x20application','tool':'mark_arbitration'}):b['push']({'id':'unreachable_no_arb','phase':'merchant_unreachable','priority':'required','title':'No\x20arbitration\x20channel;\x20funds\x20may\x20be\x20frozen;\x20recommend\x20contacting\x20WoWok\x20officials','message':'🔴\x20Order\x20'+a['order_id']+'\x20merchant\x20has\x20been\x20unreachable\x20for\x20'+d+'\x20days,\x20and\x20no\x20arbitration\x20channel\x20is\x20configured;\x20funds\x20may\x20be\x20frozen\x20long-term.\x20Recommend\x20contacting\x20WoWok\x20officials\x20for\x20assistance.','next_step':'Contact\x20WoWok\x20official\x20support\x20and\x20provide\x20the\x20order\x20and\x20communication\x20records'}),b;if(d>0x3)return b['push']({'id':'unreachable_urge','phase':'merchant_unreachable','priority':'recommended','title':'Persistent\x20no\x20response;\x20send\x20a\x20follow-up\x20message','message':'⚠️\x20Order\x20'+a['order_id']+'\x20merchant\x20has\x20not\x20replied\x20for\x20'+d+'\x20days;\x20recommend\x20sending\x20a\x20follow-up\x20message\x20via\x20Messenger\x20and\x20keeping\x20a\x20record','next_step':'If\x20there\x20is\x20still\x20no\x20reply\x20within\x203\x20days,\x20initiate\x20arbitration','tool':'messenger_send'}),b;return b['push']({'id':'unreachable_wait','phase':'merchant_unreachable','priority':'info','title':'Merchant\x20may\x20be\x20busy;\x20await\x20reply','message':'ℹ️\x20Order\x20'+a['order_id']+'\x20merchant\x20'+(d===Infinity?'has\x20not\x20replied\x20yet':'has\x20not\x20replied\x20for\x20'+d+'\x20day(s)')+';\x20may\x20be\x20busy.\x20Recommend\x20waiting\x20another\x201-2\x20days','next_step':'If\x20there\x20is\x20still\x20no\x20reply\x20after\x203\x20days,\x20send\x20a\x20follow-up\x20message'}),b;}export function arbitrationSupport(a){const b=[],c=a['arbitration_initiated']===!![],d=a['evidence']?.['length']??0x0,e=a['arb_window_days']??0x0;if(!c)return b['push']({'id':'arb_not_initiated','phase':'arbitration_support','priority':'required','title':'Recommend\x20initiating\x20an\x20arbitration\x20application','message':'🔔\x20Order\x20'+a['order_id']+'\x20has\x20not\x20initiated\x20arbitration.\x20Recommend\x20generating\x20an\x20arbitration\x20application\x20template\x20and\x20submitting\x20it\x20immediately.','next_step':'Call\x20generateArbitrationTemplate\x20to\x20generate\x20the\x20application\x20template','tool':'mark_arbitration'}),e>0x0&&e<=0x7&&b['push']({'id':'arb_window_closing_soon','phase':'arbitration_support','priority':'required','title':'Arbitration\x20window\x20will\x20close\x20in\x20'+e+'\x20day(s)','message':'⏰\x20Order\x20'+a['order_id']+'\x20arbitration\x20application\x20window\x20has\x20only\x20'+e+'\x20day(s)\x20left;\x20please\x20submit\x20the\x20arbitration\x20application\x20as\x20soon\x20as\x20possible','next_step':'Submit\x20the\x20arbitration\x20application\x20immediately','deadline':a['now']+e*0x18*0x3c*0x3c*0x3e8}),b;e>0x0&&e<=0x3&&b['push']({'id':'arb_window_urgent','phase':'arbitration_support','priority':'required','title':'Arbitration\x20window\x20about\x20to\x20close','message':'⏰\x20Order\x20'+a['order_id']+'\x20arbitration\x20window\x20has\x20only\x20'+e+'\x20day(s)\x20left;\x20please\x20supplement\x20evidence\x20and\x20follow\x20up\x20on\x20voting\x20progress\x20as\x20soon\x20as\x20possible','next_step':'Immediately\x20supplement\x20evidence\x20and\x20query\x20arbitration\x20progress','tool':'query_toolkit','deadline':a['now']+e*0x18*0x3c*0x3c*0x3e8});if(d===0x0)b['push']({'id':'arb_no_evidence','phase':'arbitration_support','priority':'required','title':'Supplement\x20evidence','message':'📋\x20Order\x20'+a['order_id']+'\x20arbitration\x20has\x20been\x20initiated\x20but\x20no\x20evidence\x20is\x20recorded.\x20Recommend\x20collecting\x20immediately:\x0a'+'\x20\x20•\x20Messenger\x20chat\x20logs\x0a'+'\x20\x20•\x20WIP\x20hash\x20comparison\x20records\x0a'+'\x20\x20•\x20Progress\x20stall\x20screenshots','next_step':'Generate\x20an\x20evidence\x20file\x20via\x20messenger_mark_evidence\x20and\x20submit\x20it','tool':'messenger_mark_evidence'});else d<0x3&&b['push']({'id':'arb_supplement_evidence','phase':'arbitration_support','priority':'recommended','title':'Supplement\x20more\x20evidence\x20to\x20strengthen\x20the\x20arbitration\x20case\x20(currently\x20'+d+'\x20item(s))','message':'⚠️\x20Order\x20'+a['order_id']+'\x20has\x20submitted\x20'+d+'\x20item(s)\x20of\x20evidence;\x20recommend\x20supplementing\x20to\x20at\x20least\x203.\x0a'+('\x20\x20Current\x20evidence:\x20'+(a['evidence']?.['join']('\x20/\x20')??'none')),'next_step':'Add\x20third-party\x20appraisals,\x20chat\x20logs,\x20or\x20deliverable\x20screenshots','tool':'messenger_mark_evidence'});return d>=0x3&&(e===0x0||e>0x3)&&b['push']({'id':'arb_monitor_progress','phase':'arbitration_support','priority':'info','title':'Arbitration\x20in\x20progress;\x20continuously\x20monitor\x20voting\x20progress','message':'📊\x20Order\x20'+a['order_id']+'\x20arbitration\x20has\x20been\x20initiated,\x20with\x20'+d+'\x20item(s)\x20of\x20evidence\x20complete.\x20Recommend\x20periodically\x20querying\x20voting\x20progress\x20and\x20preparing\x20supplemental\x20evidence.','next_step':'Query\x20arbitration\x20voting\x20status\x20via\x20query_toolkit','tool':'query_toolkit'}),b;}export function generateArbitrationTemplate(a){const b=phaseToLabel(a['phase']),c=a['evidence']?.['length']??0x0,d='Order\x20'+a['order_id']+'\x20Arbitration\x20Application\x20—\x20'+b,e=[];e['push']('Order\x20ID:\x20'+a['order_id']),e['push']('Service\x20ID:\x20'+a['service_id']),e['push']('Dispute\x20type:\x20'+b);switch(a['phase']){case'refund_tracking':e['push']('Dispute\x20summary:\x20The\x20merchant\x20did\x20not\x20refund\x20as\x20required.\x20Order\x20amount\x20'+(a['order_amount']!==undefined?formatAmountText(a['order_amount'],a['token']?.['decimals'],a['token']?.['symbol']):'unknown')+',\x20refunded\x20'+formatAmountText(a['refunded_amount']??0x0n,a['token']?.['decimals'],a['token']?.['symbol'])+'.');break;case'quality_issue':e['push']('Dispute\x20summary:\x20The\x20deliverable\x20has\x20quality\x20issues.\x20Original\x20WIP\x20hash:\x20'+(a['original_wip_hash']??'unknown')+',\x20current:\x20'+(a['wip_hash']??'unknown')+'.');break;case'merchant_unreachable':e['push']('Dispute\x20summary:\x20The\x20merchant\x20has\x20been\x20unreachable\x20for\x20a\x20long\x20time.\x20Last\x20reply\x20time:\x20'+(a['last_merchant_reply_at']?new Date(a['last_merchant_reply_at'])['toISOString']():'unknown')+'.');break;case'arbitration_support':e['push']('Dispute\x20summary:\x20See\x20the\x20phase\x20records\x20above.');break;}e['push']('Evidence\x20collected:\x20'+c+'\x20item(s)');const f=e['join']('\x0a'),g=['Messenger\x20communication\x20logs\x20(export\x20WTS\x20evidence\x20file)','Order\x20creation\x20and\x20payment\x20proof','Progress\x20node\x20advancement\x20records'];switch(a['phase']){case'quality_issue':g['push']('WIP\x20hash\x20comparison\x20record\x20(original\x20vs\x20current)'),g['push']('Deliverable\x20screenshots\x20or\x20samples');break;case'merchant_unreachable':g['push']('Unreachable\x20duration\x20record\x20(based\x20on\x20last_merchant_reply_at)'),g['push']('Follow-up\x20message\x20sending\x20records');break;case'refund_tracking':g['push']('Refund\x20application\x20record'),g['push']('Refund\x20difference\x20calculation\x20proof');break;}const h=buildClaim(a);return{'title':d,'description':f,'evidence_required':g,'claim':h};}function phaseToLabel(a){switch(a){case'refund_tracking':return'Refund\x20dispute';case'quality_issue':return'Quality\x20issue';case'merchant_unreachable':return'Merchant\x20unreachable';case'arbitration_support':return'Arbitration\x20support';}}function buildClaim(a){switch(a['phase']){case'refund_tracking':{const b=a['order_amount']??0x0n,c=a['refunded_amount']??0x0n,d=b-c;if(c===0x0n)return'Request\x20the\x20arbitrator\x20to\x20order\x20a\x20full\x20refund\x20('+formatAmountText(b,a['token']?.['decimals'],a['token']?.['symbol'])+').';return'Request\x20the\x20arbitrator\x20to\x20order\x20the\x20merchant\x20to\x20make\x20up\x20the\x20refund\x20difference\x20('+formatAmountText(d,a['token']?.['decimals'],a['token']?.['symbol'])+').';}case'quality_issue':return'Request\x20the\x20arbitrator\x20to\x20order\x20the\x20merchant\x20to\x20redeliver\x20a\x20deliverable\x20that\x20meets\x20the\x20agreement,\x20or\x20to\x20fully\x20refund.';case'merchant_unreachable':return'Request\x20the\x20arbitrator\x20to\x20order\x20the\x20merchant\x20to\x20fulfill\x20the\x20order\x20obligations\x20or\x20refund\x20all\x20payments,\x20and\x20to\x20compensate\x20for\x20losses\x20caused\x20by\x20being\x20unreachable.';case'arbitration_support':return'Request\x20the\x20arbitrator\x20to\x20support\x20this\x20party\x27s\x20claim,\x20and\x20based\x20on\x20the\x20attached\x20evidence,\x20rule\x20that\x20the\x20merchant\x20breached\x20the\x20contract\x20and\x20order\x20compensation.';}}export{CUSTOMER_INTELLIGENCE_VERSION};
|
|
@@ -1,34 +1 @@
|
|
|
1
|
-
const METRICS = [
|
|
2
|
-
{ key: "confidence", name: "confidence", direction: "high" },
|
|
3
|
-
{ key: "risk_total", name: "risk_total", direction: "low" },
|
|
4
|
-
{ key: "trust_score", name: "trust_score", direction: "high" },
|
|
5
|
-
{ key: "preference_match", name: "preference_match", direction: "high" },
|
|
6
|
-
{ key: "reputation_like_ratio", name: "reputation_like_ratio", direction: "high" },
|
|
7
|
-
{ key: "red_flags_count", name: "red_flags_count", direction: "low" },
|
|
8
|
-
{ key: "blocking_reminders_count", name: "blocking_reminders_count", direction: "low" },
|
|
9
|
-
{ key: "info_gaps_count", name: "info_gaps_count", direction: "low" },
|
|
10
|
-
];
|
|
11
|
-
const NEUTRALITY_NOTE = "Per-metric bests only — NO overall ranking is computed. " +
|
|
12
|
-
"Metric weights are the buyer's own: re-run with user_metrics to change what matters. " +
|
|
13
|
-
"A service 'best' on one metric may be worst on another; the decision is yours.";
|
|
14
|
-
export function buildPreorderComparison(rows) {
|
|
15
|
-
const best_per_metric = {};
|
|
16
|
-
const evaluated_metrics = [];
|
|
17
|
-
for (const m of METRICS) {
|
|
18
|
-
const candidates = rows.filter((r) => !r.error && typeof r[m.key] === "number");
|
|
19
|
-
if (candidates.length < 2)
|
|
20
|
-
continue;
|
|
21
|
-
const values = candidates.map((r) => r[m.key]);
|
|
22
|
-
const best = m.direction === "high" ? Math.max(...values) : Math.min(...values);
|
|
23
|
-
best_per_metric[m.name] = candidates
|
|
24
|
-
.filter((r) => r[m.key] === best)
|
|
25
|
-
.map((r) => r.service_id);
|
|
26
|
-
evaluated_metrics.push(m.name);
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
rows,
|
|
30
|
-
best_per_metric,
|
|
31
|
-
evaluated_metrics,
|
|
32
|
-
note: NEUTRALITY_NOTE,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
1
|
+
const METRICS=[{'key':'confidence','name':'confidence','direction':'high'},{'key':'risk_total','name':'risk_total','direction':'low'},{'key':'trust_score','name':'trust_score','direction':'high'},{'key':'preference_match','name':'preference_match','direction':'high'},{'key':'reputation_like_ratio','name':'reputation_like_ratio','direction':'high'},{'key':'red_flags_count','name':'red_flags_count','direction':'low'},{'key':'blocking_reminders_count','name':'blocking_reminders_count','direction':'low'},{'key':'info_gaps_count','name':'info_gaps_count','direction':'low'}],NEUTRALITY_NOTE='Per-metric\x20bests\x20only\x20—\x20NO\x20overall\x20ranking\x20is\x20computed.\x20'+'Metric\x20weights\x20are\x20the\x20buyer\x27s\x20own:\x20re-run\x20with\x20user_metrics\x20to\x20change\x20what\x20matters.\x20'+'A\x20service\x20\x27best\x27\x20on\x20one\x20metric\x20may\x20be\x20worst\x20on\x20another;\x20the\x20decision\x20is\x20yours.';export function buildPreorderComparison(a){const b={},c=[];for(const d of METRICS){const e=a['filter'](h=>!h['error']&&typeof h[d['key']]==='number');if(e['length']<0x2)continue;const f=e['map'](h=>h[d['key']]),g=d['direction']==='high'?Math['max'](...f):Math['min'](...f);b[d['name']]=e['filter'](h=>h[d['key']]===g)['map'](h=>h['service_id']),c['push'](d['name']);}return{'rows':a,'best_per_metric':b,'evaluated_metrics':c,'note':NEUTRALITY_NOTE};}
|
|
@@ -18,6 +18,8 @@ export interface ReminderContext {
|
|
|
18
18
|
risk_score?: number;
|
|
19
19
|
risk_level?: RiskLevel;
|
|
20
20
|
has_refund_path?: boolean;
|
|
21
|
+
has_arb_refund_path?: boolean;
|
|
22
|
+
has_refund_allocator?: boolean;
|
|
21
23
|
has_user_operable?: boolean;
|
|
22
24
|
has_messenger?: boolean;
|
|
23
25
|
customer_required?: string[];
|