@manifesto-ai/compiler 1.0.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 +313 -0
- package/dist/__tests__/domain.test.d.ts +2 -0
- package/dist/__tests__/domain.test.d.ts.map +1 -0
- package/dist/__tests__/domain.test.js +56 -0
- package/dist/__tests__/domain.test.js.map +1 -0
- package/dist/__tests__/effects.test.d.ts +2 -0
- package/dist/__tests__/effects.test.d.ts.map +1 -0
- package/dist/__tests__/effects.test.js +145 -0
- package/dist/__tests__/effects.test.js.map +1 -0
- package/dist/__tests__/helpers/mock-adapter.d.ts +47 -0
- package/dist/__tests__/helpers/mock-adapter.d.ts.map +1 -0
- package/dist/__tests__/helpers/mock-adapter.js +135 -0
- package/dist/__tests__/helpers/mock-adapter.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +2 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +220 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/__tests__/parser.test.d.ts +2 -0
- package/dist/__tests__/parser.test.d.ts.map +1 -0
- package/dist/__tests__/parser.test.js +118 -0
- package/dist/__tests__/parser.test.js.map +1 -0
- package/dist/__tests__/telemetry.test.d.ts +2 -0
- package/dist/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/__tests__/telemetry.test.js +207 -0
- package/dist/__tests__/telemetry.test.js.map +1 -0
- package/dist/api/compiler.d.ts +86 -0
- package/dist/api/compiler.d.ts.map +1 -0
- package/dist/api/compiler.js +302 -0
- package/dist/api/compiler.js.map +1 -0
- package/dist/api/factory.d.ts +27 -0
- package/dist/api/factory.d.ts.map +1 -0
- package/dist/api/factory.js +60 -0
- package/dist/api/factory.js.map +1 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +3 -0
- package/dist/api/index.js.map +1 -0
- package/dist/cli/App.d.ts +10 -0
- package/dist/cli/App.d.ts.map +1 -0
- package/dist/cli/App.js +75 -0
- package/dist/cli/App.js.map +1 -0
- package/dist/cli/components/Error.d.ts +10 -0
- package/dist/cli/components/Error.d.ts.map +1 -0
- package/dist/cli/components/Error.js +21 -0
- package/dist/cli/components/Error.js.map +1 -0
- package/dist/cli/components/Header.d.ts +10 -0
- package/dist/cli/components/Header.d.ts.map +1 -0
- package/dist/cli/components/Header.js +11 -0
- package/dist/cli/components/Header.js.map +1 -0
- package/dist/cli/components/Metrics.d.ts +10 -0
- package/dist/cli/components/Metrics.d.ts.map +1 -0
- package/dist/cli/components/Metrics.js +29 -0
- package/dist/cli/components/Metrics.js.map +1 -0
- package/dist/cli/components/Progress.d.ts +10 -0
- package/dist/cli/components/Progress.d.ts.map +1 -0
- package/dist/cli/components/Progress.js +37 -0
- package/dist/cli/components/Progress.js.map +1 -0
- package/dist/cli/components/Resolution.d.ts +11 -0
- package/dist/cli/components/Resolution.d.ts.map +1 -0
- package/dist/cli/components/Resolution.js +26 -0
- package/dist/cli/components/Resolution.js.map +1 -0
- package/dist/cli/components/Result.d.ts +10 -0
- package/dist/cli/components/Result.d.ts.map +1 -0
- package/dist/cli/components/Result.js +38 -0
- package/dist/cli/components/Result.js.map +1 -0
- package/dist/cli/components/StatusBar.d.ts +10 -0
- package/dist/cli/components/StatusBar.d.ts.map +1 -0
- package/dist/cli/components/StatusBar.js +21 -0
- package/dist/cli/components/StatusBar.js.map +1 -0
- package/dist/cli/hooks/useCompiler.d.ts +22 -0
- package/dist/cli/hooks/useCompiler.d.ts.map +1 -0
- package/dist/cli/hooks/useCompiler.js +214 -0
- package/dist/cli/hooks/useCompiler.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +178 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/types.d.ts +96 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +26 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/domain/domain.d.ts +76 -0
- package/dist/domain/domain.d.ts.map +1 -0
- package/dist/domain/domain.js +251 -0
- package/dist/domain/domain.js.map +1 -0
- package/dist/domain/index.d.ts +4 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +4 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/schema.d.ts +198 -0
- package/dist/domain/schema.d.ts.map +1 -0
- package/dist/domain/schema.js +131 -0
- package/dist/domain/schema.js.map +1 -0
- package/dist/domain/types.d.ts +360 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +2 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/effects/builder/index.d.ts +2 -0
- package/dist/effects/builder/index.d.ts.map +1 -0
- package/dist/effects/builder/index.js +2 -0
- package/dist/effects/builder/index.js.map +1 -0
- package/dist/effects/builder/validate-handler.d.ts +27 -0
- package/dist/effects/builder/validate-handler.d.ts.map +1 -0
- package/dist/effects/builder/validate-handler.js +153 -0
- package/dist/effects/builder/validate-handler.js.map +1 -0
- package/dist/effects/index.d.ts +3 -0
- package/dist/effects/index.d.ts.map +1 -0
- package/dist/effects/index.js +5 -0
- package/dist/effects/index.js.map +1 -0
- package/dist/effects/llm/adapter.d.ts +123 -0
- package/dist/effects/llm/adapter.d.ts.map +1 -0
- package/dist/effects/llm/adapter.js +13 -0
- package/dist/effects/llm/adapter.js.map +1 -0
- package/dist/effects/llm/anthropic-adapter.d.ts +65 -0
- package/dist/effects/llm/anthropic-adapter.d.ts.map +1 -0
- package/dist/effects/llm/anthropic-adapter.js +178 -0
- package/dist/effects/llm/anthropic-adapter.js.map +1 -0
- package/dist/effects/llm/handlers.d.ts +44 -0
- package/dist/effects/llm/handlers.d.ts.map +1 -0
- package/dist/effects/llm/handlers.js +127 -0
- package/dist/effects/llm/handlers.js.map +1 -0
- package/dist/effects/llm/index.d.ts +7 -0
- package/dist/effects/llm/index.d.ts.map +1 -0
- package/dist/effects/llm/index.js +10 -0
- package/dist/effects/llm/index.js.map +1 -0
- package/dist/effects/llm/openai-adapter.d.ts +59 -0
- package/dist/effects/llm/openai-adapter.d.ts.map +1 -0
- package/dist/effects/llm/openai-adapter.js +206 -0
- package/dist/effects/llm/openai-adapter.js.map +1 -0
- package/dist/effects/llm/parser.d.ts +63 -0
- package/dist/effects/llm/parser.d.ts.map +1 -0
- package/dist/effects/llm/parser.js +177 -0
- package/dist/effects/llm/parser.js.map +1 -0
- package/dist/effects/llm/prompts/index.d.ts +4 -0
- package/dist/effects/llm/prompts/index.d.ts.map +1 -0
- package/dist/effects/llm/prompts/index.js +4 -0
- package/dist/effects/llm/prompts/index.js.map +1 -0
- package/dist/effects/llm/prompts/normalize.d.ts +19 -0
- package/dist/effects/llm/prompts/normalize.d.ts.map +1 -0
- package/dist/effects/llm/prompts/normalize.js +98 -0
- package/dist/effects/llm/prompts/normalize.js.map +1 -0
- package/dist/effects/llm/prompts/propose.d.ts +21 -0
- package/dist/effects/llm/prompts/propose.d.ts.map +1 -0
- package/dist/effects/llm/prompts/propose.js +326 -0
- package/dist/effects/llm/prompts/propose.js.map +1 -0
- package/dist/effects/llm/prompts/segment.d.ts +16 -0
- package/dist/effects/llm/prompts/segment.d.ts.map +1 -0
- package/dist/effects/llm/prompts/segment.js +57 -0
- package/dist/effects/llm/prompts/segment.js.map +1 -0
- package/dist/effects/types.d.ts +10 -0
- package/dist/effects/types.d.ts.map +1 -0
- package/dist/effects/types.js +2 -0
- package/dist/effects/types.js.map +1 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import type { DomainSchema as CoreDomainSchema } from "@manifesto-ai/core";
|
|
2
|
+
/**
|
|
3
|
+
* Compiler context for additional information
|
|
4
|
+
*/
|
|
5
|
+
export interface CompilerContext {
|
|
6
|
+
/**
|
|
7
|
+
* Name of the domain being compiled
|
|
8
|
+
*/
|
|
9
|
+
domainName?: string;
|
|
10
|
+
/**
|
|
11
|
+
* List of existing action names (for context)
|
|
12
|
+
*/
|
|
13
|
+
existingActions?: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Glossary of domain-specific terms
|
|
16
|
+
*/
|
|
17
|
+
glossary?: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Normalized intent - structured representation of a requirement
|
|
21
|
+
*/
|
|
22
|
+
export interface NormalizedIntent {
|
|
23
|
+
/**
|
|
24
|
+
* Intent kind
|
|
25
|
+
*/
|
|
26
|
+
kind: "state" | "computed" | "action" | "constraint";
|
|
27
|
+
/**
|
|
28
|
+
* Human-readable description
|
|
29
|
+
*/
|
|
30
|
+
description: string;
|
|
31
|
+
/**
|
|
32
|
+
* Confidence level (0.0 - 1.0)
|
|
33
|
+
*/
|
|
34
|
+
confidence: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Attempt record - tracks validation attempts
|
|
38
|
+
*/
|
|
39
|
+
export interface AttemptRecord {
|
|
40
|
+
/**
|
|
41
|
+
* Attempt number (0-indexed)
|
|
42
|
+
*/
|
|
43
|
+
attemptNumber: number;
|
|
44
|
+
/**
|
|
45
|
+
* Hash of the draft for correlation
|
|
46
|
+
*/
|
|
47
|
+
draftHash: string;
|
|
48
|
+
/**
|
|
49
|
+
* Validation diagnostics from this attempt
|
|
50
|
+
*/
|
|
51
|
+
diagnostics: CompilerDiagnostics | null;
|
|
52
|
+
/**
|
|
53
|
+
* Timestamp of the attempt (from effect handler)
|
|
54
|
+
*/
|
|
55
|
+
timestamp: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Resolution option - choice for ambiguity resolution
|
|
59
|
+
*/
|
|
60
|
+
export interface ResolutionOption {
|
|
61
|
+
/**
|
|
62
|
+
* Unique identifier
|
|
63
|
+
*/
|
|
64
|
+
id: string;
|
|
65
|
+
/**
|
|
66
|
+
* Human-readable description
|
|
67
|
+
*/
|
|
68
|
+
description: string;
|
|
69
|
+
/**
|
|
70
|
+
* Optional preview of what this option produces
|
|
71
|
+
*/
|
|
72
|
+
preview?: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Discard reason codes
|
|
76
|
+
*/
|
|
77
|
+
export type DiscardReason = "RESOLUTION_REQUIRED_BUT_DISABLED" | "MAX_RETRIES_EXCEEDED" | "EMPTY_INPUT" | "SEGMENTATION_FAILED" | "USER_CANCELLED";
|
|
78
|
+
/**
|
|
79
|
+
* Compilation status
|
|
80
|
+
*/
|
|
81
|
+
export type CompilerStatus = "idle" | "segmenting" | "normalizing" | "proposing" | "validating" | "awaiting_resolution" | "success" | "discarded";
|
|
82
|
+
/**
|
|
83
|
+
* Resolution policy
|
|
84
|
+
*/
|
|
85
|
+
export interface CompilerResolutionPolicy {
|
|
86
|
+
/**
|
|
87
|
+
* What to do when resolution is required
|
|
88
|
+
*/
|
|
89
|
+
onResolutionRequired: "await" | "discard";
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Simplified diagnostics for compiler use
|
|
93
|
+
*/
|
|
94
|
+
export interface CompilerDiagnostics {
|
|
95
|
+
valid: boolean;
|
|
96
|
+
errors: CompilerDiagnostic[];
|
|
97
|
+
warnings: CompilerDiagnostic[];
|
|
98
|
+
}
|
|
99
|
+
export interface CompilerDiagnostic {
|
|
100
|
+
code: string;
|
|
101
|
+
message: string;
|
|
102
|
+
path?: string;
|
|
103
|
+
suggestion?: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Compiler state - full state of the compiler domain
|
|
107
|
+
*/
|
|
108
|
+
export interface CompilerState {
|
|
109
|
+
input: string | null;
|
|
110
|
+
targetSchema: unknown | null;
|
|
111
|
+
context: CompilerContext | null;
|
|
112
|
+
maxRetries: number;
|
|
113
|
+
traceDrafts: boolean;
|
|
114
|
+
segments: string[];
|
|
115
|
+
intents: NormalizedIntent[];
|
|
116
|
+
currentDraft: unknown | null;
|
|
117
|
+
diagnostics: CompilerDiagnostics | null;
|
|
118
|
+
attemptCount: number;
|
|
119
|
+
attempts: AttemptRecord[];
|
|
120
|
+
resolutionOptions: ResolutionOption[];
|
|
121
|
+
resolutionReason: string | null;
|
|
122
|
+
status: CompilerStatus;
|
|
123
|
+
result: CoreDomainSchema | null;
|
|
124
|
+
resultHash: string | null;
|
|
125
|
+
discardReason: DiscardReason | null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Compiler snapshot - exposed state with computed values
|
|
129
|
+
*/
|
|
130
|
+
export interface CompilerSnapshot extends CompilerState {
|
|
131
|
+
isIdle: boolean;
|
|
132
|
+
isSegmenting: boolean;
|
|
133
|
+
isNormalizing: boolean;
|
|
134
|
+
isProposing: boolean;
|
|
135
|
+
isValidating: boolean;
|
|
136
|
+
isAwaitingResolution: boolean;
|
|
137
|
+
isTerminal: boolean;
|
|
138
|
+
canRetry: boolean;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Compiler options
|
|
142
|
+
*/
|
|
143
|
+
export interface CompilerOptions {
|
|
144
|
+
/**
|
|
145
|
+
* LLM adapter for text processing.
|
|
146
|
+
* If provided, takes precedence over anthropic/openai options.
|
|
147
|
+
*/
|
|
148
|
+
llmAdapter?: LLMAdapter;
|
|
149
|
+
/**
|
|
150
|
+
* Anthropic adapter options.
|
|
151
|
+
* Used if llmAdapter is not provided and openai is not specified.
|
|
152
|
+
*/
|
|
153
|
+
anthropic?: {
|
|
154
|
+
apiKey?: string;
|
|
155
|
+
model?: string;
|
|
156
|
+
maxTokens?: number;
|
|
157
|
+
temperature?: number;
|
|
158
|
+
timeout?: number;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* OpenAI adapter options.
|
|
162
|
+
* Used if llmAdapter is not provided. Takes precedence over anthropic.
|
|
163
|
+
*/
|
|
164
|
+
openai?: {
|
|
165
|
+
apiKey?: string;
|
|
166
|
+
baseURL?: string;
|
|
167
|
+
organization?: string;
|
|
168
|
+
model?: string;
|
|
169
|
+
maxTokens?: number;
|
|
170
|
+
temperature?: number;
|
|
171
|
+
timeout?: number;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Resolution policy (default: 'discard')
|
|
175
|
+
*/
|
|
176
|
+
resolutionPolicy?: CompilerResolutionPolicy;
|
|
177
|
+
/**
|
|
178
|
+
* Maximum retries (default: 5)
|
|
179
|
+
*/
|
|
180
|
+
maxRetries?: number;
|
|
181
|
+
/**
|
|
182
|
+
* Whether to trace drafts (default: false)
|
|
183
|
+
*/
|
|
184
|
+
traceDrafts?: boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Telemetry hook for monitoring compilation (optional)
|
|
187
|
+
* Per SPEC §15.2
|
|
188
|
+
*/
|
|
189
|
+
telemetry?: CompilerTelemetry;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Compile input
|
|
193
|
+
*/
|
|
194
|
+
export interface CompileInput {
|
|
195
|
+
/**
|
|
196
|
+
* Natural language text to compile
|
|
197
|
+
*/
|
|
198
|
+
text: string;
|
|
199
|
+
/**
|
|
200
|
+
* Target schema (optional)
|
|
201
|
+
*/
|
|
202
|
+
schema?: unknown;
|
|
203
|
+
/**
|
|
204
|
+
* Additional context
|
|
205
|
+
*/
|
|
206
|
+
context?: CompilerContext;
|
|
207
|
+
/**
|
|
208
|
+
* Override max retries
|
|
209
|
+
*/
|
|
210
|
+
maxRetries?: number;
|
|
211
|
+
/**
|
|
212
|
+
* Override trace drafts
|
|
213
|
+
*/
|
|
214
|
+
traceDrafts?: boolean;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* LLM Result types
|
|
218
|
+
*/
|
|
219
|
+
export type LLMResult<T> = {
|
|
220
|
+
ok: true;
|
|
221
|
+
data: T;
|
|
222
|
+
} | {
|
|
223
|
+
ok: "resolution";
|
|
224
|
+
reason: string;
|
|
225
|
+
options: ResolutionOption[];
|
|
226
|
+
} | {
|
|
227
|
+
ok: false;
|
|
228
|
+
error: string;
|
|
229
|
+
};
|
|
230
|
+
export type SegmentResult = LLMResult<{
|
|
231
|
+
segments: string[];
|
|
232
|
+
}>;
|
|
233
|
+
export type NormalizeResult = LLMResult<{
|
|
234
|
+
intents: NormalizedIntent[];
|
|
235
|
+
}>;
|
|
236
|
+
export type ProposeResult = LLMResult<{
|
|
237
|
+
draft: unknown;
|
|
238
|
+
}>;
|
|
239
|
+
/**
|
|
240
|
+
* LLM Adapter interface
|
|
241
|
+
*/
|
|
242
|
+
export interface LLMAdapter {
|
|
243
|
+
/**
|
|
244
|
+
* Segment natural language text into requirement segments
|
|
245
|
+
*/
|
|
246
|
+
segment(params: {
|
|
247
|
+
text: string;
|
|
248
|
+
}): Promise<SegmentResult>;
|
|
249
|
+
/**
|
|
250
|
+
* Normalize segments into structured intents
|
|
251
|
+
*/
|
|
252
|
+
normalize(params: {
|
|
253
|
+
segments: string[];
|
|
254
|
+
schema: unknown;
|
|
255
|
+
context?: CompilerContext;
|
|
256
|
+
}): Promise<NormalizeResult>;
|
|
257
|
+
/**
|
|
258
|
+
* Propose a DomainDraft from intents
|
|
259
|
+
*/
|
|
260
|
+
propose(params: {
|
|
261
|
+
schema: unknown;
|
|
262
|
+
intents: NormalizedIntent[];
|
|
263
|
+
history: AttemptRecord[];
|
|
264
|
+
context?: CompilerContext;
|
|
265
|
+
resolution?: string;
|
|
266
|
+
}): Promise<ProposeResult>;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Unsubscribe function
|
|
270
|
+
*/
|
|
271
|
+
export type Unsubscribe = () => void;
|
|
272
|
+
/**
|
|
273
|
+
* Compiler interface
|
|
274
|
+
*/
|
|
275
|
+
export interface Compiler {
|
|
276
|
+
/**
|
|
277
|
+
* Start compilation
|
|
278
|
+
*/
|
|
279
|
+
start(input: CompileInput): Promise<void>;
|
|
280
|
+
/**
|
|
281
|
+
* Get current state
|
|
282
|
+
*/
|
|
283
|
+
getSnapshot(): Promise<CompilerSnapshot>;
|
|
284
|
+
/**
|
|
285
|
+
* Subscribe to state changes
|
|
286
|
+
*/
|
|
287
|
+
subscribe(callback: (state: CompilerSnapshot) => void): Unsubscribe;
|
|
288
|
+
/**
|
|
289
|
+
* Dispatch an action
|
|
290
|
+
*/
|
|
291
|
+
dispatch(action: string, input?: unknown): Promise<void>;
|
|
292
|
+
/**
|
|
293
|
+
* Resolve ambiguity
|
|
294
|
+
*/
|
|
295
|
+
resolve(selectedOptionId: string): Promise<void>;
|
|
296
|
+
/**
|
|
297
|
+
* Discard compilation
|
|
298
|
+
*/
|
|
299
|
+
discard(reason?: DiscardReason): Promise<void>;
|
|
300
|
+
/**
|
|
301
|
+
* Reset to idle
|
|
302
|
+
*/
|
|
303
|
+
reset(): Promise<void>;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Effect handler result - returned by effect handlers
|
|
307
|
+
*/
|
|
308
|
+
export interface EffectHandlerResult {
|
|
309
|
+
action: string;
|
|
310
|
+
input: Record<string, unknown>;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Telemetry hook for monitoring compiler execution
|
|
314
|
+
*
|
|
315
|
+
* Per SPEC §15.2: Allows external systems to observe compilation progress
|
|
316
|
+
* for debugging, monitoring, and analytics purposes.
|
|
317
|
+
*/
|
|
318
|
+
export interface CompilerTelemetry {
|
|
319
|
+
/**
|
|
320
|
+
* Called when compilation phase changes
|
|
321
|
+
* @param from - Previous status
|
|
322
|
+
* @param to - New status
|
|
323
|
+
*/
|
|
324
|
+
onPhaseChange?(from: CompilerStatus, to: CompilerStatus): void;
|
|
325
|
+
/**
|
|
326
|
+
* Called when a validation attempt is recorded (when traceDrafts is true)
|
|
327
|
+
* @param attempt - The recorded attempt
|
|
328
|
+
*/
|
|
329
|
+
onAttempt?(attempt: AttemptRecord): void;
|
|
330
|
+
/**
|
|
331
|
+
* Called when resolution is requested from external system
|
|
332
|
+
* @param reason - Why resolution is needed
|
|
333
|
+
* @param options - Available resolution options
|
|
334
|
+
*/
|
|
335
|
+
onResolutionRequested?(reason: string, options: ResolutionOption[]): void;
|
|
336
|
+
/**
|
|
337
|
+
* Called when compilation completes (success or discarded)
|
|
338
|
+
* @param result - Final compiler snapshot
|
|
339
|
+
*/
|
|
340
|
+
onComplete?(result: CompilerSnapshot): void;
|
|
341
|
+
/**
|
|
342
|
+
* Called when an effect is about to be executed
|
|
343
|
+
* @param effectType - Type of effect (e.g., 'llm:segment')
|
|
344
|
+
* @param params - Effect parameters
|
|
345
|
+
*/
|
|
346
|
+
onEffectStart?(effectType: string, params: Record<string, unknown>): void;
|
|
347
|
+
/**
|
|
348
|
+
* Called when an effect completes
|
|
349
|
+
* @param effectType - Type of effect
|
|
350
|
+
* @param result - Effect handler result
|
|
351
|
+
*/
|
|
352
|
+
onEffectEnd?(effectType: string, result: EffectHandlerResult): void;
|
|
353
|
+
/**
|
|
354
|
+
* Called on any error during compilation
|
|
355
|
+
* @param error - The error that occurred
|
|
356
|
+
* @param context - Context where error occurred (e.g., 'effect:llm:segment')
|
|
357
|
+
*/
|
|
358
|
+
onError?(error: Error, context: string): void;
|
|
359
|
+
}
|
|
360
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/effects/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/effects/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAG7B,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { EffectHandlerResult } from "../llm/handlers.js";
|
|
2
|
+
import type { CompilerDiagnostics } from "../../domain/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Builder validate effect handler type
|
|
5
|
+
*/
|
|
6
|
+
export type BuilderValidateHandler = (params: Record<string, unknown>) => Promise<EffectHandlerResult>;
|
|
7
|
+
/**
|
|
8
|
+
* Create builder:validate effect handler
|
|
9
|
+
*
|
|
10
|
+
* Per FDR-C010: Builder.validateDomain() MUST be the sole judge of DomainDraft validity.
|
|
11
|
+
* Compiler MUST NOT implement validation logic.
|
|
12
|
+
*
|
|
13
|
+
* This handler wraps the Builder validation and returns the result as an action.
|
|
14
|
+
*
|
|
15
|
+
* @param validateFn - Optional custom validation function (for testing)
|
|
16
|
+
*/
|
|
17
|
+
export declare function createBuilderValidateHandler(validateFn?: (draft: unknown) => ValidateResult): BuilderValidateHandler;
|
|
18
|
+
/**
|
|
19
|
+
* Validation result from Builder
|
|
20
|
+
*/
|
|
21
|
+
export interface ValidateResult {
|
|
22
|
+
valid: boolean;
|
|
23
|
+
schema?: unknown;
|
|
24
|
+
schemaHash?: string;
|
|
25
|
+
diagnostics: CompilerDiagnostics;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=validate-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-handler.d.ts","sourceRoot":"","sources":["../../../src/effects/builder/validate-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,cAAc,GAC9C,sBAAsB,CA+CxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,mBAAmB,CAAC;CAClC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create builder:validate effect handler
|
|
3
|
+
*
|
|
4
|
+
* Per FDR-C010: Builder.validateDomain() MUST be the sole judge of DomainDraft validity.
|
|
5
|
+
* Compiler MUST NOT implement validation logic.
|
|
6
|
+
*
|
|
7
|
+
* This handler wraps the Builder validation and returns the result as an action.
|
|
8
|
+
*
|
|
9
|
+
* @param validateFn - Optional custom validation function (for testing)
|
|
10
|
+
*/
|
|
11
|
+
export function createBuilderValidateHandler(validateFn) {
|
|
12
|
+
const validate = validateFn ?? defaultValidate;
|
|
13
|
+
return async (params) => {
|
|
14
|
+
const draft = params.draft;
|
|
15
|
+
const timestamp = Date.now();
|
|
16
|
+
try {
|
|
17
|
+
const result = validate(draft);
|
|
18
|
+
return {
|
|
19
|
+
action: "receiveValidation",
|
|
20
|
+
input: {
|
|
21
|
+
valid: result.valid,
|
|
22
|
+
schema: result.valid ? result.schema : null,
|
|
23
|
+
diagnostics: result.diagnostics,
|
|
24
|
+
schemaHash: result.valid ? result.schemaHash : null,
|
|
25
|
+
timestamp,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
// Validation threw an error - treat as invalid
|
|
31
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
32
|
+
const diagnostics = {
|
|
33
|
+
valid: false,
|
|
34
|
+
errors: [
|
|
35
|
+
{
|
|
36
|
+
code: "VALIDATION_ERROR",
|
|
37
|
+
message: `Builder validation threw: ${message}`,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
warnings: [],
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
action: "receiveValidation",
|
|
44
|
+
input: {
|
|
45
|
+
valid: false,
|
|
46
|
+
schema: null,
|
|
47
|
+
diagnostics,
|
|
48
|
+
schemaHash: null,
|
|
49
|
+
timestamp,
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Default validation function
|
|
57
|
+
*
|
|
58
|
+
* This is a placeholder that performs basic structural validation.
|
|
59
|
+
* In production, this would call the actual Builder.validateDomain().
|
|
60
|
+
*
|
|
61
|
+
* TODO: Integrate with actual @manifesto-ai/builder validateDomain
|
|
62
|
+
*/
|
|
63
|
+
function defaultValidate(draft) {
|
|
64
|
+
// Basic structural validation
|
|
65
|
+
if (!draft || typeof draft !== "object") {
|
|
66
|
+
return {
|
|
67
|
+
valid: false,
|
|
68
|
+
diagnostics: {
|
|
69
|
+
valid: false,
|
|
70
|
+
errors: [{ code: "INVALID_DRAFT", message: "Draft must be an object" }],
|
|
71
|
+
warnings: [],
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const d = draft;
|
|
76
|
+
// Check required fields
|
|
77
|
+
const requiredFields = ["id", "version", "state", "computed", "actions"];
|
|
78
|
+
const missingFields = requiredFields.filter((f) => !(f in d));
|
|
79
|
+
if (missingFields.length > 0) {
|
|
80
|
+
return {
|
|
81
|
+
valid: false,
|
|
82
|
+
diagnostics: {
|
|
83
|
+
valid: false,
|
|
84
|
+
errors: [
|
|
85
|
+
{
|
|
86
|
+
code: "MISSING_FIELDS",
|
|
87
|
+
message: `Draft missing required fields: ${missingFields.join(", ")}`,
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
warnings: [],
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// Check state structure
|
|
95
|
+
if (!d.state || typeof d.state !== "object") {
|
|
96
|
+
return {
|
|
97
|
+
valid: false,
|
|
98
|
+
diagnostics: {
|
|
99
|
+
valid: false,
|
|
100
|
+
errors: [{ code: "INVALID_STATE", message: "state must be an object" }],
|
|
101
|
+
warnings: [],
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// Check computed structure
|
|
106
|
+
if (!d.computed || typeof d.computed !== "object") {
|
|
107
|
+
return {
|
|
108
|
+
valid: false,
|
|
109
|
+
diagnostics: {
|
|
110
|
+
valid: false,
|
|
111
|
+
errors: [{ code: "INVALID_COMPUTED", message: "computed must be an object" }],
|
|
112
|
+
warnings: [],
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
// Check actions structure
|
|
117
|
+
if (!d.actions || typeof d.actions !== "object") {
|
|
118
|
+
return {
|
|
119
|
+
valid: false,
|
|
120
|
+
diagnostics: {
|
|
121
|
+
valid: false,
|
|
122
|
+
errors: [{ code: "INVALID_ACTIONS", message: "actions must be an object" }],
|
|
123
|
+
warnings: [],
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
// Generate a simple hash
|
|
128
|
+
const schemaHash = generateSimpleHash(JSON.stringify(draft));
|
|
129
|
+
// Valid draft
|
|
130
|
+
return {
|
|
131
|
+
valid: true,
|
|
132
|
+
schema: draft,
|
|
133
|
+
schemaHash,
|
|
134
|
+
diagnostics: {
|
|
135
|
+
valid: true,
|
|
136
|
+
errors: [],
|
|
137
|
+
warnings: [],
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Generate a simple hash for identification
|
|
143
|
+
*/
|
|
144
|
+
function generateSimpleHash(content) {
|
|
145
|
+
let hash = 0;
|
|
146
|
+
for (let i = 0; i < content.length; i++) {
|
|
147
|
+
const char = content.charCodeAt(i);
|
|
148
|
+
hash = (hash << 5) - hash + char;
|
|
149
|
+
hash = hash & hash;
|
|
150
|
+
}
|
|
151
|
+
return Math.abs(hash).toString(16).padStart(8, "0");
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=validate-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-handler.js","sourceRoot":"","sources":["../../../src/effects/builder/validate-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/effects/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/effects/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc,gBAAgB,CAAC;AAE/B,kBAAkB;AAClB,cAAc,oBAAoB,CAAC"}
|