cleargate 0.14.0 → 0.15.1

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 (150) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/MANIFEST.json +72 -16
  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-synth.md +2 -0
  25. package/templates/cleargate-planning/.claude/agents/architect.md +4 -2
  26. package/templates/cleargate-planning/.claude/agents/developer.md +4 -11
  27. package/templates/cleargate-planning/.claude/agents/qa.md +14 -6
  28. package/templates/cleargate-planning/.claude/hooks/pending-task-sentinel.sh +2 -2
  29. package/templates/cleargate-planning/.claude/skills/sprint-execution/SKILL.md +19 -1
  30. package/templates/cleargate-planning/.cleargate/config.example.yml +16 -0
  31. package/templates/cleargate-planning/.cleargate/scripts/close_sprint.deferred-verify.red.node.test.ts +245 -0
  32. package/templates/cleargate-planning/.cleargate/scripts/close_sprint.mjs +227 -0
  33. package/templates/cleargate-planning/.cleargate/scripts/gate-checks.json +5 -4
  34. package/templates/cleargate-planning/.cleargate/scripts/init_sprint.mjs +75 -2
  35. package/templates/cleargate-planning/.cleargate/scripts/pre_gate_common.sh +48 -0
  36. package/templates/cleargate-planning/.cleargate/scripts/pre_gate_runner.sh +57 -1
  37. package/templates/cleargate-planning/.cleargate/scripts/provision_worktree_config.sh +155 -0
  38. package/templates/cleargate-planning/.cleargate/scripts/qa_red_lint.mjs +380 -0
  39. package/templates/cleargate-planning/.cleargate/scripts/run_script.sh +34 -1
  40. package/templates/cleargate-planning/.cleargate/scripts/test/cr077_eviction.red.sh +113 -0
  41. package/templates/cleargate-planning/.cleargate/scripts/test/cr078_init.test.sh +309 -0
  42. package/templates/cleargate-planning/.cleargate/scripts/test/cr079_provision.red.sh +262 -0
  43. package/templates/cleargate-planning/.cleargate/scripts/test/cr080_wrapper.test.sh +177 -0
  44. package/templates/cleargate-planning/.cleargate/scripts/test/cr081_qa_red_lint.red.sh +348 -0
  45. package/templates/cleargate-planning/.cleargate/sprint-runs/_off-sprint/.session-totals.json +1 -0
  46. package/templates/cleargate-planning/.cleargate/sprint-runs/_off-sprint/token-ledger.jsonl +222 -0
  47. package/templates/cleargate-planning/.cleargate/templates/sprint_context.md +17 -0
  48. package/templates/cleargate-planning/.cleargate/templates/story.md +1 -0
  49. package/templates/cleargate-planning/MANIFEST.json +72 -16
  50. package/dist/admin-api/index.cjs.map +0 -1
  51. package/dist/admin-api/index.js.map +0 -1
  52. package/dist/auth/factory.cjs.map +0 -1
  53. package/dist/auth/factory.js.map +0 -1
  54. package/dist/auth/require-token.cjs.map +0 -1
  55. package/dist/auth/require-token.js.map +0 -1
  56. package/dist/auth/token-store.cjs.map +0 -1
  57. package/dist/auth/token-store.js.map +0 -1
  58. package/dist/bootstrap-root-QKSA5V75.js.map +0 -1
  59. package/dist/chunk-5DI2Z3C2.js.map +0 -1
  60. package/dist/chunk-BTSZOEWC.js.map +0 -1
  61. package/dist/chunk-E3X7IE5E.js.map +0 -1
  62. package/dist/chunk-PDE37WFQ.js.map +0 -1
  63. package/dist/cli.cjs.map +0 -1
  64. package/dist/cli.js.map +0 -1
  65. package/dist/lib/ledger.cjs.map +0 -1
  66. package/dist/lib/ledger.js.map +0 -1
  67. package/dist/lib/lifecycle-reconcile.cjs.map +0 -1
  68. package/dist/lib/lifecycle-reconcile.js.map +0 -1
  69. package/dist/templates/cleargate-planning/.claude/agents/architect-reader.md +0 -61
  70. package/dist/templates/cleargate-planning/.claude/agents/architect-synth.md +0 -124
  71. package/dist/templates/cleargate-planning/.claude/agents/architect.md +0 -230
  72. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-contradict.md +0 -108
  73. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-ingest.md +0 -194
  74. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-lint.md +0 -261
  75. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-query.md +0 -143
  76. package/dist/templates/cleargate-planning/.claude/agents/developer.md +0 -185
  77. package/dist/templates/cleargate-planning/.claude/agents/devops.md +0 -257
  78. package/dist/templates/cleargate-planning/.claude/agents/qa.md +0 -171
  79. package/dist/templates/cleargate-planning/.claude/agents/reporter.md +0 -274
  80. package/dist/templates/cleargate-planning/.claude/hooks/pending-task-sentinel.sh +0 -209
  81. package/dist/templates/cleargate-planning/.claude/hooks/pre-commit-surface-gate.sh +0 -33
  82. package/dist/templates/cleargate-planning/.claude/hooks/pre-commit-test-ratchet.sh +0 -58
  83. package/dist/templates/cleargate-planning/.claude/hooks/pre-commit.sh +0 -19
  84. package/dist/templates/cleargate-planning/.claude/hooks/pre-edit-gate.sh +0 -162
  85. package/dist/templates/cleargate-planning/.claude/hooks/pre-tool-use-autonomy.sh +0 -58
  86. package/dist/templates/cleargate-planning/.claude/hooks/pre-tool-use-task.sh +0 -148
  87. package/dist/templates/cleargate-planning/.claude/hooks/session-start.sh +0 -75
  88. package/dist/templates/cleargate-planning/.claude/hooks/stamp-and-gate.sh +0 -43
  89. package/dist/templates/cleargate-planning/.claude/hooks/token-ledger.sh +0 -590
  90. package/dist/templates/cleargate-planning/.claude/settings.json +0 -68
  91. package/dist/templates/cleargate-planning/.claude/skills/flashcard/SKILL.md +0 -102
  92. package/dist/templates/cleargate-planning/.claude/skills/sprint-execution/SKILL.md +0 -742
  93. package/dist/templates/cleargate-planning/.cleargate/FLASHCARD.md +0 -7
  94. package/dist/templates/cleargate-planning/.cleargate/config.example.yml +0 -67
  95. package/dist/templates/cleargate-planning/.cleargate/config.yml +0 -18
  96. package/dist/templates/cleargate-planning/.cleargate/delivery/archive/.gitkeep +0 -0
  97. package/dist/templates/cleargate-planning/.cleargate/delivery/pending-sync/.gitkeep +0 -0
  98. package/dist/templates/cleargate-planning/.cleargate/knowledge/cleargate-enforcement.md +0 -551
  99. package/dist/templates/cleargate-planning/.cleargate/knowledge/cleargate-protocol.md +0 -878
  100. package/dist/templates/cleargate-planning/.cleargate/knowledge/mid-sprint-triage-rubric.md +0 -160
  101. package/dist/templates/cleargate-planning/.cleargate/knowledge/readiness-gates.md +0 -213
  102. package/dist/templates/cleargate-planning/.cleargate/knowledge/sprint-closeout-checklist.md +0 -71
  103. package/dist/templates/cleargate-planning/.cleargate/scripts/_migrate-schema-v3.mjs +0 -120
  104. package/dist/templates/cleargate-planning/.cleargate/scripts/assert_story_files.mjs +0 -265
  105. package/dist/templates/cleargate-planning/.cleargate/scripts/close_sprint.mjs +0 -1012
  106. package/dist/templates/cleargate-planning/.cleargate/scripts/collision_surface.sh +0 -114
  107. package/dist/templates/cleargate-planning/.cleargate/scripts/constants.mjs +0 -62
  108. package/dist/templates/cleargate-planning/.cleargate/scripts/dedupe_frontmatter.mjs +0 -219
  109. package/dist/templates/cleargate-planning/.cleargate/scripts/file_surface_diff.sh +0 -320
  110. package/dist/templates/cleargate-planning/.cleargate/scripts/gate-checks.json +0 -15
  111. package/dist/templates/cleargate-planning/.cleargate/scripts/init_gate_config.sh +0 -38
  112. package/dist/templates/cleargate-planning/.cleargate/scripts/init_sprint.mjs +0 -240
  113. package/dist/templates/cleargate-planning/.cleargate/scripts/launch_wave.mjs +0 -341
  114. package/dist/templates/cleargate-planning/.cleargate/scripts/lib/report-filename.mjs +0 -54
  115. package/dist/templates/cleargate-planning/.cleargate/scripts/pre_gate_common.sh +0 -206
  116. package/dist/templates/cleargate-planning/.cleargate/scripts/pre_gate_runner.sh +0 -371
  117. package/dist/templates/cleargate-planning/.cleargate/scripts/prefill_report.mjs +0 -280
  118. package/dist/templates/cleargate-planning/.cleargate/scripts/prep_doc_refresh.mjs +0 -378
  119. package/dist/templates/cleargate-planning/.cleargate/scripts/prep_qa_context.mjs +0 -888
  120. package/dist/templates/cleargate-planning/.cleargate/scripts/run_script.sh +0 -209
  121. package/dist/templates/cleargate-planning/.cleargate/scripts/sprint_trends.mjs +0 -71
  122. package/dist/templates/cleargate-planning/.cleargate/scripts/state.schema.json +0 -127
  123. package/dist/templates/cleargate-planning/.cleargate/scripts/suggest_improvements.mjs +0 -717
  124. package/dist/templates/cleargate-planning/.cleargate/scripts/surface-whitelist.txt +0 -27
  125. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_assert_story_files.sh +0 -261
  126. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_file_surface.sh +0 -210
  127. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_flashcard_gate.sh +0 -190
  128. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_prep_qa_context.sh +0 -482
  129. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_test_ratchet.sh +0 -327
  130. package/dist/templates/cleargate-planning/.cleargate/scripts/test_ratchet.mjs +0 -261
  131. package/dist/templates/cleargate-planning/.cleargate/scripts/update_state.mjs +0 -246
  132. package/dist/templates/cleargate-planning/.cleargate/scripts/validate_bounce_readiness.mjs +0 -111
  133. package/dist/templates/cleargate-planning/.cleargate/scripts/validate_state.mjs +0 -184
  134. package/dist/templates/cleargate-planning/.cleargate/scripts/write_dispatch.sh +0 -172
  135. package/dist/templates/cleargate-planning/.cleargate/templates/Bug.md +0 -126
  136. package/dist/templates/cleargate-planning/.cleargate/templates/CR.md +0 -130
  137. package/dist/templates/cleargate-planning/.cleargate/templates/Sprint Plan Template.md +0 -137
  138. package/dist/templates/cleargate-planning/.cleargate/templates/epic.md +0 -166
  139. package/dist/templates/cleargate-planning/.cleargate/templates/hotfix.md +0 -111
  140. package/dist/templates/cleargate-planning/.cleargate/templates/initiative.md +0 -122
  141. package/dist/templates/cleargate-planning/.cleargate/templates/sprint_context.md +0 -50
  142. package/dist/templates/cleargate-planning/.cleargate/templates/sprint_report.md +0 -224
  143. package/dist/templates/cleargate-planning/.cleargate/templates/story.md +0 -213
  144. package/dist/templates/cleargate-planning/CLAUDE.md +0 -66
  145. package/dist/templates/cleargate-planning/MANIFEST.json +0 -503
  146. package/dist/templates/synthesis/active-sprint.md +0 -30
  147. package/dist/templates/synthesis/open-gates.md +0 -38
  148. package/dist/templates/synthesis/product-state.md +0 -31
  149. package/dist/templates/synthesis/roadmap.md +0 -63
  150. 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":[]}