@lssm/app.cli-contractspec 0.0.0-canary-20251221164004

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.
@@ -0,0 +1,208 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "ContractSpec CLI Configuration",
4
+ "description": "Configuration file for ContractSpec CLI and tooling. Supports both single projects and monorepos.",
5
+ "type": "object",
6
+ "properties": {
7
+ "aiProvider": {
8
+ "type": "string",
9
+ "enum": ["claude", "openai", "ollama", "custom"],
10
+ "default": "claude",
11
+ "description": "AI provider for spec generation and code assistance"
12
+ },
13
+ "aiModel": {
14
+ "type": "string",
15
+ "description": "Model name to use with the AI provider"
16
+ },
17
+ "agentMode": {
18
+ "type": "string",
19
+ "enum": ["simple", "cursor", "claude-code", "openai-codex"],
20
+ "default": "simple",
21
+ "description": "Agent mode for AI-assisted operations"
22
+ },
23
+ "customEndpoint": {
24
+ "type": ["string", "null"],
25
+ "format": "uri",
26
+ "description": "Custom endpoint URL for AI provider (OpenAI-compatible)"
27
+ },
28
+ "customApiKey": {
29
+ "type": ["string", "null"],
30
+ "description": "API key for custom endpoint"
31
+ },
32
+ "outputDir": {
33
+ "type": "string",
34
+ "default": "./src",
35
+ "description": "Default output directory for generated files"
36
+ },
37
+ "conventions": {
38
+ "type": "object",
39
+ "description": "Directory conventions for organizing specs",
40
+ "properties": {
41
+ "operations": {
42
+ "type": "string",
43
+ "default": "interactions/commands|queries",
44
+ "description": "Directory pattern for operation specs"
45
+ },
46
+ "events": {
47
+ "type": "string",
48
+ "default": "events",
49
+ "description": "Directory for event specs"
50
+ },
51
+ "presentations": {
52
+ "type": "string",
53
+ "default": "presentations",
54
+ "description": "Directory for presentation specs"
55
+ },
56
+ "forms": {
57
+ "type": "string",
58
+ "default": "forms",
59
+ "description": "Directory for form specs"
60
+ }
61
+ }
62
+ },
63
+ "defaultOwners": {
64
+ "type": "array",
65
+ "items": {
66
+ "type": "string",
67
+ "pattern": "^@"
68
+ },
69
+ "default": [],
70
+ "description": "Default owners for new specs"
71
+ },
72
+ "defaultTags": {
73
+ "type": "array",
74
+ "items": {
75
+ "type": "string"
76
+ },
77
+ "default": [],
78
+ "description": "Default tags for new specs"
79
+ },
80
+ "packages": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ },
85
+ "description": "Package paths to include when running in monorepo mode. Supports glob patterns (e.g., 'packages/*', 'apps/**'). If not specified, all packages are included."
86
+ },
87
+ "excludePackages": {
88
+ "type": "array",
89
+ "items": {
90
+ "type": "string"
91
+ },
92
+ "description": "Package paths to exclude when running in monorepo mode. Supports glob patterns."
93
+ },
94
+ "recursive": {
95
+ "type": "boolean",
96
+ "default": true,
97
+ "description": "Whether to search recursively in all packages for specs"
98
+ },
99
+ "openapi": {
100
+ "type": "object",
101
+ "description": "OpenAPI import/export configuration",
102
+ "properties": {
103
+ "sources": {
104
+ "type": "array",
105
+ "description": "External OpenAPI sources to import/sync from",
106
+ "items": {
107
+ "type": "object",
108
+ "required": ["name"],
109
+ "properties": {
110
+ "name": {
111
+ "type": "string",
112
+ "description": "Friendly name for the source"
113
+ },
114
+ "url": {
115
+ "type": "string",
116
+ "format": "uri",
117
+ "description": "Remote URL to fetch OpenAPI spec from"
118
+ },
119
+ "file": {
120
+ "type": "string",
121
+ "description": "Local file path to OpenAPI spec"
122
+ },
123
+ "syncMode": {
124
+ "type": "string",
125
+ "enum": ["import", "sync", "validate"],
126
+ "default": "validate",
127
+ "description": "Sync mode: import (one-time), sync (update), validate (check only)"
128
+ },
129
+ "tags": {
130
+ "type": "array",
131
+ "items": { "type": "string" },
132
+ "description": "Only import operations with these tags"
133
+ },
134
+ "exclude": {
135
+ "type": "array",
136
+ "items": { "type": "string" },
137
+ "description": "Exclude operations with these operationIds"
138
+ },
139
+ "prefix": {
140
+ "type": "string",
141
+ "description": "Prefix for generated spec names"
142
+ },
143
+ "defaultStability": {
144
+ "type": "string",
145
+ "enum": ["experimental", "beta", "stable", "deprecated"],
146
+ "description": "Default stability for imported specs"
147
+ },
148
+ "defaultAuth": {
149
+ "type": "string",
150
+ "enum": ["anonymous", "user", "admin"],
151
+ "description": "Default auth level for imported specs"
152
+ }
153
+ }
154
+ }
155
+ },
156
+ "export": {
157
+ "type": "object",
158
+ "description": "Export configuration for generating OpenAPI document",
159
+ "properties": {
160
+ "outputPath": {
161
+ "type": "string",
162
+ "default": "./openapi.json",
163
+ "description": "Output path for exported OpenAPI document"
164
+ },
165
+ "format": {
166
+ "type": "string",
167
+ "enum": ["json", "yaml"],
168
+ "default": "json",
169
+ "description": "Output format"
170
+ },
171
+ "title": {
172
+ "type": "string",
173
+ "description": "API title for export"
174
+ },
175
+ "version": {
176
+ "type": "string",
177
+ "description": "API version for export"
178
+ },
179
+ "description": {
180
+ "type": "string",
181
+ "description": "API description for export"
182
+ },
183
+ "servers": {
184
+ "type": "array",
185
+ "description": "Server URLs to include in export",
186
+ "items": {
187
+ "type": "object",
188
+ "required": ["url"],
189
+ "properties": {
190
+ "url": {
191
+ "type": "string",
192
+ "description": "Server URL"
193
+ },
194
+ "description": {
195
+ "type": "string",
196
+ "description": "Server description"
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ },
206
+ "additionalProperties": false
207
+ }
208
+