cleargate 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/MANIFEST.json +71 -15
  3. package/dist/admin-api/index.cjs +0 -1
  4. package/dist/admin-api/index.js +1 -2
  5. package/dist/auth/factory.cjs +0 -1
  6. package/dist/auth/factory.js +2 -3
  7. package/dist/auth/require-token.cjs +0 -1
  8. package/dist/auth/require-token.js +1 -2
  9. package/dist/auth/token-store.cjs +0 -1
  10. package/dist/auth/token-store.js +1 -2
  11. package/dist/{bootstrap-root-QKSA5V75.js → bootstrap-root-2H5HVTCC.js} +1 -2
  12. package/dist/{chunk-PDE37WFQ.js → chunk-A7MSQUU7.js} +2 -3
  13. package/dist/{chunk-BTSZOEWC.js → chunk-P6KEDAK2.js} +0 -1
  14. package/dist/{chunk-E3X7IE5E.js → chunk-PY6FHGV5.js} +1 -2
  15. package/dist/{chunk-5DI2Z3C2.js → chunk-Y53ZZYYU.js} +1 -2
  16. package/dist/cli.cjs +1564 -1414
  17. package/dist/cli.js +1514 -1364
  18. package/dist/lib/ledger.cjs +0 -1
  19. package/dist/lib/ledger.js +1 -2
  20. package/dist/lib/lifecycle-reconcile.cjs +0 -1
  21. package/dist/lib/lifecycle-reconcile.js +2 -3
  22. package/dist/{whoami-EANGN46Z.js → whoami-JKQQPABQ.js} +3 -4
  23. package/package.json +4 -3
  24. package/templates/cleargate-planning/.claude/agents/architect.md +4 -2
  25. package/templates/cleargate-planning/.claude/agents/developer.md +4 -11
  26. package/templates/cleargate-planning/.claude/agents/qa.md +14 -6
  27. package/templates/cleargate-planning/.claude/hooks/pending-task-sentinel.sh +2 -2
  28. package/templates/cleargate-planning/.claude/skills/sprint-execution/SKILL.md +19 -1
  29. package/templates/cleargate-planning/.cleargate/config.example.yml +16 -0
  30. package/templates/cleargate-planning/.cleargate/scripts/close_sprint.deferred-verify.red.node.test.ts +245 -0
  31. package/templates/cleargate-planning/.cleargate/scripts/close_sprint.mjs +227 -0
  32. package/templates/cleargate-planning/.cleargate/scripts/gate-checks.json +5 -4
  33. package/templates/cleargate-planning/.cleargate/scripts/init_sprint.mjs +75 -2
  34. package/templates/cleargate-planning/.cleargate/scripts/pre_gate_common.sh +48 -0
  35. package/templates/cleargate-planning/.cleargate/scripts/pre_gate_runner.sh +57 -1
  36. package/templates/cleargate-planning/.cleargate/scripts/provision_worktree_config.sh +155 -0
  37. package/templates/cleargate-planning/.cleargate/scripts/qa_red_lint.mjs +380 -0
  38. package/templates/cleargate-planning/.cleargate/scripts/run_script.sh +34 -1
  39. package/templates/cleargate-planning/.cleargate/scripts/test/cr077_eviction.red.sh +113 -0
  40. package/templates/cleargate-planning/.cleargate/scripts/test/cr078_init.test.sh +309 -0
  41. package/templates/cleargate-planning/.cleargate/scripts/test/cr079_provision.red.sh +262 -0
  42. package/templates/cleargate-planning/.cleargate/scripts/test/cr080_wrapper.test.sh +177 -0
  43. package/templates/cleargate-planning/.cleargate/scripts/test/cr081_qa_red_lint.red.sh +348 -0
  44. package/templates/cleargate-planning/.cleargate/sprint-runs/_off-sprint/.session-totals.json +1 -0
  45. package/templates/cleargate-planning/.cleargate/sprint-runs/_off-sprint/token-ledger.jsonl +27 -0
  46. package/templates/cleargate-planning/.cleargate/templates/sprint_context.md +17 -0
  47. package/templates/cleargate-planning/.cleargate/templates/story.md +1 -0
  48. package/templates/cleargate-planning/MANIFEST.json +71 -15
  49. package/dist/admin-api/index.cjs.map +0 -1
  50. package/dist/admin-api/index.js.map +0 -1
  51. package/dist/auth/factory.cjs.map +0 -1
  52. package/dist/auth/factory.js.map +0 -1
  53. package/dist/auth/require-token.cjs.map +0 -1
  54. package/dist/auth/require-token.js.map +0 -1
  55. package/dist/auth/token-store.cjs.map +0 -1
  56. package/dist/auth/token-store.js.map +0 -1
  57. package/dist/bootstrap-root-QKSA5V75.js.map +0 -1
  58. package/dist/chunk-5DI2Z3C2.js.map +0 -1
  59. package/dist/chunk-BTSZOEWC.js.map +0 -1
  60. package/dist/chunk-E3X7IE5E.js.map +0 -1
  61. package/dist/chunk-PDE37WFQ.js.map +0 -1
  62. package/dist/cli.cjs.map +0 -1
  63. package/dist/cli.js.map +0 -1
  64. package/dist/lib/ledger.cjs.map +0 -1
  65. package/dist/lib/ledger.js.map +0 -1
  66. package/dist/lib/lifecycle-reconcile.cjs.map +0 -1
  67. package/dist/lib/lifecycle-reconcile.js.map +0 -1
  68. package/dist/templates/cleargate-planning/.claude/agents/architect-reader.md +0 -61
  69. package/dist/templates/cleargate-planning/.claude/agents/architect-synth.md +0 -124
  70. package/dist/templates/cleargate-planning/.claude/agents/architect.md +0 -230
  71. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-contradict.md +0 -108
  72. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-ingest.md +0 -194
  73. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-lint.md +0 -261
  74. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-query.md +0 -143
  75. package/dist/templates/cleargate-planning/.claude/agents/developer.md +0 -185
  76. package/dist/templates/cleargate-planning/.claude/agents/devops.md +0 -257
  77. package/dist/templates/cleargate-planning/.claude/agents/qa.md +0 -171
  78. package/dist/templates/cleargate-planning/.claude/agents/reporter.md +0 -274
  79. package/dist/templates/cleargate-planning/.claude/hooks/pending-task-sentinel.sh +0 -209
  80. package/dist/templates/cleargate-planning/.claude/hooks/pre-commit-surface-gate.sh +0 -33
  81. package/dist/templates/cleargate-planning/.claude/hooks/pre-commit-test-ratchet.sh +0 -58
  82. package/dist/templates/cleargate-planning/.claude/hooks/pre-commit.sh +0 -19
  83. package/dist/templates/cleargate-planning/.claude/hooks/pre-edit-gate.sh +0 -162
  84. package/dist/templates/cleargate-planning/.claude/hooks/pre-tool-use-autonomy.sh +0 -58
  85. package/dist/templates/cleargate-planning/.claude/hooks/pre-tool-use-task.sh +0 -148
  86. package/dist/templates/cleargate-planning/.claude/hooks/session-start.sh +0 -75
  87. package/dist/templates/cleargate-planning/.claude/hooks/stamp-and-gate.sh +0 -43
  88. package/dist/templates/cleargate-planning/.claude/hooks/token-ledger.sh +0 -590
  89. package/dist/templates/cleargate-planning/.claude/settings.json +0 -68
  90. package/dist/templates/cleargate-planning/.claude/skills/flashcard/SKILL.md +0 -102
  91. package/dist/templates/cleargate-planning/.claude/skills/sprint-execution/SKILL.md +0 -742
  92. package/dist/templates/cleargate-planning/.cleargate/FLASHCARD.md +0 -7
  93. package/dist/templates/cleargate-planning/.cleargate/config.example.yml +0 -67
  94. package/dist/templates/cleargate-planning/.cleargate/config.yml +0 -18
  95. package/dist/templates/cleargate-planning/.cleargate/delivery/archive/.gitkeep +0 -0
  96. package/dist/templates/cleargate-planning/.cleargate/delivery/pending-sync/.gitkeep +0 -0
  97. package/dist/templates/cleargate-planning/.cleargate/knowledge/cleargate-enforcement.md +0 -551
  98. package/dist/templates/cleargate-planning/.cleargate/knowledge/cleargate-protocol.md +0 -878
  99. package/dist/templates/cleargate-planning/.cleargate/knowledge/mid-sprint-triage-rubric.md +0 -160
  100. package/dist/templates/cleargate-planning/.cleargate/knowledge/readiness-gates.md +0 -213
  101. package/dist/templates/cleargate-planning/.cleargate/knowledge/sprint-closeout-checklist.md +0 -71
  102. package/dist/templates/cleargate-planning/.cleargate/scripts/_migrate-schema-v3.mjs +0 -120
  103. package/dist/templates/cleargate-planning/.cleargate/scripts/assert_story_files.mjs +0 -265
  104. package/dist/templates/cleargate-planning/.cleargate/scripts/close_sprint.mjs +0 -1012
  105. package/dist/templates/cleargate-planning/.cleargate/scripts/collision_surface.sh +0 -114
  106. package/dist/templates/cleargate-planning/.cleargate/scripts/constants.mjs +0 -62
  107. package/dist/templates/cleargate-planning/.cleargate/scripts/dedupe_frontmatter.mjs +0 -219
  108. package/dist/templates/cleargate-planning/.cleargate/scripts/file_surface_diff.sh +0 -320
  109. package/dist/templates/cleargate-planning/.cleargate/scripts/gate-checks.json +0 -15
  110. package/dist/templates/cleargate-planning/.cleargate/scripts/init_gate_config.sh +0 -38
  111. package/dist/templates/cleargate-planning/.cleargate/scripts/init_sprint.mjs +0 -240
  112. package/dist/templates/cleargate-planning/.cleargate/scripts/launch_wave.mjs +0 -341
  113. package/dist/templates/cleargate-planning/.cleargate/scripts/lib/report-filename.mjs +0 -54
  114. package/dist/templates/cleargate-planning/.cleargate/scripts/pre_gate_common.sh +0 -206
  115. package/dist/templates/cleargate-planning/.cleargate/scripts/pre_gate_runner.sh +0 -371
  116. package/dist/templates/cleargate-planning/.cleargate/scripts/prefill_report.mjs +0 -280
  117. package/dist/templates/cleargate-planning/.cleargate/scripts/prep_doc_refresh.mjs +0 -378
  118. package/dist/templates/cleargate-planning/.cleargate/scripts/prep_qa_context.mjs +0 -888
  119. package/dist/templates/cleargate-planning/.cleargate/scripts/run_script.sh +0 -209
  120. package/dist/templates/cleargate-planning/.cleargate/scripts/sprint_trends.mjs +0 -71
  121. package/dist/templates/cleargate-planning/.cleargate/scripts/state.schema.json +0 -127
  122. package/dist/templates/cleargate-planning/.cleargate/scripts/suggest_improvements.mjs +0 -717
  123. package/dist/templates/cleargate-planning/.cleargate/scripts/surface-whitelist.txt +0 -27
  124. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_assert_story_files.sh +0 -261
  125. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_file_surface.sh +0 -210
  126. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_flashcard_gate.sh +0 -190
  127. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_prep_qa_context.sh +0 -482
  128. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_test_ratchet.sh +0 -327
  129. package/dist/templates/cleargate-planning/.cleargate/scripts/test_ratchet.mjs +0 -261
  130. package/dist/templates/cleargate-planning/.cleargate/scripts/update_state.mjs +0 -246
  131. package/dist/templates/cleargate-planning/.cleargate/scripts/validate_bounce_readiness.mjs +0 -111
  132. package/dist/templates/cleargate-planning/.cleargate/scripts/validate_state.mjs +0 -184
  133. package/dist/templates/cleargate-planning/.cleargate/scripts/write_dispatch.sh +0 -172
  134. package/dist/templates/cleargate-planning/.cleargate/templates/Bug.md +0 -126
  135. package/dist/templates/cleargate-planning/.cleargate/templates/CR.md +0 -130
  136. package/dist/templates/cleargate-planning/.cleargate/templates/Sprint Plan Template.md +0 -137
  137. package/dist/templates/cleargate-planning/.cleargate/templates/epic.md +0 -166
  138. package/dist/templates/cleargate-planning/.cleargate/templates/hotfix.md +0 -111
  139. package/dist/templates/cleargate-planning/.cleargate/templates/initiative.md +0 -122
  140. package/dist/templates/cleargate-planning/.cleargate/templates/sprint_context.md +0 -50
  141. package/dist/templates/cleargate-planning/.cleargate/templates/sprint_report.md +0 -224
  142. package/dist/templates/cleargate-planning/.cleargate/templates/story.md +0 -213
  143. package/dist/templates/cleargate-planning/CLAUDE.md +0 -66
  144. package/dist/templates/cleargate-planning/MANIFEST.json +0 -503
  145. package/dist/templates/synthesis/active-sprint.md +0 -30
  146. package/dist/templates/synthesis/open-gates.md +0 -38
  147. package/dist/templates/synthesis/product-state.md +0 -31
  148. package/dist/templates/synthesis/roadmap.md +0 -63
  149. package/dist/whoami-EANGN46Z.js.map +0 -1
@@ -1,503 +0,0 @@
1
- {
2
- "cleargate_version": "0.14.0",
3
- "generated_at": "2026-06-02T09:52:18.119Z",
4
- "files": [
5
- {
6
- "path": ".claude/agents/architect-reader.md",
7
- "sha256": "b92aa26cd703ab5453e88a8a157b1539f12e95b8b6e7039d260b168d56a2d7b1",
8
- "tier": "agent",
9
- "overwrite_policy": "always",
10
- "preserve_on_uninstall": false
11
- },
12
- {
13
- "path": ".claude/agents/architect-synth.md",
14
- "sha256": "066aeb48dea5628e440cc8f0ab7fae8421759a1cafee282b40337aba8091c466",
15
- "tier": "agent",
16
- "overwrite_policy": "always",
17
- "preserve_on_uninstall": false
18
- },
19
- {
20
- "path": ".claude/agents/architect.md",
21
- "sha256": "20b770935167393be7a59fdd9e62c7ba638e84e070f167f445cbfa3701a39c12",
22
- "tier": "agent",
23
- "overwrite_policy": "always",
24
- "preserve_on_uninstall": false
25
- },
26
- {
27
- "path": ".claude/agents/cleargate-wiki-contradict.md",
28
- "sha256": "1b7ca28889dfa1ab704e05b90179547bee1ae683b68722c99a1daec990e8572b",
29
- "tier": "agent",
30
- "overwrite_policy": "always",
31
- "preserve_on_uninstall": false
32
- },
33
- {
34
- "path": ".claude/agents/cleargate-wiki-ingest.md",
35
- "sha256": "a9346d5c20dfddf3aa6663eb4c106da749cd690a204b568d1d02ecd34e3c7194",
36
- "tier": "agent",
37
- "overwrite_policy": "always",
38
- "preserve_on_uninstall": false
39
- },
40
- {
41
- "path": ".claude/agents/cleargate-wiki-lint.md",
42
- "sha256": "2a9212d81df9a68e167ec7a18093a73c6da0208f13685c6887d5bd832b56fb3d",
43
- "tier": "agent",
44
- "overwrite_policy": "always",
45
- "preserve_on_uninstall": false
46
- },
47
- {
48
- "path": ".claude/agents/cleargate-wiki-query.md",
49
- "sha256": "73706e80bd1ff0ef565c38bbbe12870d49fcc78f9294cab4f55c359caa24d70c",
50
- "tier": "agent",
51
- "overwrite_policy": "always",
52
- "preserve_on_uninstall": false
53
- },
54
- {
55
- "path": ".claude/agents/developer.md",
56
- "sha256": "1a2ca593ed4dae8d7f3e44840fcd527330fe468dd696cb2a15993e7c330721d0",
57
- "tier": "agent",
58
- "overwrite_policy": "always",
59
- "preserve_on_uninstall": false
60
- },
61
- {
62
- "path": ".claude/agents/devops.md",
63
- "sha256": "6402ec599b9a65ca46d5b5bfd363baf1c30c63690e0cd736c79fdd7d41350fe7",
64
- "tier": "agent",
65
- "overwrite_policy": "always",
66
- "preserve_on_uninstall": false
67
- },
68
- {
69
- "path": ".claude/agents/qa.md",
70
- "sha256": "3e6b9f84bfd61a29d41147f76e2f01c7ab582067b26c62d58581c52978c5bd46",
71
- "tier": "agent",
72
- "overwrite_policy": "always",
73
- "preserve_on_uninstall": false
74
- },
75
- {
76
- "path": ".claude/agents/reporter.md",
77
- "sha256": "57b6635660d632d086d984961b1809e5eed5365cfbec9c389e248ada00a6fd5d",
78
- "tier": "agent",
79
- "overwrite_policy": "always",
80
- "preserve_on_uninstall": false
81
- },
82
- {
83
- "path": ".claude/hooks/pending-task-sentinel.sh",
84
- "sha256": "d62404e290dbb04602a75858f03555a9d141839e3ec02512781beb444e6202ac",
85
- "tier": "hook",
86
- "overwrite_policy": "always",
87
- "preserve_on_uninstall": false
88
- },
89
- {
90
- "path": ".claude/hooks/pre-commit-surface-gate.sh",
91
- "sha256": "8dd817fbe75ee53753e2fe1fc2ccd2b6efdb2b3c0b6ad3191bebd9640afdd6f8",
92
- "tier": "hook",
93
- "overwrite_policy": "always",
94
- "preserve_on_uninstall": false
95
- },
96
- {
97
- "path": ".claude/hooks/pre-commit-test-ratchet.sh",
98
- "sha256": "67232d9d94817e512b2d66e020605b59e9795eb4a04005edf7ea75bf9a324848",
99
- "tier": "hook",
100
- "overwrite_policy": "always",
101
- "preserve_on_uninstall": false
102
- },
103
- {
104
- "path": ".claude/hooks/pre-commit.sh",
105
- "sha256": "90260116726bfc88191fda353d038445d5838e7cd811db67029b5555f2dbc555",
106
- "tier": "hook",
107
- "overwrite_policy": "always",
108
- "preserve_on_uninstall": false
109
- },
110
- {
111
- "path": ".claude/hooks/pre-edit-gate.sh",
112
- "sha256": "a9fae2eae43cf493a5bf79e9d15b909a27750515817a2ed0b45d77892b49ab2c",
113
- "tier": "hook",
114
- "overwrite_policy": "always",
115
- "preserve_on_uninstall": false
116
- },
117
- {
118
- "path": ".claude/hooks/pre-tool-use-autonomy.sh",
119
- "sha256": "519774451c2cb3233baa1f7b20f166f956a1f3e77f568ad6f55194c539b927f6",
120
- "tier": "hook",
121
- "overwrite_policy": "always",
122
- "preserve_on_uninstall": false
123
- },
124
- {
125
- "path": ".claude/hooks/pre-tool-use-task.sh",
126
- "sha256": "79fdd30e3f301cb89757aa2279a5fb8cc3a91493b62d5c801517853500368e7f",
127
- "tier": "hook",
128
- "overwrite_policy": "always",
129
- "preserve_on_uninstall": false
130
- },
131
- {
132
- "path": ".claude/hooks/session-start.sh",
133
- "sha256": "b266a5567cc84c02d041e570569962c003daaa69b6aee244173e740dedbf4ee2",
134
- "tier": "hook",
135
- "overwrite_policy": "pin-aware",
136
- "preserve_on_uninstall": false
137
- },
138
- {
139
- "path": ".claude/hooks/stamp-and-gate.sh",
140
- "sha256": "2c654dc3a6707d394f782f68d7318410d4acbbcb70c0a9d0d674d966241fc310",
141
- "tier": "hook",
142
- "overwrite_policy": "pin-aware",
143
- "preserve_on_uninstall": false
144
- },
145
- {
146
- "path": ".claude/hooks/token-ledger.sh",
147
- "sha256": "4adfb493bd23b99018d2750a022a8694824be6d65345de5bfb0eca143feb166a",
148
- "tier": "hook",
149
- "overwrite_policy": "always",
150
- "preserve_on_uninstall": false
151
- },
152
- {
153
- "path": ".claude/settings.json",
154
- "sha256": "cd0bb53b69cb063d760d9709939acef694043a1f7bb74f8542f84c31fd9546c9",
155
- "tier": "cli-config",
156
- "overwrite_policy": "merge-3way",
157
- "preserve_on_uninstall": false
158
- },
159
- {
160
- "path": ".claude/skills/flashcard/SKILL.md",
161
- "sha256": "48a861b80033c29d19abfa5a1d42150be93fbdfb2c940f302ea2ef1678330b84",
162
- "tier": "skill",
163
- "overwrite_policy": "always",
164
- "preserve_on_uninstall": false
165
- },
166
- {
167
- "path": ".claude/skills/sprint-execution/SKILL.md",
168
- "sha256": "2196d887f592aa2056b6b57f9696aa413920bfcb3dfd10167ab43f173f246711",
169
- "tier": "skill",
170
- "overwrite_policy": "always",
171
- "preserve_on_uninstall": false
172
- },
173
- {
174
- "path": ".cleargate/FLASHCARD.md",
175
- "sha256": null,
176
- "tier": "user-artifact",
177
- "overwrite_policy": "skip",
178
- "preserve_on_uninstall": true
179
- },
180
- {
181
- "path": ".cleargate/knowledge/cleargate-enforcement.md",
182
- "sha256": "5b56bed93f20ab39cc530ee32c895e4f741e20f2e7127607a71b326f65d66bb4",
183
- "tier": "protocol",
184
- "overwrite_policy": "merge-3way",
185
- "preserve_on_uninstall": false
186
- },
187
- {
188
- "path": ".cleargate/knowledge/cleargate-protocol.md",
189
- "sha256": "ec1844d98a7551687e64d38194d35f82427fb53cf750b79ff461a9d057ab7e3a",
190
- "tier": "protocol",
191
- "overwrite_policy": "merge-3way",
192
- "preserve_on_uninstall": false
193
- },
194
- {
195
- "path": ".cleargate/knowledge/mid-sprint-triage-rubric.md",
196
- "sha256": "170f762b427074a84c183a91fb65d1d6408650b7746de3bbc460d21194bda30a",
197
- "tier": "protocol",
198
- "overwrite_policy": "merge-3way",
199
- "preserve_on_uninstall": false
200
- },
201
- {
202
- "path": ".cleargate/knowledge/readiness-gates.md",
203
- "sha256": "49dab7ed7a8a79db0ac46e42dfb4a0bf026efab59d56efa2f1500ad4289c2aaf",
204
- "tier": "protocol",
205
- "overwrite_policy": "merge-3way",
206
- "preserve_on_uninstall": false
207
- },
208
- {
209
- "path": ".cleargate/knowledge/sprint-closeout-checklist.md",
210
- "sha256": "d44f57445188bdefb18b39c6c121a1f52d32d9ca6122df91e54855e87fc2233e",
211
- "tier": "protocol",
212
- "overwrite_policy": "merge-3way",
213
- "preserve_on_uninstall": false
214
- },
215
- {
216
- "path": ".cleargate/scripts/_migrate-schema-v3.mjs",
217
- "sha256": "084b2bd288ad5490008bcabe01f7fea7b68c95dacf5749253adac30dfddb5a06",
218
- "tier": "script",
219
- "overwrite_policy": "always",
220
- "preserve_on_uninstall": false
221
- },
222
- {
223
- "path": ".cleargate/scripts/assert_story_files.mjs",
224
- "sha256": "74db9e12008492e40c77cc9bffac4c689621ac5eededf9b342a87e45f918f003",
225
- "tier": "script",
226
- "overwrite_policy": "always",
227
- "preserve_on_uninstall": false
228
- },
229
- {
230
- "path": ".cleargate/scripts/close_sprint.mjs",
231
- "sha256": "398c32d3a54dbf0f5e4f769dd02a45ea5de51627ca0cea74a52fdb1c314848a6",
232
- "tier": "script",
233
- "overwrite_policy": "always",
234
- "preserve_on_uninstall": false
235
- },
236
- {
237
- "path": ".cleargate/scripts/collision_surface.sh",
238
- "sha256": "5c99ea4b0f0a1221289ca7e508ba8e2dc53b9d1d9e41563cc55bf3c2923a70b9",
239
- "tier": "script",
240
- "overwrite_policy": "always",
241
- "preserve_on_uninstall": false
242
- },
243
- {
244
- "path": ".cleargate/scripts/constants.mjs",
245
- "sha256": "f669b158cc8cee0d70a527938f88010262ec8c0f8353c4416d519a46a251eb7e",
246
- "tier": "script",
247
- "overwrite_policy": "always",
248
- "preserve_on_uninstall": false
249
- },
250
- {
251
- "path": ".cleargate/scripts/dedupe_frontmatter.mjs",
252
- "sha256": "6bf2816399cad2ab6f8f770de5eb920c3547b6fad9295c81f08aa6a4f894ef21",
253
- "tier": "script",
254
- "overwrite_policy": "always",
255
- "preserve_on_uninstall": false
256
- },
257
- {
258
- "path": ".cleargate/scripts/file_surface_diff.sh",
259
- "sha256": "a1c250ba35face9124183273fb04d45fdd4f8e43f405be4a765aeb58582753e9",
260
- "tier": "script",
261
- "overwrite_policy": "always",
262
- "preserve_on_uninstall": false
263
- },
264
- {
265
- "path": ".cleargate/scripts/gate-checks.json",
266
- "sha256": "9c520e63ac582289b6905a1c5704326590923eeef90d1e02801d1a57b4262877",
267
- "tier": "script",
268
- "overwrite_policy": "always",
269
- "preserve_on_uninstall": false
270
- },
271
- {
272
- "path": ".cleargate/scripts/init_gate_config.sh",
273
- "sha256": "47f4a9c6609d22d66acc9ccbceb1a144ad590d5ed17159ae5fb9811002a087e8",
274
- "tier": "script",
275
- "overwrite_policy": "always",
276
- "preserve_on_uninstall": false
277
- },
278
- {
279
- "path": ".cleargate/scripts/init_sprint.mjs",
280
- "sha256": "1cdd9e8ebb8951a4142b83222d98b671c33ac9f72e238f58cb9bf1dbf29ce3cd",
281
- "tier": "script",
282
- "overwrite_policy": "always",
283
- "preserve_on_uninstall": false
284
- },
285
- {
286
- "path": ".cleargate/scripts/launch_wave.mjs",
287
- "sha256": "79ea5e1b730b1f8143301b2085776c02242e2dd12ba48712e3332a3e07fb862d",
288
- "tier": "script",
289
- "overwrite_policy": "always",
290
- "preserve_on_uninstall": false
291
- },
292
- {
293
- "path": ".cleargate/scripts/lib/report-filename.mjs",
294
- "sha256": "c26e2c0557f5e33d84058fc34db5c3258e5050093eabeb09fb22d067e458a8e2",
295
- "tier": "script",
296
- "overwrite_policy": "always",
297
- "preserve_on_uninstall": false
298
- },
299
- {
300
- "path": ".cleargate/scripts/pre_gate_common.sh",
301
- "sha256": "fd9af416b6db636901354fca64e60adcce9d4ce71dac96f2d718562a4bdb27e0",
302
- "tier": "script",
303
- "overwrite_policy": "always",
304
- "preserve_on_uninstall": false
305
- },
306
- {
307
- "path": ".cleargate/scripts/pre_gate_runner.sh",
308
- "sha256": "7f221089a353391f6e917c03a6813a26b6650a8b4e7e1c6a2bd845fa4ae081ca",
309
- "tier": "script",
310
- "overwrite_policy": "always",
311
- "preserve_on_uninstall": false
312
- },
313
- {
314
- "path": ".cleargate/scripts/prefill_report.mjs",
315
- "sha256": "bee417d96150410f78262a7fb4f485bf2f2e4191b8818085bdf60a664ebf7d62",
316
- "tier": "script",
317
- "overwrite_policy": "always",
318
- "preserve_on_uninstall": false
319
- },
320
- {
321
- "path": ".cleargate/scripts/prep_doc_refresh.mjs",
322
- "sha256": "822f887fc6c2754d2314f72b8ae62e1f20707b350b04c9867f9fd65068b21d79",
323
- "tier": "script",
324
- "overwrite_policy": "always",
325
- "preserve_on_uninstall": false
326
- },
327
- {
328
- "path": ".cleargate/scripts/prep_qa_context.mjs",
329
- "sha256": "68d69678f72fd6aa64bcf359fbd74f9c5b6b4fe598374f13c1261148b9907cab",
330
- "tier": "script",
331
- "overwrite_policy": "always",
332
- "preserve_on_uninstall": false
333
- },
334
- {
335
- "path": ".cleargate/scripts/run_script.sh",
336
- "sha256": "f2bd931d3b7bb4d30f5da9c116714345480163e9afb4c244c1a1c074410c15d0",
337
- "tier": "script",
338
- "overwrite_policy": "always",
339
- "preserve_on_uninstall": false
340
- },
341
- {
342
- "path": ".cleargate/scripts/sprint_trends.mjs",
343
- "sha256": "58732d158dcffca71fdc935200bbf9f8f14058cec7e05590345c335151dfa156",
344
- "tier": "script",
345
- "overwrite_policy": "always",
346
- "preserve_on_uninstall": false
347
- },
348
- {
349
- "path": ".cleargate/scripts/state.schema.json",
350
- "sha256": "38fbdfb55fbb8d54fdf71677a3761c0c64bfb2a74eee82e5933ccd04e7db5589",
351
- "tier": "script",
352
- "overwrite_policy": "always",
353
- "preserve_on_uninstall": false
354
- },
355
- {
356
- "path": ".cleargate/scripts/suggest_improvements.mjs",
357
- "sha256": "62e71e7bf43abb6f015290f6ff3e06f15fb097682ddb95dbdf9532922d27925a",
358
- "tier": "script",
359
- "overwrite_policy": "always",
360
- "preserve_on_uninstall": false
361
- },
362
- {
363
- "path": ".cleargate/scripts/surface-whitelist.txt",
364
- "sha256": "c1c14349265d741570dc4b0e61501c2a9e898a25cefad93911ef1298cf4d74c7",
365
- "tier": "script",
366
- "overwrite_policy": "always",
367
- "preserve_on_uninstall": false
368
- },
369
- {
370
- "path": ".cleargate/scripts/test_ratchet.mjs",
371
- "sha256": "429f6034ad6946f906c9068e9604d5348898687af0cf56badcae673b04369c5b",
372
- "tier": "script",
373
- "overwrite_policy": "always",
374
- "preserve_on_uninstall": false
375
- },
376
- {
377
- "path": ".cleargate/scripts/test/test_assert_story_files.sh",
378
- "sha256": "6aace15a0de4d07b4b9e7454d2b38e266b7a80e265281135a050bd9f6be83aab",
379
- "tier": "script",
380
- "overwrite_policy": "always",
381
- "preserve_on_uninstall": false
382
- },
383
- {
384
- "path": ".cleargate/scripts/test/test_file_surface.sh",
385
- "sha256": "ada0e9583717a38bd912c0af16bb0e11c0b719a96df6dd511c879f0cf367788d",
386
- "tier": "script",
387
- "overwrite_policy": "always",
388
- "preserve_on_uninstall": false
389
- },
390
- {
391
- "path": ".cleargate/scripts/test/test_flashcard_gate.sh",
392
- "sha256": "40fb023b0db1556295b92858b303ba90745ef89c3131bc760232e5cd8ebe7815",
393
- "tier": "script",
394
- "overwrite_policy": "always",
395
- "preserve_on_uninstall": false
396
- },
397
- {
398
- "path": ".cleargate/scripts/test/test_prep_qa_context.sh",
399
- "sha256": "fd198bbc5d1faeaebd18ac72e5bcc2d84f931f035175bd51048ee04dcbd7ae0d",
400
- "tier": "script",
401
- "overwrite_policy": "always",
402
- "preserve_on_uninstall": false
403
- },
404
- {
405
- "path": ".cleargate/scripts/test/test_test_ratchet.sh",
406
- "sha256": "bfa13cb347824a525b636538d330a3ee3765f7908707f94149f2ffe69439729b",
407
- "tier": "script",
408
- "overwrite_policy": "always",
409
- "preserve_on_uninstall": false
410
- },
411
- {
412
- "path": ".cleargate/scripts/update_state.mjs",
413
- "sha256": "15719c9bba95c99387c24682a56f96bdba003fa8aebd89a15af460389b9f655e",
414
- "tier": "script",
415
- "overwrite_policy": "always",
416
- "preserve_on_uninstall": false
417
- },
418
- {
419
- "path": ".cleargate/scripts/validate_bounce_readiness.mjs",
420
- "sha256": "e4c6bead578a75a4f62fddbc1bccd40e92cc64f6136b3f893bb7cf50bacbd6ff",
421
- "tier": "script",
422
- "overwrite_policy": "always",
423
- "preserve_on_uninstall": false
424
- },
425
- {
426
- "path": ".cleargate/scripts/validate_state.mjs",
427
- "sha256": "2244b0f1e2385e29074801375a275234d59970864878790bff3ba688b9619c1c",
428
- "tier": "script",
429
- "overwrite_policy": "always",
430
- "preserve_on_uninstall": false
431
- },
432
- {
433
- "path": ".cleargate/scripts/write_dispatch.sh",
434
- "sha256": "c103ff5e33263c72de81ba80c23857265f89f316f963025aebdf9ffa5ad1b361",
435
- "tier": "script",
436
- "overwrite_policy": "always",
437
- "preserve_on_uninstall": false
438
- },
439
- {
440
- "path": ".cleargate/templates/Bug.md",
441
- "sha256": "c697d927c293cc1f2930c29ffad851584f2c56011f7f8679022105d63c9d374a",
442
- "tier": "template",
443
- "overwrite_policy": "merge-3way",
444
- "preserve_on_uninstall": false
445
- },
446
- {
447
- "path": ".cleargate/templates/CR.md",
448
- "sha256": "8a8569ccac958b0f30a05b51729009c78ccca34c3eede8281d0c498f9bf84bfa",
449
- "tier": "template",
450
- "overwrite_policy": "merge-3way",
451
- "preserve_on_uninstall": false
452
- },
453
- {
454
- "path": ".cleargate/templates/epic.md",
455
- "sha256": "b91be4d85c625bfb9c22f462a5b8fbc343308b47baa5e9a797df83ab230cc8e4",
456
- "tier": "template",
457
- "overwrite_policy": "merge-3way",
458
- "preserve_on_uninstall": false
459
- },
460
- {
461
- "path": ".cleargate/templates/hotfix.md",
462
- "sha256": "de788497b4d224500036773f854801c056d73b08c3c0d66fdb641f17a1610bca",
463
- "tier": "template",
464
- "overwrite_policy": "merge-3way",
465
- "preserve_on_uninstall": false
466
- },
467
- {
468
- "path": ".cleargate/templates/initiative.md",
469
- "sha256": "1170e595f5813c62f86212d6ca1955d84465f396c81aaf34498b8e2d4595d681",
470
- "tier": "template",
471
- "overwrite_policy": "merge-3way",
472
- "preserve_on_uninstall": false
473
- },
474
- {
475
- "path": ".cleargate/templates/Sprint Plan Template.md",
476
- "sha256": "262604d9cdd38774e195c65324fc9cbbd62f30d33ed51ed83d0faf5241020a96",
477
- "tier": "template",
478
- "overwrite_policy": "merge-3way",
479
- "preserve_on_uninstall": false
480
- },
481
- {
482
- "path": ".cleargate/templates/sprint_context.md",
483
- "sha256": "82a95b8e5e9a5842a9dcad68bc3ed7405819a616d13d616cdb80083c32cc1fc3",
484
- "tier": "template",
485
- "overwrite_policy": "merge-3way",
486
- "preserve_on_uninstall": false
487
- },
488
- {
489
- "path": ".cleargate/templates/sprint_report.md",
490
- "sha256": "5914d54080f6110be5a5e905e3312811f3d0f80978121b1e15707d5be05cc5b1",
491
- "tier": "template",
492
- "overwrite_policy": "merge-3way",
493
- "preserve_on_uninstall": false
494
- },
495
- {
496
- "path": ".cleargate/templates/story.md",
497
- "sha256": "eeafb3e6d20df4faa0828a20760dfcb20266ee67b428c4219e0b4231913252d4",
498
- "tier": "template",
499
- "overwrite_policy": "merge-3way",
500
- "preserve_on_uninstall": false
501
- }
502
- ]
503
- }
@@ -1,30 +0,0 @@
1
- # Active Sprint
2
-
3
- > Auto-generated by `cleargate wiki build`. Do not edit manually.
4
-
5
- ## Current Sprint
6
-
7
- {{#active}}
8
- - [[{{id}}]] — status: {{status}}
9
- {{/active}}
10
- {{#no_active}}
11
- _No active sprint found._
12
- {{/no_active}}
13
-
14
- ## Planned Sprints
15
-
16
- {{#planned}}
17
- - [[{{id}}]] — status: {{status}}
18
- {{/planned}}
19
- {{#no_planned}}
20
- _No planned sprints._
21
- {{/no_planned}}
22
-
23
- ## Recently Completed Sprints
24
-
25
- {{#completed}}
26
- - [[{{id}}]] — completed: {{completed_at}}
27
- {{/completed}}
28
- {{#no_completed}}
29
- _No completed sprints._
30
- {{/no_completed}}
@@ -1,38 +0,0 @@
1
- # Open Gates
2
-
3
- > Auto-generated by `cleargate wiki build`. Do not edit manually.
4
-
5
- Items awaiting human action at one of the three ClearGate review gates.
6
-
7
- ## Gate 1 — Pending Proposal Approval
8
-
9
- Proposals with `approved: false` or `status: Draft` that have not yet been blessed.
10
-
11
- {{#gate1}}
12
- - [[{{id}}]] — status: {{status}}
13
- {{/gate1}}
14
- {{#no_gate1}}
15
- _No items pending Gate 1 approval._
16
- {{/no_gate1}}
17
-
18
- ## Gate 2 — Pending Story Ambiguity Clearance
19
-
20
- Stories with medium or high ambiguity that need design decisions before work can start.
21
-
22
- {{#gate2}}
23
- - [[{{id}}]] — ambiguity: {{ambiguity}}
24
- {{/gate2}}
25
- {{#no_gate2}}
26
- _No items pending Gate 2 ambiguity clearance._
27
- {{/no_gate2}}
28
-
29
- ## Gate 3 — Ready to Push (not yet synced)
30
-
31
- Items with `status: Ready` that have not been pushed to the remote PM tool (`remote_id` is empty).
32
-
33
- {{#gate3}}
34
- - [[{{id}}]] — status: {{status}}
35
- {{/gate3}}
36
- {{#no_gate3}}
37
- _No items pending Gate 3 push._
38
- {{/no_gate3}}
@@ -1,31 +0,0 @@
1
- # Product State
2
-
3
- > Auto-generated by `cleargate wiki build`. Do not edit manually.
4
-
5
- ## Summary
6
-
7
- | Type | Total | Active | Shipped |
8
- |------|-------|--------|---------|
9
- | Epics | {{total_epics}} | {{active_epics}} | {{shipped_epics}} |
10
- | Sprints | {{total_sprints}} | {{active_sprints}} | {{shipped_sprints}} |
11
- | Proposals | {{total_proposals}} | {{active_proposals}} | {{shipped_proposals}} |
12
- | CRs | {{total_crs}} | {{active_crs}} | {{shipped_crs}} |
13
- | Bugs | {{total_bugs}} | {{active_bugs}} | {{shipped_bugs}} |
14
-
15
- ## Active Epics
16
-
17
- {{#active_epics_list}}
18
- - [[{{id}}]] — status: {{status}}
19
- {{/active_epics_list}}
20
- {{#no_active_epics}}
21
- _No active epics._
22
- {{/no_active_epics}}
23
-
24
- ## Shipped This Cycle
25
-
26
- {{#shipped_items}}
27
- - [[{{id}}]] ({{bucket}}) — {{status}}
28
- {{/shipped_items}}
29
- {{#no_shipped}}
30
- _Nothing shipped yet this cycle._
31
- {{/no_shipped}}
@@ -1,63 +0,0 @@
1
- # Roadmap
2
-
3
- > Auto-generated by `cleargate wiki build`. Do not edit manually.
4
-
5
- ## In-Flight Sprints
6
-
7
- Sprints currently active (`activated_at` set, `completed_at` not set).
8
-
9
- {{#in_flight_sprints}}
10
- - [[{{id}}]] — activated: {{activated_at}}
11
- {{/in_flight_sprints}}
12
- {{#no_in_flight_sprints}}
13
- _No sprints currently in flight._
14
- {{/no_in_flight_sprints}}
15
-
16
- ## Planned Sprints
17
-
18
- Sprints not yet started (`activated_at` not set).
19
-
20
- {{#planned_sprints}}
21
- - [[{{id}}]] — status: {{status}}
22
- {{/planned_sprints}}
23
- {{#no_planned_sprints}}
24
- _No planned sprints._
25
- {{/no_planned_sprints}}
26
-
27
- ## Shipped Sprints
28
-
29
- Sprints with `completed_at` set.
30
-
31
- {{#shipped_sprints}}
32
- - [[{{id}}]] — completed: {{completed_at}}
33
- {{/shipped_sprints}}
34
- {{#no_shipped_sprints}}
35
- _No shipped sprints._
36
- {{/no_shipped_sprints}}
37
-
38
- ## Active Epics
39
-
40
- {{#active_epics}}
41
- - [[{{id}}]] — status: {{status}}
42
- {{/active_epics}}
43
- {{#no_active_epics}}
44
- _No active epics._
45
- {{/no_active_epics}}
46
-
47
- ## Planned Epics
48
-
49
- {{#planned_epics}}
50
- - [[{{id}}]] — status: {{status}}
51
- {{/planned_epics}}
52
- {{#no_planned_epics}}
53
- _No planned epics._
54
- {{/no_planned_epics}}
55
-
56
- ## Shipped Epics
57
-
58
- {{#shipped_epics}}
59
- - [[{{id}}]] — status: {{status}}
60
- {{/shipped_epics}}
61
- {{#no_shipped_epics}}
62
- _No shipped epics._
63
- {{/no_shipped_epics}}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/whoami.ts"],"sourcesContent":["/**\n * cleargate whoami — smoke-test command that proves the stored refresh token\n * can be exchanged for a short-lived MCP access token, decodes the JWT payload\n * (no verification — just introspection), and prints identity fields.\n *\n * CR-011: adds --json mode. When --json flag is present, skip network entirely;\n * call getMembershipState() and emit JSON to stdout. Existing non-JSON path\n * (network whoami) remains unchanged for backward compat.\n *\n * This is the first command to exercise the acquireAccessToken flow end-to-end;\n * sync/pull/push will be wired in follow-up stories.\n */\nimport { loadConfig, requireMcpUrl } from '../config.js';\nimport { acquireAccessToken, AcquireError } from '../auth/acquire.js';\nimport { decodeJwtPayload, getMembershipState } from '../lib/membership.js';\n\nexport interface WhoamiOptions {\n profile: string;\n mcpUrlFlag?: string;\n /** CR-011: emit JSON state instead of making a network call */\n json?: boolean;\n /** Test seam: replaces globalThis.fetch */\n fetch?: typeof globalThis.fetch;\n stdout?: (s: string) => void;\n stderr?: (s: string) => void;\n exit?: (code: number) => never;\n /** Test seam: override ~/.cleargate home path for getMembershipState */\n cleargateHome?: string;\n /** Test seam: override clock for expiry check */\n now?: () => number;\n /**\n * BUG-031: working directory for per-repo join evidence check.\n * Default: process.cwd().\n */\n projectRoot?: string;\n}\n\nexport async function whoamiHandler(opts: WhoamiOptions): Promise<void> {\n const stdout = opts.stdout ?? ((s) => process.stdout.write(s));\n const stderr = opts.stderr ?? ((s) => process.stderr.write(s));\n const exit = opts.exit ?? ((c: number): never => process.exit(c));\n\n // CR-011: --json mode — cheap-path, no network call.\n if (opts.json) {\n const state = getMembershipState({\n profile: opts.profile,\n cleargateHome: opts.cleargateHome,\n now: opts.now,\n projectRoot: opts.projectRoot,\n });\n stdout(JSON.stringify(state) + '\\n');\n return;\n }\n\n // Existing network path (backward compat).\n const cfg = loadConfig({ flags: { profile: opts.profile, mcpUrl: opts.mcpUrlFlag } });\n let mcpUrl: string;\n try {\n mcpUrl = requireMcpUrl(cfg);\n } catch (err) {\n stderr(`cleargate: ${err instanceof Error ? err.message : String(err)}\\n`);\n exit(5);\n return;\n }\n\n let accessToken: string;\n try {\n accessToken = await acquireAccessToken({\n mcpUrl,\n profile: opts.profile,\n fetch: opts.fetch,\n });\n } catch (err) {\n if (err instanceof AcquireError) {\n stderr(`cleargate: ${err.message}\\n`);\n exit(err.code === 'transport' ? 2 : 5);\n return;\n }\n stderr(`cleargate: internal error: ${err instanceof Error ? err.message : String(err)}\\n`);\n exit(99);\n return;\n }\n\n const claims = decodeJwtPayload(accessToken);\n if (!claims) {\n stderr('cleargate: access token received but could not decode payload.\\n');\n exit(7);\n return;\n }\n\n stdout(\n [\n `mcp_url: ${mcpUrl}`,\n `profile: ${opts.profile}`,\n `member_id: ${claims['sub'] ?? '?'}`,\n `project_id: ${claims['project_id'] ?? '?'}`,\n `role: ${claims['role'] ?? '?'}`,\n `expires_at: ${typeof claims['exp'] === 'number' ? new Date(claims['exp'] as number * 1000).toISOString() : '?'}`,\n '',\n ].join('\\n'),\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAqCA,eAAsB,cAAc,MAAoC;AACtE,QAAM,SAAS,KAAK,WAAW,CAAC,MAAM,QAAQ,OAAO,MAAM,CAAC;AAC5D,QAAM,SAAS,KAAK,WAAW,CAAC,MAAM,QAAQ,OAAO,MAAM,CAAC;AAC5D,QAAM,OAAO,KAAK,SAAS,CAAC,MAAqB,QAAQ,KAAK,CAAC;AAG/D,MAAI,KAAK,MAAM;AACb,UAAM,QAAQ,mBAAmB;AAAA,MAC/B,SAAS,KAAK;AAAA,MACd,eAAe,KAAK;AAAA,MACpB,KAAK,KAAK;AAAA,MACV,aAAa,KAAK;AAAA,IACpB,CAAC;AACD,WAAO,KAAK,UAAU,KAAK,IAAI,IAAI;AACnC;AAAA,EACF;AAGA,QAAM,MAAM,WAAW,EAAE,OAAO,EAAE,SAAS,KAAK,SAAS,QAAQ,KAAK,WAAW,EAAE,CAAC;AACpF,MAAI;AACJ,MAAI;AACF,aAAS,cAAc,GAAG;AAAA,EAC5B,SAAS,KAAK;AACZ,WAAO,cAAc,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,CAAI;AACzE,SAAK,CAAC;AACN;AAAA,EACF;AAEA,MAAI;AACJ,MAAI;AACF,kBAAc,MAAM,mBAAmB;AAAA,MACrC;AAAA,MACA,SAAS,KAAK;AAAA,MACd,OAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,QAAI,eAAe,cAAc;AAC/B,aAAO,cAAc,IAAI,OAAO;AAAA,CAAI;AACpC,WAAK,IAAI,SAAS,cAAc,IAAI,CAAC;AACrC;AAAA,IACF;AACA,WAAO,8BAA8B,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,CAAI;AACzF,SAAK,EAAE;AACP;AAAA,EACF;AAEA,QAAM,SAAS,iBAAiB,WAAW;AAC3C,MAAI,CAAC,QAAQ;AACX,WAAO,kEAAkE;AACzE,SAAK,CAAC;AACN;AAAA,EACF;AAEA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AAAA,MACrB,eAAe,KAAK,OAAO;AAAA,MAC3B,eAAe,OAAO,KAAK,KAAK,GAAG;AAAA,MACnC,eAAe,OAAO,YAAY,KAAK,GAAG;AAAA,MAC1C,eAAe,OAAO,MAAM,KAAK,GAAG;AAAA,MACpC,eAAe,OAAO,OAAO,KAAK,MAAM,WAAW,IAAI,KAAK,OAAO,KAAK,IAAc,GAAI,EAAE,YAAY,IAAI,GAAG;AAAA,MAC/G;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;","names":[]}