opencode-vibe-spec-plugin 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +264 -0
  2. package/dist/agents/ask.d.ts +4 -0
  3. package/dist/agents/ask.d.ts.map +1 -0
  4. package/dist/agents/quality-gate.d.ts +55 -0
  5. package/dist/agents/quality-gate.d.ts.map +1 -0
  6. package/dist/agents/spec.d.ts +4 -0
  7. package/dist/agents/spec.d.ts.map +1 -0
  8. package/dist/agents/vibe.d.ts +4 -0
  9. package/dist/agents/vibe.d.ts.map +1 -0
  10. package/dist/config/agent-configs.d.ts +5 -0
  11. package/dist/config/agent-configs.d.ts.map +1 -0
  12. package/dist/config/constants.d.ts +136 -0
  13. package/dist/config/constants.d.ts.map +1 -0
  14. package/dist/config/types.d.ts +1799 -0
  15. package/dist/config/types.d.ts.map +1 -0
  16. package/dist/hooks/message-completed.d.ts +10 -0
  17. package/dist/hooks/message-completed.d.ts.map +1 -0
  18. package/dist/hooks/message-updated.d.ts +2 -0
  19. package/dist/hooks/message-updated.d.ts.map +1 -0
  20. package/dist/hooks/session-end.d.ts +9 -0
  21. package/dist/hooks/session-end.d.ts.map +1 -0
  22. package/dist/hooks/session-start.d.ts +9 -0
  23. package/dist/hooks/session-start.d.ts.map +1 -0
  24. package/dist/hooks/spec-lifecycle.d.ts +17 -0
  25. package/dist/hooks/spec-lifecycle.d.ts.map +1 -0
  26. package/dist/hooks/stop-requested.d.ts +9 -0
  27. package/dist/hooks/stop-requested.d.ts.map +1 -0
  28. package/dist/hooks/tool-execute-before.d.ts +8 -0
  29. package/dist/hooks/tool-execute-before.d.ts.map +1 -0
  30. package/dist/index.d.ts +4 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +2690 -0
  33. package/dist/quality/code-analyzer.d.ts +17 -0
  34. package/dist/quality/code-analyzer.d.ts.map +1 -0
  35. package/dist/quality/engine.d.ts +8 -0
  36. package/dist/quality/engine.d.ts.map +1 -0
  37. package/dist/quality/gate-controller.d.ts +52 -0
  38. package/dist/quality/gate-controller.d.ts.map +1 -0
  39. package/dist/quality/negative-indicators.d.ts +10 -0
  40. package/dist/quality/negative-indicators.d.ts.map +1 -0
  41. package/dist/quality/security-scanner.d.ts +12 -0
  42. package/dist/quality/security-scanner.d.ts.map +1 -0
  43. package/dist/spec/ears-parser.d.ts +96 -0
  44. package/dist/spec/ears-parser.d.ts.map +1 -0
  45. package/dist/spec/index.d.ts +17 -0
  46. package/dist/spec/index.d.ts.map +1 -0
  47. package/dist/spec/phase-gate.d.ts +45 -0
  48. package/dist/spec/phase-gate.d.ts.map +1 -0
  49. package/dist/spec/spec-manager.d.ts +111 -0
  50. package/dist/spec/spec-manager.d.ts.map +1 -0
  51. package/dist/spec/spec-templates.d.ts +35 -0
  52. package/dist/spec/spec-templates.d.ts.map +1 -0
  53. package/dist/spec/steering-integration.d.ts +42 -0
  54. package/dist/spec/steering-integration.d.ts.map +1 -0
  55. package/dist/spec/task-traceability.d.ts +49 -0
  56. package/dist/spec/task-traceability.d.ts.map +1 -0
  57. package/dist/store/session-store.d.ts +12 -0
  58. package/dist/store/session-store.d.ts.map +1 -0
  59. package/dist/subagents/shared/architect.d.ts +4 -0
  60. package/dist/subagents/shared/architect.d.ts.map +1 -0
  61. package/dist/subagents/shared/librarian.d.ts +4 -0
  62. package/dist/subagents/shared/librarian.d.ts.map +1 -0
  63. package/dist/subagents/shared/oracle.d.ts +4 -0
  64. package/dist/subagents/shared/oracle.d.ts.map +1 -0
  65. package/dist/subagents/shared/quality-analyzer.d.ts +4 -0
  66. package/dist/subagents/shared/quality-analyzer.d.ts.map +1 -0
  67. package/dist/subagents/shared/quality-metrics.d.ts +4 -0
  68. package/dist/subagents/shared/quality-metrics.d.ts.map +1 -0
  69. package/dist/subagents/shared/quality-reporter.d.ts +4 -0
  70. package/dist/subagents/shared/quality-reporter.d.ts.map +1 -0
  71. package/dist/subagents/shared/quality-reviewer.d.ts +4 -0
  72. package/dist/subagents/shared/quality-reviewer.d.ts.map +1 -0
  73. package/dist/subagents/spec/planner.d.ts +4 -0
  74. package/dist/subagents/spec/planner.d.ts.map +1 -0
  75. package/dist/subagents/spec/reviewer.d.ts +4 -0
  76. package/dist/subagents/spec/reviewer.d.ts.map +1 -0
  77. package/dist/subagents/vibe/explorer.d.ts +4 -0
  78. package/dist/subagents/vibe/explorer.d.ts.map +1 -0
  79. package/dist/subagents/vibe/inspirer.d.ts +4 -0
  80. package/dist/subagents/vibe/inspirer.d.ts.map +1 -0
  81. package/dist/utils/modeSwitcher.d.ts +8 -0
  82. package/dist/utils/modeSwitcher.d.ts.map +1 -0
  83. package/dist/utils/modelResolver.d.ts +9 -0
  84. package/dist/utils/modelResolver.d.ts.map +1 -0
  85. package/dist/utils/modelRouter.d.ts +6 -0
  86. package/dist/utils/modelRouter.d.ts.map +1 -0
  87. package/dist/utils/steeringLoader.d.ts +7 -0
  88. package/dist/utils/steeringLoader.d.ts.map +1 -0
  89. package/dist/utils/todoParser.d.ts +13 -0
  90. package/dist/utils/todoParser.d.ts.map +1 -0
  91. package/docs/spec.md +147 -0
  92. package/package.json +67 -0
package/README.md ADDED
@@ -0,0 +1,264 @@
1
+ # OpenCode Vibe-Spec Plugin
2
+
3
+ [![Version](https://img.shields.io/badge/version-1.0.4-blue.svg)](https://github.com/blank-1/opencode-vibe-spec-plugin)
4
+ [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
5
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org)
6
+
7
+ Multi-agent plugin for OpenCode with **3 primary agent modes**: **Vibe** (rapid prototyping), **Spec** (spec-driven development), and **Ask** (research assistant) — backed by 11 specialized subagents and an integrated quality gate workflow.
8
+
9
+ ## Quick Start
10
+
11
+ Add to your OpenCode config (`~/.config/opencode/opencode.json`):
12
+
13
+ ```json
14
+ {
15
+ "$schema": "https://opencode.ai/config.json",
16
+ "plugin": [
17
+ "opencode-vibe-spec-plugin"
18
+ ]
19
+ }
20
+ ```
21
+
22
+ OpenCode will automatically install the plugin from npm on first launch.
23
+
24
+ ## Features
25
+
26
+ | Mode | Description | Key Capability |
27
+ |------|-------------|----------------|
28
+ | **Vibe** | Rapid prototyping agent | Creative exploration + quick implementation |
29
+ | **Spec** | Spec-driven development agent | EARS requirements → phase-gated workflow → implementation |
30
+ | **Ask** | Multi-function research assistant | Codebase analysis + context enhancement |
31
+
32
+ ### Spec-Driven Development (New)
33
+
34
+ The Spec agent now provides enterprise-grade spec management:
35
+
36
+ - **EARS/GEARS Notation**: Structured requirements using `WHEN [trigger] THE SYSTEM SHALL [response]` format
37
+ - **Phase-Gated Workflow**: `requirements → design → tasks → implementation` with validation at each gate
38
+ - **Task Traceability**: Requirements-to-tasks linkage with full traceability matrix
39
+ - **Persistent Spec Storage**: Per-feature specs organized under `.opencode/specs/`
40
+ - **Steering Integration**: Auto-loads `product.md`, `tech.md`, `structure.md` context
41
+ - **Spec Lifecycle Hooks**: `onSpecCreated`, `onPhaseAdvance`, `onSpecCompleted`
42
+
43
+ ### Quality Gate (Workflow Mechanism)
44
+
45
+ Quality gates are integrated as **automatic workflow validation**, not a standalone agent:
46
+
47
+ - **Phase Gates**: Automatic quality validation at each spec phase transition
48
+ - **Requirements Gate**: Min 3 EARS requirements + acceptance criteria
49
+ - **Design Gate**: Architecture + technology stack validation
50
+ - **Tasks Gate**: Task count + requirement traceability
51
+
52
+ ### Additional Features
53
+
54
+ - **Tab Key Switching**: Seamless mode switching with context preservation
55
+ - **11 Specialized Subagents**: Purpose-built for different tasks
56
+ - **Smart Model Routing**: Automatic model selection based on task type
57
+ - **Steering Documents**: Project conventions automatically followed
58
+ - **Todo Enforcement**: Mandatory/advisory task completion strategies
59
+
60
+ ## Agent Modes
61
+
62
+ ### Vibe Mode
63
+ Press `Tab` → Select Vibe → Describe your goal → Get executable prototype
64
+
65
+ **Styles**: Rapid Prototype | Inspiration Capture | Exploratory Coding
66
+
67
+ ### Spec Mode
68
+ Press `Tab` → Select Spec → Describe requirements → Get structured specification
69
+
70
+ **Formats**: EARS/GEARS Notation | Kiro-Style | Phase-Gated Workflow
71
+
72
+ **Workflow**:
73
+ ```
74
+ requirements → [Quality Gate] → design → [Quality Gate] → tasks → [Quality Gate] → implementation
75
+ ```
76
+
77
+ ### Ask Mode
78
+ Press `Tab` → Select Ask → Ask questions → Get research-backed answers
79
+
80
+ **Capabilities**: Code Research | Context Enhancement | Requirements Clarification
81
+
82
+ ## Subagents
83
+
84
+ ### Shared (7)
85
+ - **Librarian**: Documentation research specialist
86
+ - **Oracle**: Code analysis specialist
87
+ - **Architect**: System design specialist
88
+ - **QualityAnalyzer**: Real-time quality analysis
89
+ - **QualityReviewer**: Quality validation
90
+ - **QualityMetrics**: Metrics collection
91
+ - **QualityReporter**: Report generation
92
+
93
+ ### Vibe (2)
94
+ - **Inspirer**: Creativity and ideation
95
+ - **Explorer**: Feasibility and risk assessment
96
+
97
+ ### Spec (2)
98
+ - **Planner**: Requirements analysis
99
+ - **Reviewer**: Specification validation
100
+
101
+ ## Architecture Patterns
102
+
103
+ This plugin implements industry-leading agent architecture patterns:
104
+
105
+ | Pattern | Use Case | Benefit |
106
+ |---------|----------|---------|
107
+ | **REWOO** | Ask Agent | 5x token efficiency vs ReAct |
108
+ | **Hierarchical** | Spec Agent | Structured delegation |
109
+ | **Plan-and-Solve** | Spec Agent | Sequential task execution |
110
+ | **Reflector** | Vibe Agent | Self-improving loops |
111
+
112
+ ## Configuration
113
+
114
+ ### Model Configuration
115
+
116
+ ```json
117
+ {
118
+ "agent": {
119
+ "vibe": { "model": "zhipu/glm-4-flash" },
120
+ "spec": { "model": "zhipu/glm-5.2" },
121
+ "ask": { "model": "zhipu/glm-4-flash" }
122
+ }
123
+ }
124
+ ```
125
+
126
+ ### Environment Variables
127
+
128
+ ```bash
129
+ export VIBE_SPEC_MODEL_VIBE="zhipu/glm-4-flash"
130
+ export VIBE_SPEC_MODEL_SPEC="zhipu/glm-5.2"
131
+ export VIBE_SPEC_MODEL_ASK="zhipu/glm-4-flash"
132
+ ```
133
+
134
+ ### Steering Documents
135
+
136
+ Create `.opencode/steering.md` in your project root to define project conventions.
137
+ For spec-driven development, place guidance files in `steering/`:
138
+
139
+ ```
140
+ steering/
141
+ product.md # Business context and goals
142
+ tech.md # Technology stack and constraints
143
+ structure.md # File organization patterns
144
+ ```
145
+
146
+ ### Spec Storage
147
+
148
+ Specs are persisted under `.opencode/specs/`:
149
+
150
+ ```
151
+ .opencode/
152
+ specs/
153
+ user-authentication/
154
+ requirements.md # EARS-formatted requirements
155
+ design.md # Technical design document
156
+ tasks.md # Implementation tasks with traceability
157
+ metadata.json # Spec metadata (phase, version, etc.)
158
+ ```
159
+
160
+ ## Quality Assessment
161
+
162
+ ### Quality Dimensions
163
+
164
+ | Agent | Dimensions |
165
+ |-------|------------|
166
+ | **Vibe** | Code Readability, Technical Feasibility, Innovation, Completeness |
167
+ | **Spec** | EARS Compliance, Structure, Executability, Traceability, Completeness |
168
+ | **Ask** | Accuracy, Completeness, Relevance, Actionability |
169
+
170
+ ### Phase Gate Validation
171
+
172
+ | Transition | Requirements |
173
+ |------------|-------------|
174
+ | requirements → design | Min 3 EARS requirements + acceptance criteria |
175
+ | design → tasks | Architecture diagram + technology stack |
176
+ | tasks → implementation | Min 1 task + requirement traceability |
177
+
178
+ ### Gate Decisions
179
+
180
+ - **PROMOTE** (Score ≥ 8/10): Output ready for use
181
+ - **HOLD** (Score 6-7/10): Needs improvements
182
+ - **ROLLBACK** (Score < 6/10): Requires significant rework
183
+
184
+ ## Hooks
185
+
186
+ | Hook | Purpose |
187
+ |------|---------|
188
+ | `tool.execute.before` | Pre-execution tool validation |
189
+ | `message.updated` | Incremental message processing |
190
+ | `message.completed` | Quality assessment triggers |
191
+ | `stop.requested` | Graceful shutdown handling |
192
+ | `session.start` | Session initialization |
193
+ | `session.end` | Session cleanup and persistence |
194
+ | `spec.created` | Spec file initialization |
195
+ | `spec.phase-advance` | Phase gate validation |
196
+ | `spec.completed` | Implementation plan generation |
197
+
198
+ ## Development
199
+
200
+ > **Full specification**: See [`docs/spec.md`](docs/spec.md) for system architecture, core features, and success criteria.
201
+ > **Sample steering file**: See [`examples/steering/default.md`](examples/steering/default.md) as a template for your project conventions.
202
+
203
+ ```bash
204
+ # Install dependencies
205
+ npm install
206
+
207
+ # Build the plugin
208
+ npm run build
209
+
210
+ # Run tests
211
+ npm test
212
+
213
+ # Type check
214
+ npm run typecheck
215
+ ```
216
+
217
+ ### From Source (Development)
218
+
219
+ 1. Clone the repository:
220
+ ```bash
221
+ git clone https://github.com/blank-1/opencode-vibe-spec-plugin.git
222
+ cd opencode-vibe-spec-plugin
223
+ ```
224
+
225
+ 2. Install and build:
226
+ ```bash
227
+ npm install
228
+ npm run build
229
+ ```
230
+
231
+ 3. Add to OpenCode config using local path:
232
+ ```json
233
+ {
234
+ "plugin": [
235
+ "file:///absolute/path/to/opencode-vibe-spec-plugin/dist/index.js"
236
+ ]
237
+ }
238
+ ```
239
+
240
+ ## Testing
241
+
242
+ ```bash
243
+ # Run all tests (21 files, 283 tests)
244
+ npm test
245
+
246
+ # Run specific test suite
247
+ npm test -- tests/spec/
248
+ npm test -- tests/real-env/
249
+
250
+ # Run with coverage
251
+ npm test -- --coverage
252
+ ```
253
+
254
+ ## Contributing
255
+
256
+ 1. Fork the repository
257
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
258
+ 3. Commit changes (`git commit -m 'feat: add amazing feature'`)
259
+ 4. Push to branch (`git push origin feature/amazing-feature`)
260
+ 5. Open a Pull Request
261
+
262
+ ## License
263
+
264
+ MIT License - see [LICENSE](LICENSE) for details.
@@ -0,0 +1,4 @@
1
+ import type { AgentConfig } from '../config/types';
2
+ export declare const askAgentConfig: AgentConfig;
3
+ export declare const askAgentPrompt = "You are ASK - a multi-function research assistant specializing in codebase understanding, context enhancement, and requirements clarification.\n\n## CORE CAPABILITIES\n\n### 1. Code Research\n- Answer questions about codebase architecture\n- Explain how functions/modules work\n- Find documentation and usage examples\n- Analyze dependencies and relationships\n\n### 2. Architecture Pattern Analysis\n- Analyze coding workflows using REWOO patterns\n- Identify optimal architecture for different tasks\n- Map dependencies and system interrelationships\n- Detect technical constraints and opportunities\n\n### 3. Context Enhancement\n- Gather relevant context for Vibe agent (inspiration, feasibility)\n- Gather relevant context for Spec agent (requirements, architecture)\n- Provide background information for implementation decisions\n\n### 4. Requirements Clarification\n- Help clarify ambiguous user intent with structure\n- Ask targeted questions to understand requirements\n- Generate structured requirements from dialogue\n\n## WORKFLOW\n\n### Step 1: REWOO: Intelligence Planning\nBased on the user's query, analyze using REWOO pattern:\n\n**Gather (W)** - Collect necessary information:\n- If task involves investigation/exploration: use librarian, oracle, architect\n- If task requires context: use librarian, oracle, explorer\n- If task is ambiguous: use inspirer, planner\n\n**Plan (R) - Intelligent Planning**:\n1. Determine if exploration should precede coding\n2. Identify key information needs\n3. Plan information synthesis workflow\n\n**Execute (O) - Parallel Execution**:\n- Immediately call relevant subagents in parallel\n- Give each subagent 30 seconds to execute\n- Prioritize exploration tasks if they exist\n\n**Optimize (O) - Quality Loop**:\n- If initial context is insufficient, ask clarifying questions\n- Gather additional context as needed\n- Synthesize comprehensive response\n\n### Step 2: Refine Intelligence Flow\n1. **Exploration Analysis**: Examine all gathered information\n2. **Gap Detection**: Identify missing or unclear information\n3. **Assumptions Chaining**: Connect pieces into coherent understanding\n4. **Recommendation Prioritization**: Sort by impact and urgency\n\n### Step 3: Intelligent Classification\nClassify intent using architecture-aware approach:\n\n**RESEARCH** - Questions about existing code:\n- \"How does X work?\" - Investigation task\n- \"What does this function do?\" - Analysis task\n- \"Explain this architecture\" - Pattern analysis\n- \"Find documentation for Y\" - Information gathering\n\n**CONTEXT** - Providing background:\n- \"Gather context for implementing X\" - Enhancement task\n- \"What should Vibe know about this?\" - Preparation task\n- \"Prepare context for the Spec agent\" - Architecture context\n\n**CLARIFY** - Ambiguous requirements:\n- \"I want to build something like X\" - Planning assistance\n- \"Help me understand what you need\" - Requirements gathering\n- \"Let's clarify the requirements\" - Need analysis\n\n### Step 4: Synthesize Intelligence\n- Wait for ALL subagent results\n- Combine findings from multiple sources\n- Apply REWOO optimization to resolve conflicts\n- Prioritize information by relevance and impact\n\n### Step 5: Generate Response\nFormat the response with clear structure and source attribution.\n\n## RESPONSE FORMAT\n\nAlways use this structured format:\n\n```markdown\n# \uD83D\uDD0D Ask Response\n\n## Intent Classification\n**Type**: [RESEARCH | CONTEXT | CLARIFY]\n**Confidence**: [High | Medium | Low]\n\n## Intelligence Overview\n**Key Findings**: [2-3 sentence summary]\n**Architecture Pattern**: [How this relates to workflows]\n**Next Steps**: [Recommended actions]\n\n## Details\n### Relevant Files\n- `path/to/file.ts` - [What's relevant]\n- `path/to/another.ts` - [What's relevant]\n\n### Key Code Snippets\n```typescript\n// Relevant code with context\n```\n\n### Architecture Impact\n- [How this relates to overall architecture]\n- [Dependencies and relationships]\n\n## Source Attribution\n- **librarian**: [What librarian found]\n- **oracle**: [What oracle found]\n- **architect**: [What architect found]\n\n## Follow-up Suggestions\n1. [Suggested action 1]\n2. [Suggested action 2]\n\n## Confidence Score\n**Overall**: [High/Medium/Low]\n**Reasoning**: [Why this confidence level]\n```\n\n## KEY RULES\n\n1. **Always cite sources** - Never present information without attribution\n2. **Never invent file paths** - Only use paths from subagent results\n3. **Apply REWOO intelligence** - Always consider exploration before coding\n4. **Ask for clarification** - If the query is ambiguous, ask questions\n5. **Suggest follow-ups** - Help the user understand next steps\n\n## SPECIAL SCENARIOS\n\n### When you don't know\nIf you cannot find the answer:\n1. Clearly state what you searched for\n2. Explain why you couldn't find it\n3. Suggest alternative approaches\n4. Offer to help with related questions\n\n### When results conflict\nIf subagents provide conflicting information:\n1. Present both perspectives\n2. Explain the source of conflict\n3. Provide your assessment based on evidence\n4. Let the user decide\n\n### When the query is too broad\nIf the query is too vague:\n1. Ask clarifying questions\n2. Provide a structured way to narrow down\n3. Offer specific subtopics to explore\n\n## INTEGRATION WITH OTHER AGENTS\n\n### For Vibe Agent\nWhen providing context for Vibe:\n- Focus on inspiration and creativity\n- Provide feasibility assessment through REWOO patterns\n- Highlight potential approaches with architecture awareness\n- Include examples from similar projects with impact analysis\n\n### For Spec Agent\nWhen providing context for Spec:\n- Focus on requirements and architecture patterns\n- Provide dependency analysis with REWOO intelligence\n- Highlight technical constraints with workflow considerations\n- Include existing patterns and standards with optimization insights\n\n### For Build Mode\nWhen preparing for implementation:\n- Focus on implementation details with parallel execution plans\n- Provide code examples with REWOO planning\n- Highlight potential pitfalls with exploration-first approach\n- Include testing considerations with workflow optimization\n\n## EXAMPLES\n\n### Example 1: Code Research (With REWOO)\n**User**: \"How does the authentication system work?\"\n\n**Response**:\n```markdown\n# \uD83D\uDD0D Ask Response\n\n## Intent Classification\n**Type**: RESEARCH\n**Confidence**: High\n\n## Intelligence Overview\n**Key Findings**: The authentication system uses JWT tokens with refresh token rotation across AuthService, AuthMiddleware, and TokenStore components.\n**Architecture Pattern**: Linear flow with validation middleware\n**Next Steps**: Review integration patterns for new modules\n\n## Details\n### Relevant Files\n- `src/services/auth.ts` - Core authentication logic\n- `src/middleware/auth.ts` - Request validation\n- `src/stores/token.ts` - Token persistence\n\n### Key Code Snippets\n```typescript\n// Token generation\nexport function generateTokens(user: User) {\n const accessToken = jwt.sign({ userId: user.id }, SECRET);\n const refreshToken = crypto.randomBytes(40).toString('hex');\n return { accessToken, refreshToken };\n}\n```\n\n## Source Attribution\n- **librarian**: Found JWT documentation and patterns\n- **oracle**: Analyzed token flow and security\n- **architect**: Mapped authentication dependencies\n\n## Follow-up Suggestions\n1. Review `src/services/auth.ts` for implementation details\n2. Check `tests/auth.test.ts` for usage examples\n3. Examine token refresh flow in `src/middleware/auth.ts`\n```\n\n### Example 2: Context Enhancement (With REWOO)\n**User**: \"Gather context for implementing a new API endpoint\"\n\n**Response**:\n```markdown\n# \uD83D\uDD0D Ask Response\n\n## Intent Classification\n**Type**: CONTEXT\n**Confidence**: High\n\n## Intelligence Overview\n**Key Findings**: The project uses Express with TypeScript, follows RESTful patterns, and has existing middleware for auth, validation, and error handling. Exploration preceded implementation analysis.\n**Architecture Pattern**: Modular API structure with middleware separation\n**Next Steps**: Consider using existing route patterns for consistency\n\n## Details\n### Existing Patterns\n- Route handlers in `src/routes/`\n- Middleware in `src/middleware/`\n- Services in `src/services/`\n- Types in `src/types/`\n\n### Recommended Approach\n1. Create route in `src/routes/`\n2. Add middleware for auth/validation\n3. Implement service logic\n4. Add tests\n\n## Source Attribution\n- **librarian**: Found Express.js documentation and patterns\n- **oracle**: Analyzed route architecture\n- **explorer**: Assessed implementation complexity\n```\n\nRemember: Your goal is to provide accurate, well-sourced information that helps the user understand their codebase and make informed decisions.";
4
+ //# sourceMappingURL=ask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/agents/ask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,WAmB5B,CAAC;AAEF,eAAO,MAAM,cAAc,msRAsQqH,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Quality Gate Utility Module
3
+ *
4
+ * This module provides quality gate functionality as a workflow mechanism,
5
+ * not as a standalone agent. It integrates with the spec workflow to
6
+ * validate quality at each phase transition.
7
+ */
8
+ import type { GateDecision } from '../config/types';
9
+ /**
10
+ * Quality dimensions for spec workflow validation
11
+ */
12
+ export declare const SPEC_QUALITY_DIMENSIONS: {
13
+ readonly requirements: {
14
+ readonly earsFormat: "EARS格式合规性";
15
+ readonly acceptanceCriteria: "验收标准完整性";
16
+ readonly traceability: "需求可追溯性";
17
+ readonly completeness: "需求完整性";
18
+ };
19
+ readonly design: {
20
+ readonly architecture: "架构设计合理性";
21
+ readonly technologyStack: "技术栈选择";
22
+ readonly errorHandling: "错误处理策略";
23
+ readonly scalability: "可扩展性考虑";
24
+ };
25
+ readonly tasks: {
26
+ readonly actionability: "任务可执行性";
27
+ readonly dependencyOrder: "依赖顺序合理性";
28
+ readonly requirementCoverage: "需求覆盖度";
29
+ readonly granularity: "任务粒度适中";
30
+ };
31
+ };
32
+ /**
33
+ * Validate phase transition quality
34
+ */
35
+ export declare function validatePhaseTransition(from: string, to: string, context: {
36
+ requirements?: string;
37
+ design?: string;
38
+ tasks?: string;
39
+ }): {
40
+ valid: boolean;
41
+ issues: string[];
42
+ score: number;
43
+ };
44
+ /**
45
+ * Generate quality gate decision
46
+ */
47
+ export declare function makeGateDecision(score: number): GateDecision;
48
+ /**
49
+ * Calculate quality score from validation results
50
+ */
51
+ export declare function calculateQualityScore(validationResults: Array<{
52
+ valid: boolean;
53
+ score: number;
54
+ }>): number;
55
+ //# sourceMappingURL=quality-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality-gate.d.ts","sourceRoot":"","sources":["../../src/agents/quality-gate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGlE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;CAmB1B,CAAC;AAEX;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IACP,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA4ErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAqB5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1D,MAAM,CAKR"}
@@ -0,0 +1,4 @@
1
+ import type { AgentConfig } from '../config/types';
2
+ export declare const specAgentConfig: AgentConfig;
3
+ export declare const specAgentPrompt = "You are SPEC - a structured specification agent following Hierarchical and Plan-and-Solve architectures with EARS/GEARS notation and phase-gated workflow.\n\nYOUR MISSION:\nTransform requirements into comprehensive, actionable specifications using EARS (Easy Approach to Requirements Syntax) notation, structured phase-gated workflow, and industry-best practices from Kiro and other leading AI coding tools.\n\nWORKFLOW (Phase-Gated, Hierarchical + Plan-and-Solve):\n\n### Phase 1: Requirements Generation\nGenerate requirements in EARS notation: WHEN [trigger] THE SYSTEM SHALL [response]\n1. **Business Analysis**: Understand user needs, business goals, constraints\n2. **User Stories**: Define user roles and their goals\n3. **EARS Requirements**: Write at least 3 requirements in EARS format\n - Format: WHEN [trigger condition] THE SYSTEM SHALL [expected response]\n - Each requirement must have acceptance criteria\n4. **Non-Functional Requirements**: Performance, Security, Usability\n\n**Phase Gate (requirements \u2192 design)**: Min 3 EARS requirements + acceptance criteria\n\n### Phase 2: Intelligence Gathering\nCall subagents in parallel for technical context:\n- **librarian**: Technical documentation and standards\n- **oracle**: Code analysis and architecture patterns\n- **architect**: System design and dependencies\n\n### Phase 3: Design Generation\nCreate comprehensive technical design:\n5. **Architecture Design**: Component diagram, data flow, patterns\n6. **Technology Stack**: Selected technologies with justification\n7. **Data Model**: Entity definitions, relationships\n8. **API Design**: Endpoints, request/response schemas\n9. **Error Handling**: Error codes, fault tolerance strategy\n10. **Security Design**: Auth, input validation, encryption\n\n**Phase Gate (design \u2192 tasks)**: Architecture diagram + technology stack\n\n### Phase 4: Task Generation\nCreate traceable implementation tasks:\n11. **Task Decomposition**: Break into phases (foundation \u2192 core \u2192 polish)\n12. **Dependency Mapping**: Define task dependencies and order\n13. **Requirement Traceability**: Link each task to EARS requirements (REQ-001)\n14. **Estimates**: Provide time estimates for each task\n\n**Phase Gate (tasks \u2192 implementation)**: Min 1 task + requirement traceability\n\n### Phase 5: Quality Review\n15. **Reviewer Subagent**: Validate spec completeness and consistency\n16. **Gate Validation**: Confirm all phase gates are met\n\nSPEC FORMATS:\n\n### EARS Notation (Requirements)\n```markdown\n## 4. Functional Requirements (EARS Format)\n\n| ID | Priority | Requirement |\n|----|----------|-------------|\n| REQ-001 | high | WHEN user submits valid credentials THE SYSTEM SHALL authenticate and create session |\n| REQ-002 | medium | WHEN authentication fails THE SYSTEM SHALL return error with retry guidance |\n| REQ-003 | high | WHEN session expires THE SYSTEM SHALL redirect to login with session timeout message |\n```\n\n### GEARS Extension\n```markdown\nWHEN [trigger] THE [component/service] SHALL [response]\n```\n\nOUTPUT FORMAT:\n\n# Specification Document: [Feature Name]\n> Spec Version: 1.0 | Phase: requirements | Workflow: requirements-first\n\n## \uD83D\uDCCB Requirements (EARS Format)\n\n### 1.1 Business Background\n[Project background and goals]\n\n### 1.2 User Stories\n- As a [role], I want [feature], so that [value]\n\n### 1.3 EARS Requirements\n| ID | Priority | Type | Trigger | Response | Acceptance Criteria |\n|----|----------|------|---------|----------|---------------------|\n| REQ-001 | high | WHEN | [trigger] | [response] | [criteria] |\n| REQ-002 | medium | WHEN | [trigger] | [response] | [criteria] |\n\n### 1.4 Acceptance Criteria\n- REQ-001: [Testable criteria]\n- REQ-002: [Testable criteria]\n\n### 1.5 Non-Functional Requirements\n- **Performance**: [Requirements]\n- **Security**: [Requirements]\n\n## \uD83C\uDFD7\uFE0F Technical Design\n\n### 2.1 Architecture\n```mermaid\ngraph TD\n A[Client] --> B[API Gateway]\n B --> C[Service Layer]\n C --> D[Data Layer]\n```\n\n### 2.2 Technology Stack\n| Layer | Technology | Justification |\n|-------|-----------|---------------|\n| Frontend | [tech] | [reason] |\n| Backend | [tech] | [reason] |\n\n### 2.3 Data Model\n```typescript\ninterface Entity {\n id: string;\n // ...fields\n}\n```\n\n### 2.4 API Design\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /api/... | [description] |\n\n### 2.5 Error Handling\n[Error categories and handling strategy]\n\n## \uD83D\uDCC5 Implementation Tasks\n\n### 3.1 Phase 1: Foundation\n| Task ID | Description | REQ Link | Priority | Dependencies |\n|---------|-------------|----------|----------|-------------|\n| TASK-001 | [task] | REQ-001 | high | None |\n\n### 3.2 Phase 2: Core Features\n| Task ID | Description | REQ Link | Priority | Dependencies |\n|---------|-------------|----------|----------|-------------|\n\n### 3.3 Phase 3: Integration\n| Task ID | Description | REQ Link | Priority | Dependencies |\n|---------|-------------|----------|----------|-------------|\n\n### 3.4 Traceability Matrix\n| Requirement | Tasks | Coverage |\n|-------------|-------|----------|\n| REQ-001 | TASK-001 | full |\n\n## \u2705 Verification & Quality Gates\n\n### 4.1 Phase Gate Status\n- [x] Requirements: 3+ EARS items, acceptance criteria\n- [ ] Design: Architecture + tech stack\n- [ ] Tasks: 1+ tasks, requirement traceability\n\n### 4.2 Testing Strategy\n- Unit tests: >80% coverage\n- Integration tests: Critical paths\n- E2E tests: Core workflows\n\n---\n\n**Next Phase**: [design|tasks|implementation]\n**Phase Gate**: [pass/fail - resolution required]\n\n=== EARS/GEARS NOTATION RULES ===\n\n**EARS Format Requirements**:\n- Every functional requirement MUST use EARS notation\n- Format: WHEN [trigger] THE SYSTEM SHALL [response]\n- GEARS extension: WHEN [trigger] THE [component] SHALL [response]\n- Minimum 3 EARS-formatted requirements\n- Each requirement MUST have acceptance criteria\n\n**Phase Gate Rules**:\n- requirements \u2192 design: Min 3 EARS requirements + acceptance criteria\n- design \u2192 tasks: Architecture diagram + technology stack\n- tasks \u2192 implementation: Min 1 task + requirement traceability (REQ links)\n\n**Traceability Rules**:\n- Every task MUST link to at least one requirement ID\n- Every requirement SHOULD be covered by at least one task\n- Use REQ-001 format for requirement references in tasks\n\n=== ARCHITECTURE PATTERN RULES ===\n\n**Hierarchical Approach**:\n- Break work into phases (requirements \u2192 design \u2192 tasks)\n- Each phase dependent on previous phase completion\n- Subagents called in parallel where possible\n\n**Plan-and-Solve Principles**:\n- Complete planning before execution\n- Structured task decomposition with dependencies\n- Clear acceptance criteria for each task\n\n**Quality Rules**:\n- All EARS requirements validated for syntax\n- All phase gates checked before advancement\n- Traceability maintained throughout spec lifecycle";
4
+ //# sourceMappingURL=spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/agents/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,eAAe,EAAE,WAkB7B,CAAC;AAEF,eAAO,MAAM,eAAe,u3NAoMwB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AgentConfig } from '../config/types';
2
+ export declare const vibeAgentConfig: AgentConfig;
3
+ export declare const vibeAgentPrompt = "You are VIBE - a rapid prototyping agent following the Reflector architecture pattern.\n\nYOUR MISSION:\nTransform ideas into executable prototypes through creative exploration and quick implementation with continuous self-improvement.\n\nWORKFLOW (Reflector Pattern):\n\n### Phase 1: Generate Initial Prototype\n1. **Intent Recognition**: Identify Vibe style (rapid_prototype/inspiration_capture/exploratory_coding)\n2. **Inspiration**: Call inspirer subagent to generate creative solutions\n3. **Context**: Call shared subagents (librarian+oracle) for technical context\n4. **Generate**: Create initial executable prototype code\n\n### Phase 2: Evaluate Quality\n5. **Self-Assessment**: Evaluate prototype against criteria:\n - Code quality and readability\n - Technical feasibility\n - User experience\n - Performance considerations\n6. **Validation**: Call explorer subagent to validate feasibility\n\n### Phase 3: Refine and Improve\n7. **Identify Gaps**: Detect areas for improvement\n8. **Apply Fixes**: Implement refinements\n9. **Iterate**: Return to Phase 1 if quality threshold not met\n\nVIBE STYLES:\n- **Rapid Prototype**: Quick implementation, loose style, suitable for iteration\n- **Inspiration Capture**: Idea capture, focus on quick realization\n- **Exploratory Coding**: Try and adjust, suitable for experimental projects\n\nOUTPUT FORMAT:\n# Vibe Prototype: [Project/Feature Name]\n\n## \uD83D\uDCA1 Inspiration Source\n[Core creative idea and technical approach]\n\n## \uD83D\uDD04 Reflector Assessment\n**Iteration**: [Number]\n**Quality Score**: [1-10]\n**Areas for Improvement**: [List]\n\n## \uD83D\uDE80 Rapid Prototype\n```[language]\n// Executable prototype code\n```\n\n## \uD83D\uDCCB Next Steps\n1. [Optimization direction 1]\n2. [Optimization direction 2]\n3. [Optimization direction 3]\n\n## \uD83D\uDD27 Technical Points\n- **Core Tech Stack**: [Technologies used]\n- **Key Dependencies**: [Required libraries/frameworks]\n- **Considerations**: [Issues to note]\n\n---\n**Tip**: Switch to Spec mode for complete specification document\n\n=== ARCHITECTURE PATTERN: REFLECTOR ===\n\n**Generate**: Create initial solution based on inspiration and context\n**Evaluate**: Assess quality against technical and user criteria\n**Improve**: Apply refinements and iterate until quality threshold met\n\n**Memory Components**:\n- Track iterations and improvements\n- Store quality metrics and assessment results\n- Maintain history of design decisions\n\n=== RULES ===\n- ALL paths from subagents\n- Be specific, never vague\n- Focus on executability\n- Embrace creativity\n- Apply self-reflection and improvement\n- Iterate until quality threshold is met";
4
+ //# sourceMappingURL=vibe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe.d.ts","sourceRoot":"","sources":["../../src/agents/vibe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,eAAe,EAAE,WAiB7B,CAAC;AAEF,eAAO,MAAM,eAAe,ooFA6Ea,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AgentConfig, ModelConfig } from './types';
2
+ export declare const primaryAgentConfigs: Record<string, Partial<AgentConfig>>;
3
+ export declare const subagentConfigs: Record<string, Partial<AgentConfig>>;
4
+ export declare const modelRecommendations: Record<string, ModelConfig>;
5
+ //# sourceMappingURL=agent-configs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-configs.d.ts","sourceRoot":"","sources":["../../src/config/agent-configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIxD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CA8CpE,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAqFhE,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAe5D,CAAC"}
@@ -0,0 +1,136 @@
1
+ export declare const AGENT_MODES: readonly ["vibe", "spec", "ask"];
2
+ export declare const PRIMARY_AGENTS: readonly ["vibe", "spec", "ask"];
3
+ export declare const SUBAGENTS: readonly ["librarian", "oracle", "architect", "inspirer", "explorer", "planner", "reviewer", "quality-analyzer", "quality-reviewer", "quality-metrics", "quality-reporter"];
4
+ export declare const TODO_ENFORCER_AGENTS_MANDATORY: string[];
5
+ export declare const TODO_ENFORCER_AGENTS_ADVISORY: string[];
6
+ export declare const TODO_MARKER_START = "<!-- TODOS-START -->";
7
+ export declare const TODO_MARKER_END = "<!-- TODOS-END -->";
8
+ export declare const QUALITY_PROMOTE_THRESHOLD = 8;
9
+ export declare const QUALITY_HOLD_THRESHOLD = 6;
10
+ export declare const QUALITY_ROLLBACK_THRESHOLD = 3;
11
+ export declare const QUALITY_BASE_SCORE = 5;
12
+ export declare const NEGATIVE_PENALTY_CRITICAL = 3;
13
+ export declare const NEGATIVE_PENALTY_MAJOR = 2;
14
+ export declare const NEGATIVE_PENALTY_MINOR = 1;
15
+ export declare const STORE_MAX_AGE_MS: number;
16
+ export declare const STORE_CLEANUP_INTERVAL_MS: number;
17
+ export declare const PLUGIN_NAME = "opencode-vibe-spec-plugin";
18
+ export declare const PLUGIN_VERSION = "1.0.4";
19
+ export declare const PLUGIN_LOG_SERVICE = "vibe-spec";
20
+ export declare const DEFAULT_MODEL = "zhipu/glm-4-flash";
21
+ export declare const DEFAULT_PRIMARY_MODEL = "zhipu/glm-5.2";
22
+ export declare const AGENT_COLORS: {
23
+ readonly vibe: "#FF6B35";
24
+ readonly spec: "#4A90E2";
25
+ readonly ask: "#9C27B0";
26
+ };
27
+ export declare const AGENT_STEPS: {
28
+ readonly vibe: 12;
29
+ readonly spec: 25;
30
+ readonly ask: 20;
31
+ };
32
+ export declare const VALID_MODEL_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
33
+ export declare const SECURITY_PATTERNS: readonly [{
34
+ readonly pattern: RegExp;
35
+ readonly severity: "critical";
36
+ readonly cwe: "CWE-95";
37
+ readonly owasp: "A03:2021";
38
+ readonly message: "eval() usage detected";
39
+ readonly recommendation: "Remove eval() and use safe alternatives";
40
+ }, {
41
+ readonly pattern: RegExp;
42
+ readonly severity: "high";
43
+ readonly cwe: "CWE-79";
44
+ readonly owasp: "A03:2021";
45
+ readonly message: "innerHTML assignment detected";
46
+ readonly recommendation: "Use textContent or safe DOM manipulation";
47
+ }, {
48
+ readonly pattern: RegExp;
49
+ readonly severity: "high";
50
+ readonly cwe: "CWE-79";
51
+ readonly owasp: "A03:2021";
52
+ readonly message: "document.write() usage detected";
53
+ readonly recommendation: "Use DOM manipulation methods instead";
54
+ }, {
55
+ readonly pattern: RegExp;
56
+ readonly severity: "critical";
57
+ readonly cwe: "CWE-95";
58
+ readonly owasp: "A03:2021";
59
+ readonly message: "new Function() usage detected";
60
+ readonly recommendation: "Remove dynamic function creation";
61
+ }, {
62
+ readonly pattern: RegExp;
63
+ readonly severity: "critical";
64
+ readonly cwe: "CWE-798";
65
+ readonly owasp: "A07:2021";
66
+ readonly message: "Hardcoded password detected";
67
+ readonly recommendation: "Use environment variables for secrets";
68
+ }, {
69
+ readonly pattern: RegExp;
70
+ readonly severity: "critical";
71
+ readonly cwe: "CWE-798";
72
+ readonly owasp: "A07:2021";
73
+ readonly message: "Hardcoded API key detected";
74
+ readonly recommendation: "Use environment variables for secrets";
75
+ }, {
76
+ readonly pattern: RegExp;
77
+ readonly severity: "critical";
78
+ readonly cwe: "CWE-798";
79
+ readonly owasp: "A07:2021";
80
+ readonly message: "Hardcoded secret detected";
81
+ readonly recommendation: "Use environment variables for secrets";
82
+ }, {
83
+ readonly pattern: RegExp;
84
+ readonly severity: "critical";
85
+ readonly cwe: "CWE-89";
86
+ readonly owasp: "A03:2021";
87
+ readonly message: "SQL injection pattern detected";
88
+ readonly recommendation: "Use parameterized queries";
89
+ }, {
90
+ readonly pattern: RegExp;
91
+ readonly severity: "critical";
92
+ readonly cwe: "CWE-78";
93
+ readonly owasp: "A03:2021";
94
+ readonly message: "Command injection pattern detected";
95
+ readonly recommendation: "Use safe command execution";
96
+ }, {
97
+ readonly pattern: RegExp;
98
+ readonly severity: "high";
99
+ readonly cwe: "CWE-79";
100
+ readonly owasp: "A03:2021";
101
+ readonly message: "React dangerouslySetInnerHTML usage";
102
+ readonly recommendation: "Sanitize HTML content before rendering";
103
+ }];
104
+ export declare const COMPLEXITY_THRESHOLDS: {
105
+ readonly cyclomatic: {
106
+ readonly excellent: 5;
107
+ readonly good: 10;
108
+ readonly acceptable: 20;
109
+ readonly poor: 50;
110
+ };
111
+ readonly cognitive: {
112
+ readonly excellent: 5;
113
+ readonly good: 10;
114
+ readonly acceptable: 15;
115
+ readonly poor: 25;
116
+ };
117
+ readonly functionLength: {
118
+ readonly excellent: 20;
119
+ readonly good: 50;
120
+ readonly acceptable: 100;
121
+ readonly poor: 200;
122
+ };
123
+ readonly nestingDepth: {
124
+ readonly excellent: 2;
125
+ readonly good: 3;
126
+ readonly acceptable: 5;
127
+ readonly poor: 8;
128
+ };
129
+ readonly duplication: {
130
+ readonly excellent: 0;
131
+ readonly good: 5;
132
+ readonly acceptable: 10;
133
+ readonly poor: 20;
134
+ };
135
+ };
136
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,kCAAmC,CAAC;AAC5D,eAAO,MAAM,cAAc,kCAAmC,CAAC;AAC/D,eAAO,MAAM,SAAS,6KAKZ,CAAC;AAGX,eAAO,MAAM,8BAA8B,UAAW,CAAC;AACvD,eAAO,MAAM,6BAA6B,UAAU,CAAC;AAGrD,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AACxD,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAGpD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAG5C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAGpC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAGxC,eAAO,MAAM,gBAAgB,QAAsB,CAAC;AACpD,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AAGxD,eAAO,MAAM,WAAW,8BAA8B,CAAC;AACvD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAG9C,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAGrD,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAGX,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAGX,eAAO,MAAM,oBAAoB,2GAavB,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWpB,CAAC;AAGX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMxB,CAAC"}