@contractspec/example.learning-journey-studio-onboarding 3.7.5 → 3.7.7

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.
@@ -3,7 +3,7 @@ $ bun run prebuild && bun run build:bundle && bun run build:types
3
3
  $ contractspec-bun-build prebuild
4
4
  $ contractspec-bun-build transpile
5
5
  [contractspec-bun-build] transpile target=bun root=src entries=10 noBundle=false
6
- Bundled 10 modules in 14ms
6
+ Bundled 10 modules in 47ms
7
7
 
8
8
  docs/index.js 1.72 KB (entry point)
9
9
  tests/operations.test-spec.js 0.93 KB (entry point)
@@ -17,7 +17,7 @@ Bundled 10 modules in 14ms
17
17
  ./track.js 2.59 KB (entry point)
18
18
 
19
19
  [contractspec-bun-build] transpile target=node root=src entries=10 noBundle=false
20
- Bundled 10 modules in 23ms
20
+ Bundled 10 modules in 26ms
21
21
 
22
22
  docs/index.js 1.68 KB (entry point)
23
23
  tests/operations.test-spec.js 0.92 KB (entry point)
@@ -31,7 +31,7 @@ Bundled 10 modules in 23ms
31
31
  ./track.js 2.58 KB (entry point)
32
32
 
33
33
  [contractspec-bun-build] transpile target=browser root=src entries=10 noBundle=false
34
- Bundled 10 modules in 17ms
34
+ Bundled 10 modules in 35ms
35
35
 
36
36
  docs/index.js 1.68 KB (entry point)
37
37
  tests/operations.test-spec.js 0.92 KB (entry point)
package/AGENTS.md CHANGED
@@ -1,35 +1,57 @@
1
- # AI Agent Guide -- `@contractspec/example.learning-journey-studio-onboarding`
1
+ # AI Agent Guide `@contractspec/example.learning-journey-studio-onboarding`
2
2
 
3
3
  Scope: `packages/examples/learning-journey-studio-onboarding/*`
4
4
 
5
- Demonstrates a guided onboarding track for the first 30 minutes in ContractSpec Studio.
5
+ Learning journey track for first 30 minutes in ContractSpec Studio.
6
6
 
7
7
  ## Quick Context
8
8
 
9
- - **Layer**: example
10
- - **Related Packages**: `module.learning-journey`, `lib.contracts-spec`, `lib.schema`
11
-
12
- ## What This Demonstrates
13
-
14
- - Studio onboarding track with time-boxed steps
15
- - Feature definition with operations, presentations, and test-specs
16
- - Demo handlers for simulated onboarding flow
17
- - First-run experience pattern for new users
18
-
19
- ## Public Exports
20
-
21
- - `.` -- root barrel
22
- - `./learning-journey-studio-onboarding.feature` -- feature definition
23
- - `./operations` -- onboarding operations
24
- - `./presentations` -- step presentations
25
- - `./handlers/demo.handlers` -- demo handlers
26
- - `./tests/operations.test-spec` -- operation test specifications
27
- - `./track` -- studio onboarding track definition
28
- - `./docs` -- DocBlock documentation
29
- - `./example` -- runnable example entry point
9
+ - Layer: `example`.
10
+ - Package visibility: published package.
11
+ - Primary consumers are example explorers, template authors, and documentation readers.
12
+ - Related packages: `@contractspec/lib.contracts-spec`, `@contractspec/lib.schema`, `@contractspec/module.learning-journey`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
13
+
14
+ ## Architecture
15
+
16
+ - `src/docs/` contains docblocks and documentation-facing exports.
17
+ - `src/example.ts` is the runnable example entrypoint.
18
+ - `src/handlers/` contains handlers or demo adapters wired to contract surfaces.
19
+ - `src/index.ts` is the root public barrel and package entrypoint.
20
+ - `src/learning-journey-studio-onboarding.feature.ts` defines a feature entrypoint.
21
+ - `src/operations` is part of the package's public or composition surface.
22
+ - `src/presentations` is part of the package's public or composition surface.
23
+
24
+ ## Public Surface
25
+
26
+ - Export `.` resolves through `./src/index.ts`.
27
+ - Export `./docs` resolves through `./src/docs/index.ts`.
28
+ - Export `./docs/studio-onboarding.docblock` resolves through `./src/docs/studio-onboarding.docblock.ts`.
29
+ - Export `./example` resolves through `./src/example.ts`.
30
+ - Export `./handlers/demo.handlers` resolves through `./src/handlers/demo.handlers.ts`.
31
+ - Export `./learning-journey-studio-onboarding.feature` resolves through `./src/learning-journey-studio-onboarding.feature.ts`.
32
+ - Export `./operations` resolves through `./src/operations/index.ts`.
33
+ - Export `./presentations` resolves through `./src/presentations/index.ts`.
34
+ - Export `./tests/operations.test-spec` resolves through `./src/tests/operations.test-spec.ts`.
35
+ - Export `./track` resolves through `./src/track.ts`.
36
+
37
+ ## Guardrails
38
+
39
+ - Keep the example package demonstrative, buildable, and aligned with the exported feature surface.
40
+ - Do not add hidden production assumptions that are not actually implemented in the example.
41
+ - Changes here can affect downstream packages such as `@contractspec/lib.contracts-spec`, `@contractspec/lib.schema`, `@contractspec/module.learning-journey`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
42
+ - Changes here can affect downstream packages such as `@contractspec/lib.contracts-spec`, `@contractspec/lib.schema`, `@contractspec/module.learning-journey`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
30
43
 
31
44
  ## Local Commands
32
45
 
33
- - Build: `bun run build`
34
- - Dev: `bun run dev`
35
- - Typecheck: `bun run typecheck`
46
+ - `bun run dev` — contractspec-bun-build dev
47
+ - `bun run build`bun run prebuild && bun run build:bundle && bun run build:types
48
+ - `bun run lint` — bun lint:fix
49
+ - `bun run lint:check` — biome check .
50
+ - `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
51
+ - `bun run typecheck` — tsc --noEmit
52
+ - `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose
53
+ - `bun run publish:pkg:canary` — bun publish:pkg --tag canary
54
+ - `bun run clean` — rimraf dist .turbo
55
+ - `bun run build:bundle` — contractspec-bun-build transpile
56
+ - `bun run build:types` — contractspec-bun-build types
57
+ - `bun run prebuild` — contractspec-bun-build prebuild
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @contractspec/example.learning-journey-studio-onboarding
2
2
 
3
+ ## 3.7.6
4
+
5
+ ### Patch Changes
6
+
7
+ - fix: release manifest
8
+ - Updated dependencies
9
+ - @contractspec/module.learning-journey@3.7.6
10
+ - @contractspec/lib.contracts-spec@3.7.6
11
+ - @contractspec/lib.schema@3.7.6
12
+
3
13
  ## 3.7.5
4
14
 
5
15
  ### Patch Changes
package/README.md CHANGED
@@ -1,41 +1,72 @@
1
1
  # @contractspec/example.learning-journey-studio-onboarding
2
2
 
3
- Website: https://contractspec.io/
3
+ Website: https://contractspec.io
4
4
 
5
+ **Learning journey track for first 30 minutes in ContractSpec Studio.**
5
6
 
6
- Learning Journey example focused on the first 30 minutes inside ContractSpec Studio.
7
+ ## What This Demonstrates
7
8
 
8
- ## Track
9
+ - Studio onboarding track with time-boxed steps.
10
+ - Feature definition with operations, presentations, and test-specs.
11
+ - Demo handlers for simulated onboarding flow.
12
+ - First-run experience pattern for new users.
13
+ - `src/docs/` contains docblocks and documentation-facing exports.
14
+ - `src/handlers/` contains handlers or demo adapters wired to contract surfaces.
9
15
 
10
- - **Key**: `studio_getting_started`
11
- - **Persona**: new Studio developer
12
- - **XP**: 20/20/20/20/30 + 25 bonus within 48h
13
- - **Badge**: `studio_first_30m`
16
+ ## Running Locally
14
17
 
15
- ## Steps & Events
16
-
17
- 1. `choose_template` `studio.template.instantiated`
18
- 2. `edit_spec` `spec.changed` (scope: sandbox)
19
- 3. `regenerate_app` → `regeneration.completed`
20
- 4. `play_in_playground` → `playground.session.started`
21
- 5. `try_evolution_mode` → `studio.evolution.applied`
18
+ From `packages/examples/learning-journey-studio-onboarding`:
19
+ - `bun run dev`
20
+ - `bun run build`
21
+ - `bun run typecheck`
22
22
 
23
23
  ## Usage
24
24
 
25
- - Import track specs:
26
- `import { studioLearningTracks } from '@contractspec/example.learning-journey-studio-onboarding/track'`
27
- - Contracts/handlers for demos:
28
- `import { GetStudioOnboardingTrack, RecordStudioOnboardingEvent } from '@contractspec/example.learning-journey-studio-onboarding/contracts'`
29
- `import { emitStudioOnboardingEvent } from '@contractspec/example.learning-journey-studio-onboarding/handlers/demo.handlers'`
30
- - Presentations (react/markdown/json targets):
31
- `import { studioOnboardingPresentations } from '@contractspec/example.learning-journey-studio-onboarding/presentations'`
32
- - Register with Learning Journey surfaces via onboarding API:
33
- - `learning.onboarding.listTracks` to surface catalog
34
- - `learning.onboarding.getProgress` to show status
35
- - `learning.onboarding.recordEvent` in event-bus handlers to advance steps
36
- - Wire events from Studio surfaces (template spawn, spec save, regeneration, playground session start, evolution apply) to `recordEvent`.
37
-
38
- ## Docs
39
-
40
- - Docblock: `src/docs/studio-onboarding.docblock.ts`
41
- - Route suggestion: `/docs/learning-journey/studio-onboarding`
25
+ Use `@contractspec/example.learning-journey-studio-onboarding` as a reference implementation, or import its exported surfaces into a workspace that composes ContractSpec examples and bundles.
26
+
27
+ ## Architecture
28
+
29
+ - `src/docs/` contains docblocks and documentation-facing exports.
30
+ - `src/example.ts` is the runnable example entrypoint.
31
+ - `src/handlers/` contains handlers or demo adapters wired to contract surfaces.
32
+ - `src/index.ts` is the root public barrel and package entrypoint.
33
+ - `src/learning-journey-studio-onboarding.feature.ts` defines a feature entrypoint.
34
+ - `src/operations` is part of the package's public or composition surface.
35
+ - `src/presentations` is part of the package's public or composition surface.
36
+
37
+ ## Public Entry Points
38
+
39
+ - Export `.` resolves through `./src/index.ts`.
40
+ - Export `./docs` resolves through `./src/docs/index.ts`.
41
+ - Export `./docs/studio-onboarding.docblock` resolves through `./src/docs/studio-onboarding.docblock.ts`.
42
+ - Export `./example` resolves through `./src/example.ts`.
43
+ - Export `./handlers/demo.handlers` resolves through `./src/handlers/demo.handlers.ts`.
44
+ - Export `./learning-journey-studio-onboarding.feature` resolves through `./src/learning-journey-studio-onboarding.feature.ts`.
45
+ - Export `./operations` resolves through `./src/operations/index.ts`.
46
+ - Export `./presentations` resolves through `./src/presentations/index.ts`.
47
+ - Export `./tests/operations.test-spec` resolves through `./src/tests/operations.test-spec.ts`.
48
+ - Export `./track` resolves through `./src/track.ts`.
49
+
50
+ ## Local Commands
51
+
52
+ - `bun run dev` — contractspec-bun-build dev
53
+ - `bun run build` — bun run prebuild && bun run build:bundle && bun run build:types
54
+ - `bun run lint` — bun lint:fix
55
+ - `bun run lint:check` — biome check .
56
+ - `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
57
+ - `bun run typecheck` — tsc --noEmit
58
+ - `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose
59
+ - `bun run publish:pkg:canary` — bun publish:pkg --tag canary
60
+ - `bun run clean` — rimraf dist .turbo
61
+ - `bun run build:bundle` — contractspec-bun-build transpile
62
+ - `bun run build:types` — contractspec-bun-build types
63
+ - `bun run prebuild` — contractspec-bun-build prebuild
64
+
65
+ ## Recent Updates
66
+
67
+ - Replace eslint+prettier by biomejs to optimize speed.
68
+ - Missing contract layers.
69
+
70
+ ## Notes
71
+
72
+ - Works alongside `@contractspec/lib.contracts-spec`, `@contractspec/lib.schema`, `@contractspec/module.learning-journey`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
@@ -166,9 +166,58 @@ var emitStudioOnboardingEvent = (eventName, { learnerId, occurredAt = new Date }
166
166
  };
167
167
  var emitAllStudioOnboardingEvents = (params, record) => studioOnboardingEvents.map((name) => emitStudioOnboardingEvent(name, params, record));
168
168
 
169
+ // src/learning-journey-studio-onboarding.feature.ts
170
+ import { defineFeature } from "@contractspec/lib.contracts-spec";
171
+ var LearningJourneyStudioOnboardingFeature = defineFeature({
172
+ meta: {
173
+ key: "learning-journey-studio-onboarding",
174
+ title: "Learning Journey: Studio Onboarding",
175
+ description: "Studio onboarding journey for getting started with ContractSpec Studio",
176
+ domain: "learning-journey",
177
+ owners: ["@examples.learning-journey.studio-onboarding"],
178
+ tags: ["learning", "onboarding", "studio", "journey"],
179
+ stability: "experimental",
180
+ version: "1.0.0"
181
+ },
182
+ operations: [
183
+ { key: "learningJourney.studioOnboarding.recordEvent", version: "1.0.0" },
184
+ { key: "learningJourney.studioOnboarding.getTrack", version: "1.0.0" }
185
+ ],
186
+ events: [],
187
+ presentations: [
188
+ { key: "learning.journey.studio.track", version: "1.0.0" },
189
+ { key: "learning.journey.studio.widget", version: "1.0.0" }
190
+ ],
191
+ opToPresentation: [
192
+ {
193
+ op: {
194
+ key: "learningJourney.studioOnboarding.getTrack",
195
+ version: "1.0.0"
196
+ },
197
+ pres: { key: "learning.journey.studio.track", version: "1.0.0" }
198
+ }
199
+ ],
200
+ presentationsTargets: [
201
+ {
202
+ key: "learning.journey.studio.track",
203
+ version: "1.0.0",
204
+ targets: ["react", "markdown", "application/json"]
205
+ },
206
+ {
207
+ key: "learning.journey.studio.widget",
208
+ version: "1.0.0",
209
+ targets: ["react"]
210
+ }
211
+ ],
212
+ capabilities: {
213
+ requires: [{ key: "identity", version: "1.0.0" }]
214
+ },
215
+ docs: ["docs.learning-journey.studio-onboarding"]
216
+ });
217
+
169
218
  // src/operations/index.ts
170
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
171
219
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
220
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
172
221
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
173
222
  var StepModel = defineSchemaModel({
174
223
  name: "StudioOnboardingStep",
@@ -327,55 +376,6 @@ var studioOnboardingPresentations = [
327
376
  StudioOnboardingTrackPresentation,
328
377
  StudioOnboardingWidgetPresentation
329
378
  ];
330
-
331
- // src/learning-journey-studio-onboarding.feature.ts
332
- import { defineFeature } from "@contractspec/lib.contracts-spec";
333
- var LearningJourneyStudioOnboardingFeature = defineFeature({
334
- meta: {
335
- key: "learning-journey-studio-onboarding",
336
- title: "Learning Journey: Studio Onboarding",
337
- description: "Studio onboarding journey for getting started with ContractSpec Studio",
338
- domain: "learning-journey",
339
- owners: ["@examples.learning-journey.studio-onboarding"],
340
- tags: ["learning", "onboarding", "studio", "journey"],
341
- stability: "experimental",
342
- version: "1.0.0"
343
- },
344
- operations: [
345
- { key: "learningJourney.studioOnboarding.recordEvent", version: "1.0.0" },
346
- { key: "learningJourney.studioOnboarding.getTrack", version: "1.0.0" }
347
- ],
348
- events: [],
349
- presentations: [
350
- { key: "learning.journey.studio.track", version: "1.0.0" },
351
- { key: "learning.journey.studio.widget", version: "1.0.0" }
352
- ],
353
- opToPresentation: [
354
- {
355
- op: {
356
- key: "learningJourney.studioOnboarding.getTrack",
357
- version: "1.0.0"
358
- },
359
- pres: { key: "learning.journey.studio.track", version: "1.0.0" }
360
- }
361
- ],
362
- presentationsTargets: [
363
- {
364
- key: "learning.journey.studio.track",
365
- version: "1.0.0",
366
- targets: ["react", "markdown", "application/json"]
367
- },
368
- {
369
- key: "learning.journey.studio.widget",
370
- version: "1.0.0",
371
- targets: ["react"]
372
- }
373
- ],
374
- capabilities: {
375
- requires: [{ key: "identity", version: "1.0.0" }]
376
- },
377
- docs: ["docs.learning-journey.studio-onboarding"]
378
- });
379
379
  export {
380
380
  studioOnboardingPresentations,
381
381
  studioOnboardingEvents,
@@ -83,8 +83,8 @@ var studioLearningTracks = [
83
83
  ];
84
84
 
85
85
  // src/operations/index.ts
86
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
87
86
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
87
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
88
88
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
89
89
  var StepModel = defineSchemaModel({
90
90
  name: "StudioOnboardingStep",
@@ -83,8 +83,8 @@ var studioLearningTracks = [
83
83
  ];
84
84
 
85
85
  // src/operations/index.ts
86
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
87
86
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
87
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
88
88
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
89
89
  var StepModel = defineSchemaModel({
90
90
  name: "StudioOnboardingStep",
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export * from './track';
2
1
  export * from './docs';
3
- export * from './operations';
2
+ export { default as example } from './example';
4
3
  export * from './handlers/demo.handlers';
5
- export * from './presentations';
6
4
  export * from './learning-journey-studio-onboarding.feature';
7
- export { default as example } from './example';
5
+ export * from './operations';
6
+ export * from './presentations';
7
+ export * from './track';
package/dist/index.js CHANGED
@@ -167,9 +167,58 @@ var emitStudioOnboardingEvent = (eventName, { learnerId, occurredAt = new Date }
167
167
  };
168
168
  var emitAllStudioOnboardingEvents = (params, record) => studioOnboardingEvents.map((name) => emitStudioOnboardingEvent(name, params, record));
169
169
 
170
+ // src/learning-journey-studio-onboarding.feature.ts
171
+ import { defineFeature } from "@contractspec/lib.contracts-spec";
172
+ var LearningJourneyStudioOnboardingFeature = defineFeature({
173
+ meta: {
174
+ key: "learning-journey-studio-onboarding",
175
+ title: "Learning Journey: Studio Onboarding",
176
+ description: "Studio onboarding journey for getting started with ContractSpec Studio",
177
+ domain: "learning-journey",
178
+ owners: ["@examples.learning-journey.studio-onboarding"],
179
+ tags: ["learning", "onboarding", "studio", "journey"],
180
+ stability: "experimental",
181
+ version: "1.0.0"
182
+ },
183
+ operations: [
184
+ { key: "learningJourney.studioOnboarding.recordEvent", version: "1.0.0" },
185
+ { key: "learningJourney.studioOnboarding.getTrack", version: "1.0.0" }
186
+ ],
187
+ events: [],
188
+ presentations: [
189
+ { key: "learning.journey.studio.track", version: "1.0.0" },
190
+ { key: "learning.journey.studio.widget", version: "1.0.0" }
191
+ ],
192
+ opToPresentation: [
193
+ {
194
+ op: {
195
+ key: "learningJourney.studioOnboarding.getTrack",
196
+ version: "1.0.0"
197
+ },
198
+ pres: { key: "learning.journey.studio.track", version: "1.0.0" }
199
+ }
200
+ ],
201
+ presentationsTargets: [
202
+ {
203
+ key: "learning.journey.studio.track",
204
+ version: "1.0.0",
205
+ targets: ["react", "markdown", "application/json"]
206
+ },
207
+ {
208
+ key: "learning.journey.studio.widget",
209
+ version: "1.0.0",
210
+ targets: ["react"]
211
+ }
212
+ ],
213
+ capabilities: {
214
+ requires: [{ key: "identity", version: "1.0.0" }]
215
+ },
216
+ docs: ["docs.learning-journey.studio-onboarding"]
217
+ });
218
+
170
219
  // src/operations/index.ts
171
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
172
220
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
221
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
173
222
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
174
223
  var StepModel = defineSchemaModel({
175
224
  name: "StudioOnboardingStep",
@@ -328,55 +377,6 @@ var studioOnboardingPresentations = [
328
377
  StudioOnboardingTrackPresentation,
329
378
  StudioOnboardingWidgetPresentation
330
379
  ];
331
-
332
- // src/learning-journey-studio-onboarding.feature.ts
333
- import { defineFeature } from "@contractspec/lib.contracts-spec";
334
- var LearningJourneyStudioOnboardingFeature = defineFeature({
335
- meta: {
336
- key: "learning-journey-studio-onboarding",
337
- title: "Learning Journey: Studio Onboarding",
338
- description: "Studio onboarding journey for getting started with ContractSpec Studio",
339
- domain: "learning-journey",
340
- owners: ["@examples.learning-journey.studio-onboarding"],
341
- tags: ["learning", "onboarding", "studio", "journey"],
342
- stability: "experimental",
343
- version: "1.0.0"
344
- },
345
- operations: [
346
- { key: "learningJourney.studioOnboarding.recordEvent", version: "1.0.0" },
347
- { key: "learningJourney.studioOnboarding.getTrack", version: "1.0.0" }
348
- ],
349
- events: [],
350
- presentations: [
351
- { key: "learning.journey.studio.track", version: "1.0.0" },
352
- { key: "learning.journey.studio.widget", version: "1.0.0" }
353
- ],
354
- opToPresentation: [
355
- {
356
- op: {
357
- key: "learningJourney.studioOnboarding.getTrack",
358
- version: "1.0.0"
359
- },
360
- pres: { key: "learning.journey.studio.track", version: "1.0.0" }
361
- }
362
- ],
363
- presentationsTargets: [
364
- {
365
- key: "learning.journey.studio.track",
366
- version: "1.0.0",
367
- targets: ["react", "markdown", "application/json"]
368
- },
369
- {
370
- key: "learning.journey.studio.widget",
371
- version: "1.0.0",
372
- targets: ["react"]
373
- }
374
- ],
375
- capabilities: {
376
- requires: [{ key: "identity", version: "1.0.0" }]
377
- },
378
- docs: ["docs.learning-journey.studio-onboarding"]
379
- });
380
380
  export {
381
381
  studioOnboardingPresentations,
382
382
  studioOnboardingEvents,
@@ -166,9 +166,58 @@ var emitStudioOnboardingEvent = (eventName, { learnerId, occurredAt = new Date }
166
166
  };
167
167
  var emitAllStudioOnboardingEvents = (params, record) => studioOnboardingEvents.map((name) => emitStudioOnboardingEvent(name, params, record));
168
168
 
169
+ // src/learning-journey-studio-onboarding.feature.ts
170
+ import { defineFeature } from "@contractspec/lib.contracts-spec";
171
+ var LearningJourneyStudioOnboardingFeature = defineFeature({
172
+ meta: {
173
+ key: "learning-journey-studio-onboarding",
174
+ title: "Learning Journey: Studio Onboarding",
175
+ description: "Studio onboarding journey for getting started with ContractSpec Studio",
176
+ domain: "learning-journey",
177
+ owners: ["@examples.learning-journey.studio-onboarding"],
178
+ tags: ["learning", "onboarding", "studio", "journey"],
179
+ stability: "experimental",
180
+ version: "1.0.0"
181
+ },
182
+ operations: [
183
+ { key: "learningJourney.studioOnboarding.recordEvent", version: "1.0.0" },
184
+ { key: "learningJourney.studioOnboarding.getTrack", version: "1.0.0" }
185
+ ],
186
+ events: [],
187
+ presentations: [
188
+ { key: "learning.journey.studio.track", version: "1.0.0" },
189
+ { key: "learning.journey.studio.widget", version: "1.0.0" }
190
+ ],
191
+ opToPresentation: [
192
+ {
193
+ op: {
194
+ key: "learningJourney.studioOnboarding.getTrack",
195
+ version: "1.0.0"
196
+ },
197
+ pres: { key: "learning.journey.studio.track", version: "1.0.0" }
198
+ }
199
+ ],
200
+ presentationsTargets: [
201
+ {
202
+ key: "learning.journey.studio.track",
203
+ version: "1.0.0",
204
+ targets: ["react", "markdown", "application/json"]
205
+ },
206
+ {
207
+ key: "learning.journey.studio.widget",
208
+ version: "1.0.0",
209
+ targets: ["react"]
210
+ }
211
+ ],
212
+ capabilities: {
213
+ requires: [{ key: "identity", version: "1.0.0" }]
214
+ },
215
+ docs: ["docs.learning-journey.studio-onboarding"]
216
+ });
217
+
169
218
  // src/operations/index.ts
170
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
171
219
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
220
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
172
221
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
173
222
  var StepModel = defineSchemaModel({
174
223
  name: "StudioOnboardingStep",
@@ -327,55 +376,6 @@ var studioOnboardingPresentations = [
327
376
  StudioOnboardingTrackPresentation,
328
377
  StudioOnboardingWidgetPresentation
329
378
  ];
330
-
331
- // src/learning-journey-studio-onboarding.feature.ts
332
- import { defineFeature } from "@contractspec/lib.contracts-spec";
333
- var LearningJourneyStudioOnboardingFeature = defineFeature({
334
- meta: {
335
- key: "learning-journey-studio-onboarding",
336
- title: "Learning Journey: Studio Onboarding",
337
- description: "Studio onboarding journey for getting started with ContractSpec Studio",
338
- domain: "learning-journey",
339
- owners: ["@examples.learning-journey.studio-onboarding"],
340
- tags: ["learning", "onboarding", "studio", "journey"],
341
- stability: "experimental",
342
- version: "1.0.0"
343
- },
344
- operations: [
345
- { key: "learningJourney.studioOnboarding.recordEvent", version: "1.0.0" },
346
- { key: "learningJourney.studioOnboarding.getTrack", version: "1.0.0" }
347
- ],
348
- events: [],
349
- presentations: [
350
- { key: "learning.journey.studio.track", version: "1.0.0" },
351
- { key: "learning.journey.studio.widget", version: "1.0.0" }
352
- ],
353
- opToPresentation: [
354
- {
355
- op: {
356
- key: "learningJourney.studioOnboarding.getTrack",
357
- version: "1.0.0"
358
- },
359
- pres: { key: "learning.journey.studio.track", version: "1.0.0" }
360
- }
361
- ],
362
- presentationsTargets: [
363
- {
364
- key: "learning.journey.studio.track",
365
- version: "1.0.0",
366
- targets: ["react", "markdown", "application/json"]
367
- },
368
- {
369
- key: "learning.journey.studio.widget",
370
- version: "1.0.0",
371
- targets: ["react"]
372
- }
373
- ],
374
- capabilities: {
375
- requires: [{ key: "identity", version: "1.0.0" }]
376
- },
377
- docs: ["docs.learning-journey.studio-onboarding"]
378
- });
379
379
  export {
380
380
  studioOnboardingPresentations,
381
381
  studioOnboardingEvents,
@@ -83,8 +83,8 @@ var studioLearningTracks = [
83
83
  ];
84
84
 
85
85
  // src/operations/index.ts
86
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
87
86
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
87
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
88
88
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
89
89
  var StepModel = defineSchemaModel({
90
90
  name: "StudioOnboardingStep",
@@ -83,8 +83,8 @@ var studioLearningTracks = [
83
83
  ];
84
84
 
85
85
  // src/operations/index.ts
86
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
87
86
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
87
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
88
88
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
89
89
  var StepModel = defineSchemaModel({
90
90
  name: "StudioOnboardingStep",
@@ -84,8 +84,8 @@ var studioLearningTracks = [
84
84
  ];
85
85
 
86
86
  // src/operations/index.ts
87
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
88
87
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
88
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
89
89
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
90
90
  var StepModel = defineSchemaModel({
91
91
  name: "StudioOnboardingStep",
@@ -84,8 +84,8 @@ var studioLearningTracks = [
84
84
  ];
85
85
 
86
86
  // src/operations/index.ts
87
- import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
88
87
  import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
88
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
89
89
  var OWNERS = ["examples.learning-journey.studio-onboarding"];
90
90
  var StepModel = defineSchemaModel({
91
91
  name: "StudioOnboardingStep",