create-skybridge 0.0.0-dev.f7e85aa → 0.0.0-dev.f80c2df

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/index.js +335 -212
  2. package/package.json +8 -8
  3. package/templates/blank/.dockerignore +4 -0
  4. package/templates/blank/Dockerfile +53 -0
  5. package/templates/blank/README.md +92 -0
  6. package/{template → templates/blank}/_gitignore +2 -1
  7. package/templates/blank/node_modules/.bin/alpic +21 -0
  8. package/templates/blank/node_modules/.bin/sb +21 -0
  9. package/templates/blank/node_modules/.bin/skybridge +21 -0
  10. package/{template → templates/blank}/node_modules/.bin/tsc +2 -2
  11. package/{template → templates/blank}/node_modules/.bin/tsserver +2 -2
  12. package/{template → templates/blank}/node_modules/.bin/tsx +2 -2
  13. package/{template → templates/blank}/node_modules/.bin/vite +2 -2
  14. package/templates/blank/package.json +29 -0
  15. package/templates/blank/src/server.ts +16 -0
  16. package/templates/blank/tsconfig.json +5 -0
  17. package/templates/blank/vite.config.ts +12 -0
  18. package/templates/demo/.dockerignore +4 -0
  19. package/templates/demo/AGENTS.md +1 -0
  20. package/templates/demo/Dockerfile +53 -0
  21. package/{template → templates/demo}/README.md +22 -21
  22. package/templates/demo/_gitignore +7 -0
  23. package/templates/demo/alpic.json +3 -0
  24. package/templates/demo/node_modules/.bin/alpic +21 -0
  25. package/templates/demo/node_modules/.bin/sb +21 -0
  26. package/templates/demo/node_modules/.bin/skybridge +21 -0
  27. package/templates/demo/node_modules/.bin/tsc +21 -0
  28. package/templates/demo/node_modules/.bin/tsserver +21 -0
  29. package/templates/demo/node_modules/.bin/tsx +21 -0
  30. package/templates/demo/node_modules/.bin/vite +21 -0
  31. package/templates/demo/package.json +41 -0
  32. package/templates/demo/src/helpers.ts +4 -0
  33. package/templates/demo/src/index.css +59 -0
  34. package/templates/demo/src/server.ts +94 -0
  35. package/templates/demo/src/views/components/doc-link.tsx +22 -0
  36. package/templates/demo/src/views/components/doc.tsx +21 -0
  37. package/templates/demo/src/views/components/nav.tsx +31 -0
  38. package/templates/demo/src/views/components/progress.tsx +35 -0
  39. package/templates/demo/src/views/components/steps/outro.tsx +68 -0
  40. package/templates/demo/src/views/components/steps/state.tsx +47 -0
  41. package/templates/demo/src/views/components/steps/tool-call.tsx +53 -0
  42. package/templates/demo/src/views/components/steps/tool-output.tsx +40 -0
  43. package/templates/demo/src/views/images/mascot/beret.png +0 -0
  44. package/templates/demo/src/views/images/mascot/chapka.png +0 -0
  45. package/templates/demo/src/views/images/mascot/cowboy-hat.png +0 -0
  46. package/templates/demo/src/views/images/mascot/fez.png +0 -0
  47. package/templates/demo/src/views/images/mascot/jester-hat.png +0 -0
  48. package/templates/demo/src/views/images/mascot/mitre.png +0 -0
  49. package/templates/demo/src/views/images/mascot/non-la.png +0 -0
  50. package/templates/demo/src/views/images/mascot/original.png +0 -0
  51. package/templates/demo/src/views/images/mascot/propeller-beanie.png +0 -0
  52. package/templates/demo/src/views/images/mascot/ski-mask.png +0 -0
  53. package/templates/demo/src/views/images/mascot/sombrero.png +0 -0
  54. package/templates/demo/src/views/images/mascot/top-hat.png +0 -0
  55. package/templates/demo/src/views/images/mascot/viking-helmet.png +0 -0
  56. package/templates/demo/src/views/onboarding.tsx +63 -0
  57. package/templates/demo/src/views/use-mascot.ts +60 -0
  58. package/templates/demo/vite.config.ts +20 -0
  59. package/templates/ecom/.dockerignore +4 -0
  60. package/templates/ecom/.env.template +2 -0
  61. package/templates/ecom/.ladle/components.tsx +26 -0
  62. package/templates/ecom/.ladle/config.mjs +11 -0
  63. package/templates/ecom/.ladle/vite.config.ts +11 -0
  64. package/templates/ecom/AGENTS.md +2 -0
  65. package/templates/ecom/Dockerfile +53 -0
  66. package/templates/ecom/README.md +92 -0
  67. package/templates/ecom/_gitignore +9 -0
  68. package/templates/ecom/alpic.json +3 -0
  69. package/templates/ecom/node_modules/.bin/alpic +21 -0
  70. package/templates/ecom/node_modules/.bin/ladle +21 -0
  71. package/templates/ecom/node_modules/.bin/sb +21 -0
  72. package/templates/ecom/node_modules/.bin/skybridge +21 -0
  73. package/templates/ecom/node_modules/.bin/tsc +21 -0
  74. package/templates/ecom/node_modules/.bin/tsserver +21 -0
  75. package/templates/ecom/node_modules/.bin/tsx +21 -0
  76. package/templates/ecom/node_modules/.bin/vite +21 -0
  77. package/templates/ecom/package.json +41 -0
  78. package/templates/ecom/src/components/chip.css.ts +63 -0
  79. package/templates/ecom/src/components/chip.stories.tsx +27 -0
  80. package/templates/ecom/src/components/chip.tsx +49 -0
  81. package/templates/ecom/src/components/empty-state.stories.tsx +3 -0
  82. package/templates/ecom/src/components/empty-state.tsx +12 -0
  83. package/templates/ecom/src/components/expandable-text.css.ts +49 -0
  84. package/templates/ecom/src/components/expandable-text.stories.tsx +20 -0
  85. package/templates/ecom/src/components/expandable-text.tsx +53 -0
  86. package/templates/ecom/src/components/image-gallery.css.ts +172 -0
  87. package/templates/ecom/src/components/image-gallery.stories.tsx +30 -0
  88. package/templates/ecom/src/components/image-gallery.tsx +163 -0
  89. package/templates/ecom/src/components/product-card.css.ts +159 -0
  90. package/templates/ecom/src/components/product-card.stories.tsx +58 -0
  91. package/templates/ecom/src/components/product-card.tsx +102 -0
  92. package/templates/ecom/src/components/product-carousel.css.ts +134 -0
  93. package/templates/ecom/src/components/product-carousel.stories.tsx +64 -0
  94. package/templates/ecom/src/components/product-carousel.tsx +202 -0
  95. package/templates/ecom/src/components/variant-picker.css.ts +27 -0
  96. package/templates/ecom/src/components/variant-picker.stories.tsx +67 -0
  97. package/templates/ecom/src/components/variant-picker.tsx +70 -0
  98. package/templates/ecom/src/components/view-frame.css.ts +22 -0
  99. package/templates/ecom/src/components/view-frame.tsx +27 -0
  100. package/templates/ecom/src/config.ts +12 -0
  101. package/templates/ecom/src/design/contract.css.ts +39 -0
  102. package/templates/ecom/src/design/fonts.css +15 -0
  103. package/templates/ecom/src/design/primitives.css.ts +101 -0
  104. package/templates/ecom/src/design/recipes/typography.css.ts +75 -0
  105. package/templates/ecom/src/design/sprinkles.css.ts +128 -0
  106. package/templates/ecom/src/design/themes/dark.css.ts +36 -0
  107. package/templates/ecom/src/design/themes/light.css.ts +36 -0
  108. package/templates/ecom/src/design/tokens.ts +8 -0
  109. package/templates/ecom/src/helpers.ts +4 -0
  110. package/templates/ecom/src/i18n.ts +35 -0
  111. package/templates/ecom/src/index.css +9 -0
  112. package/templates/ecom/src/lib/cx.ts +9 -0
  113. package/templates/ecom/src/lib/format.ts +9 -0
  114. package/templates/ecom/src/lib/variants.ts +150 -0
  115. package/templates/ecom/src/mock.ts +112 -0
  116. package/templates/ecom/src/server.ts +43 -0
  117. package/templates/ecom/src/tools/render-carousel.ts +255 -0
  118. package/templates/ecom/src/tools/search-products.ts +199 -0
  119. package/templates/ecom/src/types.ts +15 -0
  120. package/templates/ecom/src/views/carousel/detail/detail.css.ts +115 -0
  121. package/templates/ecom/src/views/carousel/detail/detail.stories.tsx +133 -0
  122. package/templates/ecom/src/views/carousel/detail/index.tsx +254 -0
  123. package/templates/ecom/src/views/carousel/index.tsx +234 -0
  124. package/templates/ecom/tsconfig.json +11 -0
  125. package/templates/ecom/vite.config.ts +8 -0
  126. package/dist/index.test.d.ts +0 -1
  127. package/dist/index.test.js +0 -33
  128. package/template/node_modules/.bin/alpic +0 -21
  129. package/template/node_modules/.bin/sb +0 -21
  130. package/template/node_modules/.bin/skybridge +0 -21
  131. package/template/package.json +0 -35
  132. package/template/src/components/ball.tsx +0 -22
  133. package/template/src/index.css +0 -152
  134. package/template/src/server.ts +0 -62
  135. package/template/src/views/magic-8-ball.tsx +0 -10
  136. package/template/vite.config.ts +0 -13
  137. /package/{template → templates/blank}/AGENTS.md +0 -0
  138. /package/{template → templates/blank}/alpic.json +0 -0
  139. /package/{template → templates/blank}/src/helpers.ts +0 -0
  140. /package/{template → templates/demo}/tsconfig.json +0 -0
@@ -1,21 +0,0 @@
1
- #!/bin/sh
2
- basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
- case `uname` in
5
- *CYGWIN*|*MINGW*|*MSYS*)
6
- if command -v cygpath > /dev/null 2>&1; then
7
- basedir=`cygpath -w "$basedir"`
8
- fi
9
- ;;
10
- esac
11
-
12
- if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/alpic@1.104.1_@opentelemetry+api@1.9.0_arktype@2.1.27_rxjs@7.8.2_typescript@6.0.2/node_modules/alpic/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/alpic@1.104.1_@opentelemetry+api@1.9.0_arktype@2.1.27_rxjs@7.8.2_typescript@6.0.2/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules"
14
- else
15
- export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/alpic@1.104.1_@opentelemetry+api@1.9.0_arktype@2.1.27_rxjs@7.8.2_typescript@6.0.2/node_modules/alpic/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/alpic@1.104.1_@opentelemetry+api@1.9.0_arktype@2.1.27_rxjs@7.8.2_typescript@6.0.2/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules:$NODE_PATH"
16
- fi
17
- if [ -x "$basedir/node" ]; then
18
- exec "$basedir/node" "$basedir/../alpic/bin/run.js" "$@"
19
- else
20
- exec node "$basedir/../alpic/bin/run.js" "$@"
21
- fi
@@ -1,21 +0,0 @@
1
- #!/bin/sh
2
- basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
- case `uname` in
5
- *CYGWIN*|*MINGW*|*MSYS*)
6
- if command -v cygpath > /dev/null 2>&1; then
7
- basedir=`cygpath -w "$basedir"`
8
- fi
9
- ;;
10
- esac
11
-
12
- if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.35.14_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__@skybridge+devtools@0.35._9ddb2dfa56e61c7e1e71871404a50ada/node_modules/skybridge/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.35.14_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__@skybridge+devtools@0.35._9ddb2dfa56e61c7e1e71871404a50ada/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules"
14
- else
15
- export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.35.14_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__@skybridge+devtools@0.35._9ddb2dfa56e61c7e1e71871404a50ada/node_modules/skybridge/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.35.14_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__@skybridge+devtools@0.35._9ddb2dfa56e61c7e1e71871404a50ada/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules:$NODE_PATH"
16
- fi
17
- if [ -x "$basedir/node" ]; then
18
- exec "$basedir/node" "$basedir/../skybridge/bin/run.js" "$@"
19
- else
20
- exec node "$basedir/../skybridge/bin/run.js" "$@"
21
- fi
@@ -1,21 +0,0 @@
1
- #!/bin/sh
2
- basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
-
4
- case `uname` in
5
- *CYGWIN*|*MINGW*|*MSYS*)
6
- if command -v cygpath > /dev/null 2>&1; then
7
- basedir=`cygpath -w "$basedir"`
8
- fi
9
- ;;
10
- esac
11
-
12
- if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.35.14_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__@skybridge+devtools@0.35._9ddb2dfa56e61c7e1e71871404a50ada/node_modules/skybridge/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.35.14_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__@skybridge+devtools@0.35._9ddb2dfa56e61c7e1e71871404a50ada/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules"
14
- else
15
- export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.35.14_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__@skybridge+devtools@0.35._9ddb2dfa56e61c7e1e71871404a50ada/node_modules/skybridge/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.35.14_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__@skybridge+devtools@0.35._9ddb2dfa56e61c7e1e71871404a50ada/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules:$NODE_PATH"
16
- fi
17
- if [ -x "$basedir/node" ]; then
18
- exec "$basedir/node" "$basedir/../skybridge/bin/run.js" "$@"
19
- else
20
- exec node "$basedir/../skybridge/bin/run.js" "$@"
21
- fi
@@ -1,35 +0,0 @@
1
- {
2
- "name": "apps-sdk-template",
3
- "version": "0.0.1",
4
- "private": true,
5
- "description": "Alpic MCP Server Template",
6
- "type": "module",
7
- "scripts": {
8
- "dev": "skybridge dev",
9
- "dev:tunnel": "skybridge dev --tunnel",
10
- "build": "skybridge build",
11
- "start": "skybridge start",
12
- "deploy": "alpic deploy"
13
- },
14
- "dependencies": {
15
- "@modelcontextprotocol/sdk": "^1.29.0",
16
- "react": "^19.2.4",
17
- "react-dom": "^19.2.4",
18
- "skybridge": ">=0.35.14 <1.0.0",
19
- "vite": "^8.0.3",
20
- "zod": "^4.3.6"
21
- },
22
- "devDependencies": {
23
- "@skybridge/devtools": ">=0.35.14 <1.0.0",
24
- "@types/react": "^19.2.14",
25
- "@types/node": "^24.12.0",
26
- "@types/react-dom": "^19.2.3",
27
- "@vitejs/plugin-react": "^6.0.1",
28
- "alpic": "^1.104.1",
29
- "tsx": "^4.21.0",
30
- "typescript": "^6.0.2"
31
- },
32
- "engines": {
33
- "node": ">=24.14.1"
34
- }
35
- }
@@ -1,22 +0,0 @@
1
- export function Ball({
2
- question,
3
- answer,
4
- }: {
5
- question?: string;
6
- answer?: string;
7
- }) {
8
- return (
9
- <div className="container">
10
- <div className="ball">
11
- {answer ? (
12
- <>
13
- <div className="question">{question}</div>
14
- <div className="answer">{answer}</div>
15
- </>
16
- ) : (
17
- <div className="question">Shaking...</div>
18
- )}
19
- </div>
20
- </div>
21
- );
22
- }
@@ -1,152 +0,0 @@
1
- @import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@1,600&display=swap");
2
-
3
- .container {
4
- display: flex;
5
- justify-content: center;
6
- align-items: center;
7
- min-height: 100%;
8
- padding: 1rem;
9
- box-sizing: border-box;
10
- }
11
-
12
- .ball {
13
- background: radial-gradient(
14
- circle at 30% 30%,
15
- #454565 0%,
16
- #1c1c30 40%,
17
- #0a0a10 100%
18
- );
19
- border-radius: 50%;
20
- width: 12rem;
21
- height: 12rem;
22
- display: flex;
23
- flex-direction: column;
24
- align-items: center;
25
- justify-content: center;
26
- font-family: monospace;
27
- text-align: center;
28
- position: relative;
29
- box-shadow:
30
- 0 10px 30px rgba(0, 0, 0, 0.5),
31
- 0 5px 15px rgba(0, 0, 0, 0.3),
32
- inset 0 -20px 40px rgba(0, 0, 0, 0.6);
33
- animation:
34
- float 3s ease-in-out infinite,
35
- colorShift 15s ease-in-out infinite;
36
- transition: transform 0.3s ease;
37
- cursor: pointer;
38
- border: 1px solid rgba(30, 30, 50, 0.6);
39
- }
40
-
41
- .ball:hover {
42
- transform: scale(1.05) translateY(-8px);
43
- animation: colorShift 15s ease-in-out infinite;
44
- box-shadow:
45
- 0 20px 50px rgba(0, 0, 0, 0.6),
46
- 0 10px 25px rgba(0, 0, 0, 0.4),
47
- inset 0 -20px 40px rgba(0, 0, 0, 0.6);
48
- }
49
-
50
- @keyframes float {
51
- 0%,
52
- 100% {
53
- transform: translateY(0);
54
- }
55
- 50% {
56
- transform: translateY(-8px);
57
- }
58
- }
59
-
60
- @keyframes colorShift {
61
- 0%,
62
- 100% {
63
- background: radial-gradient(
64
- circle at 30% 30%,
65
- #454565 0%,
66
- #1c1c30 40%,
67
- #0a0a10 100%
68
- );
69
- }
70
- 25% {
71
- background: radial-gradient(
72
- circle at 30% 30%,
73
- #3f4a65 0%,
74
- #181e30 40%,
75
- #090a10 100%
76
- );
77
- }
78
- 50% {
79
- background: radial-gradient(
80
- circle at 30% 30%,
81
- #3a5065 0%,
82
- #152230 40%,
83
- #080a10 100%
84
- );
85
- }
86
- 75% {
87
- background: radial-gradient(
88
- circle at 30% 30%,
89
- #3f4a65 0%,
90
- #181e30 40%,
91
- #090a10 100%
92
- );
93
- }
94
- }
95
-
96
- .ball::before {
97
- content: "";
98
- position: absolute;
99
- top: 8%;
100
- left: 20%;
101
- width: 30%;
102
- height: 20%;
103
- background: radial-gradient(
104
- ellipse,
105
- rgba(255, 255, 255, 0.3) 0%,
106
- transparent 70%
107
- );
108
- border-radius: 50%;
109
- pointer-events: none;
110
- }
111
-
112
- .ball::after {
113
- content: "";
114
- position: absolute;
115
- bottom: 8%;
116
- right: 25%;
117
- width: 25%;
118
- height: 10%;
119
- background: radial-gradient(
120
- ellipse,
121
- rgba(255, 255, 255, 0.1) 0%,
122
- transparent 70%
123
- );
124
- border-radius: 50%;
125
- pointer-events: none;
126
- }
127
-
128
- .question {
129
- font-size: clamp(0.5rem, 2vw, 0.75rem);
130
- color: lightgrey;
131
- max-width: 90%;
132
- word-wrap: break-word;
133
- overflow-wrap: break-word;
134
- text-align: center;
135
- line-height: 1.3;
136
- font-style: italic;
137
- }
138
-
139
- .answer {
140
- font-family: "Playfair Display", serif;
141
- font-style: italic;
142
- font-size: 1.25rem;
143
- font-weight: 600;
144
- margin-top: 0.5rem;
145
- color: #7dd3fc;
146
- text-shadow: 0 0 10px rgba(125, 211, 252, 0.5);
147
- max-width: 90%;
148
- word-wrap: break-word;
149
- overflow-wrap: break-word;
150
- text-align: center;
151
- line-height: 1.3;
152
- }
@@ -1,62 +0,0 @@
1
- import { McpServer } from "skybridge/server";
2
- import { z } from "zod";
3
-
4
- const Answers = [
5
- "As I see it, yes",
6
- "Don't count on it",
7
- "It is certain",
8
- "It is decidedly so",
9
- "Most likely",
10
- "My reply is no",
11
- "My sources say no",
12
- "Outlook good",
13
- "Outlook not so good",
14
- "Signs point to yes",
15
- "Very doubtful",
16
- "Without a doubt",
17
- "Yes definitely",
18
- "Yes",
19
- "You may rely on it",
20
- ];
21
-
22
- const server = new McpServer(
23
- {
24
- name: "alpic-openai-app",
25
- version: "0.0.1",
26
- },
27
- { capabilities: {} },
28
- ).registerTool(
29
- {
30
- name: "magic-8-ball",
31
- description: "For fortune-telling or seeking advice.",
32
- inputSchema: {
33
- question: z.string().describe("The user question."),
34
- },
35
- view: {
36
- component: "magic-8-ball",
37
- description: "Magic 8 Ball",
38
- },
39
- },
40
- async ({ question }) => {
41
- try {
42
- const hash = question
43
- .split("")
44
- .reduce((acc, char) => acc + char.charCodeAt(0), 0);
45
- const answer = Answers[hash % Answers.length];
46
- return {
47
- structuredContent: { answer },
48
- content: [],
49
- isError: false,
50
- };
51
- } catch (error) {
52
- return {
53
- content: [{ type: "text", text: `Error: ${error}` }],
54
- isError: true,
55
- };
56
- }
57
- },
58
- );
59
-
60
- server.run();
61
-
62
- export type AppType = typeof server;
@@ -1,10 +0,0 @@
1
- import "@/index.css";
2
-
3
- import { Ball } from "../components/ball.js";
4
- import { useToolInfo } from "../helpers.js";
5
-
6
- export default function Magic8Ball() {
7
- const { input, output } = useToolInfo<"magic-8-ball">();
8
-
9
- return <Ball question={input?.question} answer={output?.answer} />;
10
- }
@@ -1,13 +0,0 @@
1
- import path from "node:path";
2
- import react from "@vitejs/plugin-react";
3
- import { skybridge } from "skybridge/web";
4
- import { defineConfig } from "vite";
5
-
6
- export default defineConfig({
7
- plugins: [skybridge(), react()],
8
- resolve: {
9
- alias: {
10
- "@": path.resolve(__dirname, "./src"),
11
- },
12
- },
13
- });
File without changes
File without changes
File without changes
File without changes