@lssm/bundle.contractspec-workspace 0.0.0-canary-20251217052941 → 0.0.0-canary-20251217060433

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 (105) hide show
  1. package/dist/adapters/ai.d.ts +11 -0
  2. package/dist/adapters/factory.d.ts +28 -0
  3. package/dist/adapters/fs.d.ts +10 -0
  4. package/dist/adapters/git.d.ts +10 -0
  5. package/dist/adapters/index.d.ts +7 -0
  6. package/dist/adapters/logger.d.ts +17 -0
  7. package/dist/adapters/watcher.d.ts +10 -0
  8. package/dist/adapters/workspace.d.ts +93 -0
  9. package/dist/ai/agents/claude-code-agent.d.ts +21 -0
  10. package/dist/ai/agents/cursor-agent.d.ts +67 -0
  11. package/dist/ai/agents/openai-codex-agent.d.ts +21 -0
  12. package/dist/ai/agents/orchestrator.d.ts +49 -0
  13. package/dist/ai/agents/simple-agent.d.ts +16 -0
  14. package/dist/ai/agents/types.d.ts +35 -0
  15. package/dist/ai/client.d.ts +82 -0
  16. package/dist/ai/index.d.ts +16 -0
  17. package/dist/ai/prompts/code-generation.d.ts +25 -0
  18. package/dist/ai/prompts/index.d.ts +9 -0
  19. package/dist/ai/prompts/spec-creation.d.ts +28 -0
  20. package/dist/ai/providers.d.ts +28 -0
  21. package/dist/formatters/index.d.ts +10 -0
  22. package/dist/formatters/json.d.ts +88 -0
  23. package/dist/formatters/sarif.d.ts +100 -0
  24. package/dist/formatters/text.d.ts +34 -0
  25. package/dist/index.d.ts +69 -0
  26. package/dist/ports/ai.d.ts +58 -0
  27. package/dist/ports/fs.d.ts +80 -0
  28. package/dist/ports/git.d.ts +32 -0
  29. package/dist/ports/index.d.ts +5 -0
  30. package/dist/ports/logger.d.ts +87 -0
  31. package/dist/ports/watcher.d.ts +51 -0
  32. package/dist/services/agent-guide/adapters/claude-code.d.ts +34 -0
  33. package/dist/services/agent-guide/adapters/cursor-cli.d.ts +38 -0
  34. package/dist/services/agent-guide/adapters/generic-mcp.d.ts +52 -0
  35. package/dist/services/agent-guide/adapters/index.d.ts +22 -0
  36. package/dist/services/agent-guide/agent-guide-service.d.ts +55 -0
  37. package/dist/services/agent-guide/index.d.ts +6 -0
  38. package/dist/services/agent-guide/types.d.ts +57 -0
  39. package/dist/services/build.d.ts +58 -0
  40. package/dist/services/ci-check/ci-check-service.d.ts +15 -0
  41. package/dist/services/ci-check/index.d.ts +2 -0
  42. package/dist/services/ci-check/types.d.ts +142 -0
  43. package/dist/services/clean.d.ts +40 -0
  44. package/dist/services/config.d.ts +25 -0
  45. package/dist/services/deps.d.ts +52 -0
  46. package/dist/services/diff.d.ts +33 -0
  47. package/dist/services/doctor/doctor-service.d.ts +23 -0
  48. package/dist/services/doctor/index.d.ts +2 -0
  49. package/dist/services/doctor/types.d.ts +117 -0
  50. package/dist/services/implementation/discovery.d.ts +29 -0
  51. package/dist/services/implementation/index.d.ts +3 -0
  52. package/dist/services/implementation/resolver.d.ts +43 -0
  53. package/dist/services/implementation/types.d.ts +78 -0
  54. package/dist/services/index.d.ts +56 -0
  55. package/dist/services/integrity-diagram.d.ts +35 -0
  56. package/dist/services/integrity.d.ts +133 -0
  57. package/dist/services/list.d.ts +30 -0
  58. package/dist/services/openapi/export-service.d.ts +52 -0
  59. package/dist/services/openapi/import-service.d.ts +15 -0
  60. package/dist/services/openapi/index.d.ts +5 -0
  61. package/dist/services/openapi/sync-service.d.ts +18 -0
  62. package/dist/services/openapi/types.d.ts +184 -0
  63. package/dist/services/openapi/validate-service.d.ts +15 -0
  64. package/dist/services/regenerator.d.ts +17 -0
  65. package/dist/services/registry.d.ts +52 -0
  66. package/dist/services/setup/config-generators.d.ts +41 -0
  67. package/dist/services/setup/file-merger.d.ts +26 -0
  68. package/dist/services/setup/setup-service.d.ts +11 -0
  69. package/dist/services/setup/types.d.ts +84 -0
  70. package/dist/services/sync.d.ts +40 -0
  71. package/dist/services/test.d.ts +14 -0
  72. package/dist/services/validate-implementation.d.ts +31 -0
  73. package/dist/services/validate.d.ts +40 -0
  74. package/dist/services/verification-cache/adapters/filesystem.d.ts +45 -0
  75. package/dist/services/verification-cache/adapters/in-memory.d.ts +26 -0
  76. package/dist/services/verification-cache/adapters/index.d.ts +3 -0
  77. package/dist/services/verification-cache/adapters/workspace-state.d.ts +48 -0
  78. package/dist/services/verification-cache/cache-service.d.ts +69 -0
  79. package/dist/services/verification-cache/index.d.ts +6 -0
  80. package/dist/services/verification-cache/types.d.ts +123 -0
  81. package/dist/services/verify/ai-verifier.d.ts +24 -0
  82. package/dist/services/verify/behavior-verifier.d.ts +11 -0
  83. package/dist/services/verify/index.d.ts +5 -0
  84. package/dist/services/verify/structure-verifier.d.ts +11 -0
  85. package/dist/services/verify/types.d.ts +136 -0
  86. package/dist/services/verify/verify-service.d.ts +59 -0
  87. package/dist/services/watch.d.ts +24 -0
  88. package/dist/services/workspace-info.d.ts +61 -0
  89. package/dist/templates/app-config.template.d.ts +6 -0
  90. package/dist/templates/data-view.template.d.ts +6 -0
  91. package/dist/templates/event.template.d.ts +10 -0
  92. package/dist/templates/experiment.template.d.ts +6 -0
  93. package/dist/templates/handler.template.d.ts +15 -0
  94. package/dist/templates/index.d.ts +20 -0
  95. package/dist/templates/integration.template.d.ts +6 -0
  96. package/dist/templates/knowledge.template.d.ts +6 -0
  97. package/dist/templates/migration.template.d.ts +6 -0
  98. package/dist/templates/operation.template.d.ts +10 -0
  99. package/dist/templates/presentation.template.d.ts +10 -0
  100. package/dist/templates/telemetry.template.d.ts +6 -0
  101. package/dist/templates/workflow-runner.template.d.ts +15 -0
  102. package/dist/templates/workflow.template.d.ts +6 -0
  103. package/dist/types/config.d.ts +33 -0
  104. package/dist/types.d.ts +323 -0
  105. package/package.json +10 -10
@@ -0,0 +1,6 @@
1
+ import { MigrationSpecData } from "../types.js";
2
+
3
+ //#region src/templates/migration.template.d.ts
4
+ declare function generateMigrationSpec(data: MigrationSpecData): string;
5
+ //#endregion
6
+ export { generateMigrationSpec };
@@ -0,0 +1,10 @@
1
+ import { OperationSpecData } from "../types.js";
2
+
3
+ //#region src/templates/operation.template.d.ts
4
+
5
+ /**
6
+ * Generate operation spec TypeScript code
7
+ */
8
+ declare function generateOperationSpec(data: OperationSpecData): string;
9
+ //#endregion
10
+ export { generateOperationSpec };
@@ -0,0 +1,10 @@
1
+ import { PresentationSpecData } from "../types.js";
2
+
3
+ //#region src/templates/presentation.template.d.ts
4
+
5
+ /**
6
+ * Generate presentation spec TypeScript code
7
+ */
8
+ declare function generatePresentationSpec(data: PresentationSpecData): string;
9
+ //#endregion
10
+ export { generatePresentationSpec };
@@ -0,0 +1,6 @@
1
+ import { TelemetrySpecData } from "../types.js";
2
+
3
+ //#region src/templates/telemetry.template.d.ts
4
+ declare function generateTelemetrySpec(data: TelemetrySpecData): string;
5
+ //#endregion
6
+ export { generateTelemetrySpec };
@@ -0,0 +1,15 @@
1
+ //#region src/templates/workflow-runner.template.d.ts
2
+ interface RunnerTemplateOptions {
3
+ exportName: string;
4
+ specImportPath: string;
5
+ runnerName: string;
6
+ workflowName: string;
7
+ }
8
+ declare function generateWorkflowRunnerTemplate({
9
+ exportName,
10
+ specImportPath,
11
+ runnerName,
12
+ workflowName
13
+ }: RunnerTemplateOptions): string;
14
+ //#endregion
15
+ export { generateWorkflowRunnerTemplate };
@@ -0,0 +1,6 @@
1
+ import { WorkflowSpecData } from "../types.js";
2
+
3
+ //#region src/templates/workflow.template.d.ts
4
+ declare function generateWorkflowSpec(data: WorkflowSpecData): string;
5
+ //#endregion
6
+ export { generateWorkflowSpec };
@@ -0,0 +1,33 @@
1
+ //#region src/types/config.d.ts
2
+ /**
3
+ * Configuration types for ContractSpec workspace.
4
+ */
5
+ /**
6
+ * AI provider types.
7
+ */
8
+ type AiProvider = 'claude' | 'openai' | 'ollama' | 'custom';
9
+ /**
10
+ * Agent mode types.
11
+ */
12
+ type AgentMode = 'simple' | 'cursor' | 'claude-code' | 'openai-codex';
13
+ /**
14
+ * Configuration for ContractSpec CLI and services.
15
+ */
16
+ interface Config {
17
+ aiProvider: AiProvider;
18
+ aiModel?: string;
19
+ agentMode: AgentMode;
20
+ customEndpoint?: string | null;
21
+ customApiKey?: string | null;
22
+ outputDir: string;
23
+ conventions: {
24
+ operations: string;
25
+ events: string;
26
+ presentations: string;
27
+ forms: string;
28
+ };
29
+ defaultOwners: string[];
30
+ defaultTags: string[];
31
+ }
32
+ //#endregion
33
+ export { AgentMode, AiProvider, Config };
@@ -0,0 +1,323 @@
1
+ //#region src/types.d.ts
2
+ type OpKind = 'command' | 'query';
3
+ type PresentationKind = 'web_component' | 'markdown' | 'data';
4
+ type Stability = 'experimental' | 'beta' | 'stable' | 'deprecated';
5
+ type StepType = 'human' | 'automation' | 'decision';
6
+ interface BaseSpecData {
7
+ name: string;
8
+ version: number;
9
+ description: string;
10
+ owners: string[];
11
+ tags: string[];
12
+ stability: Stability;
13
+ }
14
+ interface OperationSpecData extends BaseSpecData {
15
+ kind: OpKind;
16
+ goal: string;
17
+ context: string;
18
+ hasInput: boolean;
19
+ hasOutput: boolean;
20
+ auth: 'anonymous' | 'user' | 'admin';
21
+ flags: string[];
22
+ emitsEvents: boolean;
23
+ }
24
+ interface EventSpecData extends BaseSpecData {
25
+ piiFields: string[];
26
+ }
27
+ interface PresentationSpecData extends BaseSpecData {
28
+ presentationKind: PresentationKind;
29
+ }
30
+ interface WorkflowStepData {
31
+ id: string;
32
+ label: string;
33
+ type: StepType;
34
+ description?: string;
35
+ operation?: {
36
+ name: string;
37
+ version: number;
38
+ };
39
+ form?: {
40
+ key: string;
41
+ version: number;
42
+ };
43
+ }
44
+ interface WorkflowTransitionData {
45
+ from: string;
46
+ to: string;
47
+ condition?: string;
48
+ }
49
+ interface WorkflowSpecData extends BaseSpecData {
50
+ title: string;
51
+ domain: string;
52
+ entryStepId?: string;
53
+ steps: WorkflowStepData[];
54
+ transitions: WorkflowTransitionData[];
55
+ policyFlags: string[];
56
+ }
57
+ type DataViewKind = 'list' | 'detail' | 'table' | 'grid';
58
+ interface DataViewFieldData {
59
+ key: string;
60
+ label: string;
61
+ dataPath: string;
62
+ format?: string;
63
+ sortable?: boolean;
64
+ filterable?: boolean;
65
+ }
66
+ interface DataViewSpecData extends BaseSpecData {
67
+ title: string;
68
+ domain: string;
69
+ entity: string;
70
+ kind: DataViewKind;
71
+ primaryOperation: {
72
+ name: string;
73
+ version: number;
74
+ };
75
+ itemOperation?: {
76
+ name: string;
77
+ version: number;
78
+ };
79
+ fields: DataViewFieldData[];
80
+ primaryField?: string;
81
+ secondaryFields?: string[];
82
+ }
83
+ type TelemetryPrivacy = 'public' | 'internal' | 'pii' | 'sensitive';
84
+ interface TelemetryPropertyData {
85
+ name: string;
86
+ type: 'string' | 'number' | 'boolean' | 'timestamp' | 'json';
87
+ required?: boolean;
88
+ pii?: boolean;
89
+ redact?: boolean;
90
+ description?: string;
91
+ }
92
+ interface TelemetryAnomalyRuleData {
93
+ metric: string;
94
+ min?: number;
95
+ max?: number;
96
+ }
97
+ interface TelemetryEventData {
98
+ name: string;
99
+ version: number;
100
+ what: string;
101
+ who?: string;
102
+ why?: string;
103
+ privacy: TelemetryPrivacy;
104
+ properties: TelemetryPropertyData[];
105
+ retentionDays?: number;
106
+ retentionPolicy?: 'archive' | 'delete';
107
+ samplingRate?: number;
108
+ samplingConditions?: string;
109
+ anomalyEnabled?: boolean;
110
+ anomalyMinimumSample?: number;
111
+ anomalyRules?: TelemetryAnomalyRuleData[];
112
+ anomalyActions?: ('alert' | 'log' | 'trigger_regen')[];
113
+ tags?: string[];
114
+ }
115
+ interface TelemetryProviderData {
116
+ type: 'posthog' | 'segment' | 'opentelemetry' | 'internal';
117
+ config: string;
118
+ }
119
+ interface TelemetrySpecData extends BaseSpecData {
120
+ domain: string;
121
+ defaultRetentionDays?: number;
122
+ defaultSamplingRate?: number;
123
+ providers?: TelemetryProviderData[];
124
+ anomalyEnabled?: boolean;
125
+ anomalyCheckIntervalMs?: number;
126
+ events: TelemetryEventData[];
127
+ }
128
+ interface ExperimentVariantOverrideData {
129
+ type: 'dataView' | 'workflow' | 'theme' | 'policy' | 'presentation';
130
+ target: string;
131
+ version?: number;
132
+ }
133
+ interface ExperimentVariantData {
134
+ id: string;
135
+ name: string;
136
+ description?: string;
137
+ weight?: number;
138
+ overrides?: ExperimentVariantOverrideData[];
139
+ }
140
+ interface TargetingRuleData {
141
+ variantId: string;
142
+ percentage?: number;
143
+ policy?: {
144
+ name: string;
145
+ version?: number;
146
+ };
147
+ expression?: string;
148
+ }
149
+ interface RandomAllocationData {
150
+ type: 'random';
151
+ salt?: string;
152
+ }
153
+ interface StickyAllocationData {
154
+ type: 'sticky';
155
+ attribute: 'userId' | 'organizationId' | 'sessionId';
156
+ salt?: string;
157
+ }
158
+ interface TargetedAllocationData {
159
+ type: 'targeted';
160
+ fallback?: 'control' | 'random';
161
+ rules: TargetingRuleData[];
162
+ }
163
+ type ExperimentAllocationData = RandomAllocationData | StickyAllocationData | TargetedAllocationData;
164
+ interface ExperimentMetricData {
165
+ name: string;
166
+ eventName: string;
167
+ eventVersion: number;
168
+ aggregation: 'count' | 'avg' | 'p75' | 'p90' | 'p95' | 'p99';
169
+ target?: number;
170
+ }
171
+ interface ExperimentSpecData extends BaseSpecData {
172
+ domain: string;
173
+ controlVariant: string;
174
+ variants: ExperimentVariantData[];
175
+ allocation: ExperimentAllocationData;
176
+ successMetrics?: ExperimentMetricData[];
177
+ }
178
+ interface AppConfigMappingData {
179
+ slot: string;
180
+ name: string;
181
+ version?: number;
182
+ }
183
+ interface AppConfigFeatureFlagData {
184
+ key: string;
185
+ enabled: boolean;
186
+ variant?: string;
187
+ description?: string;
188
+ }
189
+ interface AppRouteConfigData {
190
+ path: string;
191
+ label?: string;
192
+ dataView?: string;
193
+ workflow?: string;
194
+ guardName?: string;
195
+ guardVersion?: number;
196
+ featureFlag?: string;
197
+ experimentName?: string;
198
+ experimentVersion?: number;
199
+ }
200
+ interface AppBlueprintSpecData extends BaseSpecData {
201
+ title: string;
202
+ domain: string;
203
+ appId: string;
204
+ capabilitiesEnabled: string[];
205
+ capabilitiesDisabled: string[];
206
+ featureIncludes: string[];
207
+ featureExcludes: string[];
208
+ dataViews: AppConfigMappingData[];
209
+ workflows: AppConfigMappingData[];
210
+ policyRefs: {
211
+ name: string;
212
+ version?: number;
213
+ }[];
214
+ theme?: {
215
+ name: string;
216
+ version: number;
217
+ };
218
+ themeFallbacks: {
219
+ name: string;
220
+ version: number;
221
+ }[];
222
+ telemetry?: {
223
+ name: string;
224
+ version?: number;
225
+ };
226
+ activeExperiments: {
227
+ name: string;
228
+ version?: number;
229
+ }[];
230
+ pausedExperiments: {
231
+ name: string;
232
+ version?: number;
233
+ }[];
234
+ featureFlags: AppConfigFeatureFlagData[];
235
+ routes: AppRouteConfigData[];
236
+ notes?: string;
237
+ }
238
+ type MigrationStepKind = 'schema' | 'data' | 'validation';
239
+ interface MigrationStepData {
240
+ kind: MigrationStepKind;
241
+ description?: string;
242
+ sql?: string;
243
+ script?: string;
244
+ assertion?: string;
245
+ timeoutMs?: number;
246
+ retries?: number;
247
+ preChecks?: {
248
+ description: string;
249
+ expression: string;
250
+ }[];
251
+ postChecks?: {
252
+ description: string;
253
+ expression: string;
254
+ }[];
255
+ }
256
+ interface MigrationSpecData extends BaseSpecData {
257
+ title: string;
258
+ domain: string;
259
+ dependencies: string[];
260
+ up: MigrationStepData[];
261
+ down?: MigrationStepData[];
262
+ }
263
+ type IntegrationCategoryData = 'payments' | 'email' | 'calendar' | 'sms' | 'ai-llm' | 'ai-voice' | 'speech-to-text' | 'vector-db' | 'storage' | 'accounting' | 'crm' | 'helpdesk' | 'open-banking' | 'custom';
264
+ type IntegrationConfigFieldType = 'string' | 'number' | 'boolean';
265
+ type IntegrationOwnershipModeData = 'managed' | 'byok';
266
+ type IntegrationHealthCheckMethod = 'ping' | 'list' | 'custom';
267
+ interface IntegrationCapabilityRefData {
268
+ key: string;
269
+ version: number;
270
+ }
271
+ interface IntegrationCapabilityRequirementData {
272
+ key: string;
273
+ version?: number;
274
+ optional?: boolean;
275
+ reason?: string;
276
+ }
277
+ interface IntegrationConfigFieldData {
278
+ key: string;
279
+ type: IntegrationConfigFieldType;
280
+ required: boolean;
281
+ description?: string;
282
+ }
283
+ interface IntegrationSecretFieldData extends IntegrationConfigFieldData {}
284
+ interface IntegrationSpecData extends BaseSpecData {
285
+ title: string;
286
+ domain: string;
287
+ displayName: string;
288
+ category: IntegrationCategoryData;
289
+ supportedModes: IntegrationOwnershipModeData[];
290
+ capabilitiesProvided: IntegrationCapabilityRefData[];
291
+ capabilitiesRequired: IntegrationCapabilityRequirementData[];
292
+ configFields: IntegrationConfigFieldData[];
293
+ secretFields: IntegrationSecretFieldData[];
294
+ docsUrl?: string;
295
+ rateLimitRpm?: number;
296
+ rateLimitRph?: number;
297
+ healthCheckMethod: IntegrationHealthCheckMethod;
298
+ healthCheckTimeoutMs?: number;
299
+ byokSetupInstructions?: string;
300
+ byokRequiredScopes?: string[];
301
+ }
302
+ type KnowledgeCategoryData = 'canonical' | 'operational' | 'external' | 'ephemeral';
303
+ type KnowledgeTrustLevel = 'high' | 'medium' | 'low';
304
+ interface KnowledgeRetentionData {
305
+ ttlDays?: number | null;
306
+ archiveAfterDays?: number;
307
+ }
308
+ interface KnowledgeSpaceSpecData extends BaseSpecData {
309
+ title: string;
310
+ domain: string;
311
+ displayName: string;
312
+ category: KnowledgeCategoryData;
313
+ retention: KnowledgeRetentionData;
314
+ policyName?: string;
315
+ policyVersion?: number;
316
+ trustLevel: KnowledgeTrustLevel;
317
+ automationWritable: boolean;
318
+ embeddingModel?: string;
319
+ chunkSize?: number;
320
+ vectorDbIntegration?: string;
321
+ }
322
+ //#endregion
323
+ export { AppBlueprintSpecData, DataViewSpecData, EventSpecData, ExperimentSpecData, IntegrationSpecData, KnowledgeSpaceSpecData, MigrationSpecData, OpKind, OperationSpecData, PresentationKind, PresentationSpecData, TelemetrySpecData, WorkflowSpecData };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/bundle.contractspec-workspace",
3
- "version": "0.0.0-canary-20251217052941",
3
+ "version": "0.0.0-canary-20251217060433",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -23,26 +23,26 @@
23
23
  "test": "bun run"
24
24
  },
25
25
  "dependencies": {
26
- "@lssm/module.contractspec-workspace": "0.0.0-canary-20251217052941",
27
- "@lssm/lib.contracts": "0.0.0-canary-20251217052941",
28
- "@lssm/lib.contracts-transformers": "0.0.0-canary-20251217052941",
29
- "@lssm/lib.ai-providers": "0.0.0-canary-20251217052941",
30
- "@lssm/lib.schema": "0.0.0-canary-20251217052941",
31
- "@lssm/lib.testing": "0.0.0-canary-20251217052941",
26
+ "@lssm/module.contractspec-workspace": "0.0.0-canary-20251217060433",
27
+ "@lssm/lib.contracts": "0.0.0-canary-20251217060433",
28
+ "@lssm/lib.contracts-transformers": "0.0.0-canary-20251217060433",
29
+ "@lssm/lib.ai-providers": "0.0.0-canary-20251217060433",
30
+ "@lssm/lib.schema": "0.0.0-canary-20251217060433",
31
+ "@lssm/lib.testing": "0.0.0-canary-20251217060433",
32
32
  "ai": "beta",
33
33
  "zod": "^4.1.13",
34
34
  "glob": "^13.0.0",
35
35
  "chokidar": "^4.0.1"
36
36
  },
37
37
  "devDependencies": {
38
- "@lssm/tool.tsdown": "0.0.0-canary-20251217052941",
39
- "@lssm/tool.typescript": "0.0.0-canary-20251217052941",
38
+ "@lssm/tool.tsdown": "0.0.0-canary-20251217060433",
39
+ "@lssm/tool.typescript": "0.0.0-canary-20251217060433",
40
40
  "@types/node": "^22.10.2",
41
41
  "tsdown": "^0.17.4",
42
42
  "typescript": "^5.9.3"
43
43
  },
44
44
  "exports": {
45
- ".": "./src/index.ts",
45
+ ".": "./dist/index.js",
46
46
  "./*": "./*"
47
47
  },
48
48
  "publishConfig": {