@lssm/example.learning-journey-registry 0.0.0-canary-20251217034842 → 0.0.0-canary-20251217060433
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.
- package/.turbo/turbo-build$colon$bundle.log +65 -0
- package/.turbo/turbo-build.log +55 -53
- package/CHANGELOG.md +17 -12
- package/dist/api-types.d.ts +40 -0
- package/dist/api.d.ts +12 -0
- package/dist/docs/index.d.ts +1 -0
- package/dist/docs/learning-journey-registry.docblock.d.ts +1 -0
- package/dist/docs/learning-journey-registry.docblock.js +1 -1
- package/dist/example.d.ts +32 -0
- package/dist/index.d.ts +8 -0
- package/dist/learning-journey-registry.feature.d.ts +11 -0
- package/dist/libs/contracts/{src → dist}/docs/PUBLISHING.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/accessibility_wcag_compliance_specs.docblock.js +1 -1
- package/dist/libs/contracts/dist/docs/index.js +1 -0
- package/dist/libs/contracts/{src → dist}/docs/presentations.js +1 -1
- package/dist/libs/contracts/dist/docs/registry.js +1 -0
- package/dist/libs/contracts/{src → dist}/docs/tech/PHASE_1_QUICKSTART.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +1 -1
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +1 -0
- package/dist/libs/contracts/{src → dist}/docs/tech/auth/better-auth-nextjs.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/contracts/openapi-export.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/lifecycle-stage-system.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/llm/llm-integration.docblock.js +1 -1
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +1 -0
- package/dist/libs/contracts/{src → dist}/docs/tech/schema/README.docblock.js +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +1 -0
- package/dist/libs/contracts/{src → dist}/docs/tech/studio/learning-journeys.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/studio/platform-admin-panel.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/studio/project-access-teams.docblock.js +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +1 -0
- package/dist/libs/contracts/{src → dist}/docs/tech/studio/sandbox-unlogged.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/studio/team-invitations.docblock.js +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +1 -0
- package/dist/libs/contracts/{src → dist}/docs/tech/studio/workspaces.docblock.js +1 -1
- package/dist/libs/contracts/{src → dist}/docs/tech/telemetry-ingest.docblock.js +1 -1
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +1 -0
- package/dist/libs/contracts/{src → dist}/docs/tech/vscode-extension.docblock.js +1 -1
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +1 -0
- package/dist/presentations/index.d.ts +9 -0
- package/dist/progress-store.d.ts +10 -0
- package/dist/tracks.d.ts +39 -0
- package/dist/ui/LearningMiniApp.d.ts +23 -0
- package/dist/ui/index.d.ts +2 -0
- package/package.json +16 -14
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/libs/contracts/src/docs/index.js +0 -1
- package/dist/libs/contracts/src/docs/registry.js +0 -1
- package/dist/libs/contracts/src/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -1
- package/dist/libs/contracts/src/docs/tech/mcp-endpoints.docblock.js +0 -1
- package/dist/libs/contracts/src/docs/tech/presentation-runtime.docblock.js +0 -1
- package/dist/libs/contracts/src/docs/tech/studio/learning-events.docblock.js +0 -1
- package/dist/libs/contracts/src/docs/tech/studio/project-routing.docblock.js +0 -1
- package/dist/libs/contracts/src/docs/tech/studio/workspace-ops.docblock.js +0 -1
- package/dist/libs/contracts/src/docs/tech/templates/runtime.docblock.js +0 -1
- package/dist/libs/contracts/src/docs/tech/workflows/overview.docblock.js +0 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
|
|
2
|
+
[0m[2m[35m$[0m [2m[1mtsdown[0m
|
|
3
|
+
[34mℹ[39m tsdown [2mv0.17.4[22m powered by rolldown [2mv1.0.0-beta.53[22m
|
|
4
|
+
[34mℹ[39m config file: [4m/Users/tboutron/Documents/clients/lssm/monorepo-lssm/packages/contractspec/packages/examples/learning-journey-registry/tsdown.config.js[24m (unrun)
|
|
5
|
+
[34mℹ[39m entry: [34msrc/api-types.ts, src/api.ts, src/example.ts, src/index.ts, src/learning-journey-registry.feature.ts, src/progress-store.ts, src/tracks.ts, src/docs/index.ts, src/docs/learning-journey-registry.docblock.ts, src/presentations/index.ts, src/ui/LearningMiniApp.tsx, src/ui/index.ts[39m
|
|
6
|
+
[34mℹ[39m target: [34mesnext[39m
|
|
7
|
+
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
8
|
+
[34mℹ[39m Build start
|
|
9
|
+
[34mℹ[39m Cleaning 69 files
|
|
10
|
+
[34mℹ[39m [2mdist/[22m[1mapi.js[22m [2m 3.28 kB[22m [2m│ gzip: 1.37 kB[22m
|
|
11
|
+
[34mℹ[39m [2mdist/[22m[1mui/LearningMiniApp.js[22m [2m 1.88 kB[22m [2m│ gzip: 0.70 kB[22m
|
|
12
|
+
[34mℹ[39m [2mdist/[22m[1mtracks.js[22m [2m 1.30 kB[22m [2m│ gzip: 0.50 kB[22m
|
|
13
|
+
[34mℹ[39m [2mdist/[22m[1mindex.js[22m [2m 1.23 kB[22m [2m│ gzip: 0.42 kB[22m
|
|
14
|
+
[34mℹ[39m [2mdist/[22m[1mdocs/learning-journey-registry.docblock.js[22m [2m 1.20 kB[22m [2m│ gzip: 0.62 kB[22m
|
|
15
|
+
[34mℹ[39m [2mdist/[22m[1mpresentations/index.js[22m [2m 0.99 kB[22m [2m│ gzip: 0.39 kB[22m
|
|
16
|
+
[34mℹ[39m [2mdist/[22m[1mlearning-journey-registry.feature.js[22m [2m 0.86 kB[22m [2m│ gzip: 0.36 kB[22m
|
|
17
|
+
[34mℹ[39m [2mdist/[22m[1mexample.js[22m [2m 0.52 kB[22m [2m│ gzip: 0.32 kB[22m
|
|
18
|
+
[34mℹ[39m [2mdist/[22m[1mprogress-store.js[22m [2m 0.43 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
19
|
+
[34mℹ[39m [2mdist/[22m[1mui/index.js[22m [2m 0.19 kB[22m [2m│ gzip: 0.11 kB[22m
|
|
20
|
+
[34mℹ[39m [2mdist/[22m[1mdocs/index.js[22m [2m 0.05 kB[22m [2m│ gzip: 0.07 kB[22m
|
|
21
|
+
[34mℹ[39m [2mdist/[22m[1mapi-types.js[22m [2m 0.00 kB[22m [2m│ gzip: 0.02 kB[22m
|
|
22
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js [2m16.51 kB[22m [2m│ gzip: 7.15 kB[22m
|
|
23
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/schema/README.docblock.js [2m10.97 kB[22m [2m│ gzip: 4.28 kB[22m
|
|
24
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js [2m 9.65 kB[22m [2m│ gzip: 3.77 kB[22m
|
|
25
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/llm/llm-integration.docblock.js [2m 9.10 kB[22m [2m│ gzip: 3.41 kB[22m
|
|
26
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js [2m 8.74 kB[22m [2m│ gzip: 2.67 kB[22m
|
|
27
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js [2m 5.91 kB[22m [2m│ gzip: 2.61 kB[22m
|
|
28
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/templates/runtime.docblock.js [2m 5.62 kB[22m [2m│ gzip: 2.58 kB[22m
|
|
29
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/workflows/overview.docblock.js [2m 5.42 kB[22m [2m│ gzip: 2.25 kB[22m
|
|
30
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js [2m 4.35 kB[22m [2m│ gzip: 2.05 kB[22m
|
|
31
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/telemetry-ingest.docblock.js [2m 3.89 kB[22m [2m│ gzip: 1.69 kB[22m
|
|
32
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/vscode-extension.docblock.js [2m 3.58 kB[22m [2m│ gzip: 1.38 kB[22m
|
|
33
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/PUBLISHING.docblock.js [2m 3.42 kB[22m [2m│ gzip: 1.58 kB[22m
|
|
34
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js [2m 3.34 kB[22m [2m│ gzip: 1.45 kB[22m
|
|
35
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js [2m 3.07 kB[22m [2m│ gzip: 1.38 kB[22m
|
|
36
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js [2m 3.03 kB[22m [2m│ gzip: 1.32 kB[22m
|
|
37
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js [2m 2.98 kB[22m [2m│ gzip: 1.52 kB[22m
|
|
38
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js [2m 2.81 kB[22m [2m│ gzip: 1.41 kB[22m
|
|
39
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/presentation-runtime.docblock.js [2m 2.73 kB[22m [2m│ gzip: 1.30 kB[22m
|
|
40
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/project-routing.docblock.js [2m 2.49 kB[22m [2m│ gzip: 1.11 kB[22m
|
|
41
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/team-invitations.docblock.js [2m 2.13 kB[22m [2m│ gzip: 1.03 kB[22m
|
|
42
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/workspaces.docblock.js [2m 1.89 kB[22m [2m│ gzip: 0.93 kB[22m
|
|
43
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/learning-events.docblock.js [2m 1.78 kB[22m [2m│ gzip: 0.87 kB[22m
|
|
44
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js [2m 1.70 kB[22m [2m│ gzip: 0.89 kB[22m
|
|
45
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js [2m 1.57 kB[22m [2m│ gzip: 0.77 kB[22m
|
|
46
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js [2m 1.47 kB[22m [2m│ gzip: 0.73 kB[22m
|
|
47
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/index.js [2m 1.42 kB[22m [2m│ gzip: 0.47 kB[22m
|
|
48
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/mcp-endpoints.docblock.js [2m 1.23 kB[22m [2m│ gzip: 0.68 kB[22m
|
|
49
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/presentations.js [2m 1.14 kB[22m [2m│ gzip: 0.56 kB[22m
|
|
50
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js [2m 0.89 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
51
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/dist/docs/registry.js [2m 0.63 kB[22m [2m│ gzip: 0.39 kB[22m
|
|
52
|
+
[34mℹ[39m [2mdist/[22m[32m[1mtracks.d.ts[22m[39m [2m 1.69 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
53
|
+
[34mℹ[39m [2mdist/[22m[32m[1mindex.d.ts[22m[39m [2m 1.17 kB[22m [2m│ gzip: 0.34 kB[22m
|
|
54
|
+
[34mℹ[39m [2mdist/[22m[32m[1mui/LearningMiniApp.d.ts[22m[39m [2m 1.15 kB[22m [2m│ gzip: 0.50 kB[22m
|
|
55
|
+
[34mℹ[39m [2mdist/[22m[32m[1mapi-types.d.ts[22m[39m [2m 1.03 kB[22m [2m│ gzip: 0.46 kB[22m
|
|
56
|
+
[34mℹ[39m [2mdist/[22m[32m[1mexample.d.ts[22m[39m [2m 0.96 kB[22m [2m│ gzip: 0.39 kB[22m
|
|
57
|
+
[34mℹ[39m [2mdist/[22m[32m[1mprogress-store.d.ts[22m[39m [2m 0.64 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
58
|
+
[34mℹ[39m [2mdist/[22m[32m[1mpresentations/index.d.ts[22m[39m [2m 0.56 kB[22m [2m│ gzip: 0.21 kB[22m
|
|
59
|
+
[34mℹ[39m [2mdist/[22m[32m[1mapi.d.ts[22m[39m [2m 0.52 kB[22m [2m│ gzip: 0.27 kB[22m
|
|
60
|
+
[34mℹ[39m [2mdist/[22m[32m[1mlearning-journey-registry.feature.d.ts[22m[39m [2m 0.35 kB[22m [2m│ gzip: 0.22 kB[22m
|
|
61
|
+
[34mℹ[39m [2mdist/[22m[32m[1mui/index.d.ts[22m[39m [2m 0.17 kB[22m [2m│ gzip: 0.09 kB[22m
|
|
62
|
+
[34mℹ[39m [2mdist/[22m[32m[1mdocs/index.d.ts[22m[39m [2m 0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
63
|
+
[34mℹ[39m [2mdist/[22m[32m[1mdocs/learning-journey-registry.docblock.d.ts[22m[39m [2m 0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
64
|
+
[34mℹ[39m 54 files, total: 143.63 kB
|
|
65
|
+
[32m✔[39m Build complete in [32m2141ms[39m
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,53 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
[
|
|
4
|
-
[34mℹ[39m
|
|
5
|
-
[34mℹ[39m
|
|
6
|
-
[34mℹ[39m
|
|
7
|
-
[34mℹ[39m
|
|
8
|
-
[34mℹ[39m
|
|
9
|
-
[34mℹ[39m
|
|
10
|
-
[34mℹ[39m
|
|
11
|
-
[34mℹ[39m [2mdist/[22m[
|
|
12
|
-
[34mℹ[39m [2mdist/[22m[
|
|
13
|
-
[34mℹ[39m [2mdist/[22m[
|
|
14
|
-
[34mℹ[39m [2mdist/[22m[
|
|
15
|
-
[34mℹ[39m [2mdist/[22m[
|
|
16
|
-
[34mℹ[39m [2mdist/[22m[
|
|
17
|
-
[34mℹ[39m [2mdist/[22m[
|
|
18
|
-
[34mℹ[39m [2mdist/[22m[
|
|
19
|
-
[34mℹ[39m [2mdist/[22m[
|
|
20
|
-
[34mℹ[39m [2mdist/[22m[
|
|
21
|
-
[34mℹ[39m [2mdist/[
|
|
22
|
-
[34mℹ[39m [2mdist/[
|
|
23
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/
|
|
24
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
25
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
26
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
27
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
28
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
29
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
30
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
31
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
32
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/
|
|
33
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
34
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/
|
|
35
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
36
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
37
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
38
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
39
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
40
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
41
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/
|
|
42
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/
|
|
43
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
44
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/
|
|
45
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/
|
|
46
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/
|
|
47
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/
|
|
48
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/
|
|
49
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/
|
|
50
|
-
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/
|
|
51
|
-
[34mℹ[39m
|
|
52
|
-
[
|
|
53
|
-
|
|
1
|
+
|
|
2
|
+
[0m[2m[35m$[0m [2m[1mbun build:bundle && bun build:types[0m
|
|
3
|
+
[0m[2m[35m$[0m [2m[1mtsdown[0m
|
|
4
|
+
[34mℹ[39m tsdown [2mv0.17.4[22m powered by rolldown [2mv1.0.0-beta.53[22m
|
|
5
|
+
[34mℹ[39m config file: [4m/Users/tboutron/Documents/clients/lssm/monorepo-lssm/packages/contractspec/packages/examples/learning-journey-registry/tsdown.config.js[24m (unrun)
|
|
6
|
+
[34mℹ[39m entry: [34msrc/api-types.ts, src/api.ts, src/example.ts, src/index.ts, src/learning-journey-registry.feature.ts, src/progress-store.ts, src/tracks.ts, src/docs/index.ts, src/docs/learning-journey-registry.docblock.ts, src/presentations/index.ts, src/ui/LearningMiniApp.tsx, src/ui/index.ts[39m
|
|
7
|
+
[34mℹ[39m target: [34mesnext[39m
|
|
8
|
+
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
9
|
+
[34mℹ[39m Build start
|
|
10
|
+
[34mℹ[39m Cleaning 57 files
|
|
11
|
+
[34mℹ[39m [2mdist/[22m[1mapi.js[22m [2m 3.28 kB[22m [2m│ gzip: 1.37 kB[22m
|
|
12
|
+
[34mℹ[39m [2mdist/[22m[1mui/LearningMiniApp.js[22m [2m 1.88 kB[22m [2m│ gzip: 0.70 kB[22m
|
|
13
|
+
[34mℹ[39m [2mdist/[22m[1mtracks.js[22m [2m 1.30 kB[22m [2m│ gzip: 0.50 kB[22m
|
|
14
|
+
[34mℹ[39m [2mdist/[22m[1mindex.js[22m [2m 1.23 kB[22m [2m│ gzip: 0.42 kB[22m
|
|
15
|
+
[34mℹ[39m [2mdist/[22m[1mdocs/learning-journey-registry.docblock.js[22m [2m 1.21 kB[22m [2m│ gzip: 0.63 kB[22m
|
|
16
|
+
[34mℹ[39m [2mdist/[22m[1mpresentations/index.js[22m [2m 0.99 kB[22m [2m│ gzip: 0.39 kB[22m
|
|
17
|
+
[34mℹ[39m [2mdist/[22m[1mlearning-journey-registry.feature.js[22m [2m 0.86 kB[22m [2m│ gzip: 0.36 kB[22m
|
|
18
|
+
[34mℹ[39m [2mdist/[22m[1mexample.js[22m [2m 0.52 kB[22m [2m│ gzip: 0.32 kB[22m
|
|
19
|
+
[34mℹ[39m [2mdist/[22m[1mprogress-store.js[22m [2m 0.43 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
20
|
+
[34mℹ[39m [2mdist/[22m[1mui/index.js[22m [2m 0.19 kB[22m [2m│ gzip: 0.11 kB[22m
|
|
21
|
+
[34mℹ[39m [2mdist/[22m[1mdocs/index.js[22m [2m 0.05 kB[22m [2m│ gzip: 0.07 kB[22m
|
|
22
|
+
[34mℹ[39m [2mdist/[22m[1mapi-types.js[22m [2m 0.00 kB[22m [2m│ gzip: 0.02 kB[22m
|
|
23
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/accessibility_wcag_compliance_specs.docblock.js [2m16.53 kB[22m [2m│ gzip: 7.16 kB[22m
|
|
24
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/schema/README.docblock.js [2m10.99 kB[22m [2m│ gzip: 4.29 kB[22m
|
|
25
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/lifecycle-stage-system.docblock.js [2m 9.67 kB[22m [2m│ gzip: 3.78 kB[22m
|
|
26
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/llm/llm-integration.docblock.js [2m 9.12 kB[22m [2m│ gzip: 3.42 kB[22m
|
|
27
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/PHASE_1_QUICKSTART.docblock.js [2m 8.76 kB[22m [2m│ gzip: 2.68 kB[22m
|
|
28
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js [2m 5.93 kB[22m [2m│ gzip: 2.61 kB[22m
|
|
29
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/templates/runtime.docblock.js [2m 5.63 kB[22m [2m│ gzip: 2.58 kB[22m
|
|
30
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/workflows/overview.docblock.js [2m 5.44 kB[22m [2m│ gzip: 2.26 kB[22m
|
|
31
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js [2m 4.37 kB[22m [2m│ gzip: 2.06 kB[22m
|
|
32
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/telemetry-ingest.docblock.js [2m 3.90 kB[22m [2m│ gzip: 1.70 kB[22m
|
|
33
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/vscode-extension.docblock.js [2m 3.60 kB[22m [2m│ gzip: 1.39 kB[22m
|
|
34
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/PUBLISHING.docblock.js [2m 3.43 kB[22m [2m│ gzip: 1.59 kB[22m
|
|
35
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/auth/better-auth-nextjs.docblock.js [2m 3.35 kB[22m [2m│ gzip: 1.45 kB[22m
|
|
36
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/learning-journeys.docblock.js [2m 3.08 kB[22m [2m│ gzip: 1.39 kB[22m
|
|
37
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/platform-admin-panel.docblock.js [2m 3.04 kB[22m [2m│ gzip: 1.33 kB[22m
|
|
38
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js [2m 3.00 kB[22m [2m│ gzip: 1.53 kB[22m
|
|
39
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js [2m 2.83 kB[22m [2m│ gzip: 1.41 kB[22m
|
|
40
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/presentation-runtime.docblock.js [2m 2.75 kB[22m [2m│ gzip: 1.30 kB[22m
|
|
41
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/project-routing.docblock.js [2m 2.50 kB[22m [2m│ gzip: 1.12 kB[22m
|
|
42
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/team-invitations.docblock.js [2m 2.14 kB[22m [2m│ gzip: 1.04 kB[22m
|
|
43
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/workspaces.docblock.js [2m 1.90 kB[22m [2m│ gzip: 0.94 kB[22m
|
|
44
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/learning-events.docblock.js [2m 1.79 kB[22m [2m│ gzip: 0.88 kB[22m
|
|
45
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/contracts/openapi-export.docblock.js [2m 1.72 kB[22m [2m│ gzip: 0.90 kB[22m
|
|
46
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/project-access-teams.docblock.js [2m 1.58 kB[22m [2m│ gzip: 0.78 kB[22m
|
|
47
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/index.js [2m 1.54 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
48
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/workspace-ops.docblock.js [2m 1.49 kB[22m [2m│ gzip: 0.73 kB[22m
|
|
49
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/mcp-endpoints.docblock.js [2m 1.24 kB[22m [2m│ gzip: 0.68 kB[22m
|
|
50
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/presentations.js [2m 1.23 kB[22m [2m│ gzip: 0.59 kB[22m
|
|
51
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/tech/studio/sandbox-unlogged.docblock.js [2m 0.90 kB[22m [2m│ gzip: 0.56 kB[22m
|
|
52
|
+
[34mℹ[39m [2mdist/[22mlibs/contracts/src/docs/registry.js [2m 0.74 kB[22m [2m│ gzip: 0.42 kB[22m
|
|
53
|
+
[34mℹ[39m 42 files, total: 136.15 kB
|
|
54
|
+
[32m✔[39m Build complete in [32m29ms[39m
|
|
55
|
+
[0m[2m[35m$[0m [2m[1mtsc --noEmit[0m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
# @lssm/example.learning-journey-registry
|
|
2
2
|
|
|
3
|
-
## 0.0.0-canary-
|
|
3
|
+
## 0.0.0-canary-20251217060433
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 66a5dfd: initial release
|
|
4
8
|
|
|
5
9
|
### Patch Changes
|
|
6
10
|
|
|
7
|
-
-
|
|
8
|
-
- @lssm/example.learning-journey-
|
|
9
|
-
- @lssm/example.learning-journey-
|
|
10
|
-
- @lssm/example.learning-journey-
|
|
11
|
-
- @lssm/example.learning-journey-
|
|
12
|
-
- @lssm/example.learning-journey-
|
|
13
|
-
- @lssm/example.learning-journey-
|
|
14
|
-
- @lssm/example.learning-journey-
|
|
15
|
-
- @lssm/example.learning-journey-
|
|
16
|
-
- @lssm/example.learning-journey-
|
|
17
|
-
- @lssm/
|
|
11
|
+
- Updated dependencies [66a5dfd]
|
|
12
|
+
- @lssm/example.learning-journey-ambient-coach@0.0.0-canary-20251217060433
|
|
13
|
+
- @lssm/example.learning-journey-crm-onboarding@0.0.0-canary-20251217060433
|
|
14
|
+
- @lssm/example.learning-journey-duo-drills@0.0.0-canary-20251217060433
|
|
15
|
+
- @lssm/example.learning-journey-platform-tour@0.0.0-canary-20251217060433
|
|
16
|
+
- @lssm/example.learning-journey-quest-challenges@0.0.0-canary-20251217060433
|
|
17
|
+
- @lssm/example.learning-journey-studio-onboarding@0.0.0-canary-20251217060433
|
|
18
|
+
- @lssm/example.learning-journey-ui-coaching@0.0.0-canary-20251217060433
|
|
19
|
+
- @lssm/example.learning-journey-ui-gamified@0.0.0-canary-20251217060433
|
|
20
|
+
- @lssm/example.learning-journey-ui-onboarding@0.0.0-canary-20251217060433
|
|
21
|
+
- @lssm/example.learning-journey-ui-shared@0.0.0-canary-20251217060433
|
|
22
|
+
- @lssm/module.learning-journey@0.0.0-canary-20251217060433
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { LearningJourneyTrackSpec } from "@lssm/module.learning-journey/track-spec";
|
|
2
|
+
|
|
3
|
+
//#region src/api-types.d.ts
|
|
4
|
+
interface LearningEvent {
|
|
5
|
+
name: string;
|
|
6
|
+
version?: number;
|
|
7
|
+
sourceModule?: string;
|
|
8
|
+
payload?: Record<string, unknown>;
|
|
9
|
+
occurredAt?: Date;
|
|
10
|
+
learnerId: string;
|
|
11
|
+
trackId?: string;
|
|
12
|
+
}
|
|
13
|
+
type StepStatus = 'PENDING' | 'COMPLETED';
|
|
14
|
+
interface StepProgress {
|
|
15
|
+
id: string;
|
|
16
|
+
status: StepStatus;
|
|
17
|
+
xpEarned: number;
|
|
18
|
+
completedAt?: Date;
|
|
19
|
+
triggeringEvent?: string;
|
|
20
|
+
eventPayload?: Record<string, unknown>;
|
|
21
|
+
occurrences?: number;
|
|
22
|
+
counterStartedAt?: Date;
|
|
23
|
+
availableAt?: Date;
|
|
24
|
+
dueAt?: Date;
|
|
25
|
+
masteryCount?: number;
|
|
26
|
+
}
|
|
27
|
+
interface TrackProgress {
|
|
28
|
+
learnerId: string;
|
|
29
|
+
trackId: string;
|
|
30
|
+
progress: number;
|
|
31
|
+
isCompleted: boolean;
|
|
32
|
+
xpEarned: number;
|
|
33
|
+
startedAt?: Date;
|
|
34
|
+
completedAt?: Date;
|
|
35
|
+
lastActivityAt?: Date;
|
|
36
|
+
steps: StepProgress[];
|
|
37
|
+
}
|
|
38
|
+
type TrackResolver = (trackId: string) => LearningJourneyTrackSpec | undefined;
|
|
39
|
+
//#endregion
|
|
40
|
+
export { LearningEvent, StepProgress, StepStatus, TrackProgress, TrackResolver };
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LearningEvent, TrackProgress } from "./api-types.js";
|
|
2
|
+
import { LearningJourneyTrackSpec } from "@lssm/module.learning-journey/track-spec";
|
|
3
|
+
|
|
4
|
+
//#region src/api.d.ts
|
|
5
|
+
declare const listTracks: (learnerId?: string) => {
|
|
6
|
+
tracks: LearningJourneyTrackSpec[];
|
|
7
|
+
progress: TrackProgress[];
|
|
8
|
+
};
|
|
9
|
+
declare const getProgress: (trackId: string, learnerId: string) => TrackProgress | undefined;
|
|
10
|
+
declare const recordEvent: (event: LearningEvent) => TrackProgress[];
|
|
11
|
+
//#endregion
|
|
12
|
+
export { getProgress, listTracks, recordEvent };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../libs/contracts/dist/docs/registry.js";import"../libs/contracts/dist/docs/index.js";e([{id:`docs.learning-journey.registry`,title:`Learning Journey — Example Track Registry`,summary:`Aggregates learning journey example tracks (Studio onboarding, Platform tour, CRM first win, Drills, Ambient Coach, Quest challenges).`,kind:`usage`,visibility:`public`,route:`/docs/learning-journey/registry`,tags:[`learning`,`registry`,`onboarding`],body:"## Tracks\n- `studio_getting_started` (Studio onboarding)\n- `platform_primitives_tour` (Platform primitives)\n- `crm_first_win` (CRM pipeline onboarding)\n- `drills_language_basics` (Drills & SRS)\n- `money_ambient_coach`, `coliving_ambient_coach` (Ambient tips)\n- `money_reset_7day` (Quest/challenge)\n\n## Exports\n- `learningJourneyTracks` — raw specs\n- `onboardingTrackCatalog` — DTOs aligned with onboarding API\n- `mapTrackSpecToDto` — helper to map individual tracks\n\n## Wiring\n- Use with onboarding API contracts:\n - `learning.onboarding.listTracks`\n - `learning.onboarding.getProgress`\n - `learning.onboarding.recordEvent`\n- Intended for registry/adapters in Studio UI or services that surface tracks."}]);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region src/example.d.ts
|
|
2
|
+
declare const example: {
|
|
3
|
+
readonly id: "learning-journey-registry";
|
|
4
|
+
readonly title: "Learning Journey Registry";
|
|
5
|
+
readonly summary: "Registry of learning journey tracks + presentations + UI mini-app bindings.";
|
|
6
|
+
readonly tags: readonly ["learning", "journey", "registry"];
|
|
7
|
+
readonly kind: "library";
|
|
8
|
+
readonly visibility: "public";
|
|
9
|
+
readonly docs: {
|
|
10
|
+
readonly rootDocId: "docs.examples.learning-journey-registry";
|
|
11
|
+
};
|
|
12
|
+
readonly entrypoints: {
|
|
13
|
+
readonly packageName: "@lssm/example.learning-journey-registry";
|
|
14
|
+
readonly docs: "./docs";
|
|
15
|
+
};
|
|
16
|
+
readonly surfaces: {
|
|
17
|
+
readonly templates: true;
|
|
18
|
+
readonly sandbox: {
|
|
19
|
+
readonly enabled: true;
|
|
20
|
+
readonly modes: readonly ["markdown", "specs"];
|
|
21
|
+
};
|
|
22
|
+
readonly studio: {
|
|
23
|
+
readonly enabled: true;
|
|
24
|
+
readonly installable: true;
|
|
25
|
+
};
|
|
26
|
+
readonly mcp: {
|
|
27
|
+
readonly enabled: true;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//#endregion
|
|
32
|
+
export { example as default };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { getProgress, listTracks, recordEvent } from "./api.js";
|
|
2
|
+
import example from "./example.js";
|
|
3
|
+
import { OnboardingStepDto, OnboardingTrackDto, crmLearningTracks, learningJourneyTracks, mapStep, mapTrackSpecToDto, onboardingTrackCatalog, platformLearningTracks, studioLearningTracks } from "./tracks.js";
|
|
4
|
+
import { LearningTrackDetailPresentation, LearningTrackListPresentation, LearningTrackProgressWidgetPresentation, learningJourneyPresentations } from "./presentations/index.js";
|
|
5
|
+
import { LearningJourneyRegistryFeature } from "./learning-journey-registry.feature.js";
|
|
6
|
+
import { LearningMiniApp, getLearningTemplateIds, isLearningTemplate } from "./ui/LearningMiniApp.js";
|
|
7
|
+
import "./ui/index.js";
|
|
8
|
+
export { LearningJourneyRegistryFeature, LearningMiniApp, LearningTrackDetailPresentation, LearningTrackListPresentation, LearningTrackProgressWidgetPresentation, OnboardingStepDto, OnboardingTrackDto, crmLearningTracks, example, getLearningTemplateIds, getProgress, isLearningTemplate, learningJourneyPresentations, learningJourneyTracks, listTracks, mapStep, mapTrackSpecToDto, onboardingTrackCatalog, platformLearningTracks, recordEvent, studioLearningTracks };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FeatureModuleSpec } from "@lssm/lib.contracts";
|
|
2
|
+
|
|
3
|
+
//#region src/learning-journey-registry.feature.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Learning Journey Registry feature module that bundles
|
|
7
|
+
* the shared presentations for learning journey tracks.
|
|
8
|
+
*/
|
|
9
|
+
declare const LearningJourneyRegistryFeature: FeatureModuleSpec;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { LearningJourneyRegistryFeature };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"./registry.js";e([{id:`docs.PUBLISHING`,title:`Publishing ContractSpec Libraries`,summary:`This guide describes how we release the ContractSpec libraries to npm. We use a dual-track release system: **Stable** (manual) and **Canary** (automatic).`,kind:`reference`,visibility:`public`,route:`/docs/PUBLISHING`,tags:[`PUBLISHING`],body:`# Publishing ContractSpec Libraries
|
|
2
2
|
|
|
3
3
|
This guide describes how we release the ContractSpec libraries to npm. We use a dual-track release system: **Stable** (manual) and **Canary** (automatic).
|
|
4
4
|
|
package/dist/libs/contracts/{src → dist}/docs/accessibility_wcag_compliance_specs.docblock.js
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"./registry.js";e([{id:`docs.accessibility_wcag_compliance_specs`,title:`Accessibility & WCAG Compliance — **specs.md**`,summary:`> **Goal:** Ship interfaces that are usable by everyone, by default. This spec sets non‑negotiable rules, checklists, and CI gates to meet **WCAG\xA02.2 AA** (aim for AAA where low‑cost), align with **EN\xA0301\xA0549** (EU), and keep parity on **web (Next.js)** and **mobile (Expo/React\xA0Native)**.`,kind:`reference`,visibility:`public`,route:`/docs/accessibility_wcag_compliance_specs`,tags:[`accessibility_wcag_compliance_specs`],body:`# Accessibility & WCAG Compliance — **specs.md**
|
|
2
2
|
|
|
3
3
|
> **Goal:** Ship interfaces that are usable by everyone, by default. This spec sets non‑negotiable rules, checklists, and CI gates to meet **WCAG\xA02.2 AA** (aim for AAA where low‑cost), align with **EN\xA0301\xA0549** (EU), and keep parity on **web (Next.js)** and **mobile (Expo/React\xA0Native)**.
|
|
4
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,i as t,o as n}from"./presentations.js";import{a as r,i,n as a}from"./registry.js";import"./PUBLISHING.docblock.js";import"./accessibility_wcag_compliance_specs.docblock.js";import"./tech/PHASE_1_QUICKSTART.docblock.js";import"./tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js";import"./tech/PHASE_3_AUTO_EVOLUTION.docblock.js";import"./tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js";import"./tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js";import"./tech/lifecycle-stage-system.docblock.js";import"./tech/presentation-runtime.docblock.js";import"./tech/auth/better-auth-nextjs.docblock.js";import"./tech/schema/README.docblock.js";import"./tech/templates/runtime.docblock.js";import"./tech/workflows/overview.docblock.js";import"./tech/mcp-endpoints.docblock.js";import"./tech/vscode-extension.docblock.js";import"./tech/telemetry-ingest.docblock.js";import"./tech/contracts/openapi-export.docblock.js";import"./tech/studio/workspaces.docblock.js";import"./tech/studio/sandbox-unlogged.docblock.js";import"./tech/studio/workspace-ops.docblock.js";import"./tech/studio/project-routing.docblock.js";import"./tech/studio/platform-admin-panel.docblock.js";import"./tech/studio/learning-events.docblock.js";import"./tech/studio/learning-journeys.docblock.js";import"./tech/studio/project-access-teams.docblock.js";import"./tech/studio/team-invitations.docblock.js";import"./tech/llm/llm-integration.docblock.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=[`markdown`,`application/json`,`application/xml`,`react`];function t(e){if(!e.length)return`/`;let t=e.startsWith(`/`)?e:`/${e}`;return t===`/`?`/`:t.replace(/\/+$/,``)}function n(e,n){if(e.route)return t(e.route);let r=n??`/docs`,i=e.id.replace(/^docs\.?/,``).replace(/\./g,`/`).replace(/\/+/g,`/`);return t(i.startsWith(`/`)?i:`${r}/${i}`)}function r(e,t){return t?`${t}.${e.id}`:e.id}function i(t,n){let i=n?.defaultTargets??e,a=t.version??n?.defaultVersion??1,o=t.stability??n?.defaultStability??`stable`;return{meta:{name:r(t,n?.namespace),version:a,description:t.summary??t.title,tags:t.tags,owners:t.owners,domain:t.domain,stability:o},policy:t.visibility&&t.visibility!==`public`?{flags:[t.visibility]}:void 0,source:{type:`blocknotejs`,docJson:t.body},targets:i}}function a(e,t){let n=e.version??t?.defaultVersion??1,i=e.stability??t?.defaultStability??`stable`;return{meta:{name:r(e,t?.namespace),version:n,stability:i,tags:e.tags,owners:e.owners,description:e.summary??e.title},content:{kind:`markdown`,content:e.body}}}function o(e,t){return e.map(e=>({block:e,route:n(e,t?.routePrefix),descriptor:i(e,t)}))}export{a
|
|
1
|
+
const e=[`markdown`,`application/json`,`application/xml`,`react`];function t(e){if(!e.length)return`/`;let t=e.startsWith(`/`)?e:`/${e}`;return t===`/`?`/`:t.replace(/\/+$/,``)}function n(e,n){if(e.route)return t(e.route);let r=n??`/docs`,i=e.id.replace(/^docs\.?/,``).replace(/\./g,`/`).replace(/\/+/g,`/`);return t(i.startsWith(`/`)?i:`${r}/${i}`)}function r(e,t){return t?`${t}.${e.id}`:e.id}function i(t,n){let i=n?.defaultTargets??e,a=t.version??n?.defaultVersion??1,o=t.stability??n?.defaultStability??`stable`;return{meta:{name:r(t,n?.namespace),version:a,description:t.summary??t.title,tags:t.tags,owners:t.owners,domain:t.domain,stability:o},policy:t.visibility&&t.visibility!==`public`?{flags:[t.visibility]}:void 0,source:{type:`blocknotejs`,docJson:t.body},targets:i}}function a(e,t){let n=e.version??t?.defaultVersion??1,i=e.stability??t?.defaultStability??`stable`;return{meta:{name:r(e,t?.namespace),version:n,stability:i,tags:e.tags,owners:e.owners,description:e.summary??e.title},content:{kind:`markdown`,content:e.body}}}function o(e,t){return e.map(e=>({block:e,route:n(e,t?.routePrefix),descriptor:i(e,t)}))}export{a,i,o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,o as t}from"./presentations.js";var n=class{routes=new Map;constructor(e=[],t){e.forEach(e=>this.register(e,t))}register(e,n){let[r]=t([e],n);return r&&this.routes.set(e.id,r),this}list(){return[...this.routes.values()]}get(e){return this.routes.get(e)}toRouteTuples(){return this.list().map(({route:e,descriptor:t})=>[e,t])}toPresentationSpecs(t){return this.list().map(({block:n})=>e(n,t))}};const r=[`id`,`title`,`body`,`kind`,`visibility`,`route`],i=new n;function a(e){for(let t of e){for(let e of r)if(!t[e])throw Error(`DocBlock ${t.id??`<missing id>`} missing field ${String(e)}`);i.register(t)}}export{a,i,n};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../registry.js";e([{id:`docs.tech.PHASE_1_QUICKSTART`,title:`Phase 1: API Reference Index`,summary:`Quick reference for all new Phase 1 APIs.`,kind:`reference`,visibility:`public`,route:`/docs/tech/PHASE_1_QUICKSTART`,tags:[`tech`,`PHASE_1_QUICKSTART`],body:`# Phase 1: API Reference Index
|
|
2
2
|
|
|
3
3
|
Quick reference for all new Phase 1 APIs.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../registry.js";e([{id:`docs.tech.PHASE_2_AI_NATIVE_OPERATIONS`,title:`Phase 2: AI-Native Operations`,summary:`_Last updated: 2025-11-20_`,kind:`reference`,visibility:`public`,route:`/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS`,tags:[`tech`,`PHASE_2_AI_NATIVE_OPERATIONS`],body:`# Phase 2: AI-Native Operations
|
|
2
2
|
|
|
3
3
|
_Last updated: 2025-11-20_
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../registry.js";e([{id:`docs.tech.PHASE_3_AUTO_EVOLUTION`,title:`Phase 3: Auto-Evolution Technical Notes`,summary:`**Status**: In progress`,kind:`reference`,visibility:`public`,route:`/docs/tech/PHASE_3_AUTO_EVOLUTION`,tags:[`tech`,`PHASE_3_AUTO_EVOLUTION`],body:`# Phase 3: Auto-Evolution Technical Notes
|
|
2
2
|
|
|
3
3
|
**Status**: In progress
|
|
4
4
|
**Last updated**: 2025-11-21
|
package/dist/libs/contracts/{src → dist}/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../registry.js";e([{id:`docs.tech.PHASE_4_PERSONALIZATION_ENGINE`,title:`Phase 4: Personalization Engine`,summary:`**Status**: Complete`,kind:`reference`,visibility:`public`,route:`/docs/tech/PHASE_4_PERSONALIZATION_ENGINE`,tags:[`tech`,`PHASE_4_PERSONALIZATION_ENGINE`],body:`# Phase 4: Personalization Engine
|
|
2
2
|
|
|
3
3
|
**Status**: Complete
|
|
4
4
|
**Last updated**: 2025-11-21
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"../registry.js";e([{id:`docs.tech.PHASE_5_ZERO_TOUCH_OPERATIONS`,title:`Phase 5: Zero-Touch Operations`,summary:`**Status**: In progress`,kind:`reference`,visibility:`public`,route:`/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS`,tags:[`tech`,`PHASE_5_ZERO_TOUCH_OPERATIONS`],body:"# Phase 5: Zero-Touch Operations\n\n**Status**: In progress \n**Last updated**: 2025-11-21\n\nPhase 5 delivers progressive delivery, SLO intelligence, cost attribution, and anomaly-driven remediation so the platform can deploy continuously without pager rotations.\n\n---\n\n## 1. New Libraries\n\n### @lssm/lib.progressive-delivery\n- `DeploymentStrategy` types capture canary vs blue-green rollouts.\n- `CanaryController` + `CanaryAnalyzer` orchestrate stage evaluation against telemetry thresholds.\n- `TrafficShifter` keeps stable/candidate splits in sync with feature-flag or router state.\n- `DeploymentCoordinator` drives stage progression, emits events, and triggers rollbacks.\n- `RollbackManager` encapsulates safe revert hooks (spec version revert, traffic shift, etc.).\n\n### @lssm/lib.slo\n- Declarative `SLODefinition` with latency + availability targets per capability/spec.\n- `SLOTracker` stores rolling snapshots + error budget positions.\n- `BurnRateCalculator` implements multi-window burn computations (fast vs slow burn).\n- `SLOMonitor` pushes incidents to Ops tooling automatically when burn exceeds thresholds.\n\n### @lssm/lib.cost-tracking\n- `CostTracker` normalizes DB/API/compute metrics into per-operation cost totals.\n- `BudgetAlertManager` raises tenant budget warnings (80% default) with contextual payloads.\n- `OptimizationRecommender` suggests batching, caching, or contract tweaks to cut spend.\n\n### Observability Anomaly Toolkit\n- `BaselineCalculator` establishes rolling intent metrics (latency, error rate, throughput).\n- `AnomalyDetector` flags spikes/drops via relative deltas after 10+ samples.\n- `RootCauseAnalyzer` correlates anomalies with recent deployments.\n- `AlertManager` deduplicates notifications and feeds MCP/SRE transports.\n\n---\n\n## 2. Data Model Additions\n\nFile: `packages/libs/database/prisma/schema.prisma`\n\n| Model | Purpose |\n| --- | --- |\n| `SLODefinition`, `SLOSnapshot`, `ErrorBudget`, `SLOIncident` | Persist definitions, rolling windows, and incidents. |\n| `OperationCost`, `TenantBudget`, `CostAlert`, `OptimizationSuggestion` | Track per-operation costs, budgets, and generated recommendations. |\n| `Deployment`, `DeploymentStage`, `RollbackEvent` | Audit progressive delivery runs and automated rollbacks. |\n| `MetricBaseline`, `AnomalyEvent` | Store computed baselines and anomaly evidence for training/analytics. |\n\nRun `bun database generate` after pulling to refresh the Prisma client.\n\n---\n\n## 3. Operational Flow\n\n1. **Deploy**: Define a `DeploymentStrategy` and feed telemetry via `@lssm/lib.observability`. Canary stages run automatically.\n2. **Protect**: `CanaryAnalyzer` evaluates error rate + latency thresholds. Failures trigger `RollbackManager`.\n3. **Observe**: `SLOMonitor` consumes snapshots and opens incidents when burn rate exceeds thresholds.\n4. **Optimize**: `CostTracker` aggregates spend per tenant + capability, while `OptimizationRecommender` surfaces fixes.\n5. **Detect**: Anomaly signals route to `RootCauseAnalyzer`, which links them to specific deployments for auto-rollback.\n\n---\n\n## 4. Integration Checklist\n\n1. Instrument adapters with `createTracingMiddleware({ onSample })` to feed metric points into `AnomalyDetector`.\n2. Register SLOs per critical operation (`billing.charge`, `knowledge.search`) and wire monitors to Ops notifications.\n3. Attach `CostTracker.recordSample` to workflow runners (DB instrumentation + external call wrappers).\n4. Store deployment metadata using the new Prisma models for auditing + UI surfacing.\n5. Update `@lssm/app.ops-console` (next iteration) to list deployments, SLO status, costs, and anomalies in one timeline.\n\n---\n\n## 5. Next Steps\n\n- Wire `DeploymentCoordinator` into the Contracts CLI so `contractspec deploy` can run staged rollouts.\n- Add UI for SLO dashboards (burn rate sparkline + incident feed).\n- Ship budget suggestions into Growth Agent for automated cost optimizations.\n- Connect `AnomalyEvent` stream to MCP agents for root-cause playbooks.\n"}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.auth.better-auth-nextjs`,title:`Better Auth + Next.js integration (ContractSpec)`,summary:`How ContractSpec wires Better Auth into Next.js (server config, client singleton, and proxy cookie-only redirects).`,kind:`reference`,visibility:`public`,route:`/docs/tech/auth/better-auth-nextjs`,tags:[`auth`,`better-auth`,`nextjs`,`cookies`,`proxy`,`hmr`],body:`# Better Auth + Next.js integration (ContractSpec)
|
|
2
2
|
|
|
3
3
|
This repo uses Better Auth as the primary auth layer (sessions, organizations, teams, API keys, and OAuth).
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.contracts.openapi-export`,title:`OpenAPI export (OpenAPI 3.1) from SpecRegistry`,summary:`Generate a deterministic OpenAPI document from a SpecRegistry using jsonSchemaForSpec + REST transport metadata.`,kind:`reference`,visibility:`public`,route:`/docs/tech/contracts/openapi-export`,tags:[`contracts`,`openapi`,`rest`],body:`## OpenAPI export (OpenAPI 3.1) from SpecRegistry
|
|
2
2
|
|
|
3
3
|
### Purpose
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../registry.js";e([{id:`docs.tech.lifecycle-stage-system`,title:`ContractSpec Lifecycle Stage System – Technical Design`,summary:`This document describes how ContractSpec implements lifecycle detection and guidance. It covers architecture, module boundaries, scoring heuristics, and integration points so libraries, modules, bundles, and Studio surfaces stay synchronized.`,kind:`reference`,visibility:`public`,route:`/docs/tech/lifecycle-stage-system`,tags:[`tech`,`lifecycle-stage-system`],body:`## ContractSpec Lifecycle Stage System – Technical Design
|
|
2
2
|
|
|
3
3
|
This document describes how ContractSpec implements lifecycle detection and guidance. It covers architecture, module boundaries, scoring heuristics, and integration points so libraries, modules, bundles, and Studio surfaces stay synchronized.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.llm.overview`,title:`LLM Integration Overview`,summary:`Export specs to LLM-friendly formats, generate implementation guides, and verify implementations.`,kind:`reference`,visibility:`public`,route:`/docs/tech/llm/overview`,tags:[`llm`,`ai`,`export`,`guide`,`verify`],body:`# LLM Integration
|
|
2
2
|
|
|
3
3
|
ContractSpec provides first-class LLM integration to bridge specifications and AI coding agents.
|
|
4
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"../registry.js";e([{id:`docs.tech.mcp.endpoints`,title:`ContractSpec MCP endpoints`,summary:`Dedicated MCP servers for docs, CLI usage, and internal development.`,kind:`reference`,visibility:`mixed`,route:`/docs/tech/mcp/endpoints`,tags:[`mcp`,`docs`,`cli`,`internal`],body:"# ContractSpec MCP endpoints\n\nThree dedicated MCP servers keep AI agents efficient and scoped:\n\n- **Docs MCP**: `/api/mcp/docs` — exposes DocBlocks as resources + presentations. Tool: `docs.search`.\n- **CLI MCP**: `/api/mcp/cli` — surfaces CLI quickstart/reference/README and suggests commands. Tool: `cli.suggestCommand`.\n- **Internal MCP**: `/api/mcp/internal` — internal routing hints, playbook, and example registry access. Tool: `internal.describe`.\n\n### Usage notes\n- Transports are HTTP POST (streamable HTTP); SSE is disabled.\n- Resources are namespaced (`docs://*`, `cli://*`, `internal://*`) and are read-only.\n- Internal MCP also exposes the examples registry via `examples://*` resources:\n - `examples://list?q=<query>`\n - `examples://example/<id>`\n- Prompts mirror each surface (navigator, usage, bootstrap) for quick agent onboarding.\n- GraphQL remains at `/graphql`; health at `/health`.\n"}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"../registry.js";e([{id:`docs.tech.presentation-runtime`,title:`Presentation Runtime`,summary:`Cross-platform runtime for list pages and presentation flows.`,kind:`reference`,visibility:`public`,route:`/docs/tech/presentation-runtime`,tags:[`tech`,`presentation-runtime`],body:"## Presentation Runtime\n\nCross-platform runtime for list pages and presentation flows.\n\n### Packages\n\n- `@lssm/lib.presentation-runtime-core`: shared types and config helpers\n- `@lssm/lib.presentation-runtime-react`: React hooks (web/native-compatible API)\n- `@lssm/lib.presentation-runtime-react-native`: Native entrypoint (re-exports React API for now)\n\n### Next.js config helper\n\n```ts\n// next.config.mjs\nimport { withPresentationNextAliases } from '@lssm/lib.presentation-runtime-core/next';\n\nconst nextConfig = {\n webpack: (config) => withPresentationNextAliases(config),\n};\n\nexport default nextConfig;\n```\n\n### Metro config helper\n\n```js\n// metro.config.js (CJS)\nconst { getDefaultConfig } = require('expo/metro-config');\nconst {\n withPresentationMetroAliases,\n} = require('@lssm/lib.presentation-runtime-core/src/metro.cjs');\n\nconst projectRoot = __dirname;\nconst config = getDefaultConfig(projectRoot);\n\nmodule.exports = withPresentationMetroAliases(config);\n```\n\n### React hooks\n\n- `useListCoordinator`: URL + RHF + derived variables (no fetching)\n- `usePresentationController`: Same plus `fetcher` integration\n- `DataViewRenderer` (design-system): render `DataViewSpec` projections (`list`, `table`, `detail`, `grid`) using shared UI atoms\n\nBoth accept a `useUrlState` adapter. On web, use `useListUrlState` (design-system) or a Next adapter.\n\n### KYC molecules (bundle)\n\n- `ComplianceBadge` in `@lssm/bundle.strit/presentation/components/kyc` renders a status badge for KYC/compliance snapshots. It accepts a `state` (missing_core | incomplete | complete | expiring | unknown) and optional localized `labels`. Prefer consuming apps to pass translated labels (e.g., via `useT('appPlatformAdmin')`).\n\n### Markdown routes and llms.txt\n\n- Each web app exposes `/llms` (and `/llms.txt`, `/llms.md`) via rewrites. See [llmstxt.org](https://llmstxt.org/).\n- Catch‑all markdown handler lives at `app/[...slug].md/route.ts`. It resolves a page descriptor from `app/.presentations.manifest.json` and renders via the `presentations.v2` engine (target: `markdown`).\n- Per‑page companion convention: add `app/<route>/ai.ts` exporting a `PresentationDescriptorV2`.\n- Build‑time tool: `tools/generate-presentations-manifest.mjs <app-root>` populates the manifest.\n- CI check: `pnpm llms:check` verifies coverage (% of pages with descriptors) and fails if below threshold.\n"}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.schema.README`,title:`Multi‑File Prisma Schema Conventions (per database)`,summary:`We adopt Prisma multi‑file schema (GA ≥ v6.7) to organize each database’s models by domain and to import core LSSM module schemas locally.`,kind:`reference`,visibility:`public`,route:`/docs/tech/schema/README`,tags:[`tech`,`schema`,`README`],body:`# Multi‑File Prisma Schema Conventions (per database)
|
|
2
2
|
|
|
3
3
|
We adopt Prisma multi‑file schema (GA ≥ v6.7) to organize each database’s models by domain and to import core LSSM module schemas locally.
|
|
4
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.studio.learning-events`,title:`Studio Learning Events`,summary:`Studio persists learning/activity events to the database; Sandbox keeps learning local-first and unlogged.`,kind:`reference`,visibility:`public`,route:`/docs/tech/studio/learning-events`,tags:[`studio`,`learning`,`events`,`analytics`,`sandbox`],body:"# Studio Learning Events\n\nStudio emits lightweight **learning/activity events** to support onboarding, ambient coaching, and learning journeys.\n\n## Persistence model\n\n- **Studio**: events are persisted to the database in `StudioLearningEvent` and are organization-scoped (optionally project-scoped).\n- **Sandbox**: events remain **local-only** (unlogged); they must never be sent to backend services.\n\n## GraphQL API\n\n- `recordLearningEvent(input: { name, projectId?, payload? })`\n- `myLearningEvents(projectId?, limit?)`\n- `myOnboardingTracks(productId?, includeProgress?)`\n- `myOnboardingProgress(trackKey)`\n- `dismissOnboardingTrack(trackKey)`\n\n## Common event names (convention)\n\n- `module.navigated` — user navigated to a Studio module (payload at minimum: `{ moduleId }`).\n- `studio.template.instantiated` — created a new Studio project (starter template). Payload commonly includes `{ templateId, projectSlug }`.\n- `spec.changed` — created or updated a Studio spec. Payload may include `{ action: 'create' | 'update', specId?, specType? }`.\n- `regeneration.completed` — finished a “regen/deploy” action (currently emitted on successful Studio deploy actions).\n- `studio.evolution.applied` — completed an Evolution session (payload commonly includes `{ evolutionSessionId }`).\n\nThese events are intentionally minimal and must avoid PII/secrets in payloads.\n"}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.studio.learning-journeys`,title:`Studio learning journeys (onboarding + coach)`,summary:`DB-backed learning journeys tracked per organization: seeded tracks/steps, event-driven progress, XP/streaks, and a Studio coach surface.`,kind:`reference`,visibility:`public`,route:`/docs/tech/studio/learning-journeys`,tags:[`studio`,`learning`,`onboarding`,`journey`,`graphql`,`database`],body:`# Studio learning journeys
|
|
2
2
|
|
|
3
3
|
Studio supports **DB-backed learning journeys** (onboarding tracks + ambient coach tips) that are advanced by **recorded learning events**.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.studio.platform-admin-panel`,title:`Studio Platform Admin Panel`,summary:`How PLATFORM_ADMIN organizations manage tenant orgs and integration connections without session switching.`,kind:`reference`,visibility:`public`,route:`/docs/tech/studio/platform-admin-panel`,tags:[`studio`,`admin`,`multi-tenancy`,`integrations`,`better-auth`],body:`# Studio Platform Admin Panel
|
|
2
2
|
|
|
3
3
|
ContractSpec Studio exposes a dedicated **Platform Admin Panel** for users whose **active organization** has:
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.studio.project-access-teams`,title:`Studio Project Access via Teams`,summary:`Projects live under organizations; team sharing refines access with an admin/owner override.`,kind:`reference`,visibility:`public`,route:`/docs/tech/studio/project-access-teams`,tags:[`studio`,`projects`,`teams`,`rbac`,`access-control`],body:`# Studio Project Access via Teams
|
|
2
2
|
|
|
3
3
|
Studio access control is **organization-first** with optional **team-based sharing**.
|
|
4
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.studio.project-routing`,title:`Studio Project Routing`,summary:`Studio uses slugged, project-first routes: /studio/{projectSlug}/* with canonical slug redirects and soft-deleted projects hidden.`,kind:`reference`,visibility:`public`,route:`/docs/tech/studio/project-routing`,tags:[`studio`,`routing`,`projects`,`slug`,`redirects`],body:"# Studio Project Routing\n\nContractSpec Studio uses a **project-first URL scheme**:\n\n- `/studio/projects` — create, select, and delete projects.\n- `/studio/{projectSlug}/*` — project modules (canvas/specs/deploy/integrations/evolution/learning).\n- `/studio/learning` — learning hub that does not require selecting a project.\n\n## Studio layout shell\n\nStudio routes are wrapped in a dedicated **Studio app shell** (header + footer) that provides in-app navigation (Projects/Learning/Teams), organization switching, and account actions.\n\nProject module routes (`/studio/{projectSlug}/*`) render their own module shell (`WorkspaceProjectShellLayout`). When combined with the global Studio header, the project shell uses a **sticky header offset** to avoid overlapping sticky headers.\n\n## Slug behavior (rename-safe)\n\n- Each project has a `slug` stored in the database (`StudioProject.slug`).\n- When a project name changes, Studio **updates the slug** and stores the previous slug as an alias (`StudioProjectSlugAlias`).\n- Requests to an alias slug are **redirected to the canonical slug**.\n\nGraphQL entrypoint:\n\n- `studioProjectBySlug(slug: String!)` returns:\n - `project`\n - `canonicalSlug`\n - `wasRedirect`\n\n## Deletion behavior (soft delete)\n\nProjects are **soft-deleted**:\n\n- `deleteStudioProject(id: String!)` sets `StudioProject.deletedAt`.\n- All listings and access checks filter `deletedAt = null`.\n- Soft-deleted projects are treated as “not found” in Studio routes and GraphQL access checks.\n\n## Available modules for a selected project\n\nThe following project modules are expected under `/studio/{projectSlug}`:\n\n- `/canvas` — Visual builder canvas (stored via overlays and canvas versions).\n- `/specs` — Spec editor (stored as `StudioSpec`).\n- `/deploy` — Deployments history + triggers (stored as `StudioDeployment`).\n- `/integrations` — Integrations scoped to project (stored as `StudioIntegration`).\n- `/evolution` — Evolution sessions (stored as `EvolutionSession`).\n- `/learning` — Project learning activity.\n"}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.studio.sandbox.unlogged`,title:`Sandbox (unlogged) vs Studio (authenticated)`,summary:`The sandbox is a lightweight, unlogged surface that mirrors Studio navigation without auth or analytics.`,kind:`reference`,visibility:`public`,route:`/docs/tech/studio/sandbox-unlogged`,tags:[`studio`,`sandbox`,`privacy`,`analytics`],body:`## Sandbox guarantees
|
|
2
2
|
|
|
3
3
|
- Route: \`/sandbox\`
|
|
4
4
|
- **No auth requirement**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.studio.team-invitations`,title:`Studio Teams & Invitations`,summary:`Admin-only team management and email invitation flow to join an organization and optionally a team.`,kind:`reference`,visibility:`public`,route:`/docs/tech/studio/team-invitations`,tags:[`studio`,`teams`,`invitations`,`access-control`,`onboarding`],body:`# Studio Teams & Invitations
|
|
2
2
|
|
|
3
3
|
Studio uses **organization membership** as the base access model. Teams are optional and used to refine access to projects.
|
|
4
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"../../registry.js";e([{id:`docs.tech.studio.workspace_ops`,title:`Workspace ops (repo-linked): list / validate / deps / diff`,summary:`Read-only repo operations used by Studio to inspect and validate a linked ContractSpec workspace.`,kind:`reference`,visibility:`mixed`,route:`/docs/tech/studio/workspace-ops`,tags:[`studio`,`repo`,`workspace`,`validate`,`diff`],body:"## API surface (api-contractspec)\n\nBase: `/api/workspace-ops`\n\nThese endpoints are **read-only** in v1 and never push to git:\n\n- `GET /api/workspace-ops/:integrationId/config?organizationId=`\n- `GET /api/workspace-ops/:integrationId/specs?organizationId=`\n- `POST /api/workspace-ops/:integrationId/validate` (body: organizationId, files?, pattern?)\n- `POST /api/workspace-ops/:integrationId/deps` (body: organizationId, pattern?)\n- `POST /api/workspace-ops/:integrationId/diff` (body: organizationId, specPath, baseline?, breakingOnly?)\n\n## Repo resolution\n\n- The repo root is resolved from the Studio Integration (`IntegrationProvider.GITHUB`) config:\n - `config.repoCachePath` (preferred) or `config.localPath`\n- Resolution is constrained to `CONTRACTSPEC_REPO_CACHE_DIR` (default: `/tmp/contractspec-repos`)\n\n## Intended UX\n\n- Studio Assistant can run these checks and present results as suggestions.\n- Users can copy equivalent CLI commands for local runs:\n - `contractspec validate`\n - `contractspec deps`\n - `contractspec diff --baseline <ref>`\n"}]);
|