@workos/oagen 0.3.0 → 0.5.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 +72 -1
- package/dist/cli/index.mjs +955 -90
- package/dist/cli/index.mjs.map +1 -1
- package/dist/compat/index.d.mts +1 -1
- package/dist/compat/index.mjs +9 -4
- package/dist/compat/index.mjs.map +1 -1
- package/dist/{diff-Cn6S74vV.mjs → diff-CSy3g-Bq.mjs} +541 -43
- package/dist/diff-CSy3g-Bq.mjs.map +1 -0
- package/dist/{differ-B6472Yef.mjs → differ-CG5ZErKl.mjs} +2 -2
- package/dist/{differ-B6472Yef.mjs.map → differ-CG5ZErKl.mjs.map} +1 -1
- package/dist/index.d.mts +111 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +340 -30
- package/dist/index.mjs.map +1 -1
- package/dist/scripts/smoke/baseline.mjs +317 -33
- package/dist/scripts/smoke/baseline.mjs.map +1 -1
- package/dist/smoke.d.mts +140 -0
- package/dist/smoke.d.mts.map +1 -1
- package/dist/smoke.mjs +317 -33
- package/dist/smoke.mjs.map +1 -1
- package/dist/{tree-sitter-DFRXfWg9.mjs → tree-sitter-C53w_0WE.mjs} +5 -7
- package/dist/tree-sitter-C53w_0WE.mjs.map +1 -0
- package/dist/{types-O25qZxMl.d.mts → types-D84LjrVG.d.mts} +167 -2
- package/dist/types-D84LjrVG.d.mts.map +1 -0
- package/dist/verify/index.d.mts +1 -1
- package/dist/verify/index.mjs +4 -4
- package/dist/verify/index.mjs.map +1 -1
- package/docs/agents/architecture.md +1 -1
- package/docs/architecture/emitter-contract.md +1 -2
- package/docs/architecture/ir-types.md +73 -1
- package/docs/architecture/pipeline.md +0 -1
- package/docs/cli.md +29 -8
- package/docs/core/minimal-emitter.md +0 -4
- package/docs/core/quickstart.md +0 -1
- package/examples/reference-emitter/README.md +0 -1
- package/examples/reference-emitter/src/emitter.ts +0 -5
- package/package.json +4 -4
- package/skills/review-operations/SKILL.md +83 -0
- package/dist/diff-Cn6S74vV.mjs.map +0 -1
- package/dist/tree-sitter-DFRXfWg9.mjs.map +0 -1
- package/dist/types-O25qZxMl.d.mts.map +0 -1
- package/examples/reference-emitter/src/generators/config.ts +0 -19
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,85 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as collectModelRefs, B as LoggingPolicy, C as TypeParam, D as assignModelsToServices, E as assertNever, F as BackoffStrategy, G as TelemetryPolicy, H as RequestGuardPolicy, I as DeepPartial, J as defaultSdkBehavior, K as TimeoutPolicy, L as ErrorPolicy, M as mapTypeRef, N as walkTypeRef, O as collectEnumRefs, P as AiAgentEnvVar, R as IdempotencyPolicy, S as SuccessResponse, T as UnionType, U as RetryPolicy, V as PaginationPolicy, W as SdkBehavior, Y as mergeSdkBehavior, _ as Parameter, a as EnumRef, b as ServerEntry, c as Field, d as MapType, f as Model, g as PaginationMeta, h as Operation, i as Enum, it as ApiSurface, j as collectRequestBodyModels, k as collectFieldDependencies, l as HttpMethod, m as NullableType, n as ArrayType, o as EnumValue, p as ModelRef, q as UserAgentPolicy, r as AuthScheme, s as ErrorResponse, st as Extractor, t as ApiSpec, u as LiteralType, ut as OverlayLookup, v as PrimitiveType, w as TypeRef, x as Service, y as SecurityRequirement, z as LogEvent } from "./types-D84LjrVG.mjs";
|
|
2
2
|
|
|
3
|
+
//#region src/ir/operation-hints.d.ts
|
|
4
|
+
/** Per-operation override keyed by "METHOD /path" (e.g. "POST /sso/token"). */
|
|
5
|
+
interface OperationHint {
|
|
6
|
+
/** Override the algorithm-derived method name. */
|
|
7
|
+
name?: string;
|
|
8
|
+
/** Remount this operation to a different service/namespace (PascalCase). */
|
|
9
|
+
mountOn?: string;
|
|
10
|
+
/** Split a union-body operation into N typed wrapper methods. */
|
|
11
|
+
split?: SplitHint[];
|
|
12
|
+
/** Inject constant body defaults (e.g. { grant_type: 'password' }). */
|
|
13
|
+
defaults?: Record<string, string | number | boolean>;
|
|
14
|
+
/** Fields the SDK reads from client config at runtime (e.g. ['client_id']). */
|
|
15
|
+
inferFromClient?: string[];
|
|
16
|
+
}
|
|
17
|
+
interface SplitHint {
|
|
18
|
+
/** Wrapper method name (snake_case). */
|
|
19
|
+
name: string;
|
|
20
|
+
/** The discriminated union variant model name (e.g. 'PasswordSessionAuthenticateRequest'). */
|
|
21
|
+
targetVariant: string;
|
|
22
|
+
/** Constant body fields injected by the wrapper. */
|
|
23
|
+
defaults?: Record<string, string | number | boolean>;
|
|
24
|
+
/** Fields the SDK reads from client config at runtime. */
|
|
25
|
+
inferFromClient?: string[];
|
|
26
|
+
/** Only these body fields are exposed as method params. If omitted, all non-default/non-inferred fields are exposed. */
|
|
27
|
+
exposedParams?: string[];
|
|
28
|
+
}
|
|
29
|
+
interface ResolvedOperation {
|
|
30
|
+
/** The original IR operation (preserves description, params, types, etc.). */
|
|
31
|
+
operation: Operation;
|
|
32
|
+
/** The original IR service that owns this operation. */
|
|
33
|
+
service: Service;
|
|
34
|
+
/** Resolved snake_case method name (emitters convert to their convention). */
|
|
35
|
+
methodName: string;
|
|
36
|
+
/** Resolved target service/namespace (PascalCase). */
|
|
37
|
+
mountOn: string;
|
|
38
|
+
/** For split operations: one wrapper per union variant. */
|
|
39
|
+
wrappers?: ResolvedWrapper[];
|
|
40
|
+
/** Constant defaults injected into query/body at runtime (from operation-level hint). */
|
|
41
|
+
defaults: Record<string, string | number | boolean>;
|
|
42
|
+
/** Fields the SDK reads from client config at runtime (from operation-level hint). */
|
|
43
|
+
inferFromClient: string[];
|
|
44
|
+
}
|
|
45
|
+
interface ResolvedWrapper {
|
|
46
|
+
/** Wrapper method name (snake_case). */
|
|
47
|
+
name: string;
|
|
48
|
+
/** The discriminated union variant model name. */
|
|
49
|
+
targetVariant: string;
|
|
50
|
+
/** Constant body defaults injected by the wrapper. */
|
|
51
|
+
defaults: Record<string, string | number | boolean>;
|
|
52
|
+
/** Fields read from client config at runtime. */
|
|
53
|
+
inferFromClient: string[];
|
|
54
|
+
/** Body fields exposed as method params. */
|
|
55
|
+
exposedParams: string[];
|
|
56
|
+
/** Optional body fields (not required in the variant). */
|
|
57
|
+
optionalParams: string[];
|
|
58
|
+
/** Response model name (if any). */
|
|
59
|
+
responseModelName: string | null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Derive a snake_case method name from an operation's HTTP method and path.
|
|
63
|
+
*
|
|
64
|
+
* Rules:
|
|
65
|
+
* 1. Strip path-param segments (`{id}`, `{slug}`, etc.)
|
|
66
|
+
* 2. If the terminal segment is an action verb, use it as the verb
|
|
67
|
+
* 3. Otherwise, use the CRUD verb for the HTTP method
|
|
68
|
+
* 4. For GET on a collection (no trailing {id}), use "list"; with {id}, use "get"
|
|
69
|
+
* 5. For POST on a resource path, if only one path param, use "create" singular
|
|
70
|
+
* 6. Singularize the resource noun for single-resource operations
|
|
71
|
+
*/
|
|
72
|
+
declare function deriveMethodName(op: Operation, _service: Service): string;
|
|
73
|
+
/**
|
|
74
|
+
* Resolve all operations in the spec, applying hints and mount rules.
|
|
75
|
+
*
|
|
76
|
+
* @param spec - The parsed API spec
|
|
77
|
+
* @param hints - Per-operation overrides keyed by "METHOD /path"
|
|
78
|
+
* @param mountRules - Service name → target service mappings
|
|
79
|
+
* @returns Resolved operations ready for emitter consumption
|
|
80
|
+
*/
|
|
81
|
+
declare function resolveOperations(spec: ApiSpec, hints?: Record<string, OperationHint>, mountRules?: Record<string, string>): ResolvedOperation[];
|
|
82
|
+
//#endregion
|
|
3
83
|
//#region src/errors.d.ts
|
|
4
84
|
/**
|
|
5
85
|
* Structured error hierarchy for oagen.
|
|
@@ -64,6 +144,8 @@ interface EmitterContext {
|
|
|
64
144
|
outputDir?: string;
|
|
65
145
|
apiSurface?: ApiSurface;
|
|
66
146
|
overlayLookup?: OverlayLookup;
|
|
147
|
+
/** Resolved operations from the hint-aware resolver. Populated by buildEmitterContext(). */
|
|
148
|
+
resolvedOperations?: ResolvedOperation[];
|
|
67
149
|
}
|
|
68
150
|
interface FormatCommand {
|
|
69
151
|
/** The executable to run (e.g., "npx", "gofmt", "bundle"). */
|
|
@@ -80,7 +162,6 @@ interface Emitter {
|
|
|
80
162
|
generateResources(services: Service[], ctx: EmitterContext): GeneratedFile[];
|
|
81
163
|
generateClient(spec: ApiSpec, ctx: EmitterContext): GeneratedFile[];
|
|
82
164
|
generateErrors(ctx: EmitterContext): GeneratedFile[];
|
|
83
|
-
generateConfig(ctx: EmitterContext): GeneratedFile[];
|
|
84
165
|
generateTypeSignatures?(spec: ApiSpec, ctx: EmitterContext): GeneratedFile[];
|
|
85
166
|
generateTests(spec: ApiSpec, ctx: EmitterContext): GeneratedFile[];
|
|
86
167
|
/** Optional: generate a smoke-manifest.json mapping operationIds to SDK methods */
|
|
@@ -198,6 +279,7 @@ interface ParamChange {
|
|
|
198
279
|
//#region src/parser/parse.d.ts
|
|
199
280
|
interface ParseOptions {
|
|
200
281
|
operationIdTransform?: (id: string) => string;
|
|
282
|
+
schemaNameTransform?: (name: string) => string;
|
|
201
283
|
}
|
|
202
284
|
declare function parseSpec(specPath: string, options?: ParseOptions): Promise<ApiSpec>;
|
|
203
285
|
//#endregion
|
|
@@ -209,6 +291,8 @@ declare function generate(spec: ApiSpec, emitter: Emitter, options: {
|
|
|
209
291
|
target?: string;
|
|
210
292
|
apiSurface?: ApiSurface;
|
|
211
293
|
overlayLookup?: OverlayLookup;
|
|
294
|
+
operationHints?: Record<string, OperationHint>;
|
|
295
|
+
mountRules?: Record<string, string>;
|
|
212
296
|
}): Promise<GeneratedFile[]>;
|
|
213
297
|
//#endregion
|
|
214
298
|
//#region src/engine/generate-files.d.ts
|
|
@@ -217,6 +301,8 @@ declare function buildEmitterContext(spec: ApiSpec, options: {
|
|
|
217
301
|
outputDir: string;
|
|
218
302
|
apiSurface?: ApiSurface;
|
|
219
303
|
overlayLookup?: OverlayLookup;
|
|
304
|
+
operationHints?: Record<string, OperationHint>;
|
|
305
|
+
mountRules?: Record<string, string>;
|
|
220
306
|
}): EmitterContext;
|
|
221
307
|
/**
|
|
222
308
|
* Collect model and enum names transitively referenced by service operations.
|
|
@@ -236,6 +322,8 @@ declare function generateFiles(spec: ApiSpec, emitter: Emitter, options: {
|
|
|
236
322
|
outputDir: string;
|
|
237
323
|
apiSurface?: ApiSurface;
|
|
238
324
|
overlayLookup?: OverlayLookup;
|
|
325
|
+
operationHints?: Record<string, OperationHint>;
|
|
326
|
+
mountRules?: Record<string, string>;
|
|
239
327
|
}): {
|
|
240
328
|
files: GeneratedFile[];
|
|
241
329
|
ctx: EmitterContext;
|
|
@@ -315,10 +403,30 @@ interface OagenConfig {
|
|
|
315
403
|
*
|
|
316
404
|
*/
|
|
317
405
|
operationIdTransform?: (id: string) => string;
|
|
406
|
+
/**
|
|
407
|
+
* Custom transform for schema (model/enum) names. Applied after the built-in
|
|
408
|
+
* cleanSchemaName normalization. Receives the cleaned PascalCase name; return
|
|
409
|
+
* the desired name. Collisions are detected automatically -- if a transform
|
|
410
|
+
* would produce a duplicate name, the original is kept.
|
|
411
|
+
*/
|
|
412
|
+
schemaNameTransform?: (name: string) => string;
|
|
318
413
|
/** Base URL for documentation links. When set, relative paths in descriptions
|
|
319
414
|
* (e.g. `/reference/authkit/user`) are expanded to full URLs. */
|
|
320
415
|
docUrl?: string;
|
|
416
|
+
/**
|
|
417
|
+
* Per-operation overrides keyed by "METHOD /path" (e.g. "POST /sso/token").
|
|
418
|
+
* Used by the operation resolver to override derived method names, mount
|
|
419
|
+
* targets, and to split union-body operations into typed wrappers.
|
|
420
|
+
*/
|
|
421
|
+
operationHints?: Record<string, OperationHint>;
|
|
422
|
+
/**
|
|
423
|
+
* Service-level mount rules: maps an IR service name to a target
|
|
424
|
+
* service/namespace (PascalCase). All operations in the source service
|
|
425
|
+
* are mounted on the target. Per-operation mountOn in operationHints
|
|
426
|
+
* takes priority.
|
|
427
|
+
*/
|
|
428
|
+
mountRules?: Record<string, string>;
|
|
321
429
|
}
|
|
322
430
|
//#endregion
|
|
323
|
-
export { ACRONYM_SET, type ApiSpec, type ArrayType, type AuthScheme, type Change, CommandError, ConfigError, ConfigLoadError, ConfigVersionMismatchError, type DiffReport, type Emitter, type EmitterContext, type Enum, type EnumAdded, type EnumModified, type EnumRef, type EnumRemoved, type EnumValue, type EnumValueChange, type ErrorResponse, ExtractorError, type Field, type FieldChange, type FormatCommand, type GeneratedFile, type HttpMethod, InternalError, type LiteralType, type MapType, type Model, type ModelAdded, type ModelModified, type ModelRef, type ModelRemoved, type NullableType, type OagenConfig, OagenError, type Operation, type OperationAdded, type OperationModified, type OperationPlan, type OperationRemoved, type PaginationMeta, type ParamChange, type Parameter, type PrimitiveType, RegistryError, type ServerEntry, type Service, type ServiceAdded, type ServiceRemoved, SpecParseError, type SuccessResponse, type TypeParam, type TypeRef, type UnionType, applyFileHeaders, assertNever, assignModelsToServices, buildEmitterContext, cleanSchemaName, collectEnumRefs, collectFieldDependencies, collectModelRefs, collectReferencedNames, collectRequestBodyModels, diffSpecs, generate, generateAllFiles, generateFiles, getEmitter, integrateGeneratedFiles, mapFilesForTargetIntegration, mapTypeRef, parseSpec, planOperation, registerEmitter, stripBackendPrefixes, toCamelCase, toKebabCase, toPascalCase, toSnakeCase, toUpperSnakeCase, treeShakeFiles, walkTypeRef };
|
|
431
|
+
export { ACRONYM_SET, type AiAgentEnvVar, type ApiSpec, type ArrayType, type AuthScheme, type BackoffStrategy, type Change, CommandError, ConfigError, ConfigLoadError, ConfigVersionMismatchError, type DeepPartial, type DiffReport, type Emitter, type EmitterContext, type Enum, type EnumAdded, type EnumModified, type EnumRef, type EnumRemoved, type EnumValue, type EnumValueChange, type ErrorPolicy, type ErrorResponse, ExtractorError, type Field, type FieldChange, type FormatCommand, type GeneratedFile, type HttpMethod, type IdempotencyPolicy, InternalError, type LiteralType, type LogEvent, type LoggingPolicy, type MapType, type Model, type ModelAdded, type ModelModified, type ModelRef, type ModelRemoved, type NullableType, type OagenConfig, OagenError, type Operation, type OperationAdded, type OperationHint, type OperationModified, type OperationPlan, type OperationRemoved, type PaginationMeta, type PaginationPolicy, type ParamChange, type Parameter, type PrimitiveType, RegistryError, type RequestGuardPolicy, type ResolvedOperation, type ResolvedWrapper, type RetryPolicy, type SdkBehavior, type SecurityRequirement, type ServerEntry, type Service, type ServiceAdded, type ServiceRemoved, SpecParseError, type SplitHint, type SuccessResponse, type TelemetryPolicy, type TimeoutPolicy, type TypeParam, type TypeRef, type UnionType, type UserAgentPolicy, applyFileHeaders, assertNever, assignModelsToServices, buildEmitterContext, cleanSchemaName, collectEnumRefs, collectFieldDependencies, collectModelRefs, collectReferencedNames, collectRequestBodyModels, defaultSdkBehavior, deriveMethodName, diffSpecs, generate, generateAllFiles, generateFiles, getEmitter, integrateGeneratedFiles, mapFilesForTargetIntegration, mapTypeRef, mergeSdkBehavior, parseSpec, planOperation, registerEmitter, resolveOperations, stripBackendPrefixes, toCamelCase, toKebabCase, toPascalCase, toSnakeCase, toUpperSnakeCase, treeShakeFiles, walkTypeRef };
|
|
324
432
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/errors.ts","../src/engine/types.ts","../src/differ/types.ts","../src/parser/parse.ts","../src/engine/orchestrator.ts","../src/engine/generate-files.ts","../src/engine/writer.ts","../src/engine/integrate.ts","../src/engine/registry.ts","../src/differ/diff.ts","../src/utils/naming.ts","../src/engine/operation-plan.ts","../src/cli/config-loader.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/ir/operation-hints.ts","../src/errors.ts","../src/engine/types.ts","../src/differ/types.ts","../src/parser/parse.ts","../src/engine/orchestrator.ts","../src/engine/generate-files.ts","../src/engine/writer.ts","../src/engine/integrate.ts","../src/engine/registry.ts","../src/differ/diff.ts","../src/utils/naming.ts","../src/engine/operation-plan.ts","../src/cli/config-loader.ts"],"mappings":"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"}
|