@contractspec/module.workspace 0.0.0-canary-20260113162409

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 (170) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/dist/ai/prompts/code-generation.d.ts +24 -0
  4. package/dist/ai/prompts/code-generation.d.ts.map +1 -0
  5. package/dist/ai/prompts/code-generation.js +134 -0
  6. package/dist/ai/prompts/code-generation.js.map +1 -0
  7. package/dist/ai/prompts/spec-creation.d.ts +28 -0
  8. package/dist/ai/prompts/spec-creation.d.ts.map +1 -0
  9. package/dist/ai/prompts/spec-creation.js +102 -0
  10. package/dist/ai/prompts/spec-creation.js.map +1 -0
  11. package/dist/analysis/deps/graph.d.ts +34 -0
  12. package/dist/analysis/deps/graph.d.ts.map +1 -0
  13. package/dist/analysis/deps/graph.js +85 -0
  14. package/dist/analysis/deps/graph.js.map +1 -0
  15. package/dist/analysis/deps/parse-imports.d.ts +17 -0
  16. package/dist/analysis/deps/parse-imports.d.ts.map +1 -0
  17. package/dist/analysis/deps/parse-imports.js +31 -0
  18. package/dist/analysis/deps/parse-imports.js.map +1 -0
  19. package/dist/analysis/diff/deep-diff.d.ts +33 -0
  20. package/dist/analysis/diff/deep-diff.d.ts.map +1 -0
  21. package/dist/analysis/diff/deep-diff.js +114 -0
  22. package/dist/analysis/diff/deep-diff.js.map +1 -0
  23. package/dist/analysis/diff/semantic.d.ts +11 -0
  24. package/dist/analysis/diff/semantic.d.ts.map +1 -0
  25. package/dist/analysis/diff/semantic.js +97 -0
  26. package/dist/analysis/diff/semantic.js.map +1 -0
  27. package/dist/analysis/example-scan.d.ts +15 -0
  28. package/dist/analysis/example-scan.d.ts.map +1 -0
  29. package/dist/analysis/example-scan.js +116 -0
  30. package/dist/analysis/example-scan.js.map +1 -0
  31. package/dist/analysis/feature-extractor.js +203 -0
  32. package/dist/analysis/feature-extractor.js.map +1 -0
  33. package/dist/analysis/feature-scan.d.ts +15 -0
  34. package/dist/analysis/feature-scan.d.ts.map +1 -0
  35. package/dist/analysis/feature-scan.js +56 -0
  36. package/dist/analysis/feature-scan.js.map +1 -0
  37. package/dist/analysis/grouping.d.ts +79 -0
  38. package/dist/analysis/grouping.d.ts.map +1 -0
  39. package/dist/analysis/grouping.js +115 -0
  40. package/dist/analysis/grouping.js.map +1 -0
  41. package/dist/analysis/impact/classifier.d.ts +19 -0
  42. package/dist/analysis/impact/classifier.d.ts.map +1 -0
  43. package/dist/analysis/impact/classifier.js +135 -0
  44. package/dist/analysis/impact/classifier.js.map +1 -0
  45. package/dist/analysis/impact/index.js +2 -0
  46. package/dist/analysis/impact/rules.d.ts +35 -0
  47. package/dist/analysis/impact/rules.d.ts.map +1 -0
  48. package/dist/analysis/impact/rules.js +154 -0
  49. package/dist/analysis/impact/rules.js.map +1 -0
  50. package/dist/analysis/impact/types.d.ts +95 -0
  51. package/dist/analysis/impact/types.d.ts.map +1 -0
  52. package/dist/analysis/index.js +18 -0
  53. package/dist/analysis/snapshot/index.js +2 -0
  54. package/dist/analysis/snapshot/normalizer.d.ts +36 -0
  55. package/dist/analysis/snapshot/normalizer.d.ts.map +1 -0
  56. package/dist/analysis/snapshot/normalizer.js +67 -0
  57. package/dist/analysis/snapshot/normalizer.js.map +1 -0
  58. package/dist/analysis/snapshot/snapshot.d.ts +18 -0
  59. package/dist/analysis/snapshot/snapshot.d.ts.map +1 -0
  60. package/dist/analysis/snapshot/snapshot.js +163 -0
  61. package/dist/analysis/snapshot/snapshot.js.map +1 -0
  62. package/dist/analysis/snapshot/types.d.ts +74 -0
  63. package/dist/analysis/snapshot/types.d.ts.map +1 -0
  64. package/dist/analysis/spec-parser.d.ts +11 -0
  65. package/dist/analysis/spec-parser.d.ts.map +1 -0
  66. package/dist/analysis/spec-parser.js +89 -0
  67. package/dist/analysis/spec-parser.js.map +1 -0
  68. package/dist/analysis/spec-parsing-utils.d.ts +26 -0
  69. package/dist/analysis/spec-parsing-utils.d.ts.map +1 -0
  70. package/dist/analysis/spec-parsing-utils.js +98 -0
  71. package/dist/analysis/spec-parsing-utils.js.map +1 -0
  72. package/dist/analysis/spec-scan.d.ts +20 -0
  73. package/dist/analysis/spec-scan.d.ts.map +1 -0
  74. package/dist/analysis/spec-scan.js +141 -0
  75. package/dist/analysis/spec-scan.js.map +1 -0
  76. package/dist/analysis/utils/matchers.js +77 -0
  77. package/dist/analysis/utils/matchers.js.map +1 -0
  78. package/dist/analysis/utils/variables.js +45 -0
  79. package/dist/analysis/utils/variables.js.map +1 -0
  80. package/dist/analysis/validate/index.js +1 -0
  81. package/dist/analysis/validate/spec-structure.d.ts +29 -0
  82. package/dist/analysis/validate/spec-structure.d.ts.map +1 -0
  83. package/dist/analysis/validate/spec-structure.js +455 -0
  84. package/dist/analysis/validate/spec-structure.js.map +1 -0
  85. package/dist/formatter.d.ts +42 -0
  86. package/dist/formatter.d.ts.map +1 -0
  87. package/dist/formatter.js +163 -0
  88. package/dist/formatter.js.map +1 -0
  89. package/dist/formatters/index.js +2 -0
  90. package/dist/formatters/spec-markdown.d.ts +31 -0
  91. package/dist/formatters/spec-markdown.d.ts.map +1 -0
  92. package/dist/formatters/spec-markdown.js +263 -0
  93. package/dist/formatters/spec-markdown.js.map +1 -0
  94. package/dist/formatters/spec-to-docblock.d.ts +14 -0
  95. package/dist/formatters/spec-to-docblock.d.ts.map +1 -0
  96. package/dist/formatters/spec-to-docblock.js +48 -0
  97. package/dist/formatters/spec-to-docblock.js.map +1 -0
  98. package/dist/index.d.ts +42 -0
  99. package/dist/index.js +39 -0
  100. package/dist/templates/app-config.d.ts +7 -0
  101. package/dist/templates/app-config.d.ts.map +1 -0
  102. package/dist/templates/app-config.js +107 -0
  103. package/dist/templates/app-config.js.map +1 -0
  104. package/dist/templates/data-view.d.ts +7 -0
  105. package/dist/templates/data-view.d.ts.map +1 -0
  106. package/dist/templates/data-view.js +69 -0
  107. package/dist/templates/data-view.js.map +1 -0
  108. package/dist/templates/event.d.ts +11 -0
  109. package/dist/templates/event.d.ts.map +1 -0
  110. package/dist/templates/event.js +41 -0
  111. package/dist/templates/event.js.map +1 -0
  112. package/dist/templates/experiment.d.ts +7 -0
  113. package/dist/templates/experiment.d.ts.map +1 -0
  114. package/dist/templates/experiment.js +88 -0
  115. package/dist/templates/experiment.js.map +1 -0
  116. package/dist/templates/handler.d.ts +20 -0
  117. package/dist/templates/handler.d.ts.map +1 -0
  118. package/dist/templates/handler.js +96 -0
  119. package/dist/templates/handler.js.map +1 -0
  120. package/dist/templates/integration-utils.js +105 -0
  121. package/dist/templates/integration-utils.js.map +1 -0
  122. package/dist/templates/integration.d.ts +7 -0
  123. package/dist/templates/integration.d.ts.map +1 -0
  124. package/dist/templates/integration.js +62 -0
  125. package/dist/templates/integration.js.map +1 -0
  126. package/dist/templates/knowledge.d.ts +7 -0
  127. package/dist/templates/knowledge.d.ts.map +1 -0
  128. package/dist/templates/knowledge.js +69 -0
  129. package/dist/templates/knowledge.js.map +1 -0
  130. package/dist/templates/migration.d.ts +7 -0
  131. package/dist/templates/migration.d.ts.map +1 -0
  132. package/dist/templates/migration.js +61 -0
  133. package/dist/templates/migration.js.map +1 -0
  134. package/dist/templates/operation.d.ts +11 -0
  135. package/dist/templates/operation.d.ts.map +1 -0
  136. package/dist/templates/operation.js +101 -0
  137. package/dist/templates/operation.js.map +1 -0
  138. package/dist/templates/presentation.d.ts +11 -0
  139. package/dist/templates/presentation.d.ts.map +1 -0
  140. package/dist/templates/presentation.js +79 -0
  141. package/dist/templates/presentation.js.map +1 -0
  142. package/dist/templates/telemetry.d.ts +7 -0
  143. package/dist/templates/telemetry.d.ts.map +1 -0
  144. package/dist/templates/telemetry.js +90 -0
  145. package/dist/templates/telemetry.js.map +1 -0
  146. package/dist/templates/utils.d.ts +27 -0
  147. package/dist/templates/utils.d.ts.map +1 -0
  148. package/dist/templates/utils.js +39 -0
  149. package/dist/templates/utils.js.map +1 -0
  150. package/dist/templates/workflow-runner.d.ts +16 -0
  151. package/dist/templates/workflow-runner.d.ts.map +1 -0
  152. package/dist/templates/workflow-runner.js +49 -0
  153. package/dist/templates/workflow-runner.js.map +1 -0
  154. package/dist/templates/workflow.d.ts +11 -0
  155. package/dist/templates/workflow.d.ts.map +1 -0
  156. package/dist/templates/workflow.js +68 -0
  157. package/dist/templates/workflow.js.map +1 -0
  158. package/dist/types/analysis-types.d.ts +199 -0
  159. package/dist/types/analysis-types.d.ts.map +1 -0
  160. package/dist/types/generation-types.d.ts +87 -0
  161. package/dist/types/generation-types.d.ts.map +1 -0
  162. package/dist/types/generation-types.js +21 -0
  163. package/dist/types/generation-types.js.map +1 -0
  164. package/dist/types/llm-types.d.ts +138 -0
  165. package/dist/types/llm-types.d.ts.map +1 -0
  166. package/dist/types/rulesync-types.d.ts +24 -0
  167. package/dist/types/rulesync-types.d.ts.map +1 -0
  168. package/dist/types/spec-types.d.ts +343 -0
  169. package/dist/types/spec-types.d.ts.map +1 -0
  170. package/package.json +63 -0
@@ -0,0 +1,87 @@
1
+ import { PresentationKind, SpecType } from "./spec-types.js";
2
+ import { RuleSyncConfig } from "./rulesync-types.js";
3
+ import { OpKind } from "@contractspec/lib.contracts";
4
+
5
+ //#region src/types/generation-types.d.ts
6
+
7
+ /**
8
+ * AI provider options for generation.
9
+ */
10
+ interface AIGenerationOptions {
11
+ provider: 'claude' | 'openai' | 'ollama' | 'custom';
12
+ model?: string;
13
+ endpoint?: string;
14
+ stream?: boolean;
15
+ }
16
+ /**
17
+ * Result of code generation.
18
+ */
19
+ interface GenerationResult {
20
+ code: string;
21
+ filePath: string;
22
+ specType: SpecType;
23
+ }
24
+ /**
25
+ * Build target types.
26
+ */
27
+ type GenerationTarget = 'handler' | 'component' | 'form';
28
+ /**
29
+ * Test target types.
30
+ */
31
+ type TestTarget = 'handler' | 'component';
32
+ /**
33
+ * Spec build type detected during build.
34
+ */
35
+ type SpecBuildType = 'operation' | 'presentation' | 'form' | 'event' | 'workflow' | 'data-view' | 'telemetry' | 'migration' | 'experiment' | 'app-config' | 'integration' | 'knowledge' | 'unknown';
36
+ /**
37
+ * Configuration for workspace operations.
38
+ */
39
+ interface WorkspaceConfig {
40
+ aiProvider: 'claude' | 'openai' | 'ollama' | 'custom';
41
+ aiModel?: string;
42
+ agentMode: 'simple' | 'cursor' | 'claude-code' | 'openai-codex';
43
+ customEndpoint?: string | null;
44
+ customApiKey?: string | null;
45
+ outputDir: string;
46
+ conventions: {
47
+ operations: string;
48
+ events: string;
49
+ presentations: string;
50
+ forms: string;
51
+ workflows?: string;
52
+ 'data-views'?: string;
53
+ dataViews?: string;
54
+ migrations?: string;
55
+ telemetry?: string;
56
+ experiments?: string;
57
+ appConfig?: string;
58
+ integrations?: string;
59
+ knowledge?: string;
60
+ };
61
+ defaultOwners: string[];
62
+ defaultTags: string[];
63
+ ruleSync?: RuleSyncConfig;
64
+ }
65
+ /**
66
+ * Default workspace configuration.
67
+ */
68
+ declare const DEFAULT_WORKSPACE_CONFIG: WorkspaceConfig;
69
+ /**
70
+ * AI prompt context for spec generation.
71
+ */
72
+ interface SpecGenerationContext {
73
+ description: string;
74
+ kind?: OpKind;
75
+ presentationKind?: PresentationKind;
76
+ }
77
+ /**
78
+ * AI prompt context for code generation.
79
+ */
80
+ interface CodeGenerationContext {
81
+ specCode: string;
82
+ targetPath?: string;
83
+ existingCode?: string;
84
+ }
85
+ //#endregion
86
+ export { AIGenerationOptions, CodeGenerationContext, DEFAULT_WORKSPACE_CONFIG, GenerationResult, GenerationTarget, SpecBuildType, SpecGenerationContext, TestTarget, WorkspaceConfig };
87
+ //# sourceMappingURL=generation-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-types.d.ts","names":[],"sources":["../../src/types/generation-types.ts"],"sourcesContent":[],"mappings":";;;;;;AAqBA;AASA;AAKA;AAKY,UA7BK,mBAAA,CA6BQ;EAkBR,QAAA,EAAA,QAAe,GAAA,QAAA,GAwBnB,QAAA,GAAA,QAAc;EAMd,KAAA,CAAA,EAAA,MAAA;EAiBI,QAAA,CAAA,EAAA,MAAA;EASA,MAAA,CAAA,EAAA,OAAA;;;;;UA7FA,gBAAA;;;YAGL;;;;;KAMA,gBAAA;;;;KAKA,UAAA;;;;KAKA,aAAA;;;;UAkBK,eAAA;;;;;;;;;;;;;;;;;;;;;;;;aAwBJ;;;;;cAMA,0BAA0B;;;;UAiBtB,qBAAA;;SAER;qBACY;;;;;UAMJ,qBAAA"}
@@ -0,0 +1,21 @@
1
+ //#region src/types/generation-types.ts
2
+ /**
3
+ * Default workspace configuration.
4
+ */
5
+ const DEFAULT_WORKSPACE_CONFIG = {
6
+ aiProvider: "claude",
7
+ agentMode: "simple",
8
+ outputDir: "./src",
9
+ conventions: {
10
+ operations: "interactions/commands|queries",
11
+ events: "events",
12
+ presentations: "presentations",
13
+ forms: "forms"
14
+ },
15
+ defaultOwners: [],
16
+ defaultTags: []
17
+ };
18
+
19
+ //#endregion
20
+ export { DEFAULT_WORKSPACE_CONFIG };
21
+ //# sourceMappingURL=generation-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-types.js","names":[],"sources":["../../src/types/generation-types.ts"],"sourcesContent":["/**\n * Code generation related type definitions.\n */\n\nimport type { OpKind } from '@contractspec/lib.contracts';\nimport type { SpecType, PresentationKind } from './spec-types';\nimport type { RuleSyncConfig } from './rulesync-types';\n\n/**\n * AI provider options for generation.\n */\nexport interface AIGenerationOptions {\n provider: 'claude' | 'openai' | 'ollama' | 'custom';\n model?: string;\n endpoint?: string;\n stream?: boolean;\n}\n\n/**\n * Result of code generation.\n */\nexport interface GenerationResult {\n code: string;\n filePath: string;\n specType: SpecType;\n}\n\n/**\n * Build target types.\n */\nexport type GenerationTarget = 'handler' | 'component' | 'form';\n\n/**\n * Test target types.\n */\nexport type TestTarget = 'handler' | 'component';\n\n/**\n * Spec build type detected during build.\n */\nexport type SpecBuildType =\n | 'operation'\n | 'presentation'\n | 'form'\n | 'event'\n | 'workflow'\n | 'data-view'\n | 'telemetry'\n | 'migration'\n | 'experiment'\n | 'app-config'\n | 'integration'\n | 'knowledge'\n | 'unknown';\n\n/**\n * Configuration for workspace operations.\n */\nexport interface WorkspaceConfig {\n aiProvider: 'claude' | 'openai' | 'ollama' | 'custom';\n aiModel?: string;\n agentMode: 'simple' | 'cursor' | 'claude-code' | 'openai-codex';\n customEndpoint?: string | null;\n customApiKey?: string | null;\n outputDir: string;\n conventions: {\n operations: string;\n events: string;\n presentations: string;\n forms: string;\n workflows?: string;\n 'data-views'?: string;\n dataViews?: string;\n migrations?: string;\n telemetry?: string;\n experiments?: string;\n appConfig?: string;\n integrations?: string;\n knowledge?: string;\n };\n defaultOwners: string[];\n defaultTags: string[];\n ruleSync?: RuleSyncConfig;\n}\n\n/**\n * Default workspace configuration.\n */\nexport const DEFAULT_WORKSPACE_CONFIG: WorkspaceConfig = {\n aiProvider: 'claude',\n agentMode: 'simple',\n outputDir: './src',\n conventions: {\n operations: 'interactions/commands|queries',\n events: 'events',\n presentations: 'presentations',\n forms: 'forms',\n },\n defaultOwners: [],\n defaultTags: [],\n};\n\n/**\n * AI prompt context for spec generation.\n */\nexport interface SpecGenerationContext {\n description: string;\n kind?: OpKind;\n presentationKind?: PresentationKind;\n}\n\n/**\n * AI prompt context for code generation.\n */\nexport interface CodeGenerationContext {\n specCode: string;\n targetPath?: string;\n existingCode?: string;\n}\n"],"mappings":";;;;AAwFA,MAAa,2BAA4C;CACvD,YAAY;CACZ,WAAW;CACX,WAAW;CACX,aAAa;EACX,YAAY;EACZ,QAAQ;EACR,eAAe;EACf,OAAO;EACR;CACD,eAAe,EAAE;CACjB,aAAa,EAAE;CAChB"}
@@ -0,0 +1,138 @@
1
+ import { Stability } from "./spec-types.js";
2
+
3
+ //#region src/types/llm-types.d.ts
4
+
5
+ /**
6
+ * LLM export format options.
7
+ * - **full**: Complete information including source code and all details (for deep LLM context)
8
+ * - **prompt**: Concise with implementation instructions (actionable for LLM)
9
+ * - **context**: Brief summary with counts and key fields (lightweight overview)
10
+ */
11
+ type LLMExportFormat = 'full' | 'prompt' | 'context';
12
+ /**
13
+ * Agent types for implementation guides.
14
+ */
15
+ type AgentType = 'claude-code' | 'cursor-cli' | 'generic-mcp';
16
+ /**
17
+ * Verification tier for implementation checks.
18
+ */
19
+ type VerificationTier = 'quick' | 'standard' | 'thorough';
20
+ /**
21
+ * Reference to a related spec (operation, event, policy, test, etc.)
22
+ */
23
+ interface SpecRef {
24
+ name: string;
25
+ version: string;
26
+ }
27
+ /**
28
+ * Metadata extracted from a parsed spec.
29
+ */
30
+ interface ParsedSpecMeta {
31
+ /** Unique identifier for the spec */
32
+ key: string;
33
+ /** Version number */
34
+ version: string;
35
+ /** Human-readable description */
36
+ description?: string;
37
+ /** Stability level */
38
+ stability?: Stability;
39
+ /** Team or individual owners */
40
+ owners?: string[];
41
+ /** Categorization tags */
42
+ tags?: string[];
43
+ /** Business goal this spec achieves */
44
+ goal?: string;
45
+ /** Additional context for implementation */
46
+ context?: string;
47
+ }
48
+ /**
49
+ * Lightweight representation of a spec extracted from source code.
50
+ * This is used for LLM export without requiring full compilation.
51
+ */
52
+ interface ParsedSpec {
53
+ /** Spec metadata */
54
+ meta: ParsedSpecMeta;
55
+ /** Type of spec (operation, event, feature, etc.) */
56
+ specType: string;
57
+ /** For operations: command or query */
58
+ kind?: 'command' | 'query' | 'event' | 'presentation' | 'capability' | 'policy' | 'type' | 'example' | 'app-config' | 'integration' | 'workflow' | 'unknown';
59
+ /** Whether the spec defines input/output schemas */
60
+ hasIo?: boolean;
61
+ /** Whether the spec defines policy rules */
62
+ hasPolicy?: boolean;
63
+ /** Whether the spec defines a payload */
64
+ hasPayload?: boolean;
65
+ /** Whether the spec defines content */
66
+ hasContent?: boolean;
67
+ /** Whether the spec has a definition block */
68
+ hasDefinition?: boolean;
69
+ /** Events this spec may emit */
70
+ emittedEvents?: SpecRef[];
71
+ /** Policy specs referenced by this spec */
72
+ policyRefs?: SpecRef[];
73
+ /** Test specs associated with this spec */
74
+ testRefs?: SpecRef[];
75
+ /** Path to the source file */
76
+ filePath?: string;
77
+ /** The actual source code block of the spec */
78
+ sourceBlock?: string;
79
+ /** Operations included in this feature */
80
+ operations?: SpecRef[];
81
+ /** Events included in this feature */
82
+ events?: SpecRef[];
83
+ /** Presentations included in this feature */
84
+ presentations?: SpecRef[];
85
+ }
86
+ /**
87
+ * Options for spec-to-markdown conversion.
88
+ */
89
+ interface SpecToMarkdownOptions {
90
+ /** Export format */
91
+ format: LLMExportFormat;
92
+ /** Indentation depth for nested specs */
93
+ depth?: number;
94
+ /** Include source code blocks */
95
+ includeSource?: boolean;
96
+ /** Include implementation instructions */
97
+ includeInstructions?: boolean;
98
+ }
99
+ /**
100
+ * Result of LLM export operation.
101
+ */
102
+ interface LLMExportResult {
103
+ /** Generated markdown content */
104
+ content: string;
105
+ /** Number of specs included */
106
+ specCount: number;
107
+ /** Format used for export */
108
+ format: LLMExportFormat;
109
+ }
110
+ /**
111
+ * Result of implementation verification.
112
+ */
113
+ interface VerificationResult {
114
+ /** Whether verification passed */
115
+ passed: boolean;
116
+ /** Issues found during verification */
117
+ issues: VerificationIssue[];
118
+ /** Suggestions for improvement */
119
+ suggestions: string[];
120
+ /** Verification tier used */
121
+ tier: VerificationTier;
122
+ }
123
+ /**
124
+ * Single verification issue.
125
+ */
126
+ interface VerificationIssue {
127
+ /** Severity of the issue */
128
+ severity: 'error' | 'warning' | 'info';
129
+ /** Issue message */
130
+ message: string;
131
+ /** Location in the spec or implementation */
132
+ location?: string;
133
+ /** Suggested fix */
134
+ suggestion?: string;
135
+ }
136
+ //#endregion
137
+ export { AgentType, LLMExportFormat, LLMExportResult, ParsedSpec, ParsedSpecMeta, SpecRef, SpecToMarkdownOptions, VerificationIssue, VerificationResult, VerificationTier };
138
+ //# sourceMappingURL=llm-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-types.d.ts","names":[],"sources":["../../src/types/llm-types.ts"],"sourcesContent":[],"mappings":";;;;AA6BA;AAQA;AAuBA;;;;AAkCa,KAhFD,eAAA,GAgFC,MAAA,GAAA,QAAA,GAAA,SAAA;;;;AAYY,KAvFb,SAAA,GAuFa,aAAA,GAAA,YAAA,GAAA,aAAA;AAMzB;AAcA;AAYA;AAciB,KAhIL,gBAAA,GAgIsB,OAAA,GAAA,UAAA,GAAA,UAAA;;;;UA3HjB,OAAA;;;;;;;UAQA,cAAA;;;;;;;;cAQH;;;;;;;;;;;;;;UAeG,UAAA;;QAET;;;;;;;;;;;;;;;;kBA4BU;;eAEH;;aAEF;;;;;;eAQE;;WAEJ;;kBAEO;;;;;UAMD,qBAAA;;UAEP;;;;;;;;;;;UAYO,eAAA;;;;;;UAMP;;;;;UAMO,kBAAA;;;;UAIP;;;;QAIF;;;;;UAMS,iBAAA"}
@@ -0,0 +1,24 @@
1
+ import { RuleSyncTarget } from "@contractspec/lib.contracts";
2
+
3
+ //#region src/types/rulesync-types.d.ts
4
+
5
+ /**
6
+ * Configuration for AI agent rules synchronization.
7
+ */
8
+ interface RuleSyncConfig {
9
+ /** Enable automated rule synchronization */
10
+ enabled: boolean;
11
+ /** Root directory for source rule files */
12
+ rulesDir: string;
13
+ /** Source rule files (glob patterns) */
14
+ rules: string[];
15
+ /** Synchronization targets (tools to generate rules for) */
16
+ targets: RuleSyncTarget[];
17
+ /** Automatically synchronize rules on workspace changes or builds */
18
+ autoSync: boolean;
19
+ /** Whether to eject/copy source rules instead of generating from Unified Rules */
20
+ ejectMode: boolean;
21
+ }
22
+ //#endregion
23
+ export { RuleSyncConfig };
24
+ //# sourceMappingURL=rulesync-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rulesync-types.d.ts","names":[],"sources":["../../src/types/rulesync-types.ts"],"sourcesContent":[],"mappings":";;;;;;;UASiB,cAAA;;;;;;;;WAQN"}
@@ -0,0 +1,343 @@
1
+ import { OpKind } from "@contractspec/lib.contracts";
2
+
3
+ //#region src/types/spec-types.d.ts
4
+
5
+ type SpecType = 'operation' | 'event' | 'presentation' | 'form' | 'feature' | 'workflow' | 'data-view' | 'migration' | 'telemetry' | 'experiment' | 'app-config' | 'integration' | 'knowledge';
6
+ type PresentationKind = 'web_component' | 'markdown' | 'data';
7
+ type Stability = 'experimental' | 'beta' | 'stable' | 'deprecated';
8
+ type StepType = 'human' | 'automation' | 'decision';
9
+ interface BaseSpecData {
10
+ name: string;
11
+ version: string;
12
+ description: string;
13
+ owners: string[];
14
+ tags: string[];
15
+ stability: Stability;
16
+ }
17
+ interface OperationSpecData extends BaseSpecData {
18
+ kind: OpKind;
19
+ goal: string;
20
+ context: string;
21
+ hasInput: boolean;
22
+ hasOutput: boolean;
23
+ auth: 'anonymous' | 'user' | 'admin';
24
+ flags: string[];
25
+ emitsEvents: boolean;
26
+ }
27
+ interface EventSpecData extends BaseSpecData {
28
+ piiFields: string[];
29
+ }
30
+ interface PresentationSpecData extends BaseSpecData {
31
+ presentationKind: PresentationKind;
32
+ }
33
+ type FormSpecData = BaseSpecData;
34
+ interface FeatureSpecData extends BaseSpecData {
35
+ key: string;
36
+ operations: {
37
+ name: string;
38
+ version: string;
39
+ }[];
40
+ events: {
41
+ name: string;
42
+ version: string;
43
+ }[];
44
+ presentations: {
45
+ name: string;
46
+ version: string;
47
+ }[];
48
+ }
49
+ interface WorkflowStepData {
50
+ id: string;
51
+ label: string;
52
+ type: StepType;
53
+ description?: string;
54
+ operation?: {
55
+ name: string;
56
+ version: string;
57
+ };
58
+ form?: {
59
+ key: string;
60
+ version: string;
61
+ };
62
+ }
63
+ interface WorkflowTransitionData {
64
+ from: string;
65
+ to: string;
66
+ condition?: string;
67
+ }
68
+ interface WorkflowSpecData extends BaseSpecData {
69
+ title: string;
70
+ domain: string;
71
+ entryStepId?: string;
72
+ steps: WorkflowStepData[];
73
+ transitions: WorkflowTransitionData[];
74
+ policyFlags: string[];
75
+ }
76
+ type DataViewKind = 'list' | 'detail' | 'table' | 'grid';
77
+ interface DataViewFieldData {
78
+ key: string;
79
+ label: string;
80
+ dataPath: string;
81
+ format?: string;
82
+ sortable?: boolean;
83
+ filterable?: boolean;
84
+ }
85
+ interface DataViewSpecData extends BaseSpecData {
86
+ title: string;
87
+ domain: string;
88
+ entity: string;
89
+ kind: DataViewKind;
90
+ primaryOperation: {
91
+ name: string;
92
+ version: string;
93
+ };
94
+ itemOperation?: {
95
+ name: string;
96
+ version: string;
97
+ };
98
+ fields: DataViewFieldData[];
99
+ primaryField?: string;
100
+ secondaryFields?: string[];
101
+ }
102
+ type TelemetryPrivacy = 'public' | 'internal' | 'pii' | 'sensitive';
103
+ interface TelemetryPropertyData {
104
+ name: string;
105
+ type: 'string' | 'number' | 'boolean' | 'timestamp' | 'json';
106
+ required?: boolean;
107
+ pii?: boolean;
108
+ redact?: boolean;
109
+ description?: string;
110
+ }
111
+ interface TelemetryAnomalyRuleData {
112
+ metric: string;
113
+ min?: number;
114
+ max?: number;
115
+ }
116
+ interface TelemetryEventData {
117
+ name: string;
118
+ version: string;
119
+ what: string;
120
+ who?: string;
121
+ why?: string;
122
+ privacy: TelemetryPrivacy;
123
+ properties: TelemetryPropertyData[];
124
+ retentionDays?: number;
125
+ retentionPolicy?: 'archive' | 'delete';
126
+ samplingRate?: number;
127
+ samplingConditions?: string;
128
+ anomalyEnabled?: boolean;
129
+ anomalyMinimumSample?: number;
130
+ anomalyRules?: TelemetryAnomalyRuleData[];
131
+ anomalyActions?: ('alert' | 'log' | 'trigger_regen')[];
132
+ tags?: string[];
133
+ }
134
+ interface TelemetryProviderData {
135
+ type: 'posthog' | 'segment' | 'opentelemetry' | 'internal';
136
+ config: string;
137
+ }
138
+ interface TelemetrySpecData extends BaseSpecData {
139
+ domain: string;
140
+ defaultRetentionDays?: number;
141
+ defaultSamplingRate?: number;
142
+ providers?: TelemetryProviderData[];
143
+ anomalyEnabled?: boolean;
144
+ anomalyCheckIntervalMs?: number;
145
+ events: TelemetryEventData[];
146
+ }
147
+ interface ExperimentVariantOverrideData {
148
+ type: 'dataView' | 'workflow' | 'theme' | 'policy' | 'presentation';
149
+ target: string;
150
+ version?: string;
151
+ }
152
+ interface ExperimentVariantData {
153
+ id: string;
154
+ name: string;
155
+ description?: string;
156
+ weight?: number;
157
+ overrides?: ExperimentVariantOverrideData[];
158
+ }
159
+ interface TargetingRuleData {
160
+ variantId: string;
161
+ percentage?: number;
162
+ policy?: {
163
+ name: string;
164
+ version?: string;
165
+ };
166
+ expression?: string;
167
+ }
168
+ interface RandomAllocationData {
169
+ type: 'random';
170
+ salt?: string;
171
+ }
172
+ interface StickyAllocationData {
173
+ type: 'sticky';
174
+ attribute: 'userId' | 'organizationId' | 'sessionId';
175
+ salt?: string;
176
+ }
177
+ interface TargetedAllocationData {
178
+ type: 'targeted';
179
+ fallback?: 'control' | 'random';
180
+ rules: TargetingRuleData[];
181
+ }
182
+ type ExperimentAllocationData = RandomAllocationData | StickyAllocationData | TargetedAllocationData;
183
+ interface ExperimentMetricData {
184
+ name: string;
185
+ eventName: string;
186
+ eventVersion: string;
187
+ aggregation: 'count' | 'avg' | 'p75' | 'p90' | 'p95' | 'p99';
188
+ target?: string;
189
+ }
190
+ interface ExperimentSpecData extends BaseSpecData {
191
+ domain: string;
192
+ controlVariant: string;
193
+ variants: ExperimentVariantData[];
194
+ allocation: ExperimentAllocationData;
195
+ successMetrics?: ExperimentMetricData[];
196
+ }
197
+ interface AppConfigMappingData {
198
+ slot: string;
199
+ name: string;
200
+ version?: string;
201
+ }
202
+ interface AppConfigFeatureFlagData {
203
+ key: string;
204
+ enabled: boolean;
205
+ variant?: string;
206
+ description?: string;
207
+ }
208
+ interface AppRouteConfigData {
209
+ path: string;
210
+ label?: string;
211
+ dataView?: string;
212
+ workflow?: string;
213
+ guardName?: string;
214
+ guardVersion?: string | number;
215
+ featureFlag?: string;
216
+ experimentName?: string;
217
+ experimentVersion?: string | number;
218
+ }
219
+ interface AppBlueprintSpecData extends BaseSpecData {
220
+ title: string;
221
+ domain: string;
222
+ appId: string;
223
+ capabilitiesEnabled: string[];
224
+ capabilitiesDisabled: string[];
225
+ featureIncludes: string[];
226
+ featureExcludes: string[];
227
+ dataViews: AppConfigMappingData[];
228
+ workflows: AppConfigMappingData[];
229
+ policyRefs: {
230
+ name: string;
231
+ version?: string;
232
+ }[];
233
+ theme?: {
234
+ name: string;
235
+ version: string;
236
+ };
237
+ themeFallbacks: {
238
+ name: string;
239
+ version: string;
240
+ }[];
241
+ telemetry?: {
242
+ name: string;
243
+ version?: string;
244
+ };
245
+ activeExperiments: {
246
+ name: string;
247
+ version?: string;
248
+ }[];
249
+ pausedExperiments: {
250
+ name: string;
251
+ version?: string;
252
+ }[];
253
+ featureFlags: AppConfigFeatureFlagData[];
254
+ routes: AppRouteConfigData[];
255
+ notes?: string;
256
+ }
257
+ type MigrationStepKind = 'schema' | 'data' | 'validation';
258
+ interface MigrationStepData {
259
+ kind: MigrationStepKind;
260
+ description?: string;
261
+ sql?: string;
262
+ script?: string;
263
+ assertion?: string;
264
+ timeoutMs?: number;
265
+ retries?: number;
266
+ preChecks?: {
267
+ description: string;
268
+ expression: string;
269
+ }[];
270
+ postChecks?: {
271
+ description: string;
272
+ expression: string;
273
+ }[];
274
+ }
275
+ interface MigrationSpecData extends BaseSpecData {
276
+ title: string;
277
+ domain: string;
278
+ dependencies: string[];
279
+ up: MigrationStepData[];
280
+ down?: MigrationStepData[];
281
+ }
282
+ type IntegrationCategoryData = 'payments' | 'email' | 'calendar' | 'sms' | 'ai-llm' | 'ai-voice' | 'speech-to-text' | 'vector-db' | 'storage' | 'accounting' | 'crm' | 'helpdesk' | 'open-banking' | 'custom';
283
+ type IntegrationConfigFieldType = 'string' | 'number' | 'boolean';
284
+ type IntegrationOwnershipModeData = 'managed' | 'byok';
285
+ type IntegrationHealthCheckMethod = 'ping' | 'list' | 'custom';
286
+ interface IntegrationCapabilityRefData {
287
+ key: string;
288
+ version: string;
289
+ }
290
+ interface IntegrationCapabilityRequirementData {
291
+ key: string;
292
+ version?: string;
293
+ optional?: boolean;
294
+ reason?: string;
295
+ }
296
+ interface IntegrationConfigFieldData {
297
+ key: string;
298
+ type: IntegrationConfigFieldType;
299
+ required: boolean;
300
+ description?: string;
301
+ }
302
+ type IntegrationSecretFieldData = IntegrationConfigFieldData;
303
+ interface IntegrationSpecData extends BaseSpecData {
304
+ title: string;
305
+ domain: string;
306
+ displayName: string;
307
+ category: IntegrationCategoryData;
308
+ supportedModes: IntegrationOwnershipModeData[];
309
+ capabilitiesProvided: IntegrationCapabilityRefData[];
310
+ capabilitiesRequired: IntegrationCapabilityRequirementData[];
311
+ configFields: IntegrationConfigFieldData[];
312
+ secretFields: IntegrationSecretFieldData[];
313
+ docsUrl?: string;
314
+ rateLimitRpm?: number;
315
+ rateLimitRph?: number;
316
+ healthCheckMethod: IntegrationHealthCheckMethod;
317
+ healthCheckTimeoutMs?: number;
318
+ byokSetupInstructions?: string;
319
+ byokRequiredScopes?: string[];
320
+ }
321
+ type KnowledgeCategoryData = 'canonical' | 'operational' | 'external' | 'ephemeral';
322
+ type KnowledgeTrustLevel = 'high' | 'medium' | 'low';
323
+ interface KnowledgeRetentionData {
324
+ ttlDays?: number | null;
325
+ archiveAfterDays?: number;
326
+ }
327
+ interface KnowledgeSpaceSpecData extends BaseSpecData {
328
+ title: string;
329
+ domain: string;
330
+ displayName: string;
331
+ category: KnowledgeCategoryData;
332
+ retention: KnowledgeRetentionData;
333
+ policyName?: string;
334
+ policyVersion?: string | number;
335
+ trustLevel: KnowledgeTrustLevel;
336
+ automationWritable: boolean;
337
+ embeddingModel?: string;
338
+ chunkSize?: number;
339
+ vectorDbIntegration?: string;
340
+ }
341
+ //#endregion
342
+ export { AppBlueprintSpecData, AppConfigFeatureFlagData, AppConfigMappingData, AppRouteConfigData, BaseSpecData, DataViewFieldData, DataViewKind, DataViewSpecData, EventSpecData, ExperimentAllocationData, ExperimentMetricData, ExperimentSpecData, ExperimentVariantData, ExperimentVariantOverrideData, FeatureSpecData, FormSpecData, IntegrationCapabilityRefData, IntegrationCapabilityRequirementData, IntegrationCategoryData, IntegrationConfigFieldData, IntegrationConfigFieldType, IntegrationHealthCheckMethod, IntegrationOwnershipModeData, IntegrationSecretFieldData, IntegrationSpecData, KnowledgeCategoryData, KnowledgeRetentionData, KnowledgeSpaceSpecData, KnowledgeTrustLevel, MigrationSpecData, MigrationStepData, MigrationStepKind, OperationSpecData, PresentationKind, PresentationSpecData, RandomAllocationData, SpecType, Stability, StepType, StickyAllocationData, TargetedAllocationData, TargetingRuleData, TelemetryAnomalyRuleData, TelemetryEventData, TelemetryPrivacy, TelemetryPropertyData, TelemetryProviderData, TelemetrySpecData, WorkflowSpecData, WorkflowStepData, WorkflowTransitionData };
343
+ //# sourceMappingURL=spec-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-types.d.ts","names":[],"sources":["../../src/types/spec-types.ts"],"sourcesContent":[],"mappings":";;;;AAwBY,KAjBA,QAAA,GAiBS,WAAA,GAAA,OAAA,GAAA,cAAA,GAAA,MAAA,GAAA,SAAA,GAAA,UAAA,GAAA,WAAA,GAAA,WAAA,GAAA,WAAA,GAAA,YAAA,GAAA,YAAA,GAAA,aAAA,GAAA,WAAA;AAET,KAJA,gBAAA,GAIQ,eAAA,GAAA,UAAA,GAAA,MAAA;AAEH,KAJL,SAAA,GAIiB,cAMhB,GAAS,MAAA,GAAA,QAAA,GAAA,YAAA;AAGL,KAXL,QAAA,GAWK,OAAkB,GAAA,YAAQ,GAAA,UAAY;AAWtC,UApBA,YAAA,CAoBc;EAId,IAAA,EAAA,MAAA;EAIL,OAAA,EAAA,MAAY;EAEP,WAAA,EAAA,MAAgB;EAOhB,MAAA,EAAA,MAAA,EAAA;EASA,IAAA,EAAA,MAAA,EAAA;EAMA,SAAA,EA9CJ,SA8CqB;;AAKnB,UAhDE,iBAAA,SAA0B,YAgD5B,CAAA;EAL2B,IAAA,EA1ClC,MA0CkC;EAAY,IAAA,EAAA,MAAA;EAS1C,OAAA,EAAA,MAAY;EAEP,QAAA,EAAA,OAAA;EASA,SAAA,EAAA,OAAA;EAIT,IAAA,EAAA,WAAA,GAAA,MAAA,GAAA,OAAA;EAGE,KAAA,EAAA,MAAA,EAAA;EAPgC,WAAA,EAAA,OAAA;;AAY9B,UAhEK,aAAA,SAAsB,YAgEX,CAAA;EAEX,SAAA,EAAA,MAAA,EAAA;AASjB;AAMiB,UA7EA,oBAAA,SAA6B,YA6EX,CAAA;EAMxB,gBAAA,EAlFS,gBAkFT;;AAQM,KAvFL,YAAA,GAAe,YAuFV;AAAwB,UArFxB,eAAA,SAAwB,YAqFA,CAAA;EAKxB,GAAA,EAAA,MAAA;EAKA,UAAA,EAAA;IAIH,IAAA,EAAA,MAAA;IAGJ,OAAA,EAAA,MAAA;EAPiC,CAAA,EAAA;EAAY,MAAA,EAAA;IAUtC,IAAA,EAAA,MAAA;IAMA,OAAA,EAAA,MAAA;EAQA,CAAA,EAAA;EAOA,aAAA,EAAA;IAKA,IAAA,EAAA,MAAA;IAMA,OAAA,EAAA,MAAA;EAML,CAAA,EAAA;;AAER,UA1Ia,gBAAA,CA0Ib;EACA,EAAA,EAAA,MAAA;EAAsB,KAAA,EAAA,MAAA;EAET,IAAA,EA1IT,QA0IS;EAQA,WAAA,CAAA,EAAA,MAAA;EAGL,SAAA,CAAA,EAAA;IACE,IAAA,EAAA,MAAA;IACK,OAAA,EAAA,MAAA;EALyB,CAAA;EAAY,IAAA,CAAA,EAAA;IAQvC,GAAA,EAAA,MAAA;IAMA,OAAA,EAAA,MAAA;EAOA,CAAA;AAYjB;AAQa,UArLI,sBAAA,CAqLJ;EACA,IAAA,EAAA,MAAA;EAOG,EAAA,EAAA,MAAA;EACN,SAAA,CAAA,EAAA,MAAA;;AAjBgD,UAvKzC,gBAAA,SAAyB,YAuKgB,CAAA;EAqB9C,KAAA,EAAA,MAAA;EAEK,MAAA,EAAA,MAAA;EAYA,WAAA,CAAA,EAAA,MAAkB;EAI7B,KAAA,EA1MG,gBA0MH,EAAA;EACG,WAAA,EA1MM,sBA0MN,EAAA;EALkC,WAAA,EAAA,MAAA,EAAA;;AAQ/B,KAzMA,YAAA,GAyMA,MAAuB,GAAA,QAAA,GAAA,OAAA,GAAA,MAAA;AAgBvB,UAvNK,iBAAA,CAuNqB;EAE1B,GAAA,EAAA,MAAA;EAEA,KAAA,EAAA,MAAA;EAEK,QAAA,EAAA,MAAA;EAKA,MAAA,CAAA,EAAA,MAAA;EAOA,QAAA,CAAA,EAAA,OAAA;EAOL,UAAA,CAAA,EAAA,OAAA;AAEZ;AAIY,UA7OK,gBAAA,SAAyB,YA6O9B,CAAA;EACM,KAAA,EAAA,MAAA;EACM,MAAA,EAAA,MAAA;EACA,MAAA,EAAA,MAAA;EACR,IAAA,EA7OR,YA6OQ;EACA,gBAAA,EAAA;IAIK,IAAA,EAAA,MAAA;IAbwB,OAAA,EAAA,MAAA;EAAY,CAAA;EAmB7C,aAAA,CAAA,EAAA;IAMA,IAAA,EAAA,MAAA;IAEK,OAAA,EAAA,MAAA;EAKA,CAAA;EAIL,MAAA,EAtQF,iBAsQE,EAAA;EACC,YAAA,CAAA,EAAA,MAAA;EAGC,eAAA,CAAA,EAAA,MAAA,EAAA;;AAR8C,KA7PhD,gBAAA,GA6PgD,QAAA,GAAA,UAAA,GAAA,KAAA,GAAA,WAAA;UA3P3C,qBAAA;;;;;;;;UASA,wBAAA;;;;;UAMA,kBAAA;;;;;;WAMN;cACG;;;;;;;iBAOG;;;;UAKA,qBAAA;;;;UAKA,iBAAA,SAA0B;;;;cAI7B;;;UAGJ;;UAGO,6BAAA;;;;;UAMA,qBAAA;;;;;cAKH;;UAGG,iBAAA;;;;;;;;;UAOA,oBAAA;;;;UAKA,oBAAA;;;;;UAMA,sBAAA;;;SAGR;;KAGG,wBAAA,GACR,uBACA,uBACA;UAEa,oBAAA;;;;;;;UAQA,kBAAA,SAA2B;;;YAGhC;cACE;mBACK;;UAGF,oBAAA;;;;;UAMA,wBAAA;;;;;;UAOA,kBAAA;;;;;;;;;;;UAYA,oBAAA,SAA6B;;;;;;;;aAQjC;aACA;;;;;;;;;;;;;;;;;;;;;;;;;gBAOG;UACN;;;KAIE,iBAAA;UAEK,iBAAA;QACT;;;;;;;;;;;;;;;;UAWS,iBAAA,SAA0B;;;;MAIrC;SACG;;KAGG,uBAAA;KAgBA,0BAAA;KAEA,4BAAA;KAEA,4BAAA;UAEK,4BAAA;;;;UAKA,oCAAA;;;;;;UAOA,0BAAA;;QAET;;;;KAKI,0BAAA,GAA6B;UAExB,mBAAA,SAA4B;;;;YAIjC;kBACM;wBACM;wBACA;gBACR;gBACA;;;;qBAIK;;;;;KAMT,qBAAA;KAMA,mBAAA;UAEK,sBAAA;;;;UAKA,sBAAA,SAA+B;;;;YAIpC;aACC;;;cAGC"}