@galaxy-stack/ai-coder-core 0.3.0-alpha.15 → 0.3.0-alpha.17

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 (86) hide show
  1. package/CHANGELOG.d/2026-09-26-binary-review-pipe-guidance-finalization-test.md +14 -0
  2. package/CHANGELOG.d/2026-09-26-cache-capability-and-mcp-reconnect.md +16 -0
  3. package/CHANGELOG.d/2026-09-26-cache-hit-harness.md +13 -0
  4. package/CHANGELOG.d/2026-09-26-cache-hit-rate-and-inhistory-option.md +12 -0
  5. package/CHANGELOG.d/2026-09-26-cumulative-cache-hit.md +13 -0
  6. package/CHANGELOG.d/2026-09-26-finalization-prefix-and-verified-inhistory.md +12 -0
  7. package/CHANGELOG.d/2026-09-26-generated-state-and-churn-guard.md +17 -0
  8. package/CHANGELOG.d/2026-09-26-mcp-reconnect-fixture.md +11 -0
  9. package/CHANGELOG.d/2026-09-26-memory-hybrid-semantic-consolidation.md +16 -0
  10. package/CHANGELOG.d/2026-09-26-memory-recall-benchmark.md +12 -0
  11. package/CHANGELOG.d/2026-09-26-ollama-cache-usage.md +14 -0
  12. package/CHANGELOG.d/2026-09-26-ollama-embeddings-provider.md +13 -0
  13. package/CHANGELOG.d/2026-09-26-skill-index-signing.md +11 -0
  14. package/CHANGELOG.d/2026-09-26-skill-version-and-marketplace.md +14 -0
  15. package/dist/adapters/node/config/manual-provider-config.d.ts +3 -0
  16. package/dist/adapters/node/config/manual-provider-config.d.ts.map +1 -1
  17. package/dist/adapters/node/config/manual-provider-config.js +4 -0
  18. package/dist/adapters/node/config/manual-provider-config.js.map +1 -1
  19. package/dist/adapters/node/host/node-workspace-evidence-verifier.d.ts.map +1 -1
  20. package/dist/adapters/node/host/node-workspace-evidence-verifier.js +10 -13
  21. package/dist/adapters/node/host/node-workspace-evidence-verifier.js.map +1 -1
  22. package/dist/adapters/node/host/node-workspace-port.d.ts.map +1 -1
  23. package/dist/adapters/node/host/node-workspace-port.js +6 -1
  24. package/dist/adapters/node/host/node-workspace-port.js.map +1 -1
  25. package/dist/adapters/node/host/node-workspace-snapshot.d.ts.map +1 -1
  26. package/dist/adapters/node/host/node-workspace-snapshot.js +5 -15
  27. package/dist/adapters/node/host/node-workspace-snapshot.js.map +1 -1
  28. package/dist/adapters/node/host/workspace-generated-state.d.ts +22 -0
  29. package/dist/adapters/node/host/workspace-generated-state.d.ts.map +1 -0
  30. package/dist/adapters/node/host/workspace-generated-state.js +56 -0
  31. package/dist/adapters/node/host/workspace-generated-state.js.map +1 -0
  32. package/dist/adapters/node/mcp/mcp-client.d.ts +7 -2
  33. package/dist/adapters/node/mcp/mcp-client.d.ts.map +1 -1
  34. package/dist/adapters/node/mcp/mcp-client.js +41 -6
  35. package/dist/adapters/node/mcp/mcp-client.js.map +1 -1
  36. package/dist/adapters/node/memory/ollama-embeddings.d.ts +26 -0
  37. package/dist/adapters/node/memory/ollama-embeddings.d.ts.map +1 -0
  38. package/dist/adapters/node/memory/ollama-embeddings.js +98 -0
  39. package/dist/adapters/node/memory/ollama-embeddings.js.map +1 -0
  40. package/dist/adapters/node/memory/sqlite-memory.d.ts +16 -3
  41. package/dist/adapters/node/memory/sqlite-memory.d.ts.map +1 -1
  42. package/dist/adapters/node/memory/sqlite-memory.js +138 -16
  43. package/dist/adapters/node/memory/sqlite-memory.js.map +1 -1
  44. package/dist/adapters/node/provider/ollama-chat-stream.d.ts.map +1 -1
  45. package/dist/adapters/node/provider/ollama-chat-stream.js +4 -0
  46. package/dist/adapters/node/provider/ollama-chat-stream.js.map +1 -1
  47. package/dist/adapters/node/provider/ollama-coding-model.d.ts +9 -0
  48. package/dist/adapters/node/provider/ollama-coding-model.d.ts.map +1 -1
  49. package/dist/adapters/node/provider/ollama-coding-model.js +18 -0
  50. package/dist/adapters/node/provider/ollama-coding-model.js.map +1 -1
  51. package/dist/adapters/node/skills/directory-skills.d.ts.map +1 -1
  52. package/dist/adapters/node/skills/directory-skills.js +16 -1
  53. package/dist/adapters/node/skills/directory-skills.js.map +1 -1
  54. package/dist/adapters/node/skills/skill-marketplace.d.ts +71 -0
  55. package/dist/adapters/node/skills/skill-marketplace.d.ts.map +1 -0
  56. package/dist/adapters/node/skills/skill-marketplace.js +259 -0
  57. package/dist/adapters/node/skills/skill-marketplace.js.map +1 -0
  58. package/dist/adapters/node/tools/workspace-review.d.ts.map +1 -1
  59. package/dist/adapters/node/tools/workspace-review.js +23 -9
  60. package/dist/adapters/node/tools/workspace-review.js.map +1 -1
  61. package/dist/agent/index.d.ts +17 -0
  62. package/dist/agent/index.d.ts.map +1 -1
  63. package/dist/agent/index.js.map +1 -1
  64. package/dist/context/context-manager.d.ts +4 -1
  65. package/dist/context/context-manager.d.ts.map +1 -1
  66. package/dist/context/context-manager.js +25 -5
  67. package/dist/context/context-manager.js.map +1 -1
  68. package/dist/context/token-ledger.d.ts +9 -0
  69. package/dist/context/token-ledger.d.ts.map +1 -1
  70. package/dist/context/token-ledger.js +8 -0
  71. package/dist/context/token-ledger.js.map +1 -1
  72. package/dist/ports/capability-port.d.ts +8 -0
  73. package/dist/ports/capability-port.d.ts.map +1 -1
  74. package/dist/prompt/prompt-assembler.d.ts +1 -1
  75. package/dist/prompt/prompt-assembler.d.ts.map +1 -1
  76. package/dist/prompt/prompt-assembler.js +6 -4
  77. package/dist/prompt/prompt-assembler.js.map +1 -1
  78. package/dist/runtime/run-controller.d.ts.map +1 -1
  79. package/dist/runtime/run-controller.js +57 -8
  80. package/dist/runtime/run-controller.js.map +1 -1
  81. package/dist/runtime/runtime-types.d.ts +10 -0
  82. package/dist/runtime/runtime-types.d.ts.map +1 -1
  83. package/docs/CACHE_HIT.md +109 -0
  84. package/docs/GALAXY_AGENT_PLATFORM_TODO.md +1 -0
  85. package/docs/SKILL_MARKETPLACE.md +59 -0
  86. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-coding-model.js","sourceRoot":"","sources":["../../../../src/adapters/node/provider/ollama-coding-model.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,WAAW,GAUZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACzC,cAAc;IACd,YAAY;IACZ,WAAW;IACX,WAAW;IACX,WAAW;CACZ,CAAC,CAAC;AAmBH,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,KAAsB;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACtF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO;YAAE,SAAS;QACjD,OAAO,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAkC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACrD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAsC;SACtG,CAAC;KACH,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,aAAa,CAAC,QAAkC,EAAE,gBAAyB;IAClF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAc,EAAE;QACxD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;wBAC7E,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;qBAC/E,CAAC,CAAC,CAAC;iBACL,CAAC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAgB;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7G,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,mBAAmB,CAAC;IACjE,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,qBAAqB,CAAC;IACjD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,mBAAmB,CAAC;IACjE,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,aAAa,CAAC;IAC1D,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,gBAAgB,CAAC;IAC9D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,qBAAqB,CAAC;IACjD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACvD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAC1C,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,MAA0B;IAC5D,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;IAClF,IAAI,MAAM;QAAE,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;QAC5C,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,iDAAiD,CAAC;AAC3E,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC/G,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrD,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA0B,EAAE,MAA0B;IACnF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,gBAAgB,CAAC,QAAkB,EAAE,MAAmB;IACtE,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,KAAK,GAAG,GAAS,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;gBAAC,MAAM;YAAC,CAAC;YACvC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/B,IAAI,KAAK,GAAG,kBAAkB;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACnF,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAkB,EAAE,MAAmB;IACxE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5G,OAAO,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,UAAU,CAAC,QAAkB,EAAE,MAAmB,EAAE,OAAgC;IAClG,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAe,CAAC;QACpB,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;YACpB,IAAI,IAAI;gBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC9C,CAAC;QACD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAC7B,IAAI,QAAQ,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAC;AAC7D,CAAC;AAED,MAAM,OAAO,iBAAiB;IAaC;IAZpB,QAAQ,CAAgB;IAChB,SAAS,CAAY;IACrB,gBAAgB,CAAS;IAClC,eAAe,GAA6B,IAAI,CAAC;IACjD,YAAY,GAAG,CAAC,CAAC;IACjB,gBAAgB,GAAG,CAAC,CAAC;IACrB,aAAa,GAAG,CAAC,CAAC;IAClB,cAAc,GAAG,CAAC,CAAC;IAC3B,wEAAwE;IACxE,0EAA0E;IACzD,gBAAgB,GAAG,UAAU,EAAE,CAAC;IAEjD,YAA6B,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;QAC5D,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,oBAAoB;SACrC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW;QACb,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;IACL,CAAC;IAEO,OAAO;QACb,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,cAAc,EAAE,kBAAkB;YAClC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAgB,EAAE,OAA4B;QAC/E,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChD,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,kCAAkC,EAAE,IAAI,CAAC,CAAC;QACvG,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,CAAC,KAA0B,EAAQ,EAAE;gBACrD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;oBAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1D,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC,CAAC;YACpG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,SAAS,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,EACtF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAC/D,CAAC;YACF,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;oBACzC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;oBACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;gBACxC,IAAI,MAAM,YAAY,mBAAmB;oBAAE,MAAM,MAAM,CAAC;gBACxD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC3G,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;gBACnD,IAAI,SAAS,KAAK,SAAS,IAAI,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAClG,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;wBAAE,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;oBACtG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC7D,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;wBAAE,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;oBACtG,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,mBAAmB,CAC3B,gBAAgB,EAChB,0BAA0B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,SAAS,GAAG,KAAK,OAAO,EAAE,EAC9F,IAAI,CACL,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5E,IAAI,KAAK,GAAyB,IAAI,CAAC;QACvC,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;gBAClF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,OAAO,EAAE,KAAK;aACf,CAAC,EAAE,OAAO,CAAC,CAAC;YACb,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjD,OAAO,WAAW,CAAC;oBACjB,IAAI;oBACJ,OAAO,EAAE,8BAA8B,QAAQ,CAAC,MAAM,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACrG,SAAS,EAAE,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,mBAAmB;iBAClE,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;gBACpD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;gBACjF,CAAC,CAAC,EAAE,CAAC,CAAC;YACR,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,SAAkB,CAAC;YACxG,MAAM,aAAa,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBACpC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAmB,CAAC,CAAC,CAAC,UAAmB;gBAC3D,CAAC,CAAC,SAAkB,CAAC;YACvB,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;wBACrC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACpC,MAAM,EAAE,cAAuB;wBAC/B,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC,CAAC;gBACJ,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;gBACzD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;oBACnB,IAAI,EAAE,WAAoB;oBAC1B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,SAAkB;oBACtE,KAAK,EAAE,SAAkB;oBACzB,KAAK,EAAE,SAAkB;iBAC1B,CAAC;gBACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAoB,EAAE,KAAK,EAAE,SAAkB,EAAE,CAAC;gBAChF,mBAAmB,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,SAAkB;gBAC5F,gBAAgB,EAAE,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,SAAkB;gBAChH,SAAS,EAAE,WAAoB;gBAC/B,sEAAsE;gBACtE,qEAAqE;gBACrE,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,SAAkB,CAAC,CAAC,CAAC,WAAoB;gBACxE,QAAQ;gBACR,aAAa,EAAE,aAAsB;gBACrC,WAAW;aACZ,CAAC,CAAC;YACH,OAAO,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,MAAM,IAAI,GAAkB,QAAQ,EAAE,IAAI,KAAK,UAAU;gBACvD,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS;oBAC5B,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,gBAAgB,CAAC;YACvB,OAAO,WAAW,CAAC;gBACjB,IAAI;gBACJ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,KAAK;aACxC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,KAAK,EAAE,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuD,EAAE,OAA4B;QACrG,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,qCAAqC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACvI,MAAM,KAAK,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpH,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,CAAC,WAAW,CAAC,OAA2B,EAAE,OAA4B;QAC1E,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,UAAU,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACvE,IAAI,KAAoB,CAAC;QACzB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;gBAClF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC;gBACnE,uEAAuE;gBACvE,uEAAuE;gBACvE,+DAA+D;gBAC/D,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtF,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK;gBAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;oBACrB,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;oBAC1F,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;iBACnF,CAAC;aACH,CAAC,EAAE,OAAO,CAAC,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACzC,MAAM,MAAM,CAAC,MAAM,CAAC;gBAClB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,YAAY,mBAAmB;oBACzC,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,IAAI,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;aAC5G,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC;YACL,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC9D,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACpD,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBACzC,MAAM,MAAM,CAAC,MAAM,CAAC;wBAClB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,IAAI,mBAAmB,CAC5B,IAAI,EACJ,uBAAuB,QAAQ,CAAC,MAAM,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EACrF,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAC7E;qBACF,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBACzC,MAAM,MAAM,CAAC,MAAM,CAAC;wBAClB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,KAAK,YAAY,mBAAmB;4BACzC,CAAC,CAAC,KAAK;4BACP,CAAC,CAAC,IAAI,mBAAmB,CACrB,kBAAkB,EAClB,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClG;qBACN,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YACD,MAAM,UAAU,GAAG,0BAA0B,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;gBACvG,OAAO;aACR,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;YACnD,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxG,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvF,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC;oBACvC,KAAK,CAAC,CAAC,MAAM,CAAC;oBACd,IAAI,UAAU,CAAC,MAAM;wBAAE,OAAO;gBAChC,CAAC;gBACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC;gBACtC,KAAK,CAAC,CAAC,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,CAAC,MAAM,CAAC;oBAClB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,KAAK,YAAY,mBAAmB;wBACzC,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,IAAI,mBAAmB,CACrB,kBAAkB,EAClB,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;wBAC3F,gEAAgE;wBAChE,+DAA+D;wBAC/D,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC,CAChC;iBACN,CAAC,CAAC;YACL,CAAC;QACD,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,0EAA0E;YAC1E,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ollama-coding-model.js","sourceRoot":"","sources":["../../../../src/adapters/node/provider/ollama-coding-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"directory-skills.d.ts","sourceRoot":"","sources":["../../../../src/adapters/node/skills/directory-skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAsBhF,qBAAa,eAAgB,YAAW,eAAe;IAEzC,OAAO,CAAC,QAAQ,CAAC,KAAK;IADlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqD;gBAChD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAmB3C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAOzE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAQ9D"}
1
+ {"version":3,"file":"directory-skills.d.ts","sourceRoot":"","sources":["../../../../src/adapters/node/skills/directory-skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAmChF,qBAAa,eAAgB,YAAW,eAAe;IAEzC,OAAO,CAAC,QAAQ,CAAC,KAAK;IADlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqD;gBAChD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAmB3C,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAOzE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAQ9D"}
@@ -27,7 +27,22 @@ function describe(id, source, content) {
27
27
  const metadata = parse(front[1], { maxAliasCount: 20 });
28
28
  if (!metadata || typeof metadata !== "object" || !("name" in metadata) || !("description" in metadata) || typeof metadata.name !== "string" || typeof metadata.description !== "string" || !metadata.name.trim() || !metadata.description.trim() || metadata.description.length > 2048)
29
29
  throw new Error(`Invalid skill metadata: ${id}`);
30
- return { id, name: metadata.name, description: metadata.description, source, contentHash: createHash("sha256").update(content).digest("hex") };
30
+ const record = metadata;
31
+ const version = record.version;
32
+ if (version !== undefined && (typeof version !== "string" || !/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(version)))
33
+ throw new Error(`Invalid skill version: ${id}`);
34
+ const rawTags = record.tags;
35
+ if (rawTags !== undefined && (!Array.isArray(rawTags) || rawTags.some((tag) => typeof tag !== "string" || !tag.trim() || tag.length > 32)))
36
+ throw new Error(`Invalid skill tags: ${id}`);
37
+ return {
38
+ id,
39
+ name: metadata.name,
40
+ description: metadata.description,
41
+ source,
42
+ contentHash: createHash("sha256").update(content).digest("hex"),
43
+ ...(version === undefined ? {} : { version: version }),
44
+ ...(rawTags === undefined ? {} : { tags: Object.freeze(rawTags.map(tag => tag.trim())) }),
45
+ };
31
46
  }
32
47
  export class DirectorySkills {
33
48
  roots;
@@ -1 +1 @@
1
- {"version":3,"file":"directory-skills.js","sourceRoot":"","sources":["../../../../src/adapters/node/skills/directory-skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory-skills.js","sourceRoot":"","sources":["../../../../src/adapters/node/skills/directory-skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ export type MarketplaceFetch = (input: string | URL, init?: RequestInit) => Promise<Response>;
2
+ export interface SkillIndexVersion {
3
+ readonly path?: string;
4
+ readonly sha256: string;
5
+ readonly url?: string;
6
+ readonly version: string;
7
+ }
8
+ export interface SkillIndexEntry {
9
+ readonly description: string;
10
+ readonly id: string;
11
+ readonly name: string;
12
+ readonly tags?: readonly string[];
13
+ readonly versions: readonly SkillIndexVersion[];
14
+ }
15
+ export interface SkillIndex {
16
+ readonly schemaVersion: number;
17
+ readonly skills: readonly SkillIndexEntry[];
18
+ /** Base64 Ed25519 signature over the signature-free canonical index (see signSkillIndex). */
19
+ readonly signature?: string;
20
+ }
21
+ export interface InstalledSkill {
22
+ readonly id: string;
23
+ readonly name: string;
24
+ readonly version: string;
25
+ readonly sha256: string;
26
+ readonly installedAt: string;
27
+ readonly source: string;
28
+ }
29
+ /** Deterministic JSON with sorted object keys, so publisher and verifier agree byte-for-byte. */
30
+ export declare function stableSkillIndexJson(value: unknown): string;
31
+ /** Produce the base64 signature a publisher stores in the index `signature` field. */
32
+ export declare function signSkillIndex(index: unknown, privateKeyPem: string): string;
33
+ export declare function verifySkillIndexSignature(index: unknown, publicKeyPem: string): boolean;
34
+ export declare function compareSkillVersions(left: string, right: string): number;
35
+ export declare function satisfiesSkillRange(version: string, range: string): boolean;
36
+ /**
37
+ * Local-first skill marketplace. The index and skill bodies may be a filesystem
38
+ * path or an HTTP(S) URL; every installed body is verified against the index
39
+ * sha256 and written atomically outside the model-writable workspace.
40
+ */
41
+ export declare class SkillMarketplace {
42
+ private readonly fetchImpl;
43
+ private readonly installRoot;
44
+ private readonly indexSource;
45
+ private readonly publicKey;
46
+ constructor(options: {
47
+ fetch?: MarketplaceFetch;
48
+ index: string;
49
+ installRoot: string;
50
+ publicKey?: string;
51
+ });
52
+ loadIndex(): Promise<SkillIndex>;
53
+ search(query?: string): Promise<readonly SkillIndexEntry[]>;
54
+ listInstalled(): Promise<readonly InstalledSkill[]>;
55
+ install(id: string, options?: {
56
+ version?: string;
57
+ }): Promise<{
58
+ changed: boolean;
59
+ skill: InstalledSkill;
60
+ }>;
61
+ update(): Promise<readonly {
62
+ changed: boolean;
63
+ skill: InstalledSkill;
64
+ }[]>;
65
+ remove(id: string): Promise<boolean>;
66
+ private validateEntry;
67
+ private loadSkillContent;
68
+ private fetchText;
69
+ private atomicWrite;
70
+ }
71
+ //# sourceMappingURL=skill-marketplace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-marketplace.d.ts","sourceRoot":"","sources":["../../../../src/adapters/node/skills/skill-marketplace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,259 @@
1
+ import { createHash, sign as cryptoSign, verify as cryptoVerify } from "node:crypto";
2
+ import { mkdir, readFile, readdir, rename, rm, stat, writeFile } from "node:fs/promises";
3
+ import { dirname, isAbsolute, join, resolve } from "node:path";
4
+ const MAX_INDEX_BYTES = 2 * 1024 * 1024;
5
+ const MAX_SKILL_BYTES = 65536;
6
+ const SKILL_ID = /^[a-z0-9][a-z0-9._-]{0,63}$/;
7
+ const VERSION = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/;
8
+ const SHA256 = /^[a-f0-9]{64}$/;
9
+ /** Deterministic JSON with sorted object keys, so publisher and verifier agree byte-for-byte. */
10
+ export function stableSkillIndexJson(value) {
11
+ if (value === null || typeof value !== "object")
12
+ return value === undefined ? "null" : JSON.stringify(value);
13
+ if (Array.isArray(value))
14
+ return `[${value.map(stableSkillIndexJson).join(",")}]`;
15
+ return `{${Object.entries(value)
16
+ .filter(([, item]) => item !== undefined)
17
+ .sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))
18
+ .map(([key, item]) => `${JSON.stringify(key)}:${stableSkillIndexJson(item)}`)
19
+ .join(",")}}`;
20
+ }
21
+ function indexSignaturePayload(index) {
22
+ const { signature: _signature, ...rest } = (index ?? {});
23
+ return Buffer.from(stableSkillIndexJson(rest), "utf8");
24
+ }
25
+ /** Produce the base64 signature a publisher stores in the index `signature` field. */
26
+ export function signSkillIndex(index, privateKeyPem) {
27
+ return cryptoSign(null, indexSignaturePayload(index), privateKeyPem).toString("base64");
28
+ }
29
+ export function verifySkillIndexSignature(index, publicKeyPem) {
30
+ const signature = index?.signature;
31
+ if (typeof signature !== "string" || signature.trim().length === 0)
32
+ return false;
33
+ try {
34
+ return cryptoVerify(null, indexSignaturePayload(index), publicKeyPem, Buffer.from(signature, "base64"));
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ function isRemote(source) {
41
+ try {
42
+ const url = new URL(source);
43
+ return url.protocol === "http:" || url.protocol === "https:";
44
+ }
45
+ catch {
46
+ return false;
47
+ }
48
+ }
49
+ function parseVersion(version) {
50
+ const [core = "", pre = ""] = version.split("-", 2);
51
+ const [major = 0, minor = 0, patch = 0] = core.split(".").map(part => Number(part));
52
+ return [major, minor, patch, pre];
53
+ }
54
+ export function compareSkillVersions(left, right) {
55
+ const a = parseVersion(left);
56
+ const b = parseVersion(right);
57
+ for (let index = 0; index < 3; index += 1)
58
+ if (a[index] !== b[index])
59
+ return a[index] - b[index];
60
+ // A release outranks its prereleases; compare prerelease strings lexically otherwise.
61
+ if (a[3] === b[3])
62
+ return 0;
63
+ if (a[3] === "")
64
+ return 1;
65
+ if (b[3] === "")
66
+ return -1;
67
+ return a[3] < b[3] ? -1 : 1;
68
+ }
69
+ export function satisfiesSkillRange(version, range) {
70
+ const wanted = range.trim();
71
+ if (wanted === "" || wanted === "*" || wanted === "latest")
72
+ return true;
73
+ const target = wanted.replace(/^[\^~]/, "");
74
+ if (!VERSION.test(target))
75
+ throw new Error(`Invalid skill version range: ${range}`);
76
+ if (compareSkillVersions(version, target) < 0)
77
+ return false;
78
+ const [major, minor] = parseVersion(target);
79
+ if (wanted.startsWith("^"))
80
+ return major > 0 ? parseVersion(version)[0] === major : minor > 0 ? parseVersion(version)[1] === minor : parseVersion(version)[2] === parseVersion(target)[2];
81
+ if (wanted.startsWith("~"))
82
+ return parseVersion(version)[0] === major && parseVersion(version)[1] === minor;
83
+ return compareSkillVersions(version, target) === 0;
84
+ }
85
+ /**
86
+ * Local-first skill marketplace. The index and skill bodies may be a filesystem
87
+ * path or an HTTP(S) URL; every installed body is verified against the index
88
+ * sha256 and written atomically outside the model-writable workspace.
89
+ */
90
+ export class SkillMarketplace {
91
+ fetchImpl;
92
+ installRoot;
93
+ indexSource;
94
+ publicKey;
95
+ constructor(options) {
96
+ if (!options.index.trim())
97
+ throw new Error("A skill index path or URL is required.");
98
+ if (!isAbsolute(options.installRoot))
99
+ throw new Error("The skill install root must be an absolute path.");
100
+ if (options.publicKey !== undefined && !options.publicKey.includes("PUBLIC KEY"))
101
+ throw new Error("The trusted skill index public key must be a PEM public key.");
102
+ this.indexSource = options.index.trim();
103
+ this.installRoot = options.installRoot;
104
+ this.publicKey = options.publicKey;
105
+ this.fetchImpl = options.fetch ?? globalThis.fetch;
106
+ }
107
+ async loadIndex() {
108
+ const raw = isRemote(this.indexSource)
109
+ ? await this.fetchText(this.indexSource, MAX_INDEX_BYTES)
110
+ : await readFile(this.indexSource, "utf8");
111
+ let parsed;
112
+ try {
113
+ parsed = JSON.parse(raw);
114
+ }
115
+ catch {
116
+ throw new Error("Skill index is not valid JSON.");
117
+ }
118
+ if (!parsed || typeof parsed !== "object" || parsed.schemaVersion !== 1 || !Array.isArray(parsed.skills))
119
+ throw new Error("Unsupported skill index schema.");
120
+ if (this.publicKey !== undefined && !verifySkillIndexSignature(parsed, this.publicKey)) {
121
+ throw new Error("Skill index signature is missing or does not match the trusted public key.");
122
+ }
123
+ const skills = parsed.skills.map((entry) => this.validateEntry(entry));
124
+ return Object.freeze({
125
+ schemaVersion: 1,
126
+ skills: Object.freeze(skills),
127
+ ...(typeof parsed.signature === "string" ? { signature: parsed.signature } : {}),
128
+ });
129
+ }
130
+ async search(query = "") {
131
+ const index = await this.loadIndex();
132
+ const needle = query.trim().toLowerCase();
133
+ if (!needle)
134
+ return index.skills;
135
+ return index.skills.filter(entry => [entry.id, entry.name, entry.description, ...(entry.tags ?? [])].some(value => value.toLowerCase().includes(needle)));
136
+ }
137
+ async listInstalled() {
138
+ const installed = [];
139
+ for (const entry of await readdir(this.installRoot, { withFileTypes: true }).catch(() => [])) {
140
+ if (!entry.isDirectory())
141
+ continue;
142
+ try {
143
+ const meta = JSON.parse(await readFile(join(this.installRoot, entry.name, ".galaxy-skill.json"), "utf8"));
144
+ if (meta && typeof meta.id === "string" && typeof meta.version === "string")
145
+ installed.push(Object.freeze(meta));
146
+ }
147
+ catch { /* A directory without managed metadata is not a marketplace skill. */ }
148
+ }
149
+ return Object.freeze(installed.sort((left, right) => left.id.localeCompare(right.id)));
150
+ }
151
+ async install(id, options = {}) {
152
+ const index = await this.loadIndex();
153
+ const entry = index.skills.find(candidate => candidate.id === id);
154
+ if (!entry)
155
+ throw new Error(`Unknown skill: ${id}.`);
156
+ const range = options.version ?? "*";
157
+ const candidates = entry.versions.filter(candidate => satisfiesSkillRange(candidate.version, range)).sort((left, right) => compareSkillVersions(right.version, left.version));
158
+ const chosen = candidates[0];
159
+ if (!chosen)
160
+ throw new Error(`No version of ${id} satisfies ${range}.`);
161
+ const content = await this.loadSkillContent(chosen);
162
+ const digest = createHash("sha256").update(content).digest("hex");
163
+ if (digest !== chosen.sha256.toLowerCase())
164
+ throw new Error(`Skill ${id}@${chosen.version} failed integrity verification.`);
165
+ const existing = (await this.listInstalled()).find(skill => skill.id === id);
166
+ if (existing && existing.sha256 === digest)
167
+ return { changed: false, skill: existing };
168
+ if (existing && compareSkillVersions(existing.version, chosen.version) > 0)
169
+ throw new Error(`Installed ${id}@${existing.version} is newer than ${chosen.version}; pass an explicit version to downgrade.`);
170
+ const skillDir = join(this.installRoot, id);
171
+ await mkdir(skillDir, { recursive: true, mode: 0o700 });
172
+ await this.atomicWrite(join(skillDir, "SKILL.md"), content);
173
+ const skill = Object.freeze({ id, name: entry.name, version: chosen.version, sha256: digest, installedAt: new Date().toISOString(), source: chosen.url ?? chosen.path ?? this.indexSource });
174
+ await this.atomicWrite(join(skillDir, ".galaxy-skill.json"), JSON.stringify(skill, null, 2));
175
+ return { changed: true, skill };
176
+ }
177
+ async update() {
178
+ const results = [];
179
+ for (const installed of await this.listInstalled())
180
+ results.push(await this.install(installed.id, { version: "*" }).catch(() => ({ changed: false, skill: installed })));
181
+ return Object.freeze(results);
182
+ }
183
+ async remove(id) {
184
+ if (!SKILL_ID.test(id))
185
+ throw new Error("Invalid skill id.");
186
+ const target = resolve(this.installRoot, id);
187
+ if (dirname(target) !== resolve(this.installRoot))
188
+ throw new Error("Skill id escapes the install root.");
189
+ try {
190
+ await stat(target);
191
+ }
192
+ catch {
193
+ return false;
194
+ }
195
+ await rm(target, { recursive: true, force: true });
196
+ return true;
197
+ }
198
+ validateEntry(value) {
199
+ if (!value || typeof value !== "object")
200
+ throw new Error("Invalid skill index entry.");
201
+ const entry = value;
202
+ if (typeof entry.id !== "string" || !SKILL_ID.test(entry.id) || typeof entry.name !== "string" || typeof entry.description !== "string" || !Array.isArray(entry.versions) || entry.versions.length === 0)
203
+ throw new Error("Invalid skill index entry.");
204
+ const tags = Array.isArray(entry.tags) && entry.tags.every(tag => typeof tag === "string") ? Object.freeze(entry.tags) : undefined;
205
+ const seen = new Set();
206
+ const versions = entry.versions.map((raw) => {
207
+ if (!raw || typeof raw !== "object")
208
+ throw new Error(`Invalid version entry for ${entry.id}.`);
209
+ const candidate = raw;
210
+ if (typeof candidate.version !== "string" || !VERSION.test(candidate.version) || typeof candidate.sha256 !== "string" || !SHA256.test(candidate.sha256.toLowerCase()))
211
+ throw new Error(`Invalid version entry for ${entry.id}.`);
212
+ if ((typeof candidate.url !== "string" || !candidate.url) && (typeof candidate.path !== "string" || !candidate.path))
213
+ throw new Error(`Version ${candidate.version} of ${entry.id} needs a url or path.`);
214
+ if (seen.has(candidate.version))
215
+ throw new Error(`Duplicate version ${candidate.version} for ${entry.id}.`);
216
+ seen.add(candidate.version);
217
+ return Object.freeze({
218
+ version: candidate.version,
219
+ sha256: candidate.sha256.toLowerCase(),
220
+ ...(typeof candidate.url === "string" && candidate.url ? { url: candidate.url } : {}),
221
+ ...(typeof candidate.path === "string" && candidate.path ? { path: candidate.path } : {}),
222
+ });
223
+ });
224
+ return Object.freeze({ id: entry.id, name: entry.name, description: entry.description, versions: Object.freeze(versions), ...(tags === undefined ? {} : { tags }) });
225
+ }
226
+ async loadSkillContent(version) {
227
+ if (version.url) {
228
+ if (!isRemote(version.url))
229
+ throw new Error("A remote skill index must use absolute HTTP(S) URLs.");
230
+ return (await this.fetchText(version.url, MAX_SKILL_BYTES));
231
+ }
232
+ if (isRemote(this.indexSource)) {
233
+ const base = new URL(this.indexSource);
234
+ return await this.fetchText(new URL(version.path, base).href, MAX_SKILL_BYTES);
235
+ }
236
+ if (isAbsolute(version.path))
237
+ throw new Error("Local skill paths must be relative to the index.");
238
+ const base = dirname(resolve(this.indexSource));
239
+ const target = resolve(base, version.path);
240
+ if (target !== base && !target.startsWith(base + "/"))
241
+ throw new Error("Skill path escapes the index directory.");
242
+ return (await readFile(target, "utf8"));
243
+ }
244
+ async fetchText(url, limit) {
245
+ const response = await this.fetchImpl(url, { redirect: "follow" });
246
+ if (!response.ok)
247
+ throw new Error(`Skill fetch failed (${response.status}) for ${url}.`);
248
+ const text = await response.text();
249
+ if (Buffer.byteLength(text, "utf8") > limit)
250
+ throw new Error(`Skill payload exceeds ${limit} bytes.`);
251
+ return text;
252
+ }
253
+ async atomicWrite(target, content) {
254
+ const temporary = `${target}.tmp-${process.pid}`;
255
+ await writeFile(temporary, content, { encoding: "utf8", mode: 0o600 });
256
+ await rename(temporary, target);
257
+ }
258
+ }
259
+ //# sourceMappingURL=skill-marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-marketplace.js","sourceRoot":"","sources":["../../../../src/adapters/node/skills/skill-marketplace.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-review.d.ts","sourceRoot":"","sources":["../../../../src/adapters/node/tools/workspace-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAQ/L,qGAAqG;AACrG,qBAAa,2BAA4B,YAAW,0BAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAiB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAA4B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAyB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAlM,OAAO;WACM,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAe3G,UAAU,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAG5C,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAwDtG"}
1
+ {"version":3,"file":"workspace-review.d.ts","sourceRoot":"","sources":["../../../../src/adapters/node/tools/workspace-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAQ/L,qGAAqG;AACrG,qBAAa,2BAA4B,YAAW,0BAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAiB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAA4B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAyB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAlM,OAAO;WACM,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAe3G,UAAU,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAG5C,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAiEtG"}
@@ -44,25 +44,38 @@ export class NodeWorkspaceReviewExecutor {
44
44
  const current = await this.snapshotter.capture(context);
45
45
  const changes = diffNodeWorkspaceSnapshots(this.baseline, current).writes;
46
46
  const reviewed = [];
47
+ const opaquePaths = [];
47
48
  let bytes = 0;
48
49
  let degraded = false;
49
50
  for (const change of changes) {
50
51
  let before = null;
51
52
  let after = null;
53
+ let textReviewed = true;
52
54
  if (!["file", "directory", "missing"].includes(change.beforeKind) || !["file", "directory", "missing"].includes(change.afterKind))
53
55
  throw new Error(`Cannot fully review special entry ${change.path}; use a Git repository for this workspace.`);
54
56
  if (change.beforeKind === "file") {
55
57
  before = this.contents.get(change.path) ?? null;
56
- if (before === null)
57
- throw new Error(`Baseline text unavailable for ${change.path}; no review evidence was granted.`);
58
+ // A binary or oversized baseline file has no cached text; review it by hash.
59
+ if (before === null) {
60
+ textReviewed = false;
61
+ opaquePaths.push(change.path);
62
+ }
58
63
  }
59
64
  if (change.afterKind === "file") {
60
65
  const read = await this.workspace.readText({ path: change.path, maxBytes: 128 * 1024 }, context);
61
- if (!read.ok || read.data.truncated || read.data.contentSha256 !== change.afterHash)
62
- throw new Error(`Cannot fully review stable text for ${change.path}; no review evidence was granted.`);
63
- after = read.data.content;
66
+ if (read.ok && !read.data.truncated && read.data.contentSha256 === change.afterHash)
67
+ after = read.data.content;
68
+ else if (read.ok && !read.data.truncated)
69
+ throw new Error(`Workspace file changed during review: ${change.path}. Run review_changes again.`);
70
+ else {
71
+ // Binary or oversized content: keep hash/kind evidence and disclose text was not reviewed.
72
+ textReviewed = false;
73
+ if (!opaquePaths.includes(change.path))
74
+ opaquePaths.push(change.path);
75
+ }
64
76
  }
65
- const full = { ...change, before, after };
77
+ const textFlag = textReviewed ? {} : { textReviewed: false };
78
+ const full = { ...change, before, after, ...textFlag };
66
79
  // Scaffold-scale changes overflow the 24 KiB full-text cap. Degrade to a
67
80
  // bounded per-file summary (hashes + previews) instead of refusing: in a
68
81
  // non-Git workspace there is no alternative review evidence path.
@@ -81,7 +94,7 @@ export class NodeWorkspaceReviewExecutor {
81
94
  path: change.path,
82
95
  beforeKind: change.beforeKind, afterKind: change.afterKind,
83
96
  beforeHash: change.beforeHash, afterHash: change.afterHash,
84
- afterSize, ...beforePreview, ...afterPreview,
97
+ afterSize, ...textFlag, ...beforePreview, ...afterPreview,
85
98
  };
86
99
  bytes += Buffer.byteLength(JSON.stringify(entry));
87
100
  if (bytes > MAX_REVIEW_BYTES)
@@ -94,8 +107,9 @@ export class NodeWorkspaceReviewExecutor {
94
107
  }
95
108
  if ((await this.snapshotter.capture(context)).stateVersion !== current.stateVersion)
96
109
  throw new Error("Workspace changed during review. Run review_changes again.");
97
- const content = JSON.stringify({ comparison: "task-start-to-current", mode: degraded ? "bounded-summary" : "full-text", changes: reviewed });
98
- return { ok: true, canonicalToolId: "workspace.review", content, summary: `Đã kiểm tra ${changes.length} thay đổi so với đầu tác vụ (không cần Git).`, trust: "workspace", effectsAuthority: "host", effects: { inspectedPaths: ["."], diffReview: { diffHash: sha256Text(content) } }, outputLimits: { maxBytes: 32768, maxTokens: 16384 } };
110
+ const mode = degraded ? (opaquePaths.length ? "bounded-summary+opaque" : "bounded-summary") : opaquePaths.length ? "text+opaque" : "full-text";
111
+ const content = JSON.stringify({ comparison: "task-start-to-current", mode, opaquePaths, changes: reviewed });
112
+ return { ok: true, canonicalToolId: "workspace.review", content, summary: `Đã kiểm tra ${changes.length} thay đổi so với đầu tác vụ (không cần Git)${opaquePaths.length ? `; ${opaquePaths.length} tệp nhị phân/lớn chỉ theo hash` : ""}.`, trust: "workspace", effectsAuthority: "host", effects: { inspectedPaths: ["."], diffReview: { diffHash: sha256Text(content) } }, outputLimits: { maxBytes: 32768, maxTokens: 16384 } };
99
113
  }
100
114
  catch (error) {
101
115
  const message = error instanceof Error ? error.message : String(error);