@wowok/agent-mcp 3.0.1 → 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 (283) 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/intent/types.d.ts +1 -1
  6. package/dist/intent/types.js +1 -1
  7. package/dist/knowledge/account-marks.js +1 -1
  8. package/dist/knowledge/arbitration-risk.js +1 -1
  9. package/dist/knowledge/event-semantics.js +1 -1
  10. package/dist/knowledge/event-semantics.spec.js +1 -1
  11. package/dist/knowledge/flywheel-loop.d.ts +4 -52
  12. package/dist/knowledge/flywheel-loop.js +1 -1
  13. package/dist/knowledge/guard-lint.js +1 -1
  14. package/dist/knowledge/index.d.ts +2 -225
  15. package/dist/knowledge/index.js +1 -1
  16. package/dist/knowledge/industry-registry.js +1 -1
  17. package/dist/knowledge/machine-risk.js +1 -1
  18. package/dist/knowledge/machine-translation.js +1 -1
  19. package/dist/knowledge/migration-preflight.d.ts +27 -0
  20. package/dist/knowledge/migration-preflight.js +1 -0
  21. package/dist/knowledge/onchain-constants.js +1 -1
  22. package/dist/knowledge/order-ledger.d.ts +2 -2
  23. package/dist/knowledge/order-ledger.js +1 -1
  24. package/dist/knowledge/order-puzzle.d.ts +4 -4
  25. package/dist/knowledge/order-puzzle.js +1 -1
  26. package/dist/knowledge/order-risk.d.ts +1 -0
  27. package/dist/knowledge/order-risk.js +1 -1
  28. package/dist/knowledge/order-templates.d.ts +1 -1
  29. package/dist/knowledge/order-templates.js +1 -1
  30. package/dist/knowledge/safety-rules.js +1 -1
  31. package/dist/knowledge/service-ledger.js +1 -1
  32. package/dist/knowledge/service-risk.js +1 -1
  33. package/dist/knowledge/template-registry.js +1 -1
  34. package/dist/knowledge/tools-reference.js +1 -1
  35. package/dist/knowledge/workspace-lists.js +1 -1
  36. package/dist/monitor/MonitorLoop.js +1 -1
  37. package/dist/monitor/normalize.js +1 -1
  38. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  39. package/dist/playbooks/service-build/context-assembly.d.ts +3 -1
  40. package/dist/playbooks/service-build/context-assembly.js +1 -1
  41. package/dist/playbooks/service-build/machine-nodes.d.ts +2 -0
  42. package/dist/playbooks/service-build/machine-nodes.js +1 -1
  43. package/dist/playbooks/service-build/machine-panorama.d.ts +7 -0
  44. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  45. package/dist/playbooks/service-build/mode-actions.d.ts +19 -0
  46. package/dist/playbooks/service-build/mode-actions.js +1 -1
  47. package/dist/review/machine.js +1 -1
  48. package/dist/safety/confirm-gate.js +1 -1
  49. package/dist/schema/call/base.d.ts +12 -3
  50. package/dist/schema/call/base.js +1 -1
  51. package/dist/schema/call/bridge.d.ts +4 -0
  52. package/dist/schema/call/bridge.js +1 -1
  53. package/dist/schema/call/error-codes.d.ts +2 -0
  54. package/dist/schema/call/error-codes.js +1 -0
  55. package/dist/schema/call/guard.d.ts +4 -4
  56. package/dist/schema/call/semantic.d.ts +9 -1
  57. package/dist/schema/call/semantic.js +1 -1
  58. package/dist/schema/common/index.js +1 -1
  59. package/dist/schema/goal/index.d.ts +3 -3
  60. package/dist/schema/goal/planning.d.ts +2 -2
  61. package/dist/schema/industry-pack/index.d.ts +46 -4
  62. package/dist/schema/industry-pack/modes.d.ts +46 -4
  63. package/dist/schema/industry-pack/modes.js +1 -1
  64. package/dist/schema/intent-radar/index.d.ts +3 -0
  65. package/dist/schema/intent-radar/index.js +1 -1
  66. package/dist/schema/local/index.d.ts +558 -0
  67. package/dist/schema/local/index.js +1 -1
  68. package/dist/schema/messenger/index.d.ts +25 -25
  69. package/dist/schema/operations.d.ts +29 -1
  70. package/dist/schema/persona/index.d.ts +2 -2
  71. package/dist/schema/query/bi.d.ts +89 -4
  72. package/dist/schema/query/bi.js +1 -1
  73. package/dist/schema/query/index.d.ts +48 -48
  74. package/dist/schema/query/index.js +1 -1
  75. package/dist/schema/schema-query/index.d.ts +1 -1
  76. package/dist/schema/schema-version.js +1 -1
  77. package/dist/schema/trust/index.d.ts +3 -3
  78. package/dist/schema/workspace/index.d.ts +1 -1
  79. package/dist/schema-query-impl/index.js +1 -1
  80. package/dist/schemas/account_operation.output.json +4 -0
  81. package/dist/schemas/bridge_operation.output.json +4 -0
  82. package/dist/schemas/index.json +7 -1
  83. package/dist/schemas/industry_pack_operation.output.json +162 -6
  84. package/dist/schemas/intent_radar.output.json +2 -0
  85. package/dist/schemas/intent_radar.schema.json +1 -0
  86. package/dist/schemas/local_history_operation.output.json +1458 -0
  87. package/dist/schemas/local_history_operation.schema.json +105 -0
  88. package/dist/schemas/local_info_operation.output.json +4 -0
  89. package/dist/schemas/local_mark_operation.output.json +4 -0
  90. package/dist/schemas/onchain_events.output.json +55 -11
  91. package/dist/schemas/onchain_events.schema.json +4 -0
  92. package/dist/schemas/onchain_operations.output.json +4 -1
  93. package/dist/schemas/onchain_operations.schema.json +30 -10
  94. package/dist/schemas/onchain_operations_guard.schema.json +30 -10
  95. package/dist/schemas/onchain_table_data.output.json +41 -0
  96. package/dist/schemas/query_toolkit.output.json +200 -16
  97. package/dist/schemas/query_toolkit.schema.json +41 -0
  98. package/dist/tools/handlers/config.js +1 -1
  99. package/dist/tools/handlers/intent-radar.js +1 -1
  100. package/dist/tools/handlers/local.d.ts +1 -0
  101. package/dist/tools/handlers/local.js +1 -1
  102. package/dist/tools/handlers/onchain.js +1 -1
  103. package/dist/tools/handlers/query.js +1 -1
  104. package/dist/tools/index.js +1 -1
  105. package/dist/tools/registry/local.js +1 -1
  106. package/dist/tools/registry/query.js +1 -1
  107. package/dist/tools/shared.js +1 -1
  108. package/dist/tools/wrap.js +1 -1
  109. package/package.json +2 -2
  110. package/dist/knowledge/allocation-confirm.d.ts +0 -115
  111. package/dist/knowledge/allocation-confirm.js +0 -1
  112. package/dist/knowledge/allocation-context.d.ts +0 -58
  113. package/dist/knowledge/allocation-context.js +0 -1
  114. package/dist/knowledge/allocation-translation.d.ts +0 -72
  115. package/dist/knowledge/allocation-translation.js +0 -1
  116. package/dist/knowledge/arb-confirm.d.ts +0 -28
  117. package/dist/knowledge/arb-confirm.js +0 -1
  118. package/dist/knowledge/arb-translation.d.ts +0 -48
  119. package/dist/knowledge/arb-translation.js +0 -1
  120. package/dist/knowledge/arbitration-confirm.d.ts +0 -135
  121. package/dist/knowledge/arbitration-confirm.js +0 -1
  122. package/dist/knowledge/arbitration-context.d.ts +0 -81
  123. package/dist/knowledge/arbitration-context.js +0 -1
  124. package/dist/knowledge/arbitration-translation.d.ts +0 -91
  125. package/dist/knowledge/arbitration-translation.js +0 -1
  126. package/dist/knowledge/bridge-confirm.d.ts +0 -26
  127. package/dist/knowledge/bridge-confirm.js +0 -1
  128. package/dist/knowledge/bridge-translation.d.ts +0 -37
  129. package/dist/knowledge/bridge-translation.js +0 -1
  130. package/dist/knowledge/contact-confirm.d.ts +0 -27
  131. package/dist/knowledge/contact-confirm.js +0 -1
  132. package/dist/knowledge/contact-translation.d.ts +0 -39
  133. package/dist/knowledge/contact-translation.js +0 -1
  134. package/dist/knowledge/demand-confirm.d.ts +0 -32
  135. package/dist/knowledge/demand-confirm.js +0 -1
  136. package/dist/knowledge/demand-context.d.ts +0 -17
  137. package/dist/knowledge/demand-context.js +0 -1
  138. package/dist/knowledge/demand-ledger.d.ts +0 -26
  139. package/dist/knowledge/demand-ledger.js +0 -1
  140. package/dist/knowledge/demand-puzzle.d.ts +0 -29
  141. package/dist/knowledge/demand-puzzle.js +0 -1
  142. package/dist/knowledge/demand-templates.d.ts +0 -12
  143. package/dist/knowledge/demand-templates.js +0 -1
  144. package/dist/knowledge/demand-translation.d.ts +0 -55
  145. package/dist/knowledge/demand-translation.js +0 -1
  146. package/dist/knowledge/examples-scanner-cli.d.ts +0 -1
  147. package/dist/knowledge/examples-scanner-cli.js +0 -1
  148. package/dist/knowledge/examples-scanner.d.ts +0 -121
  149. package/dist/knowledge/examples-scanner.js +0 -1
  150. package/dist/knowledge/glossary.d.ts +0 -18
  151. package/dist/knowledge/glossary.js +0 -1
  152. package/dist/knowledge/guard-bytecode-spec.d.ts +0 -82
  153. package/dist/knowledge/guard-bytecode-spec.js +0 -1
  154. package/dist/knowledge/guard-confirm.d.ts +0 -86
  155. package/dist/knowledge/guard-confirm.js +0 -1
  156. package/dist/knowledge/immutability.d.ts +0 -11
  157. package/dist/knowledge/immutability.js +0 -1
  158. package/dist/knowledge/machine-confirm.d.ts +0 -102
  159. package/dist/knowledge/machine-confirm.js +0 -1
  160. package/dist/knowledge/machine-context.d.ts +0 -160
  161. package/dist/knowledge/machine-context.js +0 -1
  162. package/dist/knowledge/machine-render.d.ts +0 -41
  163. package/dist/knowledge/machine-render.js +0 -1
  164. package/dist/knowledge/mcp-schema-audit-cli.d.ts +0 -1
  165. package/dist/knowledge/mcp-schema-audit-cli.js +0 -1
  166. package/dist/knowledge/mcp-schema-audit.d.ts +0 -91
  167. package/dist/knowledge/mcp-schema-audit.js +0 -1
  168. package/dist/knowledge/messenger-guard-guidance.d.ts +0 -17
  169. package/dist/knowledge/messenger-guard-guidance.js +0 -1
  170. package/dist/knowledge/order-confirm.d.ts +0 -115
  171. package/dist/knowledge/order-confirm.js +0 -1
  172. package/dist/knowledge/order-context.d.ts +0 -66
  173. package/dist/knowledge/order-context.js +0 -1
  174. package/dist/knowledge/order-translation.d.ts +0 -78
  175. package/dist/knowledge/order-translation.js +0 -1
  176. package/dist/knowledge/overrides-loader.d.ts +0 -13
  177. package/dist/knowledge/overrides-loader.js +0 -1
  178. package/dist/knowledge/passport-confirm.d.ts +0 -130
  179. package/dist/knowledge/passport-confirm.js +0 -1
  180. package/dist/knowledge/passport-context.d.ts +0 -59
  181. package/dist/knowledge/passport-context.js +0 -1
  182. package/dist/knowledge/passport-puzzle.d.ts +0 -108
  183. package/dist/knowledge/passport-puzzle.js +0 -1
  184. package/dist/knowledge/passport-risk.d.ts +0 -70
  185. package/dist/knowledge/passport-risk.js +0 -1
  186. package/dist/knowledge/passport-translation.d.ts +0 -68
  187. package/dist/knowledge/passport-translation.js +0 -1
  188. package/dist/knowledge/payment-confirm.d.ts +0 -26
  189. package/dist/knowledge/payment-confirm.js +0 -1
  190. package/dist/knowledge/payment-translation.d.ts +0 -37
  191. package/dist/knowledge/payment-translation.js +0 -1
  192. package/dist/knowledge/permission-confirm.d.ts +0 -110
  193. package/dist/knowledge/permission-confirm.js +0 -1
  194. package/dist/knowledge/permission-context.d.ts +0 -69
  195. package/dist/knowledge/permission-context.js +0 -1
  196. package/dist/knowledge/permission-translation.d.ts +0 -57
  197. package/dist/knowledge/permission-translation.js +0 -1
  198. package/dist/knowledge/personal-confirm.d.ts +0 -29
  199. package/dist/knowledge/personal-confirm.js +0 -1
  200. package/dist/knowledge/personal-translation.d.ts +0 -37
  201. package/dist/knowledge/personal-translation.js +0 -1
  202. package/dist/knowledge/process-model.d.ts +0 -14
  203. package/dist/knowledge/process-model.js +0 -1
  204. package/dist/knowledge/progress-confirm.d.ts +0 -108
  205. package/dist/knowledge/progress-confirm.js +0 -1
  206. package/dist/knowledge/progress-context.d.ts +0 -123
  207. package/dist/knowledge/progress-context.js +0 -1
  208. package/dist/knowledge/progress-translation.d.ts +0 -52
  209. package/dist/knowledge/progress-translation.js +0 -1
  210. package/dist/knowledge/proof-confirm.d.ts +0 -31
  211. package/dist/knowledge/proof-confirm.js +0 -1
  212. package/dist/knowledge/proof-context.d.ts +0 -17
  213. package/dist/knowledge/proof-context.js +0 -1
  214. package/dist/knowledge/proof-ledger.d.ts +0 -34
  215. package/dist/knowledge/proof-ledger.js +0 -1
  216. package/dist/knowledge/proof-puzzle.d.ts +0 -35
  217. package/dist/knowledge/proof-puzzle.js +0 -1
  218. package/dist/knowledge/proof-templates.d.ts +0 -22
  219. package/dist/knowledge/proof-templates.js +0 -1
  220. package/dist/knowledge/proof-translation.d.ts +0 -52
  221. package/dist/knowledge/proof-translation.js +0 -1
  222. package/dist/knowledge/registrar-confirm.d.ts +0 -26
  223. package/dist/knowledge/registrar-confirm.js +0 -1
  224. package/dist/knowledge/registrar-translation.d.ts +0 -37
  225. package/dist/knowledge/registrar-translation.js +0 -1
  226. package/dist/knowledge/repository-confirm.d.ts +0 -40
  227. package/dist/knowledge/repository-confirm.js +0 -1
  228. package/dist/knowledge/repository-context.d.ts +0 -12
  229. package/dist/knowledge/repository-context.js +0 -1
  230. package/dist/knowledge/repository-ledger.d.ts +0 -25
  231. package/dist/knowledge/repository-ledger.js +0 -1
  232. package/dist/knowledge/repository-puzzle.d.ts +0 -30
  233. package/dist/knowledge/repository-puzzle.js +0 -1
  234. package/dist/knowledge/repository-templates.d.ts +0 -14
  235. package/dist/knowledge/repository-templates.js +0 -1
  236. package/dist/knowledge/repository-translation.d.ts +0 -58
  237. package/dist/knowledge/repository-translation.js +0 -1
  238. package/dist/knowledge/resource-confirm.d.ts +0 -25
  239. package/dist/knowledge/resource-confirm.js +0 -1
  240. package/dist/knowledge/resource-translation.d.ts +0 -37
  241. package/dist/knowledge/resource-translation.js +0 -1
  242. package/dist/knowledge/reward-confirm.d.ts +0 -116
  243. package/dist/knowledge/reward-confirm.js +0 -1
  244. package/dist/knowledge/reward-context.d.ts +0 -127
  245. package/dist/knowledge/reward-context.js +0 -1
  246. package/dist/knowledge/reward-translation.d.ts +0 -58
  247. package/dist/knowledge/reward-translation.js +0 -1
  248. package/dist/knowledge/service-confirm.d.ts +0 -161
  249. package/dist/knowledge/service-confirm.js +0 -1
  250. package/dist/knowledge/service-context.d.ts +0 -66
  251. package/dist/knowledge/service-context.js +0 -1
  252. package/dist/knowledge/service-translation.d.ts +0 -103
  253. package/dist/knowledge/service-translation.js +0 -1
  254. package/dist/knowledge/treasury-confirm.d.ts +0 -133
  255. package/dist/knowledge/treasury-confirm.js +0 -1
  256. package/dist/knowledge/treasury-context.d.ts +0 -64
  257. package/dist/knowledge/treasury-context.js +0 -1
  258. package/dist/knowledge/treasury-translation.d.ts +0 -78
  259. package/dist/knowledge/treasury-translation.js +0 -1
  260. package/dist/knowledge/util-confirm.d.ts +0 -24
  261. package/dist/knowledge/util-confirm.js +0 -1
  262. package/dist/knowledge/util-translation.d.ts +0 -39
  263. package/dist/knowledge/util-translation.js +0 -1
  264. package/dist/loop-engineering/aggregate.d.ts +0 -50
  265. package/dist/loop-engineering/aggregate.js +0 -1
  266. package/dist/loop-engineering/context-collect.d.ts +0 -7
  267. package/dist/loop-engineering/context-collect.js +0 -1
  268. package/dist/loop-engineering/diagnose.d.ts +0 -22
  269. package/dist/loop-engineering/diagnose.js +0 -1
  270. package/dist/loop-engineering/improve.d.ts +0 -55
  271. package/dist/loop-engineering/improve.js +0 -1
  272. package/dist/loop-engineering/index.d.ts +0 -4
  273. package/dist/loop-engineering/index.js +0 -1
  274. package/dist/loop-engineering/pipeline.d.ts +0 -17
  275. package/dist/loop-engineering/pipeline.js +0 -1
  276. package/dist/schema/utils/object-type-utils.d.ts +0 -12
  277. package/dist/schema/utils/object-type-utils.js +0 -1
  278. package/dist/telemetry/index.d.ts +0 -19
  279. package/dist/telemetry/index.js +0 -1
  280. package/dist/telemetry/redact.d.ts +0 -2
  281. package/dist/telemetry/redact.js +0 -1
  282. package/dist/telemetry/storage.d.ts +0 -8
  283. package/dist/telemetry/storage.js +0 -1
@@ -1,29 +0,0 @@
1
- import { type DemandScene } from "./demand-ledger.js";
2
- export declare const DEMAND_PUZZLE_VERSION = "1.0.0";
3
- export interface DemandIntentPuzzle {
4
- scene?: DemandScene;
5
- }
6
- export interface DemandFieldState {
7
- field: string;
8
- present: boolean;
9
- required: boolean;
10
- }
11
- export interface DemandPuzzle {
12
- intent: DemandIntentPuzzle;
13
- fields: DemandFieldState[];
14
- }
15
- export interface DemandPuzzleCompleteness {
16
- complete: boolean;
17
- missing_required: string[];
18
- reason: string;
19
- }
20
- export interface InitDemandPuzzleInput {
21
- intent: string;
22
- description?: string;
23
- location?: string;
24
- permission?: string;
25
- reward_count?: number;
26
- guard_count?: number;
27
- }
28
- export declare function initDemandPuzzleFromIntent(input: InitDemandPuzzleInput): DemandPuzzle;
29
- export declare function checkDemandPuzzleCompleteness(puzzle: DemandPuzzle): DemandPuzzleCompleteness;
@@ -1 +0,0 @@
1
- import{DEMAND_FIELDS,inferDemandSceneFromIntent}from'./demand-ledger.js';export const DEMAND_PUZZLE_VERSION='1.0.0';export function initDemandPuzzleFromIntent(a){const b=inferDemandSceneFromIntent(a['intent']),c={'description':!!a['description'],'location':!!a['location'],'permission':!!a['permission'],'rewards':(a['reward_count']??0x0)>0x0,'guards':(a['guard_count']??0x0)>0x0},d=DEMAND_FIELDS['map'](e=>({'field':e['field'],'present':e['field']in c?!!c[e['field']]:![],'required':e['required']}));return{'intent':{'scene':b},'fields':d};}export function checkDemandPuzzleCompleteness(a){const b=a['fields']['filter'](d=>d['required']&&!d['present'])['map'](d=>d['field']),c=b['length']===0x0;return{'complete':c,'missing_required':b,'reason':c?'All\x20required\x20demand\x20fields\x20present.':'Missing\x20required:\x20'+b['join'](',\x20')+'.'};}
@@ -1,12 +0,0 @@
1
- export declare const DEMAND_TEMPLATES_VERSION = "1.0.0";
2
- export interface DemandTemplate {
3
- id: string;
4
- name: string;
5
- description: string;
6
- rewards_required: boolean;
7
- guards_required: boolean;
8
- }
9
- export declare const DEMAND_TEMPLATES: DemandTemplate[];
10
- export declare function getDemandTemplateById(id: string): DemandTemplate | undefined;
11
- export declare function listDemandTemplates(): DemandTemplate[];
12
- export declare function suggestDemandTemplate(rewards: number, guards: number): DemandTemplate | undefined;
@@ -1 +0,0 @@
1
- export const DEMAND_TEMPLATES_VERSION='1.0.0';export const DEMAND_TEMPLATES=[{'id':'demand_open','name':'Open\x20demand','description':'A\x20public\x20announcement\x20any\x20service\x20can\x20present\x20to\x20(no\x20guards).','rewards_required':![],'guards_required':![]},{'id':'demand_guarded','name':'Guarded\x20demand','description':'Only\x20services\x20passing\x20the\x20present\x20guards\x20may\x20submit.','rewards_required':![],'guards_required':!![]},{'id':'demand_rewarded','name':'Rewarded\x20demand','description':'A\x20demand\x20with\x20monetary\x20rewards\x20to\x20incentivize\x20presentations.','rewards_required':!![],'guards_required':![]}];export function getDemandTemplateById(a){return DEMAND_TEMPLATES['find'](b=>b['id']===a);}export function listDemandTemplates(){return DEMAND_TEMPLATES;}export function suggestDemandTemplate(a,b){if(a>0x0&&b>0x0)return DEMAND_TEMPLATES['find'](c=>c['id']==='demand_rewarded');if(b>0x0)return DEMAND_TEMPLATES['find'](c=>c['id']==='demand_guarded');if(a>0x0)return DEMAND_TEMPLATES['find'](c=>c['id']==='demand_rewarded');return DEMAND_TEMPLATES['find'](c=>c['id']==='demand_open');}
@@ -1,55 +0,0 @@
1
- export interface SemanticToDemandSchemaRule {
2
- id: string;
3
- pattern_name: string;
4
- configuration_classification: "open" | "guarded" | "um_managed";
5
- semantic_intent: string;
6
- match_keywords: string[];
7
- schema_elements: {
8
- required_fields: string[];
9
- optional_fields: string[];
10
- presentation_path: "plain_present" | "present_with_passport" | "either";
11
- um_recommendation: string;
12
- };
13
- constraints: string[];
14
- example: Record<string, unknown>;
15
- }
16
- export declare const SEMANTIC_TO_DEMAND_SCHEMA_RULES: SemanticToDemandSchemaRule[];
17
- export interface DemandFieldTranslation {
18
- field_name: string;
19
- move_field?: string;
20
- value_type: string;
21
- semantic: string;
22
- format_example: string;
23
- validation_rules: string[];
24
- }
25
- export declare const DEMAND_FIELD_TRANSLATIONS: DemandFieldTranslation[];
26
- export interface DemandConstraintRule {
27
- id: string;
28
- name: string;
29
- description: string;
30
- validation_logic: string;
31
- failure_message: string;
32
- related_field: string;
33
- }
34
- export declare const DEMAND_CONSTRAINT_RULES: DemandConstraintRule[];
35
- export interface DemandExplainInput {
36
- description?: string;
37
- location?: string;
38
- rewards?: string[];
39
- guards?: {
40
- guard: string;
41
- service_identifier?: number | null;
42
- }[];
43
- um?: string | null;
44
- permission?: string;
45
- }
46
- export interface DemandExplanation {
47
- summary: string;
48
- configuration_classification: string;
49
- presentation_path: string;
50
- binding_status: string;
51
- size_status: string;
52
- warnings: string[];
53
- recommendations: string[];
54
- }
55
- export declare function explainDemand(input: DemandExplainInput): DemandExplanation;
@@ -1 +0,0 @@
1
- import{MAX_REWARD_COUNT,MAX_GUARD_COUNT_DEMAND,MAX_DESCRIPTION_LENGTH,MAX_LONG_NAME_LENGTH}from'@wowok/wowok';export const SEMANTIC_TO_DEMAND_SCHEMA_RULES=[{'id':'P-DEM-01','pattern_name':'Open\x20Demand\x20(no\x20guards)\x20—\x20free\x20presentation','configuration_classification':'open','semantic_intent':'An\x20open\x20Demand\x20accepts\x20presentations\x20from\x20any\x20sender\x20via\x20the\x20plain\x20`present`\x20function\x20(demand.move:100).\x20'+'No\x20Passport\x20is\x20required.\x20Use\x20this\x20for\x20broad-cast\x20demands\x20where\x20the\x20creator\x20wants\x20to\x20collect\x20as\x20many\x20'+'presentations\x20as\x20possible\x20(e.g.\x20open\x20calls\x20for\x20service\x20providers,\x20public\x20RFPs).\x20The\x20guards\x20vector\x20is\x20empty.','match_keywords':['open','no\x20guard','free\x20presentation','public','rfp','open\x20call'],'schema_elements':{'required_fields':['description','permission'],'optional_fields':['location','rewards','um','namedNew'],'presentation_path':'plain_present','um_recommendation':'Optional.\x20Set\x20um\x20to\x20a\x20Contact\x20object\x20if\x20the\x20Demand\x20should\x20be\x20managed\x20by\x20an\x20intermediary.\x20'+'Leave\x20as\x20Option::none\x20for\x20direct\x20creator\x20management.'},'constraints':['guards\x20vector\x20must\x20be\x20empty\x20(initial\x20state\x20—\x20do\x20not\x20call\x20guard_add)','Callers\x20MUST\x20use\x20plain\x20`present`\x20or\x20`present_service`\x20—\x20present_with_passport\x20will\x20abort\x20with\x20E_GUARD_NOT_FOUND\x20(4)','description\x20non-empty\x20and\x20within\x20MAX_DESCRIPTION_LENGTH\x20(4000\x20chars)','If\x20location\x20is\x20set,\x20within\x20MAX_LONG_NAME_LENGTH\x20(256\x20chars)'],'example':{'description':'Open\x20call\x20for\x20freelance\x20designers\x20—\x20submit\x20portfolio\x20link\x20as\x20recommend','location':'Shanghai','rewards':['0xabc...reward_addr_1'],'permission':'0xperm...permission_addr','um':null,'namedNew':{'name':'open_design_call_2026'}}},{'id':'P-DEM-02','pattern_name':'Guarded\x20Demand\x20(with\x20guards)\x20—\x20passport\x20required\x20for\x20present','configuration_classification':'guarded','semantic_intent':'A\x20guarded\x20Demand\x20requires\x20every\x20presenter\x20to\x20supply\x20a\x20Passport\x20that\x20passes\x20one\x20of\x20the\x20affiliated\x20Guards.\x20'+'Use\x20this\x20when\x20the\x20creator\x20wants\x20to\x20filter\x20presentations\x20by\x20Guard-defined\x20criteria\x20(KYC,\x20membership,\x20'+'stake,\x20etc.).\x20The\x20guards\x20vector\x20is\x20non-empty.\x20Each\x20guard\x20carries\x20an\x20optional\x20service_identifier\x20that,\x20'+'when\x20set,\x20routes\x20present_with_passport\x20to\x20extract\x20the\x20submission\x20address\x20from\x20the\x20Passport\x20(overriding\x20'+'the\x20supplied\x20service\x20parameter).','match_keywords':['guarded','passport','kyc','membership','filtered','gated','service_identifier'],'schema_elements':{'required_fields':['description','permission','guards'],'optional_fields':['location','rewards','um','namedNew'],'presentation_path':'present_with_passport','um_recommendation':'Optional.\x20Same\x20as\x20P-DEM-01.\x20If\x20the\x20Demand\x20is\x20mediated\x20by\x20an\x20intermediary\x20Contact,\x20set\x20um\x20to\x20that\x20'+'Contact\x20address\x20and\x20the\x20intermediary\x20can\x20manage\x20the\x20Demand\x20via\x20the\x20Contact\x27s\x20permission.'},'constraints':['guards\x20vector\x20non-empty\x20(call\x20guard_add\x20at\x20least\x20once)','Each\x20guard\x20address\x20must\x20be\x20unique\x20(duplicate\x20guard_add\x20updates\x20service_identifier\x20instead\x20of\x20pushing)','guard_count\x20≤\x20MAX_GUARD_COUNT_DEMAND\x20(20)\x20—\x20E_MAX_GUARD_COUNT_EXCEEDED\x20(2)\x20on\x20overflow','When\x20service_identifier\x20is\x20provided,\x20it\x20MUST\x20be\x20a\x20valid\x20u8\x20indexing\x20a\x20Service-typed\x20submission\x20in\x20the\x20Guard','Presenters\x20MUST\x20use\x20present_with_passport\x20/\x20present_service_with_passport\x20—\x20plain\x20present\x20aborts\x20with\x20E_NEED_PASSPORT\x20(3)','by_guard\x20(Guard\x20address)\x20passed\x20to\x20present_with_passport\x20MUST\x20already\x20be\x20in\x20the\x20guards\x20vector\x20—\x20E_GUARD_NOT_FOUND\x20(4)\x20otherwise'],'example':{'description':'KYC-gated\x20call\x20for\x20certified\x20auditors\x20only','location':'Remote','rewards':['0xabc...reward_addr_1','0xdef...reward_addr_2'],'guards':[{'guard':'0xguard1...','service_identifier':0x0},{'guard':'0xguard2...','service_identifier':null}],'permission':'0xperm...permission_addr','um':null,'namedNew':{'name':'kyc_auditor_call_2026'}}},{'id':'P-DEM-03','pattern_name':'Demand\x20with\x20UM\x20(um_set)\x20—\x20Contact\x20object\x20manages\x20demand','configuration_classification':'um_managed','semantic_intent':'A\x20Demand\x20with\x20um\x20set\x20has\x20an\x20affiliated\x20Contact\x20object\x20that\x20manages\x20the\x20Demand\x20on\x20behalf\x20of\x20the\x20creator.\x20'+'The\x20Contact\x27s\x20address\x20is\x20stored\x20in\x20Demand.um\x20(Option<address>).\x20The\x20Contact\x20can\x20perform\x20operations\x20'+'through\x20its\x20own\x20permission\x20scope.\x20Use\x20this\x20when\x20a\x20Demand\x20is\x20operated\x20by\x20an\x20intermediary\x20(agent,\x20'+'marketplace,\x20escrow\x20service)\x20rather\x20than\x20the\x20original\x20creator.\x20um_set_imp\x20(demand.move:139-147)\x20'+'disaffiliates\x20the\x20old\x20um\x20before\x20affiliating\x20the\x20new\x20one\x20(P-DEM-P1-1\x20fix).','match_keywords':['um','contact','managed','intermediary','agent','marketplace','escrow'],'schema_elements':{'required_fields':['description','permission','um'],'optional_fields':['location','rewards','guards','namedNew'],'presentation_path':'either','um_recommendation':'Required\x20for\x20this\x20pattern.\x20Set\x20um\x20to\x20a\x20Contact\x20object\x20address\x20via\x20um_set.\x20The\x20Contact\x27s\x20'+'permission\x20scope\x20applies\x20to\x20subsequent\x20operations.\x20To\x20remove\x20the\x20Contact,\x20call\x20um_none\x20—\x20'+'um_none_imp\x20disaffiliates\x20the\x20Contact\x20before\x20clearing\x20self.um.'},'constraints':['um\x20must\x20be\x20a\x20valid\x20Contact\x20object\x20address\x20(set\x20via\x20um_set,\x20permission\x20index\x20408)','um_set_imp\x20disaffiliates\x20old\x20um\x20before\x20affiliating\x20new\x20(P-DEM-P1-1\x20fix\x20—\x20prevents\x20object-linker\x20dependency\x20leak)','um_none_imp\x20disaffiliates\x20um\x20before\x20clearing\x20(symmetric\x20with\x20um_set_imp)','If\x20guards\x20is\x20also\x20non-empty,\x20the\x20present_with_passport\x20path\x20applies\x20(P-DEM-02\x20constraints\x20also\x20hold)','permission_set\x20(DE-D-2=A)\x20can\x20migrate\x20the\x20Demand\x20to\x20a\x20new\x20Permission\x20—\x20affiliation_change_core\x20is\x20called\x20on\x20the\x20object\x20linker'],'example':{'description':'Marketplace-managed\x20Demand\x20for\x20freelance\x20design\x20services','location':'Shanghai','rewards':['0xabc...reward_addr_1'],'guards':[{'guard':'0xguard1...','service_identifier':null}],'permission':'0xperm...permission_addr','um':'0xcontact...marketplace_contact_addr','namedNew':{'name':'marketplace_managed_design_2026'}}}];export const DEMAND_FIELD_TRANSLATIONS=[{'field_name':'description','value_type':'string','semantic':'Human-readable\x20description\x20of\x20this\x20Demand.\x20Required\x20field.\x20The\x20Move\x20contract\x20validates\x20via\x20'+'common::DESCRIPTION\x20(demand.move:157,177),\x20which\x20enforces\x20the\x204000-char\x20limit.\x20Should\x20be\x20a\x20one-line\x20'+'summary\x20of\x20what\x20the\x20Demand\x20is\x20asking\x20for\x20(e.g.\x20\x22freelance\x20designer\x20for\x20brand\x20identity\x20work\x22).','format_example':'Freelance\x20designer\x20for\x20brand\x20identity\x20work\x20(logo\x20+\x20style\x20guide)','validation_rules':['Required\x20field','Length\x20≤\x20MAX_DESCRIPTION_LENGTH\x20('+MAX_DESCRIPTION_LENGTH+'\x20chars)','Move\x20validates\x20via\x20common::DESCRIPTION\x20—\x20E_DESCRIPTION_LENGTH_EXCEEDED\x20(4)\x20on\x20overflow']},{'field_name':'location','value_type':'string','semantic':'Geographic\x20location\x20associated\x20with\x20the\x20Demand.\x20Validated\x20via\x20common::LONG_NAME\x20(demand.move:180).\x20'+'Empty\x20string\x20(\x22\x22)\x20is\x20valid\x20—\x20new_imp\x20initializes\x20location\x20to\x20empty.\x20Use\x20location_set\x20to\x20update\x20after\x20'+'creation.\x20This\x20is\x20the\x20ONLY\x20Move\x20Demand\x20struct\x20field\x20that\x20the\x20matching\x20engine\x20reads\x20directly\x20(other\x20'+'matching\x20fields\x20like\x20tags,\x20maxPrice,\x20scenario\x20are\x20caller-enriched\x20—\x20see\x20P-DEM-P1-3\x20/\x20R-DEM-07).','format_example':'Shanghai\x20or\x20Remote','validation_rules':['Optional\x20(empty\x20string\x20\x22\x22\x20is\x20the\x20default\x20initial\x20value)','Length\x20≤\x20MAX_LONG_NAME_LENGTH\x20('+MAX_LONG_NAME_LENGTH+'\x20chars)','Move\x20validates\x20via\x20common::LONG_NAME\x20—\x20E_LONG_NAME_LENGTH_EXCEEDED\x20(11)\x20on\x20overflow']},{'field_name':'rewards','value_type':'vector<address>\x20(string[]\x20in\x20SDK)','semantic':'Reward\x20object\x20addresses\x20affiliated\x20with\x20this\x20Demand.\x20Each\x20reward\x20is\x20added\x20via\x20reward_add,\x20which\x20'+'triggers\x20object_linker::affiliation_core.\x20The\x20matching\x20engine\x20reads\x20maxPrice\x20from\x20the\x20Reward\x20objects\x20'+'(caller-enriched\x20—\x20the\x20Demand\x20struct\x20only\x20stores\x20addresses,\x20not\x20Reward\x20metadata).','format_example':'[\x220xabc...reward_addr_1\x22,\x20\x220xdef...reward_addr_2\x22]','validation_rules':['Count\x20≤\x20MAX_REWARD_COUNT\x20('+MAX_REWARD_COUNT+')\x20—\x20E_MAX_REWARD_COUNT_EXCEEDED\x20(1)\x20on\x20overflow','Each\x20address\x20must\x20be\x20a\x20valid\x20Reward\x20object\x20address','Duplicate\x20addresses\x20are\x20silently\x20ignored\x20(reward_add_imp\x20checks\x20contains\x20before\x20push)','reward_remove\x20/\x20reward_clear\x20disaffiliate\x20via\x20object_linker::disaffiliation_core\x20before\x20removing']},{'field_name':'guards','value_type':'vector<ServiceGuard>\x20({\x20guard:\x20address,\x20service_identifier:\x20Option<u8>\x20}[]\x20in\x20SDK)','semantic':'Guard\x20addresses\x20with\x20optional\x20service_identifier.\x20When\x20non-empty,\x20presenters\x20MUST\x20use\x20'+'present_with_passport\x20(or\x20present_service_with_passport).\x20The\x20service_identifier,\x20when\x20set,\x20routes\x20'+'present_with_passport\x20to\x20extract\x20the\x20submission\x20address\x20from\x20the\x20Passport\x20(overriding\x20the\x20supplied\x20'+'service\x20parameter).\x20guard_add\x20validates\x20the\x20service_identifier\x20type\x20BEFORE\x20any\x20mutation\x20(P-DEM-P1-2\x20fix).','format_example':'[{\x20guard:\x20\x220xguard1...\x22,\x20service_identifier:\x200\x20},\x20{\x20guard:\x20\x220xguard2...\x22,\x20service_identifier:\x20null\x20}]','validation_rules':['Count\x20≤\x20MAX_GUARD_COUNT_DEMAND\x20('+MAX_GUARD_COUNT_DEMAND+')\x20—\x20E_MAX_GUARD_COUNT_EXCEEDED\x20(2)\x20on\x20overflow','Each\x20guard\x20address\x20must\x20be\x20a\x20valid\x20Guard\x20object\x20address','Duplicate\x20addresses\x20update\x20service_identifier\x20in\x20place\x20(no\x20new\x20push)','When\x20service_identifier\x20is\x20provided,\x20it\x20MUST\x20index\x20a\x20Service-typed\x20submission\x20in\x20the\x20Guard','guard_remove\x20/\x20guard_clear\x20disaffiliate\x20via\x20object_linker::disaffiliation_core\x20before\x20removing']},{'field_name':'um','value_type':'Option<address>\x20(string\x20|\x20null\x20in\x20SDK)','semantic':'Optional\x20Contact\x20object\x20address\x20that\x20manages\x20this\x20Demand.\x20When\x20set,\x20the\x20Contact\x20can\x20perform\x20'+'operations\x20through\x20its\x20own\x20permission\x20scope.\x20um_set_imp\x20(demand.move:139-147)\x20disaffiliates\x20the\x20old\x20'+'um\x20before\x20affiliating\x20the\x20new\x20one\x20(P-DEM-P1-1\x20fix\x20—\x20prevents\x20object-linker\x20dependency\x20leak).\x20To\x20clear,\x20'+'call\x20um_none\x20—\x20um_none_imp\x20disaffiliates\x20before\x20clearing\x20self.um.','format_example':'0xcontact...marketplace_contact_addr\x20or\x20null','validation_rules':['Optional\x20(null/undefined\x20→\x20Option::none)\x20—\x20initial\x20state','When\x20set,\x20must\x20be\x20a\x20valid\x20Contact\x20object\x20address','um_set_imp\x20disaffiliates\x20old\x20um\x20before\x20setting\x20new\x20(P-DEM-P1-1\x20fix)','um_none_imp\x20disaffiliates\x20um\x20before\x20clearing\x20(symmetric)','Permission\x20index\x20408\x20required\x20for\x20um_set\x20/\x20um_none']},{'field_name':'presenters','value_type':'ParentTable<address,\x20ServiceInfo>\x20(not\x20directly\x20settable\x20—\x20populated\x20by\x20present)','semantic':'Service\x20presentation\x20records,\x20keyed\x20by\x20presenter\x20address.\x20Each\x20entry\x20contains:\x20recommend\x20(String),\x20'+'service\x20(Option<address>),\x20update_time\x20(u64),\x20acceptance_score\x20(Option<u8>),\x20feedback\x20(String),\x20'+'feedback_time\x20(u64).\x20Populated\x20by\x20present_imp\x20—\x20presenters\x20call\x20present\x20/\x20present_with_passport\x20to\x20'+'add\x20or\x20update\x20their\x20entry.\x20feedback_imp\x20updates\x20an\x20existing\x20entry\x27s\x20feedback\x20fields.','format_example':'(not\x20directly\x20settable\x20—\x20populated\x20by\x20present\x20operations)','validation_rules':['Not\x20directly\x20settable\x20by\x20the\x20creator\x20—\x20populated\x20by\x20presenter\x20operations','Each\x20presenter\x20address\x20maps\x20to\x20at\x20most\x20one\x20ServiceInfo\x20entry','present\x20updates\x20update_time\x20and\x20overwrites\x20recommend/service\x20on\x20each\x20call','feedback\x20updates\x20acceptance_score,\x20feedback,\x20feedback_time\x20(only\x20if\x20presenter\x20exists)']},{'field_name':'permission','value_type':'address','semantic':'Permission\x20object\x20address\x20bound\x20to\x20this\x20Demand.\x20All\x20mutations\x20require\x20permission::assert_permission_with_sender\x20'+'with\x20the\x20appropriate\x20index\x20(400-408).\x20permission_set\x20(demand.move:286)\x20is\x20exposed\x20via\x20CallPermission.apply\x20'+'(DE-D-2=A)\x20and\x20migrates\x20the\x20binding\x20via\x20object_linker::affiliation_change_core.','format_example':'0xperm...permission_addr','validation_rules':['Required\x20field\x20(set\x20at\x20creation\x20via\x20new_imp)','permission::assert_with_sender(permission,\x20400,\x20ctx)\x20required\x20for\x20new\x20(DEMAND_NEW)','permission::assert_permission_with_sender(permission,\x20<index>,\x20&self.permission,\x20ctx)\x20required\x20for\x20all\x20mutations','Permission\x20indices:\x20400=NEW,\x20401=DESCRIPTION,\x20402=LOCATION,\x20404=GUARD,\x20405=REWARD,\x20406=FEEDBACK,\x20407=OWNER_RECEIVE,\x20408=UM','permission_set\x20migrates\x20binding\x20via\x20object_linker::affiliation_change_core\x20(DE-D-2=A)']}];export const DEMAND_CONSTRAINT_RULES=[{'id':'DEMAND_C_01','name':'description\x20non-empty\x20and\x20within\x20size\x20limit','description':'The\x20\x27description\x27\x20field\x20must\x20be\x20non-empty\x20and\x20≤\x20MAX_DESCRIPTION_LENGTH\x20('+MAX_DESCRIPTION_LENGTH+'\x20chars).','validation_logic':'description.length\x20>\x200\x20&&\x20description.length\x20<=\x20MAX_DESCRIPTION_LENGTH','failure_message':'description\x20must\x20be\x201..'+MAX_DESCRIPTION_LENGTH+'\x20chars\x20—\x20E_DESCRIPTION_LENGTH_EXCEEDED\x20(4)\x20on\x20overflow','related_field':'description'},{'id':'DEMAND_C_02','name':'location\x20within\x20size\x20limit','description':'The\x20\x27location\x27\x20field\x20must\x20be\x20≤\x20MAX_LONG_NAME_LENGTH\x20('+MAX_LONG_NAME_LENGTH+'\x20chars).\x20Empty\x20string\x20is\x20valid.','validation_logic':'location.length\x20<=\x20MAX_LONG_NAME_LENGTH','failure_message':'location\x20exceeds\x20MAX_LONG_NAME_LENGTH\x20('+MAX_LONG_NAME_LENGTH+'\x20chars)\x20—\x20E_LONG_NAME_LENGTH_EXCEEDED\x20(11)','related_field':'location'},{'id':'DEMAND_C_03','name':'rewards\x20count\x20within\x20limit','description':'The\x20\x27rewards\x27\x20vector\x20count\x20must\x20be\x20≤\x20MAX_REWARD_COUNT\x20('+MAX_REWARD_COUNT+').','validation_logic':'rewards.length\x20<=\x20MAX_REWARD_COUNT','failure_message':'rewards\x20count\x20exceeds\x20MAX_REWARD_COUNT\x20('+MAX_REWARD_COUNT+')\x20—\x20E_MAX_REWARD_COUNT_EXCEEDED\x20(1)','related_field':'rewards'},{'id':'DEMAND_C_04','name':'guards\x20count\x20within\x20limit','description':'The\x20\x27guards\x27\x20vector\x20count\x20must\x20be\x20≤\x20MAX_GUARD_COUNT_DEMAND\x20('+MAX_GUARD_COUNT_DEMAND+').','validation_logic':'guards.length\x20<=\x20MAX_GUARD_COUNT_DEMAND','failure_message':'guards\x20count\x20exceeds\x20MAX_GUARD_COUNT_DEMAND\x20('+MAX_GUARD_COUNT_DEMAND+')\x20—\x20E_MAX_GUARD_COUNT_EXCEEDED\x20(2)','related_field':'guards'},{'id':'DEMAND_C_05','name':'service_identifier\x20valid\x20u8\x20when\x20provided','description':'When\x20service_identifier\x20is\x20provided\x20to\x20guard_add,\x20it\x20must\x20be\x20a\x20valid\x20u8\x20(0-255)\x20indexing\x20a\x20'+'Service-typed\x20submission\x20in\x20the\x20Guard.\x20guard_add_imp\x20validates\x20via\x20guard::get_submission_object_type\x20'+'and\x20common::assert_service_object_type\x20BEFORE\x20any\x20mutation\x20(P-DEM-P1-2\x20fix).','validation_logic':'service_identifier\x20==\x20null\x20||\x20(Number.isInteger(service_identifier)\x20&&\x200\x20<=\x20service_identifier\x20&&\x20service_identifier\x20<=\x20255)','failure_message':'service_identifier\x20must\x20be\x20a\x20u8\x20(0-255)\x20indexing\x20a\x20Service-typed\x20submission\x20—\x20E_INVALID_SERVICE_OBJECT_TYPE\x20(13)','related_field':'guards.service_identifier'},{'id':'DEMAND_C_06','name':'present\x20requires\x20passport\x20when\x20guards\x20non-empty','description':'When\x20the\x20guards\x20vector\x20is\x20non-empty,\x20callers\x20MUST\x20use\x20present_with_passport\x20/\x20present_service_with_passport.\x20'+'The\x20plain\x20present\x20function\x20asserts\x20`vector::is_empty(&self.guards)`\x20and\x20aborts\x20with\x20E_NEED_PASSPORT\x20(3).\x20'+'The\x20by_guard\x20parameter\x20to\x20present_with_passport\x20MUST\x20already\x20be\x20in\x20the\x20guards\x20vector\x20'+'(otherwise\x20E_GUARD_NOT_FOUND\x20(4)).','validation_logic':'!guards_non_empty\x20||\x20using_present_with_passport;\x20by_guard\x20in\x20guards','failure_message':'present\x20without\x20passport\x20when\x20guards\x20non-empty\x20—\x20E_NEED_PASSPORT\x20(3);\x20by_guard\x20not\x20in\x20guards\x20—\x20E_GUARD_NOT_FOUND\x20(4)','related_field':'guards\x20+\x20presentation_path'}];export function explainDemand(a){const b=[],c=[],d=!!a['guards']&&a['guards']['length']>0x0,e=!!a['um'];let f='open',g='plain_present';if(d&&e)f='guarded\x20+\x20um_managed\x20(P-DEM-02\x20+\x20P-DEM-03\x20combined)',g='present_with_passport\x20(um\x20does\x20not\x20change\x20presentation\x20path)';else{if(d)f='guarded\x20(P-DEM-02)\x20—\x20passport\x20required\x20for\x20present',g='present_with_passport\x20/\x20present_service_with_passport';else e?(f='um_managed\x20(P-DEM-03)\x20—\x20Contact\x20manages\x20the\x20Demand',g='plain\x20present\x20(no\x20guards)\x20OR\x20present_with_passport\x20(if\x20guards\x20added\x20later)'):(f='open\x20(P-DEM-01)\x20—\x20free\x20presentation,\x20no\x20passport\x20required',g='present\x20/\x20present_service\x20(plain\x20path)');}const h=[];a['permission']&&h['push']('permission='+a['permission']['substring'](0x0,0xa)+'...\x20(bound\x20at\x20creation)');e&&h['push']('um='+a['um']['substring'](0x0,0xa)+'...\x20(Contact\x20manages\x20Demand)');a['rewards']&&a['rewards']['length']>0x0&&h['push']('rewards='+a['rewards']['length']+'\x20bound\x20via\x20object_linker::affiliation_core');d&&h['push']('guards='+a['guards']['length']+'\x20bound\x20via\x20object_linker::affiliation_core');const i=h['length']>0x0?'Bindings:\x20'+h['join'](';\x20'):'No\x20object-linker\x20bindings\x20(bare\x20Demand)',j=[];a['description']!==undefined&&j['push']('description='+a['description']['length']+'\x20chars\x20(limit\x20'+MAX_DESCRIPTION_LENGTH+')');a['location']!==undefined&&j['push']('location='+a['location']['length']+'\x20chars\x20(limit\x20'+MAX_LONG_NAME_LENGTH+')');a['rewards']&&j['push']('rewards='+a['rewards']['length']+'/'+MAX_REWARD_COUNT);a['guards']&&j['push']('guards='+a['guards']['length']+'/'+MAX_GUARD_COUNT_DEMAND);if(d){const l=a['guards']['filter'](m=>m['service_identifier']!==null&&m['service_identifier']!==undefined&&!(typeof m['service_identifier']==='number'&&Number['isInteger'](m['service_identifier'])&&m['service_identifier']>=0x0&&m['service_identifier']<=0xff));l['length']>0x0&&b['push'](l['length']+'\x20guard(s)\x20have\x20invalid\x20service_identifier\x20(must\x20be\x20u8\x200-255)');}(!a['description']||a['description']['length']===0x0)&&b['push']('description\x20is\x20empty\x20—\x20Demand\x20will\x20be\x20hard\x20to\x20identify\x20in\x20queries');(!a['description']||a['description']['length']===0x0)&&c['push']('Provide\x20a\x20non-empty\x20description\x20for\x20discoverability');(a['location']===undefined||a['location']==='')&&c['push']('Consider\x20setting\x20location\x20if\x20the\x20Demand\x20is\x20geographic\x20(only\x20on-chain\x20field\x20used\x20by\x20matching)');!d&&c['push']('Consider\x20adding\x20guards\x20if\x20presentations\x20should\x20be\x20filtered\x20(KYC,\x20membership,\x20etc.)');!e&&f==='open'&&c['push']('Consider\x20setting\x20um\x20to\x20a\x20Contact\x20if\x20the\x20Demand\x20should\x20be\x20managed\x20by\x20an\x20intermediary');const k='Demand\x20is\x20'+f+'.\x20'+g+'.\x20'+i+'.\x20'+(j['length']>0x0?'Sizes:\x20'+j['join'](',\x20')+'.':'');return{'summary':k,'configuration_classification':f,'presentation_path':g,'binding_status':i,'size_status':j['join'](',\x20'),'warnings':b,'recommendations':c};}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- import{scanAllExamples,formatScanReport,EXAMPLES_SCANNER_VERSION}from'./examples-scanner.js';import*as a118a from'fs';import*as a118b from'path';console['log']('Examples\x20Scanner\x20v'+EXAMPLES_SCANNER_VERSION),console['log']('Scanning\x20d:/wowok/docs/examples\x20...');const result=scanAllExamples();console['log']('Loaded\x20'+result['examples']['length']+'\x20examples,\x20found\x20'+result['total_findings']+'\x20findings.');const report=formatScanReport(result),outputPath=a118b['resolve']('d:/wowok/wiki/market/GLM3/examples-scan-report.md');a118a['writeFileSync'](outputPath,report,'utf-8'),console['log']('Report\x20written\x20to\x20'+outputPath),console['log']('\x0a===\x20Per-Example\x20Summary\x20===');for(const example of result['examples']){const findings=result['findings_by_example']['get'](example['relative_path'])??[],critical=findings['filter'](a=>a['severity']==='critical')['length'],high=findings['filter'](a=>a['severity']==='high')['length'],medium=findings['filter'](a=>a['severity']==='medium')['length'];console['log'](example['relative_path']['padEnd'](0x32)+'\x20machines='+example['machine_ops']['length']+'\x20'+('progress='+example['progress_ops']['length']+'\x20guards='+example['defined_guard_names']['size']+'\x20')+('findings='+findings['length']+'\x20(C:'+critical+'\x20H:'+high+'\x20M:'+medium+')'));}console['log']('\x0a===\x20Risk\x20Rule\x20Coverage\x20===');const sortedRules=[...result['risk_rule_coverage']['entries']()]['sort']((c,d)=>c[0x0]['localeCompare'](d[0x0]));for(const [ruleId,count]of sortedRules){console['log']('\x20\x20'+ruleId['padEnd'](0xf)+'\x20'+count);}
@@ -1,121 +0,0 @@
1
- import { type MachineNode, type MachinePair } from "./machine-topology.js";
2
- import { type CrossMachineDependency, type GuardResolution } from "./machine-context.js";
3
- export interface RawNodeDef {
4
- name: string;
5
- pairs: Array<{
6
- prev_node: string;
7
- threshold: number;
8
- forwards: Array<{
9
- name: string;
10
- weight: number;
11
- namedOperator?: string;
12
- permissionIndex?: number;
13
- named_operator?: string;
14
- permission_index?: number;
15
- guard?: unknown;
16
- retained_submission?: unknown;
17
- }>;
18
- }>;
19
- }
20
- export interface RawMachineOp {
21
- operation_type: "machine";
22
- data: {
23
- object: string | {
24
- name: string;
25
- permission?: string;
26
- replaceExistName?: boolean;
27
- replace_exist_name?: boolean;
28
- };
29
- description?: string;
30
- node?: {
31
- op: "add" | "replace" | "delete";
32
- bReplace?: boolean;
33
- nodes: RawNodeDef[];
34
- };
35
- publish?: boolean;
36
- };
37
- env: {
38
- account?: string;
39
- network?: "localnet" | "testnet" | "mainnet";
40
- confirmed?: boolean;
41
- no_cache?: boolean;
42
- };
43
- }
44
- export declare function getMachineName(op: RawMachineOp): string;
45
- export interface RawProgressOp {
46
- operation_type: string;
47
- data: {
48
- object: string;
49
- progress?: {
50
- operation: {
51
- next_node_name: string;
52
- forward: string;
53
- };
54
- };
55
- submission?: unknown;
56
- };
57
- env: {
58
- account?: string;
59
- network?: "localnet" | "testnet" | "mainnet";
60
- };
61
- _source_line?: number;
62
- }
63
- export interface LoadedExample {
64
- example_name: string;
65
- relative_path: string;
66
- absolute_path: string;
67
- machine_ops: Array<{
68
- op: RawMachineOp;
69
- line_start: number;
70
- }>;
71
- progress_ops: RawProgressOp[];
72
- defined_guard_names: Set<string>;
73
- business_description?: string;
74
- }
75
- export type FindingSeverity = "critical" | "high" | "medium" | "low" | "info";
76
- export type FindingCategory = "schema_consistency" | "design" | "runtime" | "cross_machine" | "round_trip" | "progress" | "risk_rule";
77
- export interface Finding {
78
- example: string;
79
- source_file: string;
80
- line: number;
81
- machine_name: string;
82
- category: FindingCategory;
83
- severity: FindingSeverity;
84
- title: string;
85
- detail: string;
86
- rule_id?: string;
87
- fix?: string;
88
- }
89
- export declare function nodeDefsToMachine(nodeDefs: RawNodeDef[]): {
90
- nodes: MachineNode[];
91
- pairs: MachinePair[];
92
- };
93
- export declare function loadAllExamples(examplesDir?: string): LoadedExample[];
94
- export declare function analyzeSchemaConsistency(_example: LoadedExample): Finding[];
95
- export declare function analyzeThresholdIssues(example: LoadedExample): Finding[];
96
- export declare function analyzeNetworkSafety(example: LoadedExample): Finding[];
97
- export declare function analyzeConfirmationBypass(example: LoadedExample): Finding[];
98
- export declare function analyzeGuardReferences(example: LoadedExample): Finding[];
99
- export declare function analyzeCrossMachineDeps(example: LoadedExample, guardResolutions?: Map<string, GuardResolution>): {
100
- deps: CrossMachineDependency[];
101
- cycles: string[][];
102
- findings: Finding[];
103
- };
104
- export declare function analyzeRoundTrip(example: LoadedExample): Finding[];
105
- export declare function analyzeProgressOps(example: LoadedExample): Finding[];
106
- export declare function analyzePublishStep(example: LoadedExample): Finding[];
107
- export declare function analyzeRiskRuleCoverage(example: LoadedExample): {
108
- ruleCounts: Map<string, number>;
109
- totalFindings: number;
110
- };
111
- export interface ScanResult {
112
- examples: LoadedExample[];
113
- findings_by_example: Map<string, Finding[]>;
114
- findings_by_category: Map<FindingCategory, Finding[]>;
115
- findings_by_severity: Map<FindingSeverity, Finding[]>;
116
- total_findings: number;
117
- risk_rule_coverage: Map<string, number>;
118
- }
119
- export declare function scanAllExamples(examplesDir?: string): ScanResult;
120
- export declare function formatScanReport(result: ScanResult): string;
121
- export declare const EXAMPLES_SCANNER_VERSION = "1.0.0";
@@ -1 +0,0 @@
1
- import*as a119a from'fs';import*as a119b from'path';import{analyzeTopology}from'./machine-topology.js';import{assessMachineRisks}from'./machine-risk.js';import{runStaticChecklist}from'./machine-confirm.js';import{explainNode}from'./machine-translation.js';import{identifyCrossMachineDependency,detectCrossMachineCycle}from'./machine-context.js';export function getMachineName(a){if(typeof a['data']['object']==='string')return a['data']['object'];return a['data']['object']['name'];}const EXAMPLES_DIR=a119b['resolve']('d:/wowok/docs/examples');export function nodeDefsToMachine(a){const b=[],c=[],d=new Set();for(const e of a){!d['has'](e['name'])&&(b['push']({'name':e['name']}),d['add'](e['name']));for(const f of e['pairs']){c['push']({'prev_node':f['prev_node'],'next_node':e['name'],'threshold':f['threshold'],'forwards':f['forwards']['map'](g=>normalizeForward(g))});}}return{'nodes':b,'pairs':c};}function normalizeForward(a){const b=a['named_operator']??a['namedOperator'],c=a['permission_index']??a['permissionIndex'];let d;if(typeof a['guard']==='string')d=a['guard'];else{if(a['guard']&&typeof a['guard']==='object'){const h=a['guard'];if(typeof h['guard']==='string')d=h['guard'];}}let e;if(a['retained_submission']!==undefined&&a['retained_submission']!==null){if(typeof a['retained_submission']==='string')e=a['retained_submission'];else{if(Array['isArray'](a['retained_submission']))e=a['retained_submission'];else{if(typeof a['retained_submission']==='object'){const i=a['retained_submission'];i['retained_submission']!==undefined&&(e=i['retained_submission']);}}}}else{if(a['guard']&&typeof a['guard']==='object'){const j=a['guard'];if(j['retained_submission']!==undefined&&j['retained_submission']!==null){if(Array['isArray'](j['retained_submission']))e=j['retained_submission'];else typeof j['retained_submission']==='string'&&(e=j['retained_submission']);}}}return{'name':a['name'],'weight':a['weight'],'named_operator':b,'permission_index':c,'guard':d,'retained_submission':e};}function extractJsonBlocks(a){const b=a119a['readFileSync'](a,'utf-8'),c=b['split']('\x0a'),d=[];let e=0x0;while(e<c['length']){const f=c[e];if(f['trim']()['startsWith']('```json')){const g=[];let h=e+0x1;while(h<c['length']&&!c[h]['trim']()['startsWith']('```')){g['push'](c[h]),h++;}const k=g['join']('\x0a');try{const l=JSON['parse'](k);let m=null;if(l&&typeof l==='object'&&!Array['isArray'](l)){const n=l;if(n['tool']==='onchain_operations'&&n['data']&&typeof n['data']==='object'&&!Array['isArray'](n['data'])){const o=n['data'];typeof o['operation_type']==='string'&&(m={'operation_type':o['operation_type'],'data':o['data'],...o['env']!==undefined?{'env':o['env']}:{}});}else typeof n['operation_type']==='string'&&(m=n);}m&&typeof m['operation_type']==='string'&&d['push']({'lineStart':e+0x1,'raw':k,'json':m});}catch{}e=h+0x1;}else e++;}return d;}function extractDefinedGuardNames(a){const c=extractJsonBlocks(a),d=new Set();for(const e of c){if(e['json']['operation_type']!=='guard')continue;const f=e['json']['data'];if(!f)continue;const g=f['namedNew'],h=g?.['name'];if(h)d['add'](h);}return d;}export function loadAllExamples(a=EXAMPLES_DIR){const b=[];if(!a119a['existsSync'](a))return b;const c=a119a['readdirSync'](a,{'withFileTypes':!![]});for(const d of c){if(!d['isDirectory']())continue;const e=a119b['join'](a,d['name']),f=a119a['readdirSync'](e,{'withFileTypes':!![]});for(const g of f){if(!g['isFile']())continue;const h=a119b['join'](e,g['name']),i=d['name']+'/'+g['name'];if(g['name']['endsWith']('.md')){const j=extractMachineOpsFromMarkdown(h),k=extractProgressOpsFromMarkdown(h),l=extractDefinedGuardNames(h);if(j['length']===0x0&&k['length']===0x0&&l['size']===0x0)continue;const m=j[0x0]?.['op']['data']['description'];b['push']({'example_name':d['name'],'relative_path':i,'absolute_path':h,'machine_ops':j,'progress_ops':k,'defined_guard_names':l,'business_description':m});}else{if(g['name']['endsWith']('.json')&&g['name']['includes']('machine')){const n=a119a['readFileSync'](h,'utf-8');try{const o=JSON['parse'](n);if(!Array['isArray'](o)||o['length']===0x0)continue;const p=a119b['basename'](g['name'],'.json');b['push']({'example_name':d['name'],'relative_path':i,'absolute_path':h,'machine_ops':[{'op':{'operation_type':'machine','data':{'object':{'name':p,'replaceExistName':![]},'node':{'op':'add','nodes':o},'publish':![]},'env':{'network':'testnet'}},'line_start':0x0}],'progress_ops':[],'defined_guard_names':new Set(),'business_description':'(standalone\x20JSON:\x20'+p+')'});}catch{}}}}}return b;}function extractMachineOpsFromMarkdown(a){const c=extractJsonBlocks(a),d=[];for(const e of c){if(e['json']['operation_type']!=='machine')continue;try{const f=e['json'];if(!f['data'])continue;const g=f['data']['node']?.['nodes']&&Array['isArray'](f['data']['node']['nodes']),h=f['data']['publish']===!![];if(!g&&!h)continue;d['push']({'op':f,'line_start':e['lineStart']});}catch{}}return d;}function extractProgressOpsFromMarkdown(a){const c=extractJsonBlocks(a),d=[];for(const e of c){const f=e['json'],g=f['data'];if(!g)continue;const h=g['progress'];if(!h)continue;const i=h['operation'];if(!i||!i['next_node_name']||!i['forward'])continue;try{d['push']({'operation_type':f['operation_type'],'data':{'object':g['object'],'progress':{'operation':{'next_node_name':i['next_node_name'],'forward':i['forward']}},'submission':g['submission']},'env':{'account':f['env']?.['account'],'network':f['env']?.['network']},'_source_line':e['lineStart']});}catch{}}return d;}export function analyzeSchemaConsistency(a){return[];}export function analyzeThresholdIssues(a){const b=[];for(const {op:c,line_start:d}of a['machine_ops']){if(!c['data']['node']?.['nodes'])continue;const {nodes:e,pairs:f}=nodeDefsToMachine(c['data']['node']['nodes']),g=getMachineName(c),h=f['filter'](j=>j['prev_node']===''),i=h['length']>0x1;for(const j of f){if(j['prev_node']===''&&j['threshold']===0x0){const k=j['forwards']['length'],l=k===0x1||i;if(l)continue;b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':d,'machine_name':g,'category':'design','severity':'medium','title':'Entry\x20pair\x20with\x20threshold=0\x20and\x20multiple\x20Forwards\x20(potential\x20permission\x20bypass)','detail':'Pair\x20(prev=\x22\x22,\x20next=\x22'+j['next_node']+'\x22)\x20has\x20threshold=0\x20with\x20'+k+'\x20Forwards.\x20'+'With\x20threshold=0,\x20ANY\x20single\x20Forward\x20fires\x20→\x20migration,\x20potentially\x20bypassing\x20other\x20Forwards\x27\x20'+'permission\x20checks.\x20Set\x20threshold\x20≥\x201\x20so\x20ALL\x20intended\x20Forwards\x20must\x20agree.\x20'+'(Note:\x20single-Forward\x20Pairs\x20and\x20competing-OR\x20Pairs\x20with\x20threshold=0\x20are\x20NOT\x20flagged\x20—\x20they\x20are\x20legitimate.)','rule_id':'R-M3-09','fix':'Set\x20threshold=1\x20(or\x20higher)\x20on\x20entry\x20pair\x20targeting\x20\x22'+j['next_node']+'\x22\x20if\x20Forwards\x20represent\x20AND\x20semantics;\x20keep\x20threshold=0\x20if\x20OR\x20semantics\x20is\x20intended\x20(then\x20consider\x20splitting\x20into\x20competing\x20Pairs).'});}}for(const m of f){const n=m['forwards']['reduce']((o,p)=>o+p['weight'],0x0);m['threshold']>n&&b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':d,'machine_name':g,'category':'design','severity':'critical','title':'Threshold\x20exceeds\x20total\x20forward\x20weight\x20(unreachable)','detail':'Pair\x20(prev=\x22'+m['prev_node']+'\x22,\x20next=\x22'+m['next_node']+'\x22)\x20has\x20threshold='+m['threshold']+'\x20but\x20total\x20forward\x20weight='+n+'.\x20This\x20pair\x20can\x20NEVER\x20be\x20satisfied\x20—\x20workflow\x20dead-ends\x20here.','rule_id':'R-M2-06','fix':'Reduce\x20threshold\x20to\x20≤\x20'+n+'\x20or\x20add\x20more\x20forwards\x20with\x20weight.'});}}return b;}export function analyzeNetworkSafety(a){const b=[];for(const {op:c,line_start:d}of a['machine_ops']){const e=getMachineName(c),f=c['data']['publish']===!![],g=c['env']['network'];f&&g==='mainnet'&&b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':d,'machine_name':e,'category':'runtime','severity':'critical','title':'Direct\x20mainnet\x20publish\x20without\x20testnet\x20test','detail':'Machine\x20\x22'+e+'\x22\x20is\x20published\x20directly\x20to\x20mainnet.\x20Per\x20R-M4-02,\x20must\x20test\x20on\x20testnet\x20first.','rule_id':'R-M4-02','fix':'Set\x20env.network\x20to\x20\x22testnet\x22\x20for\x20first\x20publish,\x20run\x20end-to-end\x20test,\x20then\x20re-publish\x20on\x20mainnet.'});}return b;}export function analyzeConfirmationBypass(a){const b=[];for(const {op:c,line_start:d}of a['machine_ops']){const e=getMachineName(c),f=c['data']['publish']===!![],g=c['env']['confirmed']===!![];f&&g&&b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':d,'machine_name':e,'category':'runtime','severity':'medium','title':'confirmed=true\x20bypasses\x20user\x20confirmation\x20prompt','detail':'Machine\x20\x22'+e+'\x22\x20is\x20published\x20with\x20env.confirmed=true.\x20This\x20bypasses\x20the\x20ConfirmGate\x20user-confirmation\x20step.\x20Examples\x20should\x20demonstrate\x20the\x20two-step\x20confirmation\x20flow\x20(Phase\x201\x20prompt\x20→\x20Phase\x202\x20confirmed=true).','rule_id':'R-M4-04','fix':'Show\x20Phase\x201\x20(without\x20confirmed=true)\x20and\x20Phase\x202\x20(with\x20confirmed=true)\x20as\x20separate\x20steps\x20in\x20the\x20example.'});}return b;}export function analyzeGuardReferences(a){const b=[],c=a['defined_guard_names'];for(const {op:d,line_start:e}of a['machine_ops']){if(!d['data']['node']?.['nodes'])continue;const f=getMachineName(d),h=d['data']['publish']===!![];for(const i of d['data']['node']['nodes']){for(const j of i['pairs']){for(const k of j['forwards']){let l;if(typeof k['guard']==='string')l=k['guard'];else{if(k['guard']&&typeof k['guard']==='object'){const m=k['guard'];if(typeof m['guard']==='string')l=m['guard'];}}if(!l)continue;!c['has'](l)&&b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':e,'machine_name':f,'category':'runtime','severity':h?'critical':'high','title':'Guard\x20\x22'+l+'\x22\x20referenced\x20but\x20not\x20defined\x20in\x20example','detail':'Forward\x20\x22'+k['name']+'\x22\x20references\x20Guard\x20\x22'+l+'\x22\x20but\x20no\x20operation_type=\x22guard\x22\x20with\x20name=\x22'+l+'\x22\x20appears\x20earlier\x20in\x20'+a['relative_path']+'.\x20'+(h?'Publishing\x20will\x20fail\x20at\x20runtime.':'Will\x20fail\x20at\x20machine\x20creation.'),'rule_id':h?'R-M4-03':'R-M2-01','fix':'Add\x20a\x20guard\x20creation\x20step\x20(operation_type=\x22guard\x22)\x20with\x20name=\x22'+l+'\x22\x20BEFORE\x20the\x20machine\x20creation\x20step.'});}}}}return b;}export function analyzeCrossMachineDeps(a,b=new Map()){const c=[],d=[];for(const {op:f,line_start:g}of a['machine_ops']){if(!f['data']['node']?.['nodes'])continue;const {nodes:h,pairs:i}=nodeDefsToMachine(f['data']['node']['nodes']),j=getMachineName(f),k=identifyCrossMachineDependency(j,{'nodes':h,'pairs':i},b);d['push'](...k),k['length']>0x0&&c['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':g,'machine_name':j,'category':'cross_machine','severity':'info','title':'Machine\x20declares\x20'+k['length']+'\x20cross-Machine\x20dependencies','detail':k['map'](l=>'Forward\x20\x22'+l['dependency']['machine_a_forward']+'\x22\x20depends\x20on\x20Machine\x20\x22'+l['machine_b_id']+'\x22\x20reaching\x20node\x20\x22'+l['dependency']['machine_b_node']+'\x22')['join'](';\x20'),'rule_id':'P-M3'});}const e=detectCrossMachineCycle(d);for(const l of e){c['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':0x0,'machine_name':'(project-level)','category':'cross_machine','severity':'critical','title':'Cross-Machine\x20dependency\x20cycle\x20detected','detail':'Cycle:\x20'+l['join']('\x20→\x20'),'rule_id':'R-M2-07','fix':'Break\x20the\x20cycle\x20by\x20removing\x20one\x20of\x20the\x20dependencies\x20in\x20the\x20cycle.'});}return{'deps':d,'cycles':e,'findings':c};}export function analyzeRoundTrip(a){const b=[];for(const {op:c,line_start:d}of a['machine_ops']){if(!c['data']['node']?.['nodes'])continue;const {nodes:e,pairs:f}=nodeDefsToMachine(c['data']['node']['nodes']),g=getMachineName(c),h=analyzeTopology(e,f);h['has_cycles']&&b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':d,'machine_name':g,'category':'round_trip','severity':'critical','title':'Topology\x20analysis:\x20cycle\x20detected\x20(DAG\x20violation)','detail':'Machine\x20\x22'+g+'\x22\x20has\x20cycles:\x20'+JSON['stringify'](h['cycle_nodes']),'rule_id':'R-M1-03','fix':'Remove\x20cycles\x20—\x20Machine\x20must\x20be\x20a\x20DAG.'});const i={'network':c['env']['network']==='mainnet'?'mainnet':'testnet','testnet_test_passed':c['env']['network']!=='mainnet','published_services':new Set(),'published_guards':new Set(),'published_permissions':new Set(),'published_machines':new Set(),'published_arbitrations':new Set(),'published_rewards':new Set(),'published_allocators':new Set(),'published_repositories':new Set()};for(const p of f){for(const q of p['forwards']){if(q['guard'])i['published_guards']['add'](q['guard']);}}const j={'nodes':e,'pairs':f,'b_published':c['data']['publish']===!![]},k=assessMachineRisks(j,i),l=k['detected_risks']['filter'](s=>s['severity']==='critical');if(l['length']>0x0)for(const s of l){b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':d,'machine_name':g,'category':'round_trip','severity':'critical','title':'Risk\x20assessment:\x20'+s['rule_id']+'\x20('+s['severity']+')','detail':s['detail'],'rule_id':s['rule_id']});}const m={'nodes':e,'pairs':f,'name':g},n=runStaticChecklist(m),o=n['failed_items']['filter'](t=>['C-01','C-03','C-06','C-10']['includes'](t['id']));for(const t of o){b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':d,'machine_name':g,'category':'round_trip','severity':'high','title':'Checklist\x20'+t['id']+'\x20failed:\x20'+t['description'],'detail':t['detail']??'(no\x20detail)','rule_id':t['id']});}for(const u of e){const v=f['filter'](y=>y['prev_node']===u['name']),w={'name':u['name'],'pairs':v,'all_pairs':f},x=explainNode(w);(!x['name']||x['pairs']['length']!==v['length'])&&b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':d,'machine_name':g,'category':'round_trip','severity':'medium','title':'Round-trip\x20mismatch\x20for\x20node\x20\x22'+u['name']+'\x22','detail':'explainNode\x20produced\x20inconsistent\x20output:\x20name=\x22'+x['name']+'\x22,\x20pairs_count='+x['pairs']['length']+'\x20(expected\x20'+v['length']+')','rule_id':'RT-001'});}}return b;}export function analyzeProgressOps(a){const b=[],c=new Set();let d='(none)';for(const {op:e}of a['machine_ops']){if(!e['data']['node']?.['nodes'])continue;d=getMachineName(e);const {pairs:f}=nodeDefsToMachine(e['data']['node']['nodes']);for(const g of f){c['add'](g['next_node']+'::'+g['forwards']['map'](h=>h['name'])['join']('|'));for(const h of g['forwards']){c['add'](g['next_node']+'::'+h['name']);}}}for(const i of a['progress_ops']){const j=i['data']['progress']?.['operation'];if(!j)continue;const k=j['next_node_name']+'::'+j['forward'],l=c['has'](k);if(!l){const m=[...c]['some'](n=>n['endsWith']('::'+j['forward']));!m?b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':i['_source_line']??0x0,'machine_name':d,'category':'progress','severity':'high','title':'Progress\x20references\x20unknown\x20forward\x20\x22'+j['forward']+'\x22','detail':'Progress\x20op\x20references\x20forward\x20\x22'+j['forward']+'\x22\x20but\x20no\x20such\x20forward\x20exists\x20in\x20machine\x20\x22'+d+'\x22.','rule_id':'R-M3-04','fix':'Verify\x20forward\x20name\x20matches\x20one\x20defined\x20in\x20the\x20Machine.'}):b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':i['_source_line']??0x0,'machine_name':d,'category':'progress','severity':'medium','title':'Progress\x20forward\x20\x22'+j['forward']+'\x22\x20doesn\x27t\x20lead\x20to\x20\x22'+j['next_node_name']+'\x22','detail':'Forward\x20\x22'+j['forward']+'\x22\x20exists\x20but\x20doesn\x27t\x20target\x20node\x20\x22'+j['next_node_name']+'\x22.','rule_id':'R-M3-05','fix':'Correct\x20next_node_name\x20to\x20match\x20the\x20forward\x27s\x20target.'});}}return b;}export function analyzePublishStep(a){const b=[],c=a['machine_ops']['some'](({op:e})=>e['data']['publish']===!![]),d=a['progress_ops']['length']>0x0;return d&&!c&&b['push']({'example':a['example_name'],'source_file':a['relative_path'],'line':0x0,'machine_name':'(file-level)','category':'runtime','severity':'high','title':'Progress\x20operations\x20present\x20but\x20no\x20`publish:\x20true`\x20step','detail':'Example\x20has\x20'+a['progress_ops']['length']+'\x20progress\x20operations\x20but\x20no\x20machine\x20operation\x20with\x20publish=true.\x20Progress::new\x20will\x20fail\x20at\x20runtime\x20(machine\x20not\x20published).','rule_id':'R-M4-01','fix':'Add\x20a\x20publish\x20step\x20(or\x20set\x20data.publish=true\x20on\x20the\x20machine\x20creation\x20operation).'}),b;}export function analyzeRiskRuleCoverage(a){const b=new Map();let c=0x0;const d=[...analyzeSchemaConsistency(a),...analyzeThresholdIssues(a),...analyzeNetworkSafety(a),...analyzeConfirmationBypass(a),...analyzeGuardReferences(a),...analyzeRoundTrip(a),...analyzeProgressOps(a),...analyzePublishStep(a)];for(const e of d){e['rule_id']&&(b['set'](e['rule_id'],(b['get'](e['rule_id'])??0x0)+0x1),c++);}return{'ruleCounts':b,'totalFindings':c};}export function scanAllExamples(a=EXAMPLES_DIR){const b=loadAllExamples(a),c=new Map(),d=new Map(),e=new Map(),g=new Map();let h=0x0;for(const i of b){const j=[];j['push'](...analyzeSchemaConsistency(i)),j['push'](...analyzeThresholdIssues(i)),j['push'](...analyzeNetworkSafety(i)),j['push'](...analyzeConfirmationBypass(i)),j['push'](...analyzeGuardReferences(i));const k=analyzeCrossMachineDeps(i);j['push'](...k['findings']),j['push'](...analyzeRoundTrip(i)),j['push'](...analyzeProgressOps(i)),j['push'](...analyzePublishStep(i)),c['set'](i['relative_path'],j);for(const l of j){const m=d['get'](l['category'])??[];m['push'](l),d['set'](l['category'],m);const n=e['get'](l['severity'])??[];n['push'](l),e['set'](l['severity'],n),l['rule_id']&&g['set'](l['rule_id'],(g['get'](l['rule_id'])??0x0)+0x1),h++;}}return{'examples':b,'findings_by_example':c,'findings_by_category':d,'findings_by_severity':e,'total_findings':h,'risk_rule_coverage':g};}export function formatScanReport(a){const b=[];b['push']('#\x20Examples\x20Scan\x20Report\x20—\x20d:\x5cwowok\x5cdocs\x5cexamples'),b['push'](''),b['push']('>\x20Auto-generated\x20by\x20`examples-scanner.ts`\x20—\x20comprehensive\x20scan\x20of\x20all'),b['push']('>\x20machine/progress\x20JSON\x20in\x205\x20example\x20directories\x20for\x20design\x20and\x20runtime\x20problems.'),b['push'](''),b['push']('##\x20Summary'),b['push'](''),b['push']('-\x20**Examples\x20scanned**:\x20'+a['examples']['length']),b['push']('-\x20**Total\x20findings**:\x20'+a['total_findings']),b['push'](''),b['push']('###\x20Findings\x20by\x20Severity'),b['push'](''),b['push']('|\x20Severity\x20|\x20Count\x20|'),b['push']('|----------|-------|');const c=['critical','high','medium','low','info'];for(const j of c){const k=a['findings_by_severity']['get'](j)?.['length']??0x0;b['push']('|\x20'+j+'\x20|\x20'+k+'\x20|');}b['push'](''),b['push']('###\x20Findings\x20by\x20Category'),b['push'](''),b['push']('|\x20Category\x20|\x20Count\x20|'),b['push']('|----------|-------|');const d=['schema_consistency','design','runtime','cross_machine','round_trip','progress','risk_rule'];for(const l of d){const m=a['findings_by_category']['get'](l)?.['length']??0x0;b['push']('|\x20'+l+'\x20|\x20'+m+'\x20|');}b['push'](''),b['push']('###\x20Risk\x20Rule\x20Coverage\x20(which\x20rules\x20fired\x20across\x20examples)'),b['push'](''),b['push']('|\x20Rule\x20ID\x20|\x20Total\x20Hits\x20|'),b['push']('|---------|-----------|');const e=[...a['risk_rule_coverage']['entries']()]['sort']((n,o)=>n[0x0]['localeCompare'](o[0x0]));for(const [n,o]of e){b['push']('|\x20'+n+'\x20|\x20'+o+'\x20|');}b['push'](''),b['push']('##\x20Per-Example\x20Findings'),b['push']('');for(const p of a['examples']){const q=a['findings_by_example']['get'](p['relative_path'])??[];b['push']('###\x20'+p['example_name']+'\x20—\x20`'+p['relative_path']+'`'),b['push'](''),b['push']('-\x20**Source**:\x20`'+p['relative_path']+'`'),b['push']('-\x20**Machine\x20operations**:\x20'+p['machine_ops']['length']),b['push']('-\x20**Progress\x20operations**:\x20'+p['progress_ops']['length']),b['push']('-\x20**Defined\x20guards**:\x20'+p['defined_guard_names']['size']);p['business_description']&&b['push']('-\x20**Business\x20description**:\x20'+p['business_description']);b['push']('-\x20**Findings**:\x20'+q['length']),b['push']('');if(q['length']===0x0){b['push']('✅\x20No\x20issues\x20detected.'),b['push']('');continue;}const r=new Map();for(const s of q){const t=r['get'](s['severity'])??[];t['push'](s),r['set'](s['severity'],t);}for(const u of c){const v=r['get'](u)??[];if(v['length']===0x0)continue;b['push']('####\x20'+u['toUpperCase']()+'\x20('+v['length']+')'),b['push']('');for(const w of v){b['push']('-\x20**['+(w['rule_id']??'--')+']\x20'+w['title']+'**\x20(line\x20'+w['line']+')'),b['push']('\x20\x20-\x20'+w['detail']),w['fix']&&b['push']('\x20\x20-\x20**Fix**:\x20'+w['fix']),b['push']('');}}}b['push']('##\x20Cross-Cutting\x20Patterns'),b['push']('');const g=a['findings_by_category']['get']('schema_consistency')??[];g['length']===0x0&&(b['push']('###\x20Schema\x20Consistency\x20—\x20No\x20Issues\x20(camelCase\x20is\x20canonical)'),b['push'](''),b['push']('The\x20previous\x20SCHEMA-001/002/003/004\x20rules\x20have\x20been\x20REMOVED\x20(2026-07-19).'),b['push'](''),b['push']('**Reason**:\x20Verification\x20against\x20MCP\x20schema\x20(`d:\x5cwowok\x5cagent\x5cmcp\x5csrc`)\x20confirmed\x20that:'),b['push']('-\x20`MachineForwardSchema`\x20accepts\x20`namedOperator`,\x20`permissionIndex`\x20(camelCase)'),b['push']('-\x20`MachineForwardGuardSchema`\x20is\x20an\x20OBJECT\x20`{\x20guard:\x20string,\x20retained_submission?:\x20number[]\x20}`\x20(NOT\x20a\x20flat\x20string)'),b['push']('-\x20`NamedObjectSchema`\x20accepts\x20`replaceExistName`,\x20`onChain`\x20(camelCase)'),b['push'](''),b['push']('Source\x20examples\x20using\x20camelCase\x20are\x20therefore\x20CORRECT\x20per\x20MCP\x20schema\x20—\x20the\x20previous\x20rules\x20were\x20false\x20positives.'),b['push'](''));const h=(a['findings_by_category']['get']('design')??[])['filter'](x=>x['rule_id']==='R-M3-09');if(h['length']>0x0){b['push']('###\x20Threshold=0\x20on\x20Multi-Forward\x20Entry\x20Pairs\x20(R-M3-09)'),b['push'](''),b['push']('Found\x20'+h['length']+'\x20multi-Forward\x20entry\x20pairs\x20with\x20threshold=0\x20across\x20examples.'),b['push'](''),b['push']('**Detection\x20logic**\x20(refined\x202026-07-19):'),b['push']('-\x20Single-Forward\x20Pair\x20with\x20threshold=0\x20→\x20**NOT\x20flagged**\x20(legitimate:\x20single\x20execution\x20triggers\x20migration\x20regardless\x20of\x20threshold)'),b['push']('-\x20Competing-OR\x20Pairs\x20(multiple\x20Pairs\x20share\x20prev_node=\x22\x22)\x20with\x20threshold=0\x20→\x20**NOT\x20flagged**\x20(legitimate\x20OR\x20semantics)'),b['push']('-\x20Multi-Forward\x20Pair\x20with\x20threshold=0\x20AND\x20no\x20competing\x20siblings\x20→\x20**FLAGGED**\x20(potential\x20permission\x20bypass:\x20any\x20single\x20Forward\x20fires\x20→\x20migration)'),b['push']('');const x=[...new Set(h['map'](y=>y['source_file']))];b['push']('**Affected\x20source\x20files**:\x20'+x['map'](y=>'`'+y+'`')['join'](',\x20')+'.'),b['push'](''),b['push']('**Fix**:\x20Set\x20threshold=1\x20(or\x20higher)\x20if\x20Forwards\x20represent\x20AND\x20semantics;\x20keep\x20threshold=0\x20only\x20if\x20OR\x20semantics\x20is\x20intended\x20(then\x20consider\x20splitting\x20into\x20competing\x20Pairs).'),b['push']('');}else b['push']('###\x20Threshold=0\x20on\x20Entry\x20Pairs\x20—\x20No\x20Issues'),b['push'](''),b['push']('All\x20entry\x20pairs\x20with\x20threshold=0\x20fall\x20into\x20legitimate\x20categories\x20(single-Forward\x20or\x20competing-OR).'),b['push']('');const i=(a['findings_by_category']['get']('runtime')??[])['filter'](y=>y['rule_id']==='R-M4-02');return i['length']>0x0&&(b['push']('###\x20Direct\x20Mainnet\x20Publish\x20(R-M4-02)'),b['push'](''),b['push']('Found\x20'+i['length']+'\x20examples\x20publishing\x20directly\x20to\x20mainnet\x20without\x20testnet\x20test.'),b['push'](''),b['push']('**Affected\x20examples**:\x20MyShop,\x20MyShop_Advanced.'),b['push'](''),b['push']('**Fix**:\x20Add\x20a\x20testnet\x20publish\x20step\x20before\x20mainnet,\x20or\x20change\x20the\x20network\x20to\x20testnet\x20for\x20examples.'),b['push']('')),b['push']('##\x20Recommendations\x20for\x20Linter\x20&\x20Cognition\x20Closure'),b['push'](''),b['push']('Based\x20on\x20the\x20findings,\x20the\x20following\x20linter\x20rules\x20and\x20cognition\x20improvements\x20are\x20recommended:'),b['push'](''),b['push']('1.\x20**REMOVED\x20SCHEMA-001/002/003/004**\x20(2026-07-19):\x20These\x20rules\x20incorrectly\x20assumed\x20SDK\x20snake_case\x20as\x20the\x20standard.\x20MCP\x20schema\x20actually\x20accepts\x20camelCase\x20(`namedOperator`,\x20`permissionIndex`,\x20`replaceExistName`)\x20and\x20nested\x20Guard\x20object\x20form.\x20Examples\x20are\x20correct\x20as-is.'),b['push']('2.\x20**REFACTORED\x20R-M3-02\x20→\x20R-M3-09**\x20(2026-07-19,\x20then\x202026-07-20):\x20Original\x20R-M3-02\x20(threshold=0)\x20conflicted\x20with\x20machine-risk.ts\x27s\x20R-M3-02\x20(permissionIndex\x20out\x20of\x20bounds).\x20Initially\x20renamed\x20to\x20R-M3-06,\x20but\x20that\x20also\x20collided\x20with\x20machine-risk.ts\x27s\x20R-M3-06\x20(Permission\x20game\x20imbalance).\x20Final\x20rename:\x20R-M3-09.\x20Logic\x20also\x20refined:\x20single-Forward\x20and\x20competing-OR\x20threshold=0\x20cases\x20are\x20now\x20exempt.'),b['push']('3.\x20**Reinforce\x20R-M4-03**:\x20Guard\x20must\x20be\x20created\x20before\x20Machine\x20publish.\x20Examples\x20should\x20include\x20guard\x20creation\x20step\x20(operation_type=\x22guard\x22)\x20with\x20matching\x20name\x20before\x20machine\x20creation.'),b['push']('4.\x20**Add\x20lint\x20rule**\x20for\x20`confirmed:\x20true`\x20+\x20`publish:\x20true`\x20combination\x20without\x20showing\x20the\x20Phase\x201\x20confirmation\x20prompt\x20first.'),b['push']('5.\x20**IMPLEMENTED**:\x20R-M3-08\x20(permissionIndex\x20<\x201000)\x20rule\x20added\x20to\x20machine-risk.ts,\x20and\x20C-11\x20checklist\x20item\x20added\x20to\x20machine-confirm.ts\x20(2026-07-20).\x20Both\x20enforce\x20the\x20on-chain\x20USER_DEFINED_PERM_INDEX_START\x20=\x201000\x20hard\x20constraint\x20(see\x20doc\x2006\x20§4.4).'),b['push'](''),b['push']('---'),b['push'](''),b['push']('*End\x20of\x20report.*'),b['join']('\x0a');}export const EXAMPLES_SCANNER_VERSION='1.0.0';
@@ -1,18 +0,0 @@
1
- export type GlossaryCategory = "role" | "object" | "operation" | "acceptance" | "permission" | "fund";
2
- export interface GlossaryEntry {
3
- term: string;
4
- definition: string;
5
- aliases: string[];
6
- category: GlossaryCategory;
7
- }
8
- export declare const CONCEPT_GLOSSARY: GlossaryEntry[];
9
- export declare function resolveTerm(alias: string): string;
10
- export declare function lookupEntry(term: string): GlossaryEntry | undefined;
11
- export interface GlossaryDrift {
12
- alias: string;
13
- canonical: string;
14
- line?: number;
15
- }
16
- export declare function validateText(text: string): GlossaryDrift[];
17
- export declare function auditSchemaFields(obj: Record<string, unknown>): GlossaryDrift[];
18
- export declare const CONCEPT_GLOSSARY_VERSION = 1;
@@ -1 +0,0 @@
1
- import{USER_DEFINED_PERM_INDEX_START}from'./onchain-constants.js';export const CONCEPT_GLOSSARY=[{'term':'Permission','definition':'Organization-wide\x20permission\x20object.\x20indices\x200-'+(USER_DEFINED_PERM_INDEX_START-0x1)+'\x20builtin,\x20'+(USER_DEFINED_PERM_INDEX_START+'-65535\x20custom.\x20')+'Shared\x20across\x20all\x20Progress\x20instances\x20of\x20a\x20Service.\x20Use\x20for\x20internal\x20staff\x20roles.','aliases':['permission\x20object'],'category':'permission'},{'term':'NamedOperator','definition':'Per-order\x20role\x20assignment\x20inside\x20a\x20Progress.\x20Each\x20Progress\x20node\x20can\x20map\x20a\x20role\x20'+'string\x20to\x20an\x20address.\x20Use\x20for\x20external\x20collaborators\x20whose\x20identity\x20varies\x20per\x20order.','aliases':['named\x20operator','namedoperator'],'category':'permission'},{'term':'OrderHolder','definition':'The\x20order\x20holder\x20and\x20their\x20agents.\x20Represented\x20by\x20namedOperator=\x22\x22\x20(empty\x20string)\x20'+'on\x20a\x20Forward.\x20Lets\x20the\x20customer\x20operate\x20their\x20own\x20order.','aliases':['order\x20owner','orderholder','order\x20holder'],'category':'permission'},{'term':'Forward','definition':'A\x20state-transition\x20edge\x20in\x20a\x20Machine.\x20Carries\x20weight,\x20a\x20permission\x20'+'(Permission\x20index\x20/\x20NamedOperator\x20/\x20OrderHolder),\x20and\x20an\x20optional\x20Guard.\x20'+'Every\x20Forward\x20MUST\x20define\x20at\x20least\x20one\x20permission.','aliases':['transition'],'category':'operation'},{'term':'Forward\x20lock\x20(single-operator)','definition':'A\x20forward\x20can\x20only\x20be\x20accomplished\x20by\x20ONE\x20operator\x20—\x20the\x20first\x20account\x20that\x20'+'executes\x20it.\x20progress.move\x20session_accomplish_imp\x20locks\x20the\x20forward\x20to\x20that\x20'+'operator:\x20a\x20different\x20account\x20re-executing\x20the\x20same\x20accomplished\x20forward\x20aborts\x20'+'E_NOT_THE_HOLDER,\x20and\x20the\x20forward\x27s\x20weight\x20is\x20counted\x20only\x20ONCE\x20per\x20session.\x20'+'Consequence:\x20multi-operator\x20cooperation\x20(Pair\x20threshold\x20>\x201)\x20requires\x20that\x20many\x20'+'DISTINCT\x20forwards\x20in\x20the\x20same\x20Pair\x20—\x20one\x20per\x20contributing\x20operator\x20(e.g.\x20'+'threshold\x202\x20→\x20begin_a\x20+\x20begin_b,\x20each\x20weight\x201)\x20—\x20never\x20a\x20single\x20forward\x20reused\x20'+'by\x20several\x20people.','aliases':['forward\x20lock','single\x20operator\x20forward','single-operator-locked\x20forward'],'category':'operation'},{'term':'Pair','definition':'A\x20prev_node\x20→\x20next_node\x20transition\x20group\x20in\x20a\x20Machine\x20with\x20a\x20threshold.\x20'+'When\x20the\x20cumulative\x20weight\x20of\x20executed\x20Forwards\x20meets\x20the\x20threshold,\x20the\x20Pair\x20fires.','aliases':['transition\x20pair'],'category':'operation'},{'term':'Machine','definition':'Workflow\x20blueprint\x20(directed\x20graph).\x20Becomes\x20immutable\x20after\x20publish.\x20'+'A\x20Progress\x20instance\x20is\x20created\x20per\x20order\x20from\x20the\x20Machine.','aliases':['machine\x20template'],'category':'object'},{'term':'Progress','definition':'A\x20workflow\x20instance\x20bound\x20to\x20one\x20order.\x20Advances\x20via\x20Forwards;\x20'+'carries\x20retained_submission\x20values\x20for\x20Guard\x20verification.','aliases':['progress\x20instance'],'category':'object'},{'term':'Guard','definition':'Immutable\x20static\x20validation\x20rule.\x20Verifies\x20submissions\x20and\x20on-chain\x20object\x20data.\x20'+'Returns\x20boolean.\x20Cannot\x20be\x20mutated\x20after\x20creation.','aliases':['guard\x20object'],'category':'acceptance'},{'term':'Repository','definition':'Mutable\x20dynamic\x20acceptance\x20store.\x20Keyed\x20by\x20(name,\x20entity).\x20'+'Used\x20for\x20data\x20that\x20can\x20change\x20over\x20time\x20(e.g.\x20SLA\x20config,\x20review\x20records).','aliases':['repository\x20object'],'category':'acceptance'},{'term':'Acceptance','definition':'The\x20verification\x20standard\x20for\x20a\x20process\x20step.\x20Composed\x20of\x20static\x20Guard\x20+\x20'+'dynamic\x20Repository.\x20Drives\x20whether\x20a\x20Forward\x20can\x20execute.','aliases':['acceptance\x20standard'],'category':'acceptance'},{'term':'Service','definition':'A\x20merchant\x27s\x20service\x20listing.\x20References\x20Machine,\x20order_allocators,\x20arbitrations,\x20'+'compensation_fund,\x20rewards,\x20buy_guard.\x20machine\x20&\x20order_allocators\x20lock\x20after\x20publish.','aliases':['service\x20object'],'category':'object'},{'term':'Order','definition':'An\x20order\x20against\x20a\x20Service.\x20Funds\x20are\x20escrowed;\x20released\x20via\x20Progress\x20+\x20Allocation.\x20'+'Arb\x20cases\x20attach\x20to\x20orders\x20for\x20dispute\x20resolution.','aliases':['order\x20instance'],'category':'object'},{'term':'EntityOrder','definition':'Global\x20reverse\x20index\x20(system\x20object\x200xaa8,\x20wow::entity_order)\x20mapping\x20an\x20entity\x20address\x20'+'to\x20every\x20order\x20it\x20participates\x20in,\x20with\x20a\x20u8\x20role\x20bitmask\x20(0x01=owner,\x200x02=agent)\x20and\x20'+'the\x20last\x20role-update\x20time.\x20Maintained\x20synchronously\x20by\x20order.move\x20(new\x20/\x20owner_change\x20/\x20'+'agent_set).\x20Query\x20it\x20via\x20onchain_orders_of_user\x20(resolved\x20full\x20orders)\x20or\x20'+'onchain_table_item_entity_order\x20(raw\x20index).','aliases':['entity\x20order','entity->orders\x20index','orders\x20of\x20user'],'category':'object'},{'term':'Allocator','definition':'Fund\x20distribution\x20rules.\x20Priority:\x20Amount\x20→\x20Rate\x20→\x20Surplus.\x20first-Guard-wins.\x20'+'Locked\x20on\x20Service\x20publish\x20(order_allocators).','aliases':['allocation'],'category':'fund'},{'term':'Allocation','definition':'The\x20act\x20of\x20distributing\x20escrowed\x20funds\x20to\x20recipients\x20per\x20an\x20Allocator.\x20'+'Executed\x20by\x20the\x20order\x20holder\x20or\x20Permission\x20holder.','aliases':['allocation\x20act'],'category':'fund'},{'term':'Arbitration','definition':'Independent\x20arbitration\x20service\x20object.\x20Configured\x20with\x20voting_guard,\x20usage_guard,\x20'+'fee.\x20Generates\x20Arb\x20cases\x20per\x20dispute.\x20Third-party\x20preferred\x20over\x20self-built.','aliases':['arb\x20service'],'category':'object'},{'term':'Arb','definition':'A\x20single\x20dispute\x20case\x20instance\x20of\x20an\x20Arbitration.\x20Has\x20a\x20state\x20machine\x20'+'(dispute\x20→\x20confirm\x20→\x20vote\x20→\x20verdict\x20→\x20settle).','aliases':['arb\x20case'],'category':'object'},{'term':'compensation_fund','definition':'A\x20fund\x20attached\x20to\x20a\x20Service.\x20Arbitration\x20indemnity\x20is\x20drawn\x20from\x20it.\x20'+'Adequacy\x20is\x20a\x20key\x20trust\x20signal\x20for\x20customers.','aliases':['compensation\x20fund'],'category':'fund'},{'term':'buy_guard','definition':'A\x20Guard\x20attached\x20to\x20a\x20Service\x20that\x20gates\x20purchasing.\x20Validates\x20customer\x20eligibility.','aliases':['buy\x20guard'],'category':'acceptance'},{'term':'Sub-Order','definition':'A\x20child\x20order\x20in\x20a\x20cross-Machine\x20supply\x20chain.\x20Introduced\x20at\x20a\x20node\x20with\x20transparent\x20'+'suppliers;\x20verified\x20by\x20Guard\x20to\x20originate\x20from\x20one\x20of\x20the\x20declared\x20suppliers.','aliases':['suborder','sub\x20order'],'category':'object'},{'term':'Reward','definition':'Incentive\x20pool.\x20claim\x20is\x20Guard-gated.\x20guard_add\x20supports\x20Fixed\x20or\x20GuardU64Identifier\x20'+'(dynamic).\x20Used\x20for\x20marketing\x20(first-order,\x20cumulative,\x20referral).','aliases':['reward\x20pool'],'category':'fund'},{'term':'Demand','definition':'A\x20user\x27s\x20posted\x20service\x20request\x20with\x20optional\x20reward.\x20presenters\x20submit\x20proposals;\x20'+'Guard\x20filters\x20them.\x20Matches\x20Services\x20for\x20personalized\x20acquisition.','aliases':['demand\x20request'],'category':'object'},{'term':'Personal','definition':'Permanently\x20public\x20on-chain\x20identity\x20profile.\x20Social\x20links,\x20reputation\x20(likes/dislikes),\x20'+'personal\x20info\x20records.\x20CRITICAL:\x20everything\x20here\x20is\x20PUBLIC\x20forever.','aliases':['personal\x20profile'],'category':'object'},{'term':'Contact','definition':'Bridges\x20a\x20Service\x27s\x20um\x20(contact)\x20and\x20the\x20Messenger\x20ims\x20(messaging).\x20Enables\x20'+'off-chain\x20encrypted\x20communication\x20for\x20pre-order\x20negotiation\x20&\x20evidence.','aliases':['contact\x20bridge'],'category':'object'}];const ALIAS_INDEX=((()=>{const b=new Map();for(const c of CONCEPT_GLOSSARY){b['set'](c['term']['toLowerCase'](),c['term']);for(const d of c['aliases'])b['set'](d['toLowerCase'](),c['term']);}return b;})());export function resolveTerm(a){if(!a)return a;return ALIAS_INDEX['get'](a['toLowerCase']())??a;}export function lookupEntry(a){const b=a['toLowerCase']();return CONCEPT_GLOSSARY['find'](c=>c['term']['toLowerCase']()===b||c['aliases']['some'](d=>d['toLowerCase']()===b));}export function validateText(b){const c=[];if(!b)return c;const d=b['toLowerCase']();for(const e of CONCEPT_GLOSSARY){for(const f of e['aliases']){const g=f['toLowerCase']();if(e['term']['toLowerCase']()===g)continue;d['includes'](g)&&c['push']({'alias':f,'canonical':e['term']});}}return c;}export function auditSchemaFields(a){const b=[];for(const c of Object['keys'](a)){const d=ALIAS_INDEX['get'](c['toLowerCase']());d&&d!==c&&b['push']({'alias':c,'canonical':d});}return b;}export const CONCEPT_GLOSSARY_VERSION=0x1;
@@ -1,82 +0,0 @@
1
- export declare const GUARD_BYTECODE_SPEC_VERSION = "1.0.0";
2
- export declare const VALUE_TYPE_BYTES: {
3
- readonly TYPE_BOOL: 0;
4
- readonly TYPE_ADDRESS: 1;
5
- readonly TYPE_STRING: 2;
6
- readonly TYPE_U8: 3;
7
- readonly TYPE_U16: 4;
8
- readonly TYPE_U32: 5;
9
- readonly TYPE_U64: 6;
10
- readonly TYPE_U128: 7;
11
- readonly TYPE_U256: 8;
12
- readonly TYPE_VEC_BOOL: 9;
13
- readonly TYPE_VEC_ADDRESS: 10;
14
- readonly TYPE_VEC_STRING: 11;
15
- readonly TYPE_VEC_U8: 12;
16
- readonly TYPE_VEC_U16: 13;
17
- readonly TYPE_VEC_U32: 14;
18
- readonly TYPE_VEC_U64: 15;
19
- readonly TYPE_VEC_U128: 16;
20
- readonly TYPE_VEC_U256: 17;
21
- readonly TYPE_VEC_VEC_U8: 18;
22
- readonly TYPE_VALUE: 19;
23
- };
24
- export type ValueTypeName = keyof typeof VALUE_TYPE_BYTES;
25
- export declare function isValueTypeByte(t: number): boolean;
26
- export declare function isNumberTypeByte(t: number): boolean;
27
- export interface OpcodeSpec {
28
- byte: number;
29
- name: string;
30
- operands: string;
31
- stack: string;
32
- note?: string;
33
- }
34
- export declare const OPCODE_SPECS: readonly OpcodeSpec[];
35
- export declare function opcodeByByte(byte: number): OpcodeSpec | undefined;
36
- export declare function opcodeByName(name: string): OpcodeSpec | undefined;
37
- export declare const COMMON_MOVE_MISALIGNED: ReadonlyArray<{
38
- series: string;
39
- common_move: string;
40
- native_truth: string;
41
- }>;
42
- export interface QuerySpec {
43
- id: number;
44
- name: string;
45
- object: string;
46
- return_type: string;
47
- params: string[];
48
- unreachable?: boolean;
49
- defect?: "declared_type_mismatch" | "name_typo";
50
- note?: string;
51
- }
52
- export declare const QUERY_REGISTRY: readonly QuerySpec[];
53
- export declare function getQueryById(id: number): QuerySpec | undefined;
54
- export declare function queriesByObject(object: string): QuerySpec[];
55
- export declare function queryByName(name: string): QuerySpec | undefined;
56
- export interface QueryBand {
57
- from: number;
58
- to: number;
59
- object: string;
60
- count: number;
61
- }
62
- export declare const QUERY_BANDS: readonly QueryBand[];
63
- export declare const SERIALIZATION: {
64
- readonly operand_order: "reverse-logical";
65
- readonly op_code_position: "after-operands";
66
- readonly count_byte: "after-op_code (multi-operand ops)";
67
- readonly query_param_position: "after-op_byte (subcode/identifier/query_id)";
68
- readonly u16_endian: "little (BCS)";
69
- readonly final_stack: "exactly one Bool (or TYPE_VALUE)";
70
- };
71
- export declare const GUARD_LIMITS: {
72
- readonly MAX_INPUT_SIZE: 1024;
73
- readonly MAX_TABLE_SIZE: 40000;
74
- readonly MAX_DEPENDED_COUNT: 4;
75
- readonly MAX_TABLE_ENTRIES: 255;
76
- readonly MAX_NUMBER_OPERANDS: 8;
77
- readonly MAX_LOGIC_OPERANDS: 8;
78
- readonly MAX_STRING_OPERANDS: 6;
79
- readonly MAX_NESTING_DEPTH: 8;
80
- readonly PASSPORT_MAX_GUARD_COUNT: 20;
81
- readonly PASSPORT_MAX_SUBMISSION_SIZE: 256;
82
- };