@yuaone/core 0.3.3 → 0.4.0

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 (126) hide show
  1. package/dist/agent-loop.d.ts +62 -0
  2. package/dist/agent-loop.d.ts.map +1 -1
  3. package/dist/agent-loop.js +705 -18
  4. package/dist/agent-loop.js.map +1 -1
  5. package/dist/background-agent.d.ts +110 -0
  6. package/dist/background-agent.d.ts.map +1 -0
  7. package/dist/background-agent.js +255 -0
  8. package/dist/background-agent.js.map +1 -0
  9. package/dist/coding-standards.d.ts +45 -0
  10. package/dist/coding-standards.d.ts.map +1 -0
  11. package/dist/coding-standards.js +1152 -0
  12. package/dist/coding-standards.js.map +1 -0
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +2 -6
  15. package/dist/constants.js.map +1 -1
  16. package/dist/context-manager.d.ts +6 -0
  17. package/dist/context-manager.d.ts.map +1 -1
  18. package/dist/context-manager.js +23 -4
  19. package/dist/context-manager.js.map +1 -1
  20. package/dist/index.d.ts +28 -4
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +26 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/llm-client.d.ts +8 -3
  25. package/dist/llm-client.d.ts.map +1 -1
  26. package/dist/llm-client.js +64 -13
  27. package/dist/llm-client.js.map +1 -1
  28. package/dist/plugin-auto-loader.d.ts +108 -0
  29. package/dist/plugin-auto-loader.d.ts.map +1 -0
  30. package/dist/plugin-auto-loader.js +743 -0
  31. package/dist/plugin-auto-loader.js.map +1 -0
  32. package/dist/plugin-registry.d.ts +112 -0
  33. package/dist/plugin-registry.d.ts.map +1 -0
  34. package/dist/plugin-registry.js +319 -0
  35. package/dist/plugin-registry.js.map +1 -0
  36. package/dist/plugin-types.d.ts +388 -0
  37. package/dist/plugin-types.d.ts.map +1 -0
  38. package/dist/plugin-types.js +8 -0
  39. package/dist/plugin-types.js.map +1 -0
  40. package/dist/plugin-validator.d.ts +54 -0
  41. package/dist/plugin-validator.d.ts.map +1 -0
  42. package/dist/plugin-validator.js +129 -0
  43. package/dist/plugin-validator.js.map +1 -0
  44. package/dist/repo-knowledge-graph.d.ts +112 -0
  45. package/dist/repo-knowledge-graph.d.ts.map +1 -0
  46. package/dist/repo-knowledge-graph.js +561 -0
  47. package/dist/repo-knowledge-graph.js.map +1 -0
  48. package/dist/role-registry.js +1 -1
  49. package/dist/role-registry.js.map +1 -1
  50. package/dist/self-debug-loop.d.ts +257 -0
  51. package/dist/self-debug-loop.d.ts.map +1 -0
  52. package/dist/self-debug-loop.js +870 -0
  53. package/dist/self-debug-loop.js.map +1 -0
  54. package/dist/skill-learner.d.ts +136 -0
  55. package/dist/skill-learner.d.ts.map +1 -0
  56. package/dist/skill-learner.js +382 -0
  57. package/dist/skill-learner.js.map +1 -0
  58. package/dist/skill-loader.d.ts +90 -0
  59. package/dist/skill-loader.d.ts.map +1 -0
  60. package/dist/skill-loader.js +309 -0
  61. package/dist/skill-loader.js.map +1 -0
  62. package/dist/specialist-registry.d.ts +132 -0
  63. package/dist/specialist-registry.d.ts.map +1 -0
  64. package/dist/specialist-registry.js +413 -0
  65. package/dist/specialist-registry.js.map +1 -0
  66. package/dist/sub-agent-prompts.d.ts +45 -0
  67. package/dist/sub-agent-prompts.d.ts.map +1 -0
  68. package/dist/sub-agent-prompts.js +177 -0
  69. package/dist/sub-agent-prompts.js.map +1 -0
  70. package/dist/sub-agent-router.d.ts +75 -0
  71. package/dist/sub-agent-router.d.ts.map +1 -0
  72. package/dist/sub-agent-router.js +174 -0
  73. package/dist/sub-agent-router.js.map +1 -0
  74. package/dist/sub-agent.d.ts +48 -0
  75. package/dist/sub-agent.d.ts.map +1 -1
  76. package/dist/sub-agent.js +108 -5
  77. package/dist/sub-agent.js.map +1 -1
  78. package/dist/system-prompt.d.ts +26 -0
  79. package/dist/system-prompt.d.ts.map +1 -1
  80. package/dist/system-prompt.js +177 -7
  81. package/dist/system-prompt.js.map +1 -1
  82. package/dist/task-classifier.d.ts +25 -1
  83. package/dist/task-classifier.d.ts.map +1 -1
  84. package/dist/task-classifier.js +171 -1
  85. package/dist/task-classifier.js.map +1 -1
  86. package/dist/tool-planner.d.ts +160 -0
  87. package/dist/tool-planner.d.ts.map +1 -0
  88. package/dist/tool-planner.js +501 -0
  89. package/dist/tool-planner.js.map +1 -0
  90. package/dist/types.d.ts +1 -1
  91. package/dist/types.d.ts.map +1 -1
  92. package/package.json +2 -1
  93. package/plugins/git/patterns/branch-patterns.json +101 -0
  94. package/plugins/git/patterns/commit-patterns.json +186 -0
  95. package/plugins/git/plugin.yaml +128 -0
  96. package/plugins/git/skills/branch-strategy.md +172 -0
  97. package/plugins/git/skills/commit-conv.md +178 -0
  98. package/plugins/git/skills/conflict-resolve.md +159 -0
  99. package/plugins/git/skills/history-clean.md +199 -0
  100. package/plugins/git/skills/pr-review.md +196 -0
  101. package/plugins/git/strategies/conflict-resolve.json +244 -0
  102. package/plugins/git/strategies/release-flow.json +292 -0
  103. package/plugins/git/validators/rules.json +348 -0
  104. package/plugins/react/patterns/anti-patterns.json +88 -0
  105. package/plugins/react/patterns/components.json +80 -0
  106. package/plugins/react/patterns/hooks.json +72 -0
  107. package/plugins/react/plugin.yaml +229 -0
  108. package/plugins/react/skills/bugfix.md +208 -0
  109. package/plugins/react/skills/component-gen.md +206 -0
  110. package/plugins/react/skills/hook-extract.md +208 -0
  111. package/plugins/react/skills/ssr.md +256 -0
  112. package/plugins/react/skills/test.md +273 -0
  113. package/plugins/react/strategies/build-fix.json +43 -0
  114. package/plugins/react/strategies/hook-loop-fix.json +36 -0
  115. package/plugins/react/strategies/hydration-fix.json +42 -0
  116. package/plugins/react/validators/rules.json +92 -0
  117. package/plugins/typescript/patterns/best-practices.json +25 -0
  118. package/plugins/typescript/patterns/common-errors.json +32 -0
  119. package/plugins/typescript/plugin.yaml +74 -0
  120. package/plugins/typescript/skills/debug.md +23 -0
  121. package/plugins/typescript/skills/migration.md +24 -0
  122. package/plugins/typescript/skills/refactor.md +22 -0
  123. package/plugins/typescript/skills/strict-mode.md +23 -0
  124. package/plugins/typescript/strategies/strict-migration.json +37 -0
  125. package/plugins/typescript/strategies/type-error-fix.json +37 -0
  126. package/plugins/typescript/validators/rules.json +28 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-debug-loop.js","sourceRoot":"","sources":["../src/self-debug-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA4GH,MAAM,cAAc,GAA4B;IAC9C;QACE,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE;YACR,cAAc;YACd,sCAAsC;YACtC,uCAAuC;YACvC,0CAA0C;YAC1C,wBAAwB;SACzB;QACD,UAAU,EAAE,6EAA6E;KAC1F;IACD;QACE,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE;YACR,cAAc;YACd,mBAAmB;YACnB,oBAAoB;YACpB,oBAAoB;YACpB,sBAAsB;SACvB;QACD,UAAU,EAAE,+EAA+E;KAC5F;IACD;QACE,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE;YACR,qBAAqB;YACrB,mBAAmB;YACnB,uBAAuB;YACvB,oBAAoB;YACpB,oBAAoB;SACrB;QACD,UAAU,EAAE,2EAA2E;KACxF;IACD;QACE,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE;YACR,kCAAkC;YAClC,iBAAiB;YACjB,iBAAiB;YACjB,qBAAqB;YACrB,cAAc;SACf;QACD,UAAU,EAAE,sEAAsE;KACnF;IACD;QACE,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE;YACR,SAAS;YACT,WAAW;YACX,WAAW;SACZ;QACD,UAAU,EAAE,wCAAwC;KACrD;IACD;QACE,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;YACR,eAAe;YACf,qBAAqB;YACrB,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB;SACjB;QACD,UAAU,EAAE,oEAAoE;KACjF;IACD;QACE,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE;YACR,YAAY;YACZ,iBAAiB;YACjB,aAAa;YACb,UAAU;YACV,WAAW;SACZ;QACD,UAAU,EAAE,6DAA6D;KAC1E;IACD;QACE,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE;YACR,cAAc;YACd,YAAY;YACZ,YAAY;SACb;QACD,UAAU,EAAE,8DAA8D;KAC3E;IACD;QACE,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE;YACR,SAAS;YACT,QAAQ;YACR,oBAAoB;SACrB;QACD,UAAU,EAAE,4DAA4D;KACzE;CACF,CAAC;AAEF,yBAAyB;AAEzB,wCAAwC;AACxC,MAAM,cAAc,GAAoB;IACtC,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,UAAU;CACX,CAAC;AAEF,wBAAwB;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAO,aAAa;IACP,WAAW,CAAS;IAErC,YAAY,MAAiC;QAC3C,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,MAQX;QACC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAErG,MAAM,QAAQ,GAAmB,EAAE,CAAC;QACpC,IAAI,YAAY,GAAG,WAAW,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAElD,oCAAoC;YACpC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAClD,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE,CAAC,GAAG,CAAC;oBACd,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,gDAAgD;oBACrD,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY;iBACtC,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,QAAQ;oBACR,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACvC,SAAS,EAAE,SAAS,CAAC,OAAO;oBAC5B,aAAa,EAAE,UAAU;iBAC1B,CAAC;YACJ,CAAC;YAED,0CAA0C;YAC1C,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC5E,CAAC;YAED,iFAAiF;YACjF,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,MAAM,mBAAmB,GAAa,EAAE,CAAC;YAEzC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,YAAY,GAAiB;oBACjC,WAAW;oBACX,WAAW,EAAE,YAAY;oBACzB,YAAY;oBACZ,iBAAiB;oBACjB,gBAAgB,EAAE,QAAQ;oBAC1B,eAAe,EAAE,QAAQ;iBAC1B,CAAC;gBAEF,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC9D,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAE9C,iDAAiD;gBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACtD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACH,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACjC,sDAAsD;wBACtD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;4BAC7C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAA4B;4BACvD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;wBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC/F,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,+DAA+D;oBACjE,CAAC;gBACH,CAAC;gBAED,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;oBACnC,CAAC,CAAC,aAAa,QAAQ,cAAc,SAAS,CAAC,MAAM,wBAAwB;oBAC7E,CAAC,CAAC,aAAa,QAAQ,+BAA+B,CAAC;YAC3D,CAAC;YAED,4CAA4C;YAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAEjE,4BAA4B;YAC5B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE,CAAC,GAAG,CAAC;oBACd,QAAQ;oBACR,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,cAAc,IAAI,CAAC,QAAQ,KAAK,gBAAgB;wBACnD,CAAC,CAAC,2CAA2C;wBAC7C,CAAC,CAAC,gCAAgC,CAAC;oBACrC,YAAY,EAAE,mBAAmB;oBACjC,UAAU,EAAE,MAAM;oBAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY;iBACtC,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,QAAQ;oBACR,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACvC,aAAa,EAAE,QAAQ;iBACxB,CAAC;YACJ,CAAC;YAED,wCAAwC;YACxC,YAAY,GAAG,UAAU,CAAC,MAAM,IAAI,YAAY,CAAC;YAEjD,qBAAqB;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,CAAC,GAAG,CAAC;gBACd,QAAQ;gBACR,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE,cAAc,IAAI,aAAa,QAAQ,MAAM,YAAY,CAAC,UAAU,EAAE;gBAC3E,YAAY,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,YAAY;gBACjF,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;gBACpD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY;aACtC,CAAC,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACvC,SAAS,EAAE,cAAc,CAAC,OAAO;SAClC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CAAC,OAAe,EAAE,gBAAgC;QAC9D,mDAAmD;QACnD,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxD,IAAI,SAAS,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBAC9B,8CAA8C;gBAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAC1D,OAAO,aAAa,CAAC,CAAC,mCAAmC;YAC3D,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,QAAuB,EAAE,OAAqB;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAExD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtD,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1D,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxD,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1D,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrD;gBACE,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,WAAmB;QAC9B,yBAAyB;QACzB,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;oBACjE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACvD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;oBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAC/C,WAAW,EACX,KAAK,CAAC,QAAQ,EACd,UAAU,CACX,CAAC;oBAEF,OAAO;wBACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,OAAO;wBACP,IAAI;wBACJ,IAAI;wBACJ,MAAM;wBACN,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,UAAU;wBACV,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACjD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;YAC9C,UAAU,EAAE,qEAAqE;YACjF,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,mCAAmC;IAE3B,oBAAoB,CAC1B,OAAqB,EACrB,QAA2B;QAE3B,MAAM,KAAK,GAAa;YACtB,qCAAqC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG;YAC/F,EAAE;YACF,iDAAiD;YACjD,EAAE;YACF,iBAAiB;YACjB,KAAK;YACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;YACxC,KAAK;YACL,EAAE;YACF,aAAa;YACb,aAAa,QAAQ,CAAC,QAAQ,EAAE;YAChC,eAAe,QAAQ,CAAC,OAAO,EAAE;SAClC,CAAC;QAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAEvD,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;QAE5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,wBAAwB,CAC9B,OAAqB,EACrB,QAA2B;QAE3B,MAAM,KAAK,GAAa;YACtB,yCAAyC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG;YACnG,EAAE;YACF,oEAAoE;YACpE,EAAE;YACF,iBAAiB;YACjB,KAAK;YACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;YACxC,KAAK;YACL,EAAE;YACF,iBAAiB;YACjB,yDAAyD;YACzD,wDAAwD;YACxD,mDAAmD;YACnD,6DAA6D;YAC7D,EAAE;YACF,eAAe,QAAQ,CAAC,OAAO,EAAE;YACjC,eAAe,QAAQ,CAAC,UAAU,EAAE;SACrC,CAAC;QAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,sBAAsB,CAC5B,OAAqB,EACrB,QAA2B;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,KAAK,GAAa;YACtB,+CAA+C,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG;YACzG,EAAE;YACF,qEAAqE;YACrE,EAAE;YACF,iBAAiB;YACjB,KAAK;YACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;YACxC,KAAK;YACL,EAAE;YACF,2BAA2B;SAC5B,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAEjE,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,wBAAwB,CAC9B,OAAqB,EACrB,QAA2B;QAE3B,MAAM,KAAK,GAAa;YACtB,iDAAiD,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG;YAC3G,EAAE;YACF,+DAA+D;YAC/D,6CAA6C;YAC7C,EAAE;YACF,mBAAmB;YACnB,KAAK;YACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;YACxC,KAAK;YACL,EAAE;YACF,wBAAwB;YACxB,aAAa,QAAQ,CAAC,QAAQ,EAAE;YAChC,YAAY,QAAQ,CAAC,OAAO,EAAE;YAC9B,eAAe,QAAQ,CAAC,UAAU,EAAE;YACpC,EAAE;YACF,iBAAiB;YACjB,2CAA2C;YAC3C,kDAAkD;YAClD,iDAAiD;YACjD,kDAAkD;SACnD,CAAC;QAEF,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,gBAAgB,CAAC,MAAM,qBAAqB,CAAC,CAAC;YACvF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;QAEpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,mBAAmB,CACzB,OAAqB,EACrB,QAA2B;QAE3B,MAAM,KAAK,GAAa;YACtB,2CAA2C;YAC3C,EAAE;YACF,SAAS,OAAO,CAAC,gBAAgB,CAAC,MAAM,2DAA2D;YACnG,EAAE;YACF,UAAU;YACV,KAAK;YACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;YACxC,KAAK;YACL,EAAE;YACF,eAAe;YACf,aAAa,QAAQ,CAAC,QAAQ,EAAE;YAChC,YAAY,QAAQ,CAAC,OAAO,EAAE;SAC/B,CAAC;QAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;QAC9G,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAEvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,0CAA0C;IAE1C;;OAEG;IACK,eAAe,CAAC,KAAa;QAKnC,qCAAqC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CACzB,qDAAqD,CACtD,CAAC;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBAChB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC9B,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACjC,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAC5B,kDAAkD,CACnD,CAAC;QACF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACpC,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAC/B,4CAA4C,CAC7C,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO;gBACL,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;gBACtB,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACrC,CAAC;QACJ,CAAC;QAED,YAAY;QACZ,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAC3B,qCAAqC,CACtC,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAAa;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,gBAAgB,CAAC;QACnC,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAa;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAErE,uBAAuB;QACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,yBAAyB,CAC/B,KAAa,EACb,QAAmB,EACnB,UAAoB;QAEpB,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO;QAE7B,gCAAgC;QAChC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,UAAU,IAAI,GAAG,CAAC;QACpB,CAAC;QAED,6DAA6D;QAC7D,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACtE,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,UAAU,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,IAAI,GAAG,CAAC;QACpB,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,QAA2B;QACrD,QAAQ,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,YAAY;gBACf,OAAO;oBACL,4EAA4E;oBAC5E,4EAA4E;oBAC5E,8DAA8D;oBAC9D,oDAAoD;iBACrD,CAAC;YACJ,KAAK,cAAc;gBACjB,OAAO;oBACL,kDAAkD;oBAClD,oEAAoE;oBACpE,oDAAoD;iBACrD,CAAC;YACJ,KAAK,cAAc;gBACjB,OAAO;oBACL,sDAAsD;oBACtD,uDAAuD;oBACvD,6CAA6C;oBAC7C,oDAAoD;iBACrD,CAAC;YACJ,KAAK,gBAAgB;gBACnB,OAAO;oBACL,mDAAmD;oBACnD,qDAAqD;oBACrD,wDAAwD;iBACzD,CAAC;YACJ,KAAK,eAAe;gBAClB,OAAO;oBACL,gEAAgE;oBAChE,oDAAoD;oBACpD,wDAAwD;iBACzD,CAAC;YACJ,KAAK,aAAa;gBAChB,OAAO;oBACL,0DAA0D;oBAC1D,6CAA6C;oBAC7C,iDAAiD;iBAClD,CAAC;YACJ,KAAK,SAAS;gBACZ,OAAO;oBACL,yCAAyC;oBACzC,iEAAiE;oBACjE,oDAAoD;iBACrD,CAAC;YACJ;gBACE,OAAO;oBACL,mEAAmE;oBACnE,4DAA4D;oBAC5D,uDAAuD;iBACxD,CAAC;QACN,CAAC;IACH,CAAC;IAED,qCAAqC;IAErC;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,WAAmB,EACnB,YAA8B;QAE9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC;gBACxC,EAAE,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,EAAE;gBACnC,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;aACpC,CAAC,CAAC;YAEH,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/C,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;aAC5D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;aACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,YAAsB,EACtB,iBAAsC,EACtC,YAA8B;QAE9B,IAAI,UAAU,GAAG,IAAI,CAAC;QAEtB,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,eAAe,KAAK,SAAS;gBAAE,SAAS;YAE5C,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,OAAO,CAAC;oBACzB,EAAE,EAAE,uBAAuB,IAAI,CAAC,GAAG,EAAE,EAAE;oBACvC,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,eAAe;qBACzB;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,KAAK,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;OASG;IACK,iBAAiB,CAAC,QAAgB;QACxC,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,iDAAiD;QACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAElC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3F,IAAI,CAAC;gBACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAEhD,oCAAoC;gBACpC,IACE,MAAM,KAAK,IAAI;oBACf,OAAO,MAAM,KAAK,QAAQ;oBAC1B,YAAY,IAAK,MAAkC;oBACnD,KAAK,CAAC,OAAO,CAAE,MAAkC,CAAC,UAAU,CAAC,EAC7D,CAAC;oBACD,KAAK,MAAM,EAAE,IAAK,MAAoC,CAAC,UAAU,EAAE,CAAC;wBAClE,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;wBACvC,IAAI,IAAI;4BAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjC,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,gCAAgC;gBAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;wBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;wBACvC,IAAI,IAAI;4BAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjC,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,oCAAoC;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,IAAI;oBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,mCAAmC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,GAAY;QACnC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACzD,MAAM,MAAM,GAAG,GAA8B,CAAC;QAC9C,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEhD,OAAO;YACL,EAAE,EAAE,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACxH,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;gBAC7C,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,MAAM,CAAC,SAAoC;SAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,IAAY,EAAE,SAAiB;QAC9C,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;CACF"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * @module skill-learner
3
+ * @description Skill Learner — Self-improving agent that generates skills from experience.
4
+ *
5
+ * Flow:
6
+ * 1. Error pattern discovered during agent run
7
+ * 2. Agent successfully fixes it
8
+ * 3. SkillLearner extracts: pattern → diagnosis → fix strategy → validation
9
+ * 4. New skill stored in .yuan/learned-skills/
10
+ * 5. Next time → learned skill auto-activates
11
+ *
12
+ * Confidence evolution:
13
+ * - New skill: 0.5
14
+ * - Success: +0.1 (max 0.95)
15
+ * - Failure: -0.2
16
+ * - Below 0.2: deprecated
17
+ */
18
+ import type { RunAnalysis } from "./memory-updater.js";
19
+ import type { SkillDefinition } from "./plugin-types.js";
20
+ /** A skill learned from agent experience */
21
+ export interface LearnedSkill {
22
+ /** Unique skill ID */
23
+ id: string;
24
+ /** Error pattern that triggers this skill (regex string) */
25
+ errorPattern: string;
26
+ /** Human-readable diagnosis */
27
+ diagnosis: string;
28
+ /** Fix strategy description */
29
+ strategy: string;
30
+ /** Tool sequence that worked */
31
+ toolSequence: string[];
32
+ /** Validation command/check */
33
+ validation: string;
34
+ /** Current confidence (0-1) */
35
+ confidence: number;
36
+ /** Times used */
37
+ usageCount: number;
38
+ /** Times succeeded */
39
+ successCount: number;
40
+ /** Last used timestamp */
41
+ lastUsed: number;
42
+ /** Created from which run */
43
+ createdFrom: {
44
+ sessionId: string;
45
+ errorMessage: string;
46
+ fixSummary: string;
47
+ timestamp: number;
48
+ };
49
+ /** Language/framework scope */
50
+ scope?: {
51
+ language?: string;
52
+ framework?: string;
53
+ filePattern?: string;
54
+ };
55
+ }
56
+ /** Events that drive skill learning */
57
+ export interface LearningEvent {
58
+ type: "error_fixed" | "user_correction" | "test_pattern" | "review_feedback";
59
+ errorPattern?: string;
60
+ fixApplied: string;
61
+ success: boolean;
62
+ context: Record<string, unknown>;
63
+ }
64
+ /**
65
+ * SkillLearner — extracts reusable skills from agent runs.
66
+ *
67
+ * When the agent resolves an error, SkillLearner distills the
68
+ * error pattern + fix strategy into a LearnedSkill that can be
69
+ * reused in future runs. Skills evolve through a confidence system:
70
+ * successful reuse increases confidence, failure decreases it,
71
+ * and low-confidence skills are eventually pruned.
72
+ */
73
+ export declare class SkillLearner {
74
+ private storagePath;
75
+ private skills;
76
+ constructor(projectRoot: string);
77
+ /**
78
+ * Load all skills from disk. Must be called before using the learner.
79
+ */
80
+ init(): Promise<void>;
81
+ /**
82
+ * Extract a potential new skill from a completed agent run analysis.
83
+ * Called after each successful error resolution.
84
+ *
85
+ * @returns The newly created skill, or null if no learnable pattern found
86
+ */
87
+ extractSkillFromRun(analysis: RunAnalysis, sessionId: string): LearnedSkill | null;
88
+ /**
89
+ * Update skill confidence based on usage result.
90
+ */
91
+ updateConfidence(skillId: string, success: boolean): void;
92
+ /**
93
+ * Find learned skills relevant to current context.
94
+ */
95
+ getRelevantSkills(context: {
96
+ errorMessage?: string;
97
+ filePath?: string;
98
+ language?: string;
99
+ }): LearnedSkill[];
100
+ /**
101
+ * Remove skills with confidence below threshold.
102
+ * @returns IDs of pruned skills
103
+ */
104
+ pruneDeprecated(threshold?: number): string[];
105
+ /**
106
+ * Convert learned skill to SkillDefinition format for PluginRegistry.
107
+ */
108
+ toSkillDefinition(skill: LearnedSkill): SkillDefinition;
109
+ /**
110
+ * Learn from user correction (highest signal).
111
+ * When a user manually corrects the agent's work, this captures
112
+ * the before/after delta as a new skill.
113
+ */
114
+ learnFromCorrection(before: string, after: string, context: Record<string, unknown>): LearnedSkill | null;
115
+ /**
116
+ * Get all loaded skills.
117
+ */
118
+ getAllSkills(): LearnedSkill[];
119
+ /**
120
+ * Get skill by ID.
121
+ */
122
+ getSkill(id: string): LearnedSkill | undefined;
123
+ /**
124
+ * Persist all skills to disk.
125
+ */
126
+ save(): Promise<void>;
127
+ private loadSkills;
128
+ private saveSkills;
129
+ private saveSkill;
130
+ private generateId;
131
+ private buildErrorPattern;
132
+ private inferValidation;
133
+ private inferScope;
134
+ private buildSkillTemplate;
135
+ }
136
+ //# sourceMappingURL=skill-learner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-learner.d.ts","sourceRoot":"","sources":["../src/skill-learner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,382 @@
1
+ /**
2
+ * @module skill-learner
3
+ * @description Skill Learner — Self-improving agent that generates skills from experience.
4
+ *
5
+ * Flow:
6
+ * 1. Error pattern discovered during agent run
7
+ * 2. Agent successfully fixes it
8
+ * 3. SkillLearner extracts: pattern → diagnosis → fix strategy → validation
9
+ * 4. New skill stored in .yuan/learned-skills/
10
+ * 5. Next time → learned skill auto-activates
11
+ *
12
+ * Confidence evolution:
13
+ * - New skill: 0.5
14
+ * - Success: +0.1 (max 0.95)
15
+ * - Failure: -0.2
16
+ * - Below 0.2: deprecated
17
+ */
18
+ import { readFile, writeFile, readdir, mkdir, unlink } from "node:fs/promises";
19
+ import { join } from "node:path";
20
+ // ─── Constants ───
21
+ const INITIAL_CONFIDENCE = 0.5;
22
+ const SUCCESS_INCREMENT = 0.1;
23
+ const FAILURE_DECREMENT = 0.2;
24
+ const MAX_CONFIDENCE = 0.95;
25
+ const DEPRECATION_THRESHOLD = 0.2;
26
+ const SKILLS_DIR = "learned-skills";
27
+ // ─── SkillLearner ───
28
+ /**
29
+ * SkillLearner — extracts reusable skills from agent runs.
30
+ *
31
+ * When the agent resolves an error, SkillLearner distills the
32
+ * error pattern + fix strategy into a LearnedSkill that can be
33
+ * reused in future runs. Skills evolve through a confidence system:
34
+ * successful reuse increases confidence, failure decreases it,
35
+ * and low-confidence skills are eventually pruned.
36
+ */
37
+ export class SkillLearner {
38
+ storagePath;
39
+ skills = new Map();
40
+ constructor(projectRoot) {
41
+ this.storagePath = join(projectRoot, ".yuan", SKILLS_DIR);
42
+ }
43
+ /**
44
+ * Load all skills from disk. Must be called before using the learner.
45
+ */
46
+ async init() {
47
+ await this.loadSkills();
48
+ }
49
+ /**
50
+ * Extract a potential new skill from a completed agent run analysis.
51
+ * Called after each successful error resolution.
52
+ *
53
+ * @returns The newly created skill, or null if no learnable pattern found
54
+ */
55
+ extractSkillFromRun(analysis, sessionId) {
56
+ // Find resolved error patterns — the highest signal for learning
57
+ const resolved = analysis.errorPatterns.filter((ep) => ep.resolution);
58
+ if (resolved.length === 0)
59
+ return null;
60
+ // Pick the most frequent resolved error
61
+ const best = resolved.reduce((a, b) => b.frequency > a.frequency ? b : a);
62
+ // Build a regex-safe error pattern from the message
63
+ const errorPattern = this.buildErrorPattern(best.message);
64
+ // Check for duplicate skill
65
+ for (const existing of this.skills.values()) {
66
+ if (existing.errorPattern === errorPattern) {
67
+ // Reinforce existing skill instead of creating a new one
68
+ this.updateConfidence(existing.id, true);
69
+ return null;
70
+ }
71
+ }
72
+ // Extract the tool sequence from the analysis
73
+ const toolSeq = analysis.toolPatterns
74
+ .filter((tp) => tp.successRate > 0.5)
75
+ .sort((a, b) => b.count - a.count)
76
+ .map((tp) => tp.tool);
77
+ const skill = {
78
+ id: this.generateId(errorPattern),
79
+ errorPattern,
80
+ diagnosis: `${best.type}: ${best.message}`,
81
+ strategy: best.resolution ?? "Unknown resolution",
82
+ toolSequence: toolSeq.length > 0 ? toolSeq : [best.tool],
83
+ validation: this.inferValidation(best.type),
84
+ confidence: INITIAL_CONFIDENCE,
85
+ usageCount: 0,
86
+ successCount: 0,
87
+ lastUsed: Date.now(),
88
+ createdFrom: {
89
+ sessionId,
90
+ errorMessage: best.message,
91
+ fixSummary: best.resolution ?? "",
92
+ timestamp: Date.now(),
93
+ },
94
+ scope: this.inferScope(best),
95
+ };
96
+ this.skills.set(skill.id, skill);
97
+ return skill;
98
+ }
99
+ /**
100
+ * Update skill confidence based on usage result.
101
+ */
102
+ updateConfidence(skillId, success) {
103
+ const skill = this.skills.get(skillId);
104
+ if (!skill)
105
+ return;
106
+ skill.usageCount++;
107
+ skill.lastUsed = Date.now();
108
+ if (success) {
109
+ skill.successCount++;
110
+ skill.confidence = Math.min(skill.confidence + SUCCESS_INCREMENT, MAX_CONFIDENCE);
111
+ }
112
+ else {
113
+ skill.confidence = Math.max(skill.confidence - FAILURE_DECREMENT, 0);
114
+ }
115
+ }
116
+ /**
117
+ * Find learned skills relevant to current context.
118
+ */
119
+ getRelevantSkills(context) {
120
+ const results = [];
121
+ for (const skill of this.skills.values()) {
122
+ // Skip deprecated skills
123
+ if (skill.confidence < DEPRECATION_THRESHOLD)
124
+ continue;
125
+ let score = 0;
126
+ // Match error pattern
127
+ if (context.errorMessage) {
128
+ try {
129
+ const re = new RegExp(skill.errorPattern, "i");
130
+ if (re.test(context.errorMessage)) {
131
+ score += 3;
132
+ }
133
+ }
134
+ catch {
135
+ // Invalid regex — try substring match
136
+ if (context.errorMessage
137
+ .toLowerCase()
138
+ .includes(skill.errorPattern.toLowerCase())) {
139
+ score += 2;
140
+ }
141
+ }
142
+ }
143
+ // Match file pattern scope
144
+ if (context.filePath && skill.scope?.filePattern) {
145
+ try {
146
+ const re = new RegExp(skill.scope.filePattern);
147
+ if (re.test(context.filePath)) {
148
+ score += 1;
149
+ }
150
+ }
151
+ catch {
152
+ // ignore
153
+ }
154
+ }
155
+ // Match language scope
156
+ if (context.language &&
157
+ skill.scope?.language &&
158
+ skill.scope.language.toLowerCase() === context.language.toLowerCase()) {
159
+ score += 1;
160
+ }
161
+ if (score > 0) {
162
+ results.push(skill);
163
+ }
164
+ }
165
+ // Sort by relevance (confidence * usage pattern)
166
+ return results.sort((a, b) => b.confidence - a.confidence);
167
+ }
168
+ /**
169
+ * Remove skills with confidence below threshold.
170
+ * @returns IDs of pruned skills
171
+ */
172
+ pruneDeprecated(threshold) {
173
+ const cutoff = threshold ?? DEPRECATION_THRESHOLD;
174
+ const pruned = [];
175
+ for (const [id, skill] of this.skills) {
176
+ if (skill.confidence < cutoff) {
177
+ this.skills.delete(id);
178
+ pruned.push(id);
179
+ }
180
+ }
181
+ return pruned;
182
+ }
183
+ /**
184
+ * Convert learned skill to SkillDefinition format for PluginRegistry.
185
+ */
186
+ toSkillDefinition(skill) {
187
+ const trigger = {
188
+ kind: "auto",
189
+ pattern: skill.errorPattern,
190
+ confidence: skill.confidence,
191
+ };
192
+ return {
193
+ id: `learned:${skill.id}`,
194
+ name: `Learned: ${skill.diagnosis.slice(0, 60)}`,
195
+ description: `Auto-learned skill: ${skill.strategy}`,
196
+ trigger,
197
+ template: this.buildSkillTemplate(skill),
198
+ enabled: skill.confidence >= DEPRECATION_THRESHOLD,
199
+ tags: [
200
+ "learned",
201
+ ...(skill.scope?.language ? [skill.scope.language] : []),
202
+ ...(skill.scope?.framework ? [skill.scope.framework] : []),
203
+ ],
204
+ };
205
+ }
206
+ /**
207
+ * Learn from user correction (highest signal).
208
+ * When a user manually corrects the agent's work, this captures
209
+ * the before/after delta as a new skill.
210
+ */
211
+ learnFromCorrection(before, after, context) {
212
+ // Build a pattern from the context
213
+ const errorMsg = typeof context.errorMessage === "string"
214
+ ? context.errorMessage
215
+ : "user_correction";
216
+ const errorPattern = this.buildErrorPattern(errorMsg);
217
+ const skill = {
218
+ id: this.generateId(`correction:${errorPattern}`),
219
+ errorPattern,
220
+ diagnosis: `User corrected agent output`,
221
+ strategy: `Apply user correction pattern: ${after.slice(0, 200)}`,
222
+ toolSequence: ["file_edit"],
223
+ validation: "User verification",
224
+ confidence: 0.7, // User corrections start with higher confidence
225
+ usageCount: 1,
226
+ successCount: 1,
227
+ lastUsed: Date.now(),
228
+ createdFrom: {
229
+ sessionId: String(context.sessionId ?? "unknown"),
230
+ errorMessage: errorMsg,
231
+ fixSummary: `User changed: ${before.slice(0, 100)} → ${after.slice(0, 100)}`,
232
+ timestamp: Date.now(),
233
+ },
234
+ scope: typeof context.language === "string"
235
+ ? { language: context.language }
236
+ : undefined,
237
+ };
238
+ this.skills.set(skill.id, skill);
239
+ return skill;
240
+ }
241
+ /**
242
+ * Get all loaded skills.
243
+ */
244
+ getAllSkills() {
245
+ return Array.from(this.skills.values());
246
+ }
247
+ /**
248
+ * Get skill by ID.
249
+ */
250
+ getSkill(id) {
251
+ return this.skills.get(id);
252
+ }
253
+ /**
254
+ * Persist all skills to disk.
255
+ */
256
+ async save() {
257
+ await this.saveSkills();
258
+ }
259
+ // ─── Private: Persistence ───
260
+ async loadSkills() {
261
+ try {
262
+ const files = await readdir(this.storagePath);
263
+ for (const file of files) {
264
+ if (!file.endsWith(".json"))
265
+ continue;
266
+ try {
267
+ const raw = await readFile(join(this.storagePath, file), "utf-8");
268
+ const skill = JSON.parse(raw);
269
+ if (skill.id) {
270
+ this.skills.set(skill.id, skill);
271
+ }
272
+ }
273
+ catch {
274
+ // Skip corrupted skill files
275
+ }
276
+ }
277
+ }
278
+ catch {
279
+ // Directory doesn't exist yet — that's fine
280
+ }
281
+ }
282
+ async saveSkills() {
283
+ await mkdir(this.storagePath, { recursive: true });
284
+ for (const skill of this.skills.values()) {
285
+ await this.saveSkill(skill);
286
+ }
287
+ // Clean up files for deleted skills
288
+ try {
289
+ const files = await readdir(this.storagePath);
290
+ for (const file of files) {
291
+ if (!file.endsWith(".json"))
292
+ continue;
293
+ const id = file.replace(".json", "");
294
+ if (!this.skills.has(id)) {
295
+ await unlink(join(this.storagePath, file));
296
+ }
297
+ }
298
+ }
299
+ catch {
300
+ // ignore cleanup errors
301
+ }
302
+ }
303
+ async saveSkill(skill) {
304
+ await mkdir(this.storagePath, { recursive: true });
305
+ const filePath = join(this.storagePath, `${skill.id}.json`);
306
+ await writeFile(filePath, JSON.stringify(skill, null, 2), "utf-8");
307
+ }
308
+ // ─── Private: Helpers ───
309
+ generateId(pattern) {
310
+ // Simple hash from pattern string
311
+ let hash = 0;
312
+ for (let i = 0; i < pattern.length; i++) {
313
+ const ch = pattern.charCodeAt(i);
314
+ hash = ((hash << 5) - hash + ch) | 0;
315
+ }
316
+ const hex = Math.abs(hash).toString(16).padStart(8, "0");
317
+ return `skill_${hex}`;
318
+ }
319
+ buildErrorPattern(message) {
320
+ // Escape special regex chars but keep structure meaningful
321
+ return message
322
+ .replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
323
+ .replace(/\d+/g, "\\d+") // Generalize numbers
324
+ .replace(/\s+/g, "\\s+") // Generalize whitespace
325
+ .slice(0, 200); // Limit pattern length
326
+ }
327
+ inferValidation(errorType) {
328
+ switch (errorType) {
329
+ case "TypeScriptError":
330
+ return "tsc --noEmit";
331
+ case "LintError":
332
+ return "eslint --quiet";
333
+ case "TestFailure":
334
+ return "npm test";
335
+ case "ModuleNotFoundError":
336
+ return "Check import paths exist";
337
+ case "SyntaxError":
338
+ return "tsc --noEmit";
339
+ default:
340
+ return "Build check";
341
+ }
342
+ }
343
+ inferScope(errorPattern) {
344
+ if (errorPattern.type === "TypeScriptError" ||
345
+ errorPattern.tool === "tsc") {
346
+ return { language: "TypeScript", filePattern: "\\.[jt]sx?$" };
347
+ }
348
+ if (errorPattern.type === "LintError") {
349
+ return { filePattern: "\\.[jt]sx?$" };
350
+ }
351
+ return undefined;
352
+ }
353
+ buildSkillTemplate(skill) {
354
+ const lines = [
355
+ `## Learned Skill: ${skill.diagnosis}`,
356
+ "",
357
+ `**Pattern:** \`${skill.errorPattern}\``,
358
+ `**Confidence:** ${skill.confidence.toFixed(2)}`,
359
+ `**Uses:** ${skill.usageCount} (${skill.successCount} successes)`,
360
+ "",
361
+ `### Strategy`,
362
+ skill.strategy,
363
+ "",
364
+ `### Tool Sequence`,
365
+ ...skill.toolSequence.map((t, i) => `${i + 1}. ${t}`),
366
+ "",
367
+ `### Validation`,
368
+ skill.validation,
369
+ ];
370
+ if (skill.scope) {
371
+ lines.push("", "### Scope");
372
+ if (skill.scope.language)
373
+ lines.push(`- Language: ${skill.scope.language}`);
374
+ if (skill.scope.framework)
375
+ lines.push(`- Framework: ${skill.scope.framework}`);
376
+ if (skill.scope.filePattern)
377
+ lines.push(`- Files: \`${skill.scope.filePattern}\``);
378
+ }
379
+ return lines.join("\n");
380
+ }
381
+ }
382
+ //# sourceMappingURL=skill-learner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-learner.js","sourceRoot":"","sources":["../src/skill-learner.ts"],"names":[],"mappings":"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"}