@te-river/opencode-team-mode 1.7.2 → 1.7.4

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 (178) hide show
  1. package/README.md +1008 -849
  2. package/README.zh-CN.md +905 -756
  3. package/dist/host/v2-browser-gate.d.ts +4 -1
  4. package/dist/host/v2-browser-gate.d.ts.map +1 -1
  5. package/dist/host/v2-browser-gate.js +1 -1
  6. package/dist/host/v2-browser-gate.js.map +1 -1
  7. package/dist/host/v2-capabilities.js +1 -1
  8. package/dist/host/v2-capabilities.js.map +1 -1
  9. package/dist/host/v2-events.d.ts +8 -2
  10. package/dist/host/v2-events.d.ts.map +1 -1
  11. package/dist/host/v2-events.js +16 -2
  12. package/dist/host/v2-events.js.map +1 -1
  13. package/dist/host/v2-guard.d.ts +3 -45
  14. package/dist/host/v2-guard.d.ts.map +1 -1
  15. package/dist/host/v2-guard.js +10 -73
  16. package/dist/host/v2-guard.js.map +1 -1
  17. package/dist/host/v2-offload.d.ts +12 -2
  18. package/dist/host/v2-offload.d.ts.map +1 -1
  19. package/dist/host/v2-offload.js +9 -9
  20. package/dist/host/v2-offload.js.map +1 -1
  21. package/dist/host/v2-probe-chain.d.ts +5 -1
  22. package/dist/host/v2-probe-chain.d.ts.map +1 -1
  23. package/dist/host/v2-probe-chain.js +4 -6
  24. package/dist/host/v2-probe-chain.js.map +1 -1
  25. package/dist/host/v2-probe.d.ts.map +1 -1
  26. package/dist/host/v2-probe.js +2 -1
  27. package/dist/host/v2-probe.js.map +1 -1
  28. package/dist/host/v2-prune.d.ts +5 -1
  29. package/dist/host/v2-prune.d.ts.map +1 -1
  30. package/dist/host/v2-prune.js +8 -14
  31. package/dist/host/v2-prune.js.map +1 -1
  32. package/dist/host/v2-retry.d.ts +10 -3
  33. package/dist/host/v2-retry.d.ts.map +1 -1
  34. package/dist/host/v2-retry.js +14 -16
  35. package/dist/host/v2-retry.js.map +1 -1
  36. package/dist/host/v2-session.d.ts +6 -2
  37. package/dist/host/v2-session.d.ts.map +1 -1
  38. package/dist/host/v2-session.js +7 -13
  39. package/dist/host/v2-session.js.map +1 -1
  40. package/dist/host/v2.d.ts +0 -5
  41. package/dist/host/v2.d.ts.map +1 -1
  42. package/dist/host/v2.js +32 -73
  43. package/dist/host/v2.js.map +1 -1
  44. package/dist/prompts/lead.d.ts +1 -1
  45. package/dist/prompts/lead.d.ts.map +1 -1
  46. package/dist/prompts/lead.js +47 -19
  47. package/dist/prompts/lead.js.map +1 -1
  48. package/dist/prompts/shared.d.ts +1 -1
  49. package/dist/prompts/shared.d.ts.map +1 -1
  50. package/dist/prompts/shared.js +16 -0
  51. package/dist/prompts/shared.js.map +1 -1
  52. package/dist/prompts/specialists.d.ts +1 -1
  53. package/dist/prompts/specialists.d.ts.map +1 -1
  54. package/dist/prompts/specialists.js +1 -1
  55. package/dist/tm/args-schema.d.ts +1 -1
  56. package/dist/tm/args-schema.js +6 -6
  57. package/dist/tm/args-schema.js.map +1 -1
  58. package/dist/tm/board.js +2 -2
  59. package/dist/tm/board.js.map +1 -1
  60. package/dist/tm/config-files.d.ts +41 -17
  61. package/dist/tm/config-files.d.ts.map +1 -1
  62. package/dist/tm/config-files.js +68 -73
  63. package/dist/tm/config-files.js.map +1 -1
  64. package/dist/tm/config-layers.d.ts +65 -33
  65. package/dist/tm/config-layers.d.ts.map +1 -1
  66. package/dist/tm/config-layers.js +164 -81
  67. package/dist/tm/config-layers.js.map +1 -1
  68. package/dist/tm/config-template.d.ts +32 -0
  69. package/dist/tm/config-template.d.ts.map +1 -0
  70. package/dist/tm/config-template.js +74 -0
  71. package/dist/tm/config-template.js.map +1 -0
  72. package/dist/tm/config.d.ts +113 -140
  73. package/dist/tm/config.d.ts.map +1 -1
  74. package/dist/tm/config.js +100 -200
  75. package/dist/tm/config.js.map +1 -1
  76. package/dist/tm/dispatch.d.ts +0 -9
  77. package/dist/tm/dispatch.d.ts.map +1 -1
  78. package/dist/tm/dispatch.js +14 -16
  79. package/dist/tm/dispatch.js.map +1 -1
  80. package/dist/tm/index.d.ts +12 -12
  81. package/dist/tm/index.d.ts.map +1 -1
  82. package/dist/tm/index.js +48 -26
  83. package/dist/tm/index.js.map +1 -1
  84. package/dist/tm/ledger.d.ts +7 -3
  85. package/dist/tm/ledger.d.ts.map +1 -1
  86. package/dist/tm/ledger.js +5 -4
  87. package/dist/tm/ledger.js.map +1 -1
  88. package/dist/tm/memory.js +3 -3
  89. package/dist/tm/pipelines.js +1 -1
  90. package/dist/tm/search.js +6 -6
  91. package/dist/tm/search.js.map +1 -1
  92. package/dist/tm/stats.js +2 -2
  93. package/dist/tm/stats.js.map +1 -1
  94. package/dist/tm/tools.js +2 -2
  95. package/dist/tm/webfetch.d.ts +5 -2
  96. package/dist/tm/webfetch.d.ts.map +1 -1
  97. package/dist/tm/webfetch.js +24 -18
  98. package/dist/tm/webfetch.js.map +1 -1
  99. package/docs/installation-v2.md +59 -38
  100. package/docs/installation.md +4 -4
  101. package/package.json +1 -1
  102. package/scripts/gen-v2-config.mjs +8 -7
  103. package/dist/approval-gate.d.ts +0 -205
  104. package/dist/approval-gate.d.ts.map +0 -1
  105. package/dist/approval-gate.js +0 -627
  106. package/dist/approval-gate.js.map +0 -1
  107. package/dist/host/v1.d.ts +0 -14
  108. package/dist/host/v1.d.ts.map +0 -1
  109. package/dist/host/v1.js +0 -340
  110. package/dist/host/v1.js.map +0 -1
  111. package/dist/host/v2-client.d.ts +0 -53
  112. package/dist/host/v2-client.d.ts.map +0 -1
  113. package/dist/host/v2-client.js +0 -193
  114. package/dist/host/v2-client.js.map +0 -1
  115. package/dist/host/v2-transcript.d.ts +0 -73
  116. package/dist/host/v2-transcript.d.ts.map +0 -1
  117. package/dist/host/v2-transcript.js +0 -151
  118. package/dist/host/v2-transcript.js.map +0 -1
  119. package/dist/host-hooks.d.ts +0 -126
  120. package/dist/host-hooks.d.ts.map +0 -1
  121. package/dist/host-hooks.js +0 -284
  122. package/dist/host-hooks.js.map +0 -1
  123. package/dist/tm/bash-timeout.d.ts +0 -72
  124. package/dist/tm/bash-timeout.d.ts.map +0 -1
  125. package/dist/tm/bash-timeout.js +0 -100
  126. package/dist/tm/bash-timeout.js.map +0 -1
  127. package/dist/tm/browser.d.ts +0 -642
  128. package/dist/tm/browser.d.ts.map +0 -1
  129. package/dist/tm/browser.js +0 -2836
  130. package/dist/tm/browser.js.map +0 -1
  131. package/dist/tm/ptc/budgets.d.ts +0 -59
  132. package/dist/tm/ptc/budgets.d.ts.map +0 -1
  133. package/dist/tm/ptc/budgets.js +0 -138
  134. package/dist/tm/ptc/budgets.js.map +0 -1
  135. package/dist/tm/ptc/contract.d.ts +0 -171
  136. package/dist/tm/ptc/contract.d.ts.map +0 -1
  137. package/dist/tm/ptc/contract.js +0 -85
  138. package/dist/tm/ptc/contract.js.map +0 -1
  139. package/dist/tm/ptc/driver.d.ts +0 -40
  140. package/dist/tm/ptc/driver.d.ts.map +0 -1
  141. package/dist/tm/ptc/driver.js +0 -213
  142. package/dist/tm/ptc/driver.js.map +0 -1
  143. package/dist/tm/ptc/engines.d.ts +0 -43
  144. package/dist/tm/ptc/engines.d.ts.map +0 -1
  145. package/dist/tm/ptc/engines.js +0 -454
  146. package/dist/tm/ptc/engines.js.map +0 -1
  147. package/dist/tm/ptc/gate.d.ts +0 -28
  148. package/dist/tm/ptc/gate.d.ts.map +0 -1
  149. package/dist/tm/ptc/gate.js +0 -130
  150. package/dist/tm/ptc/gate.js.map +0 -1
  151. package/dist/tm/ptc/index.d.ts +0 -19
  152. package/dist/tm/ptc/index.d.ts.map +0 -1
  153. package/dist/tm/ptc/index.js +0 -15
  154. package/dist/tm/ptc/index.js.map +0 -1
  155. package/dist/tm/ptc/pscan.d.ts +0 -30
  156. package/dist/tm/ptc/pscan.d.ts.map +0 -1
  157. package/dist/tm/ptc/pscan.js +0 -341
  158. package/dist/tm/ptc/pscan.js.map +0 -1
  159. package/dist/tm/ptc/summary.d.ts +0 -17
  160. package/dist/tm/ptc/summary.d.ts.map +0 -1
  161. package/dist/tm/ptc/summary.js +0 -134
  162. package/dist/tm/ptc/summary.js.map +0 -1
  163. package/dist/tm/ptc/tool.d.ts +0 -66
  164. package/dist/tm/ptc/tool.d.ts.map +0 -1
  165. package/dist/tm/ptc/tool.js +0 -231
  166. package/dist/tm/ptc/tool.js.map +0 -1
  167. package/dist/tm/ptc.d.ts +0 -298
  168. package/dist/tm/ptc.d.ts.map +0 -1
  169. package/dist/tm/ptc.js +0 -865
  170. package/dist/tm/ptc.js.map +0 -1
  171. package/dist/tm/pty.d.ts +0 -70
  172. package/dist/tm/pty.d.ts.map +0 -1
  173. package/dist/tm/pty.js +0 -245
  174. package/dist/tm/pty.js.map +0 -1
  175. package/dist/tool-coerce.d.ts +0 -24
  176. package/dist/tool-coerce.d.ts.map +0 -1
  177. package/dist/tool-coerce.js +0 -63
  178. package/dist/tool-coerce.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/tm/board.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/tm/board.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAGnD;yDACyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAC9C;oEACoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAA;AAC9C,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAA;AAE7C;;4EAE4E;AAC5E,MAAM,UAAU,eAAe,CAAC,MAAY,IAAI,IAAI,EAAE;IACpD,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnD,OAAO,CACL,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;QACjE,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CACpE,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY,EAAE,GAAG,GAAG,EAAE;IACjD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC;AAED;yDACyD;AACzD,MAAM,UAAU,WAAW,CAAC,KAAwB;IAClD,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC;YAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,CAAA;AAChB,CAAC;AAED;;iCAEiC;AACjC,MAAM,UAAU,WAAW,CAAC,KAAwB,EAAE,IAAY;IAChE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAC5C,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;QAAE,CAAC,EAAE,CAAA;IAC9C,OAAO,KAAK,CAAC,EAAE,CAAA;AACjB,CAAC;AAED;;;;gEAIgE;AAChE,MAAM,UAAU,UAAU,CACxB,KAAwB,EACxB,IAAY,EACZ,KAAa;IAEb,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;IACnE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAClF,IAAI,EAAE,GAAG,CAAC,CAAA;IACV,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,CAAC;YAAE,SAAQ;QAChB,IAAI,CAAC,EAAE;YAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IACpB,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAA;AAChG,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAO9B;IACC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,OAAO,CAAA;IACnD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAA;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACnD,yEAAyE;IACzE,IAAI,QAAgB,CAAA;IACpB,IAAI,iBAAyB,CAAA;IAC7B,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,iBAAiB,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YAC/C,IAAI,iBAAiB,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBACvD,OAAO,EAAE,KAAK,EAAE,QAAQ,OAAO,yBAAyB,EAAE,CAAA;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,iBAAiB,GAAG,EAAE,CAAA;IACxB,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9E,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAA;IAC3C,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAA;IAC/F,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACxD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,KAAK,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAA;AACjH,CAAC;AAED;;yBAEyB;AACzB,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAe;IACxD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACtF,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAQ;YAClC,KAAK,EAAE,CAAA;YACP,IAAI,CAAC;gBACH,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;YACvG,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACzB,CAAC;AAED;;;oDAGoD;AACpD,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY;IACrD,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAA;IACxC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;QACD,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAUnC;IAKC,MAAM,IAAI,GAAG,gBAAgB,CAAA;IAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC1B,MAAM,IAAI,GAAG,CAAC,CAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,uBAAuB,CAAC,CAAA;IAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,2BAA2B,CAAC,CAAA;IAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEzC,MAAM,OAAO,GAAG,KAAK,EAAE,OAAgC,EAAE,GAAY,EAAuB,EAAE;QAC5F,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QACvD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAA;QAC7E,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YAC9B,OAAO,YAAY,CACjB,OAAO,CACL,IAAI,EACJ,MAAM,EACN,WAAW,OAAO,CAAC,MAAM,WAAW,QAAQ,8DAA8D,CAC3G,CACF,CAAA;QACH,CAAC;QACD,yEAAyE;QACzE,4EAA4E;QAC5E,yDAAyD;QACzD,MAAM,IAAI,GAAG,MAAM,CAAE,GAA8C,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,CAAA;QACnG,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA;QACjG,MAAM,OAAO,GAAG,cAAc,CAAC;YAC7B,IAAI;YACJ,OAAO;YACP,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7B,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,IAAI,CAAC;oBACH,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QACF,IAAI,OAAO,IAAI,OAAO;YAAE,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QACjF,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3D,IAAI,KAAK,CAAC,KAAK,IAAI,2BAA2B,IAAI,KAAK,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC1E,OAAO,YAAY,CACjB,OAAO,CACL,IAAI,EACJ,YAAY,EACZ,QAAQ,OAAO,OAAO,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,KAAK,aAAa,QAAQ,MAAM,2BAA2B,UAAU;gBACpH,sEAAsE,CACzE,CACF,CAAA;QACH,CAAC;QACD,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9C,0EAA0E;YAC1E,4EAA4E;YAC5E,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACzC,IAAI,IAAI,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC3F,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAA;YAC1E,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,sEAAsE;gBACtE,kEAAkE;gBAClE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;gBACnF,OAAO,YAAY,CACjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,iDAAiD,CAAC,CACvF,CAAA;YACH,CAAC;YACD,MAAM,MAAM,GAAG,yBAAyB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,WAAW,IAAI,cAAc,OAAO,QAAQ,CAAA;YAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,CAAA;YACzD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;YACpC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;YAC5I,OAAO,YAAY,CACjB,SAAS,IAAI,MAAM,KAAK,SAAS,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,WAAW,IAAI,GAAG;gBACjG,sDAAsD,CACzD,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,MAAM,CAAE,CAAW,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC1D,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YACrD,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACL,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,aAAa;QAChC,OAAO;KACR,CAAA;AACH,CAAC;AAED,MAAM,WAAW,GAAG,+wCAA+wC,CAAA;AAEnyC,MAAM,aAAa,GAA4B;IAC7C,IAAI,EAAE,EAAE,UAAU,EAAE,qDAAqD,EAAE;IAC3E,KAAK,EAAE,EAAE,UAAU,EAAE,sDAAsD,EAAE;IAC7E,OAAO,EAAE,EAAE,UAAU,EAAE,sCAAsC,EAAE;IAC/D,OAAO,EAAE,EAAE,UAAU,EAAE,yFAAyF,EAAE;CACnH,CAAA"}
@@ -4,12 +4,12 @@
4
4
  *
5
5
  * Package ① (`config-layers.ts`) is the PURE layer: it takes raw JSONC text
6
6
  * and returns the merged view. This module is the IO half — it LOCATES and
7
- * READS the two file layers, then feeds them to the pure resolver and folds
8
- * the result back into an env record so `resolveTmConfig` (which only speaks
9
- * env strings) sees the file values.
7
+ * READS the two file layers, then hands the merged JSON values to
8
+ * `resolveConfig` (the registry-driven validator).
10
9
  *
11
- * Two layers only, low→high: `env < 全局 < 项目`. There is NO session layer
12
- * (the host's own config has none either — `opencode.ai/v2/docs/config`).
10
+ * Two layers only, low→high: `全局 < 项目`. There is NO session layer and
11
+ * NO env layer (the host's own config has none either —
12
+ * `opencode.ai/v2/docs/config`).
13
13
  *
14
14
  * The project layer MIRRORS the host's layering semantics: search from the
15
15
  * current directory up to the filesystem root; merge the DIRECT files
@@ -18,14 +18,15 @@
18
18
  * ancestor files are merged (closer wins) into ONE text so the pure layer's
19
19
  * two project slots (`project` / `project:.opencode`) keep their meaning.
20
20
  *
21
- * `TM_CONFIG_ENV_ONLY=1` is evaluated BEFORE any file is read, so the escape
22
- * valve costs zero IO and cannot be defeated by a file that fails to parse.
21
+ * `envOnly` is an explicit parameter (test injection) — it removes every file
22
+ * layer BEFORE any read, so the escape valve costs zero IO.
23
23
  *
24
24
  * Every root is INJECTABLE (`ConfigFileRoots`) so tests point at a temp dir
25
25
  * and never touch the user's real `~/.config/opencode`.
26
26
  */
27
27
  import { type EnvLike, type LayeredConfigResult } from "./config-layers.js";
28
28
  import { type TmConfig } from "./config.js";
29
+ import type { AutoCreateState } from "./config-template.js";
29
30
  /** The file name both layers use. */
30
31
  export declare const CONFIG_FILE_NAME = "team-mode.jsonc";
31
32
  export interface ConfigFileRoots {
@@ -37,6 +38,8 @@ export interface ConfigFileRoots {
37
38
  home?: string;
38
39
  }
39
40
  export interface ConfigFileRead {
41
+ /** The resolved global dir (whether or not the file exists). */
42
+ globalDir: string;
40
43
  /** Global file raw JSONC, or null when it does not exist / is unreadable. */
41
44
  globalLayer: string | null;
42
45
  /** Absolute path of the global file when it was read. */
@@ -53,9 +56,17 @@ export interface ConfigFileRead {
53
56
  reason: string;
54
57
  }>;
55
58
  }
56
- /** Locate and read both file layers. Pure IO — no env, no globals beyond the
59
+ /**
60
+ * The resolved global config dir. The host's global config dir is
61
+ * `~/.config/opencode`, overridable by `OPENCODE_CONFIG_DIR` — the global
62
+ * `team-mode.jsonc` lives beside the host's own global config, so honor the
63
+ * same override (and it keeps a test that redirects OPENCODE_CONFIG_DIR
64
+ * hermetic). `OPENCODE_CONFIG_DIR` is the host's own variable, not ours.
65
+ */
66
+ export declare function resolveGlobalDir(roots?: ConfigFileRoots, env?: EnvLike): string;
67
+ /** Locate and read both file layers. Pure IO — no globals beyond the
57
68
  * injected roots. */
58
- export declare function readConfigFiles(roots?: ConfigFileRoots): ConfigFileRead;
69
+ export declare function readConfigFiles(roots?: ConfigFileRoots, env?: EnvLike): ConfigFileRead;
59
70
  export interface LayeredTmConfig {
60
71
  /** The resolved runtime config (file values folded in). */
61
72
  cfg: TmConfig;
@@ -64,18 +75,31 @@ export interface LayeredTmConfig {
64
75
  /** What the reader actually found on disk. */
65
76
  files: ConfigFileRead;
66
77
  }
78
+ export interface ResolveLayeredTmConfigOptions {
79
+ /** Remove every file layer (test injection). */
80
+ envOnly?: boolean;
81
+ /** Lowest-priority default overrides (BELOW the file layers). v2 uses it to
82
+ * default `webfetchAllowedDomains` to `["*"]` when no file sets it. The
83
+ * auto-created global file is INERT (every key commented), so it sets
84
+ * nothing and never shadows these; a user-edited file still wins. */
85
+ configDefaults?: Record<string, unknown>;
86
+ /** Env used only for `OPENCODE_CONFIG_DIR` (the host's own variable). */
87
+ env?: EnvLike;
88
+ }
67
89
  /**
68
90
  * Resolve the runtime config through the layered pipeline: read the files
69
- * (unless `TM_CONFIG_ENV_ONLY`), merge with the pure resolver, fold the
70
- * file-sourced values back into an env record, then hand that to
71
- * `resolveTmConfig`. The returned `layered`/`files` are what `tm_stats`
72
- * renders so the user can see WHERE each key came from.
91
+ * (unless `envOnly`), merge with the pure resolver, then hand the merged JSON
92
+ * values (plus any `configDefaults`) to `resolveConfig`. The returned
93
+ * `layered`/`files` are what `tm_stats` renders so the user can see WHERE
94
+ * each key came from.
73
95
  */
74
- export declare function resolveLayeredTmConfig(env?: EnvLike, roots?: ConfigFileRoots): LayeredTmConfig;
96
+ export declare function resolveLayeredTmConfig(roots?: ConfigFileRoots, opts?: ResolveLayeredTmConfigOptions): LayeredTmConfig;
75
97
  /**
76
98
  * The `tm_stats` config section. Renders the per-key source, the red-line
77
- * keys a file tried to set, the unknown keys (warned, never applied) and the
78
- * env-only flag — the four facts that make "which layer won" checkable.
99
+ * keys a PROJECT file tried to set, the unknown keys (warned, never applied),
100
+ * the env-only flag and the auto-create outcome — the facts that make "which
101
+ * layer won" checkable. `autoCreate` is the state the boot row recorded
102
+ * (`ensureGlobalConfig`); omitted only by a caller that never ran it.
79
103
  */
80
- export declare function renderConfigSection(layered: LayeredConfigResult, files: ConfigFileRead): string;
104
+ export declare function renderConfigSection(layered: LayeredConfigResult, files: ConfigFileRead, autoCreate?: AutoCreateState): string;
81
105
  //# sourceMappingURL=config-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-files.d.ts","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE5D,qCAAqC;AACrC,eAAO,MAAM,gBAAgB,oBAAoB,CAAA;AAEjD,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,yDAAyD;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,oEAAoE;IACpE,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAClC,uEAAuE;IACvE,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,kEAAkE;IAClE,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,6EAA6E;IAC7E,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD;AAmDD;sBACsB;AACtB,wBAAgB,eAAe,CAAC,KAAK,GAAE,eAAoB,GAAG,cAAc,CAqC3E;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,GAAG,EAAE,QAAQ,CAAA;IACb,4EAA4E;IAC5E,OAAO,EAAE,mBAAmB,CAAA;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,cAAc,CAAA;CACtB;AAwBD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,GAAE,OAAqB,EAC1B,KAAK,GAAE,eAAoB,GAC1B,eAAe,CAoCjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAyB/F"}
1
+ {"version":3,"file":"config-files.d.ts","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,qCAAqC;AACrC,eAAO,MAAM,gBAAgB,oBAAoB,CAAA;AAEjD,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,yDAAyD;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,oEAAoE;IACpE,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAClC,uEAAuE;IACvE,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,kEAAkE;IAClE,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,6EAA6E;IAC7E,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD;AAmDD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,eAAoB,EAAE,GAAG,GAAE,OAAqB,GAAG,MAAM,CAOhG;AAED;sBACsB;AACtB,wBAAgB,eAAe,CAAC,KAAK,GAAE,eAAoB,EAAE,GAAG,GAAE,OAAqB,GAAG,cAAc,CAqCvG;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,GAAG,EAAE,QAAQ,CAAA;IACb,4EAA4E;IAC5E,OAAO,EAAE,mBAAmB,CAAA;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,cAAc,CAAA;CACtB;AAED,MAAM,WAAW,6BAA6B;IAC5C,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;0EAGsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,yEAAyE;IACzE,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAYD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,GAAE,eAAoB,EAC3B,IAAI,GAAE,6BAAkC,GACvC,eAAe,CAiBjB;AAWD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,UAAU,CAAC,EAAE,eAAe,GAC3B,MAAM,CA4BR"}
@@ -4,12 +4,12 @@
4
4
  *
5
5
  * Package ① (`config-layers.ts`) is the PURE layer: it takes raw JSONC text
6
6
  * and returns the merged view. This module is the IO half — it LOCATES and
7
- * READS the two file layers, then feeds them to the pure resolver and folds
8
- * the result back into an env record so `resolveTmConfig` (which only speaks
9
- * env strings) sees the file values.
7
+ * READS the two file layers, then hands the merged JSON values to
8
+ * `resolveConfig` (the registry-driven validator).
10
9
  *
11
- * Two layers only, low→high: `env < 全局 < 项目`. There is NO session layer
12
- * (the host's own config has none either — `opencode.ai/v2/docs/config`).
10
+ * Two layers only, low→high: `全局 < 项目`. There is NO session layer and
11
+ * NO env layer (the host's own config has none either —
12
+ * `opencode.ai/v2/docs/config`).
13
13
  *
14
14
  * The project layer MIRRORS the host's layering semantics: search from the
15
15
  * current directory up to the filesystem root; merge the DIRECT files
@@ -18,8 +18,8 @@
18
18
  * ancestor files are merged (closer wins) into ONE text so the pure layer's
19
19
  * two project slots (`project` / `project:.opencode`) keep their meaning.
20
20
  *
21
- * `TM_CONFIG_ENV_ONLY=1` is evaluated BEFORE any file is read, so the escape
22
- * valve costs zero IO and cannot be defeated by a file that fails to parse.
21
+ * `envOnly` is an explicit parameter (test injection) — it removes every file
22
+ * layer BEFORE any read, so the escape valve costs zero IO.
23
23
  *
24
24
  * Every root is INJECTABLE (`ConfigFileRoots`) so tests point at a temp dir
25
25
  * and never touch the user's real `~/.config/opencode`.
@@ -27,8 +27,8 @@
27
27
  import * as fs from "node:fs";
28
28
  import * as os from "node:os";
29
29
  import * as path from "node:path";
30
- import { CONFIG_KEYS, parseJsonc, resolveLayeredConfig, } from "./config-layers.js";
31
- import { resolveTmConfig } from "./config.js";
30
+ import { parseJsonc, resolveLayeredConfig, } from "./config-layers.js";
31
+ import { resolveConfig } from "./config.js";
32
32
  /** The file name both layers use. */
33
33
  export const CONFIG_FILE_NAME = "team-mode.jsonc";
34
34
  function readTextFile(p) {
@@ -78,11 +78,24 @@ function mergeTexts(entries, skipped) {
78
78
  }
79
79
  return any ? JSON.stringify(merged) : null;
80
80
  }
81
- /** Locate and read both file layers. Pure IO — no env, no globals beyond the
82
- * injected roots. */
83
- export function readConfigFiles(roots = {}) {
81
+ /**
82
+ * The resolved global config dir. The host's global config dir is
83
+ * `~/.config/opencode`, overridable by `OPENCODE_CONFIG_DIR` — the global
84
+ * `team-mode.jsonc` lives beside the host's own global config, so honor the
85
+ * same override (and it keeps a test that redirects OPENCODE_CONFIG_DIR
86
+ * hermetic). `OPENCODE_CONFIG_DIR` is the host's own variable, not ours.
87
+ */
88
+ export function resolveGlobalDir(roots = {}, env = process.env) {
84
89
  const home = roots.home ?? os.homedir();
85
- const globalDir = roots.globalDir ?? path.join(home, ".config", "opencode");
90
+ const override = typeof env.OPENCODE_CONFIG_DIR === "string" && env.OPENCODE_CONFIG_DIR.trim()
91
+ ? env.OPENCODE_CONFIG_DIR.trim()
92
+ : undefined;
93
+ return roots.globalDir ?? override ?? path.join(home, ".config", "opencode");
94
+ }
95
+ /** Locate and read both file layers. Pure IO — no globals beyond the
96
+ * injected roots. */
97
+ export function readConfigFiles(roots = {}, env = process.env) {
98
+ const globalDir = resolveGlobalDir(roots, env);
86
99
  const projectDir = roots.projectDir ?? process.cwd();
87
100
  const skipped = [];
88
101
  const globalPath = path.join(globalDir, CONFIG_FILE_NAME);
@@ -107,6 +120,7 @@ export function readConfigFiles(roots = {}) {
107
120
  }
108
121
  }
109
122
  return {
123
+ globalDir,
110
124
  globalLayer,
111
125
  globalPath: globalLayer !== null ? globalPath : null,
112
126
  projectLayer: [mergeTexts(directEntries, skipped), mergeTexts(opencodeEntries, skipped)],
@@ -115,52 +129,28 @@ export function readConfigFiles(roots = {}) {
115
129
  skipped,
116
130
  };
117
131
  }
118
- function envOnlyFromEnv(env) {
119
- const raw = env.TM_CONFIG_ENV_ONLY;
120
- return typeof raw === "string" && /^(1|true|on|yes)$/i.test(raw.trim());
121
- }
122
- /** A file value back to the env STRING `resolveTmConfig` parses. Only
123
- * FILE-sourced values go through here — an env-sourced value is already the
124
- * raw string and must not be re-encoded (a `record` env string would iterate
125
- * its characters). */
126
- function stringifyForEnv(type, value) {
127
- if (type === "string[]")
128
- return Array.isArray(value) ? value.map(String).join(",") : String(value);
129
- if (type === "record") {
130
- if (value && typeof value === "object" && !Array.isArray(value)) {
131
- return Object.entries(value)
132
- .map(([k, v]) => `${k}=${v}`)
133
- .join(",");
134
- }
135
- return String(value);
136
- }
137
- return String(value);
138
- }
132
+ const EMPTY_FILES = (globalDir) => ({
133
+ globalDir,
134
+ globalLayer: null,
135
+ globalPath: null,
136
+ projectLayer: [null, null],
137
+ projectPaths: [],
138
+ opencodePaths: [],
139
+ skipped: [],
140
+ });
139
141
  /**
140
142
  * Resolve the runtime config through the layered pipeline: read the files
141
- * (unless `TM_CONFIG_ENV_ONLY`), merge with the pure resolver, fold the
142
- * file-sourced values back into an env record, then hand that to
143
- * `resolveTmConfig`. The returned `layered`/`files` are what `tm_stats`
144
- * renders so the user can see WHERE each key came from.
143
+ * (unless `envOnly`), merge with the pure resolver, then hand the merged JSON
144
+ * values (plus any `configDefaults`) to `resolveConfig`. The returned
145
+ * `layered`/`files` are what `tm_stats` renders so the user can see WHERE
146
+ * each key came from.
145
147
  */
146
- export function resolveLayeredTmConfig(env = process.env, roots = {}) {
147
- const envOnly = envOnlyFromEnv(env);
148
- // The host's global config dir is `~/.config/opencode`, overridable by
149
- // OPENCODE_CONFIG_DIR — the global `team-mode.jsonc` lives beside the host's
150
- // own global config, so honor the same override (and it keeps a test that
151
- // redirects OPENCODE_CONFIG_DIR hermetic).
152
- const configDirOverride = typeof env.OPENCODE_CONFIG_DIR === "string" && env.OPENCODE_CONFIG_DIR.trim()
153
- ? env.OPENCODE_CONFIG_DIR.trim()
154
- : undefined;
155
- const effectiveRoots = {
156
- ...roots,
157
- globalDir: roots.globalDir ?? configDirOverride,
158
- };
159
- const files = envOnly
160
- ? { globalLayer: null, globalPath: null, projectLayer: [null, null], projectPaths: [], opencodePaths: [], skipped: [] }
161
- : readConfigFiles(effectiveRoots);
148
+ export function resolveLayeredTmConfig(roots = {}, opts = {}) {
149
+ const env = opts.env ?? process.env;
150
+ const envOnly = opts.envOnly ?? false;
151
+ const globalDir = resolveGlobalDir(roots, env);
152
+ const files = envOnly ? EMPTY_FILES(globalDir) : readConfigFiles(roots, env);
162
153
  const base = resolveLayeredConfig({
163
- env,
164
154
  globalLayer: files.globalLayer,
165
155
  projectLayer: files.projectLayer,
166
156
  envOnly,
@@ -169,34 +159,39 @@ export function resolveLayeredTmConfig(env = process.env, roots = {}) {
169
159
  ...base,
170
160
  skippedLayers: [...files.skipped, ...base.skippedLayers],
171
161
  };
172
- const specByKey = new Map(CONFIG_KEYS.map((k) => [k.key, k]));
173
- const synthetic = { ...env };
174
- for (const [key, source] of Object.entries(layered.perKeySource)) {
175
- if (source === "env")
176
- continue;
177
- const spec = specByKey.get(key);
178
- if (!spec)
179
- continue;
180
- synthetic[spec.env] = stringifyForEnv(spec.type, layered.values[key]);
181
- }
182
- return { cfg: resolveTmConfig(synthetic), layered, files };
162
+ // `configDefaults` sits BELOW the file layers: a file value always wins.
163
+ const merged = { ...(opts.configDefaults ?? {}), ...layered.values };
164
+ return { cfg: resolveConfig(merged), layered, files };
183
165
  }
166
+ /** The four auto-create states in the user's words — the boot row records the
167
+ * token, the report must not make the user decode it. */
168
+ const AUTO_CREATE_LABEL = {
169
+ created: "已创建",
170
+ present: "已存在",
171
+ off: "关闭",
172
+ failed: "创建失败",
173
+ };
184
174
  /**
185
175
  * The `tm_stats` config section. Renders the per-key source, the red-line
186
- * keys a file tried to set, the unknown keys (warned, never applied) and the
187
- * env-only flag — the four facts that make "which layer won" checkable.
176
+ * keys a PROJECT file tried to set, the unknown keys (warned, never applied),
177
+ * the env-only flag and the auto-create outcome — the facts that make "which
178
+ * layer won" checkable. `autoCreate` is the state the boot row recorded
179
+ * (`ensureGlobalConfig`); omitted only by a caller that never ran it.
188
180
  */
189
- export function renderConfigSection(layered, files) {
181
+ export function renderConfigSection(layered, files, autoCreate) {
190
182
  const lines = ["", "### 分层配置(team-mode.jsonc)", ""];
191
- lines.push(`- 层序 env < 全局 < 项目 · 全局文件 ${files.globalPath ? "有" : "无"} · ` +
183
+ lines.push(`- 层序 全局 < 项目 · 全局文件 ${files.globalPath ? "有" : "无"} · ` +
192
184
  `项目文件 ${files.projectPaths.length} 个(其中 .opencode ${files.opencodePaths.length} 个)· ` +
193
- `TM_CONFIG_ENV_ONLY ${layered.envOnlyActive ? "开(文件层已全部忽略)" : "关"}`);
185
+ `envOnly ${layered.envOnlyActive ? "开(文件层已全部忽略)" : "关"}`);
186
+ if (autoCreate) {
187
+ lines.push(`- 全局文件自动创建:${AUTO_CREATE_LABEL[autoCreate]}(${autoCreate})`);
188
+ }
194
189
  const sources = Object.entries(layered.perKeySource);
195
190
  lines.push(sources.length
196
191
  ? `- 每键来源:${sources.map(([k, s]) => `${k}=${s}`).join(" · ")}`
197
- : "- 每键来源:(没有任何键来自 env 或文件,全部走默认)");
192
+ : "- 每键来源:(没有任何键来自文件,全部走默认)");
198
193
  if (layered.ignoredRedLineKeys.length) {
199
- lines.push(`- 红线豁免(文件不得改写,已忽略):${layered.ignoredRedLineKeys.map((r) => `${r.key}(${r.layer})`).join(" · ")}`);
194
+ lines.push(`- 红线键被项目文件尝试设置(已忽略,仅全局生效):${layered.ignoredRedLineKeys.map((r) => `${r.key}(${r.layer})`).join(" · ")}`);
200
195
  }
201
196
  if (layered.unknownKeys.length) {
202
197
  lines.push(`- 未知键(告警不应用):${layered.unknownKeys.map((u) => `${u.key}(${u.layer})`).join(" · ")}`);
@@ -1 +1 @@
1
- {"version":3,"file":"config-files.js","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-files.js","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,20 @@
1
1
  /**
2
2
  * Layered `team-mode` configuration — the PURE layer (package ①, 2026-10-06).
3
3
  *
4
+ * `team-mode.jsonc` is the ONLY configuration source. There is no `TM_*`
5
+ * config env var any more: the registry below carries each key's default and
6
+ * its one-line doc, and the template generator (`config-template.ts`) renders
7
+ * the global file straight from it, so a comment and a key can never drift.
8
+ *
4
9
  * Two file layers only, per the user's decision (2026-10-06): the host's own
5
10
  * config has NO session layer (opencode.ai/v2/docs/config), so neither do we.
6
11
  *
7
- * env < global < project
12
+ * global < project
8
13
  *
9
- * A file WINS over env for the same key. Within the project layer the
10
- * `.opencode/` file wins over the direct one, mirroring the host's own
11
- * discovery order (direct files merged farthest→closest, then `.opencode/`
12
- * dirs in the same order — every discovered `.opencode` config overrides
13
- * every direct config).
14
+ * Within the project layer the `.opencode/` file wins over the direct one,
15
+ * mirroring the host's own discovery order (direct files merged
16
+ * farthest→closest, then `.opencode/` dirs in the same order — every
17
+ * discovered `.opencode` config overrides every direct config).
14
18
  *
15
19
  * This module is deliberately IO-free: it takes raw JSONC text (or null when
16
20
  * a file does not exist) and returns a resolved view. Reading the files,
@@ -23,40 +27,68 @@
23
27
  * parse");
24
28
  * - a single key with the WRONG TYPE is dropped from that layer only, and
25
29
  * the next layer down answers for it;
26
- * - a RED-LINE key written in a file is IGNORED outright and always resolves
27
- * from env/default (see RED_LINE_EXEMPT_KEYS).
30
+ * - a RED-LINE key is honored ONLY in the GLOBAL file (D1). Written in a
31
+ * project file it is IGNORED outright and reported (see RED_LINE_EXEMPT_KEYS).
28
32
  */
29
33
  /** Env-like record — kept local so this module has no import cycle with config.ts. */
30
34
  export type EnvLike = Record<string, string | undefined>;
31
35
  export type ConfigValueType = "number" | "string" | "string[]" | "record";
32
- /** One honored knob: its canonical file key, the env var it mirrors, and the
33
- * JSON type a file value must have. The registry IS the "known key" set —
34
- * a key absent here is reported as unknown (warned, never applied). */
36
+ /** One honored knob: its canonical file key, the JSON type a file value must
37
+ * have, its default, and the one-line doc the template renders. The registry
38
+ * IS the "known key" set — a key absent here is reported as unknown (warned,
39
+ * never applied). */
35
40
  export interface ConfigKeySpec {
36
- /** Canonical file key (camelCase; matches the TmConfig field where one exists). */
41
+ /** Canonical file key (camelCase; matches the TmConfig field). */
37
42
  key: string;
38
- /** The env var this key mirrors. */
39
- env: string;
40
43
  type: ConfigValueType;
41
- /** Red-line: a file value is ignored, the key always resolves from env/default. */
44
+ /** The default value — the ONLY default source. `resolveConfig` fills it. */
45
+ default: unknown;
46
+ /** One-line Chinese doc — the template comment's only source. */
47
+ doc: string;
48
+ /** Red-line: honored ONLY in the global file; a project value is ignored. */
42
49
  redLine?: boolean;
43
- /** Why the file may not override it (shown in the ignored-key report). */
50
+ /** Why a project file may not override it (shown in the ignored-key report). */
44
51
  redLineReason?: string;
52
+ /** Clamp floor for a `number` value. */
53
+ min?: number;
54
+ /** Clamp ceiling for a `number` value. */
55
+ max?: number;
56
+ /** Legal values for a `string` (e.g. on/off). */
57
+ enum?: readonly string[];
45
58
  }
59
+ /** Default tm_bash read-only allowlist (P3, command-level). The PS
60
+ * -Object entries are pure pipeline formatters — no write capability. */
61
+ export declare const DEFAULT_BASH_READONLY_ALLOWED: readonly string[];
62
+ /**
63
+ * Seeded tm_webfetch / tm_search domain allowlist — every host the search
64
+ * engines and data sources ride (all reachable from mainland China without
65
+ * API keys): wiki term / bilibili search / bing CN + international / baidu /
66
+ * sogou / 360, the npm registry (JSON search + package metadata) and the
67
+ * GitHub (search API + repo pages + raw/gist content), its ghproxy.net
68
+ * mainland mirror, and PARENT domains for baidu/moegirl so every sibling
69
+ * subdomain (baike./tieba./mzh./mobile.) is covered. A site's OWN asset CDN
70
+ * on a brand-unrelated domain has to be seeded too — same-site cannot infer it,
71
+ * and blocking it is what makes a page render blank (bdimg.com below is that
72
+ * case, measured). Subdomains of an entry are included; a lone "*" opens
73
+ * every host.
74
+ */
75
+ export declare const DEFAULT_WEBFETCH_DOMAINS: readonly string[];
46
76
  /**
47
- * The honored-key registry. Extend it when a new knob is wired — an
48
- * unlisted real knob would be reported as "unknown", a false positive.
77
+ * The honored-key registry — the single source of truth for keys, types,
78
+ * defaults and docs. Extend it when a new knob is wired: an unlisted real
79
+ * knob would be reported as "unknown" (a false positive), and a key missing
80
+ * here is missing from the generated template too.
49
81
  *
50
- * The first block mirrors `resolveTmConfig` (src/tm/config.ts) one-for-one;
51
- * the red-line block adds the three knobs that live OUTSIDE TmConfig
52
- * (envProtect / r6FineAsk / privateSpace) plus the four the design names as
53
- * file-overridable but that are read directly from process.env.
82
+ * `default` is the ONLY default source; `resolveConfig` (src/tm/config.ts)
83
+ * fills it and clamps `number` values to `min`/`max`. A `number` whose
84
+ * default is an integer is truncated to an integer; a fractional default
85
+ * (searchRelevanceFloor, retryJitter) keeps its fraction.
54
86
  */
55
87
  export declare const CONFIG_KEYS: readonly ConfigKeySpec[];
56
88
  /** The red-line keys, derived from the registry (single source of truth). */
57
89
  export declare const RED_LINE_EXEMPT_KEYS: readonly string[];
58
90
  /** Standard layer names, low→high. */
59
- export type LayerSource = "env" | "global" | "project" | "project:.opencode";
91
+ export type LayerSource = "global" | "project" | "project:.opencode";
60
92
  export interface SkippedLayer {
61
93
  name: string;
62
94
  reason: string;
@@ -71,23 +103,22 @@ export interface UnknownKey {
71
103
  layer: string;
72
104
  }
73
105
  export interface LayeredConfigResult {
74
- /** Final merged value per canonical key. An env-sourced value is the raw
75
- * env STRING; a file-sourced value is the parsed JSON value. Keys absent
76
- * everywhere are not listed (the caller applies its own defaults). */
106
+ /** Final merged value per canonical key, from the FILE layers only. A value
107
+ * is the parsed JSON value. Keys absent everywhere are not listed (the
108
+ * caller applies the registry defaults). */
77
109
  values: Record<string, unknown>;
78
- /** For every key present in env or a file layer: which layer it came from. */
110
+ /** For every key present in a file layer: which layer it came from. */
79
111
  perKeySource: Record<string, LayerSource>;
80
112
  /** Layers dropped whole because they failed to parse. */
81
113
  skippedLayers: SkippedLayer[];
82
- /** Red-line keys a file tried to set (ignored; env/default still answers). */
114
+ /** Red-line keys a PROJECT file tried to set (ignored; global/default answers). */
83
115
  ignoredRedLineKeys: IgnoredRedLineKey[];
84
116
  /** Keys not in the registry (warned, never applied). */
85
117
  unknownKeys: UnknownKey[];
86
- /** True when TM_CONFIG_ENV_ONLY removed every file layer. */
118
+ /** True when the caller removed every file layer (test injection). */
87
119
  envOnlyActive: boolean;
88
120
  }
89
121
  export interface ResolveLayeredConfigInput {
90
- env: EnvLike;
91
122
  /** Global file raw JSONC, or null/undefined when it does not exist. */
92
123
  globalLayer?: string | null;
93
124
  /** Project file(s). A single raw text, or an array ordered low→high
@@ -95,7 +126,7 @@ export interface ResolveLayeredConfigInput {
95
126
  projectLayer?: string | null | Array<string | null>;
96
127
  /** Override the red-line exempt set (defaults to RED_LINE_EXEMPT_KEYS). */
97
128
  exempt?: readonly string[];
98
- /** Override the env-only escape valve (defaults to env.TM_CONFIG_ENV_ONLY). */
129
+ /** Remove every file layer (test injection). */
99
130
  envOnly?: boolean;
100
131
  }
101
132
  /**
@@ -109,9 +140,10 @@ export declare function maskJsoncComments(src: string): string;
109
140
  /** Parse JSONC (comments + trailing commas) into a value. Throws on a real
110
141
  * syntax error — the caller turns that into a whole-layer skip. */
111
142
  export declare function parseJsonc(src: string): unknown;
143
+ export declare function isPlainObject(v: unknown): v is Record<string, unknown>;
112
144
  /**
113
- * Resolve the layered config. Pure: no IO, no globals read except the `env`
114
- * record handed in. See the module header for the three rules.
145
+ * Resolve the layered config. Pure: no IO, no globals. See the module
146
+ * header for the three rules.
115
147
  */
116
148
  export declare function resolveLayeredConfig(input: ResolveLayeredConfigInput): LayeredConfigResult;
117
149
  //# sourceMappingURL=config-layers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-layers.d.ts","sourceRoot":"","sources":["../../src/tm/config-layers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,sFAAsF;AACtF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAExD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEzE;;wEAEwE;AACxE,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,GAAG,EAAE,MAAM,CAAA;IACX,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,eAAe,CAAA;IACrB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,aAAa,EA4E/C,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAA2D,CAAA;AAI7G,sCAAsC;AACtC,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,mBAAmB,CAAA;AAE5E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC;;2EAEuE;IACvE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACzC,yDAAyD;IACzD,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,8EAA8E;IAC9E,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IACvC,wDAAwD;IACxD,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,6DAA6D;IAC7D,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,OAAO,CAAA;IACZ,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B;iEAC6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACnD,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAMD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyCrD;AAuCD;oEACoE;AACpE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAwCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,mBAAmB,CA6D1F"}
1
+ {"version":3,"file":"config-layers.d.ts","sourceRoot":"","sources":["../../src/tm/config-layers.ts"],"names":[],"mappings":"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"}