@lssm/bundle.contractspec-workspace 0.0.0-canary-20251217083314 → 1.41.1

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 (350) hide show
  1. package/dist/_virtual/rolldown_runtime.js +1 -22
  2. package/dist/adapters/ai.js +1 -82
  3. package/dist/adapters/factory.js +1 -36
  4. package/dist/adapters/fs.js +1 -118
  5. package/dist/adapters/git.js +1 -54
  6. package/dist/adapters/index.js +1 -7
  7. package/dist/adapters/logger.js +1 -80
  8. package/dist/adapters/watcher.js +1 -69
  9. package/dist/adapters/workspace.js +2 -190
  10. package/dist/ai/agents/claude-code-agent.js +9 -146
  11. package/dist/ai/agents/cursor-agent.js +17 -286
  12. package/dist/ai/agents/index.js +1 -5
  13. package/dist/ai/agents/openai-codex-agent.js +8 -140
  14. package/dist/ai/agents/orchestrator.js +1 -142
  15. package/dist/ai/agents/simple-agent.js +4 -80
  16. package/dist/ai/client.js +1 -162
  17. package/dist/ai/index.js +1 -27
  18. package/dist/ai/prompts/code-generation.js +13 -55
  19. package/dist/ai/prompts/index.js +1 -12
  20. package/dist/ai/prompts/spec-creation.js +20 -61
  21. package/dist/ai/providers.js +1 -40
  22. package/dist/formatters/index.js +1 -18
  23. package/dist/formatters/json.js +1 -71
  24. package/dist/formatters/sarif.js +1 -163
  25. package/dist/formatters/text.js +2 -208
  26. package/dist/index.js +1 -81
  27. package/dist/services/agent-guide/adapters/claude-code.js +3 -144
  28. package/dist/services/agent-guide/adapters/cursor-cli.js +3 -135
  29. package/dist/services/agent-guide/adapters/generic-mcp.js +3 -159
  30. package/dist/services/agent-guide/adapters/index.js +1 -30
  31. package/dist/services/agent-guide/agent-guide-service.js +1 -148
  32. package/dist/services/agent-guide/index.js +1 -5
  33. package/dist/services/build.js +1 -140
  34. package/dist/services/ci-check/ci-check-service.js +1 -393
  35. package/dist/services/ci-check/index.js +1 -2
  36. package/dist/services/ci-check/types.js +1 -28
  37. package/dist/services/clean.js +1 -71
  38. package/dist/services/config.js +1 -76
  39. package/dist/services/deps.js +1 -62
  40. package/dist/services/diff.js +1 -33
  41. package/dist/services/doctor/checks/ai.js +2 -118
  42. package/dist/services/doctor/checks/cli.js +1 -146
  43. package/dist/services/doctor/checks/config.js +1 -170
  44. package/dist/services/doctor/checks/deps.js +1 -180
  45. package/dist/services/doctor/checks/index.js +1 -6
  46. package/dist/services/doctor/checks/mcp.js +1 -144
  47. package/dist/services/doctor/checks/workspace.js +1 -243
  48. package/dist/services/doctor/doctor-service.js +2 -115
  49. package/dist/services/doctor/index.js +1 -2
  50. package/dist/services/doctor/types.js +1 -26
  51. package/dist/services/implementation/discovery.js +2 -143
  52. package/dist/services/implementation/index.js +1 -2
  53. package/dist/services/implementation/resolver.js +1 -223
  54. package/dist/services/index.js +1 -53
  55. package/dist/services/integrity-diagram.js +6 -274
  56. package/dist/services/integrity.js +1 -272
  57. package/dist/services/list.js +1 -35
  58. package/dist/services/openapi/export-service.js +2 -51
  59. package/dist/services/openapi/import-service.js +1 -75
  60. package/dist/services/openapi/index.js +1 -4
  61. package/dist/services/openapi/sync-service.js +1 -121
  62. package/dist/services/openapi/validate-service.js +1 -130
  63. package/dist/services/regenerator.js +1 -23
  64. package/dist/services/registry.js +1 -73
  65. package/dist/services/setup/config-generators.js +26 -113
  66. package/dist/services/setup/file-merger.js +2 -60
  67. package/dist/services/setup/index.js +1 -4
  68. package/dist/services/setup/setup-service.js +1 -95
  69. package/dist/services/setup/targets/agents-md.js +1 -46
  70. package/dist/services/setup/targets/cli-config.js +1 -59
  71. package/dist/services/setup/targets/cursor-rules.js +1 -47
  72. package/dist/services/setup/targets/mcp-claude.js +1 -59
  73. package/dist/services/setup/targets/mcp-cursor.js +1 -58
  74. package/dist/services/setup/targets/vscode-settings.js +1 -62
  75. package/dist/services/setup/types.js +1 -26
  76. package/dist/services/sync.js +1 -62
  77. package/dist/services/test.js +1 -30
  78. package/dist/services/validate-implementation.js +1 -69
  79. package/dist/services/validate.js +1 -47
  80. package/dist/services/verification-cache/adapters/filesystem.js +1 -121
  81. package/dist/services/verification-cache/adapters/in-memory.js +1 -45
  82. package/dist/services/verification-cache/adapters/index.js +1 -3
  83. package/dist/services/verification-cache/adapters/workspace-state.js +1 -90
  84. package/dist/services/verification-cache/cache-service.js +1 -255
  85. package/dist/services/verification-cache/index.js +1 -6
  86. package/dist/services/verification-cache/types.js +1 -15
  87. package/dist/services/verify/ai-verifier.js +9 -336
  88. package/dist/services/verify/behavior-verifier.js +1 -185
  89. package/dist/services/verify/index.js +1 -4
  90. package/dist/services/verify/structure-verifier.js +2 -195
  91. package/dist/services/verify/verify-service.js +3 -203
  92. package/dist/services/watch.js +1 -31
  93. package/dist/services/workspace-info.js +2 -102
  94. package/dist/templates/app-config.template.js +28 -101
  95. package/dist/templates/data-view.template.js +27 -42
  96. package/dist/templates/event.template.js +14 -29
  97. package/dist/templates/experiment.template.js +51 -77
  98. package/dist/templates/handler.template.js +17 -53
  99. package/dist/templates/index.js +1 -36
  100. package/dist/templates/integration.template.js +50 -134
  101. package/dist/templates/knowledge.template.js +21 -62
  102. package/dist/templates/migration.template.js +26 -50
  103. package/dist/templates/operation.template.js +28 -44
  104. package/dist/templates/presentation.template.js +20 -46
  105. package/dist/templates/telemetry.template.js +53 -74
  106. package/dist/templates/workflow-runner.template.js +6 -12
  107. package/dist/templates/workflow.template.js +24 -51
  108. package/package.json +10 -15
  109. package/dist/adapters/ai.d.ts +0 -11
  110. package/dist/adapters/factory.d.ts +0 -28
  111. package/dist/adapters/fs.d.ts +0 -10
  112. package/dist/adapters/git.d.ts +0 -10
  113. package/dist/adapters/logger.d.ts +0 -17
  114. package/dist/adapters/watcher.d.ts +0 -10
  115. package/dist/adapters/workspace.d.ts +0 -93
  116. package/dist/ai/agents/claude-code-agent.d.ts +0 -21
  117. package/dist/ai/agents/cursor-agent.d.ts +0 -67
  118. package/dist/ai/agents/openai-codex-agent.d.ts +0 -21
  119. package/dist/ai/agents/orchestrator.d.ts +0 -49
  120. package/dist/ai/agents/simple-agent.d.ts +0 -16
  121. package/dist/ai/agents/types.d.ts +0 -35
  122. package/dist/ai/client.d.ts +0 -82
  123. package/dist/ai/index.d.ts +0 -16
  124. package/dist/ai/prompts/code-generation.d.ts +0 -25
  125. package/dist/ai/prompts/index.d.ts +0 -9
  126. package/dist/ai/prompts/spec-creation.d.ts +0 -28
  127. package/dist/ai/providers.d.ts +0 -28
  128. package/dist/formatters/index.d.ts +0 -10
  129. package/dist/formatters/json.d.ts +0 -88
  130. package/dist/formatters/sarif.d.ts +0 -100
  131. package/dist/formatters/text.d.ts +0 -34
  132. package/dist/index.d.ts +0 -66
  133. package/dist/libs/ai-providers/dist/factory.js +0 -154
  134. package/dist/libs/ai-providers/dist/index.js +0 -4
  135. package/dist/libs/ai-providers/dist/legacy.js +0 -72
  136. package/dist/libs/ai-providers/dist/models.js +0 -287
  137. package/dist/libs/ai-providers/dist/validation.js +0 -1
  138. package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
  139. package/dist/libs/contracts/dist/client/index.js +0 -5
  140. package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
  141. package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
  142. package/dist/libs/contracts/dist/client/react/index.js +0 -4
  143. package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
  144. package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
  145. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  146. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
  147. package/dist/libs/contracts/dist/docs/index.js +0 -29
  148. package/dist/libs/contracts/dist/docs/presentations.js +0 -71
  149. package/dist/libs/contracts/dist/docs/registry.js +0 -44
  150. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  151. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  152. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  153. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  154. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  155. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
  156. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
  157. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
  158. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
  159. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
  160. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
  161. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
  162. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
  163. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
  164. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
  165. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
  166. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
  167. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
  168. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
  169. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
  170. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
  171. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
  172. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
  173. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
  174. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
  175. package/dist/libs/contracts/dist/events.js +0 -8
  176. package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
  177. package/dist/libs/contracts/dist/index.js +0 -72
  178. package/dist/libs/contracts/dist/install.js +0 -2
  179. package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
  180. package/dist/libs/contracts/dist/integrations/index.js +0 -18
  181. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
  182. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
  183. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
  184. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
  185. package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
  186. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
  187. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
  188. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
  189. package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
  190. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
  191. package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
  192. package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
  193. package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
  194. package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
  195. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
  196. package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
  197. package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
  198. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
  199. package/dist/libs/contracts/dist/jsonschema.js +0 -24
  200. package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
  201. package/dist/libs/contracts/dist/knowledge/index.js +0 -7
  202. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
  203. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
  204. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
  205. package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
  206. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
  207. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
  208. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
  209. package/dist/libs/contracts/dist/llm/exporters.js +0 -352
  210. package/dist/libs/contracts/dist/llm/index.js +0 -2
  211. package/dist/libs/contracts/dist/llm/prompts.js +0 -211
  212. package/dist/libs/contracts/dist/onboarding-base.js +0 -196
  213. package/dist/libs/contracts/dist/openapi.js +0 -75
  214. package/dist/libs/contracts/dist/ownership.js +0 -21
  215. package/dist/libs/contracts/dist/presentations.js +0 -1
  216. package/dist/libs/contracts/dist/presentations.v2.js +0 -11
  217. package/dist/libs/contracts/dist/prompt.js +0 -1
  218. package/dist/libs/contracts/dist/promptRegistry.js +0 -1
  219. package/dist/libs/contracts/dist/regenerator/index.js +0 -2
  220. package/dist/libs/contracts/dist/regenerator/service.js +0 -92
  221. package/dist/libs/contracts/dist/regenerator/utils.js +0 -51
  222. package/dist/libs/contracts/dist/registry.js +0 -208
  223. package/dist/libs/contracts/dist/resources.js +0 -1
  224. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  225. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  226. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  227. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  228. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  229. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  230. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  231. package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
  232. package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
  233. package/dist/libs/contracts/dist/server/index.js +0 -8
  234. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
  235. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
  236. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
  237. package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
  238. package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
  239. package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
  240. package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
  241. package/dist/libs/contracts/dist/server/rest-express.js +0 -1
  242. package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
  243. package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
  244. package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
  245. package/dist/libs/contracts/dist/spec.js +0 -35
  246. package/dist/libs/contracts/dist/telemetry/index.js +0 -1
  247. package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
  248. package/dist/libs/contracts/dist/tests/index.js +0 -1
  249. package/dist/libs/contracts/dist/tests/runner.js +0 -150
  250. package/dist/libs/contracts/dist/workflow/index.js +0 -1
  251. package/dist/libs/contracts/dist/workflow/runner.js +0 -1
  252. package/dist/libs/contracts-transformers/dist/common/utils.js +0 -47
  253. package/dist/libs/contracts-transformers/dist/openapi/exporter.js +0 -1
  254. package/dist/libs/contracts-transformers/dist/openapi/importer.js +0 -255
  255. package/dist/libs/contracts-transformers/dist/openapi/index.js +0 -4
  256. package/dist/libs/contracts-transformers/dist/openapi/parser.js +0 -231
  257. package/dist/libs/contracts-transformers/dist/openapi/schema-converter.js +0 -201
  258. package/dist/modules/contractspec-workspace/dist/ai/code-generation.js +0 -137
  259. package/dist/modules/contractspec-workspace/dist/ai/spec-creation.js +0 -101
  260. package/dist/modules/contractspec-workspace/dist/analysis/deps/graph.js +0 -84
  261. package/dist/modules/contractspec-workspace/dist/analysis/deps/parse-imports.js +0 -30
  262. package/dist/modules/contractspec-workspace/dist/analysis/diff/semantic.js +0 -96
  263. package/dist/modules/contractspec-workspace/dist/analysis/feature-scan.js +0 -151
  264. package/dist/modules/contractspec-workspace/dist/analysis/spec-scan.js +0 -344
  265. package/dist/modules/contractspec-workspace/dist/analysis/validate/spec-structure.js +0 -122
  266. package/dist/modules/contractspec-workspace/dist/templates/app-config.js +0 -105
  267. package/dist/modules/contractspec-workspace/dist/templates/data-view.js +0 -68
  268. package/dist/modules/contractspec-workspace/dist/templates/event.js +0 -38
  269. package/dist/modules/contractspec-workspace/dist/templates/experiment.js +0 -87
  270. package/dist/modules/contractspec-workspace/dist/templates/handler.js +0 -95
  271. package/dist/modules/contractspec-workspace/dist/templates/integration-utils.js +0 -104
  272. package/dist/modules/contractspec-workspace/dist/templates/integration.js +0 -62
  273. package/dist/modules/contractspec-workspace/dist/templates/knowledge.js +0 -68
  274. package/dist/modules/contractspec-workspace/dist/templates/migration.js +0 -60
  275. package/dist/modules/contractspec-workspace/dist/templates/operation.js +0 -100
  276. package/dist/modules/contractspec-workspace/dist/templates/presentation.js +0 -78
  277. package/dist/modules/contractspec-workspace/dist/templates/telemetry.js +0 -89
  278. package/dist/modules/contractspec-workspace/dist/templates/utils.js +0 -38
  279. package/dist/modules/contractspec-workspace/dist/templates/workflow-runner.js +0 -48
  280. package/dist/modules/contractspec-workspace/dist/templates/workflow.js +0 -67
  281. package/dist/modules/contractspec-workspace/dist/types/generation-types.js +0 -20
  282. package/dist/ports/ai.d.ts +0 -58
  283. package/dist/ports/fs.d.ts +0 -80
  284. package/dist/ports/git.d.ts +0 -32
  285. package/dist/ports/logger.d.ts +0 -87
  286. package/dist/ports/watcher.d.ts +0 -51
  287. package/dist/services/agent-guide/adapters/claude-code.d.ts +0 -34
  288. package/dist/services/agent-guide/adapters/cursor-cli.d.ts +0 -38
  289. package/dist/services/agent-guide/adapters/generic-mcp.d.ts +0 -52
  290. package/dist/services/agent-guide/adapters/index.d.ts +0 -22
  291. package/dist/services/agent-guide/agent-guide-service.d.ts +0 -55
  292. package/dist/services/agent-guide/types.d.ts +0 -57
  293. package/dist/services/build.d.ts +0 -58
  294. package/dist/services/ci-check/ci-check-service.d.ts +0 -15
  295. package/dist/services/ci-check/types.d.ts +0 -142
  296. package/dist/services/clean.d.ts +0 -40
  297. package/dist/services/config.d.ts +0 -25
  298. package/dist/services/deps.d.ts +0 -52
  299. package/dist/services/diff.d.ts +0 -33
  300. package/dist/services/doctor/doctor-service.d.ts +0 -23
  301. package/dist/services/doctor/types.d.ts +0 -117
  302. package/dist/services/implementation/discovery.d.ts +0 -29
  303. package/dist/services/implementation/resolver.d.ts +0 -43
  304. package/dist/services/implementation/types.d.ts +0 -78
  305. package/dist/services/integrity-diagram.d.ts +0 -35
  306. package/dist/services/integrity.d.ts +0 -133
  307. package/dist/services/list.d.ts +0 -30
  308. package/dist/services/openapi/export-service.d.ts +0 -52
  309. package/dist/services/openapi/import-service.d.ts +0 -15
  310. package/dist/services/openapi/sync-service.d.ts +0 -18
  311. package/dist/services/openapi/types.d.ts +0 -184
  312. package/dist/services/openapi/validate-service.d.ts +0 -15
  313. package/dist/services/regenerator.d.ts +0 -17
  314. package/dist/services/registry.d.ts +0 -52
  315. package/dist/services/setup/config-generators.d.ts +0 -41
  316. package/dist/services/setup/file-merger.d.ts +0 -26
  317. package/dist/services/setup/setup-service.d.ts +0 -11
  318. package/dist/services/setup/types.d.ts +0 -84
  319. package/dist/services/sync.d.ts +0 -40
  320. package/dist/services/test.d.ts +0 -14
  321. package/dist/services/validate-implementation.d.ts +0 -31
  322. package/dist/services/validate.d.ts +0 -40
  323. package/dist/services/verification-cache/adapters/filesystem.d.ts +0 -45
  324. package/dist/services/verification-cache/adapters/in-memory.d.ts +0 -26
  325. package/dist/services/verification-cache/adapters/workspace-state.d.ts +0 -48
  326. package/dist/services/verification-cache/cache-service.d.ts +0 -69
  327. package/dist/services/verification-cache/types.d.ts +0 -123
  328. package/dist/services/verify/ai-verifier.d.ts +0 -24
  329. package/dist/services/verify/behavior-verifier.d.ts +0 -11
  330. package/dist/services/verify/structure-verifier.d.ts +0 -11
  331. package/dist/services/verify/types.d.ts +0 -136
  332. package/dist/services/verify/verify-service.d.ts +0 -59
  333. package/dist/services/watch.d.ts +0 -24
  334. package/dist/services/workspace-info.d.ts +0 -61
  335. package/dist/templates/app-config.template.d.ts +0 -6
  336. package/dist/templates/data-view.template.d.ts +0 -6
  337. package/dist/templates/event.template.d.ts +0 -10
  338. package/dist/templates/experiment.template.d.ts +0 -6
  339. package/dist/templates/handler.template.d.ts +0 -15
  340. package/dist/templates/index.d.ts +0 -20
  341. package/dist/templates/integration.template.d.ts +0 -6
  342. package/dist/templates/knowledge.template.d.ts +0 -6
  343. package/dist/templates/migration.template.d.ts +0 -6
  344. package/dist/templates/operation.template.d.ts +0 -10
  345. package/dist/templates/presentation.template.d.ts +0 -10
  346. package/dist/templates/telemetry.template.d.ts +0 -6
  347. package/dist/templates/workflow-runner.template.d.ts +0 -15
  348. package/dist/templates/workflow.template.d.ts +0 -6
  349. package/dist/types/config.d.ts +0 -33
  350. package/dist/types.d.ts +0 -323
@@ -1,106 +1,33 @@
1
- //#region src/templates/app-config.template.ts
2
- function generateAppBlueprintSpec(data) {
3
- const exportName = toPascalCase(data.name.split(".").pop() ?? "App") + "AppConfig";
4
- const capabilitiesSection = buildCapabilitiesSection(data);
5
- const featuresSection = buildFeaturesSection(data);
6
- const dataViewsSection = buildMappingSection("dataViews", data.dataViews);
7
- const workflowsSection = buildMappingSection("workflows", data.workflows);
8
- const policiesSection = buildPolicySection(data);
9
- const themeSection = buildThemeSection(data);
10
- const telemetrySection = buildTelemetrySection(data);
11
- const experimentsSection = buildExperimentsSection(data);
12
- const flagsSection = buildFeatureFlagsSection(data);
13
- const routesSection = buildRoutesSection(data);
14
- const notesSection = data.notes ? ` notes: '${escapeString(data.notes)}',\n` : "";
15
- return `import type { AppBlueprintSpec } from '@lssm/lib.contracts/app-config';
1
+ function e(e){let u=f(e.name.split(`.`).pop()??`App`)+`AppConfig`,d=t(e),m=n(e),h=r(`dataViews`,e.dataViews),g=r(`workflows`,e.workflows),_=i(e),v=a(e),y=o(e),b=s(e),x=c(e),S=l(e),C=e.notes?` notes: '${p(e.notes)}',\n`:``;return`import type { AppBlueprintSpec } from '@lssm/lib.contracts/app-config';
16
2
 
17
- export const ${exportName}: AppBlueprintSpec = {
3
+ export const ${u}: AppBlueprintSpec = {
18
4
  meta: {
19
- name: '${escapeString(data.name)}',
20
- version: ${data.version},
21
- title: '${escapeString(data.title)}',
22
- description: '${escapeString(data.description)}',
23
- domain: '${escapeString(data.domain)}',
24
- owners: [${data.owners.map((owner) => `'${escapeString(owner)}'`).join(", ")}],
25
- tags: [${data.tags.map((tag) => `'${escapeString(tag)}'`).join(", ")}],
26
- stability: '${data.stability}',
27
- appId: '${escapeString(data.appId)}',
5
+ name: '${p(e.name)}',
6
+ version: ${e.version},
7
+ title: '${p(e.title)}',
8
+ description: '${p(e.description)}',
9
+ domain: '${p(e.domain)}',
10
+ owners: [${e.owners.map(e=>`'${p(e)}'`).join(`, `)}],
11
+ tags: [${e.tags.map(e=>`'${p(e)}'`).join(`, `)}],
12
+ stability: '${e.stability}',
13
+ appId: '${p(e.appId)}',
28
14
  },
29
- ${capabilitiesSection}${featuresSection}${dataViewsSection}${workflowsSection}${policiesSection}${themeSection}${telemetrySection}${experimentsSection}${flagsSection}${routesSection}${notesSection}};\n`;
30
- }
31
- function buildCapabilitiesSection(data) {
32
- if (data.capabilitiesEnabled.length === 0 && data.capabilitiesDisabled.length === 0) return "";
33
- return ` capabilities: {\n${data.capabilitiesEnabled.length > 0 ? ` enabled: [${data.capabilitiesEnabled.map((key) => formatCapabilityRef(key)).join(", ")}],\n` : ""}${data.capabilitiesDisabled.length > 0 ? ` disabled: [${data.capabilitiesDisabled.map((key) => formatCapabilityRef(key)).join(", ")}],\n` : ""} },\n`;
34
- }
35
- function buildFeaturesSection(data) {
36
- if (data.featureIncludes.length === 0 && data.featureExcludes.length === 0) return "";
37
- return ` features: {\n${data.featureIncludes.length > 0 ? ` include: [${data.featureIncludes.map((key) => `{ key: '${escapeString(key)}' }`).join(", ")}],\n` : ""}${data.featureExcludes.length > 0 ? ` exclude: [${data.featureExcludes.map((key) => `{ key: '${escapeString(key)}' }`).join(", ")}],\n` : ""} },\n`;
38
- }
39
- function buildMappingSection(prop, mappings) {
40
- if (mappings.length === 0) return "";
41
- return ` ${prop}: {\n${mappings.map((mapping) => ` ${mapping.slot}: {
42
- name: '${escapeString(mapping.name)}',
43
- ${typeof mapping.version === "number" ? `version: ${mapping.version},` : ""}
44
- }`).join(",\n")}\n },\n`;
45
- }
46
- function buildPolicySection(data) {
47
- if (data.policyRefs.length === 0) return "";
48
- return ` policies: [\n${data.policyRefs.map((policy) => ` {
49
- name: '${escapeString(policy.name)}'${typeof policy.version === "number" ? `,\n version: ${policy.version}` : ""}
50
- }`).join(",\n")}\n ],\n`;
51
- }
52
- function buildThemeSection(data) {
53
- if (!data.theme) return "";
54
- return ` theme: {\n${` primary: { name: '${escapeString(data.theme.name)}', version: ${data.theme.version} },\n`}${data.themeFallbacks.length > 0 ? ` fallbacks: [${data.themeFallbacks.map((theme) => `{ name: '${escapeString(theme.name)}', version: ${theme.version} }`).join(", ")}],\n` : ""} },\n`;
55
- }
56
- function buildTelemetrySection(data) {
57
- if (!data.telemetry) return "";
58
- return ` telemetry: {
15
+ ${d}${m}${h}${g}${_}${v}${y}${b}${x}${S}${C}};\n`}function t(e){return e.capabilitiesEnabled.length===0&&e.capabilitiesDisabled.length===0?``:` capabilities: {\n${e.capabilitiesEnabled.length>0?` enabled: [${e.capabilitiesEnabled.map(e=>u(e)).join(`, `)}],\n`:``}${e.capabilitiesDisabled.length>0?` disabled: [${e.capabilitiesDisabled.map(e=>u(e)).join(`, `)}],\n`:``} },\n`}function n(e){return e.featureIncludes.length===0&&e.featureExcludes.length===0?``:` features: {\n${e.featureIncludes.length>0?` include: [${e.featureIncludes.map(e=>`{ key: '${p(e)}' }`).join(`, `)}],\n`:``}${e.featureExcludes.length>0?` exclude: [${e.featureExcludes.map(e=>`{ key: '${p(e)}' }`).join(`, `)}],\n`:``} },\n`}function r(e,t){return t.length===0?``:` ${e}: {\n${t.map(e=>` ${e.slot}: {
16
+ name: '${p(e.name)}',
17
+ ${typeof e.version==`number`?`version: ${e.version},`:``}
18
+ }`).join(`,
19
+ `)}\n },\n`}function i(e){return e.policyRefs.length===0?``:` policies: [\n${e.policyRefs.map(e=>` {
20
+ name: '${p(e.name)}'${typeof e.version==`number`?`,\n version: ${e.version}`:``}
21
+ }`).join(`,
22
+ `)}\n ],\n`}function a(e){return e.theme?` theme: {\n${` primary: { name: '${p(e.theme.name)}', version: ${e.theme.version} },\n`}${e.themeFallbacks.length>0?` fallbacks: [${e.themeFallbacks.map(e=>`{ name: '${p(e.name)}', version: ${e.version} }`).join(`, `)}],\n`:``} },\n`:``}function o(e){return e.telemetry?` telemetry: {
59
23
  spec: {
60
- name: '${escapeString(data.telemetry.name)}'${typeof data.telemetry.version === "number" ? `,\n version: ${data.telemetry.version}` : ""}
24
+ name: '${p(e.telemetry.name)}'${typeof e.telemetry.version==`number`?`,\n version: ${e.telemetry.version}`:``}
61
25
  },
62
- },\n`;
63
- }
64
- function buildExperimentsSection(data) {
65
- if (data.activeExperiments.length === 0 && data.pausedExperiments.length === 0) return "";
66
- return ` experiments: {\n${data.activeExperiments.length > 0 ? ` active: [${data.activeExperiments.map((exp) => formatExperimentRef(exp)).join(", ")}],\n` : ""}${data.pausedExperiments.length > 0 ? ` paused: [${data.pausedExperiments.map((exp) => formatExperimentRef(exp)).join(", ")}],\n` : ""} },\n`;
67
- }
68
- function buildFeatureFlagsSection(data) {
69
- if (data.featureFlags.length === 0) return "";
70
- return ` featureFlags: [\n${data.featureFlags.map((flag) => ` {
71
- key: '${escapeString(flag.key)}',
72
- enabled: ${flag.enabled},
73
- ${flag.variant ? `variant: '${escapeString(flag.variant)}',` : ""}
74
- ${flag.description ? `description: '${escapeString(flag.description)}',` : ""}
75
- }`).join(",\n")}\n ],\n`;
76
- }
77
- function buildRoutesSection(data) {
78
- if (data.routes.length === 0) return "";
79
- return ` routes: [\n${data.routes.map((route) => {
80
- return ` { ${[
81
- `path: '${escapeString(route.path)}'`,
82
- route.label ? `label: '${escapeString(route.label)}'` : null,
83
- route.dataView ? `dataView: '${escapeString(route.dataView)}'` : null,
84
- route.workflow ? `workflow: '${escapeString(route.workflow)}'` : null,
85
- route.guardName ? `guard: { name: '${escapeString(route.guardName)}'${typeof route.guardVersion === "number" ? `, version: ${route.guardVersion}` : ""} }` : null,
86
- route.featureFlag ? `featureFlag: '${escapeString(route.featureFlag)}'` : null,
87
- route.experimentName ? `experiment: { name: '${escapeString(route.experimentName)}'${typeof route.experimentVersion === "number" ? `, version: ${route.experimentVersion}` : ""} }` : null
88
- ].filter(Boolean).join(", ")} }`;
89
- }).join(",\n")}\n ],\n`;
90
- }
91
- function formatCapabilityRef(key) {
92
- return `{ key: '${escapeString(key)}' }`;
93
- }
94
- function formatExperimentRef(exp) {
95
- const version = typeof exp.version === "number" ? `, version: ${exp.version}` : "";
96
- return `{ name: '${escapeString(exp.name)}'${version} }`;
97
- }
98
- function toPascalCase(value) {
99
- return value.split(/[-_.]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("");
100
- }
101
- function escapeString(value) {
102
- return value.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
103
- }
104
-
105
- //#endregion
106
- export { generateAppBlueprintSpec };
26
+ },\n`:``}function s(e){return e.activeExperiments.length===0&&e.pausedExperiments.length===0?``:` experiments: {\n${e.activeExperiments.length>0?` active: [${e.activeExperiments.map(e=>d(e)).join(`, `)}],\n`:``}${e.pausedExperiments.length>0?` paused: [${e.pausedExperiments.map(e=>d(e)).join(`, `)}],\n`:``} },\n`}function c(e){return e.featureFlags.length===0?``:` featureFlags: [\n${e.featureFlags.map(e=>` {
27
+ key: '${p(e.key)}',
28
+ enabled: ${e.enabled},
29
+ ${e.variant?`variant: '${p(e.variant)}',`:``}
30
+ ${e.description?`description: '${p(e.description)}',`:``}
31
+ }`).join(`,
32
+ `)}\n ],\n`}function l(e){return e.routes.length===0?``:` routes: [\n${e.routes.map(e=>` { ${[`path: '${p(e.path)}'`,e.label?`label: '${p(e.label)}'`:null,e.dataView?`dataView: '${p(e.dataView)}'`:null,e.workflow?`workflow: '${p(e.workflow)}'`:null,e.guardName?`guard: { name: '${p(e.guardName)}'${typeof e.guardVersion==`number`?`, version: ${e.guardVersion}`:``} }`:null,e.featureFlag?`featureFlag: '${p(e.featureFlag)}'`:null,e.experimentName?`experiment: { name: '${p(e.experimentName)}'${typeof e.experimentVersion==`number`?`, version: ${e.experimentVersion}`:``} }`:null].filter(Boolean).join(`, `)} }`).join(`,
33
+ `)}\n ],\n`}function u(e){return`{ key: '${p(e)}' }`}function d(e){let t=typeof e.version==`number`?`, version: ${e.version}`:``;return`{ name: '${p(e.name)}'${t} }`}function f(e){return e.split(/[-_.]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function p(e){return e.replace(/\\/g,`\\\\`).replace(/'/g,`\\'`)}export{e as generateAppBlueprintSpec};
@@ -1,47 +1,42 @@
1
- //#region src/templates/data-view.template.ts
2
- function generateDataViewSpec(data) {
3
- const viewVarName = toPascalCase(data.name.split(".").pop() ?? "DataView") + "DataView";
4
- const fields = data.fields.map((field) => ` {
5
- key: '${field.key}',
6
- label: '${escape(field.label)}',
7
- dataPath: '${field.dataPath}',
8
- ${field.format ? `format: '${field.format}',` : ""}
9
- ${field.sortable ? "sortable: true," : ""}
10
- ${field.filterable ? "filterable: true," : ""}
11
- }`).join(",\n");
12
- const secondaryFields = data.secondaryFields?.length ? `secondaryFields: [${data.secondaryFields.map((key) => `'${key}'`).join(", ")}],` : "";
13
- const itemOperation = data.itemOperation ? `item: { name: '${data.itemOperation.name}', version: ${data.itemOperation.version} },` : "";
14
- return `import type { DataViewSpec } from '@lssm/lib.contracts/data-views';
1
+ function e(e){let r=t(e.name.split(`.`).pop()??`DataView`)+`DataView`,i=e.fields.map(e=>` {
2
+ key: '${e.key}',
3
+ label: '${n(e.label)}',
4
+ dataPath: '${e.dataPath}',
5
+ ${e.format?`format: '${e.format}',`:``}
6
+ ${e.sortable?`sortable: true,`:``}
7
+ ${e.filterable?`filterable: true,`:``}
8
+ }`).join(`,
9
+ `),a=e.secondaryFields?.length?`secondaryFields: [${e.secondaryFields.map(e=>`'${e}'`).join(`, `)}],`:``,o=e.itemOperation?`item: { name: '${e.itemOperation.name}', version: ${e.itemOperation.version} },`:``;return`import type { DataViewSpec } from '@lssm/lib.contracts/data-views';
15
10
 
16
- export const ${viewVarName}: DataViewSpec = {
11
+ export const ${r}: DataViewSpec = {
17
12
  meta: {
18
- name: '${data.name}',
19
- version: ${data.version},
20
- entity: '${data.entity}',
21
- title: '${escape(data.title)}',
22
- description: '${escape(data.description || "Describe the purpose of this data view.")}',
23
- domain: '${escape(data.domain || data.entity)}',
24
- owners: [${data.owners.map((owner) => `'${owner}'`).join(", ")}],
25
- tags: [${data.tags.map((tag) => `'${tag}'`).join(", ")}],
26
- stability: '${data.stability}',
13
+ name: '${e.name}',
14
+ version: ${e.version},
15
+ entity: '${e.entity}',
16
+ title: '${n(e.title)}',
17
+ description: '${n(e.description||`Describe the purpose of this data view.`)}',
18
+ domain: '${n(e.domain||e.entity)}',
19
+ owners: [${e.owners.map(e=>`'${e}'`).join(`, `)}],
20
+ tags: [${e.tags.map(e=>`'${e}'`).join(`, `)}],
21
+ stability: '${e.stability}',
27
22
  },
28
23
  source: {
29
24
  primary: {
30
- name: '${data.primaryOperation.name}',
31
- version: ${data.primaryOperation.version},
25
+ name: '${e.primaryOperation.name}',
26
+ version: ${e.primaryOperation.version},
32
27
  },
33
- ${itemOperation}
28
+ ${o}
34
29
  refreshEvents: [
35
30
  // { name: 'entity.updated', version: 1 },
36
31
  ],
37
32
  },
38
33
  view: {
39
- kind: '${data.kind}',
34
+ kind: '${e.kind}',
40
35
  fields: [
41
- ${fields}
36
+ ${i}
42
37
  ],
43
- ${data.primaryField ? `primaryField: '${data.primaryField}',` : ""}
44
- ${secondaryFields}
38
+ ${e.primaryField?`primaryField: '${e.primaryField}',`:``}
39
+ ${a}
45
40
  filters: [
46
41
  // Example filter:
47
42
  // { key: 'search', label: 'Search', field: 'fullName', type: 'search' },
@@ -56,14 +51,4 @@ ${fields}
56
51
  // error: { name: 'app.data.error', version: 1 },
57
52
  },
58
53
  };
59
- `;
60
- }
61
- function toPascalCase(value) {
62
- return value.split(/[-_.]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("");
63
- }
64
- function escape(value) {
65
- return value.replace(/'/g, "\\'");
66
- }
67
-
68
- //#endregion
69
- export { generateDataViewSpec };
54
+ `}function t(e){return e.split(/[-_.]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function n(e){return e.replace(/'/g,`\\'`)}export{e as generateDataViewSpec};
@@ -1,39 +1,24 @@
1
- //#region src/templates/event.template.ts
2
- /**
3
- * Generate event spec TypeScript code
4
- */
5
- function generateEventSpec(data) {
6
- const { name, version, description, stability, owners, tags, piiFields } = data;
7
- const eventVarName = toPascalCase(name.replace(/\./g, "_")) + "V" + version;
8
- const payloadSchemaName = eventVarName + "Payload";
9
- return `import { defineEvent } from '@lssm/lib.contracts';
1
+ function e(e){let{name:n,version:r,description:i,stability:a,owners:o,tags:s,piiFields:c}=e,l=t(n.replace(/\./g,`_`))+`V`+r,u=l+`Payload`;return`import { defineEvent } from '@lssm/lib.contracts';
10
2
  import { ScalarTypeEnum, SchemaModel } from '@lssm/lib.schema';
11
3
 
12
4
  // TODO: Define event payload schema
13
- export const ${payloadSchemaName} = new SchemaModel({
14
- name: '${payloadSchemaName}',
15
- description: 'Payload for ${name}',
5
+ export const ${u} = new SchemaModel({
6
+ name: '${u}',
7
+ description: 'Payload for ${n}',
16
8
  fields: {
17
9
  // Add your payload fields here
18
10
  // example: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
19
11
  },
20
12
  });
21
13
 
22
- export const ${eventVarName} = defineEvent({
23
- name: '${name}',
24
- version: ${version},
25
- description: '${description}',
26
- stability: '${stability}',
27
- owners: [${owners.map((o) => `'${o}'`).join(", ")}],
28
- tags: [${tags.map((t) => `'${t}'`).join(", ")}],
29
- ${piiFields.length > 0 ? `pii: [${piiFields.map((f) => `'${f}'`).join(", ")}],` : "// pii: [],"}
30
- payload: ${payloadSchemaName},
14
+ export const ${l} = defineEvent({
15
+ name: '${n}',
16
+ version: ${r},
17
+ description: '${i}',
18
+ stability: '${a}',
19
+ owners: [${o.map(e=>`'${e}'`).join(`, `)}],
20
+ tags: [${s.map(e=>`'${e}'`).join(`, `)}],
21
+ ${c.length>0?`pii: [${c.map(e=>`'${e}'`).join(`, `)}],`:`// pii: [],`}
22
+ payload: ${u},
31
23
  });
32
- `;
33
- }
34
- function toPascalCase(str) {
35
- return str.split(/[-_.]/).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
36
- }
37
-
38
- //#endregion
39
- export { generateEventSpec };
24
+ `}function t(e){return e.split(/[-_.]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}export{e as generateEventSpec};
@@ -1,88 +1,62 @@
1
- //#region src/templates/experiment.template.ts
2
- function generateExperimentSpec(data) {
3
- const specVar = toPascalCase(data.name.split(".").pop() ?? "Experiment") + "Experiment";
4
- const variants = data.variants.map((variant) => {
5
- const overrides = variant.overrides?.length ? ` overrides: [
6
- ${variant.overrides.map((override) => ` {
7
- type: '${override.type}',
8
- target: '${escapeString(override.target)}',
9
- ${typeof override.version === "number" ? `version: ${override.version},` : ""}
10
- }`).join(",\n")}
11
- ],` : "";
12
- return ` {
13
- id: '${escapeString(variant.id)}',
14
- name: '${escapeString(variant.name)}',
15
- ${variant.description ? `description: '${escapeString(variant.description)}',` : ""}
16
- ${typeof variant.weight === "number" ? `weight: ${variant.weight},` : ""}
17
- ${overrides}
18
- }`;
19
- }).join(",\n");
20
- const allocation = renderAllocation(data.allocation);
21
- const metrics = data.successMetrics?.length ? ` successMetrics: [
22
- ${data.successMetrics.map((metric) => ` {
23
- name: '${escapeString(metric.name)}',
24
- telemetryEvent: { name: '${escapeString(metric.eventName)}', version: ${metric.eventVersion} },
25
- aggregation: '${metric.aggregation}',
26
- ${typeof metric.target === "number" ? `target: ${metric.target},` : ""}
27
- }`).join(",\n")}
28
- ],` : "";
29
- return `import type { ExperimentSpec } from '@lssm/lib.contracts/experiments';
1
+ function e(e){let i=n(e.name.split(`.`).pop()??`Experiment`)+`Experiment`,a=e.variants.map(e=>{let t=e.overrides?.length?` overrides: [
2
+ ${e.overrides.map(e=>` {
3
+ type: '${e.type}',
4
+ target: '${r(e.target)}',
5
+ ${typeof e.version==`number`?`version: ${e.version},`:``}
6
+ }`).join(`,
7
+ `)}
8
+ ],`:``;return` {
9
+ id: '${r(e.id)}',
10
+ name: '${r(e.name)}',
11
+ ${e.description?`description: '${r(e.description)}',`:``}
12
+ ${typeof e.weight==`number`?`weight: ${e.weight},`:``}
13
+ ${t}
14
+ }`}).join(`,
15
+ `),o=t(e.allocation),s=e.successMetrics?.length?` successMetrics: [
16
+ ${e.successMetrics.map(e=>` {
17
+ name: '${r(e.name)}',
18
+ telemetryEvent: { name: '${r(e.eventName)}', version: ${e.eventVersion} },
19
+ aggregation: '${e.aggregation}',
20
+ ${typeof e.target==`number`?`target: ${e.target},`:``}
21
+ }`).join(`,
22
+ `)}
23
+ ],`:``;return`import type { ExperimentSpec } from '@lssm/lib.contracts/experiments';
30
24
 
31
- export const ${specVar}: ExperimentSpec = {
25
+ export const ${i}: ExperimentSpec = {
32
26
  meta: {
33
- name: '${escapeString(data.name)}',
34
- version: ${data.version},
35
- title: '${escapeString(data.name)} experiment',
36
- description: '${escapeString(data.description || "Describe the experiment goal.")}',
37
- domain: '${escapeString(data.domain)}',
38
- owners: [${data.owners.map((owner) => `'${escapeString(owner)}'`).join(", ")}],
39
- tags: [${data.tags.map((tag) => `'${escapeString(tag)}'`).join(", ")}],
40
- stability: '${data.stability}',
27
+ name: '${r(e.name)}',
28
+ version: ${e.version},
29
+ title: '${r(e.name)} experiment',
30
+ description: '${r(e.description||`Describe the experiment goal.`)}',
31
+ domain: '${r(e.domain)}',
32
+ owners: [${e.owners.map(e=>`'${r(e)}'`).join(`, `)}],
33
+ tags: [${e.tags.map(e=>`'${r(e)}'`).join(`, `)}],
34
+ stability: '${e.stability}',
41
35
  },
42
- controlVariant: '${escapeString(data.controlVariant)}',
36
+ controlVariant: '${r(e.controlVariant)}',
43
37
  variants: [
44
- ${variants}
38
+ ${a}
45
39
  ],
46
- allocation: ${allocation},
47
- ${metrics}
40
+ allocation: ${o},
41
+ ${s}
48
42
  };
49
- `;
50
- }
51
- function renderAllocation(allocation) {
52
- switch (allocation.type) {
53
- case "random": return `{
43
+ `}function t(e){switch(e.type){case`random`:return`{
54
44
  type: 'random',
55
- ${allocation.salt ? `salt: '${escapeString(allocation.salt)}',` : ""}
56
- }`;
57
- case "sticky": return `{
45
+ ${e.salt?`salt: '${r(e.salt)}',`:``}
46
+ }`;case`sticky`:return`{
58
47
  type: 'sticky',
59
- attribute: '${allocation.attribute}',
60
- ${allocation.salt ? `salt: '${escapeString(allocation.salt)}',` : ""}
61
- }`;
62
- case "targeted": return `{
48
+ attribute: '${e.attribute}',
49
+ ${e.salt?`salt: '${r(e.salt)}',`:``}
50
+ }`;case`targeted`:return`{
63
51
  type: 'targeted',
64
52
  rules: [
65
- ${allocation.rules.map((rule) => ` {
66
- variantId: '${escapeString(rule.variantId)}',
67
- ${typeof rule.percentage === "number" ? `percentage: ${rule.percentage},` : ""}
68
- ${rule.policy ? `policy: { name: '${escapeString(rule.policy.name)}'${typeof rule.policy.version === "number" ? `, version: ${rule.policy.version}` : ""} },` : ""}
69
- ${rule.expression ? `expression: '${escapeString(rule.expression)}',` : ""}
70
- }`).join(",\n")}
53
+ ${e.rules.map(e=>` {
54
+ variantId: '${r(e.variantId)}',
55
+ ${typeof e.percentage==`number`?`percentage: ${e.percentage},`:``}
56
+ ${e.policy?`policy: { name: '${r(e.policy.name)}'${typeof e.policy.version==`number`?`, version: ${e.policy.version}`:``} },`:``}
57
+ ${e.expression?`expression: '${r(e.expression)}',`:``}
58
+ }`).join(`,
59
+ `)}
71
60
  ],
72
- fallback: '${allocation.fallback ?? "control"}',
73
- }`;
74
- default: return renderUnsupportedAllocation(allocation);
75
- }
76
- }
77
- function toPascalCase(value) {
78
- return value.split(/[-_.]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("");
79
- }
80
- function escapeString(value) {
81
- return value.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
82
- }
83
- function renderUnsupportedAllocation(allocation) {
84
- throw new Error(`Unsupported allocation type ${allocation}`);
85
- }
86
-
87
- //#endregion
88
- export { generateExperimentSpec };
61
+ fallback: '${e.fallback??`control`}',
62
+ }`;default:return i(e)}}function n(e){return e.split(/[-_.]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function r(e){return e.replace(/\\/g,`\\\\`).replace(/'/g,`\\'`)}function i(e){throw Error(`Unsupported allocation type ${e}`)}export{e as generateExperimentSpec};
@@ -1,21 +1,14 @@
1
- //#region src/templates/handler.template.ts
2
- /**
3
- * Generate handler implementation template
4
- */
5
- function generateHandlerTemplate(specName, kind) {
6
- const handlerName = toCamelCase(specName.split(".").pop() || "unknown") + "Handler";
7
- const specVarName = toPascalCase(specName.split(".").pop() || "Unknown") + "Spec";
8
- return `import type { ContractHandler } from '@lssm/lib.contracts';
9
- import { ${specVarName} } from '../contracts/${toKebabCase(specName)}.contracts';
1
+ function e(e,t){let n=r(e.split(`.`).pop()||`unknown`)+`Handler`,o=i(e.split(`.`).pop()||`Unknown`)+`Spec`;return`import type { ContractHandler } from '@lssm/lib.contracts';
2
+ import { ${o} } from '../contracts/${a(e)}.contracts';
10
3
 
11
4
  /**
12
- * Handler for ${specName}
5
+ * Handler for ${e}
13
6
  */
14
- export const ${handlerName}: ContractHandler<typeof ${specVarName}> = async (
7
+ export const ${n}: ContractHandler<typeof ${o}> = async (
15
8
  input,
16
9
  context
17
10
  ) => {
18
- // TODO: Implement ${kind} logic
11
+ // TODO: Implement ${t} logic
19
12
 
20
13
  try {
21
14
  // 1. Validate prerequisites
@@ -31,43 +24,28 @@ export const ${handlerName}: ContractHandler<typeof ${specVarName}> = async (
31
24
  throw error;
32
25
  }
33
26
  };
34
- `;
35
- }
36
- /**
37
- * Generate component template
38
- */
39
- function generateComponentTemplate(componentName, description) {
40
- const pascalName = toPascalCase(componentName);
41
- return `import React from 'react';
27
+ `}function t(e,t){let n=i(e);return`import React from 'react';
42
28
 
43
- interface ${pascalName}Props {
29
+ interface ${n}Props {
44
30
  // TODO: Define props based on presentation spec
45
31
  }
46
32
 
47
33
  /**
48
- * ${description}
34
+ * ${t}
49
35
  */
50
- export const ${pascalName}: React.FC<${pascalName}Props> = (props) => {
36
+ export const ${n}: React.FC<${n}Props> = (props) => {
51
37
  return (
52
38
  <div>
53
39
  {/* TODO: Implement component UI */}
54
- <p>Component: ${pascalName}</p>
40
+ <p>Component: ${n}</p>
55
41
  </div>
56
42
  );
57
43
  };
58
- `;
59
- }
60
- /**
61
- * Generate test template
62
- */
63
- function generateTestTemplate(targetName, type) {
64
- const importPath = type === "handler" ? "../handlers" : "../components";
65
- const testName = toPascalCase(targetName);
66
- return `import { describe, it, expect } from 'bun:test';
67
- import { ${testName} } from '${importPath}/${toKebabCase(targetName)}';
44
+ `}function n(e,t){let n=t===`handler`?`../handlers`:`../components`,r=i(e);return`import { describe, it, expect } from 'bun:test';
45
+ import { ${r} } from '${n}/${a(e)}';
68
46
 
69
- describe('${testName}', () => {
70
- it('should ${type === "handler" ? "handle valid input" : "render correctly"}', async () => {
47
+ describe('${r}', () => {
48
+ it('should ${t===`handler`?`handle valid input`:`render correctly`}', async () => {
71
49
  // TODO: Implement test
72
50
  expect(true).toBe(true);
73
51
  });
@@ -76,24 +54,10 @@ describe('${testName}', () => {
76
54
  // TODO: Test edge cases
77
55
  });
78
56
 
79
- ${type === "handler" ? `it('should handle errors appropriately', async () => {
57
+ ${t===`handler`?`it('should handle errors appropriately', async () => {
80
58
  // TODO: Test error scenarios
81
- });` : `it('should be accessible', async () => {
59
+ });`:`it('should be accessible', async () => {
82
60
  // TODO: Test accessibility
83
61
  });`}
84
62
  });
85
- `;
86
- }
87
- function toCamelCase(str) {
88
- const pascal = toPascalCase(str);
89
- return pascal.charAt(0).toLowerCase() + pascal.slice(1);
90
- }
91
- function toPascalCase(str) {
92
- return str.split(/[-_.]/).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
93
- }
94
- function toKebabCase(str) {
95
- return str.replace(/\./g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
96
- }
97
-
98
- //#endregion
99
- export { generateComponentTemplate, generateHandlerTemplate, generateTestTemplate };
63
+ `}function r(e){let t=i(e);return t.charAt(0).toLowerCase()+t.slice(1)}function i(e){return e.split(/[-_.]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function a(e){return e.replace(/\./g,`-`).replace(/([a-z])([A-Z])/g,`$1-$2`).toLowerCase()}export{t as generateComponentTemplate,e as generateHandlerTemplate,n as generateTestTemplate};
@@ -1,36 +1 @@
1
- import { __export } from "../_virtual/rolldown_runtime.js";
2
- import { generateOperationSpec } from "./operation.template.js";
3
- import { generateEventSpec } from "./event.template.js";
4
- import { generatePresentationSpec } from "./presentation.template.js";
5
- import { generateWorkflowSpec } from "./workflow.template.js";
6
- import { generateMigrationSpec } from "./migration.template.js";
7
- import { generateTelemetrySpec } from "./telemetry.template.js";
8
- import { generateExperimentSpec } from "./experiment.template.js";
9
- import { generateAppBlueprintSpec } from "./app-config.template.js";
10
- import { generateDataViewSpec } from "./data-view.template.js";
11
- import { generateIntegrationSpec } from "./integration.template.js";
12
- import { generateKnowledgeSpaceSpec } from "./knowledge.template.js";
13
- import { generateComponentTemplate, generateHandlerTemplate, generateTestTemplate } from "./handler.template.js";
14
- import { generateWorkflowRunnerTemplate } from "./workflow-runner.template.js";
15
-
16
- //#region src/templates/index.ts
17
- var templates_exports = /* @__PURE__ */ __export({
18
- generateAppBlueprintSpec: () => generateAppBlueprintSpec,
19
- generateComponentTemplate: () => generateComponentTemplate,
20
- generateDataViewSpec: () => generateDataViewSpec,
21
- generateEventSpec: () => generateEventSpec,
22
- generateExperimentSpec: () => generateExperimentSpec,
23
- generateHandlerTemplate: () => generateHandlerTemplate,
24
- generateIntegrationSpec: () => generateIntegrationSpec,
25
- generateKnowledgeSpaceSpec: () => generateKnowledgeSpaceSpec,
26
- generateMigrationSpec: () => generateMigrationSpec,
27
- generateOperationSpec: () => generateOperationSpec,
28
- generatePresentationSpec: () => generatePresentationSpec,
29
- generateTelemetrySpec: () => generateTelemetrySpec,
30
- generateTestTemplate: () => generateTestTemplate,
31
- generateWorkflowRunnerTemplate: () => generateWorkflowRunnerTemplate,
32
- generateWorkflowSpec: () => generateWorkflowSpec
33
- });
34
-
35
- //#endregion
36
- export { templates_exports };
1
+ import{__export as e}from"../_virtual/rolldown_runtime.js";import{generateOperationSpec as t}from"./operation.template.js";import{generateEventSpec as n}from"./event.template.js";import{generatePresentationSpec as r}from"./presentation.template.js";import{generateWorkflowSpec as i}from"./workflow.template.js";import{generateMigrationSpec as a}from"./migration.template.js";import{generateTelemetrySpec as o}from"./telemetry.template.js";import{generateExperimentSpec as s}from"./experiment.template.js";import{generateAppBlueprintSpec as c}from"./app-config.template.js";import{generateDataViewSpec as l}from"./data-view.template.js";import{generateIntegrationSpec as u}from"./integration.template.js";import{generateKnowledgeSpaceSpec as d}from"./knowledge.template.js";import{generateComponentTemplate as f,generateHandlerTemplate as p,generateTestTemplate as m}from"./handler.template.js";import{generateWorkflowRunnerTemplate as h}from"./workflow-runner.template.js";var g=e({generateAppBlueprintSpec:()=>c,generateComponentTemplate:()=>f,generateDataViewSpec:()=>l,generateEventSpec:()=>n,generateExperimentSpec:()=>s,generateHandlerTemplate:()=>p,generateIntegrationSpec:()=>u,generateKnowledgeSpaceSpec:()=>d,generateMigrationSpec:()=>a,generateOperationSpec:()=>t,generatePresentationSpec:()=>r,generateTelemetrySpec:()=>o,generateTestTemplate:()=>m,generateWorkflowRunnerTemplate:()=>h,generateWorkflowSpec:()=>i});export{g as templates_exports};