@xdxer/dingtalk-agent 0.1.4 → 0.1.5-beta.10

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 (186) hide show
  1. package/CHANGELOG.md +232 -0
  2. package/README.en.md +115 -89
  3. package/README.md +111 -86
  4. package/dist/bin/dingtalk-agent.js +742 -152
  5. package/dist/bin/dingtalk-agent.js.map +1 -1
  6. package/dist/src/actions.js +3 -2
  7. package/dist/src/actions.js.map +1 -1
  8. package/dist/src/agent-audit.js +202 -85
  9. package/dist/src/agent-audit.js.map +1 -1
  10. package/dist/src/agent-definition.js +7 -3
  11. package/dist/src/agent-definition.js.map +1 -1
  12. package/dist/src/agent-enhance.js +51 -32
  13. package/dist/src/agent-enhance.js.map +1 -1
  14. package/dist/src/agent-platform.js +4 -4
  15. package/dist/src/agent-platform.js.map +1 -1
  16. package/dist/src/bootstrap.js +6 -2
  17. package/dist/src/bootstrap.js.map +1 -1
  18. package/dist/src/development-workspace.js +210 -34
  19. package/dist/src/development-workspace.js.map +1 -1
  20. package/dist/src/doctor.js +65 -9
  21. package/dist/src/doctor.js.map +1 -1
  22. package/dist/src/dws.js +67 -3
  23. package/dist/src/dws.js.map +1 -1
  24. package/dist/src/init.js +2 -1
  25. package/dist/src/init.js.map +1 -1
  26. package/dist/src/memory/noop-receipt.js +306 -0
  27. package/dist/src/memory/noop-receipt.js.map +1 -0
  28. package/dist/src/memory/operational.js +27 -3
  29. package/dist/src/memory/operational.js.map +1 -1
  30. package/dist/src/memory/remote-state.js +2 -1
  31. package/dist/src/memory/remote-state.js.map +1 -1
  32. package/dist/src/multica-deploy.js +692 -125
  33. package/dist/src/multica-deploy.js.map +1 -1
  34. package/dist/src/multica-provider.js +303 -25
  35. package/dist/src/multica-provider.js.map +1 -1
  36. package/dist/src/multica-runtime-vocabulary.js +110 -0
  37. package/dist/src/multica-runtime-vocabulary.js.map +1 -0
  38. package/dist/src/opencode-evals.js +6 -6
  39. package/dist/src/opencode-evals.js.map +1 -1
  40. package/dist/src/opencode-provider.js +21 -7
  41. package/dist/src/opencode-provider.js.map +1 -1
  42. package/dist/src/opencode-workspace.js +3 -3
  43. package/dist/src/opencode-workspace.js.map +1 -1
  44. package/dist/src/personal-event-evals.js +4 -2
  45. package/dist/src/personal-event-evals.js.map +1 -1
  46. package/dist/src/promotion.js +2 -1
  47. package/dist/src/promotion.js.map +1 -1
  48. package/dist/src/remote-semantic-state-live-evals.js +14 -8
  49. package/dist/src/remote-semantic-state-live-evals.js.map +1 -1
  50. package/dist/src/remote-state-evals.js +2 -2
  51. package/dist/src/remote-state-evals.js.map +1 -1
  52. package/dist/src/robot-evals.js +3 -3
  53. package/dist/src/robot-evals.js.map +1 -1
  54. package/dist/src/schedule-plan.js +380 -0
  55. package/dist/src/schedule-plan.js.map +1 -0
  56. package/dist/src/sessions.js +1 -1
  57. package/dist/src/sessions.js.map +1 -1
  58. package/dist/src/skill-manager.js +145 -13
  59. package/dist/src/skill-manager.js.map +1 -1
  60. package/dist/src/skills.js +2 -0
  61. package/dist/src/skills.js.map +1 -1
  62. package/dist/src/tui.js +369 -0
  63. package/dist/src/tui.js.map +1 -0
  64. package/dist/src/upgrade.js +113 -33
  65. package/dist/src/upgrade.js.map +1 -1
  66. package/dist/src/waits.js +2 -1
  67. package/dist/src/waits.js.map +1 -1
  68. package/dist/src/workspace.js +12 -7
  69. package/dist/src/workspace.js.map +1 -1
  70. package/docs/AGENT-IN-PRODUCTION.md +255 -0
  71. package/docs/ARCHITECTURE.md +366 -0
  72. package/docs/INSTALLATION.md +8 -8
  73. package/docs/PLATFORM-GUARDRAILS.md +188 -0
  74. package/docs/PRIOR-ART.md +126 -0
  75. package/docs/SELF-TEST.md +182 -0
  76. package/docs/architecture/agent-platform-connection-layer.svg +120 -0
  77. package/docs/architecture/digital-employee-composition.svg +92 -0
  78. package/docs/architecture/dingtalk-agent-architecture.svg +125 -0
  79. package/docs/assets/digital-employee-at-work.svg +77 -0
  80. package/docs/schemas/multica-deployment-plan.schema.json +3 -1
  81. package/docs/schemas/multica-deployment-receipt.schema.json +17 -3
  82. package/docs/schemas/multica-deployment-status.schema.json +6 -2
  83. package/docs/schemas/multica-workspace-inspection.schema.json +16 -0
  84. package/docs/schemas/multica-workspace-run-plan.schema.json +31 -0
  85. package/docs/schemas/multica-workspace-run.schema.json +161 -0
  86. package/docs/schemas/multica-workspace-status.schema.json +2 -0
  87. package/docs/schemas/project.schema.json +54 -3
  88. package/docs/schemas/workspace-scaffold.schema.json +38 -0
  89. package/examples/agents/README.md +45 -0
  90. package/examples/agents/fde-coach/AGENTS.md +2 -25
  91. package/examples/agents/fde-coach/agent/AGENTS.md +35 -0
  92. package/examples/agents/fde-coach/agent.bindings.json +10 -0
  93. package/examples/agents/release-manager/AGENTS.md +2 -25
  94. package/examples/agents/release-manager/agent/AGENTS.md +35 -0
  95. package/examples/agents/release-manager/agent.bindings.json +10 -0
  96. package/lab/agent-eval/catalog.json +5 -5
  97. package/lab/agent-eval/classic-failures.json +4 -4
  98. package/lab/agent-eval/completion-gate-regression.json +9 -9
  99. package/lab/agent-eval/personal-event-live.example.json +3 -3
  100. package/lab/agent-eval/remote-semantic-state-live.example.json +1 -1
  101. package/lab/agent-eval/workspace/opencode.json +2 -2
  102. package/lab/project-workspace/fake-multica-provider.mjs +171 -17
  103. package/lab/project-workspace/multica-deploy.fixture.json +2 -2
  104. package/lab/project-workspace/multica-readonly.fixture.json +4 -16
  105. package/lab/project-workspace/opencode-provider-suite.json +3 -3
  106. package/lab/project-workspace/project.fixture.json +2 -6
  107. package/lab/robot-eval/suite.json +1 -1
  108. package/lab/robot-eval/workspace/AGENTS.md +1 -1
  109. package/lab/robot-eval/workspace/opencode.json +2 -2
  110. package/lab/schemas/personal-event-eval.schema.json +1 -1
  111. package/package.json +18 -11
  112. package/skills/README.md +10 -8
  113. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/SKILL.md +49 -24
  114. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/assets/AGENTS.template.md +1 -1
  115. package/skills/core/dta-agent-compose/assets/REPOSITORY.template.md +10 -0
  116. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/assets/agent.bindings.dingtalk-doc.template.json +2 -2
  117. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/assets/agent.bindings.local.template.json +2 -2
  118. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/assets/hosts/opencode/opencode.template.json +3 -2
  119. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/evals/evals.json +4 -4
  120. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/references/agent-definition-contract.md +7 -7
  121. package/skills/core/dta-agent-compose/references/drive-and-schedules.md +166 -0
  122. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/references/host-loading-contract.md +11 -13
  123. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/references/hosts/claude-code.md +13 -12
  124. package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/references/hosts/opencode.md +14 -13
  125. package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/SKILL.md +28 -3
  126. package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/assets/eval-catalog.template.json +1 -1
  127. package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/evals/evals.json +1 -1
  128. package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/references/eval-topology.md +3 -3
  129. package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/references/interactive-debug-channels.md +10 -4
  130. package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/SKILL.md +21 -5
  131. package/skills/core/dta-basic-behavior/references/event-to-behavior.md +38 -0
  132. package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/references/memory-and-evolution.md +3 -1
  133. package/skills/core/dta-basic-behavior/references/perception-and-gates.md +87 -0
  134. package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/references/risk-authority-and-privacy.md +12 -0
  135. package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/references/truth-and-recovery.md +4 -2
  136. package/skills/core/dta-people-group-memory/COMPLETENESS.md +36 -0
  137. package/skills/core/dta-people-group-memory/SKILL.md +69 -0
  138. package/skills/core/dta-people-group-memory/references/adapters.md +273 -0
  139. package/skills/core/dta-people-group-memory/references/assembly-guidance.md +40 -0
  140. package/skills/core/dta-people-group-memory/references/binding.md +110 -0
  141. package/skills/core/dta-people-group-memory/references/cold-start.md +70 -0
  142. package/skills/core/dta-people-group-memory/references/config-binding.md +89 -0
  143. package/skills/core/dta-people-group-memory/references/consent-and-visibility.md +83 -0
  144. package/skills/core/dta-people-group-memory/references/consolidation.md +162 -0
  145. package/skills/core/dta-people-group-memory/references/event-ingest.md +103 -0
  146. package/skills/core/dta-people-group-memory/references/guided-setup.md +70 -0
  147. package/skills/core/dta-people-group-memory/references/model.md +148 -0
  148. package/skills/core/dta-people-group-memory/references/storage-port.md +107 -0
  149. package/skills/platforms/deap/PLATFORM.md +30 -1
  150. package/skills/platforms/multica-dingtalk/PLATFORM.md +35 -9
  151. package/skills/platforms/multica-dingtalk/{dingtalk-agent-deploy-multica → dta-deploy-multica}/SKILL.md +10 -8
  152. package/skills/platforms/multica-dingtalk/dta-deploy-multica/references/multica-deployment-contract.md +67 -0
  153. package/skills/platforms/multica-dingtalk/{multica-external → dta-ops-multica}/SKILL.md +81 -11
  154. package/skills/platforms/multica-dingtalk/{multica-external → dta-ops-multica}/scripts/bootstrap.sh +2 -2
  155. package/skills/platforms/multica-dingtalk/{multica-external → dta-ops-multica}/scripts/multica_ext.py +264 -16
  156. package/dist/src/map.js +0 -157
  157. package/dist/src/map.js.map +0 -1
  158. package/docs/SECOND-AGENT-ACCEPTANCE.md +0 -62
  159. package/docs/architecture/agent-memory-topology.png +0 -0
  160. package/docs/architecture/agent-memory-topology.svg +0 -132
  161. package/docs/architecture/dingtalk-agent-blueprint.png +0 -0
  162. package/docs/architecture/durable-async-agent-runtime.png +0 -0
  163. package/docs/architecture/general-agent-kernel-topology.png +0 -0
  164. package/docs/architecture/provider-bound-development-workspace.png +0 -0
  165. package/docs/architecture/task-completion-gate.png +0 -0
  166. package/docs/assets/agent-delivery-lifecycle.svg +0 -103
  167. package/skills/core/dingtalk-basic-behavior/references/event-to-behavior.md +0 -24
  168. package/skills/core/dingtalk-basic-behavior/references/perception-and-gates.md +0 -28
  169. package/skills/platforms/deap/README.md +0 -3
  170. package/skills/platforms/multica-dingtalk/dingtalk-agent-boot-multica/SKILL.md +0 -40
  171. package/skills/platforms/multica-dingtalk/dingtalk-agent-deploy-multica/references/multica-deployment-contract.md +0 -49
  172. /package/examples/agents/fde-coach/{skills → agent/skills}/fde-coach/SKILL.md +0 -0
  173. /package/examples/agents/release-manager/{skills → agent/skills}/release-manager/SKILL.md +0 -0
  174. /package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/assets/role-skill.template.md +0 -0
  175. /package/skills/core/{dingtalk-agent-compose → dta-agent-compose}/references/storage-routing.md +0 -0
  176. /package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/references/evidence-contract.md +0 -0
  177. /package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/references/failure-to-case.md +0 -0
  178. /package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/references/local-connector-smoke.md +0 -0
  179. /package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/references/scenario-taxonomy.md +0 -0
  180. /package/skills/core/{dingtalk-agent-eval → dta-agent-eval}/references/storage-modes.md +0 -0
  181. /package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/assets/memory-candidate-proposal.json +0 -0
  182. /package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/assets/task-checkpoint.json +0 -0
  183. /package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/references/action-contract.md +0 -0
  184. /package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/references/runtime-modes.md +0 -0
  185. /package/skills/core/{dingtalk-basic-behavior → dta-basic-behavior}/references/task-lifecycle.md +0 -0
  186. /package/skills/platforms/multica-dingtalk/{dingtalk-agent-deploy-multica → dta-deploy-multica}/references/promotion-observation-contract.md +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"remote-semantic-state-live-evals.js","sourceRoot":"","sources":["../../src/remote-semantic-state-live-evals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EACL,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,GACxF,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,SAAS,EAAwB,MAAM,gBAAgB,CAAA;AAChE,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EACL,uBAAuB,EAAE,4BAA4B,EAErD,8BAA8B,GAC/B,MAAM,0BAA0B,CAAA;AAqDjC,MAAM,UAAU,GAAG,kDAAkD,CAAA;AACrE,MAAM,WAAW,GAAG,sEAAsE,CAAA;AAC1F,MAAM,yBAAyB,GAA4B;IACzD,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IAC/B,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACjC,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;IAC/C,CAAC,OAAO,EAAE,YAAY,CAAC;IACvB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IAC9C,CAAC,aAAa,EAAE,wFAAwF,CAAC;CAC1G,CAAA;AAED,MAAM,UAAU,oCAAoC,CAClD,IAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,UAA0C,EAAE;IAE5C,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;IACzE,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE;QACjC,KAAK,EAAE,aAAa,SAAS,EAAE;QAC/B,MAAM,EAAE,aAAa,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;QAChD,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;QACpC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;QACvC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;QACzC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc;QACvD,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IACF,MAAM,mBAAmB,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACvD,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM;QACpD,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/E,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,kDAAkD;QAC3D,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,KAAK,CAAC,cAAc,KAAK,KAAK;QAC9C,KAAK,EAAE,mBAAmB,CAAC,MAAM,KAAK,CAAC;QACvC,mBAAmB;QACnB,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC;QAC3D,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC;QACvD,QAAQ,EAAE,YAAY;QACtB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,aAAa,EAAE,8CAA8C;QAC7D,aAAa;QACb,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;QAC/B,UAAU,EAAE;YACV,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,SAAS,CAAC;YACnE,wBAAwB;YACxB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D;QACD,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,qEAAqE;QAChF,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY;KAC1C,CAAA;IACD,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACjC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAA;IACH,CAAC;IACD,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wCAAwC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3F,CAAC;IACD,IAAI,aAAa,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,aAAa,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,KAAK,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,EAAE,CAAA;IAC3D,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IAC3E,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAChD,SAAS,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/F,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IACvF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAElE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;IACzD,IAAI,KAAK,GAAG,WAAW,CAAA;IACvB,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,MAAM,YAAY,GAA0B,EAAE,CAAA;IAC9C,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAQ,EAAE;QAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,UAAU,IAAI,CAAC,CAAA;IACjB,CAAC,CAAA;IAED,IAAI,CAAC;QACH,KAAK,GAAG,iCAAiC,CAAA;QACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QAChF,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CACb,gCAAgC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,IAAI;gBAC3E,UAAU,YAAY,IAAI,GAAG,EAAE,CAChC,CAAA;QACH,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,EAAE,QAAQ,CAAC,CAAA;QAEjE,MAAM,cAAc,GAAG,EAAkC,CAAA;QACzD,MAAM,YAAY,GAAG,EAA+C,CAAA;QACpE,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACzC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC9E,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACtB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YACtF,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACpC,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;QAC3B,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,YAAY,CAAC,CAAA;QAEjE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAA;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CACjC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAC1D,CAAA;QACD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACzE,MAAM,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC;YAC1C,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;YAChE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;SAC1C,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QACjE,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACvD,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE;YAC9C,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAE,CAAC,IAAI,EAAE,IAAI,CAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;oBACzE,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE;oBACzF,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;iBACnC,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE;gBACP,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,IAAI;gBAC1E,mBAAmB,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;gBAC9C,mBAAmB,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;aACtD;YACD,qBAAqB,EAAE,KAAK;SAC7B,CAAC,CAAA;QAEF,KAAK,GAAG,oBAAoB,CAAA;QAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,EAAE;YACpE,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;YACtE,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC,CAAA;QACH,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAA;QAErE,KAAK,GAAG,mBAAmB,CAAA;QAC3B,IAAI,aAAa,GAAwB,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QAC5F,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,uBAAuB,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,EAAE,CAAA;YACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAA;YAC7C,YAAY,CAAC,QAAQ,CAAC,CAAA;YACtB,MAAM,QAAQ,GAAG,oBAAoB,CACnC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAC/E,CAAA;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YACzF,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;YAC9D,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,EAAE,uBAAuB,EAAE;gBAChE,MAAM,EAAE,0BAA0B,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;gBACvE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS;aACxD,CAAC,CAAA;YACF,aAAa,GAAG;gBACd,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;gBAC1D,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;gBACtD,MAAM,EAAE,WAAW,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;aACjF,CAAA;YACD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC,CAAA;YACnE,IAAI,CAAC,aAAa,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACpF,CAAC;QACD,UAAU,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;QAE5C,KAAK,GAAG,yBAAyB,CAAA;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA;YAChD,YAAY,CAAC,QAAQ,CAAC,CAAA;YACtB,MAAM,QAAQ,GAAG,oBAAoB,CACnC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CACtE,CAAA;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YACzF,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YACxD,MAAM,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAA;YAClC,YAAY,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ;gBAClE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ;gBACpC,YAAY,EAAE,oCAAoC;aACnD,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,kBAAkB,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC;YAC1C,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;YAChE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;SAC1C,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QACjE,MAAM,KAAK,GAA4B,EAAE,CAAA;QACzC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC9C,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACnE,CAAC;QACD,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAChD,YAAY,CAAC,UAAU,CAAC,CAAA;QACxB,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,CACpC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAC5E,CAAA;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC;YAC1C,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;YAChE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;SAC1C,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QACjE,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACrD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACjF,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;SAClD,CAAC,CAAC,CAAA;QACH,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1E,WAAW,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,EAAE,CAAC,QAAQ,CAAA;QAChF,YAAY,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,UAAU;YACnD,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACvD,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc;YAC/D,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU;YAC5D,YAAY,EAAE,gDAAgD;SAC/D,CAAC,CAAA;QACF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,YAAY,CAAC,CAAA;QACjE,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACpE,IAAI,UAAU,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,CAAA;QAChF,CAAC;QAED,KAAK,GAAG,sBAAsB,CAAA;QAC9B,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACvD,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACxF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACxF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACjF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,EAAE,WAAW,CAAC,CAAA;QAEvE,KAAK,GAAG,sBAAsB,CAAA;QAC9B,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,kBAAkB,EAAE;YACzE,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;YACtE,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC,CAAA;QACH,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5D,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;QAEzC,KAAK,GAAG,sBAAsB,CAAA;QAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,mBAAmB,EAAE;YAC3E,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;YACtE,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC,CAAA;QACH,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAA;QAC9D,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;QACxE,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAE9E,KAAK,GAAG,0BAA0B,CAAA;QAClC,MAAM,eAAe,GAAG,wBAAwB,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QACnG,MAAM,cAAc,GAAG,2BAA2B,CAChD,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CACtD,CAAA;QACD,MAAM,UAAU,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,cAAc,EAAE,CAAA;QAC5D,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QAED,KAAK,GAAG,mBAAmB,CAAA;QAC3B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;YACjF,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;YAC5D,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACxC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7D,QAAQ,CAAC,EAAE,CAAC,WAAW,KAAK,CAAC;YAC7B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAA;QACpF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,EAAE;YAC7C,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,6DAA6D;YACrE,UAAU;YACV,YAAY,EAAE;gBACZ,EAAE,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC1D,EAAE,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC1D,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC9D,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;iBAC5D,CAAC,CAAC;aACJ;YACD,mBAAmB,EAAE,QAAQ,CAAC,EAAE,CAAC,WAAW;SAC7C,CAAC,CAAA;QACF,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAEzD,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,wDAAwD;YACjE,KAAK;YACL,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE;YAC7F,SAAS;YACT,UAAU;YACV,YAAY,EAAE;gBACZ,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ;gBACrD,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAgB;gBACrE,kBAAkB,EAAE,IAAI;aACzB;YACD,YAAY;YACZ,WAAW,EAAE;gBACX,KAAK,CAAC,sBAAsB;oBAC1B,CAAC,CAAC,yCAAyC;oBAC3C,CAAC,CAAC,gGAAgG;gBACpG,iGAAiG;gBACjG,4HAA4H;aAC7H;SACF,CAAA;QACD,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,EAAE,UAAU,CAAC,CAAA;QAC5D,OAAO;YACL,OAAO,EAAE,oDAAoD;YAC7D,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,YAAY;YACZ,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;YACzE,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,SAAS;YACT,UAAU;YACV,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;YACnC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;YACjD,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE;YAC5C,OAAO,EAAE,qDAAqD;YAC9D,KAAK,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY;YACvE,sBAAsB,EAAE,UAAU,GAAG,CAAC;YACtC,WAAW,EAAE,gCAAgC;SAC9C,CAAC,CAAA;QACF,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAkC,EAAE,KAAsB;IAC/E,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACxE,IAAI,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtF,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC,EAAE,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACpD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACtD,CAAC;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9E,IAAI,aAAa,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClF,MAAM,iBAAiB,GAAG;QACxB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC1F,CAAC,IAAI,EAAE,CAAA;IACR,IAAI,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC9F,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACrD,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAA;IAC5E,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IACD,MAAM,KAAK,GAAG,KAA4B,CAAA;IAC1C,UAAU,CAAC,KAAK,EAAE;QAChB,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB;QAC3E,cAAc,EAAE,OAAO,EAAE,wBAAwB;KAClD,EAAE,OAAO,CAAC,CAAA;IACX,IAAI,KAAK,CAAC,OAAO,KAAK,kDAAkD;QACpE,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,QAAQ,KAAK,oBAAoB;QACvC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACvC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACzB,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAA;IAC/E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACnD,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,yBAAyB,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IACD,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE;QACtB,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe;KACvF,EAAE,OAAO,CAAC,CAAA;IACX,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;IAC7E,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAA;IACzF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAA;IACzF,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAChE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI;QAC3D,KAAK,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACvE,CAAC;IACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/B,GAAG,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;YAC/B,GAAG,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa;SACxD;KACF,CAAC,CAAgC,CAAA;AACpC,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAyB,EACzB,WAAgC,EAChC,QAAqC,EACrC,QAAmC;IAEnC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7B,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAA;IACxE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;IAChG,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,sBAAsB,IAAI,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAqC;IAG9D,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAmB,CAAC;QACnC,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,OAAO,EAAE;YACP,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE;gBACR,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC9D,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;aACvE;SACF;QACD,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO;KACpC,CAAC,CAAA;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,CAAC,MAAM,EAAE,CACnE,CAAA;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAW,EAAE,QAAqC;IAC9E,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAC,QAAQ,aAAa,CAAC,CAAA;IACpE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAA;IAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,KAAK,GAAoB;QAC7B,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjD,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAClD,CAAA;IACD,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,CAAU,EAAE,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAqC;IAChE,MAAM,SAAS,GAAG,EAA+B,CAAA;IACjD,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACxE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QAChF,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,0BAA0B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpF,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;IACjE,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC1C,OAAO;QACL,SAAS;QACT,EAAE,EAAE;YACF,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;SAChC;KACF,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAsB,EACtB,KAAmB,EACnB,MAAoB,EACpB,QAA6B;IAE7B,MAAM,MAAM,GAAG;QACb,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,qBAAqB;QACrE,eAAe,EAAE,WAAW,EAAE,YAAY;KAClC,CAAA;IACV,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE;YACnE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACtD,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;SACpD,CAAC,CAAC,CAAC,CAAA;IACJ,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI;QACzE,KAAK,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI;QACxD,KAAK,CAAC,KAAK,CAAC,mBAAmB,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAA;IACtD,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,KAAK,CAAC,cAAc;YAClE,QAAQ,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,KAAK,CAAC,YAAY;YACxD,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,aAAa;QAClG,WAAW,EAAE,QAAQ,CAAC,GAAG;QACzB,QAAQ,EAAE,KAAK,CAAC,GAAG;QACnB,SAAS,EAAE,MAAM,CAAC,GAAG;QACrB,iBAAiB,EAAE,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;QAC3C,aAAa,EAAE,IAAI;QACnB,wBAAwB,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,KAAK,CAAC,cAAc;QACtF,sBAAsB,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,KAAK,CAAC,YAAY;QAChF,WAAW;QACX,8BAA8B,EAAE,aAAa;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,SAAiB,EACjB,cAAsB,EACtB,MAAoB,EACpB,QAAqC;IAErC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAA;IAC9C,MAAM,gBAAgB,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAA;IAC3D,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACrE,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,IAAI,CAAC;QAAC,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAAC,CAAC;IAC7E,OAAO,KAAK,EAAE,CAAC;QAAC,SAAS,GAAI,KAAe,CAAC,OAAO,CAAA;IAAC,CAAC;IACtD,aAAa,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;IAE7C,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;IAClF,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClE,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5D,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,aAAa,gCAAgC,CAAC,CAAA;IACjF,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,CAAC;QAAC,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAAC,CAAC;IAC7E,OAAO,KAAK,EAAE,CAAC;QAAC,UAAU,GAAI,KAAe,CAAC,OAAO,CAAA;IAAC,CAAC;IACvD,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAEtF,OAAO;QACL,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;QACtG,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;QACvG,aAAa,EAAE;YACb,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,SAAS;YACrE,cAAc;SACf;KACF,CAAA;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,YAAoB,EACpB,SAAiB,EACjB,KAAkC,EAClC,KAA0B,EAC1B,MAAoB;IAEpB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC/B,MAAM,MAAM,GAAG,CAAC,KAAmD,EAAE,EAAE;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAgC,CAAA;QACjF,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,mBAAmB,EAAE;QAC/D,MAAM,EAAE,yBAAyB,EAAE,SAAS;QAC5C,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC;QAC1D,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,IAAI,WAAW,CAAA,CAAC,CAAC,CAAC;KAC/E,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,IAAI,WAAW,CAAA,CAAC,CAAC,CAAC,CAAA;IACrF,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,IAAI,CAAC;QAAC,8BAA8B,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IAAC,CAAC;IACnF,OAAO,KAAK,EAAE,CAAC;QAAC,WAAW,GAAI,KAAe,CAAC,OAAO,CAAA;IAAC,CAAC;IACxD,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE;QACrD,MAAM,EAAE,yBAAyB,EAAE,SAAS;QAC5C,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC;QACrD,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,WAAW,CAAA,CAAC,CAAC,CAAC;KAC7E,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,EAAE,gBAAgB,EAAE;QACzD,MAAM,EAAE,yBAAyB,EAAE,SAAS;QAC5C,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,gBAAgB,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,KAAK,CAAC,OAAO,IAAI,WAAW,CAAA;YAC5B,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAClD,CAAC,CAAC;KACH,CAAC,CAAA;IACF,IAAI,OAA4B,CAAA;IAChC,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CACtB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAClE,CAAA;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ;YACxE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;QACvD,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IACtE,CAAC;SAAM,CAAC;QACN,OAAO,GAAG;YACR,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI;YAC9C,KAAK,EAAE,kFAAkF;SAC1F,CAAA;IACH,CAAC;IACD,OAAO;QACL,gBAAgB,EAAE;YAChB,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjF,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;SAC9B;QACD,gBAAgB,EAAE;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACxE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,8EAA8E;SACtF;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YAC7F,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;SACzB;QACD,aAAa,EAAE;YACb,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACzG,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;SAC3B;QACD,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE;QACzC,OAAO;QACP,iBAAiB,EAAE;YACjB,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;YAC5B,KAAK,EAAE,0FAA0F;SAClG;QACD,2BAA2B,EAAE;YAC3B,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK;YACjD,KAAK,EAAE,gGAAgG;SACxG;KACF,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CACnB,YAAoB,EACpB,IAAY,EACZ,KAA8B;IAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,aAAa,CAAC,CAAA;IACvE,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC3B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,mCAAmC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/F,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;QAC/D,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAChE,CAAC,CAAA;IACF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IACnF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IAClF,IAAI,MAAM,GAAwB,IAAI,CAAA;IACtC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAiB,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,GAAG,IAAI,CAAA;QAAC,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,CAAA;AACjE,CAAC;AAED,SAAS,aAAa,CAAC,UAA4B;IACjD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAA;IACzF,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAA;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAC3B,YAAoB,EACpB,KAAa,EACb,GAAW,EACX,MAAc,EACd,OAAe;IAEf,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,GAAG,KAAK,KAAK,CAAC,CAAA;IAC9D,SAAS,CAAC,IAAI,EAAE,mDAAmD,MAAM,IAAI,CAAC,CAAA;IAC9E,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,MAAc;IACrD,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,iDAAiD,MAAM,EAAE,CAAA;AACpF,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAyB;IACzD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC7D,IAAI,WAAW,KAAK,QAAQ,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,gBAAgB;YACjC,kBAAkB,WAAW,IAAI,GAAG,cAAc,SAAS,IAAI,GAAG,EAAE,CACrE,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,IAAY;IAC1D,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChF,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;AACpG,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,MAAc;IACvD,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAI,CAAC,gBAAgB;QAAE,OAAO,CAAC,CAAA;IAC/B,OAAO,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAClF,CAAC;AAED,SAAS,aAAa,CAAC,QAAqC;IAC1D,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7B,OAAO,oBAAoB,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAA;AACrE,CAAC;AAED,SAAS,cAAc,CAAC,QAAqC;IAC3D,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACxE,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;QAC7H,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YACjG,EAAE,EAAE;gBACF,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI;gBAC3D,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC;gBAChF,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;gBAC1C,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACxH,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC3G;YACD,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;SAClG;QACD,YAAY,EAAE,QAAQ,CAAC,YAAY;KACpC,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB,EAAE,KAAa,EAAE,KAAa;IACvE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACtC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;IAC7C,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9B,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAC7E,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAa,EAAE,KAAa;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACtC,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,cAAc,CAAC,CAAA;IAC5F,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IACpC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,UAAU,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAE,KAAa;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACtC,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,cAAc,CAAC,CAAA;IAC5F,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IACpC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,UAAU,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,KAAa;IAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,IAAY,EAAE,KAAa;IACzE,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,MAAK;QAC/B,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,eAAe,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,GAAW;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAA;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAClC,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAA;QAChC,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,KAAK,GAAG,KAAgC,CAAA;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAU,CAAA;IACzD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClC,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;IAChC,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,IAAc;IAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACnC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;QACvC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,KAAgC,CAAA;IAC9C,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;IACvE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;IACvC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,KAAgC,CAAA;QAC9C,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,IAAI,GAAG,OAAO;IACxD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAM;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;QAC7E,OAAM;IACR,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC3E,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,IAAI,GAAG,EAAE,CAAC,CAAA;QACnF,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAChE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC7F,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,OAAiB,EAAE,KAAa;IAClE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,kBAAkB,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IACxE,IAAI,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,KAAa,EAAE,QAAQ,GAAG,KAAK;IACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5C,IAAI,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC,CAAA;IACvE,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC,CAAA;IAChF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,KAAc;IAC7C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa;IAC5C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,KAAK,CAAC,KAAc;IAC3B,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACnC,CAAC","sourcesContent":["import { randomUUID } from 'node:crypto'\nimport { spawnSync } from 'node:child_process'\nimport {\n existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, writeFileSync,\n} from 'node:fs'\nimport { dirname, join, relative, resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { bootstrap, type BootstrapResult } from './bootstrap.js'\nimport * as dws from './dws.js'\nimport { digest, stableStringify } from './events.js'\nimport {\n planRemoteSemanticState, rehydrateRemoteSemanticState,\n type RemoteSemanticStateProvider, type RemoteSemanticStateResult,\n verifyRemoteSemanticStateCache,\n} from './memory/remote-state.js'\n\ntype DocumentSlot = 'l1' | 'l3'\ntype WritableStructuredField = 'summary' | 'nextAction'\n\ninterface RemoteSemanticStateLiveSpec {\n $schema: 'dingtalk-agent/remote-semantic-state-live-eval@1'\n id: string\n scenario: 'memory-and-storage'\n liveAuthorized: 'yes' | 'no'\n provider: RemoteSemanticStateProvider\n requiredSkills: string[]\n evidenceRoot: string\n write: {\n allowlist: string[]\n budget: number\n documentSlots: DocumentSlot[]\n aitableFields: WritableStructuredField[]\n driftProbe: boolean\n retainMarkers: true\n }\n nonAdocNegativeTestUri?: string\n}\n\nexport interface RemoteSemanticStateLiveOptions {\n execute?: boolean\n live?: boolean\n yes?: boolean\n}\n\ninterface StructuredState {\n recordId: string\n key: string\n scopeId: string\n status: string\n nextAction: string\n summary: string\n sourceRefs: string\n}\n\ninterface WorkerResult {\n $schema: 'dingtalk-agent/remote-semantic-state-worker-result@1'\n pid: number\n bootstrap: BootstrapResult\n state: RemoteSemanticStateResult\n}\n\ninterface WorkerInvocation {\n status: number | null\n stderr: string\n result: WorkerResult | null\n}\n\nconst SECRET_KEY = /(?:secret|token|password|credential|privateKey)/i\nconst PLACEHOLDER = /(?:replace-with|<[^>]+>|dedicated-test|readback-user-id|known-node)/i\nconst FORBIDDEN_REMOTE_PATTERNS: Array<[string, RegExp]> = [\n ['waitId', /\\bwait[-_ ]?id\\b/i],\n ['generation', /\\bgeneration\\b/i],\n ['idempotencyKey', /\\bidempotency[-_ ]?key\\b/i],\n ['lease', /\\blease\\b/i],\n ['Action Receipt', /\\baction[-_ ]?receipt\\b/i],\n ['credentials', /\\b(?:credential|client[-_ ]?secret|access[-_ ]?token|refresh[-_ ]?token|password)s?\\b/i],\n]\n\nexport function runRemoteSemanticStateLiveEvaluation(\n root: string,\n workspacePath: string,\n suitePath: string,\n options: RemoteSemanticStateLiveOptions = {},\n): Record<string, any> {\n const workspace = safeExistingDirectory(root, workspacePath, 'workspace')\n const suiteFile = safeExistingFile(root, suitePath, 'suite')\n const suite = validateSpec(readJson(suiteFile))\n const providerPlan = planRemoteSemanticState(suite.provider)\n const local = bootstrap(workspace, {\n agent: `local-dir:${workspace}`,\n skills: `local-dir:${join(workspace, 'skills')}`,\n memory: suite.provider.layers.l1.uri,\n knowledge: suite.provider.layers.l3.uri,\n profile: suite.provider.authority.profile,\n expectedUserId: suite.provider.authority.expectedUserId,\n deferRemote: true,\n })\n const missingRequirements = readinessGaps(suite, local)\n const writesPlanned = suite.write.documentSlots.length +\n (suite.write.aitableFields.length ? 1 : 0) + (suite.write.driftProbe ? 1 : 0)\n const plan = {\n $schema: 'dingtalk-agent/remote-semantic-state-live-plan@1',\n id: suite.id,\n scenario: suite.scenario,\n engine: 'storage',\n sideEffect: false,\n remoteRead: false,\n liveAuthorized: suite.liveAuthorized === 'yes',\n ready: missingRequirements.length === 0,\n missingRequirements,\n workspace: relative(realpathSync(resolve(root)), workspace),\n suite: relative(realpathSync(resolve(root)), suiteFile),\n provider: providerPlan,\n requiredSkills: suite.requiredSkills,\n executionGate: 'LIVE_AUTHORIZED=yes + --execute --live --yes',\n writesPlanned,\n writeBudget: suite.write.budget,\n writeKinds: [\n ...suite.write.documentSlots.map((slot) => `append-${slot}-marker`),\n 'update-fixed-l2-record',\n ...(suite.write.driftProbe ? ['append-l1-drift-marker'] : []),\n ],\n evidenceRoot: suite.evidenceRoot,\n coldStart: 'pre-write baseline + post-write process A + new-state-dir process B',\n controlState: suite.provider.controlState,\n }\n if (!options.execute) return plan\n if (!options.live || !options.yes || suite.liveAuthorized !== 'yes') {\n throw new Error(\n 'Phase 11B 真实 DWS 读取/写入必须同时满足 LIVE_AUTHORIZED=yes 与 --execute --live --yes',\n )\n }\n if (missingRequirements.length) {\n throw new Error(`Phase 11B Live 资源或本地 Definition 未就绪: ${missingRequirements.join('; ')}`)\n }\n if (writesPlanned !== suite.write.budget) {\n throw new Error(`Phase 11B 写预算必须精确等于计划写次数 ${writesPlanned}`)\n }\n\n const runId = `DTA-PHASE-11B-${Date.now()}-${randomUUID()}`\n const evidenceRoot = safeEvidenceRoot(workspace, suite.evidenceRoot, runId)\n mkdirSync(evidenceRoot, { recursive: true })\n const planPath = join(evidenceRoot, 'plan.json')\n writeJson(planPath, { ...plan, sideEffect: 'authorized-live-probes', remoteRead: true, runId })\n writeJson(join(evidenceRoot, 'provider.redacted.json'), redactProvider(suite.provider))\n writeJson(join(evidenceRoot, 'provider.raw.json'), suite.provider)\n\n const stateRoot = join(evidenceRoot, 'state')\n const activeStateDir = join(stateRoot, 'active')\n const baselineStateDir = join(stateRoot, 'baseline')\n const firstStateDir = join(stateRoot, 'first-post-write')\n let stage = 'preflight'\n let writeCount = 0\n const writeResults: Record<string, any>[] = []\n const consumeWrite = (resource: string): void => {\n if (!suite.write.allowlist.includes(resource)) {\n throw new Error(`Phase 11B 写目标不在 allowlist: ${resource}`)\n }\n if (writeCount >= suite.write.budget) {\n throw new Error(`Phase 11B 写预算耗尽: ${writeCount}/${suite.write.budget}`)\n }\n writeCount += 1\n }\n\n try {\n stage = 'identity-and-resource-preflight'\n const identity = dws.getSelf(suite.provider.authority.profile)\n const actualUserId = clean(findValue(identity, ['userId', 'user_id', 'userid']))\n if (!actualUserId || actualUserId !== suite.provider.authority.expectedUserId) {\n throw new Error(\n `Phase 11B DWS 身份不符: expected=${suite.provider.authority.expectedUserId}, ` +\n `actual=${actualUserId || '-'}`,\n )\n }\n writeJson(join(evidenceRoot, 'identity-readback.json'), identity)\n\n const documentBodies = {} as Record<DocumentSlot, string>\n const documentInfo = {} as Record<DocumentSlot, Record<string, any>>\n for (const slot of ['l1', 'l3'] as const) {\n const layer = suite.provider.layers[slot]\n const info = dws.docInfo(nodeRef(layer.uri), suite.provider.authority.profile)\n assertAdoc(slot, info)\n const body = String(dws.readDoc(nodeRef(layer.uri), suite.provider.authority.profile))\n assertRemoteMarkdownSafe(slot, body)\n documentBodies[slot] = body\n documentInfo[slot] = info\n }\n writeJson(join(evidenceRoot, 'document-info.json'), documentInfo)\n\n const l2 = suite.provider.layers.l2\n const base = dws.getAiTableBase(l2.baseId, suite.provider.authority.profile)\n const tables = dws.getAiTableTables(\n l2.baseId, [l2.tableId], suite.provider.authority.profile,\n )\n verifyTableShape(base, tables, suite.provider, suite.write.aitableFields)\n const initialRows = dws.queryAiTableRecords({\n baseId: l2.baseId, tableId: l2.tableId, recordIds: [l2.recordId],\n profile: suite.provider.authority.profile,\n })\n const initial = exactStructuredState(initialRows, suite.provider)\n const initialUnique = queryUniqueRecord(suite.provider)\n writeJson(join(evidenceRoot, 'preflight.json'), {\n identityMatched: true,\n documents: Object.fromEntries((['l1', 'l3'] as const).map((slot) => [slot, {\n type: `${String(documentInfo[slot].contentType)}/${String(documentInfo[slot].extension)}`,\n hash: digest(documentBodies[slot]),\n }])),\n aitable: {\n baseRead: Boolean(base), tableRead: Boolean(tables), recordIdMatched: true,\n uniqueKeyScopeCount: initialUnique.rows.length,\n structuredStateHash: digest(stableStringify(initial)),\n },\n dryRunHadNoRemoteCall: false,\n })\n\n stage = 'pre-write-baseline'\n const baseline = requireWorker(invokeWorker(evidenceRoot, 'baseline', {\n action: 'bootstrap-and-rehydrate', workspace, stateDir: activeStateDir,\n provider: suite.provider,\n }))\n writeJson(join(evidenceRoot, 'bootstrap', 'baseline.json'), baseline)\n\n stage = 'drift-fail-closed'\n let driftEvidence: Record<string, any> = { provided: suite.write.driftProbe, passed: false }\n if (suite.write.driftProbe) {\n const driftMarker = `DTA-PHASE-11B-DRIFT-${Date.now()}-${randomUUID()}`\n const resource = suite.provider.layers.l1.uri\n consumeWrite(resource)\n const accepted = appendDocumentMarker(\n evidenceRoot, 'drift', resource, driftMarker, suite.provider.authority.profile,\n )\n const readback = String(dws.readDoc(nodeRef(resource), suite.provider.authority.profile))\n const markerCount = semanticMarkerCount(readback, driftMarker)\n const stale = invokeWorker(evidenceRoot, 'drift-stale-bootstrap', {\n action: 'rehydrate-from-bootstrap', workspace, stateDir: activeStateDir,\n provider: suite.provider, bootstrap: baseline.bootstrap,\n })\n driftEvidence = {\n provided: true, accepted, marker: driftMarker, markerCount,\n workerStatus: stale.status, error: stale.stderr.trim(),\n passed: markerCount === 1 && stale.status !== 0 && stale.stderr.includes('发生漂移'),\n }\n writeResults.push({ kind: 'l1-drift', resource, ...driftEvidence })\n if (!driftEvidence.passed) throw new Error('Phase 11B drift fail-closed 探针未按预期失败')\n }\n renameSync(activeStateDir, baselineStateDir)\n\n stage = 'authorized-write-probes'\n for (const slot of suite.write.documentSlots) {\n const resource = suite.provider.layers[slot].uri\n consumeWrite(resource)\n const accepted = appendDocumentMarker(\n evidenceRoot, slot, resource, runId, suite.provider.authority.profile,\n )\n const readback = String(dws.readDoc(nodeRef(resource), suite.provider.authority.profile))\n const markerCount = semanticMarkerCount(readback, runId)\n const verified = markerCount === 1\n writeResults.push({\n kind: 'document-append', slot, resource, commandAccepted: accepted,\n marker: runId, markerCount, verified,\n verification: 'independent-full-document-readback',\n })\n if (!verified) throw new Error(`Phase 11B ${slot} marker 回读必须恰好一次`)\n }\n\n const currentRows = dws.queryAiTableRecords({\n baseId: l2.baseId, tableId: l2.tableId, recordIds: [l2.recordId],\n profile: suite.provider.authority.profile,\n })\n const current = exactStructuredState(currentRows, suite.provider)\n const cells: Record<string, unknown> = {}\n for (const field of suite.write.aitableFields) {\n cells[l2.fields[field]] = appendTextMarker(current[field], runId)\n }\n const l2Resource = l2ResourceRef(suite.provider)\n consumeWrite(l2Resource)\n const update = dws.updateAiTableRecord(\n l2.baseId, l2.tableId, l2.recordId, cells, suite.provider.authority.profile,\n )\n const updatedRows = dws.queryAiTableRecords({\n baseId: l2.baseId, tableId: l2.tableId, recordIds: [l2.recordId],\n profile: suite.provider.authority.profile,\n })\n const updated = exactStructuredState(updatedRows, suite.provider)\n const uniqueAfter = queryUniqueRecord(suite.provider)\n const l2MarkerCounts = Object.fromEntries(suite.write.aitableFields.map((field) => [\n field, semanticMarkerCount(updated[field], runId),\n ]))\n const l2Verified = suite.write.aitableFields.every((field) =>\n updated[field] === cells[l2.fields[field]] && l2MarkerCounts[field] === 1) &&\n uniqueAfter.rows.length === 1 && uniqueAfter.rows[0]?.recordId === l2.recordId\n writeResults.push({\n kind: 'aitable-record-update', resource: l2Resource,\n commandAccepted: update.accepted, recordId: l2.recordId,\n fields: suite.write.aitableFields, markerCounts: l2MarkerCounts,\n keyScopeCount: uniqueAfter.rows.length, verified: l2Verified,\n verification: 'record-id-readback-plus-key-scope-unique-query',\n })\n writeJson(join(evidenceRoot, 'write-results.json'), writeResults)\n if (!l2Verified) throw new Error('Phase 11B L2 固定 recordId 写后回读不一致')\n if (writeCount !== suite.write.budget) {\n throw new Error(`Phase 11B 实际写次数 ${writeCount} 与预算 ${suite.write.budget} 不一致`)\n }\n\n stage = 'independent-readback'\n const independent = independentReadback(suite.provider)\n writeFile(join(evidenceRoot, 'remote-readback', 'l1.md'), independent.documents.l1.body)\n writeFile(join(evidenceRoot, 'remote-readback', 'l3.md'), independent.documents.l3.body)\n writeJson(join(evidenceRoot, 'remote-readback', 'l2.json'), independent.l2.state)\n writeJson(join(evidenceRoot, 'independent-readback.json'), independent)\n\n stage = 'post-write-process-a'\n const first = requireWorker(invokeWorker(evidenceRoot, 'first-post-write', {\n action: 'bootstrap-and-rehydrate', workspace, stateDir: activeStateDir,\n provider: suite.provider,\n }))\n writeJson(join(evidenceRoot, 'first-rehydrate.json'), first)\n renameSync(activeStateDir, firstStateDir)\n\n stage = 'post-write-process-b'\n const second = requireWorker(invokeWorker(evidenceRoot, 'second-post-write', {\n action: 'bootstrap-and-rehydrate', workspace, stateDir: activeStateDir,\n provider: suite.provider,\n }))\n writeJson(join(evidenceRoot, 'second-rehydrate.json'), second)\n const coldStart = compareColdStart(baseline, first, second, independent)\n if (!coldStart.passed) throw new Error('Phase 11B 两进程冷启动 hash/nextAction 不一致')\n\n stage = 'local-fail-closed-matrix'\n const localFailClosed = runLocalFailClosedChecks(workspace, activeStateDir, second, suite.provider)\n const liveFailClosed = runLiveReadFailClosedChecks(\n evidenceRoot, workspace, suite, driftEvidence, second,\n )\n const failClosed = { ...localFailClosed, ...liveFailClosed }\n if (Object.values(failClosed).some((item: any) => item.required && !item.passed)) {\n throw new Error('Phase 11B fail-closed 必选矩阵未全部通过')\n }\n\n stage = 'teardown-readback'\n const teardown = independentReadback(suite.provider)\n const teardownPassed = semanticMarkerCount(teardown.documents.l1.body, runId) === 1 &&\n semanticMarkerCount(teardown.documents.l3.body, runId) === 1 &&\n suite.write.aitableFields.every((field) =>\n semanticMarkerCount(teardown.l2.state[field], runId) === 1) &&\n teardown.l2.uniqueCount === 1 &&\n !teardown.documents.l1.forbidden.length && !teardown.documents.l3.forbidden.length\n writeJson(join(evidenceRoot, 'teardown.json'), {\n passed: teardownPassed,\n policy: 'retain-authorized-markers; no delete, overwrite, or cleanup',\n writeCount,\n markerCounts: {\n l1: semanticMarkerCount(teardown.documents.l1.body, runId),\n l3: semanticMarkerCount(teardown.documents.l3.body, runId),\n l2: Object.fromEntries(suite.write.aitableFields.map((field) => [\n field, semanticMarkerCount(teardown.l2.state[field], runId),\n ])),\n },\n uniqueKeyScopeCount: teardown.l2.uniqueCount,\n })\n if (!teardownPassed) throw new Error('Phase 11B 最终回读不一致')\n\n const assertions = {\n $schema: 'dingtalk-agent/remote-semantic-state-live-assertions@1',\n runId,\n passed: true,\n identityMatched: true,\n writes: { planned: suite.write.budget, attempted: writeCount, verified: writeResults.length },\n coldStart,\n failClosed,\n controlState: {\n provider: second.state.manifest.controlState.provider,\n remoteProjection: second.state.manifest.controlState.remoteProjection,\n remoteMarkdownSafe: true,\n },\n evidenceRoot,\n limitations: [\n suite.nonAdocNegativeTestUri\n ? 'non-adoc dedicated resource was checked'\n : 'no dedicated non-adoc Live resource; deterministic contract 49 remains the negative type proof',\n 'no duplicate-row resource was created; uniqueness was enforced against the authorized key/scope',\n 'no control-state or credential marker was written remotely; absence was scanned and contract 49 retains injection coverage',\n ],\n }\n writeJson(join(evidenceRoot, 'assertions.json'), assertions)\n return {\n $schema: 'dingtalk-agent/remote-semantic-state-live-report@1',\n passed: true,\n runId,\n evidenceRoot,\n plan: { ...plan, sideEffect: 'authorized-live-probes', remoteRead: true },\n writes: assertions.writes,\n coldStart,\n failClosed,\n controlState: assertions.controlState,\n nextAction: second.state.nextAction,\n teardown: { passed: true, retainedMarkers: true },\n limitations: assertions.limitations,\n }\n } catch (error) {\n writeJson(join(evidenceRoot, 'failure.json'), {\n $schema: 'dingtalk-agent/remote-semantic-state-live-failure@1',\n runId, stage, error: (error as Error).message, writeCount, writeResults,\n reconciliationRequired: writeCount > 0,\n instruction: '先按固定资源独立回读;禁止盲目重试或扩大 allowlist',\n })\n throw error\n }\n}\n\nfunction readinessGaps(suite: RemoteSemanticStateLiveSpec, local: BootstrapResult): string[] {\n const gaps: string[] = []\n if (suite.liveAuthorized !== 'yes') gaps.push('LIVE_AUTHORIZED 必须为 yes')\n if (containsPlaceholder(suite.provider) || containsPlaceholder(suite.write.allowlist)) {\n gaps.push('Provider/allowlist 仍含占位符')\n }\n if (local.scopeId !== suite.provider.scopeId) {\n gaps.push(`Provider scopeId 必须绑定当前 Agent scope ${local.scopeId}`)\n }\n if (!local.mounts.some((item) => item.slot === 'body' && item.provider === 'local-dir')) {\n gaps.push('本地 Agent Definition 缺少 AGENTS.md body')\n }\n const skills = new Set(local.definition.skills.map((item) => item.name))\n if (!skills.has('dingtalk-basic-behavior')) {\n gaps.push('Definition 必须包含 dingtalk-basic-behavior')\n }\n const missingSkills = suite.requiredSkills.filter((item) => !skills.has(item))\n if (missingSkills.length) gaps.push(`缺少 Role Skills: ${missingSkills.join(', ')}`)\n const expectedAllowlist = [\n suite.provider.layers.l1.uri, suite.provider.layers.l3.uri, l2ResourceRef(suite.provider),\n ].sort()\n if (stableStringify([...suite.write.allowlist].sort()) !== stableStringify(expectedAllowlist)) {\n gaps.push('write allowlist 必须精确等于 L1/L3/L2 三个专用资源')\n }\n const writes = suite.write.documentSlots.length + (suite.write.aitableFields.length ? 1 : 0) +\n (suite.write.driftProbe ? 1 : 0)\n if (suite.write.budget !== writes) gaps.push(`write budget 必须精确为 ${writes}`)\n return gaps\n}\n\nfunction validateSpec(value: unknown): RemoteSemanticStateLiveSpec {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error('Phase 11B suite 必须是 JSON object')\n }\n const input = value as Record<string, any>\n assertKeys(input, [\n '$schema', 'id', 'scenario', 'liveAuthorized', 'provider', 'requiredSkills',\n 'evidenceRoot', 'write', 'nonAdocNegativeTestUri',\n ], 'suite')\n if (input.$schema !== 'dingtalk-agent/remote-semantic-state-live-eval@1' ||\n !/^[a-z0-9][a-z0-9._-]*$/.test(clean(input.id)) ||\n input.scenario !== 'memory-and-storage' ||\n !['yes', 'no'].includes(input.liveAuthorized)) {\n throw new Error('Phase 11B suite schema/id/scenario/liveAuthorized 非法')\n }\n planRemoteSemanticState(input.provider)\n assertNoSecretKeys(input)\n const requiredSkills = stringList(input.requiredSkills, 'requiredSkills', true)\n if (!requiredSkills.includes('dingtalk-basic-behavior') ||\n !requiredSkills.some((item) => item !== 'dingtalk-basic-behavior')) {\n throw new Error('Phase 11B requiredSkills 必须包含 Basic 和至少一个 Role Skill')\n }\n if (!clean(input.evidenceRoot) || resolve(input.evidenceRoot) === resolve('.')) {\n throw new Error('Phase 11B evidenceRoot 非法')\n }\n assertKeys(input.write, [\n 'allowlist', 'budget', 'documentSlots', 'aitableFields', 'driftProbe', 'retainMarkers',\n ], 'write')\n const allowlist = stringList(input.write?.allowlist, 'write.allowlist', true)\n const documentSlots = stringList(input.write?.documentSlots, 'write.documentSlots', true)\n if (documentSlots.length !== 2 || !documentSlots.includes('l1') || !documentSlots.includes('l3')) {\n throw new Error('Phase 11B documentSlots 必须精确包含 l1 和 l3')\n }\n const aitableFields = stringList(input.write?.aitableFields, 'write.aitableFields', true)\n if (aitableFields.some((item) => !['summary', 'nextAction'].includes(item)) ||\n new Set(aitableFields).size !== aitableFields.length) {\n throw new Error('Phase 11B aitableFields 只允许 summary/nextAction 且不能重复')\n }\n if (!Number.isInteger(input.write?.budget) || input.write.budget < 1 ||\n input.write.budget > 10 || input.write?.driftProbe !== true ||\n input.write?.retainMarkers !== true) {\n throw new Error('Phase 11B write 必须固定正整数预算、启用 driftProbe 并保留 marker')\n }\n if (input.nonAdocNegativeTestUri !== undefined && !clean(input.nonAdocNegativeTestUri)) {\n throw new Error('Phase 11B nonAdocNegativeTestUri 不能为空')\n }\n return JSON.parse(JSON.stringify({\n ...input, requiredSkills, write: {\n ...input.write, allowlist, documentSlots, aitableFields,\n },\n })) as RemoteSemanticStateLiveSpec\n}\n\nfunction verifyTableShape(\n base: Record<string, any>,\n tableResult: Record<string, any>,\n provider: RemoteSemanticStateProvider,\n writable: WritableStructuredField[],\n): void {\n const l2 = provider.layers.l2\n const baseTables = findArray(base, 'tables')\n if (!baseTables.length || !baseTables.some((item) => clean(item?.tableId) === l2.tableId)) {\n throw new Error('Phase 11B Base 回读不包含声明的 tableId')\n }\n const tables = findArray(tableResult, 'tables')\n const table = tables.find((item) => clean(item?.tableId) === l2.tableId)\n if (!table) throw new Error('Phase 11B table get 未精确返回声明的 tableId')\n const fields = Array.isArray(table.fields) ? table.fields : []\n const ids = new Set(fields.map((item) => clean(item?.fieldId)))\n const missing = Object.entries(l2.fields).filter(([, id]) => !ids.has(id)).map(([name]) => name)\n if (missing.length) throw new Error(`Phase 11B table 缺少 fieldId: ${missing.join(', ')}`)\n for (const name of writable) {\n const field = fields.find((item) => clean(item?.fieldId) === l2.fields[name])\n const type = clean(field?.type).toLowerCase()\n if (['formula', 'creator', 'lastmodifier', 'createdtime', 'lastmodifiedtime'].includes(type)) {\n throw new Error(`Phase 11B ${name} 不能绑定只读 field type=${type}`)\n }\n }\n}\n\nfunction queryUniqueRecord(provider: RemoteSemanticStateProvider): {\n rows: any[]; state: StructuredState\n} {\n const l2 = provider.layers.l2\n const rows = dws.queryAiTableRecords({\n baseId: l2.baseId,\n tableId: l2.tableId,\n filters: {\n operator: 'and',\n operands: [\n { operator: 'eq', operands: [l2.fields.key, l2.expected.key] },\n { operator: 'eq', operands: [l2.fields.scopeId, l2.expected.scopeId] },\n ],\n },\n profile: provider.authority.profile,\n })\n if (rows.length !== 1 || clean(rows[0]?.recordId) !== l2.recordId) {\n throw new Error(\n `Phase 11B L2 key+scope 必须唯一命中声明 recordId;实际 count=${rows.length}`,\n )\n }\n return { rows, state: exactStructuredState(rows, provider) }\n}\n\nfunction exactStructuredState(rows: any[], provider: RemoteSemanticStateProvider): StructuredState {\n const l2 = provider.layers.l2\n if (rows.length !== 1 || clean(rows[0]?.recordId) !== l2.recordId) {\n throw new Error(`Phase 11B L2 recordId=${l2.recordId} 必须精确回读一条记录`)\n }\n const cells = rows[0]?.cells\n if (!cells || typeof cells !== 'object' || Array.isArray(cells)) {\n throw new Error('Phase 11B L2 回读缺少 cells')\n }\n const state: StructuredState = {\n recordId: l2.recordId,\n key: textCell(cells[l2.fields.key]),\n scopeId: textCell(cells[l2.fields.scopeId]),\n status: textCell(cells[l2.fields.status]),\n nextAction: textCell(cells[l2.fields.nextAction]),\n summary: textCell(cells[l2.fields.summary]),\n sourceRefs: textCell(cells[l2.fields.sourceRefs]),\n }\n if (state.key !== l2.expected.key || state.scopeId !== l2.expected.scopeId) {\n throw new Error('Phase 11B L2 recordId/key/scopeId 绑定不一致')\n }\n for (const key of ['status', 'nextAction', 'summary', 'sourceRefs'] as const) {\n if (!state[key]) throw new Error(`Phase 11B L2 缺少 ${key}`)\n }\n return state\n}\n\nfunction independentReadback(provider: RemoteSemanticStateProvider): Record<string, any> {\n const documents = {} as Record<DocumentSlot, any>\n for (const slot of ['l1', 'l3'] as const) {\n const layer = provider.layers[slot]\n const info = dws.docInfo(nodeRef(layer.uri), provider.authority.profile)\n assertAdoc(slot, info)\n const body = String(dws.readDoc(nodeRef(layer.uri), provider.authority.profile))\n const forbidden = forbiddenRemoteFields(body)\n if (forbidden.length) {\n throw new Error(`Phase 11B ${slot} 远端 Markdown 含控制状态/凭据: ${forbidden.join(', ')}`)\n }\n documents[slot] = { info, body, hash: digest(body), forbidden }\n }\n const unique = queryUniqueRecord(provider)\n return {\n documents,\n l2: {\n state: unique.state,\n hash: digest(stableStringify(unique.state)),\n uniqueCount: unique.rows.length,\n },\n }\n}\n\nfunction compareColdStart(\n baseline: WorkerResult,\n first: WorkerResult,\n second: WorkerResult,\n readback: Record<string, any>,\n): Record<string, any> {\n const fields = [\n 'definitionHash', 'providerHash', 'memoryHash', 'structuredStateHash',\n 'knowledgeHash', 'stateHash', 'nextAction',\n ] as const\n const comparisons = Object.fromEntries(fields.map((field) => [field, {\n first: first.state[field], second: second.state[field],\n matched: first.state[field] === second.state[field],\n }]))\n const remoteMatched = first.state.memoryHash === readback.documents.l1.hash &&\n first.state.knowledgeHash === readback.documents.l3.hash &&\n first.state.structuredStateHash === readback.l2.hash\n return {\n passed: baseline.state.definitionHash === first.state.definitionHash &&\n baseline.state.providerHash === first.state.providerHash &&\n first.pid !== second.pid && fields.every((field) => comparisons[field].matched) && remoteMatched,\n baselinePid: baseline.pid,\n firstPid: first.pid,\n secondPid: second.pid,\n distinctProcesses: first.pid !== second.pid,\n freshStateDir: true,\n baselineDefinitionStable: baseline.state.definitionHash === first.state.definitionHash,\n baselineProviderStable: baseline.state.providerHash === first.state.providerHash,\n comparisons,\n independentRemoteHashesMatched: remoteMatched,\n }\n}\n\nfunction runLocalFailClosedChecks(\n workspace: string,\n activeStateDir: string,\n second: WorkerResult,\n provider: RemoteSemanticStateProvider,\n): Record<string, any> {\n const manifestPath = second.state.manifestPath\n const originalManifest = readFileSync(manifestPath, 'utf8')\n const manifest = JSON.parse(originalManifest)\n manifest.layers.l1.cachePath = manifest.layers.l3.cachePath\n writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\\n')\n let slotError = ''\n try { verifyRemoteSemanticStateCache(workspace, second.bootstrap, provider) }\n catch (error) { slotError = (error as Error).message }\n writeFileSync(manifestPath, originalManifest)\n\n const memoryMount = second.bootstrap.mounts.find((item) => item.slot === 'memory')\n if (!memoryMount) throw new Error('Phase 11B 第二进程缺少 memory mount')\n const originalCache = readFileSync(memoryMount.path, 'utf8')\n writeFileSync(memoryMount.path, `${originalCache}\\nDTA_PHASE_11B_LOCAL_TAMPER\\n`)\n let cacheError = ''\n try { verifyRemoteSemanticStateCache(workspace, second.bootstrap, provider) }\n catch (error) { cacheError = (error as Error).message }\n writeFileSync(memoryMount.path, originalCache)\n const restored = verifyRemoteSemanticStateCache(workspace, second.bootstrap, provider)\n\n return {\n slotSwap: { required: true, passed: slotError.includes('slot/source/cachePath 串线'), error: slotError },\n cacheTamper: { required: true, passed: cacheError.includes('mount/cache hash 不一致'), error: cacheError },\n restoredCache: {\n required: true, passed: restored.stateHash === second.state.stateHash,\n activeStateDir,\n },\n }\n}\n\nfunction runLiveReadFailClosedChecks(\n evidenceRoot: string,\n workspace: string,\n suite: RemoteSemanticStateLiveSpec,\n drift: Record<string, any>,\n second: WorkerResult,\n): Record<string, any> {\n const provider = suite.provider\n const mutate = (patch: (value: RemoteSemanticStateProvider) => void) => {\n const value = JSON.parse(JSON.stringify(provider)) as RemoteSemanticStateProvider\n patch(value)\n return value\n }\n const identity = invokeWorker(evidenceRoot, 'negative-identity', {\n action: 'bootstrap-and-rehydrate', workspace,\n stateDir: join(evidenceRoot, 'state', 'negative-identity'),\n provider: mutate((value) => { value.authority.expectedUserId += '-mismatch' }),\n })\n const recordProvider = mutate((value) => { value.layers.l2.recordId += '-mismatch' })\n let recordError = ''\n try { verifyRemoteSemanticStateCache(workspace, second.bootstrap, recordProvider) }\n catch (error) { recordError = (error as Error).message }\n const key = invokeWorker(evidenceRoot, 'negative-key', {\n action: 'bootstrap-and-rehydrate', workspace,\n stateDir: join(evidenceRoot, 'state', 'negative-key'),\n provider: mutate((value) => { value.layers.l2.expected.key += '-mismatch' }),\n })\n const scope = invokeWorker(evidenceRoot, 'negative-scope', {\n action: 'bootstrap-and-rehydrate', workspace,\n stateDir: join(evidenceRoot, 'state', 'negative-scope'),\n provider: mutate((value) => {\n value.scopeId += '-mismatch'\n value.layers.l2.expected.scopeId = value.scopeId\n }),\n })\n let nonAdoc: Record<string, any>\n if (suite.nonAdocNegativeTestUri) {\n const info = dws.docInfo(\n nodeRef(suite.nonAdocNegativeTestUri), provider.authority.profile,\n )\n const rejected = String(info.contentType || '').toUpperCase() !== 'ALIDOC' ||\n String(info.extension || '').toLowerCase() !== 'adoc'\n nonAdoc = { required: true, provided: true, passed: rejected, info }\n } else {\n nonAdoc = {\n required: false, provided: false, passed: true,\n proof: 'Live resource not provided; deterministic contract 49 retains non-adoc rejection',\n }\n }\n return {\n identityMismatch: {\n required: true, passed: identity.status !== 0 && identity.stderr.includes('身份不符'),\n error: identity.stderr.trim(),\n },\n recordIdMismatch: {\n required: true,\n passed: recordError.includes('manifest Provider/Definition/scope 绑定不一致'),\n error: recordError,\n proof: 'local manifest binding mutation; no unlisted recordId was requested from DWS',\n },\n keyMismatch: {\n required: true, passed: key.status !== 0 && key.stderr.includes('recordId/key/scopeId 绑定不一致'),\n error: key.stderr.trim(),\n },\n scopeMismatch: {\n required: true, passed: scope.status !== 0 && scope.stderr.includes('Definition/authority/storage/scope'),\n error: scope.stderr.trim(),\n },\n remoteDrift: { required: true, ...drift },\n nonAdoc,\n duplicateKeyScope: {\n required: true, passed: true,\n proof: 'authorized key+scope query returned exactly one declared recordId before and after write',\n },\n forbiddenRemoteControlState: {\n required: true, passed: true, liveInjected: false,\n proof: 'both authorized documents scanned clean; deterministic contract 49 retains injection rejection',\n },\n }\n}\n\nfunction invokeWorker(\n evidenceRoot: string,\n name: string,\n input: Record<string, unknown>,\n): WorkerInvocation {\n const inputPath = join(evidenceRoot, 'bootstrap', `${name}.input.json`)\n writeJson(inputPath, input)\n const workerPath = fileURLToPath(new URL('./remote-semantic-state-worker.js', import.meta.url))\n const run = spawnSync(process.execPath, [workerPath, inputPath], {\n encoding: 'utf8', timeout: 300_000, maxBuffer: 64 * 1024 * 1024,\n })\n writeFile(join(evidenceRoot, 'bootstrap', `${name}.stdout.json`), run.stdout || '')\n writeFile(join(evidenceRoot, 'bootstrap', `${name}.stderr.log`), run.stderr || '')\n let result: WorkerResult | null = null\n if (run.status === 0 && run.stdout) {\n try { result = JSON.parse(run.stdout) as WorkerResult } catch { result = null }\n }\n return { status: run.status, stderr: run.stderr || '', result }\n}\n\nfunction requireWorker(invocation: WorkerInvocation): WorkerResult {\n if (invocation.status !== 0 || !invocation.result) {\n throw new Error(`Phase 11B worker 失败: ${invocation.stderr.trim() || 'invalid output'}`)\n }\n return invocation.result\n}\n\nfunction appendDocumentMarker(\n evidenceRoot: string,\n label: string,\n uri: string,\n marker: string,\n profile: string,\n): boolean {\n const path = join(evidenceRoot, 'write-intent', `${label}.md`)\n writeFile(path, `\\n\\nPhase 11B semantic state validation marker: ${marker}\\n`)\n return Boolean(dws.appendDoc(nodeRef(uri), path, profile))\n}\n\nfunction appendTextMarker(value: string, marker: string): string {\n return `${value.trimEnd()}\\nPhase 11B semantic state validation marker: ${marker}`\n}\n\nfunction assertAdoc(slot: string, info: Record<string, any>): void {\n const contentType = String(info?.contentType || '').toUpperCase()\n const extension = String(info?.extension || '').toLowerCase()\n if (contentType !== 'ALIDOC' || extension !== 'adoc') {\n throw new Error(\n `Phase 11B ${slot} 只接受在线文档 adoc;` +\n `实际 contentType=${contentType || '?'} extension=${extension || '?'}`,\n )\n }\n}\n\nfunction assertRemoteMarkdownSafe(slot: string, body: string): void {\n const found = forbiddenRemoteFields(body)\n if (found.length) {\n throw new Error(`Phase 11B ${slot} 远端 Markdown 含控制状态/凭据: ${found.join(', ')}`)\n }\n}\n\nfunction forbiddenRemoteFields(body: string): string[] {\n return FORBIDDEN_REMOTE_PATTERNS.filter(([, pattern]) => pattern.test(body)).map(([name]) => name)\n}\n\nfunction semanticMarkerCount(body: string, marker: string): number {\n const normalizedBody = dws.words(body)\n const normalizedMarker = dws.words(marker)\n if (!normalizedMarker) return 0\n return normalizedBody.split(normalizedMarker).length - 1\n}\n\nfunction nodeRef(uri: string): string {\n return uri.startsWith('dingtalk-doc:') ? uri.slice('dingtalk-doc:'.length) : uri\n}\n\nfunction l2ResourceRef(provider: RemoteSemanticStateProvider): string {\n const l2 = provider.layers.l2\n return `dingtalk-aitable:${l2.baseId}/${l2.tableId}/${l2.recordId}`\n}\n\nfunction redactProvider(provider: RemoteSemanticStateProvider): Record<string, any> {\n const ref = (value: string) => ({ hash: digest(value), redacted: true })\n return {\n $schema: provider.$schema,\n id: provider.id,\n scopeIdHash: digest(provider.scopeId),\n authority: { profileHash: digest(provider.authority.profile), expectedUserIdHash: digest(provider.authority.expectedUserId) },\n layers: {\n l1: { provider: 'dingtalk-doc', mode: provider.layers.l1.mode, uri: ref(provider.layers.l1.uri) },\n l2: {\n provider: 'dingtalk-aitable', mode: provider.layers.l2.mode,\n baseId: ref(provider.layers.l2.baseId), tableId: ref(provider.layers.l2.tableId),\n recordId: ref(provider.layers.l2.recordId),\n expected: { keyHash: digest(provider.layers.l2.expected.key), scopeIdHash: digest(provider.layers.l2.expected.scopeId) },\n fields: Object.fromEntries(Object.entries(provider.layers.l2.fields).map(([name, id]) => [name, ref(id)])),\n },\n l3: { provider: 'dingtalk-doc', mode: provider.layers.l3.mode, uri: ref(provider.layers.l3.uri) },\n },\n controlState: provider.controlState,\n }\n}\n\nfunction safeEvidenceRoot(workspace: string, input: string, runId: string): string {\n if (resolve(input) === resolve('.') || input.split(/[\\\\/]/).includes('..')) {\n throw new Error('Phase 11B evidenceRoot 非法')\n }\n const base = resolve(workspace, input)\n assertInside(workspace, base, 'evidenceRoot')\n assertNoSymlinkAncestors(workspace, base, 'evidenceRoot')\n const rel = relative(workspace, base).split('\\\\').join('/')\n if (!rel.startsWith('.dingtalk-agent/')) {\n throw new Error('Phase 11B 原始证据必须位于 Workspace 的 gitignored .dingtalk-agent/ 下')\n }\n if (existsSync(base) && lstatSync(base).isSymbolicLink()) {\n throw new Error('Phase 11B evidenceRoot 不能是 symlink')\n }\n const path = join(base, runId)\n if (existsSync(path)) throw new Error('Phase 11B evidence run directory 已存在')\n return path\n}\n\nfunction safeExistingDirectory(root: string, input: string, label: string): string {\n const candidate = resolve(root, input)\n if (lstatSync(candidate).isSymbolicLink()) throw new Error(`Phase 11B ${label} 不能是 symlink`)\n const path = realpathSync(candidate)\n assertInside(realpathSync(resolve(root)), path, label)\n if (!lstatSync(path).isDirectory() || lstatSync(path).isSymbolicLink()) {\n throw new Error(`Phase 11B ${label} 必须是普通目录`)\n }\n return path\n}\n\nfunction safeExistingFile(root: string, input: string, label: string): string {\n const candidate = resolve(root, input)\n if (lstatSync(candidate).isSymbolicLink()) throw new Error(`Phase 11B ${label} 不能是 symlink`)\n const path = realpathSync(candidate)\n assertInside(realpathSync(resolve(root)), path, label)\n if (!lstatSync(path).isFile() || lstatSync(path).isSymbolicLink()) {\n throw new Error(`Phase 11B ${label} 必须是普通文件`)\n }\n return path\n}\n\nfunction assertInside(root: string, path: string, label: string): void {\n const rel = relative(resolve(root), resolve(path))\n if (rel === '..' || rel.startsWith(`..${process.platform === 'win32' ? '\\\\' : '/'}`)) {\n throw new Error(`Phase 11B ${label} 越界`)\n }\n}\n\nfunction assertNoSymlinkAncestors(root: string, path: string, label: string): void {\n const rel = relative(resolve(root), resolve(path))\n let current = resolve(root)\n for (const part of rel.split(/[\\\\/]/).filter(Boolean)) {\n current = join(current, part)\n if (!existsSync(current)) break\n if (lstatSync(current).isSymbolicLink()) {\n throw new Error(`Phase 11B ${label} 不能穿过 symlink`)\n }\n }\n}\n\nfunction findArray(value: unknown, key: string): any[] {\n if (!value || typeof value !== 'object') return []\n if (Array.isArray(value)) {\n for (const item of value) {\n const found = findArray(item, key)\n if (found.length) return found\n }\n return []\n }\n const input = value as Record<string, unknown>\n if (Array.isArray(input[key])) return input[key] as any[]\n for (const item of Object.values(input)) {\n const found = findArray(item, key)\n if (found.length) return found\n }\n return []\n}\n\nfunction findValue(value: unknown, keys: string[]): unknown {\n if (!value || typeof value !== 'object') return undefined\n if (Array.isArray(value)) {\n for (const item of value) {\n const found = findValue(item, keys)\n if (found !== undefined) return found\n }\n return undefined\n }\n const input = value as Record<string, unknown>\n for (const key of keys) if (input[key] !== undefined) return input[key]\n for (const item of Object.values(input)) {\n const found = findValue(item, keys)\n if (found !== undefined) return found\n }\n return undefined\n}\n\nfunction textCell(value: unknown): string {\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n const input = value as Record<string, unknown>\n return clean(input.name ?? input.text ?? input.value)\n }\n return clean(value)\n}\n\nfunction assertNoSecretKeys(value: unknown, path = 'suite'): void {\n if (!value || typeof value !== 'object') return\n if (Array.isArray(value)) {\n value.forEach((item, index) => assertNoSecretKeys(item, `${path}[${index}]`))\n return\n }\n for (const [key, item] of Object.entries(value as Record<string, unknown>)) {\n if (SECRET_KEY.test(key)) throw new Error(`Phase 11B suite 禁止凭据字段: ${path}.${key}`)\n assertNoSecretKeys(item, `${path}.${key}`)\n }\n}\n\nfunction containsPlaceholder(value: unknown): boolean {\n if (typeof value === 'string') return PLACEHOLDER.test(value)\n if (Array.isArray(value)) return value.some(containsPlaceholder)\n if (value && typeof value === 'object') return Object.values(value).some(containsPlaceholder)\n return false\n}\n\nfunction assertKeys(value: unknown, allowed: string[], label: string): void {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error(`Phase 11B ${label} 必须是 JSON object`)\n }\n const extra = Object.keys(value).filter((key) => !allowed.includes(key))\n if (extra.length) throw new Error(`Phase 11B ${label} 含未知字段: ${extra.join(', ')}`)\n}\n\nfunction stringList(value: unknown, label: string, nonEmpty = false): string[] {\n if (!Array.isArray(value) || value.some((item) => !clean(item))) {\n throw new Error(`Phase 11B ${label} 必须是非空字符串数组`)\n }\n const out = value.map((item) => clean(item))\n if (nonEmpty && !out.length) throw new Error(`Phase 11B ${label} 不能为空`)\n if (new Set(out).size !== out.length) throw new Error(`Phase 11B ${label} 不能重复`)\n return out\n}\n\nfunction readJson(path: string): unknown {\n return JSON.parse(readFileSync(path, 'utf8'))\n}\n\nfunction writeJson(path: string, value: unknown): void {\n mkdirSync(dirname(path), { recursive: true })\n writeFileSync(path, JSON.stringify(value, null, 2) + '\\n')\n}\n\nfunction writeFile(path: string, value: string): void {\n mkdirSync(dirname(path), { recursive: true })\n writeFileSync(path, value)\n}\n\nfunction clean(value: unknown): string {\n return String(value ?? '').trim()\n}\n"]}
1
+ {"version":3,"file":"remote-semantic-state-live-evals.js","sourceRoot":"","sources":["../../src/remote-semantic-state-live-evals.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from 'node:crypto'\nimport { spawnSync } from 'node:child_process'\nimport {\n existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, writeFileSync,\n} from 'node:fs'\nimport { dirname, join, relative, resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { bootstrap, type BootstrapResult } from './bootstrap.js'\nimport { GLOBAL_SKILL_NAME, isBasicSkillName } from './skill-manager.js'\nimport * as dws from './dws.js'\nimport { digest, stableStringify } from './events.js'\nimport {\n planRemoteSemanticState, rehydrateRemoteSemanticState,\n type RemoteSemanticStateProvider, type RemoteSemanticStateResult,\n verifyRemoteSemanticStateCache,\n} from './memory/remote-state.js'\n\ntype DocumentSlot = 'l1' | 'l3'\ntype WritableStructuredField = 'summary' | 'nextAction'\n\ninterface RemoteSemanticStateLiveSpec {\n $schema: 'dingtalk-agent/remote-semantic-state-live-eval@1'\n id: string\n scenario: 'memory-and-storage'\n liveAuthorized: 'yes' | 'no'\n provider: RemoteSemanticStateProvider\n requiredSkills: string[]\n evidenceRoot: string\n write: {\n allowlist: string[]\n budget: number\n documentSlots: DocumentSlot[]\n aitableFields: WritableStructuredField[]\n driftProbe: boolean\n retainMarkers: true\n }\n nonAdocNegativeTestUri?: string\n}\n\nexport interface RemoteSemanticStateLiveOptions {\n execute?: boolean\n live?: boolean\n yes?: boolean\n}\n\ninterface StructuredState {\n recordId: string\n key: string\n scopeId: string\n status: string\n nextAction: string\n summary: string\n sourceRefs: string\n}\n\ninterface WorkerResult {\n $schema: 'dingtalk-agent/remote-semantic-state-worker-result@1'\n pid: number\n bootstrap: BootstrapResult\n state: RemoteSemanticStateResult\n}\n\ninterface WorkerInvocation {\n status: number | null\n stderr: string\n result: WorkerResult | null\n}\n\nconst SECRET_KEY = /(?:secret|token|password|credential|privateKey)/i\nconst PLACEHOLDER = /(?:replace-with|<[^>]+>|dedicated-test|readback-user-id|known-node)/i\nconst FORBIDDEN_REMOTE_PATTERNS: Array<[string, RegExp]> = [\n ['waitId', /\\bwait[-_ ]?id\\b/i],\n ['generation', /\\bgeneration\\b/i],\n ['idempotencyKey', /\\bidempotency[-_ ]?key\\b/i],\n ['lease', /\\blease\\b/i],\n ['Action Receipt', /\\baction[-_ ]?receipt\\b/i],\n ['credentials', /\\b(?:credential|client[-_ ]?secret|access[-_ ]?token|refresh[-_ ]?token|password)s?\\b/i],\n]\n\nexport function runRemoteSemanticStateLiveEvaluation(\n root: string,\n workspacePath: string,\n suitePath: string,\n options: RemoteSemanticStateLiveOptions = {},\n): Record<string, any> {\n const workspace = safeExistingDirectory(root, workspacePath, 'workspace')\n const suiteFile = safeExistingFile(root, suitePath, 'suite')\n const suite = validateSpec(readJson(suiteFile))\n const providerPlan = planRemoteSemanticState(suite.provider)\n const local = bootstrap(workspace, {\n agent: `local-dir:${workspace}`,\n skills: `local-dir:${join(workspace, 'skills')}`,\n memory: suite.provider.layers.l1.uri,\n knowledge: suite.provider.layers.l3.uri,\n profile: suite.provider.authority.profile,\n expectedUserId: suite.provider.authority.expectedUserId,\n deferRemote: true,\n })\n const missingRequirements = readinessGaps(suite, local)\n const writesPlanned = suite.write.documentSlots.length +\n (suite.write.aitableFields.length ? 1 : 0) + (suite.write.driftProbe ? 1 : 0)\n const plan = {\n $schema: 'dingtalk-agent/remote-semantic-state-live-plan@1',\n id: suite.id,\n scenario: suite.scenario,\n engine: 'storage',\n sideEffect: false,\n remoteRead: false,\n liveAuthorized: suite.liveAuthorized === 'yes',\n ready: missingRequirements.length === 0,\n missingRequirements,\n workspace: relative(realpathSync(resolve(root)), workspace),\n suite: relative(realpathSync(resolve(root)), suiteFile),\n provider: providerPlan,\n requiredSkills: suite.requiredSkills,\n executionGate: 'LIVE_AUTHORIZED=yes + --execute --live --yes',\n writesPlanned,\n writeBudget: suite.write.budget,\n writeKinds: [\n ...suite.write.documentSlots.map((slot) => `append-${slot}-marker`),\n 'update-fixed-l2-record',\n ...(suite.write.driftProbe ? ['append-l1-drift-marker'] : []),\n ],\n evidenceRoot: suite.evidenceRoot,\n coldStart: 'pre-write baseline + post-write process A + new-state-dir process B',\n controlState: suite.provider.controlState,\n }\n if (!options.execute) return plan\n if (!options.live || !options.yes || suite.liveAuthorized !== 'yes') {\n throw new Error(\n 'Phase 11B 真实 DWS 读取/写入必须同时满足 LIVE_AUTHORIZED=yes 与 --execute --live --yes',\n )\n }\n if (missingRequirements.length) {\n throw new Error(`Phase 11B Live 资源或本地 Definition 未就绪: ${missingRequirements.join('; ')}`)\n }\n if (writesPlanned !== suite.write.budget) {\n throw new Error(`Phase 11B 写预算必须精确等于计划写次数 ${writesPlanned}`)\n }\n\n const runId = `DTA-PHASE-11B-${Date.now()}-${randomUUID()}`\n const evidenceRoot = safeEvidenceRoot(workspace, suite.evidenceRoot, runId)\n mkdirSync(evidenceRoot, { recursive: true })\n const planPath = join(evidenceRoot, 'plan.json')\n writeJson(planPath, { ...plan, sideEffect: 'authorized-live-probes', remoteRead: true, runId })\n writeJson(join(evidenceRoot, 'provider.redacted.json'), redactProvider(suite.provider))\n writeJson(join(evidenceRoot, 'provider.raw.json'), suite.provider)\n\n const stateRoot = join(evidenceRoot, 'state')\n const activeStateDir = join(stateRoot, 'active')\n const baselineStateDir = join(stateRoot, 'baseline')\n const firstStateDir = join(stateRoot, 'first-post-write')\n let stage = 'preflight'\n let writeCount = 0\n const writeResults: Record<string, any>[] = []\n const consumeWrite = (resource: string): void => {\n if (!suite.write.allowlist.includes(resource)) {\n throw new Error(`Phase 11B 写目标不在 allowlist: ${resource}`)\n }\n if (writeCount >= suite.write.budget) {\n throw new Error(`Phase 11B 写预算耗尽: ${writeCount}/${suite.write.budget}`)\n }\n writeCount += 1\n }\n\n try {\n stage = 'identity-and-resource-preflight'\n const identity = dws.getSelf(suite.provider.authority.profile)\n const actualUserId = clean(findValue(identity, ['userId', 'user_id', 'userid']))\n if (!actualUserId || actualUserId !== suite.provider.authority.expectedUserId) {\n throw new Error(\n `Phase 11B DWS 身份不符: expected=${suite.provider.authority.expectedUserId}, ` +\n `actual=${actualUserId || '-'}`,\n )\n }\n writeJson(join(evidenceRoot, 'identity-readback.json'), identity)\n\n const documentBodies = {} as Record<DocumentSlot, string>\n const documentInfo = {} as Record<DocumentSlot, Record<string, any>>\n for (const slot of ['l1', 'l3'] as const) {\n const layer = suite.provider.layers[slot]\n const info = dws.docInfo(nodeRef(layer.uri), suite.provider.authority.profile)\n assertAdoc(slot, info)\n const body = String(dws.readDoc(nodeRef(layer.uri), suite.provider.authority.profile))\n assertRemoteMarkdownSafe(slot, body)\n documentBodies[slot] = body\n documentInfo[slot] = info\n }\n writeJson(join(evidenceRoot, 'document-info.json'), documentInfo)\n\n const l2 = suite.provider.layers.l2\n const base = dws.getAiTableBase(l2.baseId, suite.provider.authority.profile)\n const tables = dws.getAiTableTables(\n l2.baseId, [l2.tableId], suite.provider.authority.profile,\n )\n verifyTableShape(base, tables, suite.provider, suite.write.aitableFields)\n const initialRows = dws.queryAiTableRecords({\n baseId: l2.baseId, tableId: l2.tableId, recordIds: [l2.recordId],\n profile: suite.provider.authority.profile,\n }).records\n const initial = exactStructuredState(initialRows, suite.provider)\n const initialUnique = queryUniqueRecord(suite.provider)\n writeJson(join(evidenceRoot, 'preflight.json'), {\n identityMatched: true,\n documents: Object.fromEntries((['l1', 'l3'] as const).map((slot) => [slot, {\n type: `${String(documentInfo[slot].contentType)}/${String(documentInfo[slot].extension)}`,\n hash: digest(documentBodies[slot]),\n }])),\n aitable: {\n baseRead: Boolean(base), tableRead: Boolean(tables), recordIdMatched: true,\n uniqueKeyScopeCount: initialUnique.rows.length,\n structuredStateHash: digest(stableStringify(initial)),\n },\n dryRunHadNoRemoteCall: false,\n })\n\n stage = 'pre-write-baseline'\n const baseline = requireWorker(invokeWorker(evidenceRoot, 'baseline', {\n action: 'bootstrap-and-rehydrate', workspace, stateDir: activeStateDir,\n provider: suite.provider,\n }))\n writeJson(join(evidenceRoot, 'bootstrap', 'baseline.json'), baseline)\n\n stage = 'drift-fail-closed'\n let driftEvidence: Record<string, any> = { provided: suite.write.driftProbe, passed: false }\n if (suite.write.driftProbe) {\n const driftMarker = `DTA-PHASE-11B-DRIFT-${Date.now()}-${randomUUID()}`\n const resource = suite.provider.layers.l1.uri\n consumeWrite(resource)\n const accepted = appendDocumentMarker(\n evidenceRoot, 'drift', resource, driftMarker, suite.provider.authority.profile,\n )\n const readback = String(dws.readDoc(nodeRef(resource), suite.provider.authority.profile))\n const markerCount = semanticMarkerCount(readback, driftMarker)\n const stale = invokeWorker(evidenceRoot, 'drift-stale-bootstrap', {\n action: 'rehydrate-from-bootstrap', workspace, stateDir: activeStateDir,\n provider: suite.provider, bootstrap: baseline.bootstrap,\n })\n driftEvidence = {\n provided: true, accepted, marker: driftMarker, markerCount,\n workerStatus: stale.status, error: stale.stderr.trim(),\n passed: markerCount === 1 && stale.status !== 0 && stale.stderr.includes('发生漂移'),\n }\n writeResults.push({ kind: 'l1-drift', resource, ...driftEvidence })\n if (!driftEvidence.passed) throw new Error('Phase 11B drift fail-closed 探针未按预期失败')\n }\n renameSync(activeStateDir, baselineStateDir)\n\n stage = 'authorized-write-probes'\n for (const slot of suite.write.documentSlots) {\n const resource = suite.provider.layers[slot].uri\n consumeWrite(resource)\n const accepted = appendDocumentMarker(\n evidenceRoot, slot, resource, runId, suite.provider.authority.profile,\n )\n const readback = String(dws.readDoc(nodeRef(resource), suite.provider.authority.profile))\n const markerCount = semanticMarkerCount(readback, runId)\n const verified = markerCount === 1\n writeResults.push({\n kind: 'document-append', slot, resource, commandAccepted: accepted,\n marker: runId, markerCount, verified,\n verification: 'independent-full-document-readback',\n })\n if (!verified) throw new Error(`Phase 11B ${slot} marker 回读必须恰好一次`)\n }\n\n const currentRows = dws.queryAiTableRecords({\n baseId: l2.baseId, tableId: l2.tableId, recordIds: [l2.recordId],\n profile: suite.provider.authority.profile,\n }).records\n const current = exactStructuredState(currentRows, suite.provider)\n const cells: Record<string, unknown> = {}\n for (const field of suite.write.aitableFields) {\n cells[l2.fields[field]] = appendTextMarker(current[field], runId)\n }\n const l2Resource = l2ResourceRef(suite.provider)\n consumeWrite(l2Resource)\n const update = dws.updateAiTableRecord(\n l2.baseId, l2.tableId, l2.recordId, cells, suite.provider.authority.profile,\n )\n const updatedRows = dws.queryAiTableRecords({\n baseId: l2.baseId, tableId: l2.tableId, recordIds: [l2.recordId],\n profile: suite.provider.authority.profile,\n }).records\n const updated = exactStructuredState(updatedRows, suite.provider)\n const uniqueAfter = queryUniqueRecord(suite.provider)\n const l2MarkerCounts = Object.fromEntries(suite.write.aitableFields.map((field) => [\n field, semanticMarkerCount(updated[field], runId),\n ]))\n const l2Verified = suite.write.aitableFields.every((field) =>\n updated[field] === cells[l2.fields[field]] && l2MarkerCounts[field] === 1) &&\n uniqueAfter.rows.length === 1 && uniqueAfter.rows[0]?.recordId === l2.recordId\n writeResults.push({\n kind: 'aitable-record-update', resource: l2Resource,\n commandAccepted: update.accepted, recordId: l2.recordId,\n fields: suite.write.aitableFields, markerCounts: l2MarkerCounts,\n keyScopeCount: uniqueAfter.rows.length, verified: l2Verified,\n verification: 'record-id-readback-plus-key-scope-unique-query',\n })\n writeJson(join(evidenceRoot, 'write-results.json'), writeResults)\n if (!l2Verified) throw new Error('Phase 11B L2 固定 recordId 写后回读不一致')\n if (writeCount !== suite.write.budget) {\n throw new Error(`Phase 11B 实际写次数 ${writeCount} 与预算 ${suite.write.budget} 不一致`)\n }\n\n stage = 'independent-readback'\n const independent = independentReadback(suite.provider)\n writeFile(join(evidenceRoot, 'remote-readback', 'l1.md'), independent.documents.l1.body)\n writeFile(join(evidenceRoot, 'remote-readback', 'l3.md'), independent.documents.l3.body)\n writeJson(join(evidenceRoot, 'remote-readback', 'l2.json'), independent.l2.state)\n writeJson(join(evidenceRoot, 'independent-readback.json'), independent)\n\n stage = 'post-write-process-a'\n const first = requireWorker(invokeWorker(evidenceRoot, 'first-post-write', {\n action: 'bootstrap-and-rehydrate', workspace, stateDir: activeStateDir,\n provider: suite.provider,\n }))\n writeJson(join(evidenceRoot, 'first-rehydrate.json'), first)\n renameSync(activeStateDir, firstStateDir)\n\n stage = 'post-write-process-b'\n const second = requireWorker(invokeWorker(evidenceRoot, 'second-post-write', {\n action: 'bootstrap-and-rehydrate', workspace, stateDir: activeStateDir,\n provider: suite.provider,\n }))\n writeJson(join(evidenceRoot, 'second-rehydrate.json'), second)\n const coldStart = compareColdStart(baseline, first, second, independent)\n if (!coldStart.passed) throw new Error('Phase 11B 两进程冷启动 hash/nextAction 不一致')\n\n stage = 'local-fail-closed-matrix'\n const localFailClosed = runLocalFailClosedChecks(workspace, activeStateDir, second, suite.provider)\n const liveFailClosed = runLiveReadFailClosedChecks(\n evidenceRoot, workspace, suite, driftEvidence, second,\n )\n const failClosed = { ...localFailClosed, ...liveFailClosed }\n if (Object.values(failClosed).some((item: any) => item.required && !item.passed)) {\n throw new Error('Phase 11B fail-closed 必选矩阵未全部通过')\n }\n\n stage = 'teardown-readback'\n const teardown = independentReadback(suite.provider)\n const teardownPassed = semanticMarkerCount(teardown.documents.l1.body, runId) === 1 &&\n semanticMarkerCount(teardown.documents.l3.body, runId) === 1 &&\n suite.write.aitableFields.every((field) =>\n semanticMarkerCount(teardown.l2.state[field], runId) === 1) &&\n teardown.l2.uniqueCount === 1 &&\n !teardown.documents.l1.forbidden.length && !teardown.documents.l3.forbidden.length\n writeJson(join(evidenceRoot, 'teardown.json'), {\n passed: teardownPassed,\n policy: 'retain-authorized-markers; no delete, overwrite, or cleanup',\n writeCount,\n markerCounts: {\n l1: semanticMarkerCount(teardown.documents.l1.body, runId),\n l3: semanticMarkerCount(teardown.documents.l3.body, runId),\n l2: Object.fromEntries(suite.write.aitableFields.map((field) => [\n field, semanticMarkerCount(teardown.l2.state[field], runId),\n ])),\n },\n uniqueKeyScopeCount: teardown.l2.uniqueCount,\n })\n if (!teardownPassed) throw new Error('Phase 11B 最终回读不一致')\n\n const assertions = {\n $schema: 'dingtalk-agent/remote-semantic-state-live-assertions@1',\n runId,\n passed: true,\n identityMatched: true,\n writes: { planned: suite.write.budget, attempted: writeCount, verified: writeResults.length },\n coldStart,\n failClosed,\n controlState: {\n provider: second.state.manifest.controlState.provider,\n remoteProjection: second.state.manifest.controlState.remoteProjection,\n remoteMarkdownSafe: true,\n },\n evidenceRoot,\n limitations: [\n suite.nonAdocNegativeTestUri\n ? 'non-adoc dedicated resource was checked'\n : 'no dedicated non-adoc Live resource; deterministic contract 49 remains the negative type proof',\n 'no duplicate-row resource was created; uniqueness was enforced against the authorized key/scope',\n 'no control-state or credential marker was written remotely; absence was scanned and contract 49 retains injection coverage',\n ],\n }\n writeJson(join(evidenceRoot, 'assertions.json'), assertions)\n return {\n $schema: 'dingtalk-agent/remote-semantic-state-live-report@1',\n passed: true,\n runId,\n evidenceRoot,\n plan: { ...plan, sideEffect: 'authorized-live-probes', remoteRead: true },\n writes: assertions.writes,\n coldStart,\n failClosed,\n controlState: assertions.controlState,\n nextAction: second.state.nextAction,\n teardown: { passed: true, retainedMarkers: true },\n limitations: assertions.limitations,\n }\n } catch (error) {\n writeJson(join(evidenceRoot, 'failure.json'), {\n $schema: 'dingtalk-agent/remote-semantic-state-live-failure@1',\n runId, stage, error: (error as Error).message, writeCount, writeResults,\n reconciliationRequired: writeCount > 0,\n instruction: '先按固定资源独立回读;禁止盲目重试或扩大 allowlist',\n })\n throw error\n }\n}\n\nfunction readinessGaps(suite: RemoteSemanticStateLiveSpec, local: BootstrapResult): string[] {\n const gaps: string[] = []\n if (suite.liveAuthorized !== 'yes') gaps.push('LIVE_AUTHORIZED 必须为 yes')\n if (containsPlaceholder(suite.provider) || containsPlaceholder(suite.write.allowlist)) {\n gaps.push('Provider/allowlist 仍含占位符')\n }\n if (local.scopeId !== suite.provider.scopeId) {\n gaps.push(`Provider scopeId 必须绑定当前 Agent scope ${local.scopeId}`)\n }\n if (!local.mounts.some((item) => item.slot === 'body' && item.provider === 'local-dir')) {\n gaps.push('本地 Agent Definition 缺少 AGENTS.md body')\n }\n const skills = new Set(local.definition.skills.map((item) => item.name))\n if (![...skills].some(isBasicSkillName)) {\n gaps.push(`Definition 必须包含 ${GLOBAL_SKILL_NAME}`)\n }\n const missingSkills = suite.requiredSkills.filter((item) => !skills.has(item))\n if (missingSkills.length) gaps.push(`缺少 Role Skills: ${missingSkills.join(', ')}`)\n const expectedAllowlist = [\n suite.provider.layers.l1.uri, suite.provider.layers.l3.uri, l2ResourceRef(suite.provider),\n ].sort()\n if (stableStringify([...suite.write.allowlist].sort()) !== stableStringify(expectedAllowlist)) {\n gaps.push('write allowlist 必须精确等于 L1/L3/L2 三个专用资源')\n }\n const writes = suite.write.documentSlots.length + (suite.write.aitableFields.length ? 1 : 0) +\n (suite.write.driftProbe ? 1 : 0)\n if (suite.write.budget !== writes) gaps.push(`write budget 必须精确为 ${writes}`)\n return gaps\n}\n\nfunction validateSpec(value: unknown): RemoteSemanticStateLiveSpec {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error('Phase 11B suite 必须是 JSON object')\n }\n const input = value as Record<string, any>\n assertKeys(input, [\n '$schema', 'id', 'scenario', 'liveAuthorized', 'provider', 'requiredSkills',\n 'evidenceRoot', 'write', 'nonAdocNegativeTestUri',\n ], 'suite')\n if (input.$schema !== 'dingtalk-agent/remote-semantic-state-live-eval@1' ||\n !/^[a-z0-9][a-z0-9._-]*$/.test(clean(input.id)) ||\n input.scenario !== 'memory-and-storage' ||\n !['yes', 'no'].includes(input.liveAuthorized)) {\n throw new Error('Phase 11B suite schema/id/scenario/liveAuthorized 非法')\n }\n planRemoteSemanticState(input.provider)\n assertNoSecretKeys(input)\n const requiredSkills = stringList(input.requiredSkills, 'requiredSkills', true)\n if (!requiredSkills.some(isBasicSkillName) ||\n !requiredSkills.some((item) => !isBasicSkillName(item))) {\n throw new Error('Phase 11B requiredSkills 必须包含 Basic 和至少一个 Role Skill')\n }\n if (!clean(input.evidenceRoot) || resolve(input.evidenceRoot) === resolve('.')) {\n throw new Error('Phase 11B evidenceRoot 非法')\n }\n assertKeys(input.write, [\n 'allowlist', 'budget', 'documentSlots', 'aitableFields', 'driftProbe', 'retainMarkers',\n ], 'write')\n const allowlist = stringList(input.write?.allowlist, 'write.allowlist', true)\n const documentSlots = stringList(input.write?.documentSlots, 'write.documentSlots', true)\n if (documentSlots.length !== 2 || !documentSlots.includes('l1') || !documentSlots.includes('l3')) {\n throw new Error('Phase 11B documentSlots 必须精确包含 l1 和 l3')\n }\n const aitableFields = stringList(input.write?.aitableFields, 'write.aitableFields', true)\n if (aitableFields.some((item) => !['summary', 'nextAction'].includes(item)) ||\n new Set(aitableFields).size !== aitableFields.length) {\n throw new Error('Phase 11B aitableFields 只允许 summary/nextAction 且不能重复')\n }\n if (!Number.isInteger(input.write?.budget) || input.write.budget < 1 ||\n input.write.budget > 10 || input.write?.driftProbe !== true ||\n input.write?.retainMarkers !== true) {\n throw new Error('Phase 11B write 必须固定正整数预算、启用 driftProbe 并保留 marker')\n }\n if (input.nonAdocNegativeTestUri !== undefined && !clean(input.nonAdocNegativeTestUri)) {\n throw new Error('Phase 11B nonAdocNegativeTestUri 不能为空')\n }\n return JSON.parse(JSON.stringify({\n ...input, requiredSkills, write: {\n ...input.write, allowlist, documentSlots, aitableFields,\n },\n })) as RemoteSemanticStateLiveSpec\n}\n\nfunction verifyTableShape(\n base: Record<string, any>,\n tableResult: Record<string, any>,\n provider: RemoteSemanticStateProvider,\n writable: WritableStructuredField[],\n): void {\n const l2 = provider.layers.l2\n const baseTables = findArray(base, 'tables')\n if (!baseTables.length || !baseTables.some((item) => clean(item?.tableId) === l2.tableId)) {\n throw new Error('Phase 11B Base 回读不包含声明的 tableId')\n }\n const tables = findArray(tableResult, 'tables')\n const table = tables.find((item) => clean(item?.tableId) === l2.tableId)\n if (!table) throw new Error('Phase 11B table get 未精确返回声明的 tableId')\n const fields = Array.isArray(table.fields) ? table.fields : []\n const ids = new Set(fields.map((item) => clean(item?.fieldId)))\n const missing = Object.entries(l2.fields).filter(([, id]) => !ids.has(id)).map(([name]) => name)\n if (missing.length) throw new Error(`Phase 11B table 缺少 fieldId: ${missing.join(', ')}`)\n for (const name of writable) {\n const field = fields.find((item) => clean(item?.fieldId) === l2.fields[name])\n const type = clean(field?.type).toLowerCase()\n if (['formula', 'creator', 'lastmodifier', 'createdtime', 'lastmodifiedtime'].includes(type)) {\n throw new Error(`Phase 11B ${name} 不能绑定只读 field type=${type}`)\n }\n }\n}\n\nfunction queryUniqueRecord(provider: RemoteSemanticStateProvider): {\n rows: any[]; state: StructuredState\n} {\n const l2 = provider.layers.l2\n const lookup = dws.queryAiTableRecords({\n baseId: l2.baseId,\n tableId: l2.tableId,\n filters: {\n operator: 'and',\n operands: [\n { operator: 'eq', operands: [l2.fields.key, l2.expected.key] },\n { operator: 'eq', operands: [l2.fields.scopeId, l2.expected.scopeId] },\n ],\n },\n profile: provider.authority.profile,\n })\n // 完整性消费(issue #23):unique-key 合同下 bounded-filter 可用;存疑态直接失败。\n if (!lookup.completeness.proven && lookup.completeness.reason !== 'bounded-filter') {\n throw new Error(`Phase 11B L2 查询完整性存疑(${lookup.completeness.reason})——不当空、不当全,重读`)\n }\n const rows = lookup.records\n if (rows.length !== 1 || clean(rows[0]?.recordId) !== l2.recordId) {\n throw new Error(\n `Phase 11B L2 key+scope 必须唯一命中声明 recordId;实际 count=${rows.length}`,\n )\n }\n return { rows, state: exactStructuredState(rows, provider) }\n}\n\nfunction exactStructuredState(rows: any[], provider: RemoteSemanticStateProvider): StructuredState {\n const l2 = provider.layers.l2\n if (rows.length !== 1 || clean(rows[0]?.recordId) !== l2.recordId) {\n throw new Error(`Phase 11B L2 recordId=${l2.recordId} 必须精确回读一条记录`)\n }\n const cells = rows[0]?.cells\n if (!cells || typeof cells !== 'object' || Array.isArray(cells)) {\n throw new Error('Phase 11B L2 回读缺少 cells')\n }\n const state: StructuredState = {\n recordId: l2.recordId,\n key: textCell(cells[l2.fields.key]),\n scopeId: textCell(cells[l2.fields.scopeId]),\n status: textCell(cells[l2.fields.status]),\n nextAction: textCell(cells[l2.fields.nextAction]),\n summary: textCell(cells[l2.fields.summary]),\n sourceRefs: textCell(cells[l2.fields.sourceRefs]),\n }\n if (state.key !== l2.expected.key || state.scopeId !== l2.expected.scopeId) {\n throw new Error('Phase 11B L2 recordId/key/scopeId 绑定不一致')\n }\n for (const key of ['status', 'nextAction', 'summary', 'sourceRefs'] as const) {\n if (!state[key]) throw new Error(`Phase 11B L2 缺少 ${key}`)\n }\n return state\n}\n\nfunction independentReadback(provider: RemoteSemanticStateProvider): Record<string, any> {\n const documents = {} as Record<DocumentSlot, any>\n for (const slot of ['l1', 'l3'] as const) {\n const layer = provider.layers[slot]\n const info = dws.docInfo(nodeRef(layer.uri), provider.authority.profile)\n assertAdoc(slot, info)\n const body = String(dws.readDoc(nodeRef(layer.uri), provider.authority.profile))\n const forbidden = forbiddenRemoteFields(body)\n if (forbidden.length) {\n throw new Error(`Phase 11B ${slot} 远端 Markdown 含控制状态/凭据: ${forbidden.join(', ')}`)\n }\n documents[slot] = { info, body, hash: digest(body), forbidden }\n }\n const unique = queryUniqueRecord(provider)\n return {\n documents,\n l2: {\n state: unique.state,\n hash: digest(stableStringify(unique.state)),\n uniqueCount: unique.rows.length,\n },\n }\n}\n\nfunction compareColdStart(\n baseline: WorkerResult,\n first: WorkerResult,\n second: WorkerResult,\n readback: Record<string, any>,\n): Record<string, any> {\n const fields = [\n 'definitionHash', 'providerHash', 'memoryHash', 'structuredStateHash',\n 'knowledgeHash', 'stateHash', 'nextAction',\n ] as const\n const comparisons = Object.fromEntries(fields.map((field) => [field, {\n first: first.state[field], second: second.state[field],\n matched: first.state[field] === second.state[field],\n }]))\n const remoteMatched = first.state.memoryHash === readback.documents.l1.hash &&\n first.state.knowledgeHash === readback.documents.l3.hash &&\n first.state.structuredStateHash === readback.l2.hash\n return {\n passed: baseline.state.definitionHash === first.state.definitionHash &&\n baseline.state.providerHash === first.state.providerHash &&\n first.pid !== second.pid && fields.every((field) => comparisons[field].matched) && remoteMatched,\n baselinePid: baseline.pid,\n firstPid: first.pid,\n secondPid: second.pid,\n distinctProcesses: first.pid !== second.pid,\n freshStateDir: true,\n baselineDefinitionStable: baseline.state.definitionHash === first.state.definitionHash,\n baselineProviderStable: baseline.state.providerHash === first.state.providerHash,\n comparisons,\n independentRemoteHashesMatched: remoteMatched,\n }\n}\n\nfunction runLocalFailClosedChecks(\n workspace: string,\n activeStateDir: string,\n second: WorkerResult,\n provider: RemoteSemanticStateProvider,\n): Record<string, any> {\n const manifestPath = second.state.manifestPath\n const originalManifest = readFileSync(manifestPath, 'utf8')\n const manifest = JSON.parse(originalManifest)\n manifest.layers.l1.cachePath = manifest.layers.l3.cachePath\n writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\\n')\n let slotError = ''\n try { verifyRemoteSemanticStateCache(workspace, second.bootstrap, provider) }\n catch (error) { slotError = (error as Error).message }\n writeFileSync(manifestPath, originalManifest)\n\n const memoryMount = second.bootstrap.mounts.find((item) => item.slot === 'memory')\n if (!memoryMount) throw new Error('Phase 11B 第二进程缺少 memory mount')\n const originalCache = readFileSync(memoryMount.path, 'utf8')\n writeFileSync(memoryMount.path, `${originalCache}\\nDTA_PHASE_11B_LOCAL_TAMPER\\n`)\n let cacheError = ''\n try { verifyRemoteSemanticStateCache(workspace, second.bootstrap, provider) }\n catch (error) { cacheError = (error as Error).message }\n writeFileSync(memoryMount.path, originalCache)\n const restored = verifyRemoteSemanticStateCache(workspace, second.bootstrap, provider)\n\n return {\n slotSwap: { required: true, passed: slotError.includes('slot/source/cachePath 串线'), error: slotError },\n cacheTamper: { required: true, passed: cacheError.includes('mount/cache hash 不一致'), error: cacheError },\n restoredCache: {\n required: true, passed: restored.stateHash === second.state.stateHash,\n activeStateDir,\n },\n }\n}\n\nfunction runLiveReadFailClosedChecks(\n evidenceRoot: string,\n workspace: string,\n suite: RemoteSemanticStateLiveSpec,\n drift: Record<string, any>,\n second: WorkerResult,\n): Record<string, any> {\n const provider = suite.provider\n const mutate = (patch: (value: RemoteSemanticStateProvider) => void) => {\n const value = JSON.parse(JSON.stringify(provider)) as RemoteSemanticStateProvider\n patch(value)\n return value\n }\n const identity = invokeWorker(evidenceRoot, 'negative-identity', {\n action: 'bootstrap-and-rehydrate', workspace,\n stateDir: join(evidenceRoot, 'state', 'negative-identity'),\n provider: mutate((value) => { value.authority.expectedUserId += '-mismatch' }),\n })\n const recordProvider = mutate((value) => { value.layers.l2.recordId += '-mismatch' })\n let recordError = ''\n try { verifyRemoteSemanticStateCache(workspace, second.bootstrap, recordProvider) }\n catch (error) { recordError = (error as Error).message }\n const key = invokeWorker(evidenceRoot, 'negative-key', {\n action: 'bootstrap-and-rehydrate', workspace,\n stateDir: join(evidenceRoot, 'state', 'negative-key'),\n provider: mutate((value) => { value.layers.l2.expected.key += '-mismatch' }),\n })\n const scope = invokeWorker(evidenceRoot, 'negative-scope', {\n action: 'bootstrap-and-rehydrate', workspace,\n stateDir: join(evidenceRoot, 'state', 'negative-scope'),\n provider: mutate((value) => {\n value.scopeId += '-mismatch'\n value.layers.l2.expected.scopeId = value.scopeId\n }),\n })\n let nonAdoc: Record<string, any>\n if (suite.nonAdocNegativeTestUri) {\n const info = dws.docInfo(\n nodeRef(suite.nonAdocNegativeTestUri), provider.authority.profile,\n )\n const rejected = String(info.contentType || '').toUpperCase() !== 'ALIDOC' ||\n String(info.extension || '').toLowerCase() !== 'adoc'\n nonAdoc = { required: true, provided: true, passed: rejected, info }\n } else {\n nonAdoc = {\n required: false, provided: false, passed: true,\n proof: 'Live resource not provided; deterministic contract 49 retains non-adoc rejection',\n }\n }\n return {\n identityMismatch: {\n required: true, passed: identity.status !== 0 && identity.stderr.includes('身份不符'),\n error: identity.stderr.trim(),\n },\n recordIdMismatch: {\n required: true,\n passed: recordError.includes('manifest Provider/Definition/scope 绑定不一致'),\n error: recordError,\n proof: 'local manifest binding mutation; no unlisted recordId was requested from DWS',\n },\n keyMismatch: {\n required: true, passed: key.status !== 0 && key.stderr.includes('recordId/key/scopeId 绑定不一致'),\n error: key.stderr.trim(),\n },\n scopeMismatch: {\n required: true, passed: scope.status !== 0 && scope.stderr.includes('Definition/authority/storage/scope'),\n error: scope.stderr.trim(),\n },\n remoteDrift: { required: true, ...drift },\n nonAdoc,\n duplicateKeyScope: {\n required: true, passed: true,\n proof: 'authorized key+scope query returned exactly one declared recordId before and after write',\n },\n forbiddenRemoteControlState: {\n required: true, passed: true, liveInjected: false,\n proof: 'both authorized documents scanned clean; deterministic contract 49 retains injection rejection',\n },\n }\n}\n\nfunction invokeWorker(\n evidenceRoot: string,\n name: string,\n input: Record<string, unknown>,\n): WorkerInvocation {\n const inputPath = join(evidenceRoot, 'bootstrap', `${name}.input.json`)\n writeJson(inputPath, input)\n const workerPath = fileURLToPath(new URL('./remote-semantic-state-worker.js', import.meta.url))\n const run = spawnSync(process.execPath, [workerPath, inputPath], {\n encoding: 'utf8', timeout: 300_000, maxBuffer: 64 * 1024 * 1024,\n })\n writeFile(join(evidenceRoot, 'bootstrap', `${name}.stdout.json`), run.stdout || '')\n writeFile(join(evidenceRoot, 'bootstrap', `${name}.stderr.log`), run.stderr || '')\n let result: WorkerResult | null = null\n if (run.status === 0 && run.stdout) {\n try { result = JSON.parse(run.stdout) as WorkerResult } catch { result = null }\n }\n return { status: run.status, stderr: run.stderr || '', result }\n}\n\nfunction requireWorker(invocation: WorkerInvocation): WorkerResult {\n if (invocation.status !== 0 || !invocation.result) {\n throw new Error(`Phase 11B worker 失败: ${invocation.stderr.trim() || 'invalid output'}`)\n }\n return invocation.result\n}\n\nfunction appendDocumentMarker(\n evidenceRoot: string,\n label: string,\n uri: string,\n marker: string,\n profile: string,\n): boolean {\n const path = join(evidenceRoot, 'write-intent', `${label}.md`)\n writeFile(path, `\\n\\nPhase 11B semantic state validation marker: ${marker}\\n`)\n return Boolean(dws.appendDoc(nodeRef(uri), path, profile))\n}\n\nfunction appendTextMarker(value: string, marker: string): string {\n return `${value.trimEnd()}\\nPhase 11B semantic state validation marker: ${marker}`\n}\n\nfunction assertAdoc(slot: string, info: Record<string, any>): void {\n const contentType = String(info?.contentType || '').toUpperCase()\n const extension = String(info?.extension || '').toLowerCase()\n if (contentType !== 'ALIDOC' || extension !== 'adoc') {\n throw new Error(\n `Phase 11B ${slot} 只接受在线文档 adoc;` +\n `实际 contentType=${contentType || '?'} extension=${extension || '?'}`,\n )\n }\n}\n\nfunction assertRemoteMarkdownSafe(slot: string, body: string): void {\n const found = forbiddenRemoteFields(body)\n if (found.length) {\n throw new Error(`Phase 11B ${slot} 远端 Markdown 含控制状态/凭据: ${found.join(', ')}`)\n }\n}\n\nfunction forbiddenRemoteFields(body: string): string[] {\n return FORBIDDEN_REMOTE_PATTERNS.filter(([, pattern]) => pattern.test(body)).map(([name]) => name)\n}\n\nfunction semanticMarkerCount(body: string, marker: string): number {\n const normalizedBody = dws.words(body)\n const normalizedMarker = dws.words(marker)\n if (!normalizedMarker) return 0\n return normalizedBody.split(normalizedMarker).length - 1\n}\n\nfunction nodeRef(uri: string): string {\n return uri.startsWith('dingtalk-doc:') ? uri.slice('dingtalk-doc:'.length) : uri\n}\n\nfunction l2ResourceRef(provider: RemoteSemanticStateProvider): string {\n const l2 = provider.layers.l2\n return `dingtalk-aitable:${l2.baseId}/${l2.tableId}/${l2.recordId}`\n}\n\nfunction redactProvider(provider: RemoteSemanticStateProvider): Record<string, any> {\n const ref = (value: string) => ({ hash: digest(value), redacted: true })\n return {\n $schema: provider.$schema,\n id: provider.id,\n scopeIdHash: digest(provider.scopeId),\n authority: { profileHash: digest(provider.authority.profile), expectedUserIdHash: digest(provider.authority.expectedUserId) },\n layers: {\n l1: { provider: 'dingtalk-doc', mode: provider.layers.l1.mode, uri: ref(provider.layers.l1.uri) },\n l2: {\n provider: 'dingtalk-aitable', mode: provider.layers.l2.mode,\n baseId: ref(provider.layers.l2.baseId), tableId: ref(provider.layers.l2.tableId),\n recordId: ref(provider.layers.l2.recordId),\n expected: { keyHash: digest(provider.layers.l2.expected.key), scopeIdHash: digest(provider.layers.l2.expected.scopeId) },\n fields: Object.fromEntries(Object.entries(provider.layers.l2.fields).map(([name, id]) => [name, ref(id)])),\n },\n l3: { provider: 'dingtalk-doc', mode: provider.layers.l3.mode, uri: ref(provider.layers.l3.uri) },\n },\n controlState: provider.controlState,\n }\n}\n\nfunction safeEvidenceRoot(workspace: string, input: string, runId: string): string {\n if (resolve(input) === resolve('.') || input.split(/[\\\\/]/).includes('..')) {\n throw new Error('Phase 11B evidenceRoot 非法')\n }\n const base = resolve(workspace, input)\n assertInside(workspace, base, 'evidenceRoot')\n assertNoSymlinkAncestors(workspace, base, 'evidenceRoot')\n const rel = relative(workspace, base).split('\\\\').join('/')\n if (!rel.startsWith('.dingtalk-agent/')) {\n throw new Error('Phase 11B 原始证据必须位于 Workspace 的 gitignored .dingtalk-agent/ 下')\n }\n if (existsSync(base) && lstatSync(base).isSymbolicLink()) {\n throw new Error('Phase 11B evidenceRoot 不能是 symlink')\n }\n const path = join(base, runId)\n if (existsSync(path)) throw new Error('Phase 11B evidence run directory 已存在')\n return path\n}\n\nfunction safeExistingDirectory(root: string, input: string, label: string): string {\n const candidate = resolve(root, input)\n if (lstatSync(candidate).isSymbolicLink()) throw new Error(`Phase 11B ${label} 不能是 symlink`)\n const path = realpathSync(candidate)\n assertInside(realpathSync(resolve(root)), path, label)\n if (!lstatSync(path).isDirectory() || lstatSync(path).isSymbolicLink()) {\n throw new Error(`Phase 11B ${label} 必须是普通目录`)\n }\n return path\n}\n\nfunction safeExistingFile(root: string, input: string, label: string): string {\n const candidate = resolve(root, input)\n if (lstatSync(candidate).isSymbolicLink()) throw new Error(`Phase 11B ${label} 不能是 symlink`)\n const path = realpathSync(candidate)\n assertInside(realpathSync(resolve(root)), path, label)\n if (!lstatSync(path).isFile() || lstatSync(path).isSymbolicLink()) {\n throw new Error(`Phase 11B ${label} 必须是普通文件`)\n }\n return path\n}\n\nfunction assertInside(root: string, path: string, label: string): void {\n const rel = relative(resolve(root), resolve(path))\n if (rel === '..' || rel.startsWith(`..${process.platform === 'win32' ? '\\\\' : '/'}`)) {\n throw new Error(`Phase 11B ${label} 越界`)\n }\n}\n\nfunction assertNoSymlinkAncestors(root: string, path: string, label: string): void {\n const rel = relative(resolve(root), resolve(path))\n let current = resolve(root)\n for (const part of rel.split(/[\\\\/]/).filter(Boolean)) {\n current = join(current, part)\n if (!existsSync(current)) break\n if (lstatSync(current).isSymbolicLink()) {\n throw new Error(`Phase 11B ${label} 不能穿过 symlink`)\n }\n }\n}\n\nfunction findArray(value: unknown, key: string): any[] {\n if (!value || typeof value !== 'object') return []\n if (Array.isArray(value)) {\n for (const item of value) {\n const found = findArray(item, key)\n if (found.length) return found\n }\n return []\n }\n const input = value as Record<string, unknown>\n if (Array.isArray(input[key])) return input[key] as any[]\n for (const item of Object.values(input)) {\n const found = findArray(item, key)\n if (found.length) return found\n }\n return []\n}\n\nfunction findValue(value: unknown, keys: string[]): unknown {\n if (!value || typeof value !== 'object') return undefined\n if (Array.isArray(value)) {\n for (const item of value) {\n const found = findValue(item, keys)\n if (found !== undefined) return found\n }\n return undefined\n }\n const input = value as Record<string, unknown>\n for (const key of keys) if (input[key] !== undefined) return input[key]\n for (const item of Object.values(input)) {\n const found = findValue(item, keys)\n if (found !== undefined) return found\n }\n return undefined\n}\n\nfunction textCell(value: unknown): string {\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n const input = value as Record<string, unknown>\n return clean(input.name ?? input.text ?? input.value)\n }\n return clean(value)\n}\n\nfunction assertNoSecretKeys(value: unknown, path = 'suite'): void {\n if (!value || typeof value !== 'object') return\n if (Array.isArray(value)) {\n value.forEach((item, index) => assertNoSecretKeys(item, `${path}[${index}]`))\n return\n }\n for (const [key, item] of Object.entries(value as Record<string, unknown>)) {\n if (SECRET_KEY.test(key)) throw new Error(`Phase 11B suite 禁止凭据字段: ${path}.${key}`)\n assertNoSecretKeys(item, `${path}.${key}`)\n }\n}\n\nfunction containsPlaceholder(value: unknown): boolean {\n if (typeof value === 'string') return PLACEHOLDER.test(value)\n if (Array.isArray(value)) return value.some(containsPlaceholder)\n if (value && typeof value === 'object') return Object.values(value).some(containsPlaceholder)\n return false\n}\n\nfunction assertKeys(value: unknown, allowed: string[], label: string): void {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error(`Phase 11B ${label} 必须是 JSON object`)\n }\n const extra = Object.keys(value).filter((key) => !allowed.includes(key))\n if (extra.length) throw new Error(`Phase 11B ${label} 含未知字段: ${extra.join(', ')}`)\n}\n\nfunction stringList(value: unknown, label: string, nonEmpty = false): string[] {\n if (!Array.isArray(value) || value.some((item) => !clean(item))) {\n throw new Error(`Phase 11B ${label} 必须是非空字符串数组`)\n }\n const out = value.map((item) => clean(item))\n if (nonEmpty && !out.length) throw new Error(`Phase 11B ${label} 不能为空`)\n if (new Set(out).size !== out.length) throw new Error(`Phase 11B ${label} 不能重复`)\n return out\n}\n\nfunction readJson(path: string): unknown {\n return JSON.parse(readFileSync(path, 'utf8'))\n}\n\nfunction writeJson(path: string, value: unknown): void {\n mkdirSync(dirname(path), { recursive: true })\n writeFileSync(path, JSON.stringify(value, null, 2) + '\\n')\n}\n\nfunction writeFile(path: string, value: string): void {\n mkdirSync(dirname(path), { recursive: true })\n writeFileSync(path, value)\n}\n\nfunction clean(value: unknown): string {\n return String(value ?? '').trim()\n}\n"]}
@@ -293,8 +293,8 @@ function addRemoteInstructions(workspace, mounts) {
293
293
  writeJsonAtomic(path, config);
294
294
  }
295
295
  function materializeBasicSkill(workspace) {
296
- const source = bundledSkillPath(resolvePackageRoot(import.meta.url), 'dingtalk-basic-behavior');
297
- const target = join(workspace, '.agents', 'skills', 'dingtalk-basic-behavior');
296
+ const source = bundledSkillPath(resolvePackageRoot(import.meta.url), 'dta-basic-behavior');
297
+ const target = join(workspace, '.agents', 'skills', 'dta-basic-behavior');
298
298
  mkdirSync(dirname(target), { recursive: true });
299
299
  rmSync(target, { recursive: true, force: true });
300
300
  cpSync(source, target, { recursive: true });