@vextlabs/theron-cli 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/dist/api.d.ts +8 -0
  2. package/dist/api.js +3 -0
  3. package/dist/api.js.map +1 -1
  4. package/dist/auth.js +51 -1
  5. package/dist/auth.js.map +1 -1
  6. package/dist/banner.js +3 -2
  7. package/dist/banner.js.map +1 -1
  8. package/dist/checkpoints.d.ts +32 -0
  9. package/dist/checkpoints.js +61 -0
  10. package/dist/checkpoints.js.map +1 -0
  11. package/dist/index.js +61 -5
  12. package/dist/index.js.map +1 -1
  13. package/dist/input.d.ts +61 -0
  14. package/dist/input.js +574 -0
  15. package/dist/input.js.map +1 -0
  16. package/dist/profiles/index.js +5 -0
  17. package/dist/profiles/index.js.map +1 -1
  18. package/dist/profiles/methodologies/build_domains.d.ts +6 -0
  19. package/dist/profiles/methodologies/build_domains.js +170 -0
  20. package/dist/profiles/methodologies/build_domains.js.map +1 -0
  21. package/dist/profiles/methodologies/operate_domains.d.ts +8 -0
  22. package/dist/profiles/methodologies/operate_domains.js +1239 -0
  23. package/dist/profiles/methodologies/operate_domains.js.map +1 -0
  24. package/dist/profiles/methodologies/regulated_domains.d.ts +6 -0
  25. package/dist/profiles/methodologies/regulated_domains.js +153 -0
  26. package/dist/profiles/methodologies/regulated_domains.js.map +1 -0
  27. package/dist/profiles/methodologies/research_domains.d.ts +8 -0
  28. package/dist/profiles/methodologies/research_domains.js +179 -0
  29. package/dist/profiles/methodologies/research_domains.js.map +1 -0
  30. package/dist/profiles/methodologies/strategy_domains.d.ts +15 -0
  31. package/dist/profiles/methodologies/strategy_domains.js +193 -0
  32. package/dist/profiles/methodologies/strategy_domains.js.map +1 -0
  33. package/dist/profiles/seeds.js +241 -95
  34. package/dist/profiles/seeds.js.map +1 -1
  35. package/dist/receipt.d.ts +17 -0
  36. package/dist/receipt.js +46 -0
  37. package/dist/receipt.js.map +1 -0
  38. package/dist/render.d.ts +4 -1
  39. package/dist/render.js +95 -28
  40. package/dist/render.js.map +1 -1
  41. package/dist/repl.d.ts +8 -1
  42. package/dist/repl.js +420 -62
  43. package/dist/repl.js.map +1 -1
  44. package/dist/sessions.d.ts +14 -0
  45. package/dist/sessions.js +100 -0
  46. package/dist/sessions.js.map +1 -1
  47. package/dist/ship.d.ts +2 -0
  48. package/dist/ship.js +62 -0
  49. package/dist/ship.js.map +1 -0
  50. package/dist/skills/catalog.d.ts +13 -0
  51. package/dist/skills/catalog.js +86 -0
  52. package/dist/skills/catalog.js.map +1 -0
  53. package/dist/tools/bash.js +81 -14
  54. package/dist/tools/bash.js.map +1 -1
  55. package/dist/tools/edit.js +21 -1
  56. package/dist/tools/edit.js.map +1 -1
  57. package/dist/tools/glob.js +4 -1
  58. package/dist/tools/glob.js.map +1 -1
  59. package/dist/tools/grep.d.ts +5 -0
  60. package/dist/tools/grep.js +101 -2
  61. package/dist/tools/grep.js.map +1 -1
  62. package/dist/tools/index.d.ts +22 -0
  63. package/dist/tools/index.js +177 -41
  64. package/dist/tools/index.js.map +1 -1
  65. package/dist/tools/ls.d.ts +3 -0
  66. package/dist/tools/ls.js +23 -12
  67. package/dist/tools/ls.js.map +1 -1
  68. package/dist/tools/multiedit.d.ts +12 -0
  69. package/dist/tools/multiedit.js +79 -0
  70. package/dist/tools/multiedit.js.map +1 -0
  71. package/dist/tools/stoa.d.ts +1 -1
  72. package/dist/tools/stoa.js +7 -3
  73. package/dist/tools/stoa.js.map +1 -1
  74. package/dist/tools/task.d.ts +9 -0
  75. package/dist/tools/task.js +166 -0
  76. package/dist/tools/task.js.map +1 -0
  77. package/dist/tools/todowrite.d.ts +12 -0
  78. package/dist/tools/todowrite.js +38 -0
  79. package/dist/tools/todowrite.js.map +1 -0
  80. package/dist/tools/webfetch.d.ts +6 -0
  81. package/dist/tools/webfetch.js +98 -0
  82. package/dist/tools/webfetch.js.map +1 -0
  83. package/dist/tools/websearch.d.ts +7 -0
  84. package/dist/tools/websearch.js +83 -0
  85. package/dist/tools/websearch.js.map +1 -0
  86. package/dist/tools/write.js +17 -1
  87. package/dist/tools/write.js.map +1 -1
  88. package/dist/verifiers/calc_gate.d.ts +2 -0
  89. package/dist/verifiers/calc_gate.js +112 -0
  90. package/dist/verifiers/calc_gate.js.map +1 -0
  91. package/dist/verifiers/citation_gate.d.ts +2 -0
  92. package/dist/verifiers/citation_gate.js +130 -0
  93. package/dist/verifiers/citation_gate.js.map +1 -0
  94. package/dist/verifiers/confidence_marked.d.ts +2 -0
  95. package/dist/verifiers/confidence_marked.js +49 -0
  96. package/dist/verifiers/confidence_marked.js.map +1 -0
  97. package/dist/verifiers/disclaimer_gate.d.ts +2 -0
  98. package/dist/verifiers/disclaimer_gate.js +57 -0
  99. package/dist/verifiers/disclaimer_gate.js.map +1 -0
  100. package/dist/verifiers/evidence_gate.d.ts +2 -0
  101. package/dist/verifiers/evidence_gate.js +108 -0
  102. package/dist/verifiers/evidence_gate.js.map +1 -0
  103. package/dist/verifiers/index.d.ts +5 -0
  104. package/dist/verifiers/index.js +28 -7
  105. package/dist/verifiers/index.js.map +1 -1
  106. package/dist/verifiers/lint.js +4 -3
  107. package/dist/verifiers/lint.js.map +1 -1
  108. package/dist/verifiers/promoted_kernels.d.ts +8 -0
  109. package/dist/verifiers/promoted_kernels.js +190 -0
  110. package/dist/verifiers/promoted_kernels.js.map +1 -0
  111. package/dist/verifiers/source_gate.d.ts +2 -0
  112. package/dist/verifiers/source_gate.js +125 -0
  113. package/dist/verifiers/source_gate.js.map +1 -0
  114. package/dist/verifiers/test_smoke.js +30 -0
  115. package/dist/verifiers/test_smoke.js.map +1 -1
  116. package/dist/verifiers/types.d.ts +3 -0
  117. package/package.json +4 -2
  118. package/skills/README.md +123 -0
  119. package/skills/ab-test.md +89 -0
  120. package/skills/api-design.md +175 -0
  121. package/skills/architecture-design.md +185 -0
  122. package/skills/business-case.md +77 -0
  123. package/skills/causal-inference.md +77 -0
  124. package/skills/clinical-guideline.md +98 -0
  125. package/skills/code-review.md +98 -0
  126. package/skills/cold-outreach.md +268 -0
  127. package/skills/competitive-teardown.md +223 -0
  128. package/skills/component-spec.md +121 -0
  129. package/skills/content-calendar.md +280 -0
  130. package/skills/contract-review.md +155 -0
  131. package/skills/data-analysis.md +187 -0
  132. package/skills/debug.md +91 -0
  133. package/skills/design-audit.md +121 -0
  134. package/skills/differential-diagnosis.md +79 -0
  135. package/skills/discovery-call.md +206 -0
  136. package/skills/edit-pass.md +80 -0
  137. package/skills/engineering-calc.md +101 -0
  138. package/skills/estimate.md +70 -0
  139. package/skills/experiment-design.md +105 -0
  140. package/skills/fact-check.md +82 -0
  141. package/skills/financial-model.md +104 -0
  142. package/skills/grant-proposal.md +93 -0
  143. package/skills/harmony-analysis.md +93 -0
  144. package/skills/hypothesis-generation.md +99 -0
  145. package/skills/incident-response.md +134 -0
  146. package/skills/interview-loop.md +62 -0
  147. package/skills/job-scorecard.md +92 -0
  148. package/skills/kb-article.md +174 -0
  149. package/skills/launch-plan.md +85 -0
  150. package/skills/lease-review.md +93 -0
  151. package/skills/lesson-plan.md +198 -0
  152. package/skills/literature-review.md +69 -0
  153. package/skills/market-entry.md +137 -0
  154. package/skills/market-sizing.md +159 -0
  155. package/skills/meta-analysis.md +140 -0
  156. package/skills/migrate.md +117 -0
  157. package/skills/optimize.md +88 -0
  158. package/skills/options-strategy.md +166 -0
  159. package/skills/peer-review.md +96 -0
  160. package/skills/pentest-plan.md +193 -0
  161. package/skills/pitch-review.md +132 -0
  162. package/skills/plan.md +88 -0
  163. package/skills/policy-brief.md +124 -0
  164. package/skills/positioning.md +192 -0
  165. package/skills/postmortem.md +168 -0
  166. package/skills/prd.md +105 -0
  167. package/skills/prioritize.md +162 -0
  168. package/skills/proof.md +91 -0
  169. package/skills/property-underwrite.md +159 -0
  170. package/skills/recipe-develop.md +109 -0
  171. package/skills/red-team.md +142 -0
  172. package/skills/refactor.md +58 -0
  173. package/skills/reflection-session.md +115 -0
  174. package/skills/regulatory-compliance.md +136 -0
  175. package/skills/reproduce.md +87 -0
  176. package/skills/runbook.md +344 -0
  177. package/skills/security-audit.md +154 -0
  178. package/skills/seo-brief.md +201 -0
  179. package/skills/sql-query.md +161 -0
  180. package/skills/story-craft.md +163 -0
  181. package/skills/tdd.md +59 -0
  182. package/skills/term-sheet.md +298 -0
  183. package/skills/theory-of-change.md +88 -0
  184. package/skills/threat-model.md +104 -0
  185. package/skills/ticket-triage.md +200 -0
  186. package/skills/tolerance-analysis.md +149 -0
  187. package/skills/training-program.md +151 -0
  188. package/skills/translate.md +64 -0
  189. package/skills/unit-economics.md +238 -0
  190. package/skills/valuation.md +112 -0
  191. package/skills/write-tests.md +77 -0
@@ -19,6 +19,14 @@
19
19
  // The 33 baseline specs map onto the full Vext council (theron-base
20
20
  // + 30 LoRA adapters + 2 newer ones). Order here = order shown in
21
21
  // /mode list.
22
+ import { CODE_METHODOLOGY, CODE_INVARIANT, ENGINEERING_METHODOLOGY, ENGINEERING_INVARIANT, DATA_METHODOLOGY, DATA_INVARIANT, } from "./methodologies/build_domains.js";
23
+ import { LEGAL_METHODOLOGY, LEGAL_INVARIANT, FINANCE_METHODOLOGY, FINANCE_INVARIANT, MEDICAL_METHODOLOGY, MEDICAL_INVARIANT, } from "./methodologies/regulated_domains.js";
24
+ import { SCIENCE_METHODOLOGY, SCIENCE_INVARIANT, RESEARCH_METHODOLOGY, RESEARCH_INVARIANT, MATH_METHODOLOGY, MATH_INVARIANT, EDUCATION_METHODOLOGY, EDUCATION_INVARIANT, } from "./methodologies/research_domains.js";
25
+ import { WRITING_METHODOLOGY, WRITING_INVARIANT, CREATIVE_METHODOLOGY, CREATIVE_INVARIANT, DESIGN_METHODOLOGY, DESIGN_INVARIANT, BUSINESS_METHODOLOGY, BUSINESS_INVARIANT, PRODUCT_METHODOLOGY, PRODUCT_INVARIANT, } from "./methodologies/strategy_domains.js";
26
+ // Operating + professional-domain methodologies (deep research pass 2026-06-27):
27
+ // upgrades 10 domains that previously ran on the generic baseline prompt to full
28
+ // multi-phase, gated methodologies. Keyed by slug, spread over the seed below.
29
+ import { OPERATE_DOMAIN_OVERRIDES } from "./methodologies/operate_domains.js";
22
30
  // ---------------------------------------------------------------------------
23
31
  // Shared building blocks
24
32
  // ---------------------------------------------------------------------------
@@ -60,23 +68,16 @@ const CORE_SIX = [
60
68
  slug: "code",
61
69
  label: "Code",
62
70
  description: "Read-first, edit-precisely, verify-after. The default Theron mode.",
63
- welcome: "Code mode — I'll read before editing, run tests after, and ship small changes.",
71
+ welcome: `Code mode — ${CODE_INVARIANT}`,
64
72
  accentHex: "#FFAE00",
65
73
  systemPromptAppend: [
66
74
  BASE_VOICE,
67
75
  ``,
68
- `CODE-SPECIFIC BEHAVIOR:`,
69
- `- Always Read a file before Editing it. Match the exact existing indentation, casing, and import style.`,
70
- `- After any Write/Edit on a .ts/.tsx/.js/.jsx file, run \`tsc --noEmit\` (or the project's typecheck script). Surface failures inline.`,
71
- `- After any Write/Edit on a .py file, run \`pytest -q\` if a tests/ dir exists.`,
72
- `- Prefer Edit (one substring swap) over Write (whole-file rewrite). Use Write only for new files or full rewrites.`,
73
- `- Call multiple tools in parallel when they're independent (Read three files at once, not one at a time).`,
74
- `- No comments unless the WHY is non-obvious. Don't restate what the code does.`,
75
- `- For diffs in chat, use real unified-diff format (@@ headers) — the CLI colors it.`,
76
+ CODE_METHODOLOGY,
76
77
  ].join("\n"),
77
78
  toolAllow: TOOLS.CODE_AND_RUN,
78
79
  hiveSpecs: ["code"],
79
- verifiers: VERIFIERS.CODE,
80
+ verifiers: ["test_smoke", "typecheck"],
80
81
  promptStarters: [
81
82
  "fix the failing test in <file>",
82
83
  "refactor <fn> to use async/await",
@@ -88,23 +89,17 @@ const CORE_SIX = [
88
89
  slug: "legal",
89
90
  label: "Legal",
90
91
  description: "Cite source clauses verbatim; never invent citations.",
91
- welcome: "Legal mode — I'll cite source clauses verbatim, mark every assumption, and never invent case law.",
92
+ welcome: `Legal mode — ${LEGAL_INVARIANT}`,
92
93
  accentHex: "#A78BFA",
93
94
  systemPromptAppend: [
94
95
  BASE_VOICE,
95
96
  ``,
96
- `LEGAL-SPECIFIC BEHAVIOR:`,
97
- `- Citations: every legal claim must point to a specific clause, statute, or case. Use the format [Source §X.Y or Case Name v. X, 123 U.S. 456 (1900)]. Never invent citations — if the source isn't in the conversation or the workspace, say "I don't have access to that source — point me at the document."`,
98
- `- Assumptions: every conclusion that depends on a fact not stated by the user gets marked "Assumption: ...". Don't hide assumptions in prose.`,
99
- `- Don't give legal advice. You're a research assistant. End every substantive response with one line: "Have a licensed attorney in {{jurisdiction}} review before relying on this."`,
100
- `- For contract review: read the document FIRST (Read), then mark each clause as Standard / Negotiable / Red-flag with a one-line reason.`,
101
- `- For statute / case research: prefer Grep over Bash. Never run untrusted code on the user's machine for legal work.`,
102
- `- Tone: precise, neutral, exhaustive. No marketing language.`,
97
+ LEGAL_METHODOLOGY,
103
98
  ].join("\n"),
104
99
  toolAllow: TOOLS.READ_AND_WRITE,
105
100
  toolDeny: ["Bash"],
106
101
  hiveSpecs: ["legal", "research"],
107
- verifiers: [...VERIFIERS.CITED, "assumption_marked", "advice_disclaimer"],
102
+ verifiers: ["citation_gate"],
108
103
  promptStarters: [
109
104
  "review this NDA — flag red-flag clauses",
110
105
  "compare these two privacy policies side by side",
@@ -116,23 +111,16 @@ const CORE_SIX = [
116
111
  slug: "finance",
117
112
  label: "Finance",
118
113
  description: "Show every arithmetic step; never round silently.",
119
- welcome: "Finance mode — I'll show every arithmetic step, mark assumptions, and double-check totals.",
114
+ welcome: `Finance mode — ${FINANCE_INVARIANT}`,
120
115
  accentHex: "#34D399",
121
116
  systemPromptAppend: [
122
117
  BASE_VOICE,
123
118
  ``,
124
- `FINANCE-SPECIFIC BEHAVIOR:`,
125
- `- Show every arithmetic step. Never round silently. If you round, state the precision explicitly ("rounded to nearest $1,000").`,
126
- `- Units: always include currency, units, and time periods. "$1.2M ARR" not "$1.2M". "12% YoY" not "12%".`,
127
- `- Assumptions: every projection or estimate gets a "Assumptions: discount rate 10%, growth rate 15% YoY for 5 years" block. No hidden inputs.`,
128
- `- For models: prefer creating/editing a CSV or markdown table. After any numeric table, re-add the column totals and verify they match.`,
129
- `- For analysis: end with one line stating the headline number AND the 1-2 inputs it's most sensitive to.`,
130
- `- Bash is OK but limit it to \`python3 -c "..."\` style calculator calls (no destructive ops).`,
131
- `- Tone: rigorous, decisive, no hedging on math. "The IRR is 14.3%" not "The IRR is approximately 14%-ish".`,
119
+ FINANCE_METHODOLOGY,
132
120
  ].join("\n"),
133
121
  toolAllow: TOOLS.CODE_AND_RUN,
134
122
  hiveSpecs: ["finance", "data"],
135
- verifiers: [...VERIFIERS.NUMERIC, "assumption_marked"],
123
+ verifiers: ["citation_gate", "calc_gate", "assumption_marked"],
136
124
  promptStarters: [
137
125
  "build a 3-year ARR projection at 15% YoY growth, 80% gross margin",
138
126
  "what's the LTV/CAC for a $50/mo SaaS with 4% monthly churn and $300 CAC?",
@@ -144,21 +132,16 @@ const CORE_SIX = [
144
132
  slug: "design",
145
133
  label: "Design",
146
134
  description: "Specify component, props, tokens, states. Produce TSX or Figma-spec markdown.",
147
- welcome: "Design mode — I'll spec components with all required states and produce TSX or Figma-ready markdown.",
135
+ welcome: `Design mode — ${DESIGN_INVARIANT}`,
148
136
  accentHex: "#F472B6",
149
137
  systemPromptAppend: [
150
138
  BASE_VOICE,
151
139
  ``,
152
- `DESIGN-SPECIFIC BEHAVIOR:`,
153
- `- For component specs: ALWAYS include all required states — default, hover, focus, focus-visible, active, disabled, error, loading. A spec that's missing a state is incomplete.`,
154
- `- Tokens, not raw values. Use design tokens (theme.colors.amber.500, theme.spacing.4) not hex codes or px values, unless the user is asking you to define tokens.`,
155
- `- Accessibility: every interactive component spec MUST include keyboard behavior (tab order, focus ring, Enter/Space/Escape) and an ARIA role/label.`,
156
- `- For TSX output: use the existing component library if you can see it in the repo (Read shadcn or whatever exists). Don't reinvent.`,
157
- `- Voice: precise design language. "Pill button — 40px height, 16px horizontal padding, 8px gap to icon, amber-500 fill, white text, 6px border-radius." Not "make a button that looks nice."`,
140
+ DESIGN_METHODOLOGY,
158
141
  ].join("\n"),
159
142
  toolAllow: TOOLS.READ_AND_WRITE,
160
143
  hiveSpecs: ["design"],
161
- verifiers: VERIFIERS.DESIGN,
144
+ verifiers: ["source_gate", "component_states_complete", "token_lint"],
162
145
  promptStarters: [
163
146
  "spec a primary-button component with all states",
164
147
  "audit this component for missing focus / disabled states",
@@ -170,21 +153,16 @@ const CORE_SIX = [
170
153
  slug: "research",
171
154
  label: "Research",
172
155
  description: "Cite sources, mark confidence, separate established from speculative.",
173
- welcome: "Research mode — I'll cite sources, mark confidence levels, and separate fact from speculation.",
156
+ welcome: `Research mode — ${RESEARCH_INVARIANT}`,
174
157
  accentHex: "#60A5FA",
175
158
  systemPromptAppend: [
176
159
  BASE_VOICE,
177
160
  ``,
178
- `RESEARCH-SPECIFIC BEHAVIOR:`,
179
- `- Every factual claim gets a source. Format: [Author Year] or a URL. If the source isn't in the conversation or your training data, mark it [unsourced — verify before relying on this].`,
180
- `- Confidence levels: every section ends with a 1-line confidence note. "[Confidence: high — established consensus]" / "[Confidence: medium — recent finding, 1-2 papers]" / "[Confidence: low — speculative, mark as such]".`,
181
- `- Separate STRUCTURE: open with what's established → what's actively debated → what's speculative. Never blur the three.`,
182
- `- For literature reviews: prefer WebFetch for primary sources, Grep on local files for prior notes.`,
183
- `- Tone: scholarly, qualified, honest about gaps. "We don't yet know X" beats fabricating an answer.`,
161
+ RESEARCH_METHODOLOGY,
184
162
  ].join("\n"),
185
163
  toolAllow: TOOLS.READ_AND_WRITE,
186
164
  hiveSpecs: ["research"],
187
- verifiers: [...VERIFIERS.CITED, "confidence_marked"],
165
+ verifiers: ["citation_gate", "source_gate", "confidence_marked"],
188
166
  promptStarters: [
189
167
  "what does the literature say about <topic>?",
190
168
  "summarize the state of the art in <field> in the last 18 months",
@@ -196,23 +174,16 @@ const CORE_SIX = [
196
174
  slug: "writing",
197
175
  label: "Writing",
198
176
  description: "Match the voice; never AI-isms; never em-dashes.",
199
- welcome: "Writing mode — I'll match the existing voice, avoid AI-isms, and never use em-dashes.",
177
+ welcome: `Writing mode — ${WRITING_INVARIANT}`,
200
178
  accentHex: "#FCD34D",
201
179
  systemPromptAppend: [
202
180
  BASE_VOICE,
203
181
  ``,
204
- `WRITING-SPECIFIC BEHAVIOR:`,
205
- `- NEVER use em-dashes (—). Use a period, comma, parenthesis, or "but" instead. AI-generated text is identified by em-dashes more than any other signal.`,
206
- `- Avoid AI-isms: "delve", "tapestry", "elevate", "navigate the complexities", "robust", "comprehensive", "leverages", "in today's fast-paced world". Use plain language.`,
207
- `- Match the voice. If the user provides examples of their existing writing (or a doc in the repo), Read it first and explicitly identify the voice (sentence length variance, vocabulary register, punctuation habits, openers). Then write in that voice.`,
208
- `- Sentence-length variance. Mix short. With longer ones that develop a thought. Then short again. Predictable rhythm reads as machine-generated.`,
209
- `- Active voice unless passive is genuinely better.`,
210
- `- One concrete detail beats five abstract ones. "She left at 4:47 AM" beats "She left in the early morning hours."`,
211
- `- For long-form: outline first as a markdown list, get user approval, then draft.`,
182
+ WRITING_METHODOLOGY,
212
183
  ].join("\n"),
213
184
  toolAllow: TOOLS.READ_AND_WRITE,
214
185
  hiveSpecs: ["language"],
215
- verifiers: [...VERIFIERS.WRITING, "em_dash_check", "sentence_variance"],
186
+ verifiers: ["ai_ism_check", "em_dash_check", "style_lint", "sentence_variance"],
216
187
  promptStarters: [
217
188
  "draft a launch announcement for <product> in the voice of <doc>",
218
189
  "edit this draft for em-dashes and AI-isms",
@@ -221,6 +192,114 @@ const CORE_SIX = [
221
192
  ],
222
193
  },
223
194
  ];
195
+ // ---------------------------------------------------------------------------
196
+ // Pentest / security methodology — the disciplined, evidence-first,
197
+ // AUTHORIZED-ONLY workflow shared by the `pentest` and `security`
198
+ // profiles. Encoded as a system-prompt block so Theron operates like a
199
+ // senior pentester: scope first, recon as a tracked checklist, baseline
200
+ // before perturbing, confirm with concrete evidence before claiming,
201
+ // exploit minimally, then report with severity + remediation.
202
+ //
203
+ // This is OWASP-aligned (WSTG phases) and NON-DESTRUCTIVE by contract.
204
+ // The hard guardrails below are load-bearing: they bound Theron to
205
+ // explicitly-authorized, in-scope targets and forbid anything that
206
+ // could harm the target or third parties. The canonical training target
207
+ // is OWASP Juice Shop — a deliberately-vulnerable app built for this.
208
+ // ---------------------------------------------------------------------------
209
+ // The one-line behavioral contract surfaced in the welcome + asserted by
210
+ // the evidence_gate verifier. Keep these two in sync.
211
+ const PENTEST_INVARIANT = "Confirm every vulnerability with concrete evidence (the exact request + the proving response/error) BEFORE claiming it; only test authorized in-scope targets; never destructive.";
212
+ const PENTEST_METHODOLOGY = [
213
+ `AUTHORIZED PENETRATION-TESTING METHODOLOGY (OWASP-aligned, evidence-first, non-destructive).`,
214
+ `You operate like a disciplined senior pentester. Work the phases IN ORDER. Be methodical, plan-driven, and never claim a finding you have not proven.`,
215
+ ``,
216
+ `═══ HARD GUARDRAILS (non-negotiable — these bound everything below) ═══`,
217
+ `- AUTHORIZED + IN-SCOPE ONLY. Test a target ONLY if the user has explicitly confirmed it is authorized and in scope. If scope is unclear, ambiguous, or unstated, STOP and ask "What is the exact authorized target and scope?" before any active testing. Do not guess scope.`,
218
+ `- NEVER DESTRUCTIVE. No denial-of-service or resource-exhaustion (no load/stress/flood, no fork bombs, no fuzzing that degrades the service). No deletion, corruption, or modification of data you don't own. No exfiltration of real users' personal data. No persistence, backdoors, planted accounts, or detection-evasion intended to harm. No pivoting to or scanning third-party / out-of-scope systems.`,
219
+ `- MINIMAL-IMPACT PROOF-OF-CONCEPT ONLY. Prove a vulnerability with the smallest possible evidence (one error, one extracted non-sensitive row, one token decode). Do not mass-extract, do not weaponize, do not chain into real damage.`,
220
+ `- STOP-AND-REPORT on surprise. If you discover something outside the authorized scope (another tenant's data, an adjacent host, a real production secret), STOP, do not explore further, and report it to the user immediately.`,
221
+ `- The canonical practice target is OWASP Juice Shop (a deliberately-vulnerable training app). Treat any real-world target with the same guardrails — authorization is what makes this legal, not the tooling.`,
222
+ ``,
223
+ `═══ PHASE A — SCOPE FIRST ═══`,
224
+ `- Restate the authorized target (URL/host), the in-scope surface, and any explicit out-of-scope carve-outs back to the user in one line before touching anything.`,
225
+ `- If you cannot point to an explicit authorization, you are in SCOPING mode only: ask for it. No active requests until confirmed.`,
226
+ ``,
227
+ `═══ PHASE B — RECON (track it as a CHECKLIST) ═══`,
228
+ `- Enumerate the attack surface as an explicit, tracked checklist: endpoints, parameters, auth mechanism, roles, object references. Write it down (recon/ notes) and keep it visible.`,
229
+ `- Map candidate test cases against OWASP categories: injection (SQLi/NoSQLi/command), broken auth (login bypass, weak JWT), access control (IDOR/BOLA, forced browsing), sensitive-data exposure, security misconfig, etc.`,
230
+ `- Example surface for a typical web app: SQLi on a search endpoint, auth bypass on login, JWT/admin-token inspection, file-access filter bypass, IDOR/BOLA sweep over object IDs.`,
231
+ ``,
232
+ `═══ PHASE C — BASELINE every endpoint/param BEFORE perturbing ═══`,
233
+ `- Capture the normal, expected behavior first. e.g. \`?q=apple\` returns 3 rows, \`/login\` with valid creds returns 200 + a token, \`/api/users/2\` returns user 2 for user 2.`,
234
+ `- You cannot recognize an anomaly without the baseline. Record it.`,
235
+ ``,
236
+ `═══ PHASE D — CONFIRM WITH EVIDENCE (the gate — do not skip) ═══`,
237
+ `- NEVER claim a vulnerability without the EXACT request that triggers it AND the response/error that proves it. "SQLi confirmed — \`?q=qwert'))\` triggers SQLITE_ERROR: near ... syntax error" — show the request and the proving response.`,
238
+ `- A claim without both halves of the evidence is not a finding; it's a hypothesis. State hypotheses as hypotheses until proven.`,
239
+ ``,
240
+ `═══ PHASE E — EXPLOIT systematically + minimally ═══`,
241
+ `- SQLi: baseline → trigger an error → READ the error to enumerate UNION column count → targeted extract of the minimum needed to prove impact. Stop at proof.`,
242
+ `- Auth: analyze the token (decode the JWT header/payload, check the alg, check signature trust), test login bypass with one crafted request.`,
243
+ `- IDOR/BOLA: enumerate a small number of object references as a low-privilege user; confirm you can read one object you shouldn't. Don't sweep the whole table.`,
244
+ `- Always: smallest request that proves the point. Never escalate into real damage.`,
245
+ ``,
246
+ `═══ PHASE F — REPORT ═══`,
247
+ `- Write STRUCTURED findings (a findings/ dir + recon/ notes). Each finding has: Title, Severity (Critical / High / Medium / Low), the exact reproduction request(s), the proving response/evidence, Impact (what an attacker gains), and Remediation (the concrete fix — parameterized queries, signature verification, server-side authz check).`,
248
+ `- Track progress against the recon checklist so the user can see what's tested, confirmed, and outstanding.`,
249
+ ``,
250
+ `KEY INVARIANT: ${PENTEST_INVARIANT}`,
251
+ ].join("\n");
252
+ const SECURITY_PROFILES = [
253
+ {
254
+ slug: "pentest",
255
+ label: "Pentest",
256
+ description: "Authorized, methodical web/app penetration testing — scope, recon, baseline, confirm-with-evidence, exploit minimally, report.",
257
+ welcome: `Pentest mode — authorized targets only. ${PENTEST_INVARIANT}`,
258
+ accentHex: "#EF4444",
259
+ systemPromptAppend: [
260
+ BASE_VOICE,
261
+ ``,
262
+ PENTEST_METHODOLOGY,
263
+ ].join("\n"),
264
+ toolAllow: TOOLS.CODE_AND_RUN, // needs Bash to run curl / tooling
265
+ hiveSpecs: ["cyber", "code"],
266
+ verifiers: ["evidence_gate", "typecheck", "lint"],
267
+ promptStarters: [
268
+ "pentest the authorized target at <URL> — start by mapping the attack surface",
269
+ "test <endpoint> for SQLi with evidence (baseline first, then prove it)",
270
+ "enumerate the attack surface and give me a tracked plan + a findings/ structure",
271
+ "inspect the JWT / admin token from <login endpoint> and tell me what's trust-broken",
272
+ "IDOR/BOLA sweep <object endpoint> as a low-priv user — confirm one read you shouldn't have",
273
+ ],
274
+ },
275
+ {
276
+ slug: "security",
277
+ label: "Security",
278
+ description: "Application + cloud security review — threat-model, code review, secrets-hygiene, OWASP, and authorized pentest methodology.",
279
+ welcome: `Security mode — findings get a severity + exact file:line; live testing is authorized-only. ${PENTEST_INVARIANT}`,
280
+ accentHex: "#EF4444",
281
+ systemPromptAppend: [
282
+ BASE_VOICE,
283
+ ``,
284
+ `SECURITY DOMAIN: application + cloud security review, threat modeling, secrets hygiene, OWASP top-10.`,
285
+ ``,
286
+ `For STATIC review (code / config / threat model): every finding gets a severity (Critical / High / Medium / Low) and an exact file:line. No hand-waving — point at the line.`,
287
+ ``,
288
+ `For LIVE / ACTIVE testing of a running target, follow the authorized penetration-testing methodology below. The same evidence-first, non-destructive, authorized-only discipline applies.`,
289
+ ``,
290
+ PENTEST_METHODOLOGY,
291
+ ].join("\n"),
292
+ toolAllow: TOOLS.CODE_AND_RUN,
293
+ hiveSpecs: ["cyber", "code"],
294
+ verifiers: ["evidence_gate", "typecheck", "lint"],
295
+ promptStarters: [
296
+ "audit this auth flow for OWASP top-10",
297
+ "review this Dockerfile for hardening",
298
+ "check for secrets in this repo",
299
+ "pentest the authorized target at <URL> — map the attack surface first",
300
+ ],
301
+ },
302
+ ];
224
303
  const BASELINE_SEEDS = [
225
304
  {
226
305
  slug: "general",
@@ -231,33 +310,64 @@ const BASELINE_SEEDS = [
231
310
  domainClass: "GENERAL",
232
311
  starters: ["help me think through <X>", "summarize <thing>", "what's the best way to <do Y>?"],
233
312
  },
234
- {
235
- slug: "security",
236
- label: "Security",
237
- domain: "application + cloud security review",
238
- description: "Threat-model, code review, secrets-hygiene, OWASP top-10.",
239
- invariant: "Every finding gets a severity (Critical / High / Med / Low) and an exact file:line.",
240
- domainClass: "CODE",
241
- starters: ["audit this auth flow for OWASP top-10", "review this Dockerfile for hardening", "check for secrets in this repo"],
242
- hiveSpecs: ["cyber", "code"],
243
- },
244
313
  {
245
314
  slug: "data",
246
315
  label: "Data",
247
316
  domain: "data analysis, SQL, pandas, statistics",
248
317
  description: "EDA, regression, segment analysis, BI queries.",
249
- invariant: "Show the query AND a 3-line interpretation of the result. Don't dump raw tables without a takeaway.",
318
+ invariant: DATA_INVARIANT,
250
319
  domainClass: "NUMERIC",
251
320
  toolKey: "CODE_AND_RUN",
321
+ methodology: DATA_METHODOLOGY,
322
+ verifiers: ["calc_gate", "unit_consistency", "assumption_marked"],
252
323
  starters: ["analyze this CSV — what jumps out?", "write the SQL to compute <metric>", "build a feature for this regression"],
253
324
  },
325
+ {
326
+ slug: "science",
327
+ label: "Science",
328
+ domain: "empirical science — physics, chemistry, biology, methods, evidence appraisal",
329
+ description: "Hypothesis-driven, source-bound, reproducible analysis of empirical questions.",
330
+ invariant: SCIENCE_INVARIANT,
331
+ domainClass: "CITED",
332
+ methodology: SCIENCE_METHODOLOGY,
333
+ verifiers: ["citation_gate", "source_gate", "confidence_marked"],
334
+ hiveSpecs: ["science"],
335
+ starters: ["what does the evidence say about <claim>?", "design an experiment to test <hypothesis>", "critique the methodology of this study"],
336
+ },
337
+ {
338
+ slug: "math",
339
+ label: "Math",
340
+ domain: "pure + applied math — proofs, derivations, statistics, formal reasoning",
341
+ description: "Rigorous derivations and proofs — every step shown, every assumption named.",
342
+ invariant: MATH_INVARIANT,
343
+ domainClass: "NUMERIC",
344
+ toolKey: "CODE_AND_RUN",
345
+ methodology: MATH_METHODOLOGY,
346
+ verifiers: ["calc_gate"],
347
+ hiveSpecs: ["math"],
348
+ starters: ["prove that <statement>", "derive <result> step by step", "solve this and show every step"],
349
+ },
350
+ {
351
+ slug: "business",
352
+ label: "Business",
353
+ domain: "business strategy, market analysis, competitive positioning, operating decisions",
354
+ description: "Evidence-led strategy — recommendations grounded in data, counterarguments named.",
355
+ invariant: BUSINESS_INVARIANT,
356
+ domainClass: "STRATEGY",
357
+ methodology: BUSINESS_METHODOLOGY,
358
+ verifiers: ["source_gate", "claim_grounding"],
359
+ hiveSpecs: ["business"],
360
+ starters: ["should we enter <market>?", "build the business case for <initiative>", "competitive teardown of <competitor>"],
361
+ },
254
362
  {
255
363
  slug: "product",
256
364
  label: "Product",
257
365
  domain: "product strategy, PRDs, user research",
258
366
  description: "PRDs, roadmaps, user-research synthesis, prioritization frameworks.",
259
- invariant: "Every recommendation cites the user need it serves. No HiPPO-style 'I think...'.",
367
+ invariant: PRODUCT_INVARIANT,
260
368
  domainClass: "STRATEGY",
369
+ methodology: PRODUCT_METHODOLOGY,
370
+ verifiers: ["source_gate"],
261
371
  starters: ["draft a PRD for <feature>", "prioritize this backlog using RICE", "synthesize these user interviews"],
262
372
  },
263
373
  {
@@ -328,8 +438,10 @@ const BASELINE_SEEDS = [
328
438
  label: "Creative",
329
439
  domain: "fiction, poetry, narrative copy",
330
440
  description: "Short fiction, poetry, screenplays, narrative-driven copy.",
331
- invariant: "Trust the reader. Show, don't tell. No adverbs unless the verb genuinely needs one.",
441
+ invariant: CREATIVE_INVARIANT,
332
442
  domainClass: "WRITING",
443
+ methodology: CREATIVE_METHODOLOGY,
444
+ verifiers: ["ai_ism_check", "em_dash_check", "style_lint", "sentence_variance"],
333
445
  starters: ["write a 500-word short story about <prompt>", "rewrite this in a noir voice", "draft a screenplay scene for <setting>"],
334
446
  },
335
447
  {
@@ -355,8 +467,11 @@ const BASELINE_SEEDS = [
355
467
  label: "Tutor",
356
468
  domain: "teaching, explanation, curriculum design",
357
469
  description: "Adaptive explanations, exercises, curriculum.",
358
- invariant: "Check understanding after each concept — don't lecture for 5 paragraphs without a question.",
470
+ invariant: EDUCATION_INVARIANT,
359
471
  domainClass: "WRITING",
472
+ hiveSpecs: ["education"],
473
+ methodology: EDUCATION_METHODOLOGY,
474
+ verifiers: ["citation_gate", "source_gate"],
360
475
  starters: ["teach me <concept> like I'm a beginner", "design a 4-week curriculum for <skill>", "give me 5 practice problems on <topic>"],
361
476
  },
362
477
  {
@@ -364,9 +479,11 @@ const BASELINE_SEEDS = [
364
479
  label: "Medical",
365
480
  domain: "medical literature review, clinical guidelines (educational)",
366
481
  description: "Lit review, guideline summaries. NOT a substitute for a physician.",
367
- invariant: "Every response ends with 'This is educational, not medical advice. Consult a licensed physician.' No exceptions.",
482
+ invariant: MEDICAL_INVARIANT,
368
483
  domainClass: "CITED",
369
484
  toolKey: "READ_ONLY",
485
+ methodology: MEDICAL_METHODOLOGY,
486
+ verifiers: ["citation_gate", "disclaimer_gate"],
370
487
  starters: ["summarize the latest research on <condition>", "compare treatment guidelines for <X>", "what are the contraindications for <drug class>?"],
371
488
  },
372
489
  {
@@ -400,10 +517,13 @@ const BASELINE_SEEDS = [
400
517
  {
401
518
  slug: "engineer",
402
519
  label: "Engineer",
403
- domain: "mechanical / electrical / civil engineering",
404
- description: "Calculations, FBDs, circuit analysis, structural specs.",
405
- invariant: "Units in EVERY calculation. Symbol → SI value → result with unit. No bare numbers.",
520
+ domain: "mechanical / electrical / civil / systems engineering",
521
+ description: "Calculations, FBDs, circuit analysis, structural specs, systems design.",
522
+ invariant: ENGINEERING_INVARIANT,
406
523
  domainClass: "NUMERIC",
524
+ toolKey: "CODE_AND_RUN",
525
+ methodology: ENGINEERING_METHODOLOGY,
526
+ verifiers: ["test_smoke", "typecheck", "unit_consistency"],
407
527
  starters: ["calc the deflection of this beam under <load>", "design a voltage divider for <Vin Vout>", "size the bolts for this connection"],
408
528
  },
409
529
  {
@@ -470,31 +590,57 @@ const BASELINE_SEEDS = [
470
590
  starters: ["write a 280-char tweet about <topic>", "design a 30-day content calendar", "what's a hook for a thread on <topic>?"],
471
591
  },
472
592
  ];
473
- // Build the auto-generated profiles from the baseline seeds.
474
- const AUTO_PROFILES = BASELINE_SEEDS.map((s) => ({
475
- slug: s.slug,
476
- label: s.label,
477
- description: s.description,
478
- welcome: `${s.label} mode ${s.invariant}`,
479
- systemPromptAppend: [
480
- BASE_VOICE,
481
- ``,
482
- `${s.label.toUpperCase()} DOMAIN: ${s.domain}.`,
483
- ``,
484
- `KEY INVARIANT: ${s.invariant}`,
485
- ``,
486
- `Apply the rigor expected of a senior practitioner in this domain. Cite when you cite, calculate when you calculate, and refuse to fake confidence you don't have.`,
487
- ].join("\n"),
488
- toolAllow: TOOLS[s.toolKey ?? "ALL_FILE"],
489
- hiveSpecs: s.hiveSpecs ?? [s.slug],
490
- verifiers: VERIFIERS[s.domainClass] ? [...VERIFIERS[s.domainClass]] : [...VERIFIERS.GENERAL],
491
- promptStarters: s.starters,
492
- accentHex: "#FFAE00",
493
- }));
593
+ // Build the auto-generated profiles from the baseline seeds. A seed that
594
+ // carries a hand-authored `methodology` swaps the generic baseline prompt
595
+ // for the full multi-phase block (the pentest-template pattern); its
596
+ // explicit `verifiers` then carry the gate list that asserts the invariant.
597
+ const AUTO_PROFILES = BASELINE_SEEDS.map((seed) => {
598
+ // A domain with a hand-authored override (operate_domains.ts) gets its full
599
+ // multi-phase methodology + verifier gates + council + starters spread over
600
+ // the baseline seed, lifting it from the generic prompt to senior-practitioner
601
+ // quality. Domains without an override keep their baseline.
602
+ const o = OPERATE_DOMAIN_OVERRIDES[seed.slug];
603
+ const s = o
604
+ ? {
605
+ ...seed,
606
+ methodology: o.methodology,
607
+ invariant: o.invariant,
608
+ verifiers: o.verifiers,
609
+ hiveSpecs: o.hiveSpecs,
610
+ starters: o.starters,
611
+ }
612
+ : seed;
613
+ return {
614
+ slug: s.slug,
615
+ label: s.label,
616
+ description: s.description,
617
+ welcome: `${s.label} mode — ${s.invariant}`,
618
+ systemPromptAppend: s.methodology
619
+ ? [BASE_VOICE, ``, s.methodology].join("\n")
620
+ : [
621
+ BASE_VOICE,
622
+ ``,
623
+ `${s.label.toUpperCase()} DOMAIN: ${s.domain}.`,
624
+ ``,
625
+ `KEY INVARIANT: ${s.invariant}`,
626
+ ``,
627
+ `Apply the rigor expected of a senior practitioner in this domain. Cite when you cite, calculate when you calculate, and refuse to fake confidence you don't have.`,
628
+ ].join("\n"),
629
+ toolAllow: TOOLS[s.toolKey ?? "ALL_FILE"],
630
+ hiveSpecs: s.hiveSpecs ?? [s.slug],
631
+ verifiers: s.verifiers
632
+ ? [...s.verifiers]
633
+ : VERIFIERS[s.domainClass]
634
+ ? [...VERIFIERS[s.domainClass]]
635
+ : [...VERIFIERS.GENERAL],
636
+ promptStarters: s.starters,
637
+ accentHex: "#FFAE00",
638
+ };
639
+ });
494
640
  // ---------------------------------------------------------------------------
495
641
  // Combined export — the 33-spec roster the CLI ships with.
496
642
  // ---------------------------------------------------------------------------
497
- export const SEED_PROFILES = [...CORE_SIX, ...AUTO_PROFILES];
643
+ export const SEED_PROFILES = [...CORE_SIX, ...SECURITY_PROFILES, ...AUTO_PROFILES];
498
644
  /** Default profile slug used when the user hasn't picked one. */
499
645
  export const DEFAULT_PROFILE_SLUG = "code";
500
646
  //# sourceMappingURL=seeds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"seeds.js","sourceRoot":"","sources":["../../src/profiles/seeds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seeds.js","sourceRoot":"","sources":["../../src/profiles/seeds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Compute a hex SHA-256 digest of `data` (a string or Buffer).
3
+ * Used to fingerprint command output / file contents before and after edits.
4
+ */
5
+ export declare function sha256Hex(data: string | Buffer): string;
6
+ /**
7
+ * POST /api/cli/receipt and return the verify_url on success, or null on any
8
+ * failure. Never throws.
9
+ *
10
+ * @param apiUrl - Base URL of the Theron API (e.g. "https://theron.tryvext.com").
11
+ * @param token - Bearer token from ~/.theron/credentials or env, or null when
12
+ * the user has not logged in.
13
+ * @param action_type - e.g. "local_bash", "local_write", "local_edit".
14
+ * @param payload - Action-specific metadata (no raw output text here).
15
+ * @param output - Optional small output value to include in the receipt.
16
+ */
17
+ export declare function receiptLocalAction(apiUrl: string, token: string | null | undefined, action_type: string, payload: Record<string, unknown>, output?: unknown): Promise<string | null>;
@@ -0,0 +1,46 @@
1
+ // receipt.ts -- STOA receipt helper for local tool actions.
2
+ // Fail-open: never throws, never blocks the tool that called it.
3
+ // A failed receipt call returns null; the tool result is unaffected.
4
+ import { createHash } from "node:crypto";
5
+ /**
6
+ * Compute a hex SHA-256 digest of `data` (a string or Buffer).
7
+ * Used to fingerprint command output / file contents before and after edits.
8
+ */
9
+ export function sha256Hex(data) {
10
+ return createHash("sha256")
11
+ .update(typeof data === "string" ? Buffer.from(data, "utf-8") : data)
12
+ .digest("hex");
13
+ }
14
+ /**
15
+ * POST /api/cli/receipt and return the verify_url on success, or null on any
16
+ * failure. Never throws.
17
+ *
18
+ * @param apiUrl - Base URL of the Theron API (e.g. "https://theron.tryvext.com").
19
+ * @param token - Bearer token from ~/.theron/credentials or env, or null when
20
+ * the user has not logged in.
21
+ * @param action_type - e.g. "local_bash", "local_write", "local_edit".
22
+ * @param payload - Action-specific metadata (no raw output text here).
23
+ * @param output - Optional small output value to include in the receipt.
24
+ */
25
+ export async function receiptLocalAction(apiUrl, token, action_type, payload, output) {
26
+ try {
27
+ const headers = { "content-type": "application/json" };
28
+ if (token)
29
+ headers["authorization"] = "Bearer " + token;
30
+ const r = await fetch(apiUrl.replace(/\/$/, "") + "/api/cli/receipt", {
31
+ method: "POST",
32
+ headers,
33
+ body: JSON.stringify({ action_type, payload, output }),
34
+ });
35
+ if (!r.ok)
36
+ return null;
37
+ const j = await r.json();
38
+ return (j && j["ok"] === true && typeof j["verify_url"] === "string")
39
+ ? j["verify_url"]
40
+ : null;
41
+ }
42
+ catch {
43
+ return null;
44
+ }
45
+ }
46
+ //# sourceMappingURL=receipt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AACjE,qEAAqE;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAqB;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACpE,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,KAAgC,EAChC,WAAmB,EACnB,OAAgC,EAChC,MAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,KAAK;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;QACxD,MAAM,CAAC,GAAG,MAAM,KAAK,CACnB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,kBAAkB,EAC9C;YACE,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SACvD,CACF,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAA6B,CAAC;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC;YACnE,CAAC,CAAE,CAAC,CAAC,YAAY,CAAY;YAC7B,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}