@contractspec/example.learning-journey-studio-onboarding 1.44.1 → 1.45.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.
@@ -6,36 +6,36 @@ $ tsdown
6
6
  ℹ tsconfig: tsconfig.json
7
7
  ℹ Build start
8
8
  ℹ Cleaning 35 files
9
- ℹ dist/operations/index.js 4.33 kB │ gzip: 1.07 kB
9
+ ℹ dist/operations/index.js 4.34 kB │ gzip: 1.08 kB
10
10
  ℹ dist/track.js 2.43 kB │ gzip: 0.91 kB
11
11
  ℹ dist/docs/studio-onboarding.docblock.js 1.67 kB │ gzip: 0.83 kB
12
- ℹ dist/learning-journey-studio-onboarding.feature.js 1.57 kB │ gzip: 0.55 kB
13
- ℹ dist/presentations/index.js 1.56 kB │ gzip: 0.59 kB
12
+ ℹ dist/learning-journey-studio-onboarding.feature.js 1.63 kB │ gzip: 0.56 kB
13
+ ℹ dist/presentations/index.js 1.57 kB │ gzip: 0.59 kB
14
14
  ℹ dist/index.js 1.10 kB │ gzip: 0.31 kB
15
- ℹ dist/example.js 0.86 kB │ gzip: 0.47 kB
15
+ ℹ dist/example.js 0.96 kB │ gzip: 0.52 kB
16
16
  ℹ dist/handlers/demo.handlers.js 0.83 kB │ gzip: 0.41 kB
17
17
  ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
18
- ℹ dist/operations/index.js.map 6.41 kB │ gzip: 1.59 kB
18
+ ℹ dist/operations/index.js.map 6.42 kB │ gzip: 1.59 kB
19
19
  ℹ dist/track.js.map 3.89 kB │ gzip: 1.25 kB
20
- ℹ dist/learning-journey-studio-onboarding.feature.js.map 2.89 kB │ gzip: 1.03 kB
21
- ℹ dist/presentations/index.js.map 2.56 kB │ gzip: 0.89 kB
20
+ ℹ dist/learning-journey-studio-onboarding.feature.js.map 2.97 kB │ gzip: 1.04 kB
21
+ ℹ dist/presentations/index.js.map 2.58 kB │ gzip: 0.90 kB
22
22
  ℹ dist/docs/studio-onboarding.docblock.js.map 2.10 kB │ gzip: 1.00 kB
23
23
  ℹ dist/handlers/demo.handlers.js.map 1.61 kB │ gzip: 0.72 kB
24
- ℹ dist/example.js.map 1.21 kB │ gzip: 0.64 kB
24
+ ℹ dist/example.js.map 1.48 kB │ gzip: 0.74 kB
25
25
  ℹ dist/operations/index.d.ts.map 0.84 kB │ gzip: 0.32 kB
26
26
  ℹ dist/handlers/demo.handlers.d.ts.map 0.60 kB │ gzip: 0.33 kB
27
27
  ℹ dist/learning-journey-studio-onboarding.feature.d.ts.map 0.20 kB │ gzip: 0.15 kB
28
28
  ℹ dist/presentations/index.d.ts.map 0.19 kB │ gzip: 0.16 kB
29
- ℹ dist/example.d.ts.map 0.14 kB │ gzip: 0.13 kB
30
29
  ℹ dist/track.d.ts.map 0.14 kB │ gzip: 0.13 kB
30
+ ℹ dist/example.d.ts.map 0.12 kB │ gzip: 0.12 kB
31
31
  ℹ dist/operations/index.d.ts 8.83 kB │ gzip: 0.93 kB
32
- ℹ dist/example.d.ts 1.09 kB │ gzip: 0.46 kB
33
32
  ℹ dist/index.d.ts 1.07 kB │ gzip: 0.29 kB
34
33
  ℹ dist/handlers/demo.handlers.d.ts 0.97 kB │ gzip: 0.42 kB
35
34
  ℹ dist/learning-journey-studio-onboarding.feature.d.ts 0.48 kB │ gzip: 0.26 kB
36
35
  ℹ dist/presentations/index.d.ts 0.47 kB │ gzip: 0.21 kB
37
36
  ℹ dist/track.d.ts 0.36 kB │ gzip: 0.20 kB
37
+ ℹ dist/example.d.ts 0.20 kB │ gzip: 0.16 kB
38
38
  ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
39
39
  ℹ dist/docs/studio-onboarding.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
40
- ℹ 31 files, total: 50.46 kB
41
- ✔ Build complete in 20913ms
40
+ ℹ 31 files, total: 50.13 kB
41
+ ✔ Build complete in 19045ms
@@ -7,36 +7,36 @@ $ tsdown
7
7
  ℹ target: esnext
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
- ℹ dist/operations/index.js 4.33 kB │ gzip: 1.07 kB
10
+ ℹ dist/operations/index.js 4.34 kB │ gzip: 1.08 kB
11
11
  ℹ dist/track.js 2.43 kB │ gzip: 0.91 kB
12
12
  ℹ dist/docs/studio-onboarding.docblock.js 1.67 kB │ gzip: 0.83 kB
13
- ℹ dist/learning-journey-studio-onboarding.feature.js 1.57 kB │ gzip: 0.55 kB
14
- ℹ dist/presentations/index.js 1.56 kB │ gzip: 0.59 kB
13
+ ℹ dist/learning-journey-studio-onboarding.feature.js 1.63 kB │ gzip: 0.56 kB
14
+ ℹ dist/presentations/index.js 1.57 kB │ gzip: 0.59 kB
15
15
  ℹ dist/index.js 1.10 kB │ gzip: 0.31 kB
16
- ℹ dist/example.js 0.86 kB │ gzip: 0.47 kB
16
+ ℹ dist/example.js 0.96 kB │ gzip: 0.52 kB
17
17
  ℹ dist/handlers/demo.handlers.js 0.83 kB │ gzip: 0.41 kB
18
18
  ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
19
- ℹ dist/operations/index.js.map 6.41 kB │ gzip: 1.59 kB
19
+ ℹ dist/operations/index.js.map 6.42 kB │ gzip: 1.59 kB
20
20
  ℹ dist/track.js.map 3.89 kB │ gzip: 1.25 kB
21
- ℹ dist/learning-journey-studio-onboarding.feature.js.map 2.89 kB │ gzip: 1.03 kB
22
- ℹ dist/presentations/index.js.map 2.56 kB │ gzip: 0.89 kB
21
+ ℹ dist/learning-journey-studio-onboarding.feature.js.map 2.97 kB │ gzip: 1.04 kB
22
+ ℹ dist/presentations/index.js.map 2.58 kB │ gzip: 0.90 kB
23
23
  ℹ dist/docs/studio-onboarding.docblock.js.map 2.10 kB │ gzip: 1.00 kB
24
24
  ℹ dist/handlers/demo.handlers.js.map 1.61 kB │ gzip: 0.72 kB
25
- ℹ dist/example.js.map 1.21 kB │ gzip: 0.64 kB
25
+ ℹ dist/example.js.map 1.48 kB │ gzip: 0.74 kB
26
26
  ℹ dist/operations/index.d.ts.map 0.84 kB │ gzip: 0.32 kB
27
27
  ℹ dist/handlers/demo.handlers.d.ts.map 0.60 kB │ gzip: 0.33 kB
28
28
  ℹ dist/learning-journey-studio-onboarding.feature.d.ts.map 0.20 kB │ gzip: 0.15 kB
29
29
  ℹ dist/presentations/index.d.ts.map 0.19 kB │ gzip: 0.16 kB
30
- ℹ dist/example.d.ts.map 0.14 kB │ gzip: 0.13 kB
31
30
  ℹ dist/track.d.ts.map 0.14 kB │ gzip: 0.13 kB
31
+ ℹ dist/example.d.ts.map 0.12 kB │ gzip: 0.12 kB
32
32
  ℹ dist/operations/index.d.ts 8.83 kB │ gzip: 0.93 kB
33
- ℹ dist/example.d.ts 1.09 kB │ gzip: 0.46 kB
34
33
  ℹ dist/index.d.ts 1.07 kB │ gzip: 0.29 kB
35
34
  ℹ dist/handlers/demo.handlers.d.ts 0.97 kB │ gzip: 0.42 kB
36
35
  ℹ dist/learning-journey-studio-onboarding.feature.d.ts 0.48 kB │ gzip: 0.26 kB
37
36
  ℹ dist/presentations/index.d.ts 0.47 kB │ gzip: 0.21 kB
38
37
  ℹ dist/track.d.ts 0.36 kB │ gzip: 0.20 kB
38
+ ℹ dist/example.d.ts 0.20 kB │ gzip: 0.16 kB
39
39
  ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
40
40
  ℹ dist/docs/studio-onboarding.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
41
- ℹ 31 files, total: 50.46 kB
42
- ✔ Build complete in 23095ms
41
+ ℹ 31 files, total: 50.13 kB
42
+ ✔ Build complete in 23111ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # @contractspec/example.learning-journey-studio-onboarding
2
2
 
3
+ ## 1.45.0
4
+
5
+ ### Minor Changes
6
+
7
+ - e73ca1d: feat: improve app config and examples contracts
8
+ feat: Contract layers support (features, examples, app-configs)
9
+
10
+ ### New CLI Commands
11
+ - `contractspec list layers` - List all contract layers with filtering
12
+
13
+ ### Enhanced Commands
14
+ - `contractspec ci` - New `layers` check category validates features/examples/config
15
+ - `contractspec doctor` - New `layers` health checks
16
+ - `contractspec integrity` - Now shows layer statistics
17
+
18
+ ### New APIs
19
+ - `discoverLayers()` - Scan workspace for all layer files
20
+ - `scanExampleSource()` - Parse ExampleSpec from source code
21
+ - `isExampleFile()` - Check if file is an example spec
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies [e73ca1d]
26
+ - @contractspec/module.learning-journey@1.45.0
27
+ - @contractspec/lib.contracts@1.45.0
28
+ - @contractspec/lib.schema@1.45.0
29
+
3
30
  ## 1.44.1
4
31
 
5
32
  ### Patch Changes
package/dist/example.d.ts CHANGED
@@ -1,33 +1,7 @@
1
+ import { ExampleSpec } from "@contractspec/lib.contracts";
2
+
1
3
  //#region src/example.d.ts
2
- declare const example: {
3
- readonly id: "learning-journey-studio-onboarding";
4
- readonly title: "Learning Journey — Studio Getting Started";
5
- readonly summary: "Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.";
6
- readonly tags: readonly ["learning", "onboarding", "studio"];
7
- readonly kind: "template";
8
- readonly visibility: "public";
9
- readonly docs: {
10
- readonly rootDocId: "docs.learning-journey.studio-onboarding";
11
- };
12
- readonly entrypoints: {
13
- readonly packageName: "@contractspec/example.learning-journey-studio-onboarding";
14
- readonly docs: "./docs";
15
- };
16
- readonly surfaces: {
17
- readonly templates: true;
18
- readonly sandbox: {
19
- readonly enabled: true;
20
- readonly modes: readonly ["playground", "markdown"];
21
- };
22
- readonly studio: {
23
- readonly enabled: true;
24
- readonly installable: true;
25
- };
26
- readonly mcp: {
27
- readonly enabled: true;
28
- };
29
- };
30
- };
4
+ declare const example: ExampleSpec;
31
5
  //#endregion
32
6
  export { example as default };
33
7
  //# sourceMappingURL=example.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";cAAM;EAAA,SAAA,EAqBI,EAAA,oCAAA"}
1
+ {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";;;cAEM,SAAS"}
package/dist/example.js CHANGED
@@ -1,15 +1,20 @@
1
1
  //#region src/example.ts
2
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",
3
+ meta: {
4
+ key: "learning-journey-studio-onboarding",
5
+ version: "1.0.0",
6
+ title: "Learning Journey — Studio Getting Started",
7
+ description: "Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.",
8
+ kind: "template",
9
+ visibility: "public",
10
+ stability: "experimental",
11
+ owners: ["@platform.core"],
12
+ tags: [
13
+ "learning",
14
+ "onboarding",
15
+ "studio"
16
+ ]
17
+ },
13
18
  docs: { rootDocId: "docs.learning-journey.studio-onboarding" },
14
19
  entrypoints: {
15
20
  packageName: "@contractspec/example.learning-journey-studio-onboarding",
@@ -1 +1 @@
1
- {"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["const example = {\n id: 'learning-journey-studio-onboarding',\n title: 'Learning Journey — Studio Getting Started',\n summary:\n 'Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.',\n tags: ['learning', 'onboarding', 'studio'],\n kind: 'template',\n visibility: 'public',\n docs: {\n rootDocId: 'docs.learning-journey.studio-onboarding',\n },\n entrypoints: {\n packageName: '@contractspec/example.learning-journey-studio-onboarding',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['playground', 'markdown'] },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n} as const;\n\nexport default example;\n"],"mappings":";AAAA,MAAM,UAAU;CACd,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;EAAC;EAAY;EAAc;EAAS;CAC1C,MAAM;CACN,YAAY;CACZ,MAAM,EACJ,WAAW,2CACZ;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,cAAc,WAAW;GAAE;EAC7D,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
1
+ {"version":3,"file":"example.js","names":["example: ExampleSpec"],"sources":["../src/example.ts"],"sourcesContent":["import type { ExampleSpec } from '@contractspec/lib.contracts';\n\nconst example: ExampleSpec = {\n meta: {\n key: 'learning-journey-studio-onboarding',\n version: '1.0.0',\n title: 'Learning Journey — Studio Getting Started',\n description:\n 'Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.',\n kind: 'template',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['learning', 'onboarding', 'studio'],\n },\n docs: {\n rootDocId: 'docs.learning-journey.studio-onboarding',\n },\n entrypoints: {\n packageName: '@contractspec/example.learning-journey-studio-onboarding',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['playground', 'markdown'] },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n};\n\nexport default example;\n"],"mappings":";AAEA,MAAMA,UAAuB;CAC3B,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,MAAM;EACN,YAAY;EACZ,WAAW;EACX,QAAQ,CAAC,iBAAiB;EAC1B,MAAM;GAAC;GAAY;GAAc;GAAS;EAC3C;CACD,MAAM,EACJ,WAAW,2CACZ;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,cAAc,WAAW;GAAE;EAC7D,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
@@ -17,36 +17,36 @@ const LearningJourneyStudioOnboardingFeature = {
17
17
  "journey"
18
18
  ],
19
19
  stability: "experimental",
20
- version: 1
20
+ version: "1.0.0"
21
21
  },
22
22
  operations: [{
23
23
  key: "learningJourney.studioOnboarding.recordEvent",
24
- version: 1
24
+ version: "1.0.0"
25
25
  }, {
26
26
  key: "learningJourney.studioOnboarding.getTrack",
27
- version: 1
27
+ version: "1.0.0"
28
28
  }],
29
29
  events: [],
30
30
  presentations: [{
31
31
  key: "learning.journey.studio.track",
32
- version: 1
32
+ version: "1.0.0"
33
33
  }, {
34
34
  key: "learning.journey.studio.widget",
35
- version: 1
35
+ version: "1.0.0"
36
36
  }],
37
37
  opToPresentation: [{
38
38
  op: {
39
39
  key: "learningJourney.studioOnboarding.getTrack",
40
- version: 1
40
+ version: "1.0.0"
41
41
  },
42
42
  pres: {
43
43
  key: "learning.journey.studio.track",
44
- version: 1
44
+ version: "1.0.0"
45
45
  }
46
46
  }],
47
47
  presentationsTargets: [{
48
48
  key: "learning.journey.studio.track",
49
- version: 1,
49
+ version: "1.0.0",
50
50
  targets: [
51
51
  "react",
52
52
  "markdown",
@@ -54,12 +54,12 @@ const LearningJourneyStudioOnboardingFeature = {
54
54
  ]
55
55
  }, {
56
56
  key: "learning.journey.studio.widget",
57
- version: 1,
57
+ version: "1.0.0",
58
58
  targets: ["react"]
59
59
  }],
60
60
  capabilities: { requires: [{
61
61
  key: "identity",
62
- version: 1
62
+ version: "1.0.0"
63
63
  }] }
64
64
  };
65
65
 
@@ -1 +1 @@
1
- {"version":3,"file":"learning-journey-studio-onboarding.feature.js","names":["LearningJourneyStudioOnboardingFeature: FeatureModuleSpec"],"sources":["../src/learning-journey-studio-onboarding.feature.ts"],"sourcesContent":["/**\n * Learning Journey Studio Onboarding Feature Module Specification\n *\n * Defines the feature module for Studio onboarding journey.\n */\nimport type { FeatureModuleSpec } from '@contractspec/lib.contracts';\n\n/**\n * Learning Journey Studio Onboarding feature module that bundles\n * Studio-specific onboarding track operations and presentations.\n */\nexport const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec = {\n meta: {\n key: 'learning-journey-studio-onboarding',\n title: 'Learning Journey: Studio Onboarding',\n description:\n 'Studio onboarding journey for getting started with ContractSpec Studio',\n domain: 'learning-journey',\n owners: ['@examples.learning-journey.studio-onboarding'],\n tags: ['learning', 'onboarding', 'studio', 'journey'],\n stability: 'experimental',\n version: 1,\n },\n\n // All contract operations included in this feature\n operations: [\n { key: 'learningJourney.studioOnboarding.recordEvent', version: 1 },\n { key: 'learningJourney.studioOnboarding.getTrack', version: 1 },\n ],\n\n // Events emitted by this feature\n events: [],\n\n // Presentations associated with this feature\n presentations: [\n { key: 'learning.journey.studio.track', version: 1 },\n { key: 'learning.journey.studio.widget', version: 1 },\n ],\n\n // Link operations to their primary presentations\n opToPresentation: [\n {\n op: { key: 'learningJourney.studioOnboarding.getTrack', version: 1 },\n pres: { key: 'learning.journey.studio.track', version: 1 },\n },\n ],\n\n // Target requirements for multi-surface rendering\n presentationsTargets: [\n {\n key: 'learning.journey.studio.track',\n version: 1,\n targets: ['react', 'markdown', 'application/json'],\n },\n {\n key: 'learning.journey.studio.widget',\n version: 1,\n targets: ['react'],\n },\n ],\n\n // Capability requirements\n capabilities: {\n requires: [{ key: 'identity', version: 1 }],\n },\n};\n"],"mappings":";;;;;AAWA,MAAaA,yCAA4D;CACvE,MAAM;EACJ,KAAK;EACL,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,+CAA+C;EACxD,MAAM;GAAC;GAAY;GAAc;GAAU;GAAU;EACrD,WAAW;EACX,SAAS;EACV;CAGD,YAAY,CACV;EAAE,KAAK;EAAgD,SAAS;EAAG,EACnE;EAAE,KAAK;EAA6C,SAAS;EAAG,CACjE;CAGD,QAAQ,EAAE;CAGV,eAAe,CACb;EAAE,KAAK;EAAiC,SAAS;EAAG,EACpD;EAAE,KAAK;EAAkC,SAAS;EAAG,CACtD;CAGD,kBAAkB,CAChB;EACE,IAAI;GAAE,KAAK;GAA6C,SAAS;GAAG;EACpE,MAAM;GAAE,KAAK;GAAiC,SAAS;GAAG;EAC3D,CACF;CAGD,sBAAsB,CACpB;EACE,KAAK;EACL,SAAS;EACT,SAAS;GAAC;GAAS;GAAY;GAAmB;EACnD,EACD;EACE,KAAK;EACL,SAAS;EACT,SAAS,CAAC,QAAQ;EACnB,CACF;CAGD,cAAc,EACZ,UAAU,CAAC;EAAE,KAAK;EAAY,SAAS;EAAG,CAAC,EAC5C;CACF"}
1
+ {"version":3,"file":"learning-journey-studio-onboarding.feature.js","names":["LearningJourneyStudioOnboardingFeature: FeatureModuleSpec"],"sources":["../src/learning-journey-studio-onboarding.feature.ts"],"sourcesContent":["/**\n * Learning Journey Studio Onboarding Feature Module Specification\n *\n * Defines the feature module for Studio onboarding journey.\n */\nimport type { FeatureModuleSpec } from '@contractspec/lib.contracts';\n\n/**\n * Learning Journey Studio Onboarding feature module that bundles\n * Studio-specific onboarding track operations and presentations.\n */\nexport const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec = {\n meta: {\n key: 'learning-journey-studio-onboarding',\n title: 'Learning Journey: Studio Onboarding',\n description:\n 'Studio onboarding journey for getting started with ContractSpec Studio',\n domain: 'learning-journey',\n owners: ['@examples.learning-journey.studio-onboarding'],\n tags: ['learning', 'onboarding', 'studio', 'journey'],\n stability: 'experimental',\n version: '1.0.0',\n },\n\n // All contract operations included in this feature\n operations: [\n { key: 'learningJourney.studioOnboarding.recordEvent', version: '1.0.0' },\n { key: 'learningJourney.studioOnboarding.getTrack', version: '1.0.0' },\n ],\n\n // Events emitted by this feature\n events: [],\n\n // Presentations associated with this feature\n presentations: [\n { key: 'learning.journey.studio.track', version: '1.0.0' },\n { key: 'learning.journey.studio.widget', version: '1.0.0' },\n ],\n\n // Link operations to their primary presentations\n opToPresentation: [\n {\n op: {\n key: 'learningJourney.studioOnboarding.getTrack',\n version: '1.0.0',\n },\n pres: { key: 'learning.journey.studio.track', version: '1.0.0' },\n },\n ],\n\n // Target requirements for multi-surface rendering\n presentationsTargets: [\n {\n key: 'learning.journey.studio.track',\n version: '1.0.0',\n targets: ['react', 'markdown', 'application/json'],\n },\n {\n key: 'learning.journey.studio.widget',\n version: '1.0.0',\n targets: ['react'],\n },\n ],\n\n // Capability requirements\n capabilities: {\n requires: [{ key: 'identity', version: '1.0.0' }],\n },\n};\n"],"mappings":";;;;;AAWA,MAAaA,yCAA4D;CACvE,MAAM;EACJ,KAAK;EACL,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,+CAA+C;EACxD,MAAM;GAAC;GAAY;GAAc;GAAU;GAAU;EACrD,WAAW;EACX,SAAS;EACV;CAGD,YAAY,CACV;EAAE,KAAK;EAAgD,SAAS;EAAS,EACzE;EAAE,KAAK;EAA6C,SAAS;EAAS,CACvE;CAGD,QAAQ,EAAE;CAGV,eAAe,CACb;EAAE,KAAK;EAAiC,SAAS;EAAS,EAC1D;EAAE,KAAK;EAAkC,SAAS;EAAS,CAC5D;CAGD,kBAAkB,CAChB;EACE,IAAI;GACF,KAAK;GACL,SAAS;GACV;EACD,MAAM;GAAE,KAAK;GAAiC,SAAS;GAAS;EACjE,CACF;CAGD,sBAAsB,CACpB;EACE,KAAK;EACL,SAAS;EACT,SAAS;GAAC;GAAS;GAAY;GAAmB;EACnD,EACD;EACE,KAAK;EACL,SAAS;EACT,SAAS,CAAC,QAAQ;EACnB,CACF;CAGD,cAAc,EACZ,UAAU,CAAC;EAAE,KAAK;EAAY,SAAS;EAAS,CAAC,EAClD;CACF"}
@@ -122,7 +122,7 @@ const SuccessModel = defineSchemaModel({
122
122
  const GetStudioOnboardingTrack = defineQuery({
123
123
  meta: {
124
124
  key: "learningJourney.studioOnboarding.getTrack",
125
- version: 1,
125
+ version: "1.0.0",
126
126
  stability: "experimental",
127
127
  owners: [...OWNERS],
128
128
  tags: [
@@ -147,7 +147,7 @@ const GetStudioOnboardingTrack = defineQuery({
147
147
  const RecordStudioOnboardingEvent = defineCommand({
148
148
  meta: {
149
149
  key: "learningJourney.studioOnboarding.recordEvent",
150
- version: 1,
150
+ version: "1.0.0",
151
151
  stability: "experimental",
152
152
  owners: [...OWNERS],
153
153
  tags: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/operations/index.ts"],"sourcesContent":["import { ScalarTypeEnum, defineSchemaModel } from '@contractspec/lib.schema';\nimport { defineCommand, defineQuery } from '@contractspec/lib.contracts';\n\nimport { studioGettingStartedTrack } from '../track';\n\nconst OWNERS = ['examples.learning-journey.studio-onboarding'] as const;\n\nconst StepModel = defineSchemaModel({\n name: 'StudioOnboardingStep',\n description: 'Step metadata for Studio onboarding journey',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n title: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n completionEvent: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n sourceModule: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n xpReward: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n order: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nexport const StudioOnboardingTrackModel = defineSchemaModel({\n name: 'StudioOnboardingTrack',\n description: 'Studio onboarding track definition',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n totalXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n completionXpBonus: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n completionBadgeKey: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n streakHoursWindow: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n streakBonusXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n steps: { type: StepModel, isArray: true, isOptional: false },\n },\n});\n\nconst TrackResponseModel = defineSchemaModel({\n name: 'StudioOnboardingTrackResponse',\n description: 'Response wrapper for studio onboarding track',\n fields: {\n track: { type: StudioOnboardingTrackModel, isOptional: false },\n },\n});\n\nconst RecordDemoEventInput = defineSchemaModel({\n name: 'StudioOnboardingRecordEventInput',\n description: 'Emit a demo event to advance Studio onboarding steps',\n fields: {\n learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n eventName: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n payload: { type: ScalarTypeEnum.JSON(), isOptional: true },\n occurredAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n },\n});\n\nconst SuccessModel = defineSchemaModel({\n name: 'StudioOnboardingSuccess',\n description: 'Generic success response',\n fields: {\n success: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n },\n});\n\nexport const GetStudioOnboardingTrack = defineQuery({\n meta: {\n key: 'learningJourney.studioOnboarding.getTrack',\n version: 1,\n stability: 'experimental',\n owners: [...OWNERS],\n tags: ['learning', 'onboarding', 'studio'],\n description: 'Fetch the Studio onboarding track definition.',\n goal: 'Expose track metadata to UIs and templates.',\n context: 'Called by Studio/Playground to render journey steps.',\n },\n io: {\n input: defineSchemaModel({\n name: 'StudioOnboardingTrackInput',\n description: 'Track input',\n fields: {},\n }),\n output: TrackResponseModel,\n },\n policy: { auth: 'user' },\n});\n\nexport const RecordStudioOnboardingEvent = defineCommand({\n meta: {\n key: 'learningJourney.studioOnboarding.recordEvent',\n version: 1,\n stability: 'experimental',\n owners: [...OWNERS],\n tags: ['learning', 'onboarding', 'studio'],\n description: 'Record an event to advance Studio onboarding progress.',\n goal: 'Advance steps via domain events in demo/sandbox contexts.',\n context:\n 'Called by handlers or demo scripts to emit step completion events.',\n },\n io: {\n input: RecordDemoEventInput,\n output: SuccessModel,\n },\n policy: { auth: 'user' },\n});\n\nexport const studioOnboardingContracts = {\n GetStudioOnboardingTrack,\n RecordStudioOnboardingEvent,\n track: studioGettingStartedTrack,\n};\n"],"mappings":";;;;;AAKA,MAAM,SAAS,CAAC,8CAA8C;AAE9D,MAAM,YAAY,kBAAkB;CAClC,MAAM;CACN,aAAa;CACb,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,OAAO;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACpE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,iBAAiB;GACf,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,cAAc;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EAC1E,UAAU;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACnE,OAAO;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACjE;CACF,CAAC;AAEF,MAAa,6BAA6B,kBAAkB;CAC1D,MAAM;CACN,aAAa;CACb,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,MAAM;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACnE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,SAAS;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EAClE,mBAAmB;GACjB,MAAM,eAAe,cAAc;GACnC,YAAY;GACb;EACD,oBAAoB;GAClB,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,mBAAmB;GACjB,MAAM,eAAe,cAAc;GACnC,YAAY;GACb;EACD,eAAe;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACxE,OAAO;GAAE,MAAM;GAAW,SAAS;GAAM,YAAY;GAAO;EAC7D;CACF,CAAC;AAEF,MAAM,qBAAqB,kBAAkB;CAC3C,MAAM;CACN,aAAa;CACb,QAAQ,EACN,OAAO;EAAE,MAAM;EAA4B,YAAY;EAAO,EAC/D;CACF,CAAC;AAEF,MAAM,uBAAuB,kBAAkB;CAC7C,MAAM;CACN,aAAa;CACb,QAAQ;EACN,WAAW;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,WAAW;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,SAAS;GAAE,MAAM,eAAe,MAAM;GAAE,YAAY;GAAM;EAC1D,YAAY;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAM;EAClE;CACF,CAAC;AAEF,MAAM,eAAe,kBAAkB;CACrC,MAAM;CACN,aAAa;CACb,QAAQ,EACN,SAAS;EAAE,MAAM,eAAe,SAAS;EAAE,YAAY;EAAO,EAC/D;CACF,CAAC;AAEF,MAAa,2BAA2B,YAAY;CAClD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAc;GAAS;EAC1C,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO,kBAAkB;GACvB,MAAM;GACN,aAAa;GACb,QAAQ,EAAE;GACX,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;AAEF,MAAa,8BAA8B,cAAc;CACvD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAc;GAAS;EAC1C,aAAa;EACb,MAAM;EACN,SACE;EACH;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;AAEF,MAAa,4BAA4B;CACvC;CACA;CACA,OAAO;CACR"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/operations/index.ts"],"sourcesContent":["import { ScalarTypeEnum, defineSchemaModel } from '@contractspec/lib.schema';\nimport { defineCommand, defineQuery } from '@contractspec/lib.contracts';\n\nimport { studioGettingStartedTrack } from '../track';\n\nconst OWNERS = ['examples.learning-journey.studio-onboarding'] as const;\n\nconst StepModel = defineSchemaModel({\n name: 'StudioOnboardingStep',\n description: 'Step metadata for Studio onboarding journey',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n title: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n completionEvent: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n sourceModule: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n xpReward: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n order: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nexport const StudioOnboardingTrackModel = defineSchemaModel({\n name: 'StudioOnboardingTrack',\n description: 'Studio onboarding track definition',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n totalXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n completionXpBonus: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n completionBadgeKey: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n streakHoursWindow: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n streakBonusXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n steps: { type: StepModel, isArray: true, isOptional: false },\n },\n});\n\nconst TrackResponseModel = defineSchemaModel({\n name: 'StudioOnboardingTrackResponse',\n description: 'Response wrapper for studio onboarding track',\n fields: {\n track: { type: StudioOnboardingTrackModel, isOptional: false },\n },\n});\n\nconst RecordDemoEventInput = defineSchemaModel({\n name: 'StudioOnboardingRecordEventInput',\n description: 'Emit a demo event to advance Studio onboarding steps',\n fields: {\n learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n eventName: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n payload: { type: ScalarTypeEnum.JSON(), isOptional: true },\n occurredAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n },\n});\n\nconst SuccessModel = defineSchemaModel({\n name: 'StudioOnboardingSuccess',\n description: 'Generic success response',\n fields: {\n success: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n },\n});\n\nexport const GetStudioOnboardingTrack = defineQuery({\n meta: {\n key: 'learningJourney.studioOnboarding.getTrack',\n version: '1.0.0',\n stability: 'experimental',\n owners: [...OWNERS],\n tags: ['learning', 'onboarding', 'studio'],\n description: 'Fetch the Studio onboarding track definition.',\n goal: 'Expose track metadata to UIs and templates.',\n context: 'Called by Studio/Playground to render journey steps.',\n },\n io: {\n input: defineSchemaModel({\n name: 'StudioOnboardingTrackInput',\n description: 'Track input',\n fields: {},\n }),\n output: TrackResponseModel,\n },\n policy: { auth: 'user' },\n});\n\nexport const RecordStudioOnboardingEvent = defineCommand({\n meta: {\n key: 'learningJourney.studioOnboarding.recordEvent',\n version: '1.0.0',\n stability: 'experimental',\n owners: [...OWNERS],\n tags: ['learning', 'onboarding', 'studio'],\n description: 'Record an event to advance Studio onboarding progress.',\n goal: 'Advance steps via domain events in demo/sandbox contexts.',\n context:\n 'Called by handlers or demo scripts to emit step completion events.',\n },\n io: {\n input: RecordDemoEventInput,\n output: SuccessModel,\n },\n policy: { auth: 'user' },\n});\n\nexport const studioOnboardingContracts = {\n GetStudioOnboardingTrack,\n RecordStudioOnboardingEvent,\n track: studioGettingStartedTrack,\n};\n"],"mappings":";;;;;AAKA,MAAM,SAAS,CAAC,8CAA8C;AAE9D,MAAM,YAAY,kBAAkB;CAClC,MAAM;CACN,aAAa;CACb,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,OAAO;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACpE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,iBAAiB;GACf,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,cAAc;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EAC1E,UAAU;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACnE,OAAO;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACjE;CACF,CAAC;AAEF,MAAa,6BAA6B,kBAAkB;CAC1D,MAAM;CACN,aAAa;CACb,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,MAAM;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACnE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,SAAS;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EAClE,mBAAmB;GACjB,MAAM,eAAe,cAAc;GACnC,YAAY;GACb;EACD,oBAAoB;GAClB,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,mBAAmB;GACjB,MAAM,eAAe,cAAc;GACnC,YAAY;GACb;EACD,eAAe;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAM;EACxE,OAAO;GAAE,MAAM;GAAW,SAAS;GAAM,YAAY;GAAO;EAC7D;CACF,CAAC;AAEF,MAAM,qBAAqB,kBAAkB;CAC3C,MAAM;CACN,aAAa;CACb,QAAQ,EACN,OAAO;EAAE,MAAM;EAA4B,YAAY;EAAO,EAC/D;CACF,CAAC;AAEF,MAAM,uBAAuB,kBAAkB;CAC7C,MAAM;CACN,aAAa;CACb,QAAQ;EACN,WAAW;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,WAAW;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,SAAS;GAAE,MAAM,eAAe,MAAM;GAAE,YAAY;GAAM;EAC1D,YAAY;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAM;EAClE;CACF,CAAC;AAEF,MAAM,eAAe,kBAAkB;CACrC,MAAM;CACN,aAAa;CACb,QAAQ,EACN,SAAS;EAAE,MAAM,eAAe,SAAS;EAAE,YAAY;EAAO,EAC/D;CACF,CAAC;AAEF,MAAa,2BAA2B,YAAY;CAClD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAc;GAAS;EAC1C,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO,kBAAkB;GACvB,MAAM;GACN,aAAa;GACb,QAAQ,EAAE;GACX,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;AAEF,MAAa,8BAA8B,cAAc;CACvD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAc;GAAS;EAC1C,aAAa;EACb,MAAM;EACN,SACE;EACH;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;AAEF,MAAa,4BAA4B;CACvC;CACA;CACA,OAAO;CACR"}
@@ -16,7 +16,7 @@ const baseMeta = {
16
16
  const StudioOnboardingTrackPresentation = {
17
17
  meta: {
18
18
  key: "learning.journey.studio.track",
19
- version: 1,
19
+ version: "1.0.0",
20
20
  description: "Studio onboarding track detail",
21
21
  goal: "Visualize the onboarding track for the user.",
22
22
  context: "Displayed in the Studio dashboard.",
@@ -37,7 +37,7 @@ const StudioOnboardingTrackPresentation = {
37
37
  const StudioOnboardingWidgetPresentation = {
38
38
  meta: {
39
39
  key: "learning.journey.studio.widget",
40
- version: 1,
40
+ version: "1.0.0",
41
41
  description: "Compact widget for Studio onboarding progress",
42
42
  goal: "Show quick progress summary.",
43
43
  context: "Displayed in the Studio sidebar or header.",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability'\n>","StudioOnboardingTrackPresentation: PresentationSpec","StudioOnboardingWidgetPresentation: PresentationSpec"],"sources":["../../src/presentations/index.ts"],"sourcesContent":["import type {\n PresentationSpecMeta,\n PresentationSpec,\n} from '@contractspec/lib.contracts';\nimport { StabilityEnum } from '@contractspec/lib.contracts';\nimport { StudioOnboardingTrackModel } from '../operations';\n\nconst baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability'\n> = {\n domain: 'learning-journey',\n title: 'Studio Onboarding',\n owners: ['@examples.learning-journey.studio-onboarding'] as string[],\n tags: ['learning', 'onboarding', 'studio'] as string[],\n stability: StabilityEnum.Experimental,\n};\n\nexport const StudioOnboardingTrackPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.studio.track',\n version: 1,\n description: 'Studio onboarding track detail',\n goal: 'Visualize the onboarding track for the user.',\n context: 'Displayed in the Studio dashboard.',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackDetail',\n props: StudioOnboardingTrackModel,\n },\n targets: ['react', 'markdown', 'application/json'],\n};\n\nexport const StudioOnboardingWidgetPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.studio.widget',\n version: 1,\n description: 'Compact widget for Studio onboarding progress',\n goal: 'Show quick progress summary.',\n context: 'Displayed in the Studio sidebar or header.',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackProgressWidget',\n },\n targets: ['react'],\n};\n\nexport const studioOnboardingPresentations = [\n StudioOnboardingTrackPresentation,\n StudioOnboardingWidgetPresentation,\n];\n"],"mappings":";;;;AAOA,MAAMA,WAGF;CACF,QAAQ;CACR,OAAO;CACP,QAAQ,CAAC,+CAA+C;CACxD,MAAM;EAAC;EAAY;EAAc;EAAS;CAC1C,WAAW,cAAc;CAC1B;AAED,MAAaC,oCAAsD;CACjE,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACd,OAAO;EACR;CACD,SAAS;EAAC;EAAS;EAAY;EAAmB;CACnD;AAED,MAAaC,qCAAuD;CAClE,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CACnB;AAED,MAAa,gCAAgC,CAC3C,mCACA,mCACD"}
1
+ {"version":3,"file":"index.js","names":["baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability'\n>","StudioOnboardingTrackPresentation: PresentationSpec","StudioOnboardingWidgetPresentation: PresentationSpec"],"sources":["../../src/presentations/index.ts"],"sourcesContent":["import type {\n PresentationSpecMeta,\n PresentationSpec,\n} from '@contractspec/lib.contracts';\nimport { StabilityEnum } from '@contractspec/lib.contracts';\nimport { StudioOnboardingTrackModel } from '../operations';\n\nconst baseMeta: Pick<\n PresentationSpecMeta,\n 'domain' | 'owners' | 'tags' | 'title' | 'stability'\n> = {\n domain: 'learning-journey',\n title: 'Studio Onboarding',\n owners: ['@examples.learning-journey.studio-onboarding'] as string[],\n tags: ['learning', 'onboarding', 'studio'] as string[],\n stability: StabilityEnum.Experimental,\n};\n\nexport const StudioOnboardingTrackPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.studio.track',\n version: '1.0.0',\n description: 'Studio onboarding track detail',\n goal: 'Visualize the onboarding track for the user.',\n context: 'Displayed in the Studio dashboard.',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackDetail',\n props: StudioOnboardingTrackModel,\n },\n targets: ['react', 'markdown', 'application/json'],\n};\n\nexport const StudioOnboardingWidgetPresentation: PresentationSpec = {\n meta: {\n key: 'learning.journey.studio.widget',\n version: '1.0.0',\n description: 'Compact widget for Studio onboarding progress',\n goal: 'Show quick progress summary.',\n context: 'Displayed in the Studio sidebar or header.',\n ...baseMeta,\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'LearningTrackProgressWidget',\n },\n targets: ['react'],\n};\n\nexport const studioOnboardingPresentations = [\n StudioOnboardingTrackPresentation,\n StudioOnboardingWidgetPresentation,\n];\n"],"mappings":";;;;AAOA,MAAMA,WAGF;CACF,QAAQ;CACR,OAAO;CACP,QAAQ,CAAC,+CAA+C;CACxD,MAAM;EAAC;EAAY;EAAc;EAAS;CAC1C,WAAW,cAAc;CAC1B;AAED,MAAaC,oCAAsD;CACjE,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACd,OAAO;EACR;CACD,SAAS;EAAC;EAAS;EAAY;EAAmB;CACnD;AAED,MAAaC,qCAAuD;CAClE,MAAM;EACJ,KAAK;EACL,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,GAAG;EACJ;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,QAAQ;CACnB;AAED,MAAa,gCAAgC,CAC3C,mCACA,mCACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/example.learning-journey-studio-onboarding",
3
- "version": "1.44.1",
3
+ "version": "1.45.0",
4
4
  "description": "Learning journey track for first 30 minutes in ContractSpec Studio.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -30,13 +30,13 @@
30
30
  "lint:check": "eslint src"
31
31
  },
32
32
  "dependencies": {
33
- "@contractspec/lib.contracts": "1.44.1",
34
- "@contractspec/lib.schema": "1.44.1",
35
- "@contractspec/module.learning-journey": "1.44.1"
33
+ "@contractspec/lib.contracts": "1.45.0",
34
+ "@contractspec/lib.schema": "1.45.0",
35
+ "@contractspec/module.learning-journey": "1.45.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@contractspec/tool.tsdown": "1.44.1",
39
- "@contractspec/tool.typescript": "1.44.1",
38
+ "@contractspec/tool.tsdown": "1.45.0",
39
+ "@contractspec/tool.typescript": "1.45.0",
40
40
  "tsdown": "^0.18.3",
41
41
  "typescript": "^5.9.3"
42
42
  },
package/src/example.ts CHANGED
@@ -1,11 +1,18 @@
1
- const example = {
2
- id: 'learning-journey-studio-onboarding',
3
- title: 'Learning Journey — Studio Getting Started',
4
- summary:
5
- 'Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.',
6
- tags: ['learning', 'onboarding', 'studio'],
7
- kind: 'template',
8
- visibility: 'public',
1
+ import type { ExampleSpec } from '@contractspec/lib.contracts';
2
+
3
+ const example: ExampleSpec = {
4
+ meta: {
5
+ key: 'learning-journey-studio-onboarding',
6
+ version: '1.0.0',
7
+ title: 'Learning Journey — Studio Getting Started',
8
+ description:
9
+ 'Onboarding track guiding a new Studio user through template spawn, spec edit, regeneration, playground, and evolution.',
10
+ kind: 'template',
11
+ visibility: 'public',
12
+ stability: 'experimental',
13
+ owners: ['@platform.core'],
14
+ tags: ['learning', 'onboarding', 'studio'],
15
+ },
9
16
  docs: {
10
17
  rootDocId: 'docs.learning-journey.studio-onboarding',
11
18
  },
@@ -19,6 +26,6 @@ const example = {
19
26
  studio: { enabled: true, installable: true },
20
27
  mcp: { enabled: true },
21
28
  },
22
- } as const;
29
+ };
23
30
 
24
31
  export default example;
@@ -19,13 +19,13 @@ export const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec = {
19
19
  owners: ['@examples.learning-journey.studio-onboarding'],
20
20
  tags: ['learning', 'onboarding', 'studio', 'journey'],
21
21
  stability: 'experimental',
22
- version: 1,
22
+ version: '1.0.0',
23
23
  },
24
24
 
25
25
  // All contract operations included in this feature
26
26
  operations: [
27
- { key: 'learningJourney.studioOnboarding.recordEvent', version: 1 },
28
- { key: 'learningJourney.studioOnboarding.getTrack', version: 1 },
27
+ { key: 'learningJourney.studioOnboarding.recordEvent', version: '1.0.0' },
28
+ { key: 'learningJourney.studioOnboarding.getTrack', version: '1.0.0' },
29
29
  ],
30
30
 
31
31
  // Events emitted by this feature
@@ -33,15 +33,18 @@ export const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec = {
33
33
 
34
34
  // Presentations associated with this feature
35
35
  presentations: [
36
- { key: 'learning.journey.studio.track', version: 1 },
37
- { key: 'learning.journey.studio.widget', version: 1 },
36
+ { key: 'learning.journey.studio.track', version: '1.0.0' },
37
+ { key: 'learning.journey.studio.widget', version: '1.0.0' },
38
38
  ],
39
39
 
40
40
  // Link operations to their primary presentations
41
41
  opToPresentation: [
42
42
  {
43
- op: { key: 'learningJourney.studioOnboarding.getTrack', version: 1 },
44
- pres: { key: 'learning.journey.studio.track', version: 1 },
43
+ op: {
44
+ key: 'learningJourney.studioOnboarding.getTrack',
45
+ version: '1.0.0',
46
+ },
47
+ pres: { key: 'learning.journey.studio.track', version: '1.0.0' },
45
48
  },
46
49
  ],
47
50
 
@@ -49,18 +52,18 @@ export const LearningJourneyStudioOnboardingFeature: FeatureModuleSpec = {
49
52
  presentationsTargets: [
50
53
  {
51
54
  key: 'learning.journey.studio.track',
52
- version: 1,
55
+ version: '1.0.0',
53
56
  targets: ['react', 'markdown', 'application/json'],
54
57
  },
55
58
  {
56
59
  key: 'learning.journey.studio.widget',
57
- version: 1,
60
+ version: '1.0.0',
58
61
  targets: ['react'],
59
62
  },
60
63
  ],
61
64
 
62
65
  // Capability requirements
63
66
  capabilities: {
64
- requires: [{ key: 'identity', version: 1 }],
67
+ requires: [{ key: 'identity', version: '1.0.0' }],
65
68
  },
66
69
  };
@@ -77,7 +77,7 @@ const SuccessModel = defineSchemaModel({
77
77
  export const GetStudioOnboardingTrack = defineQuery({
78
78
  meta: {
79
79
  key: 'learningJourney.studioOnboarding.getTrack',
80
- version: 1,
80
+ version: '1.0.0',
81
81
  stability: 'experimental',
82
82
  owners: [...OWNERS],
83
83
  tags: ['learning', 'onboarding', 'studio'],
@@ -99,7 +99,7 @@ export const GetStudioOnboardingTrack = defineQuery({
99
99
  export const RecordStudioOnboardingEvent = defineCommand({
100
100
  meta: {
101
101
  key: 'learningJourney.studioOnboarding.recordEvent',
102
- version: 1,
102
+ version: '1.0.0',
103
103
  stability: 'experimental',
104
104
  owners: [...OWNERS],
105
105
  tags: ['learning', 'onboarding', 'studio'],
@@ -19,7 +19,7 @@ const baseMeta: Pick<
19
19
  export const StudioOnboardingTrackPresentation: PresentationSpec = {
20
20
  meta: {
21
21
  key: 'learning.journey.studio.track',
22
- version: 1,
22
+ version: '1.0.0',
23
23
  description: 'Studio onboarding track detail',
24
24
  goal: 'Visualize the onboarding track for the user.',
25
25
  context: 'Displayed in the Studio dashboard.',
@@ -37,7 +37,7 @@ export const StudioOnboardingTrackPresentation: PresentationSpec = {
37
37
  export const StudioOnboardingWidgetPresentation: PresentationSpec = {
38
38
  meta: {
39
39
  key: 'learning.journey.studio.widget',
40
- version: 1,
40
+ version: '1.0.0',
41
41
  description: 'Compact widget for Studio onboarding progress',
42
42
  goal: 'Show quick progress summary.',
43
43
  context: 'Displayed in the Studio sidebar or header.',