@wowok/agent-mcp 2.7.2 → 2.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/dist/config/runtime.js +1 -1
  2. package/dist/customer/account-events.d.ts +32 -0
  3. package/dist/customer/account-events.js +1 -0
  4. package/dist/customer/customer-advice.d.ts +1 -0
  5. package/dist/customer/customer-advice.js +1 -1
  6. package/dist/customer/info-puzzle.js +1 -1
  7. package/dist/customer/order-strategy.d.ts +1 -1
  8. package/dist/customer/reminder-system.d.ts +2 -0
  9. package/dist/customer/reminder-system.js +1 -1
  10. package/dist/customer/risk-assessment.d.ts +1 -0
  11. package/dist/customer/risk-assessment.js +1 -1
  12. package/dist/customer/types.d.ts +2 -0
  13. package/dist/evaluation/builtins/arbitration-score.d.ts +41 -0
  14. package/dist/evaluation/builtins/arbitration-score.js +1 -0
  15. package/dist/evaluation/builtins/index.d.ts +1 -0
  16. package/dist/evaluation/builtins/index.js +1 -1
  17. package/dist/evaluation/category-match-rules.d.ts +30 -0
  18. package/dist/evaluation/category-match-rules.js +1 -0
  19. package/dist/evaluation/engine.js +1 -1
  20. package/dist/evaluation/extract.js +1 -1
  21. package/dist/evaluation/index.d.ts +1 -0
  22. package/dist/evaluation/index.js +1 -1
  23. package/dist/evaluation/location-match.d.ts +42 -0
  24. package/dist/evaluation/location-match.js +1 -0
  25. package/dist/evaluation/path-reasoning.d.ts +35 -0
  26. package/dist/evaluation/path-reasoning.js +1 -0
  27. package/dist/evaluation/region.d.ts +6 -0
  28. package/dist/evaluation/region.js +1 -1
  29. package/dist/evaluation/types.d.ts +17 -0
  30. package/dist/experience/realtime-feedback.js +1 -1
  31. package/dist/experience/user-profile.d.ts +1 -1
  32. package/dist/extensions/index.d.ts +6 -0
  33. package/dist/extensions/index.js +1 -1
  34. package/dist/extensions/industry-layers.d.ts +75 -0
  35. package/dist/extensions/industry-layers.js +1 -0
  36. package/dist/extensions/industry-pack.d.ts +105 -0
  37. package/dist/extensions/industry-pack.js +1 -0
  38. package/dist/extensions/metric-registry.js +1 -1
  39. package/dist/extensions/mode-evaluator.d.ts +1 -1
  40. package/dist/extensions/registry.d.ts +1 -0
  41. package/dist/extensions/registry.js +1 -1
  42. package/dist/graph/base.d.ts +8 -0
  43. package/dist/graph/base.js +1 -0
  44. package/dist/harness/index.d.ts +1 -0
  45. package/dist/harness/index.js +1 -1
  46. package/dist/harness/plan.d.ts +2 -0
  47. package/dist/harness/plan.js +1 -1
  48. package/dist/harness/recover.d.ts +1 -1
  49. package/dist/harness/types.d.ts +2 -3
  50. package/dist/index.js +1 -1
  51. package/dist/knowledge/allocation-confirm.js +1 -1
  52. package/dist/knowledge/anti-cheat.d.ts +37 -0
  53. package/dist/knowledge/anti-cheat.js +1 -0
  54. package/dist/knowledge/arb-confirm.d.ts +28 -0
  55. package/dist/knowledge/arb-confirm.js +1 -0
  56. package/dist/knowledge/arb-translation.d.ts +48 -0
  57. package/dist/knowledge/arb-translation.js +1 -0
  58. package/dist/knowledge/arbitration-context.js +1 -1
  59. package/dist/knowledge/bridge-confirm.d.ts +26 -0
  60. package/dist/knowledge/bridge-confirm.js +1 -0
  61. package/dist/knowledge/bridge-translation.d.ts +37 -0
  62. package/dist/knowledge/bridge-translation.js +1 -0
  63. package/dist/knowledge/contact-confirm.d.ts +27 -0
  64. package/dist/knowledge/contact-confirm.js +1 -0
  65. package/dist/knowledge/contact-translation.d.ts +39 -0
  66. package/dist/knowledge/contact-translation.js +1 -0
  67. package/dist/knowledge/demand-context.d.ts +17 -0
  68. package/dist/knowledge/demand-context.js +1 -0
  69. package/dist/knowledge/demand-ledger.d.ts +26 -0
  70. package/dist/knowledge/demand-ledger.js +1 -0
  71. package/dist/knowledge/demand-puzzle.d.ts +29 -0
  72. package/dist/knowledge/demand-puzzle.js +1 -0
  73. package/dist/knowledge/demand-templates.d.ts +12 -0
  74. package/dist/knowledge/demand-templates.js +1 -0
  75. package/dist/knowledge/demand-translation.js +1 -1
  76. package/dist/knowledge/deployment-scanner.js +1 -1
  77. package/dist/knowledge/evidence-review.d.ts +12 -0
  78. package/dist/knowledge/evidence-review.js +1 -0
  79. package/dist/knowledge/examples-scanner-cli.js +1 -1
  80. package/dist/knowledge/examples-scanner.js +1 -1
  81. package/dist/knowledge/flywheel-loop.d.ts +0 -1
  82. package/dist/knowledge/flywheel-loop.js +1 -1
  83. package/dist/knowledge/guard-design-patterns.js +1 -1
  84. package/dist/knowledge/guard-migration.d.ts +1 -1
  85. package/dist/knowledge/index.d.ts +71 -3
  86. package/dist/knowledge/index.js +1 -1
  87. package/dist/knowledge/industry-registry.js +1 -1
  88. package/dist/knowledge/machine-render.js +1 -1
  89. package/dist/knowledge/market-metrics.d.ts +12 -0
  90. package/dist/knowledge/market-metrics.js +1 -0
  91. package/dist/knowledge/market-operations.d.ts +46 -0
  92. package/dist/knowledge/market-operations.js +1 -0
  93. package/dist/knowledge/mcp-schema-audit-cli.js +1 -1
  94. package/dist/knowledge/mcp-schema-audit.d.ts +22 -22
  95. package/dist/knowledge/mcp-schema-audit.js +1 -1
  96. package/dist/knowledge/onchain-constants.js +1 -1
  97. package/dist/knowledge/payment-confirm.d.ts +26 -0
  98. package/dist/knowledge/payment-confirm.js +1 -0
  99. package/dist/knowledge/payment-translation.d.ts +37 -0
  100. package/dist/knowledge/payment-translation.js +1 -0
  101. package/dist/knowledge/permission-ledger.d.ts +11 -0
  102. package/dist/knowledge/permission-ledger.js +1 -1
  103. package/dist/knowledge/personal-confirm.d.ts +29 -0
  104. package/dist/knowledge/personal-confirm.js +1 -0
  105. package/dist/knowledge/personal-translation.d.ts +37 -0
  106. package/dist/knowledge/personal-translation.js +1 -0
  107. package/dist/knowledge/process-model.d.ts +1 -11
  108. package/dist/knowledge/process-model.js +1 -1
  109. package/dist/knowledge/proof-context.d.ts +17 -0
  110. package/dist/knowledge/proof-context.js +1 -0
  111. package/dist/knowledge/proof-ledger.d.ts +34 -0
  112. package/dist/knowledge/proof-ledger.js +1 -0
  113. package/dist/knowledge/proof-puzzle.d.ts +35 -0
  114. package/dist/knowledge/proof-puzzle.js +1 -0
  115. package/dist/knowledge/proof-templates.d.ts +22 -0
  116. package/dist/knowledge/proof-templates.js +1 -0
  117. package/dist/knowledge/registrar-confirm.d.ts +26 -0
  118. package/dist/knowledge/registrar-confirm.js +1 -0
  119. package/dist/knowledge/registrar-translation.d.ts +37 -0
  120. package/dist/knowledge/registrar-translation.js +1 -0
  121. package/dist/knowledge/repository-context.d.ts +12 -0
  122. package/dist/knowledge/repository-context.js +1 -0
  123. package/dist/knowledge/repository-ledger.d.ts +25 -0
  124. package/dist/knowledge/repository-ledger.js +1 -0
  125. package/dist/knowledge/repository-puzzle.d.ts +30 -0
  126. package/dist/knowledge/repository-puzzle.js +1 -0
  127. package/dist/knowledge/repository-templates.d.ts +14 -0
  128. package/dist/knowledge/repository-templates.js +1 -0
  129. package/dist/knowledge/resource-confirm.d.ts +25 -0
  130. package/dist/knowledge/resource-confirm.js +1 -0
  131. package/dist/knowledge/resource-translation.d.ts +37 -0
  132. package/dist/knowledge/resource-translation.js +1 -0
  133. package/dist/knowledge/reward-context.d.ts +2 -2
  134. package/dist/knowledge/safety-rules.d.ts +1 -0
  135. package/dist/knowledge/safety-rules.js +1 -1
  136. package/dist/knowledge/service-risk.d.ts +1 -1
  137. package/dist/knowledge/service-risk.js +1 -1
  138. package/dist/knowledge/template-registry.js +1 -1
  139. package/dist/knowledge/tools-reference.js +1 -1
  140. package/dist/knowledge/universal-template.d.ts +22 -0
  141. package/dist/knowledge/universal-template.js +1 -0
  142. package/dist/knowledge/util-confirm.d.ts +24 -0
  143. package/dist/knowledge/util-confirm.js +1 -0
  144. package/dist/knowledge/util-translation.d.ts +38 -0
  145. package/dist/knowledge/util-translation.js +1 -0
  146. package/dist/knowledge/workflow-guidance.d.ts +116 -0
  147. package/dist/knowledge/workflow-guidance.js +1 -0
  148. package/dist/participation/employee-kpi.d.ts +25 -0
  149. package/dist/participation/employee-kpi.js +1 -0
  150. package/dist/participation/employee-store.d.ts +16 -0
  151. package/dist/participation/employee-store.js +1 -0
  152. package/dist/participation/index.d.ts +2 -0
  153. package/dist/participation/index.js +1 -0
  154. package/dist/persona/defaults.js +1 -1
  155. package/dist/persona/index.d.ts +9 -2
  156. package/dist/persona/index.js +1 -1
  157. package/dist/persona/local-region.d.ts +20 -0
  158. package/dist/persona/local-region.js +1 -0
  159. package/dist/persona/model.js +1 -1
  160. package/dist/persona/overrides.d.ts +10 -0
  161. package/dist/persona/overrides.js +1 -0
  162. package/dist/persona/pack-personae.d.ts +11 -0
  163. package/dist/persona/pack-personae.js +1 -0
  164. package/dist/persona/strategy-intent.d.ts +20 -0
  165. package/dist/persona/strategy-intent.js +1 -0
  166. package/dist/persona/types.d.ts +3 -1
  167. package/dist/project/business-puzzle.d.ts +1 -1
  168. package/dist/project/business-puzzle.js +1 -1
  169. package/dist/project/deployment-doc.js +1 -1
  170. package/dist/project/edit-planner.js +1 -1
  171. package/dist/project/evaluation.d.ts +37 -1
  172. package/dist/project/evaluation.js +1 -1
  173. package/dist/project/graph.d.ts +3 -6
  174. package/dist/project/handlers.d.ts +33 -2
  175. package/dist/project/handlers.js +1 -1
  176. package/dist/project/index.d.ts +1 -0
  177. package/dist/project/index.js +1 -1
  178. package/dist/project/merchant-guide.d.ts +19 -0
  179. package/dist/project/merchant-guide.js +1 -1
  180. package/dist/project/mode-actions.js +1 -1
  181. package/dist/project/rollback-policy.js +1 -1
  182. package/dist/project/semantic-graph.d.ts +3 -5
  183. package/dist/project/workflow-design-assessment.d.ts +24 -0
  184. package/dist/project/workflow-design-assessment.js +1 -0
  185. package/dist/safety/confirm-gate.d.ts +1 -1
  186. package/dist/safety/confirm-gate.js +1 -1
  187. package/dist/schema/call/allocation.d.ts +186 -1385
  188. package/dist/schema/call/arbitration.d.ts +272 -1871
  189. package/dist/schema/call/base.d.ts +1831 -9076
  190. package/dist/schema/call/base.js +1 -1
  191. package/dist/schema/call/bridge.d.ts +911 -3171
  192. package/dist/schema/call/contact.d.ts +135 -931
  193. package/dist/schema/call/demand.d.ts +164 -1194
  194. package/dist/schema/call/guard.d.ts +298 -1140
  195. package/dist/schema/call/guard.js +1 -1
  196. package/dist/schema/call/machine.d.ts +459 -5403
  197. package/dist/schema/call/machine.js +1 -1
  198. package/dist/schema/call/order.d.ts +137 -844
  199. package/dist/schema/call/payment.d.ts +74 -561
  200. package/dist/schema/call/permission.d.ts +335 -2791
  201. package/dist/schema/call/personal.d.ts +227 -1814
  202. package/dist/schema/call/progress.d.ts +140 -843
  203. package/dist/schema/call/proof.d.ts +42 -258
  204. package/dist/schema/call/repository.d.ts +324 -2222
  205. package/dist/schema/call/reward.d.ts +153 -1183
  206. package/dist/schema/call/semantic.js +1 -1
  207. package/dist/schema/call/service.d.ts +376 -3431
  208. package/dist/schema/call/treasury.d.ts +252 -2158
  209. package/dist/schema/common/index.d.ts +222 -697
  210. package/dist/schema/common/index.js +1 -1
  211. package/dist/schema/config/index.d.ts +18 -161
  212. package/dist/schema/employee/index.d.ts +99 -0
  213. package/dist/schema/employee/index.js +1 -0
  214. package/dist/schema/evaluation/index.d.ts +1035 -3918
  215. package/dist/schema/evaluation/index.js +1 -1
  216. package/dist/schema/index.d.ts +3 -0
  217. package/dist/schema/index.js +1 -1
  218. package/dist/schema/industry-pack/index.d.ts +132 -0
  219. package/dist/schema/industry-pack/index.js +1 -0
  220. package/dist/schema/intent-radar/index.d.ts +92 -245
  221. package/dist/schema/intent-radar/index.js +1 -1
  222. package/dist/schema/local/index.d.ts +2045 -18080
  223. package/dist/schema/local/index.js +1 -1
  224. package/dist/schema/local/wip.d.ts +61 -651
  225. package/dist/schema/local/wip.js +1 -1
  226. package/dist/schema/messenger/index.d.ts +949 -5557
  227. package/dist/schema/messenger/index.js +1 -1
  228. package/dist/schema/operations.d.ts +2969 -26518
  229. package/dist/schema/operations.js +1 -1
  230. package/dist/schema/persona/index.d.ts +469 -1820
  231. package/dist/schema/persona/index.js +1 -1
  232. package/dist/schema/project/index.d.ts +1023 -8450
  233. package/dist/schema/project/index.js +1 -1
  234. package/dist/schema/query/index.d.ts +12042 -75678
  235. package/dist/schema/query/index.js +1 -1
  236. package/dist/schema/schema-query/index.d.ts +35 -98
  237. package/dist/schema/schema-query/index.js +1 -1
  238. package/dist/schema/schema-version.js +1 -1
  239. package/dist/schema/task-status.d.ts +26 -132
  240. package/dist/schema/trust/index.d.ts +194 -1290
  241. package/dist/schema/utils/guard-parser.js +1 -1
  242. package/dist/schema/utils/node-parser.js +1 -1
  243. package/dist/schema/utils/skills-recommendation.d.ts +1 -0
  244. package/dist/schema/utils/skills-recommendation.js +1 -1
  245. package/dist/schema/workspace/index.d.ts +69 -0
  246. package/dist/schema/workspace/index.js +1 -0
  247. package/dist/{schema-query → schema-query-impl}/index.js +1 -1
  248. package/dist/schemas/account_operation.output.json +3147 -1655
  249. package/dist/schemas/account_operation.schema.json +225 -218
  250. package/dist/schemas/bridge_operation.output.json +1168 -653
  251. package/dist/schemas/bridge_operation.schema.json +736 -504
  252. package/dist/schemas/config_operation.output.json +185 -179
  253. package/dist/schemas/config_operation.schema.json +21 -26
  254. package/dist/schemas/employee_operation.output.json +207 -0
  255. package/dist/schemas/employee_operation.schema.json +176 -0
  256. package/dist/schemas/evaluation_operation.output.json +2268 -601
  257. package/dist/schemas/evaluation_operation.schema.json +2919 -787
  258. package/dist/schemas/guard2file.output.json +58 -64
  259. package/dist/schemas/guard2file.schema.json +79 -81
  260. package/dist/schemas/index.json +29 -11
  261. package/dist/schemas/industry_pack_operation.output.json +594 -0
  262. package/dist/schemas/industry_pack_operation.schema.json +55 -0
  263. package/dist/schemas/intent_radar.output.json +275 -203
  264. package/dist/schemas/intent_radar.schema.json +124 -126
  265. package/dist/schemas/local_info_operation.output.json +1174 -660
  266. package/dist/schemas/local_info_operation.schema.json +119 -125
  267. package/dist/schemas/local_mark_operation.output.json +1239 -692
  268. package/dist/schemas/local_mark_operation.schema.json +91 -96
  269. package/dist/schemas/machineNode2file.output.json +63 -69
  270. package/dist/schemas/machineNode2file.schema.json +79 -81
  271. package/dist/schemas/messenger_operation.output.json +2722 -1531
  272. package/dist/schemas/messenger_operation.schema.json +1482 -1264
  273. package/dist/schemas/onchain_events.output.json +2590 -978
  274. package/dist/schemas/onchain_events.schema.json +117 -99
  275. package/dist/schemas/onchain_operations.output.json +3957 -2312
  276. package/dist/schemas/onchain_operations.schema.json +20799 -9285
  277. package/dist/schemas/onchain_operations_allocation.schema.json +171 -107
  278. package/dist/schemas/onchain_operations_arbitration.schema.json +233 -146
  279. package/dist/schemas/onchain_operations_contact.schema.json +129 -90
  280. package/dist/schemas/onchain_operations_demand.schema.json +170 -112
  281. package/dist/schemas/onchain_operations_gen_passport.schema.json +61 -646
  282. package/dist/schemas/onchain_operations_gen_proof.schema.json +40 -172
  283. package/dist/schemas/onchain_operations_guard.schema.json +3765 -294
  284. package/dist/schemas/onchain_operations_machine.schema.json +536 -163
  285. package/dist/schemas/onchain_operations_order.schema.json +126 -96
  286. package/dist/schemas/onchain_operations_payment.schema.json +82 -67
  287. package/dist/schemas/onchain_operations_permission.schema.json +331 -93
  288. package/dist/schemas/onchain_operations_personal.schema.json +636 -96
  289. package/dist/schemas/onchain_operations_progress.schema.json +125 -92
  290. package/dist/schemas/onchain_operations_proof.schema.json +76 -69
  291. package/dist/schemas/onchain_operations_repository.schema.json +636 -249
  292. package/dist/schemas/onchain_operations_reward.schema.json +218 -108
  293. package/dist/schemas/onchain_operations_service.schema.json +678 -220
  294. package/dist/schemas/onchain_operations_treasury.schema.json +401 -135
  295. package/dist/schemas/onchain_table_data.output.json +6018 -2433
  296. package/dist/schemas/onchain_table_data.schema.json +544 -430
  297. package/dist/schemas/persona_operation.output.json +1568 -268
  298. package/dist/schemas/persona_operation.schema.json +346 -205
  299. package/dist/schemas/project_operation.output.json +6922 -5132
  300. package/dist/schemas/project_operation.schema.json +1050 -1020
  301. package/dist/schemas/query_task_status.output.json +195 -99
  302. package/dist/schemas/query_task_status.schema.json +12 -18
  303. package/dist/schemas/query_toolkit.output.json +18862 -14561
  304. package/dist/schemas/query_toolkit.schema.json +614 -522
  305. package/dist/schemas/schema_query.output.json +127 -129
  306. package/dist/schemas/schema_query.schema.json +64 -69
  307. package/dist/schemas/trust_score.output.json +678 -587
  308. package/dist/schemas/trust_score.schema.json +289 -277
  309. package/dist/schemas/wip_file.output.json +116 -124
  310. package/dist/schemas/wip_file.schema.json +142 -143
  311. package/dist/schemas/workspace_operation.output.json +277 -0
  312. package/dist/schemas/workspace_operation.schema.json +45 -0
  313. package/dist/schemas/wowok_buildin_info.output.json +1682 -844
  314. package/dist/schemas/wowok_buildin_info.schema.json +576 -526
  315. package/dist/tools/handlers/bridge.d.ts +8 -1
  316. package/dist/tools/handlers/bridge.js +1 -1
  317. package/dist/tools/handlers/config.js +1 -1
  318. package/dist/tools/handlers/employee.d.ts +2 -0
  319. package/dist/tools/handlers/employee.js +1 -0
  320. package/dist/tools/handlers/evaluation.js +1 -1
  321. package/dist/tools/handlers/file-export.js +1 -1
  322. package/dist/tools/handlers/industry-pack.d.ts +2 -0
  323. package/dist/tools/handlers/industry-pack.js +1 -0
  324. package/dist/tools/handlers/onchain.js +1 -1
  325. package/dist/tools/handlers/persona.js +1 -1
  326. package/dist/tools/handlers/project.js +1 -1
  327. package/dist/tools/handlers/query.js +1 -1
  328. package/dist/tools/handlers/schema-query.js +1 -1
  329. package/dist/tools/handlers/trust.js +1 -1
  330. package/dist/tools/handlers/wip.js +1 -1
  331. package/dist/tools/handlers/workspace.d.ts +2 -0
  332. package/dist/tools/handlers/workspace.js +1 -0
  333. package/dist/tools/index.d.ts +2 -1
  334. package/dist/tools/index.js +1 -1
  335. package/dist/tools/rules-hook.d.ts +1 -1
  336. package/dist/tools/rules-hook.js +1 -1
  337. package/dist/tools/shared.d.ts +1 -1
  338. package/dist/tools/shared.js +1 -1
  339. package/dist/tools/types.d.ts +2 -1
  340. package/package.json +4 -5
  341. package/dist/knowledge/arbitration-trust.d.ts +0 -24
  342. package/dist/knowledge/arbitration-trust.js +0 -1
  343. package/dist/schema/call/bridge-handler.d.ts +0 -8
  344. package/dist/schema/call/bridge-handler.js +0 -1
  345. package/dist/schema/sync-layer4.d.ts +0 -21
  346. package/dist/schema/sync-layer4.js +0 -1
  347. /package/dist/{schema-query → schema-query-impl}/index.d.ts +0 -0
@@ -1 +1 @@
1
- import{existsSync,rmSync}from'fs';import{join}from'path';import{loadStageState,projectDir,rollbackStage as a233a}from'./project-store.js';export const REVERSIBILITY_MATRIX=[{'object_type':'permission','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Permission\x20(unpublished):\x20can\x20add\x20tables/admins\x20freely'},{'object_type':'permission','lifecycle_state':'referenced','struct_reversible':'limited','behavior_reversible':!![],'gas_impact':'medium','explanation':'Permission\x20(referenced\x20by\x20published\x20service):\x20modifications\x20limited\x20—\x20affects\x20dependents'},{'object_type':'machine','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Machine\x20(unpublished):\x20can\x20modify\x20nodes/edges/forwards\x20freely'},{'object_type':'machine','lifecycle_state':'published','struct_reversible':'immutable','behavior_reversible':!![],'gas_impact':'none','explanation':'Machine\x20(published):\x20structure\x20is\x20immutable\x20—\x20can\x20only\x20advance\x20progress'},{'object_type':'service','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Service\x20(unpublished):\x20can\x20modify\x20fields\x20freely'},{'object_type':'service','lifecycle_state':'published','struct_reversible':'immutable','behavior_reversible':!![],'gas_impact':'none','explanation':'Service\x20(published):\x20machine/order_allocators\x20frozen\x20—\x20can\x20still\x20transact\x20normally'},{'object_type':'guard','lifecycle_state':'created','struct_reversible':'immutable','behavior_reversible':![],'gas_impact':'none','explanation':'Guard:\x20create-only\x20semantics\x20—\x20immutable\x20from\x20creation'},{'object_type':'allocation','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Allocator\x20(unbound):\x20can\x20modify\x20strategy\x20freely'},{'object_type':'allocation','lifecycle_state':'bound','struct_reversible':'limited','behavior_reversible':!![],'gas_impact':'medium','explanation':'Allocator\x20(bound\x20to\x20published\x20service):\x20strategy\x20modifications\x20limited'},{'object_type':'treasury','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Treasury:\x20can\x20modify\x20rules\x20freely'},{'object_type':'arb','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Arbitration:\x20can\x20modify\x20rules\x20freely'},{'object_type':'reward','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Reward:\x20can\x20modify\x20rules\x20freely'},{'object_type':'progress','lifecycle_state':'bound','struct_reversible':'immutable','behavior_reversible':!![],'gas_impact':'none','explanation':'Progress\x20(bound\x20to\x20machine):\x20cannot\x20swap\x20machine\x20—\x20can\x20only\x20forward'},{'object_type':'order','lifecycle_state':'created','struct_reversible':'immutable','behavior_reversible':!![],'gas_impact':'none','explanation':'Order:\x20structure\x20immutable\x20after\x20creation\x20—\x20can\x20only\x20advance\x20state'}];export function queryReversibility(a,b){return REVERSIBILITY_MATRIX['find'](c=>c['object_type']===a&&c['lifecycle_state']===b);}export function getReversibilityForType(a){return REVERSIBILITY_MATRIX['filter'](b=>b['object_type']===a);}export function recommendIterationStrategy(a,b,c){const d=loadStageState(a,b);if(!d)return{'strategy':'in_place','reason':'Project\x20not\x20initialized\x20—\x20no\x20stage\x20state\x20found.\x20Use\x20in-place\x20for\x20new\x20projects.'};if(d['has_published_object']){const f=b['match'](/^v(\d+)$/),g=f?parseInt(f[0x1])+0x1:0x2,h='v'+g;return{'strategy':'fork','reason':'Project\x20has\x20published\x20on-chain\x20objects\x20—\x20in-place\x20modification\x20would\x20break\x20running\x20business.\x20'+('Fork\x20to\x20'+h+'\x20to\x20preserve\x20the\x20original\x20version\x20as\x20a\x20read-only\x20historical\x20snapshot.'),'fork_to_version':h,'published_objects':d['stage_meta'][0x5]?.['committed']?['see\x20deployment/05-substeps/\x20for\x20published\x20object\x20list']:[]};}const e=c??d['stage'];return{'strategy':'in_place','reason':'Project\x20has\x20no\x20published\x20objects\x20(current\x20stage:\x20'+e+').\x20'+'Safe\x20to\x20modify\x20the\x20current\x20version\x20directly\x20—\x20all\x20changes\x20are\x20local\x20and\x20reversible.'};}const STAGE_DIR_SUFFIXES={0x1:'01-namespace',0x2:'02-puzzle',0x3:'03-risk',0x4:'04-steps',0x5:'05-substeps'};export function evaluateRollbackPolicy(a,b,c){const d=loadStageState(a,b);if(!d)return{'allowed':![],'target_stage':c,'current_stage':0x1,'block_reason':'Project\x20not\x20initialized:\x20'+a+'_'+b,'files_to_clean':[],'warnings':[],'iteration_strategy':{'strategy':'in_place','reason':'Project\x20not\x20initialized.'}};const e=d['stage'],f=recommendIterationStrategy(a,b,e);if(d['has_published_object'])return{'allowed':![],'target_stage':c,'current_stage':e,'block_reason':'Project\x20has\x20published\x20on-chain\x20objects\x20—\x20rollback\x20is\x20forbidden\x20(§3.3).\x20'+'Use\x20fork_project\x20to\x20create\x20a\x20new\x20version\x20for\x20modifications.','files_to_clean':[],'warnings':[],'iteration_strategy':f};if(c>=e)return{'allowed':![],'target_stage':c,'current_stage':e,'block_reason':'Target\x20stage\x20'+c+'\x20must\x20be\x20less\x20than\x20current\x20stage\x20'+e+'.','files_to_clean':[],'warnings':[],'iteration_strategy':f};if(c<0x1)return{'allowed':![],'target_stage':c,'current_stage':e,'block_reason':'Cannot\x20rollback\x20below\x20stage\x201.','files_to_clean':[],'warnings':[],'iteration_strategy':f};const g=[],h=[],i=join(projectDir(a,b),'deployment');for(let j=c+0x1;j<=0x5;j++){const k=join(i,STAGE_DIR_SUFFIXES[j]);existsSync(k)&&g['push']('deployment/'+STAGE_DIR_SUFFIXES[j]+'/');}return c<=0x2&&existsSync(i)&&(g['length']=0x0,g['push']('deployment/')),g['length']>0x0&&h['push']('Rollback\x20will\x20delete\x20'+g['length']+'\x20file(s)/directory(ies):\x20'+g['join'](',\x20')+'.\x20'+'This\x20data\x20will\x20be\x20lost\x20—\x20regenerate\x20by\x20re-running\x20the\x20stage\x20action.'),{'allowed':!![],'target_stage':c,'current_stage':e,'files_to_clean':g,'warnings':h,'iteration_strategy':f};}export function rollbackStageWithPolicy(a,b,c,d){const e=evaluateRollbackPolicy(a,b,c);if(!e['allowed'])return{'success':![],'target_stage':c,'previous_stage':e['current_stage'],'files_to_clean':[],'files_cleaned':[],'stage_state':loadStageState(a,b),'warnings':[],'iteration_strategy':e['iteration_strategy'],'message':'Rollback\x20blocked:\x20'+e['block_reason']};const f=[],g=join(projectDir(a,b),'deployment');if(e['files_to_clean']['includes']('deployment/'))existsSync(g)&&(rmSync(g,{'recursive':!![],'force':!![]}),f['push']('deployment/'));else for(const i of e['files_to_clean']){const j=join(projectDir(a,b),i);existsSync(j)&&(rmSync(j,{'recursive':!![],'force':!![]}),f['push'](i));}const h=a233a(a,b,c,{'reason':d??'rollback\x20to\x20stage\x20'+c+'\x20(policy-evaluated)','affectedFiles':f['length']>0x0?f:['stage.json']});return{'success':!![],'target_stage':c,'previous_stage':e['current_stage'],'files_to_clean':e['files_to_clean'],'files_cleaned':f,'stage_state':h,'warnings':e['warnings'],'iteration_strategy':e['iteration_strategy'],'message':'Rolled\x20back\x20from\x20stage\x20'+e['current_stage']+'\x20to\x20'+c+'.\x20'+(f['length']+'\x20file(s)/directory(ies)\x20cleaned.\x20')+'Stage\x20state\x20updated.\x20'+(e['iteration_strategy']['strategy']==='fork'?'Note:\x20this\x20project\x20has\x20published\x20objects\x20—\x20future\x20modifications\x20require\x20fork.':'Project\x20has\x20no\x20published\x20objects\x20—\x20in-place\x20modification\x20is\x20safe.')};}
1
+ import{existsSync,rmSync}from'fs';import{join}from'path';import{loadStageState,projectDir,rollbackStage as a281a}from'./project-store.js';export const REVERSIBILITY_MATRIX=[{'object_type':'permission','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Permission\x20(unpublished):\x20can\x20add\x20tables/admins\x20freely'},{'object_type':'permission','lifecycle_state':'referenced','struct_reversible':'limited','behavior_reversible':!![],'gas_impact':'medium','explanation':'Permission\x20(referenced\x20by\x20published\x20service):\x20modifications\x20limited\x20—\x20affects\x20dependents'},{'object_type':'machine','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Machine\x20(unpublished):\x20can\x20modify\x20nodes/edges/forwards\x20freely'},{'object_type':'machine','lifecycle_state':'published','struct_reversible':'immutable','behavior_reversible':!![],'gas_impact':'none','explanation':'Machine\x20(published):\x20structure\x20is\x20immutable\x20—\x20can\x20only\x20advance\x20progress'},{'object_type':'service','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Service\x20(unpublished):\x20can\x20modify\x20fields\x20freely'},{'object_type':'service','lifecycle_state':'published','struct_reversible':'immutable','behavior_reversible':!![],'gas_impact':'none','explanation':'Service\x20(published):\x20machine/order_allocators\x20frozen\x20—\x20can\x20still\x20transact\x20normally'},{'object_type':'guard','lifecycle_state':'created','struct_reversible':'immutable','behavior_reversible':![],'gas_impact':'none','explanation':'Guard:\x20create-only\x20semantics\x20—\x20immutable\x20from\x20creation'},{'object_type':'allocation','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Allocator\x20(unbound):\x20can\x20modify\x20strategy\x20freely'},{'object_type':'allocation','lifecycle_state':'bound','struct_reversible':'limited','behavior_reversible':!![],'gas_impact':'medium','explanation':'Allocator\x20(bound\x20to\x20published\x20service):\x20strategy\x20modifications\x20limited'},{'object_type':'treasury','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Treasury:\x20can\x20modify\x20rules\x20freely'},{'object_type':'arb','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Arbitration:\x20can\x20modify\x20rules\x20freely'},{'object_type':'reward','lifecycle_state':'created','struct_reversible':'reversible','behavior_reversible':!![],'gas_impact':'low','explanation':'Reward:\x20can\x20modify\x20rules\x20freely'},{'object_type':'progress','lifecycle_state':'bound','struct_reversible':'immutable','behavior_reversible':!![],'gas_impact':'none','explanation':'Progress\x20(bound\x20to\x20machine):\x20cannot\x20swap\x20machine\x20—\x20can\x20only\x20forward'},{'object_type':'order','lifecycle_state':'created','struct_reversible':'immutable','behavior_reversible':!![],'gas_impact':'none','explanation':'Order:\x20structure\x20immutable\x20after\x20creation\x20—\x20can\x20only\x20advance\x20state'}];export function queryReversibility(a,b){return REVERSIBILITY_MATRIX['find'](c=>c['object_type']===a&&c['lifecycle_state']===b);}export function getReversibilityForType(a){return REVERSIBILITY_MATRIX['filter'](b=>b['object_type']===a);}export function recommendIterationStrategy(a,b,c){const d=loadStageState(a,b);if(!d)return{'strategy':'in_place','reason':'Project\x20not\x20initialized\x20—\x20no\x20stage\x20state\x20found.\x20Use\x20in-place\x20for\x20new\x20projects.'};if(d['has_published_object']){const f=b['match'](/^v(\d+)$/),g=f?parseInt(f[0x1])+0x1:0x2,h='v'+g;return{'strategy':'fork','reason':'Project\x20has\x20published\x20on-chain\x20objects\x20—\x20in-place\x20modification\x20would\x20break\x20running\x20business.\x20'+('Fork\x20to\x20'+h+'\x20to\x20preserve\x20the\x20original\x20version\x20as\x20a\x20read-only\x20historical\x20snapshot.'),'fork_to_version':h,'published_objects':d['stage_meta'][0x5]?.['committed']?['see\x20deployment/05-substeps/\x20for\x20published\x20object\x20list']:[]};}const e=c??d['stage'];return{'strategy':'in_place','reason':'Project\x20has\x20no\x20published\x20objects\x20(current\x20stage:\x20'+e+').\x20'+'Safe\x20to\x20modify\x20the\x20current\x20version\x20directly\x20—\x20all\x20changes\x20are\x20local\x20and\x20reversible.'};}const STAGE_DIR_SUFFIXES={0x1:'01-namespace',0x2:'02-puzzle',0x3:'03-risk',0x4:'04-steps',0x5:'05-substeps'};export function evaluateRollbackPolicy(a,b,c){const d=loadStageState(a,b);if(!d)return{'allowed':![],'target_stage':c,'current_stage':0x1,'block_reason':'Project\x20not\x20initialized:\x20'+a+'_'+b,'files_to_clean':[],'warnings':[],'iteration_strategy':{'strategy':'in_place','reason':'Project\x20not\x20initialized.'}};const e=d['stage'],f=recommendIterationStrategy(a,b,e);if(d['has_published_object'])return{'allowed':![],'target_stage':c,'current_stage':e,'block_reason':'Project\x20has\x20published\x20on-chain\x20objects\x20—\x20rollback\x20is\x20forbidden\x20(§3.3).\x20'+'Use\x20fork_project\x20to\x20create\x20a\x20new\x20version\x20for\x20modifications.','files_to_clean':[],'warnings':[],'iteration_strategy':f};if(c>=e)return{'allowed':![],'target_stage':c,'current_stage':e,'block_reason':'Target\x20stage\x20'+c+'\x20must\x20be\x20less\x20than\x20current\x20stage\x20'+e+'.','files_to_clean':[],'warnings':[],'iteration_strategy':f};if(c<0x1)return{'allowed':![],'target_stage':c,'current_stage':e,'block_reason':'Cannot\x20rollback\x20below\x20stage\x201.','files_to_clean':[],'warnings':[],'iteration_strategy':f};const g=[],h=[],i=join(projectDir(a,b),'deployment');for(let j=c+0x1;j<=0x5;j++){const k=join(i,STAGE_DIR_SUFFIXES[j]);existsSync(k)&&g['push']('deployment/'+STAGE_DIR_SUFFIXES[j]+'/');}return c<=0x2&&existsSync(i)&&(g['length']=0x0,g['push']('deployment/')),g['length']>0x0&&h['push']('Rollback\x20will\x20delete\x20'+g['length']+'\x20file(s)/directory(ies):\x20'+g['join'](',\x20')+'.\x20'+'This\x20data\x20will\x20be\x20lost\x20—\x20regenerate\x20by\x20re-running\x20the\x20stage\x20action.'),{'allowed':!![],'target_stage':c,'current_stage':e,'files_to_clean':g,'warnings':h,'iteration_strategy':f};}export function rollbackStageWithPolicy(a,b,c,d){const e=evaluateRollbackPolicy(a,b,c);if(!e['allowed'])return{'success':![],'target_stage':c,'previous_stage':e['current_stage'],'files_to_clean':[],'files_cleaned':[],'stage_state':loadStageState(a,b),'warnings':[],'iteration_strategy':e['iteration_strategy'],'message':'Rollback\x20blocked:\x20'+e['block_reason']};const f=[],g=join(projectDir(a,b),'deployment');if(e['files_to_clean']['includes']('deployment/'))existsSync(g)&&(rmSync(g,{'recursive':!![],'force':!![]}),f['push']('deployment/'));else for(const i of e['files_to_clean']){const j=join(projectDir(a,b),i);existsSync(j)&&(rmSync(j,{'recursive':!![],'force':!![]}),f['push'](i));}const h=a281a(a,b,c,{'reason':d??'rollback\x20to\x20stage\x20'+c+'\x20(policy-evaluated)','affectedFiles':f['length']>0x0?f:['stage.json']});return{'success':!![],'target_stage':c,'previous_stage':e['current_stage'],'files_to_clean':e['files_to_clean'],'files_cleaned':f,'stage_state':h,'warnings':e['warnings'],'iteration_strategy':e['iteration_strategy'],'message':'Rolled\x20back\x20from\x20stage\x20'+e['current_stage']+'\x20to\x20'+c+'.\x20'+(f['length']+'\x20file(s)/directory(ies)\x20cleaned.\x20')+'Stage\x20state\x20updated.\x20'+(e['iteration_strategy']['strategy']==='fork'?'Note:\x20this\x20project\x20has\x20published\x20objects\x20—\x20future\x20modifications\x20require\x20fork.':'Project\x20has\x20no\x20published\x20objects\x20—\x20in-place\x20modification\x20is\x20safe.')};}
@@ -1,6 +1,7 @@
1
1
  import type { ProjectObjectType } from "./namespace.js";
2
2
  import type { BusinessIntent } from "./intent-analyzer.js";
3
3
  import type { BusinessModule, BusinessModuleId } from "../extensions/business-modules.js";
4
+ import type { GraphEdgeBase, GraphNodeBase } from "../graph/base.js";
4
5
  export type ConfigValueType = "string" | "number" | "boolean" | "address_ref" | "guard_logic" | "enum";
5
6
  export interface ConfigValueBase {
6
7
  type: ConfigValueType;
@@ -38,8 +39,7 @@ export interface ExpectedState {
38
39
  paused: boolean;
39
40
  additional?: Record<string, unknown>;
40
41
  }
41
- export interface SemanticNode {
42
- id: string;
42
+ export interface SemanticNode extends GraphNodeBase {
43
43
  type: ProjectObjectType;
44
44
  purpose: string;
45
45
  derivedFrom: {
@@ -49,9 +49,7 @@ export interface SemanticNode {
49
49
  config: Record<string, ConfigValue>;
50
50
  expectedState: ExpectedState;
51
51
  }
52
- export interface SemanticEdge {
53
- from: string;
54
- to: string;
52
+ export interface SemanticEdge extends GraphEdgeBase {
55
53
  relation: string;
56
54
  required: boolean;
57
55
  derivedFrom: {
@@ -0,0 +1,24 @@
1
+ import type { SemanticObjectGraph } from "./semantic-graph.js";
2
+ import { type GameTheoryReport } from "./game-theory.js";
3
+ export interface DesignCheck {
4
+ id: string;
5
+ dimension: "intent" | "game" | "value";
6
+ passed: boolean;
7
+ severity: "critical" | "warning" | "info";
8
+ message: string;
9
+ fix?: string;
10
+ }
11
+ export interface DesignFinding {
12
+ kind: "business_loophole" | "semantic_loophole";
13
+ severity: "critical" | "warning" | "info";
14
+ message: string;
15
+ fix: string;
16
+ }
17
+ export interface WorkflowDesignAssessment {
18
+ checks: DesignCheck[];
19
+ findings: DesignFinding[];
20
+ game_coverage: GameTheoryReport;
21
+ score: number;
22
+ summary: string;
23
+ }
24
+ export declare function assessWorkflowDesign(graph: SemanticObjectGraph): WorkflowDesignAssessment;
@@ -0,0 +1 @@
1
+ import{checkGameTheoryConstraints}from'./game-theory.js';const VALUE_DIMENSION_CARRIERS=[{'dimension':'escrow_quality','type':'allocation','desc':'funds\x20locked\x20in\x20contract,\x20released\x20by\x20guard'},{'dimension':'proof_integrity','type':'repository','desc':'tamper-proof\x20delivery\x20evidence'},{'dimension':'arbitration_fairness','type':'arb','desc':'independent\x20dispute\x20resolution'},{'dimension':'permission_safety','type':'permission','desc':'governance\x20+\x20forward\x20authorization'},{'dimension':'content_commitment','type':'guard','desc':'delivery\x20verification\x20rules'}];function detectRefundBypass(a){const b=[],c=a['some'](e=>/refund|cancel|disput/i['test'](e['id'])),d=a['some'](e=>/arbitr/i['test'](e['id'])||e['type']==='arb');return c&&!d&&b['push']({'kind':'business_loophole','severity':'critical','message':'A\x20refund/cancel\x20path\x20exists\x20but\x20no\x20Arbitration\x20node\x20is\x20present\x20—\x20refunds\x20would\x20bypass\x20independent\x20dispute\x20review.','fix':'Add\x20an\x20Arbitration\x20node\x20(independent\x20Permission)\x20so\x20the\x20refund\x20path\x20routes\x20through\x20dispute\x20resolution.'}),b;}function detectMissingAcceptTimeout(a,b){const c=[],d=a['some'](f=>/complet|accept|finaliz|done/i['test'](f['id'])),e=b['some'](f=>/timeout|time_guard|accept_timeout/i['test'](f['relation']))||a['some'](f=>/timeout|time_guard/i['test'](f['id']));return d&&!e&&c['push']({'kind':'semantic_loophole','severity':'warning','message':'A\x20completion/accept\x20path\x20exists\x20without\x20an\x20accept-timeout\x20mechanism\x20—\x20customer\x20silence\x20could\x20stall\x20settlement\x20indefinitely.','fix':'Adopt\x20accept_timeout_protection:\x20add\x20a\x20time_guard\x20on\x20the\x20accept\x20forward\x20so\x20silence\x20advances\x20the\x20order.'}),c;}function checkIntentConsistency(a){const b=[],{businessIntent:c}=a,d=new Set(a['nodes']['map'](h=>h['type'])),e=new Set(a['nodes']['map'](h=>h['id']['toLowerCase']()));b['push']({'id':'intent_core_service','dimension':'intent','passed':d['has']('service'),'severity':'critical','message':d['has']('service')?'Core\x20Service\x20node\x20present\x20—\x20merchant\x20intent\x20has\x20a\x20structural\x20home.':'No\x20Service\x20node\x20in\x20the\x20blueprint\x20—\x20merchant\x20intent\x20has\x20no\x20structural\x20home.','fix':d['has']('service')?undefined:'Add\x20a\x20Service\x20node\x20to\x20the\x20blueprint.'});c['roles']['arbitrators']&&b['push']({'id':'intent_arbitrator','dimension':'intent','passed':d['has']('arb')||e['has']('main_arbitration'),'severity':'warning','message':'Declared\x20arbitrator\x20role\x20has\x20no\x20Arbitration\x20carrier\x20object\x20in\x20the\x20blueprint.','fix':'Add\x20an\x20Arbitration\x20object\x20to\x20the\x20blueprint.'});const f=c['deliverables']??[];f['length']>0x0&&!d['has']('repository')&&!d['has']('proof')&&b['push']({'id':'intent_deliverable','dimension':'intent','passed':![],'severity':'info','message':f['length']+'\x20deliverable(s)\x20declared\x20but\x20no\x20Repository/Proof\x20carrier\x20—\x20delivery\x20evidence\x20has\x20no\x20on-chain\x20home.','fix':'Bind\x20a\x20Repository\x20(and\x20optionally\x20Proof)\x20to\x20store\x20delivery\x20hashes.'});const g=c['payment']?.['kind']??'';return/milestone|escrow/i['test'](g)&&!d['has']('allocation')&&b['push']({'id':'intent_payment','dimension':'intent','passed':![],'severity':'critical','message':'Milestone/escrow\x20payment\x20declared\x20but\x20no\x20Allocation\x20carrier\x20—\x20funds\x20have\x20no\x20release\x20gate.','fix':'Bind\x20order_allocators\x20(Allocation)\x20so\x20funds\x20release\x20per\x20verified\x20milestone.'}),b;}function checkValueCoverage(a){const b=new Set(a['nodes']['map'](c=>c['type']));return VALUE_DIMENSION_CARRIERS['map'](d=>({'id':'value_'+d['dimension'],'dimension':'value','passed':b['has'](d['type']),'severity':d['type']==='allocation'||d['type']==='arb'?'critical':'info','message':b['has'](d['type'])?d['dimension']+':\x20'+d['type']+'\x20present\x20('+d['desc']+').':d['dimension']+':\x20missing\x20'+d['type']+'\x20carrier\x20('+d['desc']+').','fix':b['has'](d['type'])?undefined:'Add\x20a\x20'+d['type']+'\x20object\x20to\x20cover\x20'+d['dimension']+'.'}));}export function assessWorkflowDesign(a){const b=checkGameTheoryConstraints(a,a['businessIntent']),c=checkIntentConsistency(a),d=checkValueCoverage(a),e=b['results']['map'](l=>({'id':'game_'+l['scenario'],'dimension':'game','passed':l['covered'],'severity':l['scenario']==='merchant_may_abandon'?'critical':'warning','message':l['covered']?'Covered:\x20'+l['conflict']:'EXPOSED:\x20'+l['conflict'],'fix':l['covered']?undefined:l['recommendation']})),f=[...detectRefundBypass(a['nodes']),...detectMissingAcceptTimeout(a['nodes'],a['edges'])],g=[...c,...e,...d],h=g['filter'](l=>!l['passed']&&l['severity']==='critical')['length'],i=g['filter'](l=>!l['passed'])['length'],j=Math['max'](0x0,Math['min'](0x64,0x64-h*0x14-i*0x5)),k=h>0x0?'Design\x20NOT\x20ready:\x20'+h+'\x20critical\x20+\x20'+i+'\x20total\x20open\x20loop(s).':i>0x0?'Design\x20mostly\x20sound:\x20'+i+'\x20open\x20loop(s),\x20no\x20critical.':'Design\x20sound:\x20intent/game/value\x20all\x20covered.';return{'checks':g,'findings':f,'game_coverage':b,'score':j,'summary':k};}
@@ -11,7 +11,7 @@ export type ConfirmResult = {
11
11
  rule_id: string;
12
12
  };
13
13
  export declare function getFailMode(level: ConfirmLevel): FailMode;
14
- export declare function confirmGate(operation_type: string, data: any, env: any, userIntentPhrases?: string[]): ConfirmResult;
14
+ export declare function confirmGate(operation_type: string, data: any, env: any, userIntentPhrases?: string[], overrides?: Record<string, string>): ConfirmResult;
15
15
  export declare function isExplicitlyConfirmed(env: CallEnv & {
16
16
  confirmed?: boolean;
17
17
  }): boolean;
@@ -1 +1 @@
1
- import{CONFIRMATION_RULES}from'../knowledge/safety-rules.js';import{isEnabled as a245a}from'../config/index.js';export function isConfirmGateEnabled(){return a245a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+(b instanceof Error?b['message']:String(b)));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(){return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':'unknown','irreversible':!![]},'rule_id':'internal_error'};}export function confirmGate(a,b,c,d){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};let f,g=null;try{f=CONFIRMATION_RULES['find'](i=>{try{return i['when'](a,b,c);}catch(j){logInternalError('rule_when:'+i['id'],j);if(getFailMode(i['level'])==='closed')throw j;return![];}});}catch(i){g=i;}if(g)return logInternalError('rule_search',g),buildInternalErrorResult();if(!f)return{'pass':!![]};if(f['bypass_on_explicit_intent']&&d&&d['length']>0x0){const j=d['map'](l=>l['toLowerCase']()),k=f['bypass_on_explicit_intent']['some'](l=>j['some'](m=>m['includes'](l['toLowerCase']())));if(k)return{'pass':!![]};}let h;try{h=f['preview'](a,b,c);}catch(l){logInternalError('rule_preview:'+f['id'],l);if(getFailMode(f['level'])==='closed')return buildInternalErrorResult();return{'pass':!![]};}return{'pass':![],'level':f['level'],'preview':h,'rule_id':f['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}
1
+ import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as a294a}from'../config/index.js';export function isConfirmGateEnabled(){return a294a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+(b instanceof Error?b['message']:String(b)));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(){return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':'unknown','irreversible':!![]},'rule_id':'internal_error'};}export function confirmGate(a,b,c,d,f){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};let g,h=null;try{g=CONFIRMATION_RULES['find'](l=>{try{return l['when'](a,b,c);}catch(m){logInternalError('rule_when:'+l['id'],m);if(getFailMode(l['level'])==='closed')throw m;return![];}});}catch(l){h=l;}if(h)return logInternalError('rule_search',h),buildInternalErrorResult();if(!g)return{'pass':!![]};const i=resolveOverrideId(g['id'],a),j=i?f?.[i]:undefined;if(j==='auto')return{'pass':!![]};if(j!=='block'&&g['bypass_on_explicit_intent']&&d&&d['length']>0x0){const m=d['map'](o=>o['toLowerCase']()),n=g['bypass_on_explicit_intent']['some'](o=>m['some'](q=>q['includes'](o['toLowerCase']())));if(n)return{'pass':!![]};}let k;try{k=g['preview'](a,b,c);}catch(o){logInternalError('rule_preview:'+g['id'],o);if(getFailMode(g['level'])==='closed')return buildInternalErrorResult();return{'pass':!![]};}return{'pass':![],'level':g['level'],'preview':k,'rule_id':g['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}