@wowok/agent-mcp 2.4.3 → 2.5.1

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 (317) hide show
  1. package/dist/config/runtime.d.ts +4 -0
  2. package/dist/config/runtime.js +29 -5
  3. package/dist/harness/auto-escalation.d.ts +27 -0
  4. package/dist/harness/auto-escalation.js +68 -0
  5. package/dist/index.js +21 -0
  6. package/dist/knowledge/allocation-confirm.d.ts +115 -0
  7. package/dist/knowledge/allocation-confirm.js +534 -0
  8. package/dist/knowledge/allocation-context.d.ts +58 -0
  9. package/dist/knowledge/allocation-context.js +249 -0
  10. package/dist/knowledge/allocation-ledger.d.ts +67 -0
  11. package/dist/knowledge/allocation-ledger.js +463 -0
  12. package/dist/knowledge/allocation-puzzle.d.ts +135 -0
  13. package/dist/knowledge/allocation-puzzle.js +298 -0
  14. package/dist/knowledge/allocation-risk.d.ts +78 -0
  15. package/dist/knowledge/allocation-risk.js +568 -0
  16. package/dist/knowledge/allocation-templates.d.ts +38 -0
  17. package/dist/knowledge/allocation-templates.js +970 -0
  18. package/dist/knowledge/allocation-translation.d.ts +72 -0
  19. package/dist/knowledge/allocation-translation.js +585 -0
  20. package/dist/knowledge/arb-risk.d.ts +37 -0
  21. package/dist/knowledge/arb-risk.js +210 -0
  22. package/dist/knowledge/arbitration-confirm.d.ts +135 -0
  23. package/dist/knowledge/arbitration-confirm.js +559 -0
  24. package/dist/knowledge/arbitration-context.d.ts +81 -0
  25. package/dist/knowledge/arbitration-context.js +505 -0
  26. package/dist/knowledge/arbitration-ledger.d.ts +62 -0
  27. package/dist/knowledge/arbitration-ledger.js +521 -0
  28. package/dist/knowledge/arbitration-puzzle.d.ts +84 -0
  29. package/dist/knowledge/arbitration-puzzle.js +304 -0
  30. package/dist/knowledge/arbitration-risk.d.ts +112 -0
  31. package/dist/knowledge/arbitration-risk.js +433 -0
  32. package/dist/knowledge/arbitration-templates.d.ts +38 -0
  33. package/dist/knowledge/arbitration-templates.js +276 -0
  34. package/dist/knowledge/arbitration-translation.d.ts +91 -0
  35. package/dist/knowledge/arbitration-translation.js +487 -0
  36. package/dist/knowledge/bridge-risk.d.ts +36 -0
  37. package/dist/knowledge/bridge-risk.js +263 -0
  38. package/dist/knowledge/contact-risk.d.ts +32 -0
  39. package/dist/knowledge/contact-risk.js +200 -0
  40. package/dist/knowledge/demand-confirm.d.ts +32 -0
  41. package/dist/knowledge/demand-confirm.js +206 -0
  42. package/dist/knowledge/demand-risk.d.ts +30 -0
  43. package/dist/knowledge/demand-risk.js +240 -0
  44. package/dist/knowledge/demand-translation.d.ts +55 -0
  45. package/dist/knowledge/demand-translation.js +354 -0
  46. package/dist/knowledge/deployment-scanner.d.ts +63 -0
  47. package/dist/knowledge/deployment-scanner.js +762 -0
  48. package/dist/knowledge/examples-scanner-cli.d.ts +1 -0
  49. package/dist/knowledge/examples-scanner-cli.js +26 -0
  50. package/dist/knowledge/examples-scanner.d.ts +121 -0
  51. package/dist/knowledge/examples-scanner.js +825 -0
  52. package/dist/knowledge/flywheel-loop.d.ts +3 -0
  53. package/dist/knowledge/flywheel-loop.js +32 -3
  54. package/dist/knowledge/glossary.js +3 -1
  55. package/dist/knowledge/guard-confirm.d.ts +86 -0
  56. package/dist/knowledge/guard-confirm.js +406 -0
  57. package/dist/knowledge/guard-context.d.ts +56 -0
  58. package/dist/knowledge/guard-context.js +287 -0
  59. package/dist/knowledge/guard-design-patterns.d.ts +37 -0
  60. package/dist/knowledge/guard-design-patterns.js +257 -0
  61. package/dist/knowledge/guard-puzzle.js +3 -2
  62. package/dist/knowledge/guard-risk.d.ts +1 -1
  63. package/dist/knowledge/guard-risk.js +12 -14
  64. package/dist/knowledge/guard-templates.js +1 -1
  65. package/dist/knowledge/guard-translation.js +6 -5
  66. package/dist/knowledge/index.d.ts +342 -0
  67. package/dist/knowledge/index.js +344 -0
  68. package/dist/knowledge/machine-confirm.d.ts +102 -0
  69. package/dist/knowledge/machine-confirm.js +559 -0
  70. package/dist/knowledge/machine-context.d.ts +160 -0
  71. package/dist/knowledge/machine-context.js +812 -0
  72. package/dist/knowledge/machine-ledger.d.ts +41 -0
  73. package/dist/knowledge/machine-ledger.js +315 -0
  74. package/dist/knowledge/machine-puzzle.d.ts +206 -0
  75. package/dist/knowledge/machine-puzzle.js +494 -0
  76. package/dist/knowledge/machine-risk.d.ts +75 -0
  77. package/dist/knowledge/machine-risk.js +644 -0
  78. package/dist/knowledge/machine-templates.d.ts +92 -0
  79. package/dist/knowledge/machine-templates.js +1592 -0
  80. package/dist/knowledge/machine-topology.d.ts +57 -0
  81. package/dist/knowledge/machine-topology.js +234 -0
  82. package/dist/knowledge/machine-translation.d.ts +96 -0
  83. package/dist/knowledge/machine-translation.js +513 -0
  84. package/dist/knowledge/mcp-schema-audit-cli.d.ts +1 -0
  85. package/dist/knowledge/mcp-schema-audit-cli.js +45 -0
  86. package/dist/knowledge/mcp-schema-audit.d.ts +90 -0
  87. package/dist/knowledge/mcp-schema-audit.js +772 -0
  88. package/dist/knowledge/onchain-constants.d.ts +4 -0
  89. package/dist/knowledge/onchain-constants.js +35 -0
  90. package/dist/knowledge/order-confirm.d.ts +115 -0
  91. package/dist/knowledge/order-confirm.js +573 -0
  92. package/dist/knowledge/order-context.d.ts +66 -0
  93. package/dist/knowledge/order-context.js +390 -0
  94. package/dist/knowledge/order-ledger.d.ts +69 -0
  95. package/dist/knowledge/order-ledger.js +341 -0
  96. package/dist/knowledge/order-puzzle.d.ts +159 -0
  97. package/dist/knowledge/order-puzzle.js +255 -0
  98. package/dist/knowledge/order-risk.d.ts +66 -0
  99. package/dist/knowledge/order-risk.js +653 -0
  100. package/dist/knowledge/order-templates.d.ts +50 -0
  101. package/dist/knowledge/order-templates.js +368 -0
  102. package/dist/knowledge/order-translation.d.ts +78 -0
  103. package/dist/knowledge/order-translation.js +550 -0
  104. package/dist/knowledge/passport-confirm.d.ts +130 -0
  105. package/dist/knowledge/passport-confirm.js +531 -0
  106. package/dist/knowledge/passport-context.d.ts +59 -0
  107. package/dist/knowledge/passport-context.js +306 -0
  108. package/dist/knowledge/passport-ledger.d.ts +48 -0
  109. package/dist/knowledge/passport-ledger.js +282 -0
  110. package/dist/knowledge/passport-puzzle.d.ts +108 -0
  111. package/dist/knowledge/passport-puzzle.js +333 -0
  112. package/dist/knowledge/passport-risk.d.ts +70 -0
  113. package/dist/knowledge/passport-risk.js +450 -0
  114. package/dist/knowledge/passport-templates.d.ts +40 -0
  115. package/dist/knowledge/passport-templates.js +568 -0
  116. package/dist/knowledge/passport-translation.d.ts +68 -0
  117. package/dist/knowledge/passport-translation.js +516 -0
  118. package/dist/knowledge/payment-risk.d.ts +33 -0
  119. package/dist/knowledge/payment-risk.js +182 -0
  120. package/dist/knowledge/permission-confirm.d.ts +110 -0
  121. package/dist/knowledge/permission-confirm.js +426 -0
  122. package/dist/knowledge/permission-context.d.ts +58 -0
  123. package/dist/knowledge/permission-context.js +224 -0
  124. package/dist/knowledge/permission-ledger.d.ts +38 -0
  125. package/dist/knowledge/permission-ledger.js +403 -0
  126. package/dist/knowledge/permission-puzzle.d.ts +122 -0
  127. package/dist/knowledge/permission-puzzle.js +173 -0
  128. package/dist/knowledge/permission-risk.d.ts +76 -0
  129. package/dist/knowledge/permission-risk.js +411 -0
  130. package/dist/knowledge/permission-templates.d.ts +38 -0
  131. package/dist/knowledge/permission-templates.js +234 -0
  132. package/dist/knowledge/permission-translation.d.ts +57 -0
  133. package/dist/knowledge/permission-translation.js +350 -0
  134. package/dist/knowledge/personal-risk.d.ts +36 -0
  135. package/dist/knowledge/personal-risk.js +212 -0
  136. package/dist/knowledge/progress-confirm.d.ts +108 -0
  137. package/dist/knowledge/progress-confirm.js +456 -0
  138. package/dist/knowledge/progress-context.d.ts +123 -0
  139. package/dist/knowledge/progress-context.js +452 -0
  140. package/dist/knowledge/progress-ledger.d.ts +63 -0
  141. package/dist/knowledge/progress-ledger.js +327 -0
  142. package/dist/knowledge/progress-puzzle.d.ts +82 -0
  143. package/dist/knowledge/progress-puzzle.js +219 -0
  144. package/dist/knowledge/progress-risk.d.ts +74 -0
  145. package/dist/knowledge/progress-risk.js +461 -0
  146. package/dist/knowledge/progress-templates.d.ts +38 -0
  147. package/dist/knowledge/progress-templates.js +228 -0
  148. package/dist/knowledge/progress-translation.d.ts +52 -0
  149. package/dist/knowledge/progress-translation.js +401 -0
  150. package/dist/knowledge/proof-confirm.d.ts +31 -0
  151. package/dist/knowledge/proof-confirm.js +187 -0
  152. package/dist/knowledge/proof-risk.d.ts +33 -0
  153. package/dist/knowledge/proof-risk.js +207 -0
  154. package/dist/knowledge/proof-translation.d.ts +52 -0
  155. package/dist/knowledge/proof-translation.js +283 -0
  156. package/dist/knowledge/registrar-risk.d.ts +34 -0
  157. package/dist/knowledge/registrar-risk.js +217 -0
  158. package/dist/knowledge/repository-confirm.d.ts +36 -0
  159. package/dist/knowledge/repository-confirm.js +242 -0
  160. package/dist/knowledge/repository-risk.d.ts +40 -0
  161. package/dist/knowledge/repository-risk.js +312 -0
  162. package/dist/knowledge/repository-translation.d.ts +58 -0
  163. package/dist/knowledge/repository-translation.js +422 -0
  164. package/dist/knowledge/resource-risk.d.ts +32 -0
  165. package/dist/knowledge/resource-risk.js +157 -0
  166. package/dist/knowledge/reward-confirm.d.ts +113 -0
  167. package/dist/knowledge/reward-confirm.js +496 -0
  168. package/dist/knowledge/reward-context.d.ts +127 -0
  169. package/dist/knowledge/reward-context.js +504 -0
  170. package/dist/knowledge/reward-ledger.d.ts +96 -0
  171. package/dist/knowledge/reward-ledger.js +502 -0
  172. package/dist/knowledge/reward-puzzle.d.ts +97 -0
  173. package/dist/knowledge/reward-puzzle.js +288 -0
  174. package/dist/knowledge/reward-risk.d.ts +84 -0
  175. package/dist/knowledge/reward-risk.js +545 -0
  176. package/dist/knowledge/reward-translation.d.ts +58 -0
  177. package/dist/knowledge/reward-translation.js +501 -0
  178. package/dist/knowledge/safety-rules.js +11 -3
  179. package/dist/knowledge/scenario-modes.d.ts +53 -0
  180. package/dist/knowledge/scenario-modes.js +302 -0
  181. package/dist/knowledge/service-confirm.d.ts +152 -0
  182. package/dist/knowledge/service-confirm.js +699 -0
  183. package/dist/knowledge/service-context.d.ts +66 -0
  184. package/dist/knowledge/service-context.js +403 -0
  185. package/dist/knowledge/service-ledger.d.ts +71 -0
  186. package/dist/knowledge/service-ledger.js +609 -0
  187. package/dist/knowledge/service-puzzle.d.ts +158 -0
  188. package/dist/knowledge/service-puzzle.js +236 -0
  189. package/dist/knowledge/service-risk.d.ts +108 -0
  190. package/dist/knowledge/service-risk.js +615 -0
  191. package/dist/knowledge/service-templates.d.ts +39 -0
  192. package/dist/knowledge/service-templates.js +418 -0
  193. package/dist/knowledge/service-translation.d.ts +103 -0
  194. package/dist/knowledge/service-translation.js +622 -0
  195. package/dist/knowledge/tools-reference.d.ts +17 -0
  196. package/dist/knowledge/tools-reference.js +151 -0
  197. package/dist/knowledge/treasury-confirm.d.ts +133 -0
  198. package/dist/knowledge/treasury-confirm.js +512 -0
  199. package/dist/knowledge/treasury-context.d.ts +64 -0
  200. package/dist/knowledge/treasury-context.js +363 -0
  201. package/dist/knowledge/treasury-ledger.d.ts +42 -0
  202. package/dist/knowledge/treasury-ledger.js +300 -0
  203. package/dist/knowledge/treasury-puzzle.d.ts +163 -0
  204. package/dist/knowledge/treasury-puzzle.js +216 -0
  205. package/dist/knowledge/treasury-risk.d.ts +86 -0
  206. package/dist/knowledge/treasury-risk.js +440 -0
  207. package/dist/knowledge/treasury-templates.d.ts +38 -0
  208. package/dist/knowledge/treasury-templates.js +316 -0
  209. package/dist/knowledge/treasury-translation.d.ts +78 -0
  210. package/dist/knowledge/treasury-translation.js +498 -0
  211. package/dist/knowledge/util-risk.d.ts +30 -0
  212. package/dist/knowledge/util-risk.js +135 -0
  213. package/dist/project/business-puzzle.d.ts +47 -0
  214. package/dist/project/business-puzzle.js +372 -0
  215. package/dist/project/deployment-doc.d.ts +61 -0
  216. package/dist/project/deployment-doc.js +432 -0
  217. package/dist/project/risk-aggregator.d.ts +50 -0
  218. package/dist/project/risk-aggregator.js +280 -0
  219. package/dist/project/substep-trace.d.ts +130 -0
  220. package/dist/project/substep-trace.js +332 -0
  221. package/dist/schema/call/allocation.d.ts +34 -34
  222. package/dist/schema/call/arbitration.d.ts +141 -141
  223. package/dist/schema/call/base.d.ts +386 -386
  224. package/dist/schema/call/base.js +3 -3
  225. package/dist/schema/call/bridge-handler.d.ts +5 -2
  226. package/dist/schema/call/bridge.d.ts +159 -159
  227. package/dist/schema/call/contact.d.ts +110 -110
  228. package/dist/schema/call/demand.d.ts +76 -76
  229. package/dist/schema/call/handler.d.ts +2 -3
  230. package/dist/schema/call/handler.js +1 -1
  231. package/dist/schema/call/machine.d.ts +58 -58
  232. package/dist/schema/call/order.d.ts +98 -110
  233. package/dist/schema/call/permission-handler.d.ts +5 -0
  234. package/dist/schema/call/permission-handler.js +54 -0
  235. package/dist/schema/call/permission.d.ts +108 -108
  236. package/dist/schema/call/personal.d.ts +14 -14
  237. package/dist/schema/call/progress.d.ts +57 -72
  238. package/dist/schema/call/progress.js +7 -4
  239. package/dist/schema/call/proof.d.ts +18 -18
  240. package/dist/schema/call/proof.js +12 -7
  241. package/dist/schema/call/repository.d.ts +154 -154
  242. package/dist/schema/call/reward.d.ts +55 -55
  243. package/dist/schema/call/service.d.ts +231 -231
  244. package/dist/schema/call/treasury.d.ts +93 -93
  245. package/dist/schema/config/index.d.ts +178 -5
  246. package/dist/schema/config/index.js +52 -1
  247. package/dist/schema/local/index.d.ts +3554 -836
  248. package/dist/schema/local/index.js +2 -1
  249. package/dist/schema/messenger/index.d.ts +162 -162
  250. package/dist/schema/operations.d.ts +1058 -1074
  251. package/dist/schema/operations.js +7 -1
  252. package/dist/schema/project/index.d.ts +1412 -6
  253. package/dist/schema/project/index.js +441 -3
  254. package/dist/schema/query/index.d.ts +672 -672
  255. package/dist/schema/schema-query/index.d.ts +23 -3
  256. package/dist/schema/schema-query/index.js +13 -2
  257. package/dist/schema/sync-layer4.d.ts +21 -0
  258. package/dist/schema/sync-layer4.js +261 -0
  259. package/dist/schema/trust/index.d.ts +26 -26
  260. package/dist/schemas/account_operation.output.json +718 -0
  261. package/dist/schemas/config_operation.output.json +173 -0
  262. package/dist/schemas/index.json +9 -1
  263. package/dist/schemas/local_info_operation.output.json +718 -0
  264. package/dist/schemas/local_mark_operation.output.json +718 -0
  265. package/dist/schemas/onchain_operations.output.json +3 -2
  266. package/dist/schemas/onchain_operations.schema.json +1809 -336
  267. package/dist/schemas/onchain_operations_allocation.schema.json +2 -1
  268. package/dist/schemas/onchain_operations_arbitration.schema.json +2 -1
  269. package/dist/schemas/onchain_operations_contact.schema.json +2 -1
  270. package/dist/schemas/onchain_operations_demand.schema.json +2 -1
  271. package/dist/schemas/onchain_operations_gen_passport.schema.json +878 -872
  272. package/dist/schemas/onchain_operations_gen_proof.schema.json +273 -0
  273. package/dist/schemas/onchain_operations_guard.schema.json +578 -579
  274. package/dist/schemas/onchain_operations_machine.schema.json +2 -1
  275. package/dist/schemas/onchain_operations_order.schema.json +13 -9
  276. package/dist/schemas/onchain_operations_payment.schema.json +0 -514
  277. package/dist/schemas/onchain_operations_permission.schema.json +0 -514
  278. package/dist/schemas/onchain_operations_personal.schema.json +0 -514
  279. package/dist/schemas/onchain_operations_progress.schema.json +14 -10
  280. package/dist/schemas/onchain_operations_proof.schema.json +699 -0
  281. package/dist/schemas/onchain_operations_repository.schema.json +2 -1
  282. package/dist/schemas/onchain_operations_reward.schema.json +2 -1
  283. package/dist/schemas/onchain_operations_service.schema.json +2 -1
  284. package/dist/schemas/onchain_operations_treasury.schema.json +2 -1
  285. package/dist/schemas/onchain_table_data.schema.json +32 -1
  286. package/dist/schemas/project_operation.output.json +918 -0
  287. package/dist/schemas/project_operation.schema.json +474 -3
  288. package/dist/schemas/query_toolkit.output.json +14906 -6
  289. package/dist/schemas/schema_query.output.json +38 -1
  290. package/dist/telemetry/index.d.ts +1 -1
  291. package/dist/tools/handlers/config.d.ts +1 -1
  292. package/dist/tools/handlers/config.js +21 -18
  293. package/dist/tools/handlers/file-export.d.ts +2 -2
  294. package/dist/tools/handlers/local.d.ts +3 -30
  295. package/dist/tools/handlers/local.js +14 -3
  296. package/dist/tools/handlers/messenger.d.ts +1 -1
  297. package/dist/tools/handlers/messenger.js +2 -1
  298. package/dist/tools/handlers/onchain.d.ts +1 -1
  299. package/dist/tools/handlers/onchain.js +24 -22
  300. package/dist/tools/handlers/project.d.ts +1 -1
  301. package/dist/tools/handlers/project.js +262 -18
  302. package/dist/tools/handlers/query.d.ts +4 -4
  303. package/dist/tools/handlers/schema-query.d.ts +1 -1
  304. package/dist/tools/handlers/schema-query.js +21 -20
  305. package/dist/tools/handlers/trust.d.ts +1 -1
  306. package/dist/tools/handlers/trust.js +2 -2
  307. package/dist/tools/handlers/wip.d.ts +1 -1
  308. package/dist/tools/handlers/wip.js +1 -1
  309. package/dist/tools/index.d.ts +1 -1
  310. package/dist/tools/index.js +96 -25
  311. package/dist/tools/rules-hook.d.ts +1 -1
  312. package/dist/tools/rules-hook.js +3 -2
  313. package/dist/tools/shared.d.ts +13 -22
  314. package/dist/tools/types.d.ts +5 -5
  315. package/dist/tools/wrap.d.ts +10 -2
  316. package/dist/tools/wrap.js +212 -0
  317. package/package.json +3 -3
@@ -1,4 +1,5 @@
1
1
  export type ServiceName = "confirm_gate" | "project_service" | "harness" | "graph_persist" | "semantic_rich" | "experience_layer" | "customer_intelligence" | "order_monitor" | "industry_evolution";
2
+ export type HarnessTier = "off" | "lightweight" | "full";
2
3
  interface ServiceMeta {
3
4
  name: ServiceName;
4
5
  description: string;
@@ -7,6 +8,9 @@ interface ServiceMeta {
7
8
  remindOnToggle: boolean;
8
9
  }
9
10
  export declare const SERVICE_REGISTRY: ServiceMeta[];
11
+ export declare function getHarnessTier(): HarnessTier;
12
+ export declare function setHarnessTier(tier: HarnessTier): void;
13
+ export declare function resetHarnessTier(): void;
10
14
  export declare function isEnabled(service: ServiceName): boolean;
11
15
  export declare function setEnabled(service: ServiceName, enabled: boolean): void;
12
16
  export declare function toggle(service: ServiceName): boolean;
@@ -18,8 +18,8 @@ export const SERVICE_REGISTRY = [
18
18
  },
19
19
  {
20
20
  name: "harness",
21
- description: "L4 Harness verify/recover loop — automatically validates expected results before and after operations",
22
- defaultEnabled: false,
21
+ description: "L4 Harness verify/recover loop — automatically validates expected results before and after operations. GLM5: default ON with tiered enforcement (off/lightweight/full).",
22
+ defaultEnabled: true,
23
23
  envVar: "WOWOK_HARNESS_ENABLED",
24
24
  remindOnToggle: true,
25
25
  },
@@ -68,6 +68,7 @@ export const SERVICE_REGISTRY = [
68
68
  ];
69
69
  const SERVICE_MAP = new Map(SERVICE_REGISTRY.map((s) => [s.name, s]));
70
70
  const runtimeOverrides = new Map();
71
+ let harnessTierOverride;
71
72
  function configFilePath() {
72
73
  const dir = process.env.WOWOK_CONFIG_DIR
73
74
  ? process.env.WOWOK_CONFIG_DIR
@@ -103,8 +104,9 @@ function savePersisted() {
103
104
  if (!existsSync(dir))
104
105
  mkdirSync(dir, { recursive: true });
105
106
  const data = {
106
- version: 1,
107
+ version: 2,
107
108
  services: Object.fromEntries(runtimeOverrides),
109
+ harness_tier: harnessTierOverride,
108
110
  updatedAt: Date.now(),
109
111
  };
110
112
  writeFileSync(path, JSON.stringify(data, null, 2), "utf-8");
@@ -119,7 +121,29 @@ function savePersisted() {
119
121
  runtimeOverrides.set(name, enabled);
120
122
  }
121
123
  }
124
+ if (persisted.harness_tier) {
125
+ harnessTierOverride = persisted.harness_tier;
126
+ }
127
+ }
128
+ }
129
+ export function getHarnessTier() {
130
+ if (!isEnabled("harness"))
131
+ return "off";
132
+ if (harnessTierOverride)
133
+ return harnessTierOverride;
134
+ const envVal = process.env.WOWOK_HARNESS_TIER;
135
+ if (envVal === "off" || envVal === "lightweight" || envVal === "full") {
136
+ return envVal;
122
137
  }
138
+ return "lightweight";
139
+ }
140
+ export function setHarnessTier(tier) {
141
+ harnessTierOverride = tier;
142
+ savePersisted();
143
+ }
144
+ export function resetHarnessTier() {
145
+ harnessTierOverride = undefined;
146
+ savePersisted();
123
147
  }
124
148
  export function isEnabled(service) {
125
149
  if (runtimeOverrides.has(service)) {
@@ -192,8 +216,8 @@ function buildReminder(service, enabled) {
192
216
  : "ProjectService is OFF: objects will not be automatically tagged with project membership. To enable, call config_operation toggle project_service.";
193
217
  case "harness":
194
218
  return enabled
195
- ? "Harness is ON: automatically validates expected results after operations. May increase response time. To disable, call config_operation toggle harness."
196
- : "Harness is OFF. To enable auto-validation, call config_operation toggle harness.";
219
+ ? `Harness is ON (tier: ${getHarnessTier()}): automatically validates expected results around operations. lightweight=Plan+Verify; full=Plan+Expect+Verify+Recover+Checkpoint. To change tier, set WOWOK_HARNESS_TIER or call harness API. To disable, call config_operation toggle harness.`
220
+ : "Harness is OFF. GLM5 recommends keeping it ON (lightweight tier) for safety. To enable, call config_operation toggle harness.";
197
221
  case "graph_persist":
198
222
  return enabled
199
223
  ? "Graph persistence is ON: the object dependency graph will be saved to ~/.wowok/project-graph.json."
@@ -0,0 +1,27 @@
1
+ import { type HarnessTier } from "../config/runtime.js";
2
+ export type EscalationTrigger = "E1_CRITICAL_RISK" | "E2_OPERATION_CRITICAL" | "E3_SUBSTEP_FAILURE" | "E4_REPEATED_FAILURE";
3
+ export interface EscalationEvent {
4
+ trigger: EscalationTrigger;
5
+ timestamp: string;
6
+ reason: string;
7
+ from_tier: HarnessTier;
8
+ to_tier: HarnessTier;
9
+ }
10
+ export interface EscalationState {
11
+ current_tier: HarnessTier;
12
+ history: EscalationEvent[];
13
+ recent_failures: Array<{
14
+ timestamp: number;
15
+ operation: string;
16
+ error_code: string;
17
+ }>;
18
+ }
19
+ export declare function isFullTier(tier: HarnessTier): boolean;
20
+ export declare function shouldRunHeavyHooks(): boolean;
21
+ export declare function shouldRunLightHooks(): boolean;
22
+ export declare function recordCriticalRisk(description: string): EscalationEvent | null;
23
+ export declare function recordCriticalOperation(operation: string, errorCode: string): EscalationEvent | null;
24
+ export declare function recordSubstepFailure(detail: string): EscalationEvent | null;
25
+ export declare function recordOperationFailure(operation: string, errorCode: string): EscalationEvent | null;
26
+ export declare function getEscalationState(): Readonly<EscalationState>;
27
+ export declare function resetEscalation(): void;
@@ -0,0 +1,68 @@
1
+ import { getHarnessTier, setHarnessTier } from "../config/runtime.js";
2
+ const state = {
3
+ current_tier: "lightweight",
4
+ history: [],
5
+ recent_failures: [],
6
+ };
7
+ const REPEATED_FAILURE_WINDOW_MS = 60_000;
8
+ const REPEATED_FAILURE_THRESHOLD = 3;
9
+ export function isFullTier(tier) {
10
+ return tier === "full";
11
+ }
12
+ export function shouldRunHeavyHooks() {
13
+ return isFullTier(getHarnessTier());
14
+ }
15
+ export function shouldRunLightHooks() {
16
+ const tier = getHarnessTier();
17
+ return tier === "lightweight" || tier === "full";
18
+ }
19
+ export function recordCriticalRisk(description) {
20
+ return escalate("E1_CRITICAL_RISK", `CRITICAL risk detected: ${description}`);
21
+ }
22
+ export function recordCriticalOperation(operation, errorCode) {
23
+ return escalate("E2_OPERATION_CRITICAL", `Operation '${operation}' returned CRITICAL error: ${errorCode}`);
24
+ }
25
+ export function recordSubstepFailure(detail) {
26
+ return escalate("E3_SUBSTEP_FAILURE", `Substep trace reported failure: ${detail}`);
27
+ }
28
+ export function recordOperationFailure(operation, errorCode) {
29
+ const now = Date.now();
30
+ state.recent_failures.push({ timestamp: now, operation, error_code: errorCode });
31
+ state.recent_failures = state.recent_failures.filter((f) => now - f.timestamp <= REPEATED_FAILURE_WINDOW_MS);
32
+ if (state.recent_failures.length >= REPEATED_FAILURE_THRESHOLD) {
33
+ const summary = state.recent_failures
34
+ .map((f) => `${f.operation}:${f.error_code}`)
35
+ .join(", ");
36
+ return escalate("E4_REPEATED_FAILURE", `Repeated failures (${state.recent_failures.length} in ${REPEATED_FAILURE_WINDOW_MS / 1000}s): ${summary}`);
37
+ }
38
+ return null;
39
+ }
40
+ export function getEscalationState() {
41
+ return {
42
+ current_tier: getHarnessTier(),
43
+ history: [...state.history],
44
+ recent_failures: [...state.recent_failures],
45
+ };
46
+ }
47
+ export function resetEscalation() {
48
+ state.history = [];
49
+ state.recent_failures = [];
50
+ setHarnessTier("lightweight");
51
+ state.current_tier = "lightweight";
52
+ }
53
+ function escalate(trigger, reason) {
54
+ const fromTier = getHarnessTier();
55
+ if (fromTier !== "lightweight")
56
+ return null;
57
+ const event = {
58
+ trigger,
59
+ timestamp: new Date().toISOString(),
60
+ reason,
61
+ from_tier: fromTier,
62
+ to_tier: "full",
63
+ };
64
+ setHarnessTier("full");
65
+ state.current_tier = "full";
66
+ state.history.push(event);
67
+ return event;
68
+ }
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ import { readFileSync } from "fs";
5
5
  const packageJson = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
6
6
  import { OnchainOperationsSchema, WipOperationsSchema, WatchQueryOperationsSchema, AccountOperationSchema, LocalMarkOperationSchema, LocalInfoOperationSchema, ProtocolInfoQuerySchema, CallOutputSchema, MessengerOperationInputSchema, MessengerOperationOutputSchema, createServerConfig, createCapabilitiesConfig, } from "./schema/index.js";
7
7
  import { areSchemasAvailable, getSchemaIndex, } from "./schema-query/index.js";
8
+ import { syncDeployedToolDescriptors, shouldAutoSyncAtStartup, } from "./schema/sync-layer4.js";
8
9
  import { isProjectServiceEnabled, observe as projectObserve, } from "./project/index.js";
9
10
  import { registerSuccessHook } from "./schema/call/handler.js";
10
11
  import { listServices } from "./config/index.js";
@@ -132,6 +133,26 @@ async function main() {
132
133
  else {
133
134
  console.error("Schema files not available. Run 'npm run generate:schemas' to generate them.");
134
135
  }
136
+ if (shouldAutoSyncAtStartup()) {
137
+ try {
138
+ const r = syncDeployedToolDescriptors({ silent: true });
139
+ if (r.failed > 0) {
140
+ console.error(`Layer 4 auto-sync: ${r.ok}/${r.total} ok, ${r.failed} failed`);
141
+ for (const e of r.errors) {
142
+ console.error(` - ${e.tool}: ${e.error}`);
143
+ }
144
+ }
145
+ else {
146
+ console.error(`Layer 4 auto-sync: ${r.ok}/${r.total} tools restored`);
147
+ }
148
+ }
149
+ catch (e) {
150
+ console.error(`Layer 4 auto-sync skipped: ${e.message}`);
151
+ }
152
+ }
153
+ else {
154
+ console.error("Layer 4 auto-sync disabled (WOWOK_SYNC_LAYER4=never)");
155
+ }
135
156
  if (isProjectServiceEnabled()) {
136
157
  registerSuccessHook((result, context) => {
137
158
  if (context?.operation_type && context?.data) {
@@ -0,0 +1,115 @@
1
+ import { type AllocationRiskAssessment } from "./allocation-risk.js";
2
+ export type ConfirmGateStatus = "approved" | "blocked_checklist" | "blocked_risk" | "blocked_user" | "blocked_environment";
3
+ export interface ConfirmGateResult {
4
+ status: ConfirmGateStatus;
5
+ checklist_result: ChecklistResult;
6
+ risk_result?: AllocationRiskAssessment;
7
+ user_confirmation?: UserConfirmation;
8
+ environment_result?: EnvironmentResult;
9
+ confirmation_text?: string;
10
+ block_reason?: string;
11
+ decision_record: DecisionRecord;
12
+ }
13
+ export interface ChecklistResult {
14
+ all_passed: boolean;
15
+ items: ChecklistItem[];
16
+ }
17
+ export interface ChecklistItem {
18
+ id: string;
19
+ description: string;
20
+ passed: boolean;
21
+ message: string;
22
+ }
23
+ export interface UserConfirmation {
24
+ questions_asked: ConfirmationQuestion[];
25
+ responses: ConfirmationResponse[];
26
+ all_confirmed: boolean;
27
+ }
28
+ export interface ConfirmationQuestion {
29
+ id: string;
30
+ question: string;
31
+ requires_explicit_yes: boolean;
32
+ related_risk_ids?: string[];
33
+ }
34
+ export interface ConfirmationResponse {
35
+ question_id: string;
36
+ response: "yes" | "no" | "skip";
37
+ }
38
+ export interface EnvironmentResult {
39
+ passed: boolean;
40
+ checks: {
41
+ name: string;
42
+ passed: boolean;
43
+ message: string;
44
+ }[];
45
+ }
46
+ export interface DecisionRecord {
47
+ timestamp: string;
48
+ gate_version: string;
49
+ final_status: ConfirmGateStatus;
50
+ layers_passed: string[];
51
+ layers_failed: string[];
52
+ }
53
+ export interface AllocationJsonForConfirm {
54
+ object?: {
55
+ name: string;
56
+ type_parameter?: string;
57
+ } | string | null;
58
+ allocators?: {
59
+ description: string;
60
+ threshold: string | number;
61
+ allocators: {
62
+ guard: string;
63
+ sharing: {
64
+ who: {
65
+ GuardIdentifier: number;
66
+ } | {
67
+ Entity: string;
68
+ } | {
69
+ Signer: "signer";
70
+ };
71
+ sharing: string | number;
72
+ mode: "Amount" | "Rate" | "Surplus";
73
+ }[];
74
+ fix?: string | number;
75
+ max?: string | number | null;
76
+ }[];
77
+ };
78
+ coin?: {
79
+ name?: string;
80
+ address?: string;
81
+ } | string;
82
+ payment_info?: object;
83
+ received_coins?: {
84
+ token_type: string;
85
+ received: {
86
+ id: string;
87
+ payment: string;
88
+ }[];
89
+ };
90
+ alloc_by_guard?: string;
91
+ }
92
+ export interface ConfirmGateInput {
93
+ allocation_json: AllocationJsonForConfirm;
94
+ intent?: string;
95
+ operation_type?: "create" | "receive" | "alloc_by_guard" | "query";
96
+ guard_signer_bindings?: Record<string, boolean>;
97
+ order_already_has_allocation?: boolean;
98
+ bound_order?: string;
99
+ guard_conditions_mutually_exclusive?: boolean;
100
+ referenced_treasuries_permissions?: Record<string, string>;
101
+ passport_identifier_types?: Record<number, string>;
102
+ skip_user_confirmation?: boolean;
103
+ skip_environment_check?: boolean;
104
+ }
105
+ export declare const ALLOCATION_PUBLISH_CHECKLIST: ChecklistItem[];
106
+ export declare const ALLOCATION_CONFIRMATION_QUESTIONS: ConfirmationQuestion[];
107
+ export declare const ALLOCATION_CONFIRM_VERSION = "1.0.0";
108
+ export declare function runAllocationConfirmGate(input: ConfirmGateInput): ConfirmGateResult;
109
+ export interface ProgressiveCheckResult {
110
+ stage: "checklist" | "risk" | "confirmation" | "environment" | "complete";
111
+ status: "pass" | "fail" | "pending";
112
+ message: string;
113
+ next_action?: string;
114
+ }
115
+ export declare function progressiveAllocationCheck(input: ConfirmGateInput): ProgressiveCheckResult;