@lssm/example.learning-journey-studio-onboarding 0.0.0-canary-20251217080011 → 1.41.0

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 (144) hide show
  1. package/.turbo/turbo-build.log +20 -22
  2. package/dist/contracts/index.js +1 -178
  3. package/dist/docs/index.js +1 -1
  4. package/dist/docs/studio-onboarding.docblock.js +1 -40
  5. package/dist/example.js +1 -34
  6. package/dist/handlers/demo.handlers.js +1 -23
  7. package/dist/index.js +1 -9
  8. package/dist/learning-journey-studio-onboarding.feature.js +1 -66
  9. package/dist/presentations/index.js +1 -49
  10. package/dist/track.js +1 -90
  11. package/package.json +15 -17
  12. package/tsconfig.tsbuildinfo +1 -1
  13. package/.turbo/turbo-build$colon$bundle.log +0 -220
  14. package/CHANGELOG.md +0 -14
  15. package/dist/contracts/index.d.ts +0 -270
  16. package/dist/docs/index.d.ts +0 -1
  17. package/dist/docs/studio-onboarding.docblock.d.ts +0 -1
  18. package/dist/example.d.ts +0 -32
  19. package/dist/handlers/demo.handlers.d.ts +0 -22
  20. package/dist/index.d.ts +0 -7
  21. package/dist/learning-journey-studio-onboarding.feature.d.ts +0 -11
  22. package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
  23. package/dist/libs/contracts/dist/client/index.js +0 -5
  24. package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
  25. package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
  26. package/dist/libs/contracts/dist/client/react/index.js +0 -4
  27. package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
  28. package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
  29. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  30. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
  31. package/dist/libs/contracts/dist/docs/index.js +0 -29
  32. package/dist/libs/contracts/dist/docs/presentations.js +0 -71
  33. package/dist/libs/contracts/dist/docs/registry.js +0 -44
  34. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  35. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  36. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  37. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  38. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  39. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
  40. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
  41. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
  42. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
  43. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
  44. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
  45. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
  46. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
  47. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
  48. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
  49. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
  50. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
  51. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
  52. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
  53. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
  54. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
  55. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
  56. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
  57. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
  58. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
  59. package/dist/libs/contracts/dist/events.js +0 -1
  60. package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
  61. package/dist/libs/contracts/dist/index.js +0 -71
  62. package/dist/libs/contracts/dist/install.js +0 -2
  63. package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
  64. package/dist/libs/contracts/dist/integrations/index.js +0 -18
  65. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
  66. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
  67. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
  68. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
  69. package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
  70. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
  71. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
  72. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
  73. package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
  74. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
  75. package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
  76. package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
  77. package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
  78. package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
  79. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
  80. package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
  81. package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
  82. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
  83. package/dist/libs/contracts/dist/jsonschema.js +0 -1
  84. package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
  85. package/dist/libs/contracts/dist/knowledge/index.js +0 -7
  86. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
  87. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
  88. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
  89. package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
  90. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
  91. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
  92. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
  93. package/dist/libs/contracts/dist/llm/exporters.js +0 -19
  94. package/dist/libs/contracts/dist/llm/index.js +0 -2
  95. package/dist/libs/contracts/dist/llm/prompts.js +0 -1
  96. package/dist/libs/contracts/dist/onboarding-base.js +0 -196
  97. package/dist/libs/contracts/dist/openapi.js +0 -1
  98. package/dist/libs/contracts/dist/ownership.js +0 -21
  99. package/dist/libs/contracts/dist/presentations.js +0 -1
  100. package/dist/libs/contracts/dist/presentations.v2.js +0 -11
  101. package/dist/libs/contracts/dist/prompt.js +0 -1
  102. package/dist/libs/contracts/dist/promptRegistry.js +0 -1
  103. package/dist/libs/contracts/dist/regenerator/index.js +0 -1
  104. package/dist/libs/contracts/dist/regenerator/service.js +0 -6
  105. package/dist/libs/contracts/dist/registry.js +0 -2
  106. package/dist/libs/contracts/dist/resources.js +0 -1
  107. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  108. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  109. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  110. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  111. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  112. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  113. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  114. package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
  115. package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
  116. package/dist/libs/contracts/dist/server/index.js +0 -8
  117. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
  118. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
  119. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
  120. package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
  121. package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
  122. package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
  123. package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
  124. package/dist/libs/contracts/dist/server/rest-express.js +0 -1
  125. package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
  126. package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
  127. package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
  128. package/dist/libs/contracts/dist/spec.js +0 -34
  129. package/dist/libs/contracts/dist/telemetry/index.js +0 -1
  130. package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
  131. package/dist/libs/contracts/dist/tests/index.js +0 -1
  132. package/dist/libs/contracts/dist/tests/runner.js +0 -2
  133. package/dist/libs/contracts/dist/workflow/index.js +0 -1
  134. package/dist/libs/contracts/dist/workflow/runner.js +0 -1
  135. package/dist/libs/schema/dist/EnumType.js +0 -2
  136. package/dist/libs/schema/dist/FieldType.js +0 -49
  137. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  138. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  139. package/dist/libs/schema/dist/entity/defineEntity.js +0 -1
  140. package/dist/libs/schema/dist/entity/index.js +0 -2
  141. package/dist/libs/schema/dist/entity/types.js +0 -1
  142. package/dist/libs/schema/dist/index.js +0 -6
  143. package/dist/presentations/index.d.ts +0 -8
  144. package/dist/track.d.ts +0 -7
@@ -1,22 +1,20 @@
1
-
2
- $ bun build:bundle && bun build:types
3
- $ tsdown
4
- ℹ tsdown v0.17.4 powered by rolldown v1.0.0-beta.53
5
- ℹ config file: /Users/tboutron/Documents/clients/lssm/monorepo-lssm/packages/contractspec/packages/examples/learning-journey-studio-onboarding/tsdown.config.js (unrun)
6
- ℹ entry: src/example.ts, src/index.ts, src/learning-journey-studio-onboarding.feature.ts, src/track.ts, src/contracts/index.ts, src/docs/index.ts, src/docs/studio-onboarding.docblock.ts, src/handlers/demo.handlers.ts, src/presentations/index.ts
7
- ℹ target: esnext
8
- ℹ tsconfig: tsconfig.json
9
- ℹ Build start
10
- ℹ Cleaning 13 files
11
- ℹ dist/contracts/index.js 2.88 kB │ gzip: 0.91 kB
12
- ℹ dist/track.js 1.91 kB │ gzip: 0.80 kB
13
- ℹ dist/docs/studio-onboarding.docblock.js 1.47 kB │ gzip: 0.76 kB
14
- ℹ dist/index.js 1.14 kB │ gzip: 0.36 kB
15
- ℹ dist/learning-journey-studio-onboarding.feature.js 1.04 kB │ gzip: 0.40 kB
16
- ℹ dist/presentations/index.js 0.80 kB │ gzip: 0.37 kB
17
- ℹ dist/example.js 0.60 kB │ gzip: 0.37 kB
18
- ℹ dist/handlers/demo.handlers.js 0.44 kB │ gzip: 0.28 kB
19
- ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
20
- ℹ 9 files, total: 10.32 kB
21
- ✔ Build complete in 125ms
22
- $ tsc --noEmit
1
+ $ bun build:bundle && bun build:types
2
+ $ tsdown
3
+ ℹ tsdown v0.17.4 powered by rolldown v1.0.0-beta.53
4
+ ℹ config file: /home/runner/work/contractspec/contractspec/packages/examples/learning-journey-studio-onboarding/tsdown.config.js
5
+ ℹ entry: src/example.ts, src/index.ts, src/learning-journey-studio-onboarding.feature.ts, src/track.ts, src/docs/index.ts, src/docs/studio-onboarding.docblock.ts, src/handlers/demo.handlers.ts, src/contracts/index.ts, src/presentations/index.ts
6
+ ℹ target: esnext
7
+ ℹ tsconfig: tsconfig.json
8
+ ℹ Build start
9
+ ℹ dist/contracts/index.js 2.88 kB │ gzip: 0.91 kB
10
+ ℹ dist/track.js 1.91 kB │ gzip: 0.80 kB
11
+ ℹ dist/docs/studio-onboarding.docblock.js 1.47 kB │ gzip: 0.76 kB
12
+ ℹ dist/index.js 1.14 kB │ gzip: 0.36 kB
13
+ ℹ dist/learning-journey-studio-onboarding.feature.js 1.04 kB │ gzip: 0.40 kB
14
+ ℹ dist/presentations/index.js 0.80 kB │ gzip: 0.37 kB
15
+ ℹ dist/example.js 0.60 kB │ gzip: 0.37 kB
16
+ ℹ dist/handlers/demo.handlers.js 0.44 kB │ gzip: 0.28 kB
17
+ ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
18
+ ℹ 9 files, total: 10.32 kB
19
+ ✔ Build complete in 38ms
20
+ $ tsc --noEmit
@@ -1,178 +1 @@
1
- import { studioGettingStartedTrack } from "../track.js";
2
- import { ScalarTypeEnum } from "../libs/schema/dist/ScalarTypeEnum.js";
3
- import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
4
- import "../libs/schema/dist/index.js";
5
- import { defineCommand, defineQuery } from "../libs/contracts/dist/spec.js";
6
- import "../libs/contracts/dist/index.js";
7
-
8
- //#region src/contracts/index.ts
9
- const OWNERS = ["examples.learning-journey.studio-onboarding"];
10
- const StepModel = defineSchemaModel({
11
- name: "StudioOnboardingStep",
12
- description: "Step metadata for Studio onboarding journey",
13
- fields: {
14
- id: {
15
- type: ScalarTypeEnum.String_unsecure(),
16
- isOptional: false
17
- },
18
- title: {
19
- type: ScalarTypeEnum.String_unsecure(),
20
- isOptional: false
21
- },
22
- description: {
23
- type: ScalarTypeEnum.String_unsecure(),
24
- isOptional: true
25
- },
26
- completionEvent: {
27
- type: ScalarTypeEnum.String_unsecure(),
28
- isOptional: false
29
- },
30
- sourceModule: {
31
- type: ScalarTypeEnum.String_unsecure(),
32
- isOptional: true
33
- },
34
- xpReward: {
35
- type: ScalarTypeEnum.Int_unsecure(),
36
- isOptional: true
37
- },
38
- order: {
39
- type: ScalarTypeEnum.Int_unsecure(),
40
- isOptional: true
41
- }
42
- }
43
- });
44
- const StudioOnboardingTrackModel = defineSchemaModel({
45
- name: "StudioOnboardingTrack",
46
- description: "Studio onboarding track definition",
47
- fields: {
48
- id: {
49
- type: ScalarTypeEnum.String_unsecure(),
50
- isOptional: false
51
- },
52
- name: {
53
- type: ScalarTypeEnum.String_unsecure(),
54
- isOptional: false
55
- },
56
- description: {
57
- type: ScalarTypeEnum.String_unsecure(),
58
- isOptional: true
59
- },
60
- totalXp: {
61
- type: ScalarTypeEnum.Int_unsecure(),
62
- isOptional: true
63
- },
64
- completionXpBonus: {
65
- type: ScalarTypeEnum.Int_unsecure(),
66
- isOptional: true
67
- },
68
- completionBadgeKey: {
69
- type: ScalarTypeEnum.String_unsecure(),
70
- isOptional: true
71
- },
72
- streakHoursWindow: {
73
- type: ScalarTypeEnum.Int_unsecure(),
74
- isOptional: true
75
- },
76
- streakBonusXp: {
77
- type: ScalarTypeEnum.Int_unsecure(),
78
- isOptional: true
79
- },
80
- steps: {
81
- type: StepModel,
82
- isArray: true,
83
- isOptional: false
84
- }
85
- }
86
- });
87
- const TrackResponseModel = defineSchemaModel({
88
- name: "StudioOnboardingTrackResponse",
89
- description: "Response wrapper for studio onboarding track",
90
- fields: { track: {
91
- type: StudioOnboardingTrackModel,
92
- isOptional: false
93
- } }
94
- });
95
- const RecordDemoEventInput = defineSchemaModel({
96
- name: "StudioOnboardingRecordEventInput",
97
- description: "Emit a demo event to advance Studio onboarding steps",
98
- fields: {
99
- learnerId: {
100
- type: ScalarTypeEnum.String_unsecure(),
101
- isOptional: false
102
- },
103
- eventName: {
104
- type: ScalarTypeEnum.String_unsecure(),
105
- isOptional: false
106
- },
107
- payload: {
108
- type: ScalarTypeEnum.JSON(),
109
- isOptional: true
110
- },
111
- occurredAt: {
112
- type: ScalarTypeEnum.DateTime(),
113
- isOptional: true
114
- }
115
- }
116
- });
117
- const SuccessModel = defineSchemaModel({
118
- name: "StudioOnboardingSuccess",
119
- description: "Generic success response",
120
- fields: { success: {
121
- type: ScalarTypeEnum.Boolean(),
122
- isOptional: false
123
- } }
124
- });
125
- const GetStudioOnboardingTrack = defineQuery({
126
- meta: {
127
- name: "learningJourney.studioOnboarding.getTrack",
128
- version: 1,
129
- stability: "experimental",
130
- owners: [...OWNERS],
131
- tags: [
132
- "learning",
133
- "onboarding",
134
- "studio"
135
- ],
136
- description: "Fetch the Studio onboarding track definition.",
137
- goal: "Expose track metadata to UIs and templates.",
138
- context: "Called by Studio/Playground to render journey steps."
139
- },
140
- io: {
141
- input: defineSchemaModel({
142
- name: "StudioOnboardingTrackInput",
143
- description: "Track input",
144
- fields: {}
145
- }),
146
- output: TrackResponseModel
147
- },
148
- policy: { auth: "user" }
149
- });
150
- const RecordStudioOnboardingEvent = defineCommand({
151
- meta: {
152
- name: "learningJourney.studioOnboarding.recordEvent",
153
- version: 1,
154
- stability: "experimental",
155
- owners: [...OWNERS],
156
- tags: [
157
- "learning",
158
- "onboarding",
159
- "studio"
160
- ],
161
- description: "Record an event to advance Studio onboarding progress.",
162
- goal: "Advance steps via domain events in demo/sandbox contexts.",
163
- context: "Called by handlers or demo scripts to emit step completion events."
164
- },
165
- io: {
166
- input: RecordDemoEventInput,
167
- output: SuccessModel
168
- },
169
- policy: { auth: "user" }
170
- });
171
- const studioOnboardingContracts = {
172
- GetStudioOnboardingTrack,
173
- RecordStudioOnboardingEvent,
174
- track: studioGettingStartedTrack
175
- };
176
-
177
- //#endregion
178
- export { GetStudioOnboardingTrack, RecordStudioOnboardingEvent, StudioOnboardingTrackModel, studioOnboardingContracts };
1
+ import{studioGettingStartedTrack as e}from"../track.js";import{ScalarTypeEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";import{defineCommand as r,defineQuery as i}from"@lssm/lib.contracts";const a=[`examples.learning-journey.studio-onboarding`],o=n({name:`StudioOnboardingStep`,description:`Step metadata for Studio onboarding journey`,fields:{id:{type:t.String_unsecure(),isOptional:!1},title:{type:t.String_unsecure(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},completionEvent:{type:t.String_unsecure(),isOptional:!1},sourceModule:{type:t.String_unsecure(),isOptional:!0},xpReward:{type:t.Int_unsecure(),isOptional:!0},order:{type:t.Int_unsecure(),isOptional:!0}}}),s=n({name:`StudioOnboardingTrack`,description:`Studio onboarding track definition`,fields:{id:{type:t.String_unsecure(),isOptional:!1},name:{type:t.String_unsecure(),isOptional:!1},description:{type:t.String_unsecure(),isOptional:!0},totalXp:{type:t.Int_unsecure(),isOptional:!0},completionXpBonus:{type:t.Int_unsecure(),isOptional:!0},completionBadgeKey:{type:t.String_unsecure(),isOptional:!0},streakHoursWindow:{type:t.Int_unsecure(),isOptional:!0},streakBonusXp:{type:t.Int_unsecure(),isOptional:!0},steps:{type:o,isArray:!0,isOptional:!1}}}),c=n({name:`StudioOnboardingTrackResponse`,description:`Response wrapper for studio onboarding track`,fields:{track:{type:s,isOptional:!1}}}),l=n({name:`StudioOnboardingRecordEventInput`,description:`Emit a demo event to advance Studio onboarding steps`,fields:{learnerId:{type:t.String_unsecure(),isOptional:!1},eventName:{type:t.String_unsecure(),isOptional:!1},payload:{type:t.JSON(),isOptional:!0},occurredAt:{type:t.DateTime(),isOptional:!0}}}),u=n({name:`StudioOnboardingSuccess`,description:`Generic success response`,fields:{success:{type:t.Boolean(),isOptional:!1}}}),d=i({meta:{name:`learningJourney.studioOnboarding.getTrack`,version:1,stability:`experimental`,owners:[...a],tags:[`learning`,`onboarding`,`studio`],description:`Fetch the Studio onboarding track definition.`,goal:`Expose track metadata to UIs and templates.`,context:`Called by Studio/Playground to render journey steps.`},io:{input:n({name:`StudioOnboardingTrackInput`,description:`Track input`,fields:{}}),output:c},policy:{auth:`user`}}),f=r({meta:{name:`learningJourney.studioOnboarding.recordEvent`,version:1,stability:`experimental`,owners:[...a],tags:[`learning`,`onboarding`,`studio`],description:`Record an event to advance Studio onboarding progress.`,goal:`Advance steps via domain events in demo/sandbox contexts.`,context:`Called by handlers or demo scripts to emit step completion events.`},io:{input:l,output:u},policy:{auth:`user`}}),p={GetStudioOnboardingTrack:d,RecordStudioOnboardingEvent:f,track:e};export{d as GetStudioOnboardingTrack,f as RecordStudioOnboardingEvent,s as StudioOnboardingTrackModel,p as studioOnboardingContracts};
@@ -1 +1 @@
1
- import "./studio-onboarding.docblock.js";
1
+ import"./studio-onboarding.docblock.js";
@@ -1,40 +1 @@
1
- import { registerDocBlocks } from "../libs/contracts/dist/docs/registry.js";
2
- import "../libs/contracts/dist/docs/index.js";
3
-
4
- //#region src/docs/studio-onboarding.docblock.ts
5
- registerDocBlocks([{
6
- id: "docs.learning-journey.studio-onboarding",
7
- title: "Learning Journey — Studio Getting Started",
8
- summary: "Track that guides a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.",
9
- kind: "reference",
10
- visibility: "public",
11
- route: "/docs/learning-journey/studio-onboarding",
12
- tags: [
13
- "learning",
14
- "onboarding",
15
- "studio"
16
- ],
17
- body: `## Track
18
- - **Key**: \`studio_getting_started\`
19
- - **Persona**: new Studio developer, first 30 minutes
20
- - **Goal**: instantiate template → edit spec → regenerate → play → run evolution
21
-
22
- ## Steps & Events
23
- 1) \`choose_template\` → event \`studio.template.instantiated\`
24
- 2) \`edit_spec\` → event \`spec.changed\` (scope: sandbox)
25
- 3) \`regenerate_app\` → event \`regeneration.completed\`
26
- 4) \`play_in_playground\` → event \`playground.session.started\`
27
- 5) \`try_evolution_mode\` → event \`studio.evolution.applied\`
28
-
29
- XP: 20/20/20/20/30 with bonus 25 XP if completed within 48h (streak rule). Badge: \`studio_first_30m\`.
30
-
31
- ## Wiring
32
- - Tracks export from \`@lssm/example.learning-journey-studio-onboarding/track\`.
33
- - Use onboarding API:
34
- - \`learning.onboarding.listTracks\` to surface catalog
35
- - \`learning.onboarding.getProgress\` to render progress
36
- - \`learning.onboarding.recordEvent\` to advance from bus events
37
- - Events should be emitted by Studio surfaces (template creation, spec save, regeneration, playground session start, evolution apply).`
38
- }]);
39
-
40
- //#endregion
1
+ import{registerDocBlocks as e}from"@lssm/lib.contracts/docs";e([{id:`docs.learning-journey.studio-onboarding`,title:`Learning Journey — Studio Getting Started`,summary:`Track that guides a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.`,kind:`reference`,visibility:`public`,route:`/docs/learning-journey/studio-onboarding`,tags:[`learning`,`onboarding`,`studio`],body:"## Track\n- **Key**: `studio_getting_started`\n- **Persona**: new Studio developer, first 30 minutes\n- **Goal**: instantiate template → edit spec → regenerate → play → run evolution\n\n## Steps & Events\n1) `choose_template` → event `studio.template.instantiated`\n2) `edit_spec` → event `spec.changed` (scope: sandbox)\n3) `regenerate_app` → event `regeneration.completed`\n4) `play_in_playground` → event `playground.session.started`\n5) `try_evolution_mode` → event `studio.evolution.applied`\n\nXP: 20/20/20/20/30 with bonus 25 XP if completed within 48h (streak rule). Badge: `studio_first_30m`.\n\n## Wiring\n- Tracks export from `@lssm/example.learning-journey-studio-onboarding/track`.\n- Use onboarding API:\n - `learning.onboarding.listTracks` to surface catalog\n - `learning.onboarding.getProgress` to render progress\n - `learning.onboarding.recordEvent` to advance from bus events\n- Events should be emitted by Studio surfaces (template creation, spec save, regeneration, playground session start, evolution apply)."}]);
package/dist/example.js CHANGED
@@ -1,34 +1 @@
1
- //#region src/example.ts
2
- const example = {
3
- id: "learning-journey-studio-onboarding",
4
- title: "Learning Journey — Studio Getting Started",
5
- summary: "Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.",
6
- tags: [
7
- "learning",
8
- "onboarding",
9
- "studio"
10
- ],
11
- kind: "template",
12
- visibility: "public",
13
- docs: { rootDocId: "docs.learning-journey.studio-onboarding" },
14
- entrypoints: {
15
- packageName: "@lssm/example.learning-journey-studio-onboarding",
16
- docs: "./docs"
17
- },
18
- surfaces: {
19
- templates: true,
20
- sandbox: {
21
- enabled: true,
22
- modes: ["playground", "markdown"]
23
- },
24
- studio: {
25
- enabled: true,
26
- installable: true
27
- },
28
- mcp: { enabled: true }
29
- }
30
- };
31
- var example_default = example;
32
-
33
- //#endregion
34
- export { example_default as default };
1
+ var e={id:`learning-journey-studio-onboarding`,title:`Learning Journey — Studio Getting Started`,summary:`Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.`,tags:[`learning`,`onboarding`,`studio`],kind:`template`,visibility:`public`,docs:{rootDocId:`docs.learning-journey.studio-onboarding`},entrypoints:{packageName:`@lssm/example.learning-journey-studio-onboarding`,docs:`./docs`},surfaces:{templates:!0,sandbox:{enabled:!0,modes:[`playground`,`markdown`]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}};export{e as default};
@@ -1,23 +1 @@
1
- import { studioGettingStartedTrack } from "../track.js";
2
-
3
- //#region src/handlers/demo.handlers.ts
4
- const studioOnboardingEvents = [
5
- "studio.template.instantiated",
6
- "spec.changed",
7
- "regeneration.completed",
8
- "playground.session.started",
9
- "studio.evolution.applied"
10
- ];
11
- const emitStudioOnboardingEvent = (eventName, { learnerId, occurredAt = /* @__PURE__ */ new Date() }, record) => {
12
- const event = {
13
- learnerId,
14
- name: eventName,
15
- occurredAt,
16
- trackId: studioGettingStartedTrack.id
17
- };
18
- return record ? record(event) : event;
19
- };
20
- const emitAllStudioOnboardingEvents = (params, record) => studioOnboardingEvents.map((name) => emitStudioOnboardingEvent(name, params, record));
21
-
22
- //#endregion
23
- export { emitAllStudioOnboardingEvents, emitStudioOnboardingEvent, studioOnboardingEvents };
1
+ import{studioGettingStartedTrack as e}from"../track.js";const t=[`studio.template.instantiated`,`spec.changed`,`regeneration.completed`,`playground.session.started`,`studio.evolution.applied`],n=(t,{learnerId:n,occurredAt:r=new Date},i)=>{let a={learnerId:n,name:t,occurredAt:r,trackId:e.id};return i?i(a):a},r=(e,r)=>t.map(t=>n(t,e,r));export{r as emitAllStudioOnboardingEvents,n as emitStudioOnboardingEvent,t as studioOnboardingEvents};
package/dist/index.js CHANGED
@@ -1,9 +1 @@
1
- import example_default from "./example.js";
2
- import { studioGettingStartedTrack, studioLearningTracks } from "./track.js";
3
- import "./docs/index.js";
4
- import { GetStudioOnboardingTrack, RecordStudioOnboardingEvent, StudioOnboardingTrackModel, studioOnboardingContracts } from "./contracts/index.js";
5
- import { emitAllStudioOnboardingEvents, emitStudioOnboardingEvent, studioOnboardingEvents } from "./handlers/demo.handlers.js";
6
- import { StudioOnboardingTrackPresentation, StudioOnboardingWidgetPresentation, studioOnboardingPresentations } from "./presentations/index.js";
7
- import { LearningJourneyStudioOnboardingFeature } from "./learning-journey-studio-onboarding.feature.js";
8
-
9
- export { GetStudioOnboardingTrack, LearningJourneyStudioOnboardingFeature, RecordStudioOnboardingEvent, StudioOnboardingTrackModel, StudioOnboardingTrackPresentation, StudioOnboardingWidgetPresentation, emitAllStudioOnboardingEvents, emitStudioOnboardingEvent, example_default as example, studioGettingStartedTrack, studioLearningTracks, studioOnboardingContracts, studioOnboardingEvents, studioOnboardingPresentations };
1
+ import e from"./example.js";import{studioGettingStartedTrack as t,studioLearningTracks as n}from"./track.js";import"./docs/index.js";import{GetStudioOnboardingTrack as r,RecordStudioOnboardingEvent as i,StudioOnboardingTrackModel as a,studioOnboardingContracts as o}from"./contracts/index.js";import{emitAllStudioOnboardingEvents as s,emitStudioOnboardingEvent as c,studioOnboardingEvents as l}from"./handlers/demo.handlers.js";import{StudioOnboardingTrackPresentation as u,StudioOnboardingWidgetPresentation as d,studioOnboardingPresentations as f}from"./presentations/index.js";import{LearningJourneyStudioOnboardingFeature as p}from"./learning-journey-studio-onboarding.feature.js";export{r as GetStudioOnboardingTrack,p as LearningJourneyStudioOnboardingFeature,i as RecordStudioOnboardingEvent,a as StudioOnboardingTrackModel,u as StudioOnboardingTrackPresentation,d as StudioOnboardingWidgetPresentation,s as emitAllStudioOnboardingEvents,c as emitStudioOnboardingEvent,e as example,t as studioGettingStartedTrack,n as studioLearningTracks,o as studioOnboardingContracts,l as studioOnboardingEvents,f as studioOnboardingPresentations};
@@ -1,66 +1 @@
1
- //#region src/learning-journey-studio-onboarding.feature.ts
2
- /**
3
- * Learning Journey Studio Onboarding feature module that bundles
4
- * Studio-specific onboarding track operations and presentations.
5
- */
6
- const LearningJourneyStudioOnboardingFeature = {
7
- meta: {
8
- key: "learning-journey-studio-onboarding",
9
- title: "Learning Journey: Studio Onboarding",
10
- description: "Studio onboarding journey for getting started with ContractSpec Studio",
11
- domain: "learning-journey",
12
- owners: ["@examples.learning-journey.studio-onboarding"],
13
- tags: [
14
- "learning",
15
- "onboarding",
16
- "studio",
17
- "journey"
18
- ],
19
- stability: "experimental"
20
- },
21
- operations: [{
22
- name: "learningJourney.studioOnboarding.recordEvent",
23
- version: 1
24
- }, {
25
- name: "learningJourney.studioOnboarding.getTrack",
26
- version: 1
27
- }],
28
- events: [],
29
- presentations: [{
30
- name: "learning.journey.studio.track",
31
- version: 1
32
- }, {
33
- name: "learning.journey.studio.widget",
34
- version: 1
35
- }],
36
- opToPresentation: [{
37
- op: {
38
- name: "learningJourney.studioOnboarding.getTrack",
39
- version: 1
40
- },
41
- pres: {
42
- name: "learning.journey.studio.track",
43
- version: 1
44
- }
45
- }],
46
- presentationsTargets: [{
47
- name: "learning.journey.studio.track",
48
- version: 1,
49
- targets: [
50
- "react",
51
- "markdown",
52
- "application/json"
53
- ]
54
- }, {
55
- name: "learning.journey.studio.widget",
56
- version: 1,
57
- targets: ["react"]
58
- }],
59
- capabilities: { requires: [{
60
- key: "identity",
61
- version: 1
62
- }] }
63
- };
64
-
65
- //#endregion
66
- export { LearningJourneyStudioOnboardingFeature };
1
+ const e={meta:{key:`learning-journey-studio-onboarding`,title:`Learning Journey: Studio Onboarding`,description:`Studio onboarding journey for getting started with ContractSpec Studio`,domain:`learning-journey`,owners:[`@examples.learning-journey.studio-onboarding`],tags:[`learning`,`onboarding`,`studio`,`journey`],stability:`experimental`},operations:[{name:`learningJourney.studioOnboarding.recordEvent`,version:1},{name:`learningJourney.studioOnboarding.getTrack`,version:1}],events:[],presentations:[{name:`learning.journey.studio.track`,version:1},{name:`learning.journey.studio.widget`,version:1}],opToPresentation:[{op:{name:`learningJourney.studioOnboarding.getTrack`,version:1},pres:{name:`learning.journey.studio.track`,version:1}}],presentationsTargets:[{name:`learning.journey.studio.track`,version:1,targets:[`react`,`markdown`,`application/json`]},{name:`learning.journey.studio.widget`,version:1,targets:[`react`]}],capabilities:{requires:[{key:`identity`,version:1}]}};export{e as LearningJourneyStudioOnboardingFeature};
@@ -1,49 +1 @@
1
- import { StudioOnboardingTrackModel } from "../contracts/index.js";
2
-
3
- //#region src/presentations/index.ts
4
- const baseMeta = {
5
- domain: "learning-journey",
6
- owners: ["examples.learning-journey.studio-onboarding"],
7
- tags: [
8
- "learning",
9
- "onboarding",
10
- "studio"
11
- ]
12
- };
13
- const StudioOnboardingTrackPresentation = {
14
- meta: {
15
- name: "learning.journey.studio.track",
16
- version: 1,
17
- description: "Studio onboarding track detail",
18
- ...baseMeta
19
- },
20
- source: {
21
- type: "component",
22
- framework: "react",
23
- componentKey: "LearningTrackDetail",
24
- props: StudioOnboardingTrackModel
25
- },
26
- targets: [
27
- "react",
28
- "markdown",
29
- "application/json"
30
- ]
31
- };
32
- const StudioOnboardingWidgetPresentation = {
33
- meta: {
34
- name: "learning.journey.studio.widget",
35
- version: 1,
36
- description: "Compact widget for Studio onboarding progress",
37
- ...baseMeta
38
- },
39
- source: {
40
- type: "component",
41
- framework: "react",
42
- componentKey: "LearningTrackProgressWidget"
43
- },
44
- targets: ["react"]
45
- };
46
- const studioOnboardingPresentations = [StudioOnboardingTrackPresentation, StudioOnboardingWidgetPresentation];
47
-
48
- //#endregion
49
- export { StudioOnboardingTrackPresentation, StudioOnboardingWidgetPresentation, studioOnboardingPresentations };
1
+ import{StudioOnboardingTrackModel as e}from"../contracts/index.js";const t={domain:`learning-journey`,owners:[`examples.learning-journey.studio-onboarding`],tags:[`learning`,`onboarding`,`studio`]},n={meta:{name:`learning.journey.studio.track`,version:1,description:`Studio onboarding track detail`,...t},source:{type:`component`,framework:`react`,componentKey:`LearningTrackDetail`,props:e},targets:[`react`,`markdown`,`application/json`]},r={meta:{name:`learning.journey.studio.widget`,version:1,description:`Compact widget for Studio onboarding progress`,...t},source:{type:`component`,framework:`react`,componentKey:`LearningTrackProgressWidget`},targets:[`react`]},i=[n,r];export{n as StudioOnboardingTrackPresentation,r as StudioOnboardingWidgetPresentation,i as studioOnboardingPresentations};
package/dist/track.js CHANGED
@@ -1,90 +1 @@
1
- //#region src/track.ts
2
- const studioGettingStartedTrack = {
3
- id: "studio_getting_started",
4
- productId: "contractspec-studio",
5
- name: "Studio Getting Started",
6
- description: "First 30 minutes in Studio: create a project, edit the spec, deploy/regenerate, and try key modules.",
7
- targetUserSegment: "new_studio_user",
8
- targetRole: "developer",
9
- totalXp: 110,
10
- streakRule: {
11
- hoursWindow: 48,
12
- bonusXp: 25
13
- },
14
- completionRewards: {
15
- xpBonus: 25,
16
- badgeKey: "studio_first_30m"
17
- },
18
- steps: [
19
- {
20
- id: "choose_template",
21
- title: "Choose a template",
22
- description: "Create your first Studio project (starter template).",
23
- order: 1,
24
- completion: {
25
- eventName: "studio.template.instantiated",
26
- sourceModule: "@lssm/bundle.contractspec-studio"
27
- },
28
- xpReward: 20,
29
- metadata: { surface: "projects" }
30
- },
31
- {
32
- id: "edit_spec",
33
- title: "Edit the spec",
34
- description: "Change the spec (not generated code) and save.",
35
- instructions: "Open spec editor, tweak a contract or presentation, save.",
36
- order: 2,
37
- completion: {
38
- eventName: "spec.changed",
39
- sourceModule: "@lssm/bundle.contractspec-studio"
40
- },
41
- xpReward: 20,
42
- metadata: { surface: "spec-editor" }
43
- },
44
- {
45
- id: "regenerate_app",
46
- title: "Regenerate the app",
47
- description: "Regenerate artifacts from the updated spec.",
48
- order: 3,
49
- completion: {
50
- eventName: "regeneration.completed",
51
- sourceModule: "@lssm/lib.contracts/regenerator"
52
- },
53
- xpReward: 20,
54
- metadata: { surface: "regenerator" }
55
- },
56
- {
57
- id: "open_canvas",
58
- title: "Open the canvas",
59
- description: "Visit the canvas module for your project.",
60
- order: 4,
61
- completion: {
62
- eventName: "module.navigated",
63
- sourceModule: "@lssm/bundle.contractspec-studio",
64
- payloadFilter: { moduleId: "canvas" }
65
- },
66
- xpReward: 20,
67
- metadata: { surface: "canvas" }
68
- },
69
- {
70
- id: "try_evolution_mode",
71
- title: "Try evolution mode",
72
- description: "Request a change via Evolution, then regenerate.",
73
- order: 5,
74
- completion: {
75
- eventName: "studio.evolution.applied",
76
- sourceModule: "@lssm/lib.evolution"
77
- },
78
- xpReward: 30,
79
- metadata: { surface: "evolution" }
80
- }
81
- ],
82
- metadata: {
83
- persona: "first_run",
84
- surfacedIn: ["studio/home", "studio/sidebar/learning"]
85
- }
86
- };
87
- const studioLearningTracks = [studioGettingStartedTrack];
88
-
89
- //#endregion
90
- export { studioGettingStartedTrack, studioLearningTracks };
1
+ const e={id:`studio_getting_started`,productId:`contractspec-studio`,name:`Studio Getting Started`,description:`First 30 minutes in Studio: create a project, edit the spec, deploy/regenerate, and try key modules.`,targetUserSegment:`new_studio_user`,targetRole:`developer`,totalXp:110,streakRule:{hoursWindow:48,bonusXp:25},completionRewards:{xpBonus:25,badgeKey:`studio_first_30m`},steps:[{id:`choose_template`,title:`Choose a template`,description:`Create your first Studio project (starter template).`,order:1,completion:{eventName:`studio.template.instantiated`,sourceModule:`@lssm/bundle.contractspec-studio`},xpReward:20,metadata:{surface:`projects`}},{id:`edit_spec`,title:`Edit the spec`,description:`Change the spec (not generated code) and save.`,instructions:`Open spec editor, tweak a contract or presentation, save.`,order:2,completion:{eventName:`spec.changed`,sourceModule:`@lssm/bundle.contractspec-studio`},xpReward:20,metadata:{surface:`spec-editor`}},{id:`regenerate_app`,title:`Regenerate the app`,description:`Regenerate artifacts from the updated spec.`,order:3,completion:{eventName:`regeneration.completed`,sourceModule:`@lssm/lib.contracts/regenerator`},xpReward:20,metadata:{surface:`regenerator`}},{id:`open_canvas`,title:`Open the canvas`,description:`Visit the canvas module for your project.`,order:4,completion:{eventName:`module.navigated`,sourceModule:`@lssm/bundle.contractspec-studio`,payloadFilter:{moduleId:`canvas`}},xpReward:20,metadata:{surface:`canvas`}},{id:`try_evolution_mode`,title:`Try evolution mode`,description:`Request a change via Evolution, then regenerate.`,order:5,completion:{eventName:`studio.evolution.applied`,sourceModule:`@lssm/lib.evolution`},xpReward:30,metadata:{surface:`evolution`}}],metadata:{persona:`first_run`,surfacedIn:[`studio/home`,`studio/sidebar/learning`]}},t=[e];export{e as studioGettingStartedTrack,t as studioLearningTracks};
package/package.json CHANGED
@@ -1,25 +1,23 @@
1
1
  {
2
2
  "name": "@lssm/example.learning-journey-studio-onboarding",
3
- "version": "0.0.0-canary-20251217080011",
3
+ "version": "1.41.0",
4
4
  "description": "Learning journey track for first 30 minutes in ContractSpec Studio.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
- ".": "./dist/index.js",
10
- "./contracts": "./dist/contracts/index.js",
11
- "./docs": "./dist/docs/index.js",
12
- "./docs/studio-onboarding.docblock": "./dist/docs/studio-onboarding.docblock.js",
13
- "./example": "./dist/example.js",
14
- "./handlers/demo.handlers": "./dist/handlers/demo.handlers.js",
15
- "./learning-journey-studio-onboarding.feature": "./dist/learning-journey-studio-onboarding.feature.js",
16
- "./presentations": "./dist/presentations/index.js",
17
- "./track": "./dist/track.js",
9
+ ".": "./src/index.ts",
10
+ "./contracts": "./src/contracts/index.ts",
11
+ "./docs": "./src/docs/index.ts",
12
+ "./docs/studio-onboarding.docblock": "./src/docs/studio-onboarding.docblock.ts",
13
+ "./example": "./src/example.ts",
14
+ "./handlers/demo.handlers": "./src/handlers/demo.handlers.ts",
15
+ "./learning-journey-studio-onboarding.feature": "./src/learning-journey-studio-onboarding.feature.ts",
16
+ "./presentations": "./src/presentations/index.ts",
17
+ "./track": "./src/track.ts",
18
18
  "./*": "./*"
19
19
  },
20
20
  "scripts": {
21
- "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
22
- "publish:pkg:canary": "bun publish:pkg --tag canary",
23
21
  "build": "bun build:bundle && bun build:types",
24
22
  "build:bundle": "tsdown",
25
23
  "build:types": "tsc --noEmit",
@@ -30,13 +28,13 @@
30
28
  "lint:check": "eslint src"
31
29
  },
32
30
  "dependencies": {
33
- "@lssm/lib.contracts": "0.0.0-canary-20251217080011",
34
- "@lssm/lib.schema": "0.0.0-canary-20251217080011",
35
- "@lssm/module.learning-journey": "0.0.0-canary-20251217080011"
31
+ "@lssm/lib.contracts": "workspace:*",
32
+ "@lssm/lib.schema": "workspace:*",
33
+ "@lssm/module.learning-journey": "workspace:*"
36
34
  },
37
35
  "devDependencies": {
38
- "@lssm/tool.tsdown": "0.0.0-canary-20251217080011",
39
- "@lssm/tool.typescript": "0.0.0-canary-20251217080011",
36
+ "@lssm/tool.tsdown": "workspace:*",
37
+ "@lssm/tool.typescript": "workspace:*",
40
38
  "tsdown": "^0.17.4",
41
39
  "typescript": "^5.9.3"
42
40
  },