wowok_agent 1.2.35 → 1.2.38

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 (98) hide show
  1. package/dist/call/arbitration.d.ts +69 -0
  2. package/dist/call/arbitration.d.ts.map +1 -0
  3. package/dist/call/arbitration.js +186 -0
  4. package/dist/call/arbitration.js.map +1 -0
  5. package/dist/call/base.d.ts +35 -0
  6. package/dist/call/base.d.ts.map +1 -0
  7. package/dist/call/base.js +148 -0
  8. package/dist/call/base.js.map +1 -0
  9. package/dist/call/call.d.ts +84 -0
  10. package/dist/call/call.d.ts.map +1 -0
  11. package/dist/call/call.js +153 -0
  12. package/dist/call/call.js.map +1 -0
  13. package/dist/call/demand.d.ts +55 -0
  14. package/dist/call/demand.d.ts.map +1 -0
  15. package/dist/call/demand.js +135 -0
  16. package/dist/call/demand.js.map +1 -0
  17. package/dist/call/guard.d.ts +42 -0
  18. package/dist/call/guard.d.ts.map +1 -0
  19. package/dist/call/guard.js +253 -0
  20. package/dist/call/guard.js.map +1 -0
  21. package/dist/call/machine.d.ts +109 -0
  22. package/dist/call/machine.d.ts.map +1 -0
  23. package/dist/call/machine.js +213 -0
  24. package/dist/call/machine.js.map +1 -0
  25. package/dist/call/object_permission.d.ts +13 -0
  26. package/dist/call/object_permission.d.ts.map +1 -0
  27. package/dist/call/object_permission.js +49 -0
  28. package/dist/call/object_permission.js.map +1 -0
  29. package/dist/call/permission.d.ts +49 -0
  30. package/dist/call/permission.d.ts.map +1 -0
  31. package/dist/call/permission.js +98 -0
  32. package/dist/call/permission.js.map +1 -0
  33. package/dist/call/personal.d.ts +42 -0
  34. package/dist/call/personal.d.ts.map +1 -0
  35. package/dist/call/personal.js +61 -0
  36. package/dist/call/personal.js.map +1 -0
  37. package/dist/call/repository.d.ts +52 -0
  38. package/dist/call/repository.d.ts.map +1 -0
  39. package/dist/call/repository.js +125 -0
  40. package/dist/call/repository.js.map +1 -0
  41. package/dist/call/service.d.ts +134 -0
  42. package/dist/call/service.d.ts.map +1 -0
  43. package/dist/call/service.js +340 -0
  44. package/dist/call/service.js.map +1 -0
  45. package/dist/call/treasury.d.ts +53 -0
  46. package/dist/call/treasury.d.ts.map +1 -0
  47. package/dist/call/treasury.js +161 -0
  48. package/dist/call/treasury.js.map +1 -0
  49. package/dist/common.d.ts +2 -0
  50. package/dist/common.d.ts.map +1 -0
  51. package/dist/common.js +4 -0
  52. package/dist/common.js.map +1 -0
  53. package/dist/index.d.ts +21 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +21 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/local/account.d.ts +24 -0
  58. package/dist/local/account.d.ts.map +1 -0
  59. package/dist/local/account.js +188 -0
  60. package/dist/local/account.js.map +1 -0
  61. package/dist/local/cache.d.ts +32 -0
  62. package/dist/local/cache.d.ts.map +1 -0
  63. package/dist/local/cache.js +71 -0
  64. package/dist/local/cache.js.map +1 -0
  65. package/dist/local/index.d.ts +69 -0
  66. package/dist/local/index.d.ts.map +1 -0
  67. package/dist/local/index.js +94 -0
  68. package/dist/local/index.js.map +1 -0
  69. package/dist/local/local.d.ts +53 -0
  70. package/dist/local/local.d.ts.map +1 -0
  71. package/dist/local/local.js +211 -0
  72. package/dist/local/local.js.map +1 -0
  73. package/dist/query/events.d.ts +63 -0
  74. package/dist/query/events.d.ts.map +1 -0
  75. package/dist/query/events.js +78 -0
  76. package/dist/query/events.js.map +1 -0
  77. package/dist/query/objects.d.ts +323 -0
  78. package/dist/query/objects.d.ts.map +1 -0
  79. package/dist/query/objects.js +445 -0
  80. package/dist/query/objects.js.map +1 -0
  81. package/dist/query/permission.d.ts +12 -0
  82. package/dist/query/permission.d.ts.map +1 -0
  83. package/dist/query/permission.js +41 -0
  84. package/dist/query/permission.js.map +1 -0
  85. package/package.json +1 -1
  86. package/src/call/arbitration.ts +1 -1
  87. package/src/call/base.ts +1 -1
  88. package/src/call/call.ts +1 -2
  89. package/src/call/demand.ts +1 -1
  90. package/src/call/object_permission.ts +1 -1
  91. package/src/call/service.ts +1 -1
  92. package/src/call/treasury.ts +2 -2
  93. package/src/index.ts +2 -0
  94. package/src/local/account.ts +19 -1
  95. package/src/local/index.ts +140 -0
  96. package/src/local/local.ts +38 -9
  97. package/src/query/objects.ts +8 -7
  98. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,211 @@
1
+ /**
2
+ * manage object's name and tags locally
3
+ */
4
+ import path from "path";
5
+ import os from "os";
6
+ import { Level } from "level";
7
+ import { isBrowser } from "../common.js";
8
+ import { IsValidAddress, TagName } from "wowok";
9
+ import { Account } from "./account.js";
10
+ export const LocalMarkLocation = 'wowok-mark';
11
+ export const LocalInfoLocation = 'wowok-info';
12
+ export const LocalMarkNameMaxLength = 32;
13
+ export const LocalInfoNameDefault = 'Address of delivery';
14
+ export class LocalMark {
15
+ constructor() {
16
+ var location = LocalMarkLocation;
17
+ if (!isBrowser()) {
18
+ location = path.join(path.join(os.homedir(), '.wowok'), LocalMarkLocation);
19
+ }
20
+ this.storage = new Level(location, { valueEncoding: 'json' });
21
+ }
22
+ static Instance() {
23
+ if (!LocalMark._instance) {
24
+ LocalMark._instance = new LocalMark();
25
+ }
26
+ ;
27
+ return LocalMark._instance;
28
+ }
29
+ // useAddressIfNameExist true: use address as the name if the name exist;
30
+ // otherwise, use this name and change the original name to its address.
31
+ async put(name, mark, useAddressIfNameExist) {
32
+ // object address invalid
33
+ if (!IsValidAddress(mark.object) && mark.object !== '0x2' && mark.object !== '0x6') {
34
+ return false;
35
+ }
36
+ ;
37
+ // use address as name if name is undefined or null
38
+ if (name === undefined || name === null) {
39
+ this.storage.put(mark.object, JSON.stringify(mark));
40
+ return true;
41
+ }
42
+ if (name.length > LocalMarkNameMaxLength) {
43
+ name = name.substring(0, LocalMarkNameMaxLength);
44
+ }
45
+ ;
46
+ const r = await this.storage.get(name);
47
+ if (r) {
48
+ if (useAddressIfNameExist) {
49
+ this.storage.put(mark.object, JSON.stringify(mark));
50
+ return true;
51
+ }
52
+ else {
53
+ const obj = JSON.parse(r);
54
+ await this.storage.put(obj.object, r);
55
+ }
56
+ }
57
+ await this.storage.put(name, JSON.stringify(mark));
58
+ return true;
59
+ }
60
+ async get(name) {
61
+ const r = await this.storage.get(name);
62
+ if (r) {
63
+ return JSON.parse(r);
64
+ }
65
+ }
66
+ // get account address:
67
+ // 1. if name_or_address is undefined, return default account address.
68
+ // 2. if name_or_address is address, return it.
69
+ // 3. if name_or_address is name, return the address of the name.
70
+ // 4. if not found and genNewIfNotFound is true, generate a new address and save it with name_or_address.
71
+ async get_account(name_or_address, genNewIfNotFound = false) {
72
+ if (name_or_address === undefined) {
73
+ return Account.Instance().default(genNewIfNotFound);
74
+ }
75
+ else {
76
+ const r = await this.get(name_or_address);
77
+ if (r) {
78
+ return r.object;
79
+ }
80
+ else {
81
+ if (IsValidAddress(name_or_address)) {
82
+ return name_or_address;
83
+ }
84
+ if (genNewIfNotFound) {
85
+ const addr = await Account.Instance().gen(false);
86
+ await this.put(name_or_address, { object: addr, tags: [TagName.Account] });
87
+ }
88
+ }
89
+ }
90
+ }
91
+ async del(name) {
92
+ return await this.storage.del(name);
93
+ }
94
+ async clear() {
95
+ return await this.storage.clear();
96
+ }
97
+ async rename(name, new_name) {
98
+ if (new_name.length > LocalMarkNameMaxLength) {
99
+ new_name = new_name.substring(0, LocalMarkNameMaxLength);
100
+ }
101
+ ;
102
+ const r = await this.storage.getMany([name, new_name]);
103
+ if (r[0] && !r[1]) {
104
+ await this.storage.put(new_name, r[0]);
105
+ await this.storage.del(name);
106
+ return true;
107
+ }
108
+ return false;
109
+ }
110
+ async swap_name(name1, name2) {
111
+ const r = await this.storage.getMany([name1, name2]);
112
+ if (r[0] && r[1]) {
113
+ await this.storage.put(name1, r[1]);
114
+ await this.storage.put(name2, r[0]);
115
+ return true;
116
+ }
117
+ return false;
118
+ }
119
+ async set_tags(name, tags) {
120
+ const r = await this.storage.get(name);
121
+ if (r) {
122
+ const obj = JSON.parse(r);
123
+ obj.tags = tags;
124
+ await this.storage.put(name, JSON.stringify(obj));
125
+ return true;
126
+ }
127
+ return false;
128
+ }
129
+ async list(filter) {
130
+ return (await this.storage.iterator().all()).filter(v => {
131
+ const obj = JSON.parse(v[1]);
132
+ if (filter?.name && v[0] !== filter.name)
133
+ return false;
134
+ if (filter?.object && obj.object !== filter.object)
135
+ return false;
136
+ if (filter?.tags && obj.tags) {
137
+ for (let i = 0; i < filter.tags.length; ++i) {
138
+ if (!obj.tags.includes(filter.tags[i]))
139
+ return false;
140
+ }
141
+ }
142
+ return true;
143
+ }).map(v => { return { name: v[0], data: v[1] }; });
144
+ }
145
+ }
146
+ ;
147
+ export class LocalInfo {
148
+ constructor() {
149
+ var location = LocalInfoLocation;
150
+ if (!isBrowser()) {
151
+ location = path.join(path.join(os.homedir(), '.wowok'), LocalInfoLocation);
152
+ }
153
+ this.storage = new Level(location, { valueEncoding: 'json' });
154
+ }
155
+ static Instance() {
156
+ if (!LocalInfo._instance) {
157
+ LocalInfo._instance = new LocalInfo();
158
+ }
159
+ ;
160
+ return LocalInfo._instance;
161
+ }
162
+ async put(name = LocalInfoNameDefault, content, bDefault = true) {
163
+ const r = await this.storage.get(name);
164
+ if (r) {
165
+ const obj = JSON.parse(r);
166
+ obj.others = obj.others ? [...obj.others, content] : [content];
167
+ if (bDefault) {
168
+ obj.default = content;
169
+ }
170
+ await this.storage.put(name, JSON.stringify(obj));
171
+ }
172
+ else {
173
+ const obj = { default: content, others: [content] };
174
+ await this.storage.put(name, JSON.stringify(obj));
175
+ }
176
+ }
177
+ async get(name = LocalInfoNameDefault) {
178
+ const r = await this.storage.get(name);
179
+ if (r) {
180
+ return JSON.parse(r);
181
+ }
182
+ }
183
+ async get_default(name = LocalInfoNameDefault) {
184
+ const r = await this.storage.get(name);
185
+ if (r) {
186
+ return JSON.parse(r).default;
187
+ }
188
+ }
189
+ async del(name = LocalInfoNameDefault) {
190
+ await this.storage.del(name);
191
+ }
192
+ async del_content(name = LocalInfoNameDefault, index) {
193
+ const r = await this.storage.get(name);
194
+ if (r) {
195
+ const obj = JSON.parse(r);
196
+ if (obj.others && index < obj.others.length) {
197
+ obj.others.splice(index, 1);
198
+ await this.storage.put(name, JSON.stringify(obj));
199
+ return true;
200
+ }
201
+ }
202
+ return false;
203
+ }
204
+ async clear() {
205
+ return await this.storage.clear();
206
+ }
207
+ async list() {
208
+ return (await this.storage.iterator().all()).map(v => { return { name: v[0], data: v[1] }; });
209
+ }
210
+ }
211
+ //# sourceMappingURL=local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/local/local.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAkBvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAC1D,MAAM,OAAO,SAAS;IAIlB;QACI,IAAI,QAAQ,GAAG,iBAAiB,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QACxC,CAAC;QAAA,CAAC;QAAC,OAAO,SAAS,CAAC,SAAS,CAAA;IACjC,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,KAAK,CAAC,GAAG,CAAC,IAA8B,EAAE,IAAa,EAAE,qBAA8B;QACrF,yBAAyB;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACnF,OAAO,KAAK,CAAC;QACf,CAAC;QAAA,CAAC;QAEF,mDAAmD;QACnD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YACzC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QACnD,CAAC;QAAA,CAAC;QAEF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACN,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;gBACtC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,sEAAsE;IACtE,+CAA+C;IAC/C,iEAAiE;IACjE,yGAAyG;IACzG,KAAK,CAAC,WAAW,CAAC,eAAwB,EAAE,mBAAyB,KAAK;QACxE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC;gBACN,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;oBACpC,OAAO,eAAe,CAAC;gBACzB,CAAC;gBAED,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAW;QACnB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAW,EAAE,QAAe;QACvC,IAAI,QAAQ,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YAC7C,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QAAA,CAAC;QAEF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAY,EAAE,KAAY;QACxC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAW,EAAE,IAAyB;QACnD,MAAM,CAAC,GAAI,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;YACtC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAwB;QACjC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;YACzC,IAAI,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC;YACvD,IAAI,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YACjE,IAAI,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAG,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;gBACvD,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAE,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAA,CAAA,CAAC,CAAC,CAAC;IAC/C,CAAC;CACJ;AAKA,CAAC;AAEF,MAAM,OAAO,SAAS;IAIpB;QACI,IAAI,QAAQ,GAAG,iBAAiB,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QACxC,CAAC;QAAA,CAAC;QAAC,OAAO,SAAS,CAAC,SAAS,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAc,oBAAoB,EAAE,OAAc,EAAE,WAAiB,IAAI;QACjF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAG,CAAC;YACP,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;YACtC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAE/D,IAAI,QAAQ,EAAE,CAAC;gBACb,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAc,EAAC,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,OAAO,CAAC,EAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAe,oBAAoB;QAC3C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,oBAAoB;QACnD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACJ,OAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAc,CAAC,OAAO,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAc,oBAAoB;QAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAc,oBAAoB,EAAE,KAAY;QAChE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACJ,MAAM,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;YACvC,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC;YACd,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAE,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAA,CAAA,CAAC,CAAC,CAAC;IACzF,CAAC;CACF"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Provide AI with Basic WoWok event queries:
3
+ * for real-time detail tracking.
4
+ */
5
+ export interface EventBase {
6
+ id: {
7
+ eventSeq: string;
8
+ txDigest: string;
9
+ };
10
+ sender: string;
11
+ type: string | 'NewArbEvent' | 'NewOrderEvent' | 'NewProgressEvent' | 'PresentServiceEvent';
12
+ type_raw: string;
13
+ time: string;
14
+ }
15
+ export interface NewArbEvent extends EventBase {
16
+ arb: string;
17
+ arbitration: string;
18
+ order: string;
19
+ }
20
+ export interface NewOrderEvent extends EventBase {
21
+ order: string;
22
+ service: string;
23
+ progress?: string | null;
24
+ amount: string;
25
+ }
26
+ export interface NewProgressEvent extends EventBase {
27
+ progress: string;
28
+ machine: string;
29
+ task?: string | null;
30
+ }
31
+ export interface PresentServiceEvent extends EventBase {
32
+ demand: string;
33
+ service: string;
34
+ recommendation: string;
35
+ }
36
+ export interface NewEntityEvent extends EventBase {
37
+ resource: string;
38
+ address: string;
39
+ }
40
+ export interface EventAnswer {
41
+ data: EventBase[];
42
+ hasNextPage: boolean;
43
+ nextCursor?: {
44
+ eventSeq: string;
45
+ txDigest: string;
46
+ } | null;
47
+ }
48
+ export interface EventCursor {
49
+ eventSeq: string;
50
+ txDigest: string;
51
+ }
52
+ export interface EventQuery {
53
+ type: 'OnNewArb' | 'OnPresentService' | 'OnNewProgress' | 'OnNewOrder';
54
+ /** optional paging cursor */
55
+ cursor?: EventCursor | null | undefined;
56
+ /** maximum number of items per page, default to [QUERY_MAX_RESULT_LIMIT] if not specified. */
57
+ limit?: number | null | undefined;
58
+ /** query result ordering, default to false (ascending order), oldest record first. */
59
+ order?: 'ascending' | 'descending' | null | undefined;
60
+ }
61
+ export declare const query_events_json: (json: string) => Promise<string>;
62
+ export declare const query_events: (query: EventQuery) => Promise<EventAnswer | undefined>;
63
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/query/events.ts"],"names":[],"mappings":"AACA;;;GAGG;AAIH,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,eAAe,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;IAC5F,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;CAC5D;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAA;CACnB;AACD,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,eAAe,GAAG,YAAY,CAAC;IACvE,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,sFAAsF;IACtF,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;CACzD;AAED,eAAO,MAAM,iBAAiB,GAAU,MAAK,MAAM,KAAI,OAAO,CAAC,MAAM,CAOpE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,KAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAWhF,CAAA"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Provide AI with Basic WoWok event queries:
3
+ * for real-time detail tracking.
4
+ */
5
+ import { Protocol } from 'wowok';
6
+ export const query_events_json = async (json) => {
7
+ try {
8
+ const q = JSON.parse(json);
9
+ return JSON.stringify({ data: await query_events(q) });
10
+ }
11
+ catch (e) {
12
+ return JSON.stringify({ error: e?.toString() });
13
+ }
14
+ };
15
+ export const query_events = (query) => {
16
+ switch (query.type) {
17
+ case 'OnNewArb':
18
+ return newArbEvents(query.cursor, query.limit, query.order);
19
+ case 'OnNewProgress':
20
+ return newProgressEvents(query.cursor, query.limit, query.order);
21
+ case 'OnPresentService':
22
+ return presentServiceEvents(query.cursor, query.limit, query.order);
23
+ case 'OnNewOrder':
24
+ return newOrderEvents(query.cursor, query.limit, query.order);
25
+ }
26
+ };
27
+ const newArbEvents = async (cursor, limit, order) => {
28
+ return await events(Protocol.Instance().package('wowok') + '::arb::NewArbEvent', cursor, limit, order);
29
+ };
30
+ const presentServiceEvents = async (cursor, limit, order) => {
31
+ return await events(Protocol.Instance().package('wowok') + '::demand::PresentEvent', cursor, limit, order);
32
+ };
33
+ const newProgressEvents = async (cursor, limit, order) => {
34
+ return await events(Protocol.Instance().package('wowok') + '::progress::NewProgressEvent', cursor, limit, order);
35
+ };
36
+ const newOrderEvents = async (cursor, limit, order) => {
37
+ return await events(Protocol.Instance().package('wowok') + '::order::NewOrderEvent', cursor, limit, order);
38
+ };
39
+ const events = async (type, cursor, limit, order) => {
40
+ const res = await Protocol.Client().queryEvents({ query: { MoveEventType: type }, cursor: cursor, limit: limit, order: order });
41
+ const data = res?.data?.map((v) => {
42
+ if (v?.packageId === Protocol.Instance().package('wowok')) {
43
+ if (v?.type?.includes('::order::NewOrderEvent')) {
44
+ return {
45
+ id: v?.id, time: v?.timestampMs, type_raw: v?.type, sender: v?.sender, type: 'NewOrderEvent',
46
+ order: v?.parsedJson?.object, service: v?.parsedJson?.service, progress: v?.parsedJson?.progress, amount: v?.parsedJson?.amount
47
+ };
48
+ }
49
+ else if (v?.type?.includes('::demand::PresentEvent')) {
50
+ return {
51
+ id: v?.id, time: v?.timestampMs, type_raw: v?.type, sender: v?.sender, type: 'NewOrderEvent',
52
+ demand: v?.parsedJson?.object, service: v?.parsedJson?.service, recommendation: v?.parsedJson?.tips
53
+ };
54
+ }
55
+ else if (v?.type?.includes('::progress::NewProgressEvent')) {
56
+ return {
57
+ id: v?.id, time: v?.timestampMs, type_raw: v?.type, sender: v?.sender, type: 'NewOrderEvent',
58
+ progress: v?.parsedJson?.object, machine: v?.parsedJson?.machine, task: v?.parsedJson?.task
59
+ };
60
+ }
61
+ else if (v?.type?.includes('::arb::NewArbEvent')) {
62
+ return {
63
+ id: v?.id, time: v?.timestampMs, type_raw: v?.type, sender: v?.sender, type: 'NewOrderEvent',
64
+ arb: v?.parsedJson?.object, arbitration: v?.parsedJson?.arbitration, order: v?.parsedJson?.order
65
+ };
66
+ }
67
+ else if (v?.type?.includes('::entity::NewEntityEvent')) {
68
+ return {
69
+ id: v?.id, time: v?.timestampMs, type_raw: v?.type, sender: v?.sender, type: 'NewOrderEvent',
70
+ resource: v?.parsedJson?.resource?.some, address: v?.parsedJson?.target,
71
+ };
72
+ }
73
+ }
74
+ return { id: v?.id, time: v?.timestampMs, type_raw: v?.type, sender: v?.sender, type: '', };
75
+ });
76
+ return { data: data, hasNextPage: res?.hasNextPage, nextCursor: res?.nextCursor };
77
+ };
78
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/query/events.ts"],"names":[],"mappings":"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"}