@brad-frost-web/eddie-brain 0.32.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.
- package/README.md +109 -0
- package/dist/analyze/drift-detector.d.ts +30 -0
- package/dist/analyze/drift-detector.d.ts.map +1 -0
- package/dist/analyze/drift-detector.js +310 -0
- package/dist/analyze/drift-detector.js.map +1 -0
- package/dist/analyze/health-scorer.d.ts +71 -0
- package/dist/analyze/health-scorer.d.ts.map +1 -0
- package/dist/analyze/health-scorer.js +420 -0
- package/dist/analyze/health-scorer.js.map +1 -0
- package/dist/analyze/index.d.ts +11 -0
- package/dist/analyze/index.d.ts.map +1 -0
- package/dist/analyze/index.js +11 -0
- package/dist/analyze/index.js.map +1 -0
- package/dist/analyze/naming-validator.d.ts +99 -0
- package/dist/analyze/naming-validator.d.ts.map +1 -0
- package/dist/analyze/naming-validator.js +430 -0
- package/dist/analyze/naming-validator.js.map +1 -0
- package/dist/analyze/slot-contract-validator.d.ts +68 -0
- package/dist/analyze/slot-contract-validator.d.ts.map +1 -0
- package/dist/analyze/slot-contract-validator.js +232 -0
- package/dist/analyze/slot-contract-validator.js.map +1 -0
- package/dist/analyze/token-validator.d.ts +62 -0
- package/dist/analyze/token-validator.d.ts.map +1 -0
- package/dist/analyze/token-validator.js +348 -0
- package/dist/analyze/token-validator.js.map +1 -0
- package/dist/cli/brain.d.ts +12 -0
- package/dist/cli/brain.d.ts.map +1 -0
- package/dist/cli/brain.js +641 -0
- package/dist/cli/brain.js.map +1 -0
- package/dist/cli/formatters/json.d.ts +15 -0
- package/dist/cli/formatters/json.d.ts.map +1 -0
- package/dist/cli/formatters/json.js +18 -0
- package/dist/cli/formatters/json.js.map +1 -0
- package/dist/cli/formatters/terminal.d.ts +19 -0
- package/dist/cli/formatters/terminal.d.ts.map +1 -0
- package/dist/cli/formatters/terminal.js +125 -0
- package/dist/cli/formatters/terminal.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/data/governance-rules.json +94 -0
- package/dist/governance/audit-log.d.ts +17 -0
- package/dist/governance/audit-log.d.ts.map +1 -0
- package/dist/governance/audit-log.js +44 -0
- package/dist/governance/audit-log.js.map +1 -0
- package/dist/governance/index.d.ts +8 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +8 -0
- package/dist/governance/index.js.map +1 -0
- package/dist/governance/permissions.d.ts +26 -0
- package/dist/governance/permissions.d.ts.map +1 -0
- package/dist/governance/permissions.js +75 -0
- package/dist/governance/permissions.js.map +1 -0
- package/dist/governance/rules-engine.d.ts +24 -0
- package/dist/governance/rules-engine.d.ts.map +1 -0
- package/dist/governance/rules-engine.js +111 -0
- package/dist/governance/rules-engine.js.map +1 -0
- package/dist/governance/trust-manager.d.ts +34 -0
- package/dist/governance/trust-manager.d.ts.map +1 -0
- package/dist/governance/trust-manager.js +148 -0
- package/dist/governance/trust-manager.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge-graph/component-index.d.ts +320 -0
- package/dist/knowledge-graph/component-index.d.ts.map +1 -0
- package/dist/knowledge-graph/component-index.js +1033 -0
- package/dist/knowledge-graph/component-index.js.map +1 -0
- package/dist/knowledge-graph/index.d.ts +134 -0
- package/dist/knowledge-graph/index.d.ts.map +1 -0
- package/dist/knowledge-graph/index.js +249 -0
- package/dist/knowledge-graph/index.js.map +1 -0
- package/dist/knowledge-graph/learning-history.d.ts +77 -0
- package/dist/knowledge-graph/learning-history.d.ts.map +1 -0
- package/dist/knowledge-graph/learning-history.js +187 -0
- package/dist/knowledge-graph/learning-history.js.map +1 -0
- package/dist/knowledge-graph/relationship-map.d.ts +55 -0
- package/dist/knowledge-graph/relationship-map.d.ts.map +1 -0
- package/dist/knowledge-graph/relationship-map.js +238 -0
- package/dist/knowledge-graph/relationship-map.js.map +1 -0
- package/dist/knowledge-graph/token-taxonomy.d.ts +127 -0
- package/dist/knowledge-graph/token-taxonomy.d.ts.map +1 -0
- package/dist/knowledge-graph/token-taxonomy.js +357 -0
- package/dist/knowledge-graph/token-taxonomy.js.map +1 -0
- package/dist/loop/fix-agent.d.ts +55 -0
- package/dist/loop/fix-agent.d.ts.map +1 -0
- package/dist/loop/fix-agent.js +344 -0
- package/dist/loop/fix-agent.js.map +1 -0
- package/dist/loop/index.d.ts +8 -0
- package/dist/loop/index.d.ts.map +1 -0
- package/dist/loop/index.js +8 -0
- package/dist/loop/index.js.map +1 -0
- package/dist/loop/issue-fetcher.d.ts +51 -0
- package/dist/loop/issue-fetcher.d.ts.map +1 -0
- package/dist/loop/issue-fetcher.js +188 -0
- package/dist/loop/issue-fetcher.js.map +1 -0
- package/dist/loop/observer.d.ts +42 -0
- package/dist/loop/observer.d.ts.map +1 -0
- package/dist/loop/observer.js +220 -0
- package/dist/loop/observer.js.map +1 -0
- package/dist/loop/pacer.d.ts +44 -0
- package/dist/loop/pacer.d.ts.map +1 -0
- package/dist/loop/pacer.js +90 -0
- package/dist/loop/pacer.js.map +1 -0
- package/dist/loop/reporter.d.ts +9 -0
- package/dist/loop/reporter.d.ts.map +1 -0
- package/dist/loop/reporter.js +119 -0
- package/dist/loop/reporter.js.map +1 -0
- package/dist/loop/runner.d.ts +57 -0
- package/dist/loop/runner.d.ts.map +1 -0
- package/dist/loop/runner.js +390 -0
- package/dist/loop/runner.js.map +1 -0
- package/dist/loop/types.d.ts +151 -0
- package/dist/loop/types.d.ts.map +1 -0
- package/dist/loop/types.js +22 -0
- package/dist/loop/types.js.map +1 -0
- package/dist/mcp/index.d.ts +7 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +7 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +618 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/pipeline/agent-runner.d.ts +34 -0
- package/dist/pipeline/agent-runner.d.ts.map +1 -0
- package/dist/pipeline/agent-runner.js +323 -0
- package/dist/pipeline/agent-runner.js.map +1 -0
- package/dist/pipeline/agents/accessibility-auditor.d.ts +10 -0
- package/dist/pipeline/agents/accessibility-auditor.d.ts.map +1 -0
- package/dist/pipeline/agents/accessibility-auditor.js +69 -0
- package/dist/pipeline/agents/accessibility-auditor.js.map +1 -0
- package/dist/pipeline/agents/code-reviewer.d.ts +10 -0
- package/dist/pipeline/agents/code-reviewer.d.ts.map +1 -0
- package/dist/pipeline/agents/code-reviewer.js +75 -0
- package/dist/pipeline/agents/code-reviewer.js.map +1 -0
- package/dist/pipeline/agents/code-writer.d.ts +10 -0
- package/dist/pipeline/agents/code-writer.d.ts.map +1 -0
- package/dist/pipeline/agents/code-writer.js +103 -0
- package/dist/pipeline/agents/code-writer.js.map +1 -0
- package/dist/pipeline/agents/component-architect.d.ts +13 -0
- package/dist/pipeline/agents/component-architect.d.ts.map +1 -0
- package/dist/pipeline/agents/component-architect.js +81 -0
- package/dist/pipeline/agents/component-architect.js.map +1 -0
- package/dist/pipeline/agents/index.d.ts +16 -0
- package/dist/pipeline/agents/index.d.ts.map +1 -0
- package/dist/pipeline/agents/index.js +24 -0
- package/dist/pipeline/agents/index.js.map +1 -0
- package/dist/pipeline/agents/library-researcher.d.ts +12 -0
- package/dist/pipeline/agents/library-researcher.d.ts.map +1 -0
- package/dist/pipeline/agents/library-researcher.js +85 -0
- package/dist/pipeline/agents/library-researcher.js.map +1 -0
- package/dist/pipeline/agents/quality-gate.d.ts +9 -0
- package/dist/pipeline/agents/quality-gate.d.ts.map +1 -0
- package/dist/pipeline/agents/quality-gate.js +71 -0
- package/dist/pipeline/agents/quality-gate.js.map +1 -0
- package/dist/pipeline/agents/spec-analyst.d.ts +10 -0
- package/dist/pipeline/agents/spec-analyst.d.ts.map +1 -0
- package/dist/pipeline/agents/spec-analyst.js +72 -0
- package/dist/pipeline/agents/spec-analyst.js.map +1 -0
- package/dist/pipeline/agents/story-author.d.ts +9 -0
- package/dist/pipeline/agents/story-author.d.ts.map +1 -0
- package/dist/pipeline/agents/story-author.js +65 -0
- package/dist/pipeline/agents/story-author.js.map +1 -0
- package/dist/pipeline/artifact-store.d.ts +27 -0
- package/dist/pipeline/artifact-store.d.ts.map +1 -0
- package/dist/pipeline/artifact-store.js +77 -0
- package/dist/pipeline/artifact-store.js.map +1 -0
- package/dist/pipeline/conversational-gate.d.ts +26 -0
- package/dist/pipeline/conversational-gate.d.ts.map +1 -0
- package/dist/pipeline/conversational-gate.js +122 -0
- package/dist/pipeline/conversational-gate.js.map +1 -0
- package/dist/pipeline/index.d.ts +14 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +17 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/iteration-tracker.d.ts +29 -0
- package/dist/pipeline/iteration-tracker.d.ts.map +1 -0
- package/dist/pipeline/iteration-tracker.js +102 -0
- package/dist/pipeline/iteration-tracker.js.map +1 -0
- package/dist/pipeline/learning-bridge.d.ts +37 -0
- package/dist/pipeline/learning-bridge.d.ts.map +1 -0
- package/dist/pipeline/learning-bridge.js +118 -0
- package/dist/pipeline/learning-bridge.js.map +1 -0
- package/dist/pipeline/orchestrator.d.ts +45 -0
- package/dist/pipeline/orchestrator.d.ts.map +1 -0
- package/dist/pipeline/orchestrator.js +473 -0
- package/dist/pipeline/orchestrator.js.map +1 -0
- package/dist/pipeline/templates/architecture.d.ts +27 -0
- package/dist/pipeline/templates/architecture.d.ts.map +1 -0
- package/dist/pipeline/templates/architecture.js +111 -0
- package/dist/pipeline/templates/architecture.js.map +1 -0
- package/dist/pipeline/templates/brief.d.ts +22 -0
- package/dist/pipeline/templates/brief.d.ts.map +1 -0
- package/dist/pipeline/templates/brief.js +121 -0
- package/dist/pipeline/templates/brief.js.map +1 -0
- package/dist/pipeline/templates/component-rules.d.ts +25 -0
- package/dist/pipeline/templates/component-rules.d.ts.map +1 -0
- package/dist/pipeline/templates/component-rules.js +93 -0
- package/dist/pipeline/templates/component-rules.js.map +1 -0
- package/dist/pipeline/templates/index.d.ts +9 -0
- package/dist/pipeline/templates/index.d.ts.map +1 -0
- package/dist/pipeline/templates/index.js +7 -0
- package/dist/pipeline/templates/index.js.map +1 -0
- package/dist/pipeline/tool-handler.d.ts +25 -0
- package/dist/pipeline/tool-handler.d.ts.map +1 -0
- package/dist/pipeline/tool-handler.js +392 -0
- package/dist/pipeline/tool-handler.js.map +1 -0
- package/dist/pipeline/types.d.ts +146 -0
- package/dist/pipeline/types.d.ts.map +1 -0
- package/dist/pipeline/types.js +27 -0
- package/dist/pipeline/types.js.map +1 -0
- package/dist/plan/action-types.d.ts +31 -0
- package/dist/plan/action-types.d.ts.map +1 -0
- package/dist/plan/action-types.js +83 -0
- package/dist/plan/action-types.js.map +1 -0
- package/dist/plan/decision-engine.d.ts +57 -0
- package/dist/plan/decision-engine.d.ts.map +1 -0
- package/dist/plan/decision-engine.js +162 -0
- package/dist/plan/decision-engine.js.map +1 -0
- package/dist/plan/index.d.ts +6 -0
- package/dist/plan/index.d.ts.map +1 -0
- package/dist/plan/index.js +6 -0
- package/dist/plan/index.js.map +1 -0
- package/dist/types.d.ts +351 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +26 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/anthropic.d.ts +15 -0
- package/dist/utils/anthropic.d.ts.map +1 -0
- package/dist/utils/anthropic.js +40 -0
- package/dist/utils/anthropic.js.map +1 -0
- package/dist/utils/id.d.ts +8 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +14 -0
- package/dist/utils/id.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Architecture Template — Structured template for the component architect's output
|
|
3
|
+
*
|
|
4
|
+
* The architecture.md artifact is the blueprint for the code writer.
|
|
5
|
+
* It includes a push-back section with [BLOCKING]/[OVERRIDE]/[SUGGESTION] markers.
|
|
6
|
+
*/
|
|
7
|
+
export const ARCHITECTURE_TEMPLATE = `# Architecture: {{componentName}}
|
|
8
|
+
|
|
9
|
+
## Class Hierarchy
|
|
10
|
+
<!-- Which base class, what it extends, why. -->
|
|
11
|
+
\`\`\`
|
|
12
|
+
{{componentName}} extends EdElement (LitElement)
|
|
13
|
+
\`\`\`
|
|
14
|
+
|
|
15
|
+
## TypeScript Interface
|
|
16
|
+
<!-- All @property decorators with types and defaults. -->
|
|
17
|
+
\`\`\`typescript
|
|
18
|
+
@property({ type: String }) variant: string = 'default';
|
|
19
|
+
@property({ type: String }) size: string = 'md';
|
|
20
|
+
\`\`\`
|
|
21
|
+
|
|
22
|
+
## Slots
|
|
23
|
+
<!-- Named slots with descriptions. -->
|
|
24
|
+
| Slot | Description | Required |
|
|
25
|
+
|------|-------------|----------|
|
|
26
|
+
| (default) | Main content | Yes |
|
|
27
|
+
|
|
28
|
+
## Events
|
|
29
|
+
<!-- Custom events dispatched by this component. -->
|
|
30
|
+
| Event | Detail | When |
|
|
31
|
+
|-------|--------|------|
|
|
32
|
+
<!-- None by default -->
|
|
33
|
+
|
|
34
|
+
## Internal State
|
|
35
|
+
<!-- @state() properties for internal rendering logic. -->
|
|
36
|
+
|
|
37
|
+
## Render Structure
|
|
38
|
+
<!-- Shadow DOM template outline in pseudocode/HTML. -->
|
|
39
|
+
\`\`\`html
|
|
40
|
+
<div class="ed-c-{{shortName}}">
|
|
41
|
+
<slot></slot>
|
|
42
|
+
</div>
|
|
43
|
+
\`\`\`
|
|
44
|
+
|
|
45
|
+
## SCSS Structure
|
|
46
|
+
<!-- BEM class map and token usage plan. -->
|
|
47
|
+
\`\`\`scss
|
|
48
|
+
.ed-c-{{shortName}} {
|
|
49
|
+
// Token usage plan:
|
|
50
|
+
// background: var(--ed-theme-color-background-default);
|
|
51
|
+
// padding: var(--ed-spacing-md);
|
|
52
|
+
}
|
|
53
|
+
\`\`\`
|
|
54
|
+
|
|
55
|
+
## Compound Component Split
|
|
56
|
+
<!-- If this needs child components, list them here. -->
|
|
57
|
+
<!-- e.g., ed-{{shortName}}-item, ed-{{shortName}}-header -->
|
|
58
|
+
|
|
59
|
+
## Accessibility Plan
|
|
60
|
+
<!-- ARIA roles, keyboard navigation, focus management. -->
|
|
61
|
+
- Role:
|
|
62
|
+
- Keyboard:
|
|
63
|
+
- Focus management:
|
|
64
|
+
- Screen reader:
|
|
65
|
+
|
|
66
|
+
## Handoff Notes
|
|
67
|
+
<!-- Anything the code writer needs to know that isn't obvious from the structure. -->
|
|
68
|
+
|
|
69
|
+
## Push-Backs
|
|
70
|
+
<!-- Issues found during architecture design. -->
|
|
71
|
+
<!-- Format: [BLOCKING|OVERRIDE|SUGGESTION] Category: Message. Recommendation: ... -->
|
|
72
|
+
`;
|
|
73
|
+
/**
|
|
74
|
+
* Extract the TypeScript interface from architecture.md.
|
|
75
|
+
*/
|
|
76
|
+
export function extractProperties(content) {
|
|
77
|
+
const properties = [];
|
|
78
|
+
const propRegex = /@property\(\{[^}]*\}\)\s+(\w+):\s+(\w+)\s*=\s*(.+?);/g;
|
|
79
|
+
// Find the TypeScript Interface section
|
|
80
|
+
const sectionRegex = /## TypeScript Interface[\s\S]*?```typescript\n([\s\S]*?)```/;
|
|
81
|
+
const sectionMatch = sectionRegex.exec(content);
|
|
82
|
+
if (sectionMatch) {
|
|
83
|
+
let match;
|
|
84
|
+
while ((match = propRegex.exec(sectionMatch[1])) !== null) {
|
|
85
|
+
properties.push({
|
|
86
|
+
name: match[1],
|
|
87
|
+
type: match[2],
|
|
88
|
+
default: match[3].trim().replace(/['"]/g, ''),
|
|
89
|
+
decorator: match[0],
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return properties;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Extract the render structure HTML from architecture.md.
|
|
97
|
+
*/
|
|
98
|
+
export function extractRenderStructure(content) {
|
|
99
|
+
const regex = /## Render Structure[\s\S]*?```html\n([\s\S]*?)```/;
|
|
100
|
+
const match = regex.exec(content);
|
|
101
|
+
return match ? match[1].trim() : null;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Extract the SCSS structure from architecture.md.
|
|
105
|
+
*/
|
|
106
|
+
export function extractScssStructure(content) {
|
|
107
|
+
const regex = /## SCSS Structure[\s\S]*?```scss\n([\s\S]*?)```/;
|
|
108
|
+
const match = regex.exec(content);
|
|
109
|
+
return match ? match[1].trim() : null;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=architecture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../../src/pipeline/templates/architecture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEpC,CAAC;AAUF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,uDAAuD,CAAC;IAE1E,wCAAwC;IACxC,MAAM,YAAY,GAAG,6DAA6D,CAAC;IACnF,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1D,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,MAAM,KAAK,GAAG,mDAAmD,CAAC;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,KAAK,GAAG,iDAAiD,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brief Template — Structured template for the spec analyst's output
|
|
3
|
+
*
|
|
4
|
+
* The brief.md artifact captures the human's intent expanded into a
|
|
5
|
+
* structured format that downstream agents can parse unambiguously.
|
|
6
|
+
*/
|
|
7
|
+
export declare const BRIEF_TEMPLATE = "# Component Brief: {{componentName}}\n\n## Intent\n<!-- What this component is for. One sentence. -->\n\n## User Stories\n<!-- Who uses it and why. -->\n- As a [role], I want [feature] so that [benefit]\n\n## Variants\n<!-- Visual/functional variants (e.g., primary, secondary, danger). -->\n- default\n\n## Sizes\n<!-- Available sizes using t-shirt sizing: xs, sm, md, lg, xl. -->\n- md (default)\n\n## States\n<!-- Interactive states the component supports. -->\n- default\n- hover\n- focus\n- disabled\n\n## Content Model\n<!-- What goes inside (slots, text props, icons). -->\n### Default Slot\n<!-- Main content -->\n\n### Named Slots\n<!-- Additional slot points -->\n\n### Properties\n<!-- Key properties with types -->\n\n## Interactions\n<!-- How users interact with this component. -->\n\n## Accessibility Requirements\n<!-- WCAG compliance, keyboard nav, ARIA patterns. -->\n\n## Token Categories\n<!-- Which token categories this component will use. -->\n- color (background, content, border)\n- spacing\n- typography\n\n## Composition Needs\n<!-- Does it compose with or contain other Eddie components? -->\n\n## Constraints\n<!-- Hard requirements, edge cases, or known limitations. -->\n\n## Pending Items\n<!-- Anything that needs human clarification. Mark with [PENDING]. -->\n";
|
|
8
|
+
/** Section names in the brief for parsing */
|
|
9
|
+
export declare const BRIEF_SECTIONS: readonly ["Intent", "User Stories", "Variants", "Sizes", "States", "Content Model", "Interactions", "Accessibility Requirements", "Token Categories", "Composition Needs", "Constraints", "Pending Items"];
|
|
10
|
+
/**
|
|
11
|
+
* Parse a brief.md artifact into structured sections.
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseBrief(content: string): Record<string, string>;
|
|
14
|
+
/**
|
|
15
|
+
* Check if the brief has any [PENDING] markers.
|
|
16
|
+
*/
|
|
17
|
+
export declare function hasPendingItems(content: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Extract all [PENDING] markers from the brief.
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractPendingItems(content: string): string[];
|
|
22
|
+
//# sourceMappingURL=brief.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brief.d.ts","sourceRoot":"","sources":["../../../src/pipeline/templates/brief.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,mxCAuD1B,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,cAAc,4MAajB,CAAC;AAEX;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ7D"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brief Template — Structured template for the spec analyst's output
|
|
3
|
+
*
|
|
4
|
+
* The brief.md artifact captures the human's intent expanded into a
|
|
5
|
+
* structured format that downstream agents can parse unambiguously.
|
|
6
|
+
*/
|
|
7
|
+
export const BRIEF_TEMPLATE = `# Component Brief: {{componentName}}
|
|
8
|
+
|
|
9
|
+
## Intent
|
|
10
|
+
<!-- What this component is for. One sentence. -->
|
|
11
|
+
|
|
12
|
+
## User Stories
|
|
13
|
+
<!-- Who uses it and why. -->
|
|
14
|
+
- As a [role], I want [feature] so that [benefit]
|
|
15
|
+
|
|
16
|
+
## Variants
|
|
17
|
+
<!-- Visual/functional variants (e.g., primary, secondary, danger). -->
|
|
18
|
+
- default
|
|
19
|
+
|
|
20
|
+
## Sizes
|
|
21
|
+
<!-- Available sizes using t-shirt sizing: xs, sm, md, lg, xl. -->
|
|
22
|
+
- md (default)
|
|
23
|
+
|
|
24
|
+
## States
|
|
25
|
+
<!-- Interactive states the component supports. -->
|
|
26
|
+
- default
|
|
27
|
+
- hover
|
|
28
|
+
- focus
|
|
29
|
+
- disabled
|
|
30
|
+
|
|
31
|
+
## Content Model
|
|
32
|
+
<!-- What goes inside (slots, text props, icons). -->
|
|
33
|
+
### Default Slot
|
|
34
|
+
<!-- Main content -->
|
|
35
|
+
|
|
36
|
+
### Named Slots
|
|
37
|
+
<!-- Additional slot points -->
|
|
38
|
+
|
|
39
|
+
### Properties
|
|
40
|
+
<!-- Key properties with types -->
|
|
41
|
+
|
|
42
|
+
## Interactions
|
|
43
|
+
<!-- How users interact with this component. -->
|
|
44
|
+
|
|
45
|
+
## Accessibility Requirements
|
|
46
|
+
<!-- WCAG compliance, keyboard nav, ARIA patterns. -->
|
|
47
|
+
|
|
48
|
+
## Token Categories
|
|
49
|
+
<!-- Which token categories this component will use. -->
|
|
50
|
+
- color (background, content, border)
|
|
51
|
+
- spacing
|
|
52
|
+
- typography
|
|
53
|
+
|
|
54
|
+
## Composition Needs
|
|
55
|
+
<!-- Does it compose with or contain other Eddie components? -->
|
|
56
|
+
|
|
57
|
+
## Constraints
|
|
58
|
+
<!-- Hard requirements, edge cases, or known limitations. -->
|
|
59
|
+
|
|
60
|
+
## Pending Items
|
|
61
|
+
<!-- Anything that needs human clarification. Mark with [PENDING]. -->
|
|
62
|
+
`;
|
|
63
|
+
/** Section names in the brief for parsing */
|
|
64
|
+
export const BRIEF_SECTIONS = [
|
|
65
|
+
'Intent',
|
|
66
|
+
'User Stories',
|
|
67
|
+
'Variants',
|
|
68
|
+
'Sizes',
|
|
69
|
+
'States',
|
|
70
|
+
'Content Model',
|
|
71
|
+
'Interactions',
|
|
72
|
+
'Accessibility Requirements',
|
|
73
|
+
'Token Categories',
|
|
74
|
+
'Composition Needs',
|
|
75
|
+
'Constraints',
|
|
76
|
+
'Pending Items',
|
|
77
|
+
];
|
|
78
|
+
/**
|
|
79
|
+
* Parse a brief.md artifact into structured sections.
|
|
80
|
+
*/
|
|
81
|
+
export function parseBrief(content) {
|
|
82
|
+
const sections = {};
|
|
83
|
+
for (let i = 0; i < BRIEF_SECTIONS.length; i++) {
|
|
84
|
+
const section = BRIEF_SECTIONS[i];
|
|
85
|
+
const nextSection = BRIEF_SECTIONS[i + 1];
|
|
86
|
+
const startRegex = new RegExp(`^##\\s+${section}`, 'm');
|
|
87
|
+
const startMatch = startRegex.exec(content);
|
|
88
|
+
if (!startMatch)
|
|
89
|
+
continue;
|
|
90
|
+
const startIdx = startMatch.index + startMatch[0].length;
|
|
91
|
+
let endIdx = content.length;
|
|
92
|
+
if (nextSection) {
|
|
93
|
+
const endRegex = new RegExp(`^##\\s+${nextSection}`, 'm');
|
|
94
|
+
const endMatch = endRegex.exec(content.slice(startIdx));
|
|
95
|
+
if (endMatch) {
|
|
96
|
+
endIdx = startIdx + endMatch.index;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
sections[section] = content.slice(startIdx, endIdx).trim();
|
|
100
|
+
}
|
|
101
|
+
return sections;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check if the brief has any [PENDING] markers.
|
|
105
|
+
*/
|
|
106
|
+
export function hasPendingItems(content) {
|
|
107
|
+
return /\[PENDING\]/i.test(content);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Extract all [PENDING] markers from the brief.
|
|
111
|
+
*/
|
|
112
|
+
export function extractPendingItems(content) {
|
|
113
|
+
const items = [];
|
|
114
|
+
const regex = /\[PENDING\]\s*(.+?)$/gm;
|
|
115
|
+
let match;
|
|
116
|
+
while ((match = regex.exec(content)) !== null) {
|
|
117
|
+
items.push(match[1].trim());
|
|
118
|
+
}
|
|
119
|
+
return items;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=brief.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brief.js","sourceRoot":"","sources":["../../../src/pipeline/templates/brief.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuD7B,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,QAAQ;IACR,cAAc;IACd,UAAU;IACV,OAAO;IACP,QAAQ;IACR,eAAe;IACf,cAAc;IACd,4BAA4B;IAC5B,kBAAkB;IAClB,mBAAmB;IACnB,aAAa;IACb,eAAe;CACP,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1C,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE5B,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,UAAU,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;YACrC,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,wBAAwB,CAAC;IACvC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Rules Template — Structured template for the library researcher's output
|
|
3
|
+
*
|
|
4
|
+
* The component-rules.md artifact contains mandatory (CR-*) and advisory (AR-*)
|
|
5
|
+
* rules derived from the knowledge graph. The code writer MUST read this first.
|
|
6
|
+
*/
|
|
7
|
+
export declare const COMPONENT_RULES_TEMPLATE = "# Component Rules: {{componentName}}\n\n## Base Class Selection\n<!-- EdElement or EdFormElement. Include rationale. -->\n**Base Class:** EdElement\n**Rationale:**\n\n## Mandatory Rules (CR-*)\n<!-- Rules the code writer MUST follow. Violation = build failure. -->\n\n### CR-001: Tag Name\n- Tag: `ed-{{shortName}}`\n- CSS Class: `ed-c-{{shortName}}`\n\n### CR-002: BEM Naming\n- Block: `ed-c-{{shortName}}`\n- Elements: `ed-c-{{shortName}}__[element]`\n- Modifiers: `ed-c-{{shortName}}--[modifier]`\n\n### CR-003: Token Usage\n- No raw hex/px/font values\n- Use tier 2 (--ed-theme-*) or tier 3 tokens only\n- Intent must match property (background tokens for backgrounds, etc.)\n\n### CR-004: Base Class Contract\n<!-- Properties/methods inherited from the base class that must be used correctly. -->\n\n### CR-005: Slot Strategy\n<!-- Required slot structure. -->\n\n## Advisory Rules (AR-*)\n<!-- Recommendations. Can be overridden with rationale. -->\n\n### AR-001: Composition Patterns\n<!-- How this component should compose with others. -->\n\n### AR-002: Existing Component Reuse\n<!-- Components from the library that should be used internally. -->\n\n### AR-003: API Conventions\n<!-- Property naming: variant, size, text, title, label, iconName, etc. -->\n\n## Token Requirements\n<!-- Specific tokens this component should use. -->\n### Colors\n### Spacing\n### Typography\n### Other\n\n## Dependency Audit\n<!-- Other Eddie components this depends on. -->\n\n## Anti-Patterns\n<!-- Things explicitly NOT to do. -->\n";
|
|
8
|
+
/** Rule types */
|
|
9
|
+
export type RuleType = 'mandatory' | 'advisory';
|
|
10
|
+
/** A parsed rule */
|
|
11
|
+
export interface ParsedRule {
|
|
12
|
+
id: string;
|
|
13
|
+
type: RuleType;
|
|
14
|
+
title: string;
|
|
15
|
+
content: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parse component-rules.md into structured rules.
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseRules(content: string): ParsedRule[];
|
|
21
|
+
/**
|
|
22
|
+
* Extract the base class from component-rules.md.
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractBaseClass(content: string): 'EdElement' | 'EdFormElement';
|
|
25
|
+
//# sourceMappingURL=component-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-rules.d.ts","sourceRoot":"","sources":["../../../src/pipeline/templates/component-rules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,wBAAwB,8/CAsDpC,CAAC;AAEF,iBAAiB;AACjB,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEhD,oBAAoB;AACpB,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAwBxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,CAG/E"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Rules Template — Structured template for the library researcher's output
|
|
3
|
+
*
|
|
4
|
+
* The component-rules.md artifact contains mandatory (CR-*) and advisory (AR-*)
|
|
5
|
+
* rules derived from the knowledge graph. The code writer MUST read this first.
|
|
6
|
+
*/
|
|
7
|
+
export const COMPONENT_RULES_TEMPLATE = `# Component Rules: {{componentName}}
|
|
8
|
+
|
|
9
|
+
## Base Class Selection
|
|
10
|
+
<!-- EdElement or EdFormElement. Include rationale. -->
|
|
11
|
+
**Base Class:** EdElement
|
|
12
|
+
**Rationale:**
|
|
13
|
+
|
|
14
|
+
## Mandatory Rules (CR-*)
|
|
15
|
+
<!-- Rules the code writer MUST follow. Violation = build failure. -->
|
|
16
|
+
|
|
17
|
+
### CR-001: Tag Name
|
|
18
|
+
- Tag: \`ed-{{shortName}}\`
|
|
19
|
+
- CSS Class: \`ed-c-{{shortName}}\`
|
|
20
|
+
|
|
21
|
+
### CR-002: BEM Naming
|
|
22
|
+
- Block: \`ed-c-{{shortName}}\`
|
|
23
|
+
- Elements: \`ed-c-{{shortName}}__[element]\`
|
|
24
|
+
- Modifiers: \`ed-c-{{shortName}}--[modifier]\`
|
|
25
|
+
|
|
26
|
+
### CR-003: Token Usage
|
|
27
|
+
- No raw hex/px/font values
|
|
28
|
+
- Use tier 2 (--ed-theme-*) or tier 3 tokens only
|
|
29
|
+
- Intent must match property (background tokens for backgrounds, etc.)
|
|
30
|
+
|
|
31
|
+
### CR-004: Base Class Contract
|
|
32
|
+
<!-- Properties/methods inherited from the base class that must be used correctly. -->
|
|
33
|
+
|
|
34
|
+
### CR-005: Slot Strategy
|
|
35
|
+
<!-- Required slot structure. -->
|
|
36
|
+
|
|
37
|
+
## Advisory Rules (AR-*)
|
|
38
|
+
<!-- Recommendations. Can be overridden with rationale. -->
|
|
39
|
+
|
|
40
|
+
### AR-001: Composition Patterns
|
|
41
|
+
<!-- How this component should compose with others. -->
|
|
42
|
+
|
|
43
|
+
### AR-002: Existing Component Reuse
|
|
44
|
+
<!-- Components from the library that should be used internally. -->
|
|
45
|
+
|
|
46
|
+
### AR-003: API Conventions
|
|
47
|
+
<!-- Property naming: variant, size, text, title, label, iconName, etc. -->
|
|
48
|
+
|
|
49
|
+
## Token Requirements
|
|
50
|
+
<!-- Specific tokens this component should use. -->
|
|
51
|
+
### Colors
|
|
52
|
+
### Spacing
|
|
53
|
+
### Typography
|
|
54
|
+
### Other
|
|
55
|
+
|
|
56
|
+
## Dependency Audit
|
|
57
|
+
<!-- Other Eddie components this depends on. -->
|
|
58
|
+
|
|
59
|
+
## Anti-Patterns
|
|
60
|
+
<!-- Things explicitly NOT to do. -->
|
|
61
|
+
`;
|
|
62
|
+
/**
|
|
63
|
+
* Parse component-rules.md into structured rules.
|
|
64
|
+
*/
|
|
65
|
+
export function parseRules(content) {
|
|
66
|
+
const rules = [];
|
|
67
|
+
// Match CR-### and AR-### sections
|
|
68
|
+
const ruleRegex = /###\s+(CR|AR)-(\d+):\s*(.+?)(?=\n###|\n## |$)/gs;
|
|
69
|
+
let match;
|
|
70
|
+
while ((match = ruleRegex.exec(content)) !== null) {
|
|
71
|
+
const prefix = match[1];
|
|
72
|
+
const number = match[2];
|
|
73
|
+
const titleAndContent = match[3];
|
|
74
|
+
const lines = titleAndContent.split('\n');
|
|
75
|
+
const title = lines[0].trim();
|
|
76
|
+
const ruleContent = lines.slice(1).join('\n').trim();
|
|
77
|
+
rules.push({
|
|
78
|
+
id: `${prefix}-${number}`,
|
|
79
|
+
type: prefix === 'CR' ? 'mandatory' : 'advisory',
|
|
80
|
+
title,
|
|
81
|
+
content: ruleContent,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return rules;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Extract the base class from component-rules.md.
|
|
88
|
+
*/
|
|
89
|
+
export function extractBaseClass(content) {
|
|
90
|
+
const match = /\*\*Base Class:\*\*\s*(EdElement|EdFormElement)/i.exec(content);
|
|
91
|
+
return match?.[1] ?? 'EdElement';
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=component-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-rules.js","sourceRoot":"","sources":["../../../src/pipeline/templates/component-rules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDvC,CAAC;AAaF;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,mCAAmC;IACnC,MAAM,SAAS,GAAG,iDAAiD,CAAC;IACpE,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAErD,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE;YACzB,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;YAChD,KAAK;YACL,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,kDAAkD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/E,OAAQ,KAAK,EAAE,CAAC,CAAC,CAAmC,IAAI,WAAW,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline Templates — Re-exports all artifact templates
|
|
3
|
+
*/
|
|
4
|
+
export { BRIEF_TEMPLATE, parseBrief, hasPendingItems, extractPendingItems } from './brief.js';
|
|
5
|
+
export { COMPONENT_RULES_TEMPLATE, parseRules, extractBaseClass } from './component-rules.js';
|
|
6
|
+
export { ARCHITECTURE_TEMPLATE, extractProperties, extractRenderStructure, extractScssStructure, } from './architecture.js';
|
|
7
|
+
export type { ParsedRule, RuleType } from './component-rules.js';
|
|
8
|
+
export type { ArchitectureProperty } from './architecture.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pipeline/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline Templates — Re-exports all artifact templates
|
|
3
|
+
*/
|
|
4
|
+
export { BRIEF_TEMPLATE, parseBrief, hasPendingItems, extractPendingItems } from './brief.js';
|
|
5
|
+
export { COMPONENT_RULES_TEMPLATE, parseRules, extractBaseClass } from './component-rules.js';
|
|
6
|
+
export { ARCHITECTURE_TEMPLATE, extractProperties, extractRenderStructure, extractScssStructure, } from './architecture.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipeline/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ToolHandler — Executes eddie-brain tools without MCP transport
|
|
3
|
+
*
|
|
4
|
+
* Replicates the dispatch logic from mcp/server.ts but calls
|
|
5
|
+
* KnowledgeGraph/TokenValidator/NamingValidator/HealthScorer directly.
|
|
6
|
+
* Returns plain strings instead of MCP content objects.
|
|
7
|
+
*/
|
|
8
|
+
import type { KnowledgeGraph } from '../knowledge-graph/index.js';
|
|
9
|
+
import type { EddieTool } from './types.js';
|
|
10
|
+
export declare function setDesignSystemsMcpHandler(handler: (toolName: string, input: Record<string, unknown>) => Promise<string>): void;
|
|
11
|
+
/** Tool input/output description for Anthropic API tool definitions */
|
|
12
|
+
export interface ToolDefinition {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
input_schema: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Execute an eddie-brain tool call and return the result as a string.
|
|
19
|
+
*/
|
|
20
|
+
export declare function executeToolCall(toolName: EddieTool, toolInput: Record<string, unknown>, knowledgeGraph: KnowledgeGraph, rootDir: string): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Build Anthropic API tool definitions for the specified tools.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildToolDefinitions(tools: EddieTool[]): ToolDefinition[];
|
|
25
|
+
//# sourceMappingURL=tool-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-handler.d.ts","sourceRoot":"","sources":["../../src/pipeline/tool-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAC7E,IAAI,CAEN;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAqCjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAEzE"}
|