@lssm/bundle.contractspec-workspace 0.0.0-canary-20251217063201 → 0.0.0-canary-20251217072406

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 (257) hide show
  1. package/dist/_virtual/rolldown_runtime.js +22 -1
  2. package/dist/adapters/ai.js +82 -1
  3. package/dist/adapters/factory.js +36 -1
  4. package/dist/adapters/fs.js +118 -1
  5. package/dist/adapters/git.js +54 -1
  6. package/dist/adapters/index.js +7 -1
  7. package/dist/adapters/logger.js +80 -1
  8. package/dist/adapters/watcher.js +69 -1
  9. package/dist/adapters/workspace.js +190 -2
  10. package/dist/ai/agents/claude-code-agent.js +146 -9
  11. package/dist/ai/agents/cursor-agent.js +286 -17
  12. package/dist/ai/agents/index.js +5 -1
  13. package/dist/ai/agents/openai-codex-agent.js +140 -8
  14. package/dist/ai/agents/orchestrator.js +142 -1
  15. package/dist/ai/agents/simple-agent.js +80 -4
  16. package/dist/ai/client.js +162 -1
  17. package/dist/ai/index.js +27 -1
  18. package/dist/ai/prompts/code-generation.js +55 -13
  19. package/dist/ai/prompts/index.js +12 -1
  20. package/dist/ai/prompts/spec-creation.js +61 -20
  21. package/dist/ai/providers.js +40 -1
  22. package/dist/formatters/index.js +18 -1
  23. package/dist/formatters/json.js +71 -1
  24. package/dist/formatters/sarif.js +163 -1
  25. package/dist/formatters/text.js +208 -2
  26. package/dist/index.js +81 -1
  27. package/dist/libs/ai-providers/dist/factory.js +154 -1
  28. package/dist/libs/ai-providers/dist/index.js +4 -1
  29. package/dist/libs/ai-providers/dist/legacy.js +72 -1
  30. package/dist/libs/ai-providers/dist/models.js +287 -1
  31. package/dist/libs/ai-providers/dist/validation.js +1 -1
  32. package/dist/libs/contracts/dist/capabilities/openbanking.js +88 -1
  33. package/dist/libs/contracts/dist/client/index.js +5 -1
  34. package/dist/libs/contracts/dist/client/react/feature-render.js +2 -1
  35. package/dist/libs/contracts/dist/client/react/form-render.js +4 -1
  36. package/dist/libs/contracts/dist/client/react/index.js +4 -1
  37. package/dist/libs/contracts/dist/contract-registry/index.js +1 -1
  38. package/dist/libs/contracts/dist/contract-registry/schemas.js +60 -1
  39. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +16 -76
  40. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +16 -350
  41. package/dist/libs/contracts/dist/docs/index.js +29 -1
  42. package/dist/libs/contracts/dist/docs/presentations.js +71 -1
  43. package/dist/libs/contracts/dist/docs/registry.js +44 -1
  44. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +16 -383
  45. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +16 -68
  46. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +16 -140
  47. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +16 -86
  48. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +16 -1
  49. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +24 -2
  50. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +21 -2
  51. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +16 -213
  52. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +73 -5
  53. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +37 -1
  54. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +16 -1
  55. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +20 -262
  56. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +48 -1
  57. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +24 -2
  58. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +23 -2
  59. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +25 -16
  60. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +67 -1
  61. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +22 -2
  62. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +40 -36
  63. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +47 -1
  64. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +23 -2
  65. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +36 -3
  66. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +20 -1
  67. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +36 -3
  68. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +20 -1
  69. package/dist/libs/contracts/dist/events.js +8 -1
  70. package/dist/libs/contracts/dist/experiments/evaluator.js +1 -1
  71. package/dist/libs/contracts/dist/index.js +72 -1
  72. package/dist/libs/contracts/dist/install.js +2 -1
  73. package/dist/libs/contracts/dist/integrations/contracts.js +377 -1
  74. package/dist/libs/contracts/dist/integrations/index.js +18 -1
  75. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +228 -1
  76. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +159 -1
  77. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +3 -1
  78. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +210 -1
  79. package/dist/libs/contracts/dist/integrations/openbanking/models.js +242 -1
  80. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +13 -1
  81. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +52 -1
  82. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +75 -1
  83. package/dist/libs/contracts/dist/integrations/providers/gmail.js +87 -1
  84. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +66 -1
  85. package/dist/libs/contracts/dist/integrations/providers/index.js +11 -1
  86. package/dist/libs/contracts/dist/integrations/providers/mistral.js +68 -1
  87. package/dist/libs/contracts/dist/integrations/providers/postmark.js +68 -1
  88. package/dist/libs/contracts/dist/integrations/providers/powens.js +116 -1
  89. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +73 -1
  90. package/dist/libs/contracts/dist/integrations/providers/registry.js +10 -1
  91. package/dist/libs/contracts/dist/integrations/providers/stripe.js +83 -1
  92. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +61 -1
  93. package/dist/libs/contracts/dist/jsonschema.js +24 -1
  94. package/dist/libs/contracts/dist/knowledge/contracts.js +306 -1
  95. package/dist/libs/contracts/dist/knowledge/index.js +7 -1
  96. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +34 -1
  97. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +34 -1
  98. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +38 -1
  99. package/dist/libs/contracts/dist/knowledge/spaces/index.js +6 -1
  100. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +34 -1
  101. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +37 -1
  102. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +34 -1
  103. package/dist/libs/contracts/dist/llm/exporters.js +352 -4
  104. package/dist/libs/contracts/dist/llm/index.js +2 -1
  105. package/dist/libs/contracts/dist/llm/prompts.js +143 -7
  106. package/dist/libs/contracts/dist/onboarding-base.js +196 -1
  107. package/dist/libs/contracts/dist/openapi.js +75 -1
  108. package/dist/libs/contracts/dist/ownership.js +21 -1
  109. package/dist/libs/contracts/dist/presentations.js +1 -1
  110. package/dist/libs/contracts/dist/presentations.v2.js +11 -1
  111. package/dist/libs/contracts/dist/prompt.js +1 -1
  112. package/dist/libs/contracts/dist/promptRegistry.js +1 -1
  113. package/dist/libs/contracts/dist/regenerator/index.js +2 -1
  114. package/dist/libs/contracts/dist/regenerator/service.js +92 -1
  115. package/dist/libs/contracts/dist/regenerator/utils.js +51 -1
  116. package/dist/libs/contracts/dist/registry.js +208 -1
  117. package/dist/libs/contracts/dist/resources.js +1 -1
  118. package/dist/libs/contracts/dist/schema/dist/EnumType.js +2 -1
  119. package/dist/libs/contracts/dist/schema/dist/FieldType.js +49 -1
  120. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +236 -1
  121. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +34 -1
  122. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +1 -1
  123. package/dist/libs/contracts/dist/schema/dist/entity/index.js +2 -1
  124. package/dist/libs/contracts/dist/schema/dist/entity/types.js +1 -1
  125. package/dist/libs/contracts/dist/schema/dist/index.js +6 -1
  126. package/dist/libs/contracts/dist/server/graphql-pothos.js +6 -1
  127. package/dist/libs/contracts/dist/server/index.js +8 -1
  128. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +4 -1
  129. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +2 -1
  130. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +1 -1
  131. package/dist/libs/contracts/dist/server/mcp/registerResources.js +2 -1
  132. package/dist/libs/contracts/dist/server/mcp/registerTools.js +1 -1
  133. package/dist/libs/contracts/dist/server/provider-mcp.js +1 -1
  134. package/dist/libs/contracts/dist/server/rest-elysia.js +1 -1
  135. package/dist/libs/contracts/dist/server/rest-express.js +1 -1
  136. package/dist/libs/contracts/dist/server/rest-generic.js +1 -1
  137. package/dist/libs/contracts/dist/server/rest-next-app.js +1 -1
  138. package/dist/libs/contracts/dist/server/rest-next-pages.js +1 -1
  139. package/dist/libs/contracts/dist/spec.js +35 -1
  140. package/dist/libs/contracts/dist/telemetry/index.js +1 -1
  141. package/dist/libs/contracts/dist/telemetry/tracker.js +1 -1
  142. package/dist/libs/contracts/dist/tests/index.js +1 -1
  143. package/dist/libs/contracts/dist/tests/runner.js +150 -1
  144. package/dist/libs/contracts/dist/workflow/index.js +1 -1
  145. package/dist/libs/contracts/dist/workflow/runner.js +1 -1
  146. package/dist/libs/contracts-transformers/dist/common/utils.js +47 -1
  147. package/dist/libs/contracts-transformers/dist/openapi/exporter.js +1 -1
  148. package/dist/libs/contracts-transformers/dist/openapi/importer.js +255 -2
  149. package/dist/libs/contracts-transformers/dist/openapi/index.js +4 -1
  150. package/dist/libs/contracts-transformers/dist/openapi/parser.js +231 -1
  151. package/dist/libs/contracts-transformers/dist/openapi/schema-converter.js +201 -4
  152. package/dist/modules/contractspec-workspace/dist/ai/code-generation.js +50 -13
  153. package/dist/modules/contractspec-workspace/dist/ai/spec-creation.js +50 -18
  154. package/dist/modules/contractspec-workspace/dist/analysis/deps/graph.js +84 -2
  155. package/dist/modules/contractspec-workspace/dist/analysis/deps/parse-imports.js +30 -1
  156. package/dist/modules/contractspec-workspace/dist/analysis/diff/semantic.js +96 -1
  157. package/dist/modules/contractspec-workspace/dist/analysis/feature-scan.js +151 -1
  158. package/dist/modules/contractspec-workspace/dist/analysis/spec-scan.js +344 -1
  159. package/dist/modules/contractspec-workspace/dist/analysis/validate/spec-structure.js +122 -1
  160. package/dist/modules/contractspec-workspace/dist/templates/app-config.js +100 -28
  161. package/dist/modules/contractspec-workspace/dist/templates/data-view.js +41 -27
  162. package/dist/modules/contractspec-workspace/dist/templates/event.js +28 -14
  163. package/dist/modules/contractspec-workspace/dist/templates/experiment.js +76 -51
  164. package/dist/modules/contractspec-workspace/dist/templates/handler.js +49 -17
  165. package/dist/modules/contractspec-workspace/dist/templates/integration-utils.js +97 -26
  166. package/dist/modules/contractspec-workspace/dist/templates/integration.js +46 -23
  167. package/dist/modules/contractspec-workspace/dist/templates/knowledge.js +59 -19
  168. package/dist/modules/contractspec-workspace/dist/templates/migration.js +49 -26
  169. package/dist/modules/contractspec-workspace/dist/templates/operation.js +40 -28
  170. package/dist/modules/contractspec-workspace/dist/templates/presentation.js +45 -20
  171. package/dist/modules/contractspec-workspace/dist/templates/telemetry.js +73 -53
  172. package/dist/modules/contractspec-workspace/dist/templates/utils.js +38 -1
  173. package/dist/modules/contractspec-workspace/dist/templates/workflow-runner.js +12 -6
  174. package/dist/modules/contractspec-workspace/dist/templates/workflow.js +50 -24
  175. package/dist/modules/contractspec-workspace/dist/types/generation-types.js +20 -1
  176. package/dist/services/agent-guide/adapters/claude-code.js +144 -3
  177. package/dist/services/agent-guide/adapters/cursor-cli.js +135 -3
  178. package/dist/services/agent-guide/adapters/generic-mcp.js +159 -3
  179. package/dist/services/agent-guide/adapters/index.js +30 -1
  180. package/dist/services/agent-guide/agent-guide-service.js +148 -1
  181. package/dist/services/agent-guide/index.js +5 -1
  182. package/dist/services/build.js +140 -1
  183. package/dist/services/ci-check/ci-check-service.js +393 -1
  184. package/dist/services/ci-check/index.js +2 -1
  185. package/dist/services/ci-check/types.js +28 -1
  186. package/dist/services/clean.js +71 -1
  187. package/dist/services/config.js +76 -1
  188. package/dist/services/deps.js +62 -1
  189. package/dist/services/diff.js +33 -1
  190. package/dist/services/doctor/checks/ai.js +118 -2
  191. package/dist/services/doctor/checks/cli.js +146 -1
  192. package/dist/services/doctor/checks/config.js +170 -1
  193. package/dist/services/doctor/checks/deps.js +180 -1
  194. package/dist/services/doctor/checks/index.js +6 -1
  195. package/dist/services/doctor/checks/mcp.js +144 -1
  196. package/dist/services/doctor/checks/workspace.js +243 -1
  197. package/dist/services/doctor/doctor-service.js +115 -2
  198. package/dist/services/doctor/index.js +2 -1
  199. package/dist/services/doctor/types.js +26 -1
  200. package/dist/services/implementation/discovery.js +143 -2
  201. package/dist/services/implementation/index.js +2 -1
  202. package/dist/services/implementation/resolver.js +223 -1
  203. package/dist/services/index.js +53 -1
  204. package/dist/services/integrity-diagram.js +274 -6
  205. package/dist/services/integrity.js +272 -1
  206. package/dist/services/list.js +35 -1
  207. package/dist/services/openapi/export-service.js +51 -2
  208. package/dist/services/openapi/import-service.js +75 -1
  209. package/dist/services/openapi/index.js +4 -1
  210. package/dist/services/openapi/sync-service.js +121 -1
  211. package/dist/services/openapi/validate-service.js +130 -1
  212. package/dist/services/regenerator.js +23 -1
  213. package/dist/services/registry.js +73 -1
  214. package/dist/services/setup/config-generators.js +113 -26
  215. package/dist/services/setup/file-merger.js +60 -2
  216. package/dist/services/setup/index.js +4 -1
  217. package/dist/services/setup/setup-service.js +95 -1
  218. package/dist/services/setup/targets/agents-md.js +46 -1
  219. package/dist/services/setup/targets/cli-config.js +59 -1
  220. package/dist/services/setup/targets/cursor-rules.js +47 -1
  221. package/dist/services/setup/targets/mcp-claude.js +59 -1
  222. package/dist/services/setup/targets/mcp-cursor.js +58 -1
  223. package/dist/services/setup/targets/vscode-settings.js +62 -1
  224. package/dist/services/setup/types.js +26 -1
  225. package/dist/services/sync.js +62 -1
  226. package/dist/services/test.js +30 -1
  227. package/dist/services/validate-implementation.js +69 -1
  228. package/dist/services/validate.js +47 -1
  229. package/dist/services/verification-cache/adapters/filesystem.js +121 -1
  230. package/dist/services/verification-cache/adapters/in-memory.js +45 -1
  231. package/dist/services/verification-cache/adapters/index.js +3 -1
  232. package/dist/services/verification-cache/adapters/workspace-state.js +90 -1
  233. package/dist/services/verification-cache/cache-service.js +255 -1
  234. package/dist/services/verification-cache/index.js +6 -1
  235. package/dist/services/verification-cache/types.js +15 -1
  236. package/dist/services/verify/ai-verifier.js +336 -9
  237. package/dist/services/verify/behavior-verifier.js +185 -1
  238. package/dist/services/verify/index.js +4 -1
  239. package/dist/services/verify/structure-verifier.js +195 -2
  240. package/dist/services/verify/verify-service.js +203 -3
  241. package/dist/services/watch.js +31 -1
  242. package/dist/services/workspace-info.js +102 -2
  243. package/dist/templates/app-config.template.js +101 -28
  244. package/dist/templates/data-view.template.js +42 -27
  245. package/dist/templates/event.template.js +29 -14
  246. package/dist/templates/experiment.template.js +77 -51
  247. package/dist/templates/handler.template.js +53 -17
  248. package/dist/templates/index.js +36 -1
  249. package/dist/templates/integration.template.js +134 -50
  250. package/dist/templates/knowledge.template.js +62 -21
  251. package/dist/templates/migration.template.js +50 -26
  252. package/dist/templates/operation.template.js +44 -28
  253. package/dist/templates/presentation.template.js +46 -20
  254. package/dist/templates/telemetry.template.js +74 -53
  255. package/dist/templates/workflow-runner.template.js +12 -6
  256. package/dist/templates/workflow.template.js +51 -24
  257. package/package.json +13 -9
@@ -1 +1,196 @@
1
- import{t as e}from"./schema/dist/SchemaModel.js";import{l as t}from"./schema/dist/ScalarTypeEnum.js";import"./schema/dist/index.js";import{n,t as r}from"./spec.js";import{e as i,t as a}from"./ownership.js";const o=new e({name:`SaveOnboardingDraftInput`,description:`Input for saving onboarding draft`,fields:{data:{type:t.JSON(),isOptional:!1}}}),s=new e({name:`SaveOnboardingDraftOutput`,description:`Output for saving onboarding draft`,fields:{id:{type:t.ID(),isOptional:!1},organizationId:{type:t.ID(),isOptional:!1}}});r({meta:{name:`base.onboarding.saveDraft`,version:1,stability:i.Beta,owners:[a.PlatformSigil],tags:[`onboarding`,`draft`],description:`Save or update onboarding draft for active organization`,goal:`Persist onboarding progress incrementally for resumption and safety`,context:`Auto-saves every few seconds during onboarding; enables users to leave and resume`},io:{input:o,output:s},policy:{auth:`user`,escalate:null},transport:{gql:{field:`saveOnboardingDraft`},rest:{method:`POST`}}});const c=new e({name:`GetOnboardingDraftOutput`,description:`Onboarding draft payload`,fields:{id:{type:t.ID(),isOptional:!0},organizationId:{type:t.ID(),isOptional:!0},data:{type:t.JSON(),isOptional:!0},createdAt:{type:t.DateTime(),isOptional:!0},updatedAt:{type:t.DateTime(),isOptional:!0}}});n({meta:{name:`base.onboarding.getDraft`,version:1,stability:i.Beta,owners:[a.PlatformSigil],tags:[`onboarding`,`draft`],description:`Get onboarding draft for active organization`,goal:`Retrieve saved onboarding progress`,context:`Called on mount to restore in-progress onboarding`},io:{input:null,output:c},policy:{auth:`user`,escalate:null},transport:{gql:{field:`getOnboardingDraft`},rest:{method:`GET`}}});const l=new e({name:`DeleteOnboardingDraftOutput`,description:`Result of delete operation`,fields:{ok:{type:t.Boolean(),isOptional:!1}}});r({meta:{name:`base.onboarding.deleteDraft`,version:1,stability:i.Beta,owners:[a.PlatformSigil],tags:[`onboarding`,`draft`],description:`Delete onboarding draft for active organization`,goal:`Clear draft after completion or if user wants to restart`,context:`Called after successful onboarding or explicit user reset`},io:{input:null,output:l},policy:{auth:`user`,escalate:null},transport:{gql:{field:`deleteOnboardingDraft`},rest:{method:`POST`}}});const u=new e({name:`CompleteOnboardingBaseInput`,description:`Input for completing onboarding`,fields:{data:{type:t.JSON(),isOptional:!1}}}),d=new e({name:`CompleteOnboardingBaseOutput`,description:`Result of onboarding completion`,fields:{success:{type:t.Boolean(),isOptional:!1},userId:{type:t.ID(),isOptional:!0},organizationId:{type:t.ID(),isOptional:!0}}});r({meta:{name:`base.onboarding.complete`,version:1,stability:i.Beta,owners:[a.PlatformSigil],tags:[`onboarding`],description:`Complete onboarding and finalize user/organization setup`,goal:`Transition from draft to active profile`,context:`Validates all required fields, creates/updates entities, marks onboarding complete`},io:{input:u,output:d},policy:{auth:`user`,escalate:null},transport:{gql:{field:`completeOnboarding`},rest:{method:`POST`}}});export{l as d,c as l,d as m,o,u as p,s};
1
+ import { SchemaModel } from "./schema/dist/SchemaModel.js";
2
+ import { ScalarTypeEnum } from "./schema/dist/ScalarTypeEnum.js";
3
+ import "./schema/dist/index.js";
4
+ import { defineCommand, defineQuery } from "./spec.js";
5
+ import { OwnersEnum, StabilityEnum } from "./ownership.js";
6
+
7
+ //#region ../../libs/contracts/dist/onboarding-base.js
8
+ /**
9
+ * Shared base contracts for onboarding flows across verticals.
10
+ * These operations are reusable for any app that needs multi-step onboarding with draft persistence.
11
+ */
12
+ /** Save/update onboarding draft (auto-save during flow) */
13
+ const SaveOnboardingDraftInput = new SchemaModel({
14
+ name: "SaveOnboardingDraftInput",
15
+ description: "Input for saving onboarding draft",
16
+ fields: { data: {
17
+ type: ScalarTypeEnum.JSON(),
18
+ isOptional: false
19
+ } }
20
+ });
21
+ const SaveOnboardingDraftOutput = new SchemaModel({
22
+ name: "SaveOnboardingDraftOutput",
23
+ description: "Output for saving onboarding draft",
24
+ fields: {
25
+ id: {
26
+ type: ScalarTypeEnum.ID(),
27
+ isOptional: false
28
+ },
29
+ organizationId: {
30
+ type: ScalarTypeEnum.ID(),
31
+ isOptional: false
32
+ }
33
+ }
34
+ });
35
+ const SaveOnboardingDraftBaseSpec = defineCommand({
36
+ meta: {
37
+ name: "base.onboarding.saveDraft",
38
+ version: 1,
39
+ stability: StabilityEnum.Beta,
40
+ owners: [OwnersEnum.PlatformSigil],
41
+ tags: ["onboarding", "draft"],
42
+ description: "Save or update onboarding draft for active organization",
43
+ goal: "Persist onboarding progress incrementally for resumption and safety",
44
+ context: "Auto-saves every few seconds during onboarding; enables users to leave and resume"
45
+ },
46
+ io: {
47
+ input: SaveOnboardingDraftInput,
48
+ output: SaveOnboardingDraftOutput
49
+ },
50
+ policy: {
51
+ auth: "user",
52
+ escalate: null
53
+ },
54
+ transport: {
55
+ gql: { field: "saveOnboardingDraft" },
56
+ rest: { method: "POST" }
57
+ }
58
+ });
59
+ /** Get current onboarding draft (on mount/restore) */
60
+ const GetOnboardingDraftOutput = new SchemaModel({
61
+ name: "GetOnboardingDraftOutput",
62
+ description: "Onboarding draft payload",
63
+ fields: {
64
+ id: {
65
+ type: ScalarTypeEnum.ID(),
66
+ isOptional: true
67
+ },
68
+ organizationId: {
69
+ type: ScalarTypeEnum.ID(),
70
+ isOptional: true
71
+ },
72
+ data: {
73
+ type: ScalarTypeEnum.JSON(),
74
+ isOptional: true
75
+ },
76
+ createdAt: {
77
+ type: ScalarTypeEnum.DateTime(),
78
+ isOptional: true
79
+ },
80
+ updatedAt: {
81
+ type: ScalarTypeEnum.DateTime(),
82
+ isOptional: true
83
+ }
84
+ }
85
+ });
86
+ const GetOnboardingDraftBaseSpec = defineQuery({
87
+ meta: {
88
+ name: "base.onboarding.getDraft",
89
+ version: 1,
90
+ stability: StabilityEnum.Beta,
91
+ owners: [OwnersEnum.PlatformSigil],
92
+ tags: ["onboarding", "draft"],
93
+ description: "Get onboarding draft for active organization",
94
+ goal: "Retrieve saved onboarding progress",
95
+ context: "Called on mount to restore in-progress onboarding"
96
+ },
97
+ io: {
98
+ input: null,
99
+ output: GetOnboardingDraftOutput
100
+ },
101
+ policy: {
102
+ auth: "user",
103
+ escalate: null
104
+ },
105
+ transport: {
106
+ gql: { field: "getOnboardingDraft" },
107
+ rest: { method: "GET" }
108
+ }
109
+ });
110
+ /** Delete onboarding draft (cleanup after completion or cancel) */
111
+ const DeleteOnboardingDraftOutput = new SchemaModel({
112
+ name: "DeleteOnboardingDraftOutput",
113
+ description: "Result of delete operation",
114
+ fields: { ok: {
115
+ type: ScalarTypeEnum.Boolean(),
116
+ isOptional: false
117
+ } }
118
+ });
119
+ const DeleteOnboardingDraftBaseSpec = defineCommand({
120
+ meta: {
121
+ name: "base.onboarding.deleteDraft",
122
+ version: 1,
123
+ stability: StabilityEnum.Beta,
124
+ owners: [OwnersEnum.PlatformSigil],
125
+ tags: ["onboarding", "draft"],
126
+ description: "Delete onboarding draft for active organization",
127
+ goal: "Clear draft after completion or if user wants to restart",
128
+ context: "Called after successful onboarding or explicit user reset"
129
+ },
130
+ io: {
131
+ input: null,
132
+ output: DeleteOnboardingDraftOutput
133
+ },
134
+ policy: {
135
+ auth: "user",
136
+ escalate: null
137
+ },
138
+ transport: {
139
+ gql: { field: "deleteOnboardingDraft" },
140
+ rest: { method: "POST" }
141
+ }
142
+ });
143
+ /** Complete onboarding (final submit, creates entities) */
144
+ const CompleteOnboardingBaseInput = new SchemaModel({
145
+ name: "CompleteOnboardingBaseInput",
146
+ description: "Input for completing onboarding",
147
+ fields: { data: {
148
+ type: ScalarTypeEnum.JSON(),
149
+ isOptional: false
150
+ } }
151
+ });
152
+ const CompleteOnboardingBaseOutput = new SchemaModel({
153
+ name: "CompleteOnboardingBaseOutput",
154
+ description: "Result of onboarding completion",
155
+ fields: {
156
+ success: {
157
+ type: ScalarTypeEnum.Boolean(),
158
+ isOptional: false
159
+ },
160
+ userId: {
161
+ type: ScalarTypeEnum.ID(),
162
+ isOptional: true
163
+ },
164
+ organizationId: {
165
+ type: ScalarTypeEnum.ID(),
166
+ isOptional: true
167
+ }
168
+ }
169
+ });
170
+ const CompleteOnboardingBaseSpec = defineCommand({
171
+ meta: {
172
+ name: "base.onboarding.complete",
173
+ version: 1,
174
+ stability: StabilityEnum.Beta,
175
+ owners: [OwnersEnum.PlatformSigil],
176
+ tags: ["onboarding"],
177
+ description: "Complete onboarding and finalize user/organization setup",
178
+ goal: "Transition from draft to active profile",
179
+ context: "Validates all required fields, creates/updates entities, marks onboarding complete"
180
+ },
181
+ io: {
182
+ input: CompleteOnboardingBaseInput,
183
+ output: CompleteOnboardingBaseOutput
184
+ },
185
+ policy: {
186
+ auth: "user",
187
+ escalate: null
188
+ },
189
+ transport: {
190
+ gql: { field: "completeOnboarding" },
191
+ rest: { method: "POST" }
192
+ }
193
+ });
194
+
195
+ //#endregion
196
+ export { CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, DeleteOnboardingDraftOutput, GetOnboardingDraftOutput, SaveOnboardingDraftInput, SaveOnboardingDraftOutput };
@@ -1 +1,75 @@
1
- import{n as e,t}from"./jsonschema.js";function n(e,t){return`${e.replace(/\./g,`_`)}_v${t}`}function r(e,t,r){return`${e}_${n(t,r)}`}function i(e,t){return(t??(e===`query`?`GET`:`POST`)).toLowerCase()}function a(t){let n=t.transport?.rest?.path??e(t.meta.name,t.meta.version);return n.startsWith(`/`)?n:`/${n}`}function o(e,o={}){let s=e.listSpecs().filter(e=>e.meta.kind===`command`||e.meta.kind===`query`).slice().sort((e,t)=>{let n=e.meta.name.localeCompare(t.meta.name);return n===0?e.meta.version-t.meta.version:n}),c={openapi:`3.1.0`,info:{title:o.title??`ContractSpec API`,version:o.version??`0.0.0`,...o.description?{description:o.description}:{}},...o.servers?{servers:o.servers}:{},paths:{},components:{schemas:{}}};for(let e of s){let o=t(e),s=i(e.meta.kind,e.transport?.rest?.method),l=a(e),u=n(e.meta.name,e.meta.version),d=c.paths[l]??={},f={operationId:u,summary:e.meta.description??e.meta.name,description:e.meta.description,tags:e.meta.tags??[],"x-contractspec":{name:e.meta.name,version:e.meta.version,kind:e.meta.kind},responses:{}};if(o.input){let t=r(`Input`,e.meta.name,e.meta.version);c.components.schemas[t]=o.input,f.requestBody={required:!0,content:{"application/json":{schema:{$ref:`#/components/schemas/${t}`}}}}}let p={};if(o.output){let t=r(`Output`,e.meta.name,e.meta.version);c.components.schemas[t]=o.output,p[200]={description:`OK`,content:{"application/json":{schema:{$ref:`#/components/schemas/${t}`}}}}}else p[200]={description:`OK`};f.responses=p,d[s]=f}return c}export{o};
1
+ import { defaultRestPath, jsonSchemaForSpec } from "./jsonschema.js";
2
+
3
+ //#region ../../libs/contracts/dist/openapi.js
4
+ function toOperationId(name, version) {
5
+ return `${name.replace(/\./g, "_")}_v${version}`;
6
+ }
7
+ function toSchemaName(prefix, name, version) {
8
+ return `${prefix}_${toOperationId(name, version)}`;
9
+ }
10
+ function toHttpMethod(kind, override) {
11
+ return (override ?? (kind === "query" ? "GET" : "POST")).toLowerCase();
12
+ }
13
+ function toRestPath(spec) {
14
+ const path = spec.transport?.rest?.path ?? defaultRestPath(spec.meta.name, spec.meta.version);
15
+ return path.startsWith("/") ? path : `/${path}`;
16
+ }
17
+ function openApiForRegistry(registry, options = {}) {
18
+ const specs = registry.listSpecs().filter((s) => s.meta.kind === "command" || s.meta.kind === "query").slice().sort((a, b) => {
19
+ const byName = a.meta.name.localeCompare(b.meta.name);
20
+ return byName !== 0 ? byName : a.meta.version - b.meta.version;
21
+ });
22
+ const doc = {
23
+ openapi: "3.1.0",
24
+ info: {
25
+ title: options.title ?? "ContractSpec API",
26
+ version: options.version ?? "0.0.0",
27
+ ...options.description ? { description: options.description } : {}
28
+ },
29
+ ...options.servers ? { servers: options.servers } : {},
30
+ paths: {},
31
+ components: { schemas: {} }
32
+ };
33
+ for (const spec of specs) {
34
+ const schema = jsonSchemaForSpec(spec);
35
+ const method = toHttpMethod(spec.meta.kind, spec.transport?.rest?.method);
36
+ const path = toRestPath(spec);
37
+ const operationId = toOperationId(spec.meta.name, spec.meta.version);
38
+ const pathItem = doc.paths[path] ??= {};
39
+ const op = {
40
+ operationId,
41
+ summary: spec.meta.description ?? spec.meta.name,
42
+ description: spec.meta.description,
43
+ tags: spec.meta.tags ?? [],
44
+ "x-contractspec": {
45
+ name: spec.meta.name,
46
+ version: spec.meta.version,
47
+ kind: spec.meta.kind
48
+ },
49
+ responses: {}
50
+ };
51
+ if (schema.input) {
52
+ const inputName = toSchemaName("Input", spec.meta.name, spec.meta.version);
53
+ doc.components.schemas[inputName] = schema.input;
54
+ op["requestBody"] = {
55
+ required: true,
56
+ content: { "application/json": { schema: { $ref: `#/components/schemas/${inputName}` } } }
57
+ };
58
+ }
59
+ const responses = {};
60
+ if (schema.output) {
61
+ const outputName = toSchemaName("Output", spec.meta.name, spec.meta.version);
62
+ doc.components.schemas[outputName] = schema.output;
63
+ responses["200"] = {
64
+ description: "OK",
65
+ content: { "application/json": { schema: { $ref: `#/components/schemas/${outputName}` } } }
66
+ };
67
+ } else responses["200"] = { description: "OK" };
68
+ op["responses"] = responses;
69
+ pathItem[method] = op;
70
+ }
71
+ return doc;
72
+ }
73
+
74
+ //#endregion
75
+ export { openApiForRegistry };
@@ -1 +1,21 @@
1
- const e={Idea:`idea`,InCreation:`in_creation`,Experimental:`experimental`,Beta:`beta`,Stable:`stable`,Deprecated:`deprecated`},t={ProductColiving:`product.coliving`,ProductStrit:`product.strit`,ProductArtisanos:`product.artisanos`,PlatformSigil:`platform.sigil`,PlatformMarketplace:`platform.marketplace`,PlatformContent:`platform.content`,PlatformFeatureFlags:`platform.featureflags`},n={Spots:`spots`,Collectivity:`collectivity`,Marketplace:`marketplace`,Sellers:`sellers`,Auth:`auth`,Login:`login`,Signup:`signup`,Guide:`guide`,Docs:`docs`,I18n:`i18n`,AtomicPages:`atomic:pages`,Incident:`incident`,Hygiene:`hygiene`,WeeklyPulse:`weekly_pulse`,WebAuth:`webauth`};export{e,n as r,t};
1
+ //#region ../../libs/contracts/dist/ownership.js
2
+ const StabilityEnum = {
3
+ Idea: "idea",
4
+ InCreation: "in_creation",
5
+ Experimental: "experimental",
6
+ Beta: "beta",
7
+ Stable: "stable",
8
+ Deprecated: "deprecated"
9
+ };
10
+ const OwnersEnum = {
11
+ ProductColiving: "product.coliving",
12
+ ProductStrit: "product.strit",
13
+ ProductArtisanos: "product.artisanos",
14
+ PlatformSigil: "platform.sigil",
15
+ PlatformMarketplace: "platform.marketplace",
16
+ PlatformContent: "platform.content",
17
+ PlatformFeatureFlags: "platform.featureflags"
18
+ };
19
+
20
+ //#endregion
21
+ export { OwnersEnum, StabilityEnum };
@@ -1 +1 @@
1
- import e from"zod";
1
+ import z from "zod";
@@ -1 +1,11 @@
1
- import"react";import e from"turndown";new e;
1
+ import "react";
2
+ import TurndownService from "turndown";
3
+
4
+ //#region ../../libs/contracts/dist/presentations.v2.js
5
+ /**
6
+ * Pluggable transform engine that renders descriptors to various targets
7
+ * and runs validators (e.g., basic metadata checks, PII redaction policies).
8
+ */
9
+ const turndown = new TurndownService();
10
+
11
+ //#endregion
@@ -1 +1 @@
1
- import"zod";
1
+ import "zod";
@@ -1 +1 @@
1
- import"zod";
1
+ import "zod";
@@ -1 +1,2 @@
1
- import{e,n as t,t as n}from"./utils.js";import{i as r}from"./service.js";
1
+ import { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope } from "./utils.js";
2
+ import { RegeneratorService } from "./service.js";
@@ -1 +1,92 @@
1
- import{e,n as t,t as n}from"./utils.js";import{setTimeout as r}from"node:timers/promises";var i=class{contexts;lastPoll=new Map;timer;running=!1;pollInterval;batchDuration;clock;constructor(e){if(this.options=e,this.contexts=new Map(e.contexts.map(e=>[e.id,e])),this.pollInterval=e.pollIntervalMs??6e4,this.batchDuration=e.batchDurationMs??3e5,this.clock=e.clock??(()=>new Date),this.options.rules.length===0)throw Error(`RegeneratorService requires at least one rule`)}start(){this.running||(this.running=!0,this.tick(),this.timer=setInterval(()=>{this.tick()},this.pollInterval))}stop(){this.running&&(this.running=!1,this.timer&&=(clearInterval(this.timer),void 0))}async runOnce(){await this.tick()}async tick(){let e=this.clock(),t=new Date(e.getTime()-this.batchDuration);for(let n of this.contexts.values()){let r=this.lastPoll.get(n.id)??t;await this.evaluateContext(n,r,e),this.lastPoll.set(n.id,e)}}async evaluateContext(e,t,n){let r=await this.collectSignals(e,t,n);if(r.length!==0)for(let t of this.options.rules){let n=[];try{n=await t.evaluate(e,r)}catch(e){console.error(`[regenerator] rule ${t.id} failed`,e instanceof Error?e:Error(String(e)));continue}await this.flushProposals(e,n)}}async collectSignals(r,i,a){let o=[],{adapters:s}=this.options;if(s.telemetry){let t=await s.telemetry.pollTelemetry(r,i,a);o.push(...t.map(t=>e(r.id,t,this.clock)))}if(s.errors){let e=await s.errors.pollErrors(r,i,a);o.push(...e.map(e=>n(r.id,e,this.clock)))}if(s.behavior){let e=await s.behavior.pollBehavior(r,i,a);o.push(...e.map(e=>t(r.id,e,this.clock)))}return o}async flushProposals(e,t){for(let n of t)n.signalIds.length!==0&&(await this.options.sink.submit(e,n),t.length>10&&await r(0))}};export{i};
1
+ import { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope } from "./utils.js";
2
+ import { setTimeout } from "node:timers/promises";
3
+
4
+ //#region ../../libs/contracts/dist/regenerator/service.js
5
+ const DEFAULT_POLL_INTERVAL = 6e4;
6
+ const DEFAULT_BATCH_DURATION = 5 * 6e4;
7
+ var RegeneratorService = class {
8
+ contexts;
9
+ lastPoll = /* @__PURE__ */ new Map();
10
+ timer;
11
+ running = false;
12
+ pollInterval;
13
+ batchDuration;
14
+ clock;
15
+ constructor(options) {
16
+ this.options = options;
17
+ this.contexts = new Map(options.contexts.map((ctx) => [ctx.id, ctx]));
18
+ this.pollInterval = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL;
19
+ this.batchDuration = options.batchDurationMs ?? DEFAULT_BATCH_DURATION;
20
+ this.clock = options.clock ?? (() => /* @__PURE__ */ new Date());
21
+ if (this.options.rules.length === 0) throw new Error("RegeneratorService requires at least one rule");
22
+ }
23
+ start() {
24
+ if (this.running) return;
25
+ this.running = true;
26
+ this.tick();
27
+ this.timer = setInterval(() => {
28
+ this.tick();
29
+ }, this.pollInterval);
30
+ }
31
+ stop() {
32
+ if (!this.running) return;
33
+ this.running = false;
34
+ if (this.timer) {
35
+ clearInterval(this.timer);
36
+ this.timer = void 0;
37
+ }
38
+ }
39
+ async runOnce() {
40
+ await this.tick();
41
+ }
42
+ async tick() {
43
+ const now = this.clock();
44
+ const sinceDefault = new Date(now.getTime() - this.batchDuration);
45
+ for (const context of this.contexts.values()) {
46
+ const last = this.lastPoll.get(context.id) ?? sinceDefault;
47
+ await this.evaluateContext(context, last, now);
48
+ this.lastPoll.set(context.id, now);
49
+ }
50
+ }
51
+ async evaluateContext(context, since, until) {
52
+ const signals = await this.collectSignals(context, since, until);
53
+ if (signals.length === 0) return;
54
+ for (const rule of this.options.rules) {
55
+ let proposals = [];
56
+ try {
57
+ proposals = await rule.evaluate(context, signals);
58
+ } catch (error) {
59
+ console.error(`[regenerator] rule ${rule.id} failed`, error instanceof Error ? error : new Error(String(error)));
60
+ continue;
61
+ }
62
+ await this.flushProposals(context, proposals);
63
+ }
64
+ }
65
+ async collectSignals(context, since, until) {
66
+ const envelopes = [];
67
+ const { adapters } = this.options;
68
+ if (adapters.telemetry) {
69
+ const telemetrySignals = await adapters.telemetry.pollTelemetry(context, since, until);
70
+ envelopes.push(...telemetrySignals.map((signal) => telemetryToEnvelope(context.id, signal, this.clock)));
71
+ }
72
+ if (adapters.errors) {
73
+ const errorSignals = await adapters.errors.pollErrors(context, since, until);
74
+ envelopes.push(...errorSignals.map((signal) => errorToEnvelope(context.id, signal, this.clock)));
75
+ }
76
+ if (adapters.behavior) {
77
+ const behaviorSignals = await adapters.behavior.pollBehavior(context, since, until);
78
+ envelopes.push(...behaviorSignals.map((signal) => behaviorToEnvelope(context.id, signal, this.clock)));
79
+ }
80
+ return envelopes;
81
+ }
82
+ async flushProposals(context, proposals) {
83
+ for (const proposal of proposals) {
84
+ if (proposal.signalIds.length === 0) continue;
85
+ await this.options.sink.submit(context, proposal);
86
+ if (proposals.length > 10) await setTimeout(0);
87
+ }
88
+ }
89
+ };
90
+
91
+ //#endregion
92
+ export { RegeneratorService };
@@ -1 +1,51 @@
1
- function e(e,t,n){return{type:`telemetry`,contextId:e,signal:r(t,n)}}function t(e,t,n){return{type:`error`,contextId:e,signal:i(t,n)}}function n(e,t,n){return{type:`behavior`,contextId:e,signal:a(t,n)}}function r(e,t){return{...e,windowStart:o(e.windowStart,t),windowEnd:o(e.windowEnd,t)}}function i(e,t){return{...e,occurredAt:o(e.occurredAt,t)}}function a(e,t){return{...e,windowStart:o(e.windowStart,t),windowEnd:o(e.windowEnd,t)}}function o(e,t){if(e instanceof Date)return e;let n=new Date(e);return Number.isNaN(n.getTime())?t():n}export{e,n,t};
1
+ //#region ../../libs/contracts/dist/regenerator/utils.js
2
+ function telemetryToEnvelope(contextId, signal, clock) {
3
+ return {
4
+ type: "telemetry",
5
+ contextId,
6
+ signal: normalizeTelemetryDates(signal, clock)
7
+ };
8
+ }
9
+ function errorToEnvelope(contextId, signal, clock) {
10
+ return {
11
+ type: "error",
12
+ contextId,
13
+ signal: normalizeErrorDates(signal, clock)
14
+ };
15
+ }
16
+ function behaviorToEnvelope(contextId, signal, clock) {
17
+ return {
18
+ type: "behavior",
19
+ contextId,
20
+ signal: normalizeBehaviorDates(signal, clock)
21
+ };
22
+ }
23
+ function normalizeTelemetryDates(signal, clock) {
24
+ return {
25
+ ...signal,
26
+ windowStart: toDate(signal.windowStart, clock),
27
+ windowEnd: toDate(signal.windowEnd, clock)
28
+ };
29
+ }
30
+ function normalizeErrorDates(signal, clock) {
31
+ return {
32
+ ...signal,
33
+ occurredAt: toDate(signal.occurredAt, clock)
34
+ };
35
+ }
36
+ function normalizeBehaviorDates(signal, clock) {
37
+ return {
38
+ ...signal,
39
+ windowStart: toDate(signal.windowStart, clock),
40
+ windowEnd: toDate(signal.windowEnd, clock)
41
+ };
42
+ }
43
+ function toDate(value, clock) {
44
+ if (value instanceof Date) return value;
45
+ const parsed = new Date(value);
46
+ if (Number.isNaN(parsed.getTime())) return clock();
47
+ return parsed;
48
+ }
49
+
50
+ //#endregion
51
+ export { behaviorToEnvelope, errorToEnvelope, telemetryToEnvelope };