@contractspec/example.learning-journey-ambient-coach 3.7.17 → 3.7.19

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.
@@ -2,33 +2,33 @@ $ contractspec-bun-build prebuild
2
2
  $ bun run build:bundle && bun run build:types
3
3
  $ contractspec-bun-build transpile
4
4
  [contractspec-bun-build] transpile target=bun root=src entries=6 noBundle=false
5
- Bundled 6 modules in 32ms
5
+ Bundled 6 modules in 17ms
6
6
 
7
- docs/ambient-coach.docblock.js 1.29 KB (entry point)
8
- ./index.js 4.47 KB (entry point)
9
- docs/index.js 1.29 KB (entry point)
10
- ./example.js 0.96 KB (entry point)
11
- ./learning-journey-ambient-coach.feature.js 0.64 KB (entry point)
12
- ./track.js 1.63 KB (entry point)
7
+ docs/ambient-coach.docblock.js 1.13 KB (entry point)
8
+ ./index.js 3.53 KB (entry point)
9
+ docs/index.js 1.13 KB (entry point)
10
+ ./example.js 0.72 KB (entry point)
11
+ ./learning-journey-ambient-coach.feature.js 479 bytes (entry point)
12
+ ./track.js 1.25 KB (entry point)
13
13
 
14
14
  [contractspec-bun-build] transpile target=node root=src entries=6 noBundle=false
15
- Bundled 6 modules in 21ms
15
+ Bundled 6 modules in 48ms
16
16
 
17
- docs/ambient-coach.docblock.js 1.28 KB (entry point)
18
- ./index.js 4.45 KB (entry point)
19
- docs/index.js 1.28 KB (entry point)
20
- ./example.js 0.95 KB (entry point)
21
- ./learning-journey-ambient-coach.feature.js 0.63 KB (entry point)
22
- ./track.js 1.61 KB (entry point)
17
+ docs/ambient-coach.docblock.js 1.12 KB (entry point)
18
+ ./index.js 3.51 KB (entry point)
19
+ docs/index.js 1.12 KB (entry point)
20
+ ./example.js 0.71 KB (entry point)
21
+ ./learning-journey-ambient-coach.feature.js 471 bytes (entry point)
22
+ ./track.js 1.23 KB (entry point)
23
23
 
24
24
  [contractspec-bun-build] transpile target=browser root=src entries=6 noBundle=false
25
- Bundled 6 modules in 54ms
25
+ Bundled 6 modules in 32ms
26
26
 
27
- docs/ambient-coach.docblock.js 1.28 KB (entry point)
28
- ./index.js 4.45 KB (entry point)
29
- docs/index.js 1.28 KB (entry point)
30
- ./example.js 0.95 KB (entry point)
31
- ./learning-journey-ambient-coach.feature.js 0.63 KB (entry point)
32
- ./track.js 1.61 KB (entry point)
27
+ docs/ambient-coach.docblock.js 1.12 KB (entry point)
28
+ ./index.js 3.51 KB (entry point)
29
+ docs/index.js 1.12 KB (entry point)
30
+ ./example.js 0.71 KB (entry point)
31
+ ./learning-journey-ambient-coach.feature.js 471 bytes (entry point)
32
+ ./track.js 1.23 KB (entry point)
33
33
 
34
34
  $ contractspec-bun-build types
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @contractspec/example.learning-journey-ambient-coach
2
2
 
3
+ ## 3.7.19
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies because of Expand ContractSpec authoring with preset-driven workspace setup, shell completion, packaged workspace schema artifacts, and richer form and UI surfaces across the CLI, editors, and shared runtimes.
8
+ - @contractspec/lib.contracts-spec@5.3.0
9
+ - @contractspec/module.learning-journey@3.7.18
10
+
11
+ ## 3.7.18
12
+
13
+ ### Patch Changes
14
+
15
+ - chore: auto-bump internal dependents
16
+ - Updated dependencies because of chore: auto-bump internal dependents
17
+ - Updated dependencies because of Introduce the Builder v3 control plane as a governed authoring layer over external execution providers.
18
+ - Updated dependencies because of Implement ContractSpec Connect as a first-class spec, runtime, and CLI workflow.
19
+ - @contractspec/module.learning-journey@3.7.17
20
+ - @contractspec/lib.contracts-spec@5.2.0
21
+
3
22
  ## 3.7.17
4
23
 
5
24
  ### Patch Changes
@@ -1,29 +1 @@
1
- // src/docs/ambient-coach.docblock.ts
2
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
3
- var ambientCoachDocBlocks = [
4
- {
5
- id: "docs.learning-journey.ambient-coach",
6
- title: "Learning Journey — Ambient Coach",
7
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
8
- kind: "reference",
9
- visibility: "public",
10
- route: "/docs/learning-journey/ambient-coach",
11
- tags: ["learning", "coach", "tips"],
12
- body: `## Tracks
13
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
14
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
15
-
16
- ## Steps & Events
17
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
18
- - Show tip (optional UI emission): \`coach.tip.shown\`
19
- - Complete when acknowledged or follow-up action taken:
20
- - \`coach.tip.acknowledged\`
21
- - \`coach.tip.follow_up_action_taken\`
22
-
23
- ## Usage
24
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
25
- - Registry progression is event-driven; payload filters can scope tips per category.
26
- - XP/engagement can be awarded on completion of each tip step.`
27
- }
28
- ];
29
- registerDocBlocks(ambientCoachDocBlocks);
1
+ import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var j=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey — Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];f(j);
@@ -1,29 +1 @@
1
- // src/docs/ambient-coach.docblock.ts
2
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
3
- var ambientCoachDocBlocks = [
4
- {
5
- id: "docs.learning-journey.ambient-coach",
6
- title: "Learning Journey — Ambient Coach",
7
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
8
- kind: "reference",
9
- visibility: "public",
10
- route: "/docs/learning-journey/ambient-coach",
11
- tags: ["learning", "coach", "tips"],
12
- body: `## Tracks
13
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
14
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
15
-
16
- ## Steps & Events
17
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
18
- - Show tip (optional UI emission): \`coach.tip.shown\`
19
- - Complete when acknowledged or follow-up action taken:
20
- - \`coach.tip.acknowledged\`
21
- - \`coach.tip.follow_up_action_taken\`
22
-
23
- ## Usage
24
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
25
- - Registry progression is event-driven; payload filters can scope tips per category.
26
- - XP/engagement can be awarded on completion of each tip step.`
27
- }
28
- ];
29
- registerDocBlocks(ambientCoachDocBlocks);
1
+ import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var j=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey — Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];f(j);
@@ -1,32 +1 @@
1
- // src/example.ts
2
- import { defineExample } from "@contractspec/lib.contracts-spec";
3
- var example = defineExample({
4
- meta: {
5
- key: "learning-journey-ambient-coach",
6
- version: "1.0.0",
7
- title: "Learning Journey — Ambient Coach",
8
- description: "Ambient coaching pattern: lightweight nudges driven by context and recent progress.",
9
- kind: "template",
10
- visibility: "public",
11
- stability: "experimental",
12
- owners: ["@platform.core"],
13
- tags: ["learning", "coaching", "ambient"]
14
- },
15
- docs: {
16
- rootDocId: "docs.learning-journey.ambient-coach"
17
- },
18
- entrypoints: {
19
- packageName: "@contractspec/example.learning-journey-ambient-coach",
20
- docs: "./docs"
21
- },
22
- surfaces: {
23
- templates: true,
24
- sandbox: { enabled: true, modes: ["playground", "markdown"] },
25
- studio: { enabled: true, installable: true },
26
- mcp: { enabled: true }
27
- }
28
- });
29
- var example_default = example;
30
- export {
31
- example_default as default
32
- };
1
+ import{defineExample as g}from"@contractspec/lib.contracts-spec";var h=g({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey — Ambient Coach",description:"Ambient coaching pattern: lightweight nudges driven by context and recent progress.",kind:"template",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["learning","coaching","ambient"]},docs:{rootDocId:"docs.learning-journey.ambient-coach"},entrypoints:{packageName:"@contractspec/example.learning-journey-ambient-coach",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","markdown"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),q=h;export{q as default};
@@ -1,123 +1 @@
1
- // src/docs/ambient-coach.docblock.ts
2
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
3
- var ambientCoachDocBlocks = [
4
- {
5
- id: "docs.learning-journey.ambient-coach",
6
- title: "Learning Journey — Ambient Coach",
7
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
8
- kind: "reference",
9
- visibility: "public",
10
- route: "/docs/learning-journey/ambient-coach",
11
- tags: ["learning", "coach", "tips"],
12
- body: `## Tracks
13
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
14
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
15
-
16
- ## Steps & Events
17
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
18
- - Show tip (optional UI emission): \`coach.tip.shown\`
19
- - Complete when acknowledged or follow-up action taken:
20
- - \`coach.tip.acknowledged\`
21
- - \`coach.tip.follow_up_action_taken\`
22
-
23
- ## Usage
24
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
25
- - Registry progression is event-driven; payload filters can scope tips per category.
26
- - XP/engagement can be awarded on completion of each tip step.`
27
- }
28
- ];
29
- registerDocBlocks(ambientCoachDocBlocks);
30
- // src/example.ts
31
- import { defineExample } from "@contractspec/lib.contracts-spec";
32
- var example = defineExample({
33
- meta: {
34
- key: "learning-journey-ambient-coach",
35
- version: "1.0.0",
36
- title: "Learning Journey — Ambient Coach",
37
- description: "Ambient coaching pattern: lightweight nudges driven by context and recent progress.",
38
- kind: "template",
39
- visibility: "public",
40
- stability: "experimental",
41
- owners: ["@platform.core"],
42
- tags: ["learning", "coaching", "ambient"]
43
- },
44
- docs: {
45
- rootDocId: "docs.learning-journey.ambient-coach"
46
- },
47
- entrypoints: {
48
- packageName: "@contractspec/example.learning-journey-ambient-coach",
49
- docs: "./docs"
50
- },
51
- surfaces: {
52
- templates: true,
53
- sandbox: { enabled: true, modes: ["playground", "markdown"] },
54
- studio: { enabled: true, installable: true },
55
- mcp: { enabled: true }
56
- }
57
- });
58
- var example_default = example;
59
-
60
- // src/learning-journey-ambient-coach.feature.ts
61
- import { defineFeature } from "@contractspec/lib.contracts-spec";
62
- var LearningJourneyAmbientCoachFeature = defineFeature({
63
- meta: {
64
- key: "learning-journey-ambient-coach",
65
- version: "1.0.0",
66
- title: "Learning Journey: Ambient Coach",
67
- description: "Contextual coaching track with ambient tips and follow-up actions",
68
- domain: "learning-journey",
69
- owners: ["@examples"],
70
- tags: ["learning", "coaching", "ambient", "journey"],
71
- stability: "experimental"
72
- },
73
- docs: ["docs.learning-journey.ambient-coach"]
74
- });
75
-
76
- // src/track.ts
77
- var makeTipStep = (id, tipId, description) => ({
78
- id,
79
- title: `Resolve tip: ${tipId}`,
80
- description,
81
- completion: {
82
- kind: "event",
83
- eventName: "coach.tip.follow_up_action_taken",
84
- payloadFilter: { tipId }
85
- },
86
- xpReward: 20,
87
- metadata: { tipId }
88
- });
89
- var moneyAmbientCoachTrack = {
90
- id: "money_ambient_coach",
91
- name: "Ambient Coach — Money",
92
- description: "Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",
93
- targetUserSegment: "money_user",
94
- totalXp: 60,
95
- steps: [
96
- makeTipStep("cash_buffer_too_high", "cash_buffer_too_high", "Suggest sweeping excess cash into goals."),
97
- makeTipStep("no_savings_goal", "no_savings_goal", "Prompt setting a first savings goal."),
98
- makeTipStep("irregular_savings", "irregular_savings", "Recommend recurring saves after irregular deposits.")
99
- ]
100
- };
101
- var colivingAmbientCoachTrack = {
102
- id: "coliving_ambient_coach",
103
- name: "Ambient Coach — Coliving",
104
- description: "Contextual tips for healthy coliving habits.",
105
- targetUserSegment: "coliving",
106
- totalXp: 60,
107
- steps: [
108
- makeTipStep("noise_late_evening", "noise_late_evening", "Suggest updating quiet hours to reduce evening noise."),
109
- makeTipStep("guest_frequency_high", "guest_frequency_high", "Set guest frequency expectations for the house."),
110
- makeTipStep("shared_space_conflicts", "shared_space_conflicts", "Offer a shared-space checklist to reduce conflicts.")
111
- ]
112
- };
113
- var ambientCoachTracks = [
114
- moneyAmbientCoachTrack,
115
- colivingAmbientCoachTrack
116
- ];
117
- export {
118
- moneyAmbientCoachTrack,
119
- example_default as example,
120
- colivingAmbientCoachTrack,
121
- ambientCoachTracks,
122
- LearningJourneyAmbientCoachFeature
123
- };
1
+ import{registerDocBlocks as a}from"@contractspec/lib.contracts-spec/docs";var o=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey — Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];a(o);import{defineExample as r}from"@contractspec/lib.contracts-spec";var s=r({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey — Ambient Coach",description:"Ambient coaching pattern: lightweight nudges driven by context and recent progress.",kind:"template",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["learning","coaching","ambient"]},docs:{rootDocId:"docs.learning-journey.ambient-coach"},entrypoints:{packageName:"@contractspec/example.learning-journey-ambient-coach",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","markdown"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),g=s;import{defineFeature as c}from"@contractspec/lib.contracts-spec";var v=c({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey: Ambient Coach",description:"Contextual coaching track with ambient tips and follow-up actions",domain:"learning-journey",owners:["@examples"],tags:["learning","coaching","ambient","journey"],stability:"experimental"},docs:["docs.learning-journey.ambient-coach"]});var e=(t,n,i)=>({id:t,title:`Resolve tip: ${n}`,description:i,completion:{kind:"event",eventName:"coach.tip.follow_up_action_taken",payloadFilter:{tipId:n}},xpReward:20,metadata:{tipId:n}}),_={id:"money_ambient_coach",name:"Ambient Coach — Money",description:"Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",targetUserSegment:"money_user",totalXp:60,steps:[e("cash_buffer_too_high","cash_buffer_too_high","Suggest sweeping excess cash into goals."),e("no_savings_goal","no_savings_goal","Prompt setting a first savings goal."),e("irregular_savings","irregular_savings","Recommend recurring saves after irregular deposits.")]},h={id:"coliving_ambient_coach",name:"Ambient Coach — Coliving",description:"Contextual tips for healthy coliving habits.",targetUserSegment:"coliving",totalXp:60,steps:[e("noise_late_evening","noise_late_evening","Suggest updating quiet hours to reduce evening noise."),e("guest_frequency_high","guest_frequency_high","Set guest frequency expectations for the house."),e("shared_space_conflicts","shared_space_conflicts","Offer a shared-space checklist to reduce conflicts.")]},S=[_,h];export{_ as moneyAmbientCoachTrack,g as example,h as colivingAmbientCoachTrack,S as ambientCoachTracks,v as LearningJourneyAmbientCoachFeature};
@@ -1,18 +1 @@
1
- // src/learning-journey-ambient-coach.feature.ts
2
- import { defineFeature } from "@contractspec/lib.contracts-spec";
3
- var LearningJourneyAmbientCoachFeature = defineFeature({
4
- meta: {
5
- key: "learning-journey-ambient-coach",
6
- version: "1.0.0",
7
- title: "Learning Journey: Ambient Coach",
8
- description: "Contextual coaching track with ambient tips and follow-up actions",
9
- domain: "learning-journey",
10
- owners: ["@examples"],
11
- tags: ["learning", "coaching", "ambient", "journey"],
12
- stability: "experimental"
13
- },
14
- docs: ["docs.learning-journey.ambient-coach"]
15
- });
16
- export {
17
- LearningJourneyAmbientCoachFeature
18
- };
1
+ import{defineFeature as g}from"@contractspec/lib.contracts-spec";var j=g({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey: Ambient Coach",description:"Contextual coaching track with ambient tips and follow-up actions",domain:"learning-journey",owners:["@examples"],tags:["learning","coaching","ambient","journey"],stability:"experimental"},docs:["docs.learning-journey.ambient-coach"]});export{j as LearningJourneyAmbientCoachFeature};
@@ -1,46 +1 @@
1
- // src/track.ts
2
- var makeTipStep = (id, tipId, description) => ({
3
- id,
4
- title: `Resolve tip: ${tipId}`,
5
- description,
6
- completion: {
7
- kind: "event",
8
- eventName: "coach.tip.follow_up_action_taken",
9
- payloadFilter: { tipId }
10
- },
11
- xpReward: 20,
12
- metadata: { tipId }
13
- });
14
- var moneyAmbientCoachTrack = {
15
- id: "money_ambient_coach",
16
- name: "Ambient Coach — Money",
17
- description: "Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",
18
- targetUserSegment: "money_user",
19
- totalXp: 60,
20
- steps: [
21
- makeTipStep("cash_buffer_too_high", "cash_buffer_too_high", "Suggest sweeping excess cash into goals."),
22
- makeTipStep("no_savings_goal", "no_savings_goal", "Prompt setting a first savings goal."),
23
- makeTipStep("irregular_savings", "irregular_savings", "Recommend recurring saves after irregular deposits.")
24
- ]
25
- };
26
- var colivingAmbientCoachTrack = {
27
- id: "coliving_ambient_coach",
28
- name: "Ambient Coach — Coliving",
29
- description: "Contextual tips for healthy coliving habits.",
30
- targetUserSegment: "coliving",
31
- totalXp: 60,
32
- steps: [
33
- makeTipStep("noise_late_evening", "noise_late_evening", "Suggest updating quiet hours to reduce evening noise."),
34
- makeTipStep("guest_frequency_high", "guest_frequency_high", "Set guest frequency expectations for the house."),
35
- makeTipStep("shared_space_conflicts", "shared_space_conflicts", "Offer a shared-space checklist to reduce conflicts.")
36
- ]
37
- };
38
- var ambientCoachTracks = [
39
- moneyAmbientCoachTrack,
40
- colivingAmbientCoachTrack
41
- ];
42
- export {
43
- moneyAmbientCoachTrack,
44
- colivingAmbientCoachTrack,
45
- ambientCoachTracks
46
- };
1
+ var e=(t,n,a)=>({id:t,title:`Resolve tip: ${n}`,description:a,completion:{kind:"event",eventName:"coach.tip.follow_up_action_taken",payloadFilter:{tipId:n}},xpReward:20,metadata:{tipId:n}}),o={id:"money_ambient_coach",name:"Ambient Coach — Money",description:"Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",targetUserSegment:"money_user",totalXp:60,steps:[e("cash_buffer_too_high","cash_buffer_too_high","Suggest sweeping excess cash into goals."),e("no_savings_goal","no_savings_goal","Prompt setting a first savings goal."),e("irregular_savings","irregular_savings","Recommend recurring saves after irregular deposits.")]},i={id:"coliving_ambient_coach",name:"Ambient Coach — Coliving",description:"Contextual tips for healthy coliving habits.",targetUserSegment:"coliving",totalXp:60,steps:[e("noise_late_evening","noise_late_evening","Suggest updating quiet hours to reduce evening noise."),e("guest_frequency_high","guest_frequency_high","Set guest frequency expectations for the house."),e("shared_space_conflicts","shared_space_conflicts","Offer a shared-space checklist to reduce conflicts.")]},r=[o,i];export{o as moneyAmbientCoachTrack,i as colivingAmbientCoachTrack,r as ambientCoachTracks};
@@ -1,30 +1,2 @@
1
1
  // @bun
2
- // src/docs/ambient-coach.docblock.ts
3
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
4
- var ambientCoachDocBlocks = [
5
- {
6
- id: "docs.learning-journey.ambient-coach",
7
- title: "Learning Journey \u2014 Ambient Coach",
8
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
9
- kind: "reference",
10
- visibility: "public",
11
- route: "/docs/learning-journey/ambient-coach",
12
- tags: ["learning", "coach", "tips"],
13
- body: `## Tracks
14
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
15
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
16
-
17
- ## Steps & Events
18
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
19
- - Show tip (optional UI emission): \`coach.tip.shown\`
20
- - Complete when acknowledged or follow-up action taken:
21
- - \`coach.tip.acknowledged\`
22
- - \`coach.tip.follow_up_action_taken\`
23
-
24
- ## Usage
25
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
26
- - Registry progression is event-driven; payload filters can scope tips per category.
27
- - XP/engagement can be awarded on completion of each tip step.`
28
- }
29
- ];
30
- registerDocBlocks(ambientCoachDocBlocks);
2
+ import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var j=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey \u2014 Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];f(j);
@@ -1,30 +1,2 @@
1
1
  // @bun
2
- // src/docs/ambient-coach.docblock.ts
3
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
4
- var ambientCoachDocBlocks = [
5
- {
6
- id: "docs.learning-journey.ambient-coach",
7
- title: "Learning Journey \u2014 Ambient Coach",
8
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
9
- kind: "reference",
10
- visibility: "public",
11
- route: "/docs/learning-journey/ambient-coach",
12
- tags: ["learning", "coach", "tips"],
13
- body: `## Tracks
14
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
15
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
16
-
17
- ## Steps & Events
18
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
19
- - Show tip (optional UI emission): \`coach.tip.shown\`
20
- - Complete when acknowledged or follow-up action taken:
21
- - \`coach.tip.acknowledged\`
22
- - \`coach.tip.follow_up_action_taken\`
23
-
24
- ## Usage
25
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
26
- - Registry progression is event-driven; payload filters can scope tips per category.
27
- - XP/engagement can be awarded on completion of each tip step.`
28
- }
29
- ];
30
- registerDocBlocks(ambientCoachDocBlocks);
2
+ import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var j=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey \u2014 Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];f(j);
package/dist/example.js CHANGED
@@ -1,33 +1,2 @@
1
1
  // @bun
2
- // src/example.ts
3
- import { defineExample } from "@contractspec/lib.contracts-spec";
4
- var example = defineExample({
5
- meta: {
6
- key: "learning-journey-ambient-coach",
7
- version: "1.0.0",
8
- title: "Learning Journey \u2014 Ambient Coach",
9
- description: "Ambient coaching pattern: lightweight nudges driven by context and recent progress.",
10
- kind: "template",
11
- visibility: "public",
12
- stability: "experimental",
13
- owners: ["@platform.core"],
14
- tags: ["learning", "coaching", "ambient"]
15
- },
16
- docs: {
17
- rootDocId: "docs.learning-journey.ambient-coach"
18
- },
19
- entrypoints: {
20
- packageName: "@contractspec/example.learning-journey-ambient-coach",
21
- docs: "./docs"
22
- },
23
- surfaces: {
24
- templates: true,
25
- sandbox: { enabled: true, modes: ["playground", "markdown"] },
26
- studio: { enabled: true, installable: true },
27
- mcp: { enabled: true }
28
- }
29
- });
30
- var example_default = example;
31
- export {
32
- example_default as default
33
- };
2
+ import{defineExample as g}from"@contractspec/lib.contracts-spec";var h=g({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey \u2014 Ambient Coach",description:"Ambient coaching pattern: lightweight nudges driven by context and recent progress.",kind:"template",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["learning","coaching","ambient"]},docs:{rootDocId:"docs.learning-journey.ambient-coach"},entrypoints:{packageName:"@contractspec/example.learning-journey-ambient-coach",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","markdown"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),q=h;export{q as default};
package/dist/index.js CHANGED
@@ -1,124 +1,2 @@
1
1
  // @bun
2
- // src/docs/ambient-coach.docblock.ts
3
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
4
- var ambientCoachDocBlocks = [
5
- {
6
- id: "docs.learning-journey.ambient-coach",
7
- title: "Learning Journey \u2014 Ambient Coach",
8
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
9
- kind: "reference",
10
- visibility: "public",
11
- route: "/docs/learning-journey/ambient-coach",
12
- tags: ["learning", "coach", "tips"],
13
- body: `## Tracks
14
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
15
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
16
-
17
- ## Steps & Events
18
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
19
- - Show tip (optional UI emission): \`coach.tip.shown\`
20
- - Complete when acknowledged or follow-up action taken:
21
- - \`coach.tip.acknowledged\`
22
- - \`coach.tip.follow_up_action_taken\`
23
-
24
- ## Usage
25
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
26
- - Registry progression is event-driven; payload filters can scope tips per category.
27
- - XP/engagement can be awarded on completion of each tip step.`
28
- }
29
- ];
30
- registerDocBlocks(ambientCoachDocBlocks);
31
- // src/example.ts
32
- import { defineExample } from "@contractspec/lib.contracts-spec";
33
- var example = defineExample({
34
- meta: {
35
- key: "learning-journey-ambient-coach",
36
- version: "1.0.0",
37
- title: "Learning Journey \u2014 Ambient Coach",
38
- description: "Ambient coaching pattern: lightweight nudges driven by context and recent progress.",
39
- kind: "template",
40
- visibility: "public",
41
- stability: "experimental",
42
- owners: ["@platform.core"],
43
- tags: ["learning", "coaching", "ambient"]
44
- },
45
- docs: {
46
- rootDocId: "docs.learning-journey.ambient-coach"
47
- },
48
- entrypoints: {
49
- packageName: "@contractspec/example.learning-journey-ambient-coach",
50
- docs: "./docs"
51
- },
52
- surfaces: {
53
- templates: true,
54
- sandbox: { enabled: true, modes: ["playground", "markdown"] },
55
- studio: { enabled: true, installable: true },
56
- mcp: { enabled: true }
57
- }
58
- });
59
- var example_default = example;
60
-
61
- // src/learning-journey-ambient-coach.feature.ts
62
- import { defineFeature } from "@contractspec/lib.contracts-spec";
63
- var LearningJourneyAmbientCoachFeature = defineFeature({
64
- meta: {
65
- key: "learning-journey-ambient-coach",
66
- version: "1.0.0",
67
- title: "Learning Journey: Ambient Coach",
68
- description: "Contextual coaching track with ambient tips and follow-up actions",
69
- domain: "learning-journey",
70
- owners: ["@examples"],
71
- tags: ["learning", "coaching", "ambient", "journey"],
72
- stability: "experimental"
73
- },
74
- docs: ["docs.learning-journey.ambient-coach"]
75
- });
76
-
77
- // src/track.ts
78
- var makeTipStep = (id, tipId, description) => ({
79
- id,
80
- title: `Resolve tip: ${tipId}`,
81
- description,
82
- completion: {
83
- kind: "event",
84
- eventName: "coach.tip.follow_up_action_taken",
85
- payloadFilter: { tipId }
86
- },
87
- xpReward: 20,
88
- metadata: { tipId }
89
- });
90
- var moneyAmbientCoachTrack = {
91
- id: "money_ambient_coach",
92
- name: "Ambient Coach \u2014 Money",
93
- description: "Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",
94
- targetUserSegment: "money_user",
95
- totalXp: 60,
96
- steps: [
97
- makeTipStep("cash_buffer_too_high", "cash_buffer_too_high", "Suggest sweeping excess cash into goals."),
98
- makeTipStep("no_savings_goal", "no_savings_goal", "Prompt setting a first savings goal."),
99
- makeTipStep("irregular_savings", "irregular_savings", "Recommend recurring saves after irregular deposits.")
100
- ]
101
- };
102
- var colivingAmbientCoachTrack = {
103
- id: "coliving_ambient_coach",
104
- name: "Ambient Coach \u2014 Coliving",
105
- description: "Contextual tips for healthy coliving habits.",
106
- targetUserSegment: "coliving",
107
- totalXp: 60,
108
- steps: [
109
- makeTipStep("noise_late_evening", "noise_late_evening", "Suggest updating quiet hours to reduce evening noise."),
110
- makeTipStep("guest_frequency_high", "guest_frequency_high", "Set guest frequency expectations for the house."),
111
- makeTipStep("shared_space_conflicts", "shared_space_conflicts", "Offer a shared-space checklist to reduce conflicts.")
112
- ]
113
- };
114
- var ambientCoachTracks = [
115
- moneyAmbientCoachTrack,
116
- colivingAmbientCoachTrack
117
- ];
118
- export {
119
- moneyAmbientCoachTrack,
120
- example_default as example,
121
- colivingAmbientCoachTrack,
122
- ambientCoachTracks,
123
- LearningJourneyAmbientCoachFeature
124
- };
2
+ import{registerDocBlocks as a}from"@contractspec/lib.contracts-spec/docs";var o=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey \u2014 Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];a(o);import{defineExample as r}from"@contractspec/lib.contracts-spec";var s=r({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey \u2014 Ambient Coach",description:"Ambient coaching pattern: lightweight nudges driven by context and recent progress.",kind:"template",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["learning","coaching","ambient"]},docs:{rootDocId:"docs.learning-journey.ambient-coach"},entrypoints:{packageName:"@contractspec/example.learning-journey-ambient-coach",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","markdown"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),g=s;import{defineFeature as c}from"@contractspec/lib.contracts-spec";var v=c({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey: Ambient Coach",description:"Contextual coaching track with ambient tips and follow-up actions",domain:"learning-journey",owners:["@examples"],tags:["learning","coaching","ambient","journey"],stability:"experimental"},docs:["docs.learning-journey.ambient-coach"]});var e=(t,n,i)=>({id:t,title:`Resolve tip: ${n}`,description:i,completion:{kind:"event",eventName:"coach.tip.follow_up_action_taken",payloadFilter:{tipId:n}},xpReward:20,metadata:{tipId:n}}),_={id:"money_ambient_coach",name:"Ambient Coach \u2014 Money",description:"Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",targetUserSegment:"money_user",totalXp:60,steps:[e("cash_buffer_too_high","cash_buffer_too_high","Suggest sweeping excess cash into goals."),e("no_savings_goal","no_savings_goal","Prompt setting a first savings goal."),e("irregular_savings","irregular_savings","Recommend recurring saves after irregular deposits.")]},h={id:"coliving_ambient_coach",name:"Ambient Coach \u2014 Coliving",description:"Contextual tips for healthy coliving habits.",targetUserSegment:"coliving",totalXp:60,steps:[e("noise_late_evening","noise_late_evening","Suggest updating quiet hours to reduce evening noise."),e("guest_frequency_high","guest_frequency_high","Set guest frequency expectations for the house."),e("shared_space_conflicts","shared_space_conflicts","Offer a shared-space checklist to reduce conflicts.")]},S=[_,h];export{_ as moneyAmbientCoachTrack,g as example,h as colivingAmbientCoachTrack,S as ambientCoachTracks,v as LearningJourneyAmbientCoachFeature};
@@ -1,19 +1,2 @@
1
1
  // @bun
2
- // src/learning-journey-ambient-coach.feature.ts
3
- import { defineFeature } from "@contractspec/lib.contracts-spec";
4
- var LearningJourneyAmbientCoachFeature = defineFeature({
5
- meta: {
6
- key: "learning-journey-ambient-coach",
7
- version: "1.0.0",
8
- title: "Learning Journey: Ambient Coach",
9
- description: "Contextual coaching track with ambient tips and follow-up actions",
10
- domain: "learning-journey",
11
- owners: ["@examples"],
12
- tags: ["learning", "coaching", "ambient", "journey"],
13
- stability: "experimental"
14
- },
15
- docs: ["docs.learning-journey.ambient-coach"]
16
- });
17
- export {
18
- LearningJourneyAmbientCoachFeature
19
- };
2
+ import{defineFeature as g}from"@contractspec/lib.contracts-spec";var j=g({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey: Ambient Coach",description:"Contextual coaching track with ambient tips and follow-up actions",domain:"learning-journey",owners:["@examples"],tags:["learning","coaching","ambient","journey"],stability:"experimental"},docs:["docs.learning-journey.ambient-coach"]});export{j as LearningJourneyAmbientCoachFeature};
@@ -1,29 +1 @@
1
- // src/docs/ambient-coach.docblock.ts
2
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
3
- var ambientCoachDocBlocks = [
4
- {
5
- id: "docs.learning-journey.ambient-coach",
6
- title: "Learning Journey — Ambient Coach",
7
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
8
- kind: "reference",
9
- visibility: "public",
10
- route: "/docs/learning-journey/ambient-coach",
11
- tags: ["learning", "coach", "tips"],
12
- body: `## Tracks
13
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
14
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
15
-
16
- ## Steps & Events
17
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
18
- - Show tip (optional UI emission): \`coach.tip.shown\`
19
- - Complete when acknowledged or follow-up action taken:
20
- - \`coach.tip.acknowledged\`
21
- - \`coach.tip.follow_up_action_taken\`
22
-
23
- ## Usage
24
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
25
- - Registry progression is event-driven; payload filters can scope tips per category.
26
- - XP/engagement can be awarded on completion of each tip step.`
27
- }
28
- ];
29
- registerDocBlocks(ambientCoachDocBlocks);
1
+ import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var j=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey — Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];f(j);
@@ -1,29 +1 @@
1
- // src/docs/ambient-coach.docblock.ts
2
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
3
- var ambientCoachDocBlocks = [
4
- {
5
- id: "docs.learning-journey.ambient-coach",
6
- title: "Learning Journey — Ambient Coach",
7
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
8
- kind: "reference",
9
- visibility: "public",
10
- route: "/docs/learning-journey/ambient-coach",
11
- tags: ["learning", "coach", "tips"],
12
- body: `## Tracks
13
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
14
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
15
-
16
- ## Steps & Events
17
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
18
- - Show tip (optional UI emission): \`coach.tip.shown\`
19
- - Complete when acknowledged or follow-up action taken:
20
- - \`coach.tip.acknowledged\`
21
- - \`coach.tip.follow_up_action_taken\`
22
-
23
- ## Usage
24
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
25
- - Registry progression is event-driven; payload filters can scope tips per category.
26
- - XP/engagement can be awarded on completion of each tip step.`
27
- }
28
- ];
29
- registerDocBlocks(ambientCoachDocBlocks);
1
+ import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var j=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey — Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];f(j);
@@ -1,32 +1 @@
1
- // src/example.ts
2
- import { defineExample } from "@contractspec/lib.contracts-spec";
3
- var example = defineExample({
4
- meta: {
5
- key: "learning-journey-ambient-coach",
6
- version: "1.0.0",
7
- title: "Learning Journey — Ambient Coach",
8
- description: "Ambient coaching pattern: lightweight nudges driven by context and recent progress.",
9
- kind: "template",
10
- visibility: "public",
11
- stability: "experimental",
12
- owners: ["@platform.core"],
13
- tags: ["learning", "coaching", "ambient"]
14
- },
15
- docs: {
16
- rootDocId: "docs.learning-journey.ambient-coach"
17
- },
18
- entrypoints: {
19
- packageName: "@contractspec/example.learning-journey-ambient-coach",
20
- docs: "./docs"
21
- },
22
- surfaces: {
23
- templates: true,
24
- sandbox: { enabled: true, modes: ["playground", "markdown"] },
25
- studio: { enabled: true, installable: true },
26
- mcp: { enabled: true }
27
- }
28
- });
29
- var example_default = example;
30
- export {
31
- example_default as default
32
- };
1
+ import{defineExample as g}from"@contractspec/lib.contracts-spec";var h=g({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey — Ambient Coach",description:"Ambient coaching pattern: lightweight nudges driven by context and recent progress.",kind:"template",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["learning","coaching","ambient"]},docs:{rootDocId:"docs.learning-journey.ambient-coach"},entrypoints:{packageName:"@contractspec/example.learning-journey-ambient-coach",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","markdown"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),q=h;export{q as default};
@@ -1,123 +1 @@
1
- // src/docs/ambient-coach.docblock.ts
2
- import { registerDocBlocks } from "@contractspec/lib.contracts-spec/docs";
3
- var ambientCoachDocBlocks = [
4
- {
5
- id: "docs.learning-journey.ambient-coach",
6
- title: "Learning Journey — Ambient Coach",
7
- summary: "Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",
8
- kind: "reference",
9
- visibility: "public",
10
- route: "/docs/learning-journey/ambient-coach",
11
- tags: ["learning", "coach", "tips"],
12
- body: `## Tracks
13
- - \`money_ambient_coach\`: cash buffer too high, no savings goal, irregular savings
14
- - \`coliving_ambient_coach\`: noise late evening, guest frequency high, shared space conflicts
15
-
16
- ## Steps & Events
17
- - Trigger tip: \`coach.tip.triggered\` (payload includes \`tipId\`)
18
- - Show tip (optional UI emission): \`coach.tip.shown\`
19
- - Complete when acknowledged or follow-up action taken:
20
- - \`coach.tip.acknowledged\`
21
- - \`coach.tip.follow_up_action_taken\`
22
-
23
- ## Usage
24
- - Tracks export from \`@contractspec/example.learning-journey-ambient-coach/track\`.
25
- - Registry progression is event-driven; payload filters can scope tips per category.
26
- - XP/engagement can be awarded on completion of each tip step.`
27
- }
28
- ];
29
- registerDocBlocks(ambientCoachDocBlocks);
30
- // src/example.ts
31
- import { defineExample } from "@contractspec/lib.contracts-spec";
32
- var example = defineExample({
33
- meta: {
34
- key: "learning-journey-ambient-coach",
35
- version: "1.0.0",
36
- title: "Learning Journey — Ambient Coach",
37
- description: "Ambient coaching pattern: lightweight nudges driven by context and recent progress.",
38
- kind: "template",
39
- visibility: "public",
40
- stability: "experimental",
41
- owners: ["@platform.core"],
42
- tags: ["learning", "coaching", "ambient"]
43
- },
44
- docs: {
45
- rootDocId: "docs.learning-journey.ambient-coach"
46
- },
47
- entrypoints: {
48
- packageName: "@contractspec/example.learning-journey-ambient-coach",
49
- docs: "./docs"
50
- },
51
- surfaces: {
52
- templates: true,
53
- sandbox: { enabled: true, modes: ["playground", "markdown"] },
54
- studio: { enabled: true, installable: true },
55
- mcp: { enabled: true }
56
- }
57
- });
58
- var example_default = example;
59
-
60
- // src/learning-journey-ambient-coach.feature.ts
61
- import { defineFeature } from "@contractspec/lib.contracts-spec";
62
- var LearningJourneyAmbientCoachFeature = defineFeature({
63
- meta: {
64
- key: "learning-journey-ambient-coach",
65
- version: "1.0.0",
66
- title: "Learning Journey: Ambient Coach",
67
- description: "Contextual coaching track with ambient tips and follow-up actions",
68
- domain: "learning-journey",
69
- owners: ["@examples"],
70
- tags: ["learning", "coaching", "ambient", "journey"],
71
- stability: "experimental"
72
- },
73
- docs: ["docs.learning-journey.ambient-coach"]
74
- });
75
-
76
- // src/track.ts
77
- var makeTipStep = (id, tipId, description) => ({
78
- id,
79
- title: `Resolve tip: ${tipId}`,
80
- description,
81
- completion: {
82
- kind: "event",
83
- eventName: "coach.tip.follow_up_action_taken",
84
- payloadFilter: { tipId }
85
- },
86
- xpReward: 20,
87
- metadata: { tipId }
88
- });
89
- var moneyAmbientCoachTrack = {
90
- id: "money_ambient_coach",
91
- name: "Ambient Coach — Money",
92
- description: "Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",
93
- targetUserSegment: "money_user",
94
- totalXp: 60,
95
- steps: [
96
- makeTipStep("cash_buffer_too_high", "cash_buffer_too_high", "Suggest sweeping excess cash into goals."),
97
- makeTipStep("no_savings_goal", "no_savings_goal", "Prompt setting a first savings goal."),
98
- makeTipStep("irregular_savings", "irregular_savings", "Recommend recurring saves after irregular deposits.")
99
- ]
100
- };
101
- var colivingAmbientCoachTrack = {
102
- id: "coliving_ambient_coach",
103
- name: "Ambient Coach — Coliving",
104
- description: "Contextual tips for healthy coliving habits.",
105
- targetUserSegment: "coliving",
106
- totalXp: 60,
107
- steps: [
108
- makeTipStep("noise_late_evening", "noise_late_evening", "Suggest updating quiet hours to reduce evening noise."),
109
- makeTipStep("guest_frequency_high", "guest_frequency_high", "Set guest frequency expectations for the house."),
110
- makeTipStep("shared_space_conflicts", "shared_space_conflicts", "Offer a shared-space checklist to reduce conflicts.")
111
- ]
112
- };
113
- var ambientCoachTracks = [
114
- moneyAmbientCoachTrack,
115
- colivingAmbientCoachTrack
116
- ];
117
- export {
118
- moneyAmbientCoachTrack,
119
- example_default as example,
120
- colivingAmbientCoachTrack,
121
- ambientCoachTracks,
122
- LearningJourneyAmbientCoachFeature
123
- };
1
+ import{registerDocBlocks as a}from"@contractspec/lib.contracts-spec/docs";var o=[{id:"docs.learning-journey.ambient-coach",title:"Learning Journey — Ambient Coach",summary:"Context-aware coaching pattern that triggers tips, shows them, and marks completion when users act or acknowledge.",kind:"reference",visibility:"public",route:"/docs/learning-journey/ambient-coach",tags:["learning","coach","tips"],body:"## Tracks\n- `money_ambient_coach`: cash buffer too high, no savings goal, irregular savings\n- `coliving_ambient_coach`: noise late evening, guest frequency high, shared space conflicts\n\n## Steps & Events\n- Trigger tip: `coach.tip.triggered` (payload includes `tipId`)\n- Show tip (optional UI emission): `coach.tip.shown`\n- Complete when acknowledged or follow-up action taken:\n - `coach.tip.acknowledged`\n - `coach.tip.follow_up_action_taken`\n\n## Usage\n- Tracks export from `@contractspec/example.learning-journey-ambient-coach/track`.\n- Registry progression is event-driven; payload filters can scope tips per category.\n- XP/engagement can be awarded on completion of each tip step."}];a(o);import{defineExample as r}from"@contractspec/lib.contracts-spec";var s=r({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey — Ambient Coach",description:"Ambient coaching pattern: lightweight nudges driven by context and recent progress.",kind:"template",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["learning","coaching","ambient"]},docs:{rootDocId:"docs.learning-journey.ambient-coach"},entrypoints:{packageName:"@contractspec/example.learning-journey-ambient-coach",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","markdown"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),g=s;import{defineFeature as c}from"@contractspec/lib.contracts-spec";var v=c({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey: Ambient Coach",description:"Contextual coaching track with ambient tips and follow-up actions",domain:"learning-journey",owners:["@examples"],tags:["learning","coaching","ambient","journey"],stability:"experimental"},docs:["docs.learning-journey.ambient-coach"]});var e=(t,n,i)=>({id:t,title:`Resolve tip: ${n}`,description:i,completion:{kind:"event",eventName:"coach.tip.follow_up_action_taken",payloadFilter:{tipId:n}},xpReward:20,metadata:{tipId:n}}),_={id:"money_ambient_coach",name:"Ambient Coach — Money",description:"Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",targetUserSegment:"money_user",totalXp:60,steps:[e("cash_buffer_too_high","cash_buffer_too_high","Suggest sweeping excess cash into goals."),e("no_savings_goal","no_savings_goal","Prompt setting a first savings goal."),e("irregular_savings","irregular_savings","Recommend recurring saves after irregular deposits.")]},h={id:"coliving_ambient_coach",name:"Ambient Coach — Coliving",description:"Contextual tips for healthy coliving habits.",targetUserSegment:"coliving",totalXp:60,steps:[e("noise_late_evening","noise_late_evening","Suggest updating quiet hours to reduce evening noise."),e("guest_frequency_high","guest_frequency_high","Set guest frequency expectations for the house."),e("shared_space_conflicts","shared_space_conflicts","Offer a shared-space checklist to reduce conflicts.")]},S=[_,h];export{_ as moneyAmbientCoachTrack,g as example,h as colivingAmbientCoachTrack,S as ambientCoachTracks,v as LearningJourneyAmbientCoachFeature};
@@ -1,18 +1 @@
1
- // src/learning-journey-ambient-coach.feature.ts
2
- import { defineFeature } from "@contractspec/lib.contracts-spec";
3
- var LearningJourneyAmbientCoachFeature = defineFeature({
4
- meta: {
5
- key: "learning-journey-ambient-coach",
6
- version: "1.0.0",
7
- title: "Learning Journey: Ambient Coach",
8
- description: "Contextual coaching track with ambient tips and follow-up actions",
9
- domain: "learning-journey",
10
- owners: ["@examples"],
11
- tags: ["learning", "coaching", "ambient", "journey"],
12
- stability: "experimental"
13
- },
14
- docs: ["docs.learning-journey.ambient-coach"]
15
- });
16
- export {
17
- LearningJourneyAmbientCoachFeature
18
- };
1
+ import{defineFeature as g}from"@contractspec/lib.contracts-spec";var j=g({meta:{key:"learning-journey-ambient-coach",version:"1.0.0",title:"Learning Journey: Ambient Coach",description:"Contextual coaching track with ambient tips and follow-up actions",domain:"learning-journey",owners:["@examples"],tags:["learning","coaching","ambient","journey"],stability:"experimental"},docs:["docs.learning-journey.ambient-coach"]});export{j as LearningJourneyAmbientCoachFeature};
@@ -1,46 +1 @@
1
- // src/track.ts
2
- var makeTipStep = (id, tipId, description) => ({
3
- id,
4
- title: `Resolve tip: ${tipId}`,
5
- description,
6
- completion: {
7
- kind: "event",
8
- eventName: "coach.tip.follow_up_action_taken",
9
- payloadFilter: { tipId }
10
- },
11
- xpReward: 20,
12
- metadata: { tipId }
13
- });
14
- var moneyAmbientCoachTrack = {
15
- id: "money_ambient_coach",
16
- name: "Ambient Coach — Money",
17
- description: "Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",
18
- targetUserSegment: "money_user",
19
- totalXp: 60,
20
- steps: [
21
- makeTipStep("cash_buffer_too_high", "cash_buffer_too_high", "Suggest sweeping excess cash into goals."),
22
- makeTipStep("no_savings_goal", "no_savings_goal", "Prompt setting a first savings goal."),
23
- makeTipStep("irregular_savings", "irregular_savings", "Recommend recurring saves after irregular deposits.")
24
- ]
25
- };
26
- var colivingAmbientCoachTrack = {
27
- id: "coliving_ambient_coach",
28
- name: "Ambient Coach — Coliving",
29
- description: "Contextual tips for healthy coliving habits.",
30
- targetUserSegment: "coliving",
31
- totalXp: 60,
32
- steps: [
33
- makeTipStep("noise_late_evening", "noise_late_evening", "Suggest updating quiet hours to reduce evening noise."),
34
- makeTipStep("guest_frequency_high", "guest_frequency_high", "Set guest frequency expectations for the house."),
35
- makeTipStep("shared_space_conflicts", "shared_space_conflicts", "Offer a shared-space checklist to reduce conflicts.")
36
- ]
37
- };
38
- var ambientCoachTracks = [
39
- moneyAmbientCoachTrack,
40
- colivingAmbientCoachTrack
41
- ];
42
- export {
43
- moneyAmbientCoachTrack,
44
- colivingAmbientCoachTrack,
45
- ambientCoachTracks
46
- };
1
+ var e=(t,n,a)=>({id:t,title:`Resolve tip: ${n}`,description:a,completion:{kind:"event",eventName:"coach.tip.follow_up_action_taken",payloadFilter:{tipId:n}},xpReward:20,metadata:{tipId:n}}),o={id:"money_ambient_coach",name:"Ambient Coach — Money",description:"Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",targetUserSegment:"money_user",totalXp:60,steps:[e("cash_buffer_too_high","cash_buffer_too_high","Suggest sweeping excess cash into goals."),e("no_savings_goal","no_savings_goal","Prompt setting a first savings goal."),e("irregular_savings","irregular_savings","Recommend recurring saves after irregular deposits.")]},i={id:"coliving_ambient_coach",name:"Ambient Coach — Coliving",description:"Contextual tips for healthy coliving habits.",targetUserSegment:"coliving",totalXp:60,steps:[e("noise_late_evening","noise_late_evening","Suggest updating quiet hours to reduce evening noise."),e("guest_frequency_high","guest_frequency_high","Set guest frequency expectations for the house."),e("shared_space_conflicts","shared_space_conflicts","Offer a shared-space checklist to reduce conflicts.")]},r=[o,i];export{o as moneyAmbientCoachTrack,i as colivingAmbientCoachTrack,r as ambientCoachTracks};
package/dist/track.js CHANGED
@@ -1,47 +1,2 @@
1
1
  // @bun
2
- // src/track.ts
3
- var makeTipStep = (id, tipId, description) => ({
4
- id,
5
- title: `Resolve tip: ${tipId}`,
6
- description,
7
- completion: {
8
- kind: "event",
9
- eventName: "coach.tip.follow_up_action_taken",
10
- payloadFilter: { tipId }
11
- },
12
- xpReward: 20,
13
- metadata: { tipId }
14
- });
15
- var moneyAmbientCoachTrack = {
16
- id: "money_ambient_coach",
17
- name: "Ambient Coach \u2014 Money",
18
- description: "Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",
19
- targetUserSegment: "money_user",
20
- totalXp: 60,
21
- steps: [
22
- makeTipStep("cash_buffer_too_high", "cash_buffer_too_high", "Suggest sweeping excess cash into goals."),
23
- makeTipStep("no_savings_goal", "no_savings_goal", "Prompt setting a first savings goal."),
24
- makeTipStep("irregular_savings", "irregular_savings", "Recommend recurring saves after irregular deposits.")
25
- ]
26
- };
27
- var colivingAmbientCoachTrack = {
28
- id: "coliving_ambient_coach",
29
- name: "Ambient Coach \u2014 Coliving",
30
- description: "Contextual tips for healthy coliving habits.",
31
- targetUserSegment: "coliving",
32
- totalXp: 60,
33
- steps: [
34
- makeTipStep("noise_late_evening", "noise_late_evening", "Suggest updating quiet hours to reduce evening noise."),
35
- makeTipStep("guest_frequency_high", "guest_frequency_high", "Set guest frequency expectations for the house."),
36
- makeTipStep("shared_space_conflicts", "shared_space_conflicts", "Offer a shared-space checklist to reduce conflicts.")
37
- ]
38
- };
39
- var ambientCoachTracks = [
40
- moneyAmbientCoachTrack,
41
- colivingAmbientCoachTrack
42
- ];
43
- export {
44
- moneyAmbientCoachTrack,
45
- colivingAmbientCoachTrack,
46
- ambientCoachTracks
47
- };
2
+ var e=(t,n,a)=>({id:t,title:`Resolve tip: ${n}`,description:a,completion:{kind:"event",eventName:"coach.tip.follow_up_action_taken",payloadFilter:{tipId:n}},xpReward:20,metadata:{tipId:n}}),o={id:"money_ambient_coach",name:"Ambient Coach \u2014 Money",description:"Subtle coaching for money patterns (cash buffer, goals, saving rhythm).",targetUserSegment:"money_user",totalXp:60,steps:[e("cash_buffer_too_high","cash_buffer_too_high","Suggest sweeping excess cash into goals."),e("no_savings_goal","no_savings_goal","Prompt setting a first savings goal."),e("irregular_savings","irregular_savings","Recommend recurring saves after irregular deposits.")]},i={id:"coliving_ambient_coach",name:"Ambient Coach \u2014 Coliving",description:"Contextual tips for healthy coliving habits.",targetUserSegment:"coliving",totalXp:60,steps:[e("noise_late_evening","noise_late_evening","Suggest updating quiet hours to reduce evening noise."),e("guest_frequency_high","guest_frequency_high","Set guest frequency expectations for the house."),e("shared_space_conflicts","shared_space_conflicts","Offer a shared-space checklist to reduce conflicts.")]},r=[o,i];export{o as moneyAmbientCoachTrack,i as colivingAmbientCoachTrack,r as ambientCoachTracks};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/example.learning-journey-ambient-coach",
3
- "version": "3.7.17",
3
+ "version": "3.7.19",
4
4
  "description": "Ambient coach learning journey example with contextual tips and follow-up actions.",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -57,20 +57,20 @@
57
57
  "dev": "contractspec-bun-build dev",
58
58
  "clean": "rimraf dist .turbo",
59
59
  "lint": "bun lint:fix",
60
- "lint:fix": "biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .",
61
- "lint:check": "biome check .",
60
+ "lint:fix": "node ../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../scripts/biome.cjs check --write .",
61
+ "lint:check": "node ../../../scripts/biome.cjs check .",
62
62
  "test": "bun test",
63
63
  "prebuild": "contractspec-bun-build prebuild",
64
64
  "typecheck": "tsc --noEmit"
65
65
  },
66
66
  "dependencies": {
67
- "@contractspec/module.learning-journey": "3.7.16",
68
- "@contractspec/lib.contracts-spec": "5.1.0"
67
+ "@contractspec/module.learning-journey": "3.7.18",
68
+ "@contractspec/lib.contracts-spec": "5.3.0"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@contractspec/tool.typescript": "3.7.13",
72
72
  "typescript": "^5.9.3",
73
- "@contractspec/tool.bun": "3.7.13"
73
+ "@contractspec/tool.bun": "3.7.14"
74
74
  },
75
75
  "publishConfig": {
76
76
  "exports": {