@wowok/agent-mcp 3.0.2 → 3.0.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.
Files changed (260) hide show
  1. package/LICENSE +0 -3
  2. package/dist/harness/recover.js +1 -1
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.js +1 -1
  5. package/dist/knowledge/account-marks.js +1 -1
  6. package/dist/knowledge/arbitration-risk.js +1 -1
  7. package/dist/knowledge/flywheel-loop.d.ts +4 -52
  8. package/dist/knowledge/flywheel-loop.js +1 -1
  9. package/dist/knowledge/guard-lint.js +1 -1
  10. package/dist/knowledge/index.d.ts +2 -225
  11. package/dist/knowledge/index.js +1 -1
  12. package/dist/knowledge/industry-registry.js +1 -1
  13. package/dist/knowledge/machine-risk.js +1 -1
  14. package/dist/knowledge/machine-translation.js +1 -1
  15. package/dist/knowledge/onchain-constants.js +1 -1
  16. package/dist/knowledge/order-ledger.d.ts +2 -2
  17. package/dist/knowledge/order-ledger.js +1 -1
  18. package/dist/knowledge/order-puzzle.d.ts +4 -4
  19. package/dist/knowledge/order-puzzle.js +1 -1
  20. package/dist/knowledge/order-risk.d.ts +1 -0
  21. package/dist/knowledge/order-risk.js +1 -1
  22. package/dist/knowledge/order-templates.d.ts +1 -1
  23. package/dist/knowledge/order-templates.js +1 -1
  24. package/dist/knowledge/safety-rules.js +1 -1
  25. package/dist/knowledge/service-ledger.js +1 -1
  26. package/dist/knowledge/service-risk.js +1 -1
  27. package/dist/knowledge/template-registry.js +1 -1
  28. package/dist/knowledge/tools-reference.js +1 -1
  29. package/dist/knowledge/workspace-lists.js +1 -1
  30. package/dist/monitor/MonitorLoop.js +1 -1
  31. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  32. package/dist/playbooks/service-build/context-assembly.d.ts +3 -1
  33. package/dist/playbooks/service-build/context-assembly.js +1 -1
  34. package/dist/playbooks/service-build/machine-nodes.d.ts +2 -0
  35. package/dist/playbooks/service-build/machine-nodes.js +1 -1
  36. package/dist/playbooks/service-build/machine-panorama.d.ts +7 -0
  37. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  38. package/dist/review/machine.js +1 -1
  39. package/dist/safety/confirm-gate.js +1 -1
  40. package/dist/schema/call/base.d.ts +12 -3
  41. package/dist/schema/call/base.js +1 -1
  42. package/dist/schema/call/bridge.d.ts +4 -0
  43. package/dist/schema/call/bridge.js +1 -1
  44. package/dist/schema/call/error-codes.d.ts +2 -0
  45. package/dist/schema/call/error-codes.js +1 -0
  46. package/dist/schema/call/guard.d.ts +4 -4
  47. package/dist/schema/call/semantic.d.ts +9 -1
  48. package/dist/schema/call/semantic.js +1 -1
  49. package/dist/schema/common/index.js +1 -1
  50. package/dist/schema/goal/index.d.ts +3 -3
  51. package/dist/schema/goal/planning.d.ts +2 -2
  52. package/dist/schema/industry-pack/index.d.ts +4 -4
  53. package/dist/schema/industry-pack/modes.d.ts +4 -4
  54. package/dist/schema/local/index.d.ts +558 -0
  55. package/dist/schema/local/index.js +1 -1
  56. package/dist/schema/messenger/index.d.ts +25 -25
  57. package/dist/schema/operations.d.ts +1 -1
  58. package/dist/schema/persona/index.d.ts +2 -2
  59. package/dist/schema/query/bi.d.ts +0 -4
  60. package/dist/schema/query/bi.js +1 -1
  61. package/dist/schema/query/index.js +1 -1
  62. package/dist/schema/schema-query/index.d.ts +1 -1
  63. package/dist/schema/schema-version.js +1 -1
  64. package/dist/schema/trust/index.d.ts +3 -3
  65. package/dist/schema/workspace/index.d.ts +1 -1
  66. package/dist/schema-query-impl/index.js +1 -1
  67. package/dist/schemas/account_operation.output.json +4 -0
  68. package/dist/schemas/bridge_operation.output.json +4 -0
  69. package/dist/schemas/index.json +7 -1
  70. package/dist/schemas/local_history_operation.output.json +1458 -0
  71. package/dist/schemas/local_history_operation.schema.json +105 -0
  72. package/dist/schemas/local_info_operation.output.json +4 -0
  73. package/dist/schemas/local_mark_operation.output.json +4 -0
  74. package/dist/schemas/onchain_operations.output.json +4 -1
  75. package/dist/schemas/onchain_operations.schema.json +30 -10
  76. package/dist/schemas/onchain_operations_guard.schema.json +30 -10
  77. package/dist/schemas/query_toolkit.output.json +17 -16
  78. package/dist/tools/handlers/config.js +1 -1
  79. package/dist/tools/handlers/local.d.ts +1 -0
  80. package/dist/tools/handlers/local.js +1 -1
  81. package/dist/tools/handlers/onchain.js +1 -1
  82. package/dist/tools/index.js +1 -1
  83. package/dist/tools/registry/local.js +1 -1
  84. package/dist/tools/shared.js +1 -1
  85. package/dist/tools/wrap.js +1 -1
  86. package/package.json +2 -2
  87. package/dist/knowledge/allocation-confirm.d.ts +0 -115
  88. package/dist/knowledge/allocation-confirm.js +0 -1
  89. package/dist/knowledge/allocation-context.d.ts +0 -58
  90. package/dist/knowledge/allocation-context.js +0 -1
  91. package/dist/knowledge/allocation-translation.d.ts +0 -72
  92. package/dist/knowledge/allocation-translation.js +0 -1
  93. package/dist/knowledge/arb-confirm.d.ts +0 -28
  94. package/dist/knowledge/arb-confirm.js +0 -1
  95. package/dist/knowledge/arb-translation.d.ts +0 -48
  96. package/dist/knowledge/arb-translation.js +0 -1
  97. package/dist/knowledge/arbitration-confirm.d.ts +0 -135
  98. package/dist/knowledge/arbitration-confirm.js +0 -1
  99. package/dist/knowledge/arbitration-context.d.ts +0 -81
  100. package/dist/knowledge/arbitration-context.js +0 -1
  101. package/dist/knowledge/arbitration-translation.d.ts +0 -91
  102. package/dist/knowledge/arbitration-translation.js +0 -1
  103. package/dist/knowledge/bridge-confirm.d.ts +0 -26
  104. package/dist/knowledge/bridge-confirm.js +0 -1
  105. package/dist/knowledge/bridge-translation.d.ts +0 -37
  106. package/dist/knowledge/bridge-translation.js +0 -1
  107. package/dist/knowledge/contact-confirm.d.ts +0 -27
  108. package/dist/knowledge/contact-confirm.js +0 -1
  109. package/dist/knowledge/contact-translation.d.ts +0 -39
  110. package/dist/knowledge/contact-translation.js +0 -1
  111. package/dist/knowledge/demand-confirm.d.ts +0 -32
  112. package/dist/knowledge/demand-confirm.js +0 -1
  113. package/dist/knowledge/demand-context.d.ts +0 -17
  114. package/dist/knowledge/demand-context.js +0 -1
  115. package/dist/knowledge/demand-ledger.d.ts +0 -26
  116. package/dist/knowledge/demand-ledger.js +0 -1
  117. package/dist/knowledge/demand-puzzle.d.ts +0 -29
  118. package/dist/knowledge/demand-puzzle.js +0 -1
  119. package/dist/knowledge/demand-templates.d.ts +0 -12
  120. package/dist/knowledge/demand-templates.js +0 -1
  121. package/dist/knowledge/demand-translation.d.ts +0 -55
  122. package/dist/knowledge/demand-translation.js +0 -1
  123. package/dist/knowledge/examples-scanner-cli.d.ts +0 -1
  124. package/dist/knowledge/examples-scanner-cli.js +0 -1
  125. package/dist/knowledge/examples-scanner.d.ts +0 -121
  126. package/dist/knowledge/examples-scanner.js +0 -1
  127. package/dist/knowledge/glossary.d.ts +0 -18
  128. package/dist/knowledge/glossary.js +0 -1
  129. package/dist/knowledge/guard-bytecode-spec.d.ts +0 -82
  130. package/dist/knowledge/guard-bytecode-spec.js +0 -1
  131. package/dist/knowledge/guard-confirm.d.ts +0 -86
  132. package/dist/knowledge/guard-confirm.js +0 -1
  133. package/dist/knowledge/immutability.d.ts +0 -11
  134. package/dist/knowledge/immutability.js +0 -1
  135. package/dist/knowledge/machine-confirm.d.ts +0 -102
  136. package/dist/knowledge/machine-confirm.js +0 -1
  137. package/dist/knowledge/machine-context.d.ts +0 -160
  138. package/dist/knowledge/machine-context.js +0 -1
  139. package/dist/knowledge/machine-render.d.ts +0 -41
  140. package/dist/knowledge/machine-render.js +0 -1
  141. package/dist/knowledge/mcp-schema-audit-cli.d.ts +0 -1
  142. package/dist/knowledge/mcp-schema-audit-cli.js +0 -1
  143. package/dist/knowledge/mcp-schema-audit.d.ts +0 -91
  144. package/dist/knowledge/mcp-schema-audit.js +0 -1
  145. package/dist/knowledge/messenger-guard-guidance.d.ts +0 -17
  146. package/dist/knowledge/messenger-guard-guidance.js +0 -1
  147. package/dist/knowledge/order-confirm.d.ts +0 -115
  148. package/dist/knowledge/order-confirm.js +0 -1
  149. package/dist/knowledge/order-context.d.ts +0 -66
  150. package/dist/knowledge/order-context.js +0 -1
  151. package/dist/knowledge/order-translation.d.ts +0 -78
  152. package/dist/knowledge/order-translation.js +0 -1
  153. package/dist/knowledge/overrides-loader.d.ts +0 -13
  154. package/dist/knowledge/overrides-loader.js +0 -1
  155. package/dist/knowledge/passport-confirm.d.ts +0 -130
  156. package/dist/knowledge/passport-confirm.js +0 -1
  157. package/dist/knowledge/passport-context.d.ts +0 -59
  158. package/dist/knowledge/passport-context.js +0 -1
  159. package/dist/knowledge/passport-puzzle.d.ts +0 -108
  160. package/dist/knowledge/passport-puzzle.js +0 -1
  161. package/dist/knowledge/passport-risk.d.ts +0 -70
  162. package/dist/knowledge/passport-risk.js +0 -1
  163. package/dist/knowledge/passport-translation.d.ts +0 -68
  164. package/dist/knowledge/passport-translation.js +0 -1
  165. package/dist/knowledge/payment-confirm.d.ts +0 -26
  166. package/dist/knowledge/payment-confirm.js +0 -1
  167. package/dist/knowledge/payment-translation.d.ts +0 -37
  168. package/dist/knowledge/payment-translation.js +0 -1
  169. package/dist/knowledge/permission-confirm.d.ts +0 -110
  170. package/dist/knowledge/permission-confirm.js +0 -1
  171. package/dist/knowledge/permission-context.d.ts +0 -69
  172. package/dist/knowledge/permission-context.js +0 -1
  173. package/dist/knowledge/permission-translation.d.ts +0 -57
  174. package/dist/knowledge/permission-translation.js +0 -1
  175. package/dist/knowledge/personal-confirm.d.ts +0 -29
  176. package/dist/knowledge/personal-confirm.js +0 -1
  177. package/dist/knowledge/personal-translation.d.ts +0 -37
  178. package/dist/knowledge/personal-translation.js +0 -1
  179. package/dist/knowledge/process-model.d.ts +0 -14
  180. package/dist/knowledge/process-model.js +0 -1
  181. package/dist/knowledge/progress-confirm.d.ts +0 -108
  182. package/dist/knowledge/progress-confirm.js +0 -1
  183. package/dist/knowledge/progress-context.d.ts +0 -123
  184. package/dist/knowledge/progress-context.js +0 -1
  185. package/dist/knowledge/progress-translation.d.ts +0 -52
  186. package/dist/knowledge/progress-translation.js +0 -1
  187. package/dist/knowledge/proof-confirm.d.ts +0 -31
  188. package/dist/knowledge/proof-confirm.js +0 -1
  189. package/dist/knowledge/proof-context.d.ts +0 -17
  190. package/dist/knowledge/proof-context.js +0 -1
  191. package/dist/knowledge/proof-ledger.d.ts +0 -34
  192. package/dist/knowledge/proof-ledger.js +0 -1
  193. package/dist/knowledge/proof-puzzle.d.ts +0 -35
  194. package/dist/knowledge/proof-puzzle.js +0 -1
  195. package/dist/knowledge/proof-templates.d.ts +0 -22
  196. package/dist/knowledge/proof-templates.js +0 -1
  197. package/dist/knowledge/proof-translation.d.ts +0 -52
  198. package/dist/knowledge/proof-translation.js +0 -1
  199. package/dist/knowledge/registrar-confirm.d.ts +0 -26
  200. package/dist/knowledge/registrar-confirm.js +0 -1
  201. package/dist/knowledge/registrar-translation.d.ts +0 -37
  202. package/dist/knowledge/registrar-translation.js +0 -1
  203. package/dist/knowledge/repository-confirm.d.ts +0 -40
  204. package/dist/knowledge/repository-confirm.js +0 -1
  205. package/dist/knowledge/repository-context.d.ts +0 -12
  206. package/dist/knowledge/repository-context.js +0 -1
  207. package/dist/knowledge/repository-ledger.d.ts +0 -25
  208. package/dist/knowledge/repository-ledger.js +0 -1
  209. package/dist/knowledge/repository-puzzle.d.ts +0 -30
  210. package/dist/knowledge/repository-puzzle.js +0 -1
  211. package/dist/knowledge/repository-templates.d.ts +0 -14
  212. package/dist/knowledge/repository-templates.js +0 -1
  213. package/dist/knowledge/repository-translation.d.ts +0 -58
  214. package/dist/knowledge/repository-translation.js +0 -1
  215. package/dist/knowledge/resource-confirm.d.ts +0 -25
  216. package/dist/knowledge/resource-confirm.js +0 -1
  217. package/dist/knowledge/resource-translation.d.ts +0 -37
  218. package/dist/knowledge/resource-translation.js +0 -1
  219. package/dist/knowledge/reward-confirm.d.ts +0 -116
  220. package/dist/knowledge/reward-confirm.js +0 -1
  221. package/dist/knowledge/reward-context.d.ts +0 -127
  222. package/dist/knowledge/reward-context.js +0 -1
  223. package/dist/knowledge/reward-translation.d.ts +0 -58
  224. package/dist/knowledge/reward-translation.js +0 -1
  225. package/dist/knowledge/service-confirm.d.ts +0 -161
  226. package/dist/knowledge/service-confirm.js +0 -1
  227. package/dist/knowledge/service-context.d.ts +0 -66
  228. package/dist/knowledge/service-context.js +0 -1
  229. package/dist/knowledge/service-translation.d.ts +0 -103
  230. package/dist/knowledge/service-translation.js +0 -1
  231. package/dist/knowledge/treasury-confirm.d.ts +0 -133
  232. package/dist/knowledge/treasury-confirm.js +0 -1
  233. package/dist/knowledge/treasury-context.d.ts +0 -64
  234. package/dist/knowledge/treasury-context.js +0 -1
  235. package/dist/knowledge/treasury-translation.d.ts +0 -78
  236. package/dist/knowledge/treasury-translation.js +0 -1
  237. package/dist/knowledge/util-confirm.d.ts +0 -24
  238. package/dist/knowledge/util-confirm.js +0 -1
  239. package/dist/knowledge/util-translation.d.ts +0 -39
  240. package/dist/knowledge/util-translation.js +0 -1
  241. package/dist/loop-engineering/aggregate.d.ts +0 -50
  242. package/dist/loop-engineering/aggregate.js +0 -1
  243. package/dist/loop-engineering/context-collect.d.ts +0 -7
  244. package/dist/loop-engineering/context-collect.js +0 -1
  245. package/dist/loop-engineering/diagnose.d.ts +0 -22
  246. package/dist/loop-engineering/diagnose.js +0 -1
  247. package/dist/loop-engineering/improve.d.ts +0 -55
  248. package/dist/loop-engineering/improve.js +0 -1
  249. package/dist/loop-engineering/index.d.ts +0 -4
  250. package/dist/loop-engineering/index.js +0 -1
  251. package/dist/loop-engineering/pipeline.d.ts +0 -17
  252. package/dist/loop-engineering/pipeline.js +0 -1
  253. package/dist/schema/utils/object-type-utils.d.ts +0 -12
  254. package/dist/schema/utils/object-type-utils.js +0 -1
  255. package/dist/telemetry/index.d.ts +0 -19
  256. package/dist/telemetry/index.js +0 -1
  257. package/dist/telemetry/redact.d.ts +0 -2
  258. package/dist/telemetry/redact.js +0 -1
  259. package/dist/telemetry/storage.d.ts +0 -8
  260. package/dist/telemetry/storage.js +0 -1
@@ -1,37 +0,0 @@
1
- export declare const RESOURCE_TRANSLATION_VERSION = "1.0.0";
2
- export interface SemanticToResourceSchemaRule {
3
- id: string;
4
- pattern_name: string;
5
- semantic_intent: string;
6
- match_keywords: string[];
7
- required_fields: string[];
8
- optional_fields: string[];
9
- example: Record<string, unknown>;
10
- }
11
- export declare const SEMANTIC_TO_RESOURCE_SCHEMA_RULES: SemanticToResourceSchemaRule[];
12
- export interface ResourceFieldTranslation {
13
- field_name: string;
14
- value_type: string;
15
- semantic: string;
16
- format_example: string;
17
- validation_rules: string[];
18
- }
19
- export declare const RESOURCE_FIELD_TRANSLATIONS: ResourceFieldTranslation[];
20
- export interface ResourceConstraintRule {
21
- id: string;
22
- name: string;
23
- description: string;
24
- related_field: string;
25
- }
26
- export declare const RESOURCE_CONSTRAINT_RULES: ResourceConstraintRule[];
27
- export interface ResourceExplainInput {
28
- object?: string;
29
- tags_count?: number;
30
- is_destroy?: boolean;
31
- }
32
- export interface ResourceExplanation {
33
- summary: string;
34
- tag_status: string;
35
- warnings: string[];
36
- }
37
- export declare function explainResource(input: ResourceExplainInput): ResourceExplanation;
@@ -1 +0,0 @@
1
- import{MAX_TAGS_COUNT}from'@wowok/wowok';export const RESOURCE_TRANSLATION_VERSION='1.0.0';export const SEMANTIC_TO_RESOURCE_SCHEMA_RULES=[{'id':'P-RESOURCE-01','pattern_name':'Add\x20object\x20tags','semantic_intent':'Attach\x20tags\x20(and\x20optional\x20nickname)\x20to\x20an\x20object\x20address.','match_keywords':['add\x20tags','tag\x20object','label'],'required_fields':['object'],'optional_fields':['nick','tags'],'example':{'object':'0x...','nick':'my_shop','tags':['verified','gold']}},{'id':'P-RESOURCE-02','pattern_name':'Remove\x20object\x20tags','semantic_intent':'Remove\x20tags\x20(and\x20optionally\x20reset\x20nickname)\x20from\x20an\x20object\x20address.','match_keywords':['remove\x20tags','untag','clear\x20label'],'required_fields':['object'],'optional_fields':['nick','tags'],'example':{'object':'0x...','tags':['gold']}}];export const RESOURCE_FIELD_TRANSLATIONS=[{'field_name':'table','value_type':'ParentTable<address,\x20AddressTag>','semantic':'Tag\x20registry\x20keyed\x20by\x20object\x20address.','format_example':'{0x...:\x20AddressTag}','validation_rules':['no\x20on-chain\x20permission\x20check\x20—\x20caller\x20gated']},{'field_name':'name','value_type':'string','semantic':'AddressTag\x20nickname\x20(optional,\x20common::NAME\x20validation).','format_example':'my_shop','validation_rules':['common::NAME\x20validation']},{'field_name':'tags','value_type':'vector<string>','semantic':'Tag\x20list\x20(≤\x20MAX_TAGS_COUNT\x20'+MAX_TAGS_COUNT+').\x20Each\x20tag\x20uses\x20common::NAME.','format_example':'[\x22verified\x22,\x20\x22gold\x22]','validation_rules':['E_TAGS_COUNT_EXCEEDED\x20(1)\x20at\x20cap','common::NAME\x20per\x20tag']}];export const RESOURCE_CONSTRAINT_RULES=[{'id':'RESOURCE_C_01','name':'tag\x20count\x20cap','description':'tags\x20length\x20<\x20MAX_TAGS_COUNT\x20('+MAX_TAGS_COUNT+').','related_field':'tags'},{'id':'RESOURCE_C_02','name':'tag\x20name\x20validation','description':'each\x20tag\x20uses\x20common::NAME.','related_field':'tags'},{'id':'RESOURCE_C_03','name':'tag_set\x20return','description':'tag_set\x20returns\x20bool\x20(true=added,\x20false=duplicate).','related_field':'tags'},{'id':'RESOURCE_C_04','name':'no\x20own\x20permission','description':'Resource\x20has\x20no\x20Permission;\x20caller\x20enforces\x20gating.','related_field':'table'}];export function explainResource(a){const b=[],c=a['tags_count']!==undefined?a['tags_count']+'/'+MAX_TAGS_COUNT+'\x20tags':'tag\x20count\x20unknown';return a['tags_count']!==undefined&&a['tags_count']>=MAX_TAGS_COUNT&&b['push']('tags\x20at\x20cap\x20('+MAX_TAGS_COUNT+');\x20add_object_tags\x20will\x20abort\x20E_TAGS_COUNT_EXCEEDED'),a['is_destroy']&&b['push']('destroy\x20is\x20irreversible\x20—\x20confirm\x20no\x20live\x20references'),{'summary':'Resource\x20('+(a['object']??'object')+').\x20'+c+'.','tag_status':c,'warnings':b};}
@@ -1,116 +0,0 @@
1
- import { type RewardRiskAssessment } from "./reward-risk.js";
2
- export type RewardConfirmGateStatus = "approved" | "blocked_checklist" | "blocked_risk" | "blocked_user" | "blocked_environment";
3
- export interface RewardConfirmGateResult {
4
- status: RewardConfirmGateStatus;
5
- checklist_result: RewardChecklistResult;
6
- risk_result?: RewardRiskAssessment;
7
- user_confirmation?: RewardUserConfirmation;
8
- environment_result?: RewardEnvironmentResult;
9
- confirmation_text?: string;
10
- block_reason?: string;
11
- decision_record: RewardDecisionRecord;
12
- }
13
- export interface RewardChecklistResult {
14
- all_passed: boolean;
15
- items: RewardChecklistItem[];
16
- }
17
- export interface RewardChecklistItem {
18
- id: string;
19
- description: string;
20
- passed: boolean;
21
- message: string;
22
- }
23
- export interface RewardUserConfirmation {
24
- questions_asked: RewardConfirmationQuestion[];
25
- responses: RewardConfirmationResponse[];
26
- all_confirmed: boolean;
27
- }
28
- export interface RewardConfirmationQuestion {
29
- id: string;
30
- question: string;
31
- requires_explicit_yes: boolean;
32
- related_risk_ids?: string[];
33
- }
34
- export interface RewardConfirmationResponse {
35
- question_id: string;
36
- response: "yes" | "no" | "skip";
37
- }
38
- export interface RewardEnvironmentResult {
39
- passed: boolean;
40
- checks: {
41
- name: string;
42
- passed: boolean;
43
- message: string;
44
- }[];
45
- }
46
- export interface RewardDecisionRecord {
47
- timestamp: string;
48
- gate_version: string;
49
- final_status: RewardConfirmGateStatus;
50
- layers_passed: string[];
51
- layers_failed: string[];
52
- }
53
- export interface RewardJsonForConfirm {
54
- object?: string | null;
55
- claim?: string;
56
- description?: string;
57
- coin_add?: {
58
- amount: string | number;
59
- coin_type: string;
60
- };
61
- receive?: {
62
- token_type: string;
63
- };
64
- guard_add?: Array<{
65
- guard: string;
66
- recipient: {
67
- GuardIdentifier: number;
68
- } | {
69
- Entity: string;
70
- } | {
71
- Signer: unknown;
72
- };
73
- amount: {
74
- type: string;
75
- value: number | string;
76
- };
77
- expiration_time?: number;
78
- store_from_id?: number | null;
79
- }>;
80
- guard_remove_expired?: boolean;
81
- guard_expiration_time?: number | null;
82
- owner_receive?: unknown;
83
- um?: string | null;
84
- guard_expected_progress_state?: string;
85
- }
86
- export interface RewardConfirmGateInput {
87
- reward_json: RewardJsonForConfirm;
88
- intent?: string;
89
- reward_type?: string;
90
- current_balance?: string;
91
- current_guard_count?: number;
92
- current_record_count_for_recipient?: number;
93
- current_guard_not_added_expiration_time?: number | null;
94
- current_clock_ms?: number;
95
- permission_address?: string;
96
- signer?: string;
97
- target_guard_addresses?: string[];
98
- passport_submission_value_types?: Record<number, string>;
99
- passport_identifier_is_address?: Record<number, boolean>;
100
- guard_store_from_id_compatible?: Record<string, boolean>;
101
- user_intent_phrases?: string[];
102
- machine_has_wonder_node?: boolean;
103
- skip_user_confirmation?: boolean;
104
- skip_environment_check?: boolean;
105
- }
106
- export declare const REWARD_OPERATION_CHECKLIST: RewardChecklistItem[];
107
- export declare const REWARD_CONFIRMATION_QUESTIONS: RewardConfirmationQuestion[];
108
- export declare const REWARD_CONFIRM_VERSION = "1.0.0";
109
- export declare function runRewardConfirmGate(input: RewardConfirmGateInput): RewardConfirmGateResult;
110
- export interface ProgressiveRewardCheckResult {
111
- stage: "checklist" | "risk" | "confirmation" | "environment" | "complete";
112
- status: "pass" | "fail" | "pending";
113
- message: string;
114
- next_action?: string;
115
- }
116
- export declare function progressiveRewardCheck(input: RewardConfirmGateInput): ProgressiveRewardCheckResult;
@@ -1 +0,0 @@
1
- import{MAX_GUARD_COUNT_REWARD,MAX_RECORD_COUNT_REWARD}from'./onchain-constants.js';import{assessRewardRisks}from'./reward-risk.js';export const REWARD_OPERATION_CHECKLIST=[{'id':'C-R-01','description':'guard_add\x20count\x20<\x20MAX_GUARD_COUNT_REWARD\x20(200)','passed':![],'message':''},{'id':'C-R-02','description':'Per-recipient\x20record\x20count\x20<\x20MAX_RECORD_COUNT_REWARD\x20(5200)','passed':![],'message':''},{'id':'C-R-03','description':'claim:\x20balance\x20≥\x20amount\x20(E_INSUFFICIENT_BALANCE)','passed':![],'message':''},{'id':'C-R-04','description':'guard_add:\x20clock\x20>\x20guard_not_added_expiration_time\x20(if\x20Some)','passed':![],'message':''},{'id':'C-R-05','description':'guard_add\x20/\x20claim:\x20clock\x20≤\x20guard.expiration_time\x20(if\x20Some)','passed':![],'message':''},{'id':'C-R-06','description':'guard_add:\x20valid\x20Recipient\x20×\x20Amount\x20pairing\x20(6\x20constructors)','passed':![],'message':''},{'id':'C-R-07','description':'coin_add:\x20coin\x20type\x20T\x20matches\x20Reward<T>','passed':![],'message':''},{'id':'C-R-08','description':'claim:\x20Passport\x20is\x20provided\x20(SDK\x20W_ERROR\x20if\x20missing)','passed':![],'message':''},{'id':'C-R-09','description':'owner_receive\x20(156):\x20user\x20double-confirms\x20blast\x20radius','passed':![],'message':''},{'id':'C-R-10','description':'guard_expiration_time_add\x20(155):\x20new\x20time\x20>\x20current\x20clock','passed':![],'message':''},{'id':'C-R-11','description':'guard_add:\x20Guard\x27s\x20progress.current\x20expected\x20value\x20matches\x20business\x20intent\x20(praise→wonder,\x20completion→completed)','passed':![],'message':''}];function runStaticChecklist(a){const b=REWARD_OPERATION_CHECKLIST['map'](p=>({...p})),c=a['reward_json'],d=b['find'](p=>p['id']==='C-R-01');if(c['guard_add']&&c['guard_add']['length']>0x0){const p=a['current_guard_count']??0x0;p+c['guard_add']['length']>MAX_GUARD_COUNT_REWARD?(d['passed']=![],d['message']=p+c['guard_add']['length']+'\x20>\x20'+MAX_GUARD_COUNT_REWARD):d['passed']=!![];}else d['passed']=!![];const e=b['find'](q=>q['id']==='C-R-02');if(c['claim']){const q=a['current_record_count_for_recipient']??0x0;q>=MAX_RECORD_COUNT_REWARD?(e['passed']=![],e['message']=q+'\x20≥\x20'+MAX_RECORD_COUNT_REWARD):e['passed']=!![];}else e['passed']=!![];const f=b['find'](r=>r['id']==='C-R-03');if(c['claim']&&a['current_balance']!==undefined){const r=BigInt(a['current_balance']);r===0x0n?(f['passed']=![],f['message']='balance=0\x20—\x20claim\x20will\x20abort\x20E_INSUFFICIENT_BALANCE'):f['passed']=!![];}else f['passed']=!![];const h=b['find'](s=>s['id']==='C-R-04');if(c['guard_add']&&c['guard_add']['length']>0x0&&a['current_guard_not_added_expiration_time']!=null){const s=a['current_clock_ms']??Date['now']();s<=a['current_guard_not_added_expiration_time']?(h['passed']=![],h['message']='clock\x20'+s+'\x20≤\x20lock\x20'+a['current_guard_not_added_expiration_time']):h['passed']=!![];}else h['passed']=!![];const i=b['find'](t=>t['id']==='C-R-05');i['passed']=!![];const j=b['find'](t=>t['id']==='C-R-06');if(c['guard_add']){const t=['GuardIdentifier','Entity','Signer'],u=['Fixed','GuardU64Identifier','GUARDU64IDENTIFIER','GUARD_U64_IDENTIFIER'];let v=!![];for(const w of c['guard_add']){const x=Object['keys'](w['recipient']);if(x['length']!==0x1||!t['includes'](x[0x0])){v=![];break;}if(!u['includes'](String(w['amount']['type'])['toUpperCase']())){v=![];break;}}j['passed']=v,j['message']=v?'':'Invalid\x20Recipient\x20×\x20Amount\x20pairing';}else j['passed']=!![];const k=b['find'](y=>y['id']==='C-R-07');c['coin_add']&&a['reward_type']?(k['passed']=c['coin_add']['coin_type']===a['reward_type'],k['message']=k['passed']?'':c['coin_add']['coin_type']+'\x20≠\x20'+a['reward_type']):k['passed']=!![];const l=b['find'](y=>y['id']==='C-R-08');c['claim']?(l['passed']=!![],l['message']='Passport\x20presence\x20verified\x20by\x20SDK\x20operate()'):l['passed']=!![];const m=b['find'](y=>y['id']==='C-R-09');c['owner_receive']!=null?(m['passed']=![],m['message']='Pending\x20user\x20confirmation\x20in\x20L3\x20(QRW3)'):m['passed']=!![];const n=b['find'](y=>y['id']==='C-R-10');if(c['guard_expiration_time']!==undefined&&c['guard_expiration_time']!==null){const y=a['current_clock_ms']??Date['now']();c['guard_expiration_time']<=y?(n['passed']=![],n['message']=c['guard_expiration_time']+'\x20≤\x20clock\x20'+y):n['passed']=!![];}else n['passed']=!![];const o=b['find'](z=>z['id']==='C-R-11');if(c['guard_expected_progress_state']&&a['user_intent_phrases']&&a['user_intent_phrases']['length']>0x0){const z=a['user_intent_phrases']['join']('\x20')['toLowerCase'](),A=['praise','wonder','thumbs_up','positive\x20review','satisfaction\x20reward','praise\x20reward'],B=A['some'](C=>z['includes'](C['toLowerCase']()));B&&a['machine_has_wonder_node']!==![]&&c['guard_expected_progress_state']!=='wonder'?(o['passed']=![],o['message']='intent=praise\x20but\x20Guard\x20checks\x20\x22'+c['guard_expected_progress_state']+'\x22\x20instead\x20of\x20\x22wonder\x22\x20—\x20R-R-6-01\x20violation'):o['passed']=!![];}else o['passed']=!![];return{'all_passed':b['filter'](C=>C['id']!=='C-R-09')['every'](C=>C['passed']),'items':b};}function adaptRiskAssessment(a){const b={'object':a['reward_json']['object'],'claim':a['reward_json']['claim'],'description':a['reward_json']['description'],'coin_add':a['reward_json']['coin_add'],'receive':a['reward_json']['receive'],'guard_add':a['reward_json']['guard_add'],'guard_remove_expired':a['reward_json']['guard_remove_expired'],'guard_expiration_time':a['reward_json']['guard_expiration_time'],'owner_receive':a['reward_json']['owner_receive'],'um':a['reward_json']['um'],'reward_type':a['reward_type'],'current_balance':a['current_balance'],'current_guard_count':a['current_guard_count'],'current_record_count_for_recipient':a['current_record_count_for_recipient'],'current_guard_not_added_expiration_time':a['current_guard_not_added_expiration_time'],'current_clock_ms':a['current_clock_ms'],'permission_address':a['permission_address'],'signer':a['signer'],'target_guard_addresses':a['target_guard_addresses'],'passport_submission_value_types':a['passport_submission_value_types'],'passport_identifier_is_address':a['passport_identifier_is_address'],'guard_store_from_id_compatible':a['guard_store_from_id_compatible'],'user_intent_phrases':a['user_intent_phrases'],'guard_expected_progress_state':a['reward_json']['guard_expected_progress_state'],'machine_has_wonder_node':a['machine_has_wonder_node']};return assessRewardRisks(b);}export const REWARD_CONFIRMATION_QUESTIONS=[{'id':'QRW1','question':'Is\x20the\x20target\x20Reward\x20object\x20address\x20correct,\x20and\x20does\x20its\x20coin\x20type\x20T\x20match\x20the\x20intended\x20token?','requires_explicit_yes':!![]},{'id':'QRW2','question':'For\x20guard_add:\x20is\x20the\x20Guard\x20address\x20valid\x20and\x20added\x20to\x20this\x20Reward\x20(E_GUARD_NOT_FOUND\x20on\x20claim\x20if\x20not)?','requires_explicit_yes':!![],'related_risk_ids':['R-R-5-01']},{'id':'QRW3','question':'⚠️\x20For\x20owner_receive\x20(156):\x20do\x20you\x20confirm\x20sweeping\x20receivables\x20to\x20the\x20Permission\x20owner?\x20Grant\x20156\x20only\x20to\x20dedicated\x20addresses.','requires_explicit_yes':!![],'related_risk_ids':['R-R-3-02']},{'id':'QRW4','question':'For\x20guard_expiration_time_add\x20(155):\x20do\x20you\x20acknowledge\x20this\x20sets\x20a\x20time-lock\x20on\x20guard\x20additions\x20(cannot\x20be\x20shortened\x20below\x20current\x20clock)?','requires_explicit_yes':!![],'related_risk_ids':['R-R-3-03','R-R-4-04']},{'id':'QRW5','question':'For\x20claim:\x20is\x20the\x20Passport\x20provided\x20with\x20valid\x20submissions\x20for\x20the\x20Guard\x20(recipient\x20+\x20amount\x20+\x20store_from_id\x20if\x20set)?','requires_explicit_yes':!![],'related_risk_ids':['R-R-2-01','R-R-2-02','R-R-2-03']},{'id':'QRW6','question':'For\x20coin_add:\x20have\x20you\x20verified\x20the\x20coin\x20type\x20T\x20matches\x20Reward<T>\x20(type\x20mismatch\x20will\x20abort\x20in\x20SDK\x20operate)?','requires_explicit_yes':![],'related_risk_ids':['R-R-5-02']},{'id':'QRW7','question':'⚠️\x20For\x20guard_add\x20with\x20progress.current\x20check:\x20does\x20the\x20Guard\x27s\x20expected\x20progress\x20node\x20match\x20the\x20business\x20intent?\x20'+'If\x20intent\x20is\x20\x27praise/positive\x20review\x27,\x20Guard\x20must\x20check\x20\x27wonder\x27\x20(NOT\x20\x27completed\x27).\x20'+'Premature\x20claim\x20at\x20wrong\x20node\x20drains\x20reward\x20pool\x20—\x20Guard\x20is\x20immutable\x20after\x20creation.','requires_explicit_yes':!![],'related_risk_ids':['R-R-6-01','R-R-6-02']}];function processUserConfirmation(a,b){const c=[...REWARD_CONFIRMATION_QUESTIONS],d=a['reward_json'],e=[];for(const f of c){if(f['id']==='QRW2'&&!d['guard_add'])continue;if(f['id']==='QRW3'&&d['owner_receive']==null)continue;if(f['id']==='QRW4'&&d['guard_expiration_time']===undefined)continue;if(f['id']==='QRW5'&&!d['claim'])continue;if(f['id']==='QRW6'&&!d['coin_add'])continue;if(f['id']==='QRW7'&&(!d['guard_add']||!d['guard_expected_progress_state']))continue;e['push'](f);}if(a['skip_user_confirmation'])return{'questions_asked':e,'responses':e['map'](g=>({'question_id':g['id'],'response':'yes'})),'all_confirmed':!![]};return{'questions_asked':e,'responses':[],'all_confirmed':![]};}function verifyEnvironment(a){const b=[];a['reward_json']['object']&&b['push']({'name':'reward_exists','passed':!![],'message':'Reward\x20'+a['reward_json']['object']+'\x20assumed\x20to\x20exist'});a['permission_address']&&b['push']({'name':'permission_exists','passed':!![],'message':'Permission\x20'+a['permission_address']+'\x20assumed\x20to\x20exist'});if(a['reward_json']['claim']&&a['target_guard_addresses']){const d=a['target_guard_addresses']['includes'](a['reward_json']['claim']);b['push']({'name':'guard_bound_to_reward','passed':d,'message':d?'Guard\x20'+a['reward_json']['claim']+'\x20is\x20in\x20Reward.guards':'Guard\x20'+a['reward_json']['claim']+'\x20NOT\x20in\x20Reward.guards\x20—\x20E_GUARD_NOT_FOUND\x20will\x20abort'});}if(a['reward_json']['claim']&&a['current_balance']!==undefined){const e=BigInt(a['current_balance']);b['push']({'name':'balance_positive_for_claim','passed':e>0x0n,'message':e>0x0n?'Balance\x20'+a['current_balance']+'\x20>\x200':'Balance\x20is\x200\x20—\x20E_INSUFFICIENT_BALANCE\x20will\x20abort'});}a['signer']&&a['permission_address']&&b['push']({'name':'signer_authorization','passed':!![],'message':'Signer\x20'+a['signer']+'\x20assumed\x20authorized\x20(verify\x20via\x20queryObjectPermission)'});const c=b['every'](f=>f['passed']);return{'passed':c,'checks':b};}export const REWARD_CONFIRM_VERSION='1.0.0';export function runRewardConfirmGate(a){const b=[],c=[],d=runStaticChecklist(a);if(!d['all_passed'])return c['push']('L1_checklist'),{'status':'blocked_checklist','checklist_result':d,'confirmation_text':generateConfirmationText(a,d),'block_reason':'Checklist\x20failed:\x20'+d['items']['filter'](h=>!h['passed'])['map'](h=>h['id'])['join'](',\x20'),'decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':REWARD_CONFIRM_VERSION,'final_status':'blocked_checklist','layers_passed':b,'layers_failed':c}};b['push']('L1_checklist');const e=adaptRiskAssessment(a),f=e['risks']['some'](h=>h['level']==='CRITICAL');if(f)return c['push']('L2_risk'),{'status':'blocked_risk','checklist_result':d,'risk_result':e,'confirmation_text':generateConfirmationText(a,d,e),'block_reason':'CRITICAL\x20risks:\x20'+e['risks']['filter'](h=>h['level']==='CRITICAL')['map'](h=>h['id'])['join'](',\x20'),'decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':REWARD_CONFIRM_VERSION,'final_status':'blocked_risk','layers_passed':b,'layers_failed':c}};b['push']('L2_risk');const g=processUserConfirmation(a,e);if(!g['all_confirmed']){if(a['reward_json']['owner_receive']!=null){const h=d['items']['find'](j=>j['id']==='C-R-09');if(h){const i=g['responses']['find'](j=>j['question_id']==='QRW3');h['passed']=i?.['response']==='yes',h['message']=h['passed']?'':'owner_receive\x20not\x20confirmed\x20by\x20user\x20(QRW3)';}}if(a['reward_json']['owner_receive']!=null){const j=d['items']['find'](k=>k['id']==='C-R-09');if(j&&!j['passed'])return c['push']('L3_user'),{'status':'blocked_user','checklist_result':d,'risk_result':e,'user_confirmation':g,'confirmation_text':generateConfirmationText(a,d,e),'block_reason':'User\x20did\x20not\x20confirm\x20owner_receive\x20(QRW3)','decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':REWARD_CONFIRM_VERSION,'final_status':'blocked_user','layers_passed':b,'layers_failed':c}};}}b['push']('L3_user');if(a['skip_environment_check'])b['push']('L4_environment');else{const k=verifyEnvironment(a);if(!k['passed'])return c['push']('L4_environment'),{'status':'blocked_environment','checklist_result':d,'risk_result':e,'user_confirmation':g,'environment_result':k,'confirmation_text':generateConfirmationText(a,d,e),'block_reason':'Environment\x20check\x20failed:\x20'+k['checks']['filter'](l=>!l['passed'])['map'](l=>l['name'])['join'](',\x20'),'decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':REWARD_CONFIRM_VERSION,'final_status':'blocked_environment','layers_passed':b,'layers_failed':c}};b['push']('L4_environment');}return{'status':'approved','checklist_result':d,'risk_result':e,'user_confirmation':g,'confirmation_text':generateConfirmationText(a,d,e),'decision_record':{'timestamp':new Date()['toISOString'](),'gate_version':REWARD_CONFIRM_VERSION,'final_status':'approved','layers_passed':b,'layers_failed':c}};}function generateConfirmationText(a,b,c){const d=[],e=a['reward_json'];d['push']('═══\x20Reward\x20Operation\x20Confirmation\x20═══'),d['push']('');e['object']?d['push']('Reward:\x20'+e['object']):d['push']('Reward:\x20NEW\x20(will\x20be\x20created\x20in\x20this\x20tx)');a['reward_type']&&d['push']('Coin\x20type\x20T:\x20'+a['reward_type']);a['current_balance']!==undefined&&d['push']('Current\x20balance:\x20'+a['current_balance']);a['current_guard_count']!==undefined&&d['push']('Current\x20guard\x20count:\x20'+a['current_guard_count']+'/'+MAX_GUARD_COUNT_REWARD);d['push'](''),d['push']('─\x20Checklist\x20──────────────────');for(const f of b['items']){const h=f['passed']?'✓':'✗';d['push']('\x20\x20'+h+'\x20'+f['id']+':\x20'+f['description']+(f['message']?'\x20—\x20'+f['message']:''));}d['push']('');if(c){d['push']('─\x20Risk\x20Assessment\x20──────────────────'),d['push']('Overall:\x20'+c['overall_risk']),d['push']('Detected:\x20'+c['risks']['length']+'\x20risk(s)');for(const j of c['risks']){d['push']('\x20\x20['+j['level']+']\x20'+j['id']+':\x20'+j['title']);}d['push']('');}d['push']('─\x20Operations\x20──────────────────');if(e['claim'])d['push']('-\x20claim:\x20guard='+e['claim']+'\x20(passport-driven,\x20no\x20permission)');if(e['description']!=null)d['push']('-\x20description_set:\x20\x22'+e['description']+'\x22');if(e['coin_add'])d['push']('-\x20coin_add:\x20'+e['coin_add']['amount']+'\x20of\x20'+e['coin_add']['coin_type']);if(e['receive'])d['push']('-\x20receive:\x20payment\x20token='+e['receive']['token_type']);if(e['guard_add']){d['push']('-\x20guard_add:\x20'+e['guard_add']['length']+'\x20guard(s)');for(let k=0x0;k<e['guard_add']['length'];k++){const l=e['guard_add'][k],m=Object['keys'](l['recipient'])[0x0];d['push']('\x20\x20['+k+']\x20guard='+l['guard']+',\x20recipient='+m+',\x20amount='+l['amount']['type']+'('+l['amount']['value']+')');}}if(e['guard_remove_expired'])d['push']('-\x20guard_remove_expired:\x20true');if(e['guard_expiration_time']!==undefined){const n=e['guard_expiration_time'];d['push']('-\x20guard_expiration_time_add:\x20'+(n===null?'null\x20(cancel\x20lock)':n));}if(e['owner_receive']!=null)d['push']('-\x20⚠️\x20owner_receive\x20(156):\x20unwrap\x20to\x20Permission\x20owner');return e['um']!==undefined&&d['push']('-\x20um_'+(e['um']?'set':'none')+':\x20'+(e['um']??'(unbind)')),d['push'](''),d['join']('\x0a');}export function progressiveRewardCheck(a){const b=runStaticChecklist(a);if(!b['all_passed'])return{'stage':'checklist','status':'fail','message':'Checklist\x20failed:\x20'+b['items']['filter'](d=>!d['passed'])['map'](d=>d['id'])['join'](',\x20'),'next_action':'Fix\x20failing\x20checklist\x20items'};const c=adaptRiskAssessment(a);if(c['risks']['some'](d=>d['level']==='CRITICAL'))return{'stage':'risk','status':'fail','message':'CRITICAL\x20risks:\x20'+c['risks']['filter'](d=>d['level']==='CRITICAL')['map'](d=>d['id'])['join'](',\x20'),'next_action':'Resolve\x20CRITICAL\x20risks\x20before\x20proceeding'};if(c['needs_human_review'])return{'stage':'confirmation','status':'pending','message':'Human\x20review\x20required\x20for\x20HIGH\x20risks','next_action':'Confirm\x20risk\x20acceptance'};return{'stage':'complete','status':'pass','message':'All\x20checks\x20passed'};}
@@ -1,127 +0,0 @@
1
- import { type RewardScene, type RewardBuiltinPermissionEntry, type RewardGuardConstructorSpec, type RewardPhase, type RewardRecipientType, type RewardAmountType } from "./reward-ledger.js";
2
- import { type RewardPuzzle, type RewardPuzzleCompleteness } from "./reward-puzzle.js";
3
- import { type RewardRiskAssessment, type RewardRiskRule, type RewardStakeholder } from "./reward-risk.js";
4
- import { type RewardSemanticToSchemaRule } from "./reward-translation.js";
5
- import { type RewardTemplate } from "./reward-templates.js";
6
- import { REWARD_OPERATION_CHECKLIST, REWARD_CONFIRMATION_QUESTIONS, type RewardJsonForConfirm } from "./reward-confirm.js";
7
- export declare const REWARD_CONTEXT_VERSION = "1.0.0";
8
- export type RewardInjectionMode = "initial_design" | "pre_claim" | "post_claim" | "guard_review" | "balance_review" | "stakeholder_review";
9
- export type RewardStakeholderPerspective = RewardStakeholder | "system";
10
- export interface RewardContextBundle {
11
- version: string;
12
- mode: RewardInjectionMode;
13
- stakeholder_perspective?: RewardStakeholderPerspective;
14
- matched_scene?: RewardScene;
15
- matched_template?: RewardTemplate;
16
- matched_pattern?: RewardSemanticToSchemaRule;
17
- puzzle_state?: RewardPuzzle;
18
- puzzle_completeness?: RewardPuzzleCompleteness;
19
- relevant_risks: RewardRiskRule[];
20
- risk_assessment?: RewardRiskAssessment;
21
- relevant_checklist: typeof REWARD_OPERATION_CHECKLIST;
22
- relevant_questions: typeof REWARD_CONFIRMATION_QUESTIONS;
23
- relevant_builtin_permissions: RewardBuiltinPermissionEntry[];
24
- relevant_guard_constructors: RewardGuardConstructorSpec[];
25
- cross_object_refs: RewardCrossObjectRef[];
26
- onchain_constraints: RewardOnchainConstraint[];
27
- rendering_hints: RewardRenderingHints;
28
- }
29
- export interface RewardCrossObjectRef {
30
- object: "Guard" | "Permission" | "Passport" | "Payment" | "Repository" | "Service" | "Demand" | "Allocation" | "Contact" | "Coin";
31
- phase: RewardPhase | "universal";
32
- relationship: string;
33
- description: string;
34
- }
35
- export interface RewardOnchainConstraint {
36
- name: string;
37
- value: string | number;
38
- description: string;
39
- error_code?: string;
40
- }
41
- export interface RewardRenderingHints {
42
- include_puzzle_template: boolean;
43
- include_risk_details: boolean;
44
- include_questions: boolean;
45
- include_claim_warning: boolean;
46
- include_owner_receive_warning: boolean;
47
- include_cross_object_refs: boolean;
48
- include_guard_constructor_matrix: boolean;
49
- max_length: number;
50
- }
51
- export interface BuildRewardContextInput {
52
- mode: RewardInjectionMode;
53
- intent?: string;
54
- reward_json?: RewardJsonForConfirm;
55
- stakeholder?: RewardStakeholderPerspective;
56
- target_phase?: RewardPhase;
57
- target_industry?: string;
58
- max_length?: number;
59
- reward_type?: string;
60
- current_balance?: string;
61
- current_guard_count?: number;
62
- current_record_count_for_recipient?: number;
63
- current_guard_not_added_expiration_time?: number | null;
64
- current_clock_ms?: number;
65
- permission_address?: string;
66
- signer?: string;
67
- target_guard_addresses?: string[];
68
- passport_submission_value_types?: Record<number, string>;
69
- passport_identifier_is_address?: Record<number, boolean>;
70
- guard_store_from_id_compatible?: Record<string, boolean>;
71
- }
72
- export declare function buildRewardContext(input: BuildRewardContextInput): RewardContextBundle;
73
- export declare function buildPromptFromRewardContext(bundle: RewardContextBundle): string;
74
- export declare function getRewardContextSummary(bundle: RewardContextBundle): string;
75
- export declare function buildStakeholderContext(stakeholder: RewardStakeholderPerspective, intent?: string, reward_json?: RewardJsonForConfirm): RewardContextBundle;
76
- export declare function quickValidateRewardJson(reward_json: RewardJsonForConfirm, current_state?: {
77
- reward_type?: string;
78
- current_balance?: string;
79
- current_guard_count?: number;
80
- current_record_count_for_recipient?: number;
81
- current_guard_not_added_expiration_time?: number | null;
82
- current_clock_ms?: number;
83
- target_guard_addresses?: string[];
84
- }): {
85
- ok: boolean;
86
- violations: string[];
87
- };
88
- export declare function getRewardKnowledgeSnapshot(): {
89
- version: {
90
- ledger: string;
91
- puzzle: string;
92
- risk: string;
93
- translation: string;
94
- templates: number;
95
- confirm: string;
96
- context: string;
97
- };
98
- scenes_count: number;
99
- builtin_permissions_count: number;
100
- builtin_permissions: {
101
- index: 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157;
102
- name: string;
103
- sdk_exposed: boolean;
104
- }[];
105
- guard_constructors_count: number;
106
- guard_constructors: {
107
- constructor: import("./reward-ledger.js").RewardGuardConstructor;
108
- recipient_type: RewardRecipientType;
109
- amount_type: RewardAmountType;
110
- }[];
111
- error_codes_count: number;
112
- templates_count: number;
113
- templates: RewardTemplate[];
114
- semantic_patterns_count: number;
115
- schema_rules_count: number;
116
- constraint_rules_count: number;
117
- risk_rules_count: number;
118
- checklist_count: number;
119
- confirmation_questions_count: number;
120
- cross_object_refs_count: number;
121
- onchain_limits: {
122
- max_guard_count_reward: 200;
123
- max_record_count_reward: 5200;
124
- };
125
- injection_modes: RewardInjectionMode[];
126
- stakeholders: RewardStakeholderPerspective[];
127
- };
@@ -1 +0,0 @@
1
- import{MAX_GUARD_COUNT_REWARD,MAX_RECORD_COUNT_REWARD}from'./onchain-constants.js';import{REWARD_PERMISSIONS,REWARD_GUARD_CONSTRUCTORS,REWARD_ERROR_CODES,REWARD_CROSS_OBJECT_REFS,REWARD_LEDGER_VERSION,inferSceneFromIntent,getScenesByIndustry,getScenesByPhase,getAllBuiltinPermissions,getRewardScenesCount,validateGuardCount,validateRecordCount}from'./reward-ledger.js';import{initPuzzleFromIntent,checkPuzzleCompleteness}from'./reward-puzzle.js';import{REWARD_RISK_VERSION,assessRewardRisks,getAllRewardRiskRules,getRewardRiskRulesCount,getRewardRiskRulesByStakeholder,REWARD_STAKEHOLDERS}from'./reward-risk.js';import{REWARD_TRANSLATION_VERSION,REWARD_SEMANTIC_TO_SCHEMA_RULES,REWARD_SCHEMA_TO_SEMANTIC_RULES,REWARD_CONSTRAINT_RULES,matchSemanticPattern}from'./reward-translation.js';import{REWARD_TEMPLATES,REWARD_TEMPLATES_VERSION,getRewardTemplate,listRewardTemplates,suggestRewardTemplate}from'./reward-templates.js';import{REWARD_CONFIRM_VERSION,REWARD_OPERATION_CHECKLIST,REWARD_CONFIRMATION_QUESTIONS}from'./reward-confirm.js';export const REWARD_CONTEXT_VERSION='1.0.0';export function buildRewardContext(a){const b=a['max_length']??0xfa0;let c;a['intent']&&(c=inferSceneFromIntent(a['intent']));if(!c&&a['target_phase']){const q=getScenesByPhase(a['target_phase']);if(q['length']>0x0)c=q[0x0];}if(!c&&a['target_industry']){const r=getScenesByIndustry(a['target_industry']);if(r['length']>0x0)c=r[0x0];}let d;a['intent']&&(d=suggestRewardTemplate(a['intent']));if(!d&&c&&c['recommended_templates']['length']>0x0){const s=c['recommended_templates'][0x0];d=getRewardTemplate(s);}let e;if(a['intent']){const t=matchSemanticPattern(a['intent']);if(t['length']>0x0)e=t[0x0];}let f,g;a['mode']==='initial_design'&&a['intent']&&(f=initPuzzleFromIntent({'rule_sentence':a['intent']}),g=checkPuzzleCompleteness(f));const h=filterRiskRules(a['mode'],a['stakeholder'],c);let i;if(a['mode']==='pre_claim'&&a['reward_json']){const u={'object':a['reward_json']['object'],'claim':a['reward_json']['claim'],'description':a['reward_json']['description'],'coin_add':a['reward_json']['coin_add'],'receive':a['reward_json']['receive'],'guard_add':a['reward_json']['guard_add'],'guard_remove_expired':a['reward_json']['guard_remove_expired'],'guard_expiration_time':a['reward_json']['guard_expiration_time'],'owner_receive':a['reward_json']['owner_receive'],'um':a['reward_json']['um'],'reward_type':a['reward_type'],'current_balance':a['current_balance'],'current_guard_count':a['current_guard_count'],'current_record_count_for_recipient':a['current_record_count_for_recipient'],'current_guard_not_added_expiration_time':a['current_guard_not_added_expiration_time'],'current_clock_ms':a['current_clock_ms'],'permission_address':a['permission_address'],'signer':a['signer'],'target_guard_addresses':a['target_guard_addresses'],'passport_submission_value_types':a['passport_submission_value_types'],'passport_identifier_is_address':a['passport_identifier_is_address'],'guard_store_from_id_compatible':a['guard_store_from_id_compatible']};i=assessRewardRisks(u);}const j=filterChecklist(a['mode']),k=filterQuestions(a['mode']),l=c?c['builtin_indexes_consumed']:getAllBuiltinPermissions(),m=filterGuardConstructors(c),n=buildCrossObjectRefs(a['target_phase'],c),o=buildOnchainConstraints(),p=buildRenderingHints(a['mode'],b,!!a['reward_json']?.['claim'],a['reward_json']?.['owner_receive']!=null,a['mode']==='initial_design');return{'version':REWARD_CONTEXT_VERSION,'mode':a['mode'],'stakeholder_perspective':a['stakeholder'],'matched_scene':c,'matched_template':d,'matched_pattern':e,'puzzle_state':f,'puzzle_completeness':g,'relevant_risks':h,'risk_assessment':i,'relevant_checklist':j,'relevant_questions':k,'relevant_builtin_permissions':l,'relevant_guard_constructors':m,'cross_object_refs':n,'onchain_constraints':o,'rendering_hints':p};}function filterRiskRules(a,b,c){const d=getAllRewardRiskRules();if(a==='initial_design')return d['filter'](e=>e['category']==='structural'||e['category']==='semantic');if(a==='pre_claim')return d;if(a==='post_claim')return d['filter'](e=>e['id']==='R-R-1-02'||e['id']==='R-R-4-02'||e['id']==='R-R-4-01');if(a==='guard_review')return d['filter'](e=>e['category']==='structural'||e['category']==='lifecycle'||e['category']==='semantic');if(a==='balance_review')return d['filter'](e=>e['category']==='cross_object'||e['id']==='R-R-4-02'||e['id']==='R-R-3-02');if(a==='stakeholder_review'&&b){const e=b==='system'?'system':b;return getRewardRiskRulesByStakeholder(e);}return d;}function filterChecklist(a){if(a==='initial_design')return REWARD_OPERATION_CHECKLIST['filter'](b=>['C-R-01','C-R-06']['includes'](b['id']));if(a==='pre_claim')return REWARD_OPERATION_CHECKLIST['filter'](b=>['C-R-02','C-R-03','C-R-05','C-R-08']['includes'](b['id']));if(a==='guard_review')return REWARD_OPERATION_CHECKLIST['filter'](b=>['C-R-01','C-R-04','C-R-05','C-R-06','C-R-10']['includes'](b['id']));if(a==='balance_review')return REWARD_OPERATION_CHECKLIST['filter'](b=>['C-R-03','C-R-07','C-R-09']['includes'](b['id']));if(a==='stakeholder_review')return REWARD_OPERATION_CHECKLIST;return REWARD_OPERATION_CHECKLIST;}function filterQuestions(a){if(a==='pre_claim')return REWARD_CONFIRMATION_QUESTIONS['filter'](b=>['QRW1','QRW2','QRW5']['includes'](b['id']));if(a==='guard_review')return REWARD_CONFIRMATION_QUESTIONS['filter'](b=>['QRW2','QRW4']['includes'](b['id']));if(a==='balance_review')return REWARD_CONFIRMATION_QUESTIONS['filter'](b=>['QRW3','QRW6']['includes'](b['id']));if(a==='initial_design')return[];return[];}function filterGuardConstructors(a){if(!a)return[...REWARD_GUARD_CONSTRUCTORS];const b=new Set(a['recipient_types_used']),c=new Set(a['amount_types_used']);return REWARD_GUARD_CONSTRUCTORS['filter'](d=>b['has'](d['recipient_type'])&&c['has'](d['amount_type']));}function buildCrossObjectRefs(a,b){const c=REWARD_CROSS_OBJECT_REFS['map'](d=>({'object':d['object'],'phase':d['phase'],'relationship':d['relationship'],'description':d['relationship']}));if(a)return c['filter'](d=>d['phase']===a||d['phase']==='universal');if(b){const d=b['phases'];return c['filter'](e=>e['phase']==='universal'||d['includes'](e['phase']));}return c;}function buildOnchainConstraints(){return[{'name':'MAX_GUARD_COUNT_REWARD','value':MAX_GUARD_COUNT_REWARD,'description':'Maximum\x20guards\x20per\x20Reward','error_code':'E_GUARD_COUNT_EXCEEDED'},{'name':'MAX_RECORD_COUNT_REWARD','value':MAX_RECORD_COUNT_REWARD,'description':'Maximum\x20records\x20per\x20recipient\x20(per-recipient\x20claim\x20history\x20cap)','error_code':'E_RECORD_COUNT_EXCEEDED'},{'name':'REWARD_NEW\x20(150)','value':0x96,'description':'Builtin:\x20create\x20new\x20Reward\x20(new\x20/\x20new_with_passport)'},{'name':'REWARD_DESCRIPTION\x20(151)','value':0x97,'description':'Builtin:\x20update\x20description\x20(description_set)'},{'name':'REWARD_GUARD\x20(152)','value':0x98,'description':'Builtin:\x20add\x20/\x20remove\x20expired\x20guards\x20(guard_add,\x20guard_remove_expired)'},{'name':'REWARD_COIN_ADD\x20(153)','value':0x99,'description':'Builtin:\x20deposit\x20Coin<T>\x20into\x20balance\x20(coin_add)'},{'name':'REWARD_RECEIVE\x20(154)','value':0x9a,'description':'Builtin:\x20receive\x20CoinWrapper<T>\x20via\x20Payment\x20(receive)'},{'name':'REWARD_GUARD_EXPIRATION_TIME_ADD\x20(155)','value':0x9b,'description':'Builtin:\x20set/cancel\x20guard_not_added_expiration_time\x20(time-lock\x20on\x20guard\x20additions)','error_code':'E_GUARD_LOCKED_TIME'},{'name':'REWARD_OWNER_RECEIVE\x20(156)','value':0x9c,'description':'Builtin:\x20owner\x20unwrap\x20Receiving<K>/CoinWrapper<K>\x20(owner_receive,\x20owner_receive_object)'},{'name':'REWARD_UM\x20(157)','value':0x9d,'description':'Builtin:\x20bind/unbind\x20Contact\x20(UM)\x20(um_set,\x20um_none)'},{'name':'E_INSUFFICIENT_BALANCE','value':0x6,'description':'Move\x20error:\x20claim\x20with\x20balance\x20<\x20amount\x20(balance::split\x20aborts)'},{'name':'E_GUARD_NOT_FOUND','value':0x7,'description':'Move\x20error:\x20claim\x20with\x20guard\x20not\x20in\x20self.guards'},{'name':'E_GUARD_EXPIRED','value':0x2,'description':'Move\x20error:\x20guard_add\x20/\x20claim\x20with\x20expiration_time\x20<\x20now'},{'name':'E_GUARD_LOCKED_TIME','value':0xa,'description':'Move\x20error:\x20guard_add\x20while\x20guard_not_added_expiration_time\x20is\x20Some\x20and\x20clock\x20≤\x20expiration'},{'name':'E_AMOUNT_NOT_U64','value':0x5,'description':'Move\x20error:\x20RewardGuard\x20constructor\x20with\x20GuardU64Identifier\x20amount\x20where\x20identifier\x20type\x20≠\x20u64'},{'name':'E_RECIPIENT_IDENTIFIER_NOT_ADDRESS','value':0x4,'description':'Move\x20error:\x20RewardGuard\x20constructor\x20with\x20GuardIdentifier\x20recipient\x20where\x20identifier\x20type\x20≠\x20address'},{'name':'E_STORE_FROM_ID_NOT_COMPATIBLE','value':0xc,'description':'Move\x20error:\x20RewardGuard\x20constructor\x20with\x20store_from_id\x20where\x20identifier\x20is\x20not\x20number/address\x20compatible'}];}function buildRenderingHints(a,b,c,d,e){return{'include_puzzle_template':e,'include_risk_details':a==='pre_claim'||a==='stakeholder_review','include_questions':a==='pre_claim'||a==='guard_review'||a==='balance_review','include_claim_warning':c,'include_owner_receive_warning':d,'include_cross_object_refs':a==='initial_design'||a==='stakeholder_review','include_guard_constructor_matrix':e||a==='guard_review','max_length':b};}export function buildPromptFromRewardContext(a){const b=[],d=a['rendering_hints'];b['push']('═══\x20Reward\x20Context\x20(mode:\x20'+a['mode']+')\x20═══'),b['push']('');a['stakeholder_perspective']&&(b['push']('Stakeholder\x20perspective:\x20'+a['stakeholder_perspective']),b['push'](''));a['matched_scene']&&(b['push']('Scene:\x20'+a['matched_scene']['name']),b['push']('Phases:\x20'+a['matched_scene']['phases']['join'](',\x20')),b['push']('Typical\x20guard\x20count:\x20'+a['matched_scene']['typical_guard_count']+'/'+MAX_GUARD_COUNT_REWARD),b['push']('Recipient\x20types:\x20'+a['matched_scene']['recipient_types_used']['join'](',\x20')),b['push']('Amount\x20types:\x20'+a['matched_scene']['amount_types_used']['join'](',\x20')),b['push']('Uses\x20expiration_time:\x20'+(a['matched_scene']['uses_expiration_time']?'YES':'NO')),b['push'](''));a['matched_template']&&(b['push']('Suggested\x20template:\x20'+a['matched_template']['type']+'\x20—\x20'+a['matched_template']['name']),b['push'](''));a['matched_pattern']&&(b['push']('Matched\x20pattern:\x20'+a['matched_pattern']['id']+'\x20—\x20'+a['matched_pattern']['pattern_name']),b['push']('Intent:\x20'+a['matched_pattern']['semantic_intent']),b['push'](''));if(d['include_puzzle_template']&&a['puzzle_completeness']){const e=a['puzzle_completeness'];b['push']('─\x20Puzzle\x20Completeness\x20──────────────'),b['push']('Complete:\x20'+(e['complete']?'YES':'NO'));if(e['missing']['length']>0x0){b['push']('Missing\x20dimensions:\x20'+e['missing']['join'](',\x20'));for(const f of e['missing_details']){b['push']('\x20\x20-\x20'+f['dimension']+':\x20'+f['reason']);}}b['push']('Next:\x20'+e['next_step']),b['push']('');}if(d['include_guard_constructor_matrix']&&a['relevant_guard_constructors']['length']>0x0){b['push']('─\x20Guard\x20Constructors\x20('+a['relevant_guard_constructors']['length']+')\x20──────────────');for(const g of a['relevant_guard_constructors']){b['push']('\x20\x20'+g['constructor']+':\x20'+g['recipient_type']+'\x20×\x20'+g['amount_type']),b['push']('\x20\x20\x20\x20use:\x20'+g['typical_use']);}b['push']('');}if(d['include_risk_details']&&a['relevant_risks']['length']>0x0){b['push']('─\x20Relevant\x20Risk\x20Rules\x20('+a['relevant_risks']['length']+')\x20──────────────');for(const i of a['relevant_risks']['slice'](0x0,0x6)){b['push']('\x20\x20'+i['id']+'\x20['+i['category']+']\x20—\x20'+i['trigger']);}a['relevant_risks']['length']>0x6&&b['push']('\x20\x20...\x20and\x20'+(a['relevant_risks']['length']-0x6)+'\x20more'),b['push']('');}a['risk_assessment']&&(b['push']('─\x20Risk\x20Assessment\x20──────────────'),b['push']('Overall:\x20'+a['risk_assessment']['overall_risk']),b['push']('Detected:\x20'+a['risk_assessment']['risks']['length']+'\x20risk(s)'),a['risk_assessment']['needs_human_review']&&b['push']('⚠️\x20Needs\x20human\x20review\x20(HIGH/CRITICAL\x20risks\x20present)'),b['push'](''));if(a['relevant_builtin_permissions']['length']>0x0){b['push']('─\x20Builtin\x20Permissions\x20('+a['relevant_builtin_permissions']['length']+')\x20──────────────');for(const j of a['relevant_builtin_permissions']){b['push']('\x20\x20['+j['index']+']\x20'+j['name']+':\x20'+j['description']);}b['push']('');}d['include_claim_warning']&&(b['push']('⚠️\x20CLAIM\x20IS\x20PERMISSION-FREE:\x20anyone\x20with\x20a\x20valid\x20Passport\x20+\x20Guard\x20can\x20claim.'),b['push']('\x20\x20\x20Ensure\x20the\x20Guard\x20binds\x20to\x20specific\x20Service/Order\x20context\x20to\x20prevent\x20unauthorized\x20claims.'),b['push'](''));d['include_owner_receive_warning']&&(b['push']('⚠️\x20OWNER_RECEIVE\x20(156):\x20unwrap\x20forwards\x20to\x20Permission\x20owner\x20(NOT\x20Reward\x20creator).'),b['push']('\x20\x20\x20Grant\x20156\x20only\x20to\x20dedicated\x20addresses;\x20log\x20every\x20invocation\x20for\x20audit.'),b['push'](''));if(d['include_cross_object_refs']&&a['cross_object_refs']['length']>0x0){b['push']('─\x20Cross-Object\x20References\x20('+a['cross_object_refs']['length']+')\x20──────────────');for(const k of a['cross_object_refs']['slice'](0x0,0x8)){b['push']('\x20\x20'+k['object']+'\x20['+k['phase']+']:\x20'+k['relationship']);}a['cross_object_refs']['length']>0x8&&b['push']('\x20\x20...\x20and\x20'+(a['cross_object_refs']['length']-0x8)+'\x20more'),b['push']('');}if(a['onchain_constraints']['length']>0x0){b['push']('─\x20On-chain\x20Constraints\x20──────────────');for(const l of a['onchain_constraints']){const m=l['error_code']?'\x20(abort:\x20'+l['error_code']+')':'';b['push']('\x20\x20'+l['name']+'\x20=\x20'+l['value']+'\x20—\x20'+l['description']+m);}b['push']('');}return b['join']('\x0a');}export function getRewardContextSummary(a){const b=['mode='+a['mode'],'scene='+(a['matched_scene']?.['id']??'none'),'risks='+a['relevant_risks']['length'],'permissions='+a['relevant_builtin_permissions']['length'],'constructors='+a['relevant_guard_constructors']['length'],'cross_refs='+a['cross_object_refs']['length']];if(a['stakeholder_perspective'])b['push']('stakeholder='+a['stakeholder_perspective']);if(a['risk_assessment'])b['push']('overall_risk='+a['risk_assessment']['overall_risk']);if(a['matched_template'])b['push']('template='+a['matched_template']['type']);if(a['matched_pattern'])b['push']('pattern='+a['matched_pattern']['id']);return b['join'](',\x20');}export function buildStakeholderContext(a,b,c){return buildRewardContext({'mode':'stakeholder_review','intent':b,'reward_json':c,'stakeholder':a});}export function quickValidateRewardJson(a,b={}){const c=[];if(a['guard_add']&&a['guard_add']['length']>0x0){const d=b['current_guard_count']??0x0,e=validateGuardCount(d);if(!e['ok'])c['push'](e['violation']);}if(a['claim']){const f=b['current_record_count_for_recipient']??0x0,g=validateRecordCount(f);if(!g['ok'])c['push'](g['violation']);}a['coin_add']&&b['reward_type']&&(a['coin_add']['coin_type']!==b['reward_type']&&c['push']('coin_add\x20type\x20'+a['coin_add']['coin_type']+'\x20≠\x20Reward<'+b['reward_type']+'>'));a['claim']&&b['target_guard_addresses']&&(!b['target_guard_addresses']['includes'](a['claim'])&&c['push']('claim\x20guard\x20'+a['claim']+'\x20not\x20in\x20Reward.guards\x20—\x20E_GUARD_NOT_FOUND'));if(a['claim']&&b['current_balance']!==undefined){const h=BigInt(b['current_balance']);h===0x0n&&c['push']('balance=0\x20—\x20E_INSUFFICIENT_BALANCE\x20will\x20abort\x20claim');}return a['guard_expiration_time']!==undefined&&a['guard_expiration_time']!==null&&b['current_clock_ms']!==undefined&&(a['guard_expiration_time']<=b['current_clock_ms']&&c['push']('guard_expiration_time\x20'+a['guard_expiration_time']+'\x20≤\x20clock\x20'+b['current_clock_ms']+'\x20—\x20E_GUARD_LOCKED_TIME_INVALID')),{'ok':c['length']===0x0,'violations':c};}export function getRewardKnowledgeSnapshot(){return{'version':{'ledger':REWARD_LEDGER_VERSION,'puzzle':'1.0.0','risk':REWARD_RISK_VERSION,'translation':REWARD_TRANSLATION_VERSION,'templates':REWARD_TEMPLATES_VERSION,'confirm':REWARD_CONFIRM_VERSION,'context':REWARD_CONTEXT_VERSION},'scenes_count':getRewardScenesCount(),'builtin_permissions_count':REWARD_PERMISSIONS['length'],'builtin_permissions':REWARD_PERMISSIONS['map'](a=>({'index':a['index'],'name':a['name'],'sdk_exposed':a['sdk_exposed']})),'guard_constructors_count':REWARD_GUARD_CONSTRUCTORS['length'],'guard_constructors':REWARD_GUARD_CONSTRUCTORS['map'](a=>({'constructor':a['constructor'],'recipient_type':a['recipient_type'],'amount_type':a['amount_type']})),'error_codes_count':REWARD_ERROR_CODES['length'],'templates_count':REWARD_TEMPLATES['length'],'templates':listRewardTemplates(),'semantic_patterns_count':REWARD_SEMANTIC_TO_SCHEMA_RULES['length'],'schema_rules_count':REWARD_SCHEMA_TO_SEMANTIC_RULES['length'],'constraint_rules_count':REWARD_CONSTRAINT_RULES['length'],'risk_rules_count':getRewardRiskRulesCount(),'checklist_count':REWARD_OPERATION_CHECKLIST['length'],'confirmation_questions_count':REWARD_CONFIRMATION_QUESTIONS['length'],'cross_object_refs_count':REWARD_CROSS_OBJECT_REFS['length'],'onchain_limits':{'max_guard_count_reward':MAX_GUARD_COUNT_REWARD,'max_record_count_reward':MAX_RECORD_COUNT_REWARD},'injection_modes':['initial_design','pre_claim','post_claim','guard_review','balance_review','stakeholder_review'],'stakeholders':REWARD_STAKEHOLDERS};}
@@ -1,58 +0,0 @@
1
- export interface RewardSemanticToSchemaRule {
2
- id: string;
3
- pattern_name: string;
4
- semantic_intent: string;
5
- match_keywords: string[];
6
- schema_fields: string[];
7
- example_json: object;
8
- reverse_explanation: string;
9
- }
10
- export interface RewardSchemaToSemanticRule {
11
- element_type: "field" | "op" | "phase" | "constructor";
12
- type_name: string;
13
- semantic_explanation: string;
14
- constraints?: string[];
15
- }
16
- export interface RewardConstraintRule {
17
- id: string;
18
- category: "structural" | "semantic" | "permission" | "lifecycle" | "cross_object";
19
- rule: string;
20
- applies_to: string[];
21
- }
22
- export declare const REWARD_SEMANTIC_TO_SCHEMA_RULES: RewardSemanticToSchemaRule[];
23
- export declare const REWARD_SCHEMA_TO_SEMANTIC_RULES: RewardSchemaToSemanticRule[];
24
- export declare const REWARD_CONSTRAINT_RULES: RewardConstraintRule[];
25
- export declare const REWARD_TRANSLATION_VERSION = "1.0.0";
26
- export declare function matchSemanticPattern(userIntent: string): RewardSemanticToSchemaRule[];
27
- export interface RewardCallDataForExplanation {
28
- object?: string | null;
29
- claim?: string;
30
- description?: string;
31
- coin_add?: {
32
- amount: string | number;
33
- coin_type: string;
34
- };
35
- receive?: {
36
- token_type: string;
37
- };
38
- guard_add?: Array<{
39
- guard: string;
40
- recipient: Record<string, unknown>;
41
- amount: {
42
- type: string;
43
- value: number | string;
44
- };
45
- expiration_time?: number;
46
- store_from_id?: number | null;
47
- }>;
48
- guard_remove_expired?: boolean;
49
- guard_expiration_time?: number | null;
50
- owner_receive?: unknown;
51
- um?: string | null;
52
- }
53
- export declare function explainRewardCallData(data: RewardCallDataForExplanation): string;
54
- export declare function explainField(fieldName: string): RewardSchemaToSemanticRule | undefined;
55
- export declare function explainOp(opName: string): RewardSchemaToSemanticRule | undefined;
56
- export declare function explainConstructor(constructorName: string): RewardSchemaToSemanticRule | undefined;
57
- export declare function getConstraintsByCategory(category: RewardConstraintRule["category"]): RewardConstraintRule[];
58
- export declare function explainPermissionIndex(index: number): string;
@@ -1 +0,0 @@
1
- import{isRewardBuiltinPermission,getBuiltinPermissionByIndex,resolveGuardConstructor}from'./reward-ledger.js';export const REWARD_SEMANTIC_TO_SCHEMA_RULES=[{'id':'P-RW-01','pattern_name':'Create\x20new\x20Reward','semantic_intent':'Initialize\x20a\x20new\x20Reward<T>\x20object\x20with\x20description,\x20Permission,\x20and\x20coin\x20type\x20T','match_keywords':['create\x20reward','new\x20reward'],'schema_fields':['object\x20(typed,\x20with\x20permission\x20+\x20type_parameter)','description'],'example_json':{'object':{'permission':'0xPERMISSION_ADDRESS','type_parameter':'0x2::wow::WOW'},'description':'First-order\x20cashback\x20reward'},'reverse_explanation':'object\x20with\x20type_parameter\x20triggers\x20reward::new\x20(150).\x20SDK\x20creates\x20Permission\x20if\x20not\x20provided,\x20'+'then\x20constructs\x20Reward<T>\x20via\x20new_imp.\x20After\x20create,\x20share_object\x20is\x20called\x20automatically.'},{'id':'P-RW-02','pattern_name':'Add\x20RewardGuard\x20(eligible\x20recipient\x20+\x20amount\x20rule)','semantic_intent':'Register\x20a\x20Guard\x20that\x20defines\x20who\x20can\x20claim\x20and\x20how\x20much\x20they\x20receive','match_keywords':['guard_add','add\x20guard','eligibility'],'schema_fields':['object','guard_add[]'],'example_json':{'object':'0xREWARD_ADDRESS','guard_add':[{'guard':'0xGUARD_ADDRESS','recipient':{'Signer':'signer'},'amount':{'type':'Fixed','value':0x3b9aca00},'expiration_time':0x1941f297c00,'store_from_id':null}]},'reverse_explanation':'guard_add\x20with\x20one\x20entry\x20triggers\x20reward::guard_add\x20(152).\x20SDK\x20reward_guard()\x20picks\x20one\x20of\x206\x20Move\x20constructors\x20'+'based\x20on\x20recipient\x20variant\x20(GuardIdentifier/Entity/Signer)\x20×\x20amount.type\x20(GuardU64Identifier/Fixed).\x20'+'Move:\x20if\x20guard\x20already\x20in\x20self.guards,\x20UPDATE\x20in\x20place;\x20else\x20push_back\x20(E_GUARD_COUNT_EXCEEDED\x20if\x20>\x20200).'},{'id':'P-RW-03','pattern_name':'Claim\x20reward\x20(passport-driven)','semantic_intent':'Claim\x20rewards\x20as\x20an\x20eligible\x20recipient,\x20verified\x20via\x20Guard\x20+\x20Passport','match_keywords':['claim','receive\x20reward'],'schema_fields':['object','claim\x20(guard\x20address)'],'example_json':{'object':'0xREWARD_ADDRESS','claim':'0xGUARD_ADDRESS'},'reverse_explanation':'claim\x20field\x20set\x20to\x20a\x20guard\x20address\x20triggers\x20reward::claim\x20(NO\x20permission\x20check).\x20'+'Move:\x20iterates\x20self.guards\x20looking\x20for\x20matching\x20guard.id_address;\x20passport::result_for_guard\x20verifies\x20submission;\x20'+'recipient/amount\x20resolved\x20from\x20Passport\x20submissions\x20OR\x20fixed\x20values;\x20'+'balance::split\x20transfers\x20coin\x20to\x20recipient;\x20record\x20appended\x20to\x20RecipientRecord.amount\x20vector.'},{'id':'P-RW-04','pattern_name':'Deposit\x20funds\x20(coin_add)','semantic_intent':'Deposit\x20Coin<T>\x20into\x20the\x20Reward\x20balance\x20to\x20fund\x20claims','match_keywords':['coin_add','deposit','deposit\x20funds'],'schema_fields':['object','coin_add'],'example_json':{'object':'0xREWARD_ADDRESS','coin_add':{'amount':'10000000000','coin_type':'0x2::wow::WOW'}},'reverse_explanation':'coin_add\x20triggers\x20reward::coin_add\x20(153).\x20Move:\x20coin::into_balance(coin)\x20→\x20balance::join(self.balance).\x20'+'Coin<T>\x20type\x20must\x20match\x20Reward<T>\x20exactly\x20(phantom\x20T).\x20No\x20upper\x20limit\x20on\x20balance.'},{'id':'P-RW-05','pattern_name':'Receive\x20CoinWrapper\x20via\x20Payment','semantic_intent':'Receive\x20a\x20CoinWrapper<T>\x20envelope\x20via\x20Payment.unwrap_with_check','match_keywords':['receive','payment','unwrap'],'schema_fields':['object','receive\x20(payment\x20+\x20received)'],'example_json':{'object':'0xREWARD_ADDRESS','receive':{'received':[{'id':'0xRECEIVED_OBJ','payment':'0xPAYMENT_OBJ'}],'token_type':'0x2::wow::WOW'}},'reverse_explanation':'receive\x20with\x20Receiving<CoinWrapper<T>>\x20+\x20Payment<T>\x20triggers\x20reward::receive\x20(154).\x20'+'Move:\x20payment::unwrap_with_check\x20extracts\x20Coin<T>\x20from\x20CoinWrapper<T>,\x20then\x20balance::join.\x20'+'token_type\x20must\x20match\x20Reward<T>.'},{'id':'P-RW-06','pattern_name':'Owner\x20receive\x20(terminal\x20disbursement)','semantic_intent':'Owner\x20unwraps\x20Receiving<K>\x20/\x20CoinWrapper<K>\x20envelopes\x20sent\x20to\x20the\x20Reward','match_keywords':['owner_receive','unwrap\x20to\x20owner'],'schema_fields':['object','owner_receive'],'example_json':{'object':'0xREWARD_ADDRESS','owner_receive':{'received':[{'id':'0xRECEIVED_OBJ','payment':'0xPAYMENT_OBJ'}],'token_type':'0x2::wow::WOW'}},'reverse_explanation':'owner_receive\x20triggers\x20reward::owner_receive\x20(156).\x20Move:\x20payment::unwrap_with_check\x20extracts\x20Coin<K>,\x20'+'then\x20permission::owner_receive_inner\x20forwards\x20to\x20Permission\x20owner\x20(NOT\x20Reward\x20creator).\x20'+'Does\x20NOT\x20drain\x20self.balance\x20—\x20only\x20unwraps\x20Receiving<K>\x20envelopes.'},{'id':'P-RW-07','pattern_name':'Set\x20UM\x20(Contact\x20binding)','semantic_intent':'Bind\x20or\x20unbind\x20a\x20Contact\x20(UM)\x20object\x20for\x20off-chain\x20coordination','match_keywords':['um_set','um_none','contact','UM'],'schema_fields':['object','um\x20(string\x20|\x20null)'],'example_json':{'object':'0xREWARD_ADDRESS','um':'0xCONTACT_ADDRESS'},'reverse_explanation':'um=<address>\x20triggers\x20reward::um_set\x20(157)\x20—\x20creates\x20object-linker\x20core\x20binding.\x20'+'um=null\x20triggers\x20reward::um_none\x20(157)\x20—\x20disaffiliates\x20and\x20clears\x20self.um.'},{'id':'P-RW-08','pattern_name':'Set\x20permission\x20(owner-only)','semantic_intent':'Replace\x20the\x20Permission\x20object\x20(owner-only\x20operation)','match_keywords':['permission_set','change\x20permission'],'schema_fields':['(SDK\x20does\x20not\x20expose\x20this\x20in\x20CallReward_Data\x20—\x20direct\x20Move\x20call\x20required)'],'example_json':{'_note':'Not\x20exposed\x20in\x20CallReward_Data;\x20direct\x20Move\x20call:','target':'reward::permission_set<T>','arguments':['reward','old_permission','new_permission','registrar','clock']},'reverse_explanation':'Calls\x20reward::permission_set.\x20Move\x20asserts\x20old.owner\x20==\x20sender\x20(tx_context::sender).\x20'+'Updates\x20self.permission\x20=\x20new.id_address;\x20creates\x20object_linker::affiliation_change_core.'}];export const REWARD_SCHEMA_TO_SEMANTIC_RULES=[{'element_type':'field','type_name':'object','semantic_explanation':'Reward\x20object\x20address.\x20For\x20create:\x20typed\x20object\x20with\x20permission\x20+\x20type_parameter.\x20For\x20operate:\x20existing\x20Reward\x20address.'},{'element_type':'field','type_name':'claim','semantic_explanation':'Guard\x20address\x20to\x20claim\x20against.\x20NO\x20permission\x20check\x20—\x20eligibility\x20determined\x20by\x20Guard\x20+\x20Passport\x20alone.'},{'element_type':'field','type_name':'description','semantic_explanation':'Reward\x20description\x20(must\x20satisfy\x20common::DESCRIPTION).\x20Updated\x20via\x20description_set\x20(151).'},{'element_type':'field','type_name':'coin_add','semantic_explanation':'Deposit\x20Coin<T>\x20into\x20balance.\x20coin_type\x20must\x20match\x20Reward<T>\x20(153\x20permission).'},{'element_type':'field','type_name':'receive','semantic_explanation':'Receive\x20CoinWrapper<T>\x20via\x20Payment.unwrap_with_check.\x20token_type\x20must\x20match\x20Reward<T>\x20(154\x20permission).'},{'element_type':'field','type_name':'guard_add','semantic_explanation':'Array\x20of\x20RewardGuard\x20configs.\x20Each\x20entry\x20has\x20guard,\x20recipient\x20(GuardIdentifier/Entity/Signer),\x20amount\x20(Fixed/GuardU64Identifier),\x20expiration_time,\x20store_from_id.\x20(152\x20permission)'},{'element_type':'field','type_name':'guard_remove_expired','semantic_explanation':'Boolean.\x20If\x20true,\x20removes\x20all\x20guards\x20with\x20expiration_time\x20<\x20now.\x20(152\x20permission)'},{'element_type':'field','type_name':'guard_expiration_time','semantic_explanation':'Set/cancel\x20guard_not_added_expiration_time.\x20number\x20=\x20set\x20lock;\x20null\x20=\x20cancel.\x20(155\x20permission)'},{'element_type':'field','type_name':'owner_receive','semantic_explanation':'Receive\x20Receiving<K>\x20/\x20CoinWrapper<K>\x20envelopes\x20and\x20forward\x20to\x20Permission\x20owner.\x20(156\x20permission)'},{'element_type':'field','type_name':'um','semantic_explanation':'Bind/unbind\x20Contact\x20(UM).\x20string\x20=\x20um_set;\x20null\x20=\x20um_none.\x20(157\x20permission)'},{'element_type':'op','type_name':'new','semantic_explanation':'Create\x20Reward<T>\x20(150\x20permission).\x20Indirect\x20via\x20SDK\x20newReward()\x20→\x20reward::new\x20or\x20new_with_passport.'},{'element_type':'op','type_name':'create','semantic_explanation':'Share\x20Reward\x20object\x20and\x20return\x20its\x20address.\x20Called\x20automatically\x20after\x20new.'},{'element_type':'op','type_name':'claim','semantic_explanation':'Claim\x20rewards\x20(NO\x20permission).\x20Passport-driven:\x20Guard\x20verification\x20+\x20recipient/amount\x20resolution\x20from\x20submissions.'},{'element_type':'op','type_name':'guard_add','semantic_explanation':'Add\x20or\x20update\x20a\x20RewardGuard\x20(152).\x20Existing\x20guard\x20(same\x20address)\x20is\x20updated\x20in\x20place;\x20new\x20guard\x20pushes\x20(E_GUARD_COUNT_EXCEEDED\x20if\x20>\x20200).'},{'element_type':'op','type_name':'guard_remove_expired','semantic_explanation':'Remove\x20all\x20guards\x20with\x20expiration_time\x20<\x20now\x20(152).\x20Also\x20disaffiliates\x20from\x20object_linker\x20(core).'},{'element_type':'op','type_name':'coin_add','semantic_explanation':'Deposit\x20Coin<T>\x20into\x20balance\x20(153).\x20balance::join(self.balance,\x20coin::into_balance(coin)).'},{'element_type':'op','type_name':'receive','semantic_explanation':'Receive\x20CoinWrapper<T>\x20via\x20Payment\x20(154).\x20unwrap_with_check\x20→\x20balance::join.'},{'element_type':'op','type_name':'guard_expiration_time_add','semantic_explanation':'Set/cancel\x20guard_not_added_expiration_time\x20(155).\x20New\x20time\x20must\x20be\x20>\x20now\x20(E_GUARD_LOCKED_TIME_INVALID).'},{'element_type':'op','type_name':'owner_receive','semantic_explanation':'Owner\x20unwrap\x20Receiving<K>/CoinWrapper<K>\x20(156).\x20Forwards\x20to\x20Permission\x20owner\x20via\x20owner_receive_inner.'},{'element_type':'op','type_name':'um_set','semantic_explanation':'Bind\x20Contact\x20as\x20UM\x20(157).\x20Creates\x20object-linker\x20core\x20binding.'},{'element_type':'op','type_name':'um_none','semantic_explanation':'Unbind\x20UM\x20(157).\x20Disaffiliates\x20from\x20object_linker\x20(core)\x20and\x20sets\x20self.um\x20=\x20none.'},{'element_type':'op','type_name':'description_set','semantic_explanation':'Update\x20description\x20(151).\x20Must\x20satisfy\x20common::DESCRIPTION.'},{'element_type':'op','type_name':'permission_set','semantic_explanation':'Replace\x20Permission\x20(owner-only).\x20Asserts\x20old.owner\x20==\x20sender;\x20creates\x20object_linker::affiliation_change_core.'},{'element_type':'phase','type_name':'creation','semantic_explanation':'new\x20(150)\x20→\x20create\x20→\x20share.\x20Permission\x20object\x20may\x20be\x20created\x20in\x20same\x20tx\x20if\x20not\x20provided.'},{'element_type':'phase','type_name':'guard_addition','semantic_explanation':'guard_add\x20(152)\x20+\x20guard_remove_expired\x20(152).\x20Guards\x20are\x20added/updated/removed\x20based\x20on\x20expiration.'},{'element_type':'phase','type_name':'claim','semantic_explanation':'claim()\x20—\x20passport-driven,\x20no\x20permission.\x20Iterates\x20guards,\x20verifies\x20Passport,\x20splits\x20balance\x20to\x20recipient.'},{'element_type':'phase','type_name':'funds_replenish','semantic_explanation':'coin_add\x20(153)\x20OR\x20receive\x20(154).\x20Both\x20join\x20into\x20self.balance.'},{'element_type':'phase','type_name':'owner_receive','semantic_explanation':'owner_receive\x20/\x20owner_receive_object\x20(156).\x20Unwrap\x20Receiving\x20envelopes\x20→\x20Permission\x20owner.'},{'element_type':'constructor','type_name':'guard_u8_u8','semantic_explanation':'RewardGuard\x20constructor:\x20GuardIdentifier\x20recipient\x20+\x20GuardU64Identifier\x20amount.\x20Both\x20resolved\x20from\x20Passport\x20at\x20claim\x20time.\x20Asserts\x20is_identifier_address\x20+\x20value_type=u64.'},{'element_type':'constructor','type_name':'guard_u8_u64','semantic_explanation':'RewardGuard\x20constructor:\x20GuardIdentifier\x20recipient\x20+\x20Fixed\x20amount.\x20Recipient\x20from\x20Passport;\x20amount\x20fixed.\x20Asserts\x20is_identifier_address.'},{'element_type':'constructor','type_name':'guard_entity_u8','semantic_explanation':'RewardGuard\x20constructor:\x20Entity\x20recipient\x20+\x20GuardU64Identifier\x20amount.\x20Recipient\x20fixed;\x20amount\x20from\x20Passport.\x20Asserts\x20value_type=u64.'},{'element_type':'constructor','type_name':'guard_entity_u64','semantic_explanation':'RewardGuard\x20constructor:\x20Entity\x20recipient\x20+\x20Fixed\x20amount.\x20Both\x20fixed.\x20Simplest\x20configuration.'},{'element_type':'constructor','type_name':'guard_signer_u8','semantic_explanation':'RewardGuard\x20constructor:\x20Signer\x20recipient\x20+\x20GuardU64Identifier\x20amount.\x20Caller\x20is\x20recipient;\x20amount\x20from\x20Passport.\x20Asserts\x20value_type=u64.'},{'element_type':'constructor','type_name':'guard_signer_u64','semantic_explanation':'RewardGuard\x20constructor:\x20Signer\x20recipient\x20+\x20Fixed\x20amount.\x20Caller\x20is\x20recipient;\x20amount\x20fixed.\x20Common\x20for\x20first-order/flash\x20sale.'}];export const REWARD_CONSTRAINT_RULES=[{'id':'MC-RW-01','category':'structural','rule':'guard\x20count\x20<\x20MAX_GUARD_COUNT_REWARD\x20(200);\x20E_GUARD_COUNT_EXCEEDED\x20on\x20overflow\x20(only\x20on\x20NEW\x20guard,\x20not\x20update)','applies_to':['guard_add']},{'id':'MC-RW-02','category':'structural','rule':'per-recipient\x20record\x20count\x20<\x20MAX_RECORD_COUNT_REWARD\x20(5200);\x20E_RECORD_COUNT_EXCEEDED\x20on\x20claim','applies_to':['claim']},{'id':'MC-RW-03','category':'structural','rule':'guard_add\x20batch\x20size\x20≤\x20MAX_GUARD_COUNT_REWARD\x20(200);\x20SDK\x20rejects\x20larger\x20batches\x20in\x20operate()','applies_to':['guard_add\x20(batch)']},{'id':'MC-RW-04','category':'semantic','rule':'guard_add:\x20Recipient\x20×\x20Amount\x20must\x20match\x20one\x20of\x206\x20valid\x20constructors\x20(guard_u8_u8\x20/\x20u8_u64\x20/\x20entity_u8\x20/\x20entity_u64\x20/\x20signer_u8\x20/\x20signer_u64)','applies_to':['guard_add']},{'id':'MC-RW-05','category':'semantic','rule':'RewardGuard\x20constructor:\x20GuardIdentifier\x20recipient\x20requires\x20is_identifier_address(guard,\x20id)\x20—\x20E_RECIPIENT_IDENTIFIER_NOT_ADDRESS','applies_to':['reward_guard\x20(constructor)']},{'id':'MC-RW-06','category':'semantic','rule':'RewardGuard\x20constructor:\x20GuardU64Identifier\x20amount\x20requires\x20get_submission_value_type(guard,\x20id)\x20==\x20TYPE_U64\x20—\x20E_AMOUNT_NOT_U64','applies_to':['reward_guard\x20(constructor)']},{'id':'MC-RW-07','category':'semantic','rule':'RewardGuard\x20constructor:\x20store_from_id\x20(if\x20Some)\x20requires\x20is_identifier_address_compatible\x20—\x20E_STORE_FROM_ID_NOT_COMPATIBLE','applies_to':['reward_guard\x20(constructor)']},{'id':'MC-RW-08','category':'permission','rule':'claim\x20is\x20PERMISSION-FREE\x20—\x20anyone\x20with\x20valid\x20Passport\x20+\x20Guard\x20can\x20claim\x20(no\x20150-157\x20assertion)','applies_to':['claim']},{'id':'MC-RW-09','category':'permission','rule':'150-157\x20builtin\x20indexes\x20are\x20MANAGEMENT-ONLY\x20(new/description/guard/coin_add/receive/guard_exp/owner_receive/um)','applies_to':['all\x20management\x20ops']},{'id':'MC-RW-10','category':'permission','rule':'owner_receive\x20(156)\x20forwards\x20to\x20Permission\x20owner\x20(NOT\x20Reward\x20creator)\x20—\x20grant\x20156\x20only\x20to\x20dedicated\x20addresses','applies_to':['owner_receive']},{'id':'MC-RW-11','category':'lifecycle','rule':'guard_add:\x20clock\x20>\x20guard_not_added_expiration_time\x20(if\x20Some)\x20—\x20E_GUARD_LOCKED_TIME','applies_to':['guard_add']},{'id':'MC-RW-12','category':'lifecycle','rule':'guard_add\x20/\x20claim:\x20clock\x20≤\x20guard.expiration_time\x20(if\x20Some)\x20—\x20E_GUARD_EXPIRED','applies_to':['guard_add','claim']},{'id':'MC-RW-13','category':'lifecycle','rule':'guard_expiration_time_add:\x20new\x20Some(t)\x20requires\x20t\x20>\x20now\x20—\x20E_GUARD_LOCKED_TIME_INVALID','applies_to':['guard_expiration_time_add']},{'id':'MC-RW-14','category':'lifecycle','rule':'claim:\x20balance\x20≥\x20amount\x20—\x20E_INSUFFICIENT_BALANCE\x20(balance::split\x20aborts)','applies_to':['claim']},{'id':'MC-RW-15','category':'cross_object','rule':'claim:\x20supplied\x20guard\x20must\x20be\x20in\x20self.guards\x20—\x20E_GUARD_NOT_FOUND\x20(iterates\x20by\x20id_address\x20match)','applies_to':['claim']},{'id':'MC-RW-16','category':'cross_object','rule':'coin_add:\x20Coin<T>\x20type\x20must\x20match\x20Reward<T>\x20phantom\x20T\x20(SDK\x20W_ERROR\x20in\x20operate\x20if\x20mismatch)','applies_to':['coin_add']}];export const REWARD_TRANSLATION_VERSION='1.0.0';export function matchSemanticPattern(a){const b=a['toLowerCase']();return REWARD_SEMANTIC_TO_SCHEMA_RULES['filter'](c=>c['match_keywords']['some'](d=>b['includes'](d['toLowerCase']())));}export function explainRewardCallData(a){const b=[];!a['object']?b['push']('Operation:\x20CREATE\x20Reward\x20(new\x20+\x20create\x20+\x20share)'):b['push']('Operation:\x20OPERATE\x20Reward\x20at\x20'+a['object']);a['claim']&&b['push']('-\x20claim:\x20guard='+a['claim']+'\x20(passport-driven,\x20NO\x20permission\x20check)');a['description']!=null&&b['push']('-\x20description_set:\x20\x22'+a['description']+'\x22\x20(151\x20permission)');a['coin_add']&&b['push']('-\x20coin_add:\x20'+a['coin_add']['amount']+'\x20of\x20'+a['coin_add']['coin_type']+'\x20(153\x20permission)');a['receive']&&b['push']('-\x20receive:\x20token_type='+a['receive']['token_type']+'\x20(154\x20permission,\x20requires\x20Payment)');if(a['guard_add']){b['push']('-\x20guard_add:\x20'+a['guard_add']['length']+'\x20guard(s)\x20(152\x20permission)');for(let c=0x0;c<a['guard_add']['length'];c++){const d=a['guard_add'][c],e=Object['keys'](d['recipient'])[0x0]??'(unknown)',f=inferConstructorName(e,d['amount']['type']);b['push']('\x20\x20['+c+']\x20constructor='+f+',\x20guard='+d['guard']),b['push']('\x20\x20\x20\x20\x20\x20recipient='+e+',\x20amount='+d['amount']['type']+'('+d['amount']['value']+')'),d['expiration_time']!=null&&b['push']('\x20\x20\x20\x20\x20\x20expiration_time='+d['expiration_time']),d['store_from_id']!=null&&b['push']('\x20\x20\x20\x20\x20\x20store_from_id='+d['store_from_id']);}}a['guard_remove_expired']&&b['push']('-\x20guard_remove_expired:\x20true\x20(152\x20permission)');if(a['guard_expiration_time']!==undefined){const h=a['guard_expiration_time'];h===null?b['push']('-\x20guard_expiration_time_add:\x20null\x20(cancel\x20lock,\x20155\x20permission)'):b['push']('-\x20guard_expiration_time_add:\x20'+h+'\x20(155\x20permission,\x20must\x20be\x20>\x20now)');}return a['owner_receive']!=null&&b['push']('-\x20⚠️\x20owner_receive\x20(156\x20permission):\x20unwrap\x20to\x20Permission\x20owner'),a['um']!==undefined&&(a['um']?b['push']('-\x20um_set:\x20'+a['um']+'\x20(157\x20permission,\x20creates\x20object-linker\x20core\x20binding)'):b['push']('-\x20um_none:\x20(157\x20permission,\x20disaffiliates\x20and\x20clears\x20um)')),b['join']('\x0a');}function inferConstructorName(a,b){const c={'GuardIdentifier':'GuardIdentifier','Entity':'Entity','Signer':'Signer'},d=c[a];if(!d)return'(invalid)';const e=String(b)['toUpperCase'](),f=e==='FIXED'?'Fixed':'GuardU64Identifier';return resolveGuardConstructor(d,f)??'(invalid)';}export function explainField(a){return REWARD_SCHEMA_TO_SEMANTIC_RULES['find'](b=>b['element_type']==='field'&&b['type_name']===a);}export function explainOp(a){return REWARD_SCHEMA_TO_SEMANTIC_RULES['find'](b=>b['element_type']==='op'&&b['type_name']===a);}export function explainConstructor(a){return REWARD_SCHEMA_TO_SEMANTIC_RULES['find'](b=>b['element_type']==='constructor'&&b['type_name']===a);}export function getConstraintsByCategory(a){return REWARD_CONSTRAINT_RULES['filter'](b=>b['category']===a);}export function explainPermissionIndex(a){if(isRewardBuiltinPermission(a)){const b=getBuiltinPermissionByIndex(a);return b['name']+'\x20('+a+')\x20—\x20'+b['description'];}return'Custom\x20permission\x20index\x20('+a+')\x20—\x20not\x20a\x20Reward\x20builtin\x20(150-157)';}