@skybridge/devtools 0.0.0-dev.fc2ea93 → 0.0.0-dev.fc70f67
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/dist/alpic-sdk.d.ts +2 -0
- package/dist/alpic-sdk.js +3 -0
- package/dist/alpic-sdk.js.map +1 -0
- package/dist/assets/index-7DjOd7pp.css +2 -0
- package/dist/assets/index-CNq9A85Z.js +220 -0
- package/dist/deploy-router.d.ts +1 -6
- package/dist/deploy-router.js +23 -91
- package/dist/deploy-router.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.html +2 -2
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/skybridge.svg +1 -0
- package/package.json +36 -36
- package/dist/assets/index-BUxocntf.js +0 -190
- package/dist/assets/index-Cf7N7CBv.css +0 -2
package/dist/deploy-router.d.ts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import { Alpic } from "@alpic-ai/sdk";
|
|
2
1
|
import { type Router } from "express";
|
|
3
2
|
/**
|
|
4
3
|
* Dev-only router that drives the devtools Deploy button. Runs `@alpic-ai/sdk`
|
|
5
4
|
* in-process (no CLI spawning): `/status` is a plain request, deploy progress
|
|
6
5
|
* streams over SSE at `/events`.
|
|
7
|
-
*
|
|
8
|
-
* ponytail: deploy state + subscriber set are per-router-instance (closure
|
|
9
|
-
* scoped). The dev server mounts one router for one project, so a single
|
|
10
|
-
* in-flight deploy is fine; no change needed unless it ever hosts several.
|
|
11
6
|
*/
|
|
12
|
-
export declare function createDeployRouter(
|
|
7
|
+
export declare function createDeployRouter(): Router;
|
package/dist/deploy-router.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { Alpic, } from "@alpic-ai/sdk";
|
|
4
1
|
import express, {} from "express";
|
|
5
|
-
|
|
2
|
+
import { alpic } from "./alpic-sdk.js";
|
|
6
3
|
const TOTAL_STEPS = 4;
|
|
7
4
|
const PHASE_STEPS = {
|
|
8
5
|
collecting: { step: 1, label: "Collecting files" },
|
|
@@ -16,36 +13,13 @@ const phaseText = (type) => {
|
|
|
16
13
|
return `${step}/${TOTAL_STEPS} ${label}`;
|
|
17
14
|
};
|
|
18
15
|
const errMessage = (err, fallback) => err instanceof Error ? err.message : fallback;
|
|
19
|
-
const configPath = () => join(process.cwd(), ".alpic", "project.json");
|
|
20
|
-
function loadConfig() {
|
|
21
|
-
const path = configPath();
|
|
22
|
-
if (!existsSync(path)) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
return JSON.parse(readFileSync(path, "utf8"));
|
|
26
|
-
}
|
|
27
|
-
function saveConfig(cfg) {
|
|
28
|
-
mkdirSync(join(process.cwd(), ".alpic"), { recursive: true });
|
|
29
|
-
writeFileSync(configPath(), JSON.stringify(cfg, null, 2));
|
|
30
|
-
}
|
|
31
16
|
/**
|
|
32
17
|
* Dev-only router that drives the devtools Deploy button. Runs `@alpic-ai/sdk`
|
|
33
18
|
* in-process (no CLI spawning): `/status` is a plain request, deploy progress
|
|
34
19
|
* streams over SSE at `/events`.
|
|
35
|
-
*
|
|
36
|
-
* ponytail: deploy state + subscriber set are per-router-instance (closure
|
|
37
|
-
* scoped). The dev server mounts one router for one project, so a single
|
|
38
|
-
* in-flight deploy is fine; no change needed unless it ever hosts several.
|
|
39
20
|
*/
|
|
40
|
-
export function createDeployRouter(
|
|
21
|
+
export function createDeployRouter() {
|
|
41
22
|
const router = express.Router();
|
|
42
|
-
// Lazy: `new Alpic()` reads server-side env at construction, so defer it to
|
|
43
|
-
// the first request rather than mount time (keeps createApp test-safe).
|
|
44
|
-
let alpicInstance = alpicOverride;
|
|
45
|
-
const alpic = () => {
|
|
46
|
-
alpicInstance ??= new Alpic();
|
|
47
|
-
return alpicInstance;
|
|
48
|
-
};
|
|
49
23
|
let state = { status: "idle" };
|
|
50
24
|
const subscribers = new Set();
|
|
51
25
|
const write = (res, s) => {
|
|
@@ -67,7 +41,7 @@ export function createDeployRouter(alpicOverride) {
|
|
|
67
41
|
});
|
|
68
42
|
let pageUrl = null;
|
|
69
43
|
try {
|
|
70
|
-
const result = await alpic
|
|
44
|
+
const result = await alpic.deployments.deploy({
|
|
71
45
|
environmentId,
|
|
72
46
|
teamId,
|
|
73
47
|
onProgress: (event) => {
|
|
@@ -107,45 +81,29 @@ export function createDeployRouter(alpicOverride) {
|
|
|
107
81
|
};
|
|
108
82
|
router.get("/__skybridge/deploy/status", async (_req, res) => {
|
|
109
83
|
try {
|
|
110
|
-
const whoami = await alpic
|
|
84
|
+
const whoami = await alpic.whoami();
|
|
111
85
|
if (whoami.method === "unauthenticated") {
|
|
112
86
|
res.json({ state: "signedOut" });
|
|
113
87
|
return;
|
|
114
88
|
}
|
|
115
|
-
const
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
res.json({ state: "noTeam" });
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
const cfg = loadConfig();
|
|
89
|
+
const loaded = alpic.projects.loadConfig();
|
|
90
|
+
const cfg = loaded && (await alpic.projects.validateLink(loaded));
|
|
91
|
+
const staleConfig = loaded !== null && cfg === null;
|
|
122
92
|
if (!cfg) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
projectId: cfg.projectId,
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
catch {
|
|
133
|
-
// Stale config: linked project deleted/inaccessible — fall back to first deploy.
|
|
93
|
+
const teams = await alpic.api.teams.list.v1();
|
|
94
|
+
const team = teams[0];
|
|
95
|
+
if (!team) {
|
|
96
|
+
res.json({ state: "noTeam" });
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
134
99
|
res.json({
|
|
135
100
|
state: "needsProject",
|
|
136
101
|
teams,
|
|
137
102
|
defaultTeamId: team.id,
|
|
138
|
-
staleConfig
|
|
103
|
+
staleConfig,
|
|
139
104
|
});
|
|
140
105
|
return;
|
|
141
106
|
}
|
|
142
|
-
// Surface the live URL + deployment page so the persistent "Deployed"
|
|
143
|
-
// view renders on load (not only after a fresh deploy). A git-driven
|
|
144
|
-
// latest deploy (commit/author set) means the last deploy came from a
|
|
145
|
-
// connected repo, not this local button — expose its details so the UI
|
|
146
|
-
// can inform + warn before redeploying over it.
|
|
147
|
-
// ponytail: git vs local is the only distinction the API exposes; CLI and
|
|
148
|
-
// devtools local deploys are indistinguishable.
|
|
149
107
|
let lastDeployGit = null;
|
|
150
108
|
let lastDeployStatus;
|
|
151
109
|
let lastDeployStartedAt;
|
|
@@ -153,7 +111,7 @@ export function createDeployRouter(alpicOverride) {
|
|
|
153
111
|
let deploymentPageUrl = null;
|
|
154
112
|
if (cfg.environmentId) {
|
|
155
113
|
try {
|
|
156
|
-
const latest = await alpic
|
|
114
|
+
const latest = await alpic.deployments.getLatestForEnvironment(cfg.environmentId);
|
|
157
115
|
if (latest.sourceCommitId !== null) {
|
|
158
116
|
lastDeployGit = {
|
|
159
117
|
ref: latest.sourceRef,
|
|
@@ -165,7 +123,7 @@ export function createDeployRouter(alpicOverride) {
|
|
|
165
123
|
lastDeployStartedAt = latest.startedAt?.getTime();
|
|
166
124
|
deploymentPageUrl = latest.deploymentPageUrl;
|
|
167
125
|
if (latest.status === "deployed") {
|
|
168
|
-
const environment = await alpic
|
|
126
|
+
const environment = await alpic.api.environments.get.v1({
|
|
169
127
|
environmentId: cfg.environmentId,
|
|
170
128
|
});
|
|
171
129
|
mcpServerUrl = environment.mcpServerUrl;
|
|
@@ -177,9 +135,6 @@ export function createDeployRouter(alpicOverride) {
|
|
|
177
135
|
}
|
|
178
136
|
res.json({
|
|
179
137
|
state: "ready",
|
|
180
|
-
team,
|
|
181
|
-
project: { id: project.id, name: project.name },
|
|
182
|
-
environmentId: cfg.environmentId,
|
|
183
138
|
lastDeployGit,
|
|
184
139
|
lastDeployStatus,
|
|
185
140
|
lastDeployStartedAt,
|
|
@@ -201,50 +156,27 @@ export function createDeployRouter(alpicOverride) {
|
|
|
201
156
|
}
|
|
202
157
|
const name = typeof req.body?.name === "string" ? req.body.name.trim() : "";
|
|
203
158
|
const teamId = typeof req.body?.teamId === "string" ? req.body.teamId : "";
|
|
159
|
+
const teamName = typeof req.body?.teamName === "string" ? req.body.teamName : undefined;
|
|
204
160
|
if (!name || !teamId) {
|
|
205
161
|
res.status(400).json({ message: "name and teamId are required." });
|
|
206
162
|
return;
|
|
207
163
|
}
|
|
208
164
|
try {
|
|
209
|
-
const existing = await alpic
|
|
165
|
+
const existing = await alpic.api.projects.list.v1({ teamId });
|
|
210
166
|
if (existing.some((p) => p.name === name)) {
|
|
211
167
|
res
|
|
212
168
|
.status(409)
|
|
213
169
|
.json({ message: `A project named "${name}" already exists.` });
|
|
214
170
|
return;
|
|
215
171
|
}
|
|
216
|
-
const
|
|
172
|
+
const cfg = await alpic.projects.createLinked({
|
|
217
173
|
name,
|
|
218
174
|
teamId,
|
|
219
|
-
runtime: "node24",
|
|
220
|
-
});
|
|
221
|
-
const productionEnv = created.productionEnvironment;
|
|
222
|
-
if (!productionEnv) {
|
|
223
|
-
res.status(500).json({
|
|
224
|
-
message: "Project created without a Production environment.",
|
|
225
|
-
});
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
// Best-effort: teamName is cosmetic + optional. A failure here must not
|
|
229
|
-
// skip saveConfig, or the created project is orphaned (config never
|
|
230
|
-
// written → next attempt hits the name-conflict 409).
|
|
231
|
-
let teamName;
|
|
232
|
-
try {
|
|
233
|
-
teamName = (await alpic().api.teams.list.v1()).find((t) => t.id === teamId)?.name;
|
|
234
|
-
}
|
|
235
|
-
catch {
|
|
236
|
-
// ignore — proceed without teamName
|
|
237
|
-
}
|
|
238
|
-
saveConfig({
|
|
239
|
-
projectId: created.id,
|
|
240
|
-
teamId: created.teamId,
|
|
241
175
|
teamName,
|
|
242
|
-
|
|
243
|
-
environmentId: productionEnv.id,
|
|
244
|
-
environmentName: productionEnv.name,
|
|
176
|
+
runtime: alpic.projects.detectRuntime() ?? "node24",
|
|
245
177
|
});
|
|
246
178
|
res.status(202).json({ ok: true });
|
|
247
|
-
void runDeploy(
|
|
179
|
+
void runDeploy(cfg.environmentId, cfg.teamId);
|
|
248
180
|
}
|
|
249
181
|
catch (err) {
|
|
250
182
|
res.status(502).json({
|
|
@@ -254,7 +186,7 @@ export function createDeployRouter(alpicOverride) {
|
|
|
254
186
|
});
|
|
255
187
|
router.post("/__skybridge/deploy/login", async (_req, res) => {
|
|
256
188
|
try {
|
|
257
|
-
await alpic
|
|
189
|
+
await alpic.auth.login();
|
|
258
190
|
res.json({ ok: true });
|
|
259
191
|
}
|
|
260
192
|
catch (err) {
|
|
@@ -268,7 +200,7 @@ export function createDeployRouter(alpicOverride) {
|
|
|
268
200
|
res.status(409).json({ message: "A deployment is already in progress." });
|
|
269
201
|
return;
|
|
270
202
|
}
|
|
271
|
-
const cfg = loadConfig();
|
|
203
|
+
const cfg = alpic.projects.loadConfig();
|
|
272
204
|
if (!cfg?.environmentId) {
|
|
273
205
|
res.status(409).json({ message: "No linked project to redeploy." });
|
|
274
206
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-router.js","sourceRoot":"","sources":["../src/deploy-router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy-router.js","sourceRoot":"","sources":["../src/deploy-router.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Skybridge MCP devtools</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CNq9A85Z.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-7DjOd7pp.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/skybridge.svg
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<svg width="90" height="90" viewBox="0 0 90 90" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<title>Skybridge</title>
|
|
2
3
|
<g clip-path="url(#clip0_3933_970)">
|
|
3
4
|
<mask id="mask0_3933_970" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="90" height="90">
|
|
4
5
|
<path d="M90 0H0V90H90V0Z" fill="white"/>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skybridge/devtools",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.fc70f67",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,61 +16,61 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@alpic-ai/sdk": "^1.
|
|
19
|
+
"@alpic-ai/sdk": "^1.147.1",
|
|
20
20
|
"@t3-oss/env-core": "^0.13.11",
|
|
21
21
|
"cors": "^2.8.6",
|
|
22
22
|
"express": "^5.2.1",
|
|
23
|
-
"zod": "^4.3
|
|
23
|
+
"zod": "^4.4.3"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@alpic-ai/ui": "^1.
|
|
27
|
-
"@base-ui/react": "^1.
|
|
26
|
+
"@alpic-ai/ui": "^1.147.1",
|
|
27
|
+
"@base-ui/react": "^1.6.0",
|
|
28
28
|
"@fontsource-variable/jetbrains-mono": "^5.2.8",
|
|
29
29
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
30
|
-
"@playwright/test": "^1.
|
|
31
|
-
"@radix-ui/react-accordion": "^1.2.
|
|
32
|
-
"@radix-ui/react-tooltip": "^1.2.
|
|
33
|
-
"@rjsf/core": "^6.
|
|
34
|
-
"@rjsf/shadcn": "^6.
|
|
35
|
-
"@rjsf/utils": "^6.
|
|
36
|
-
"@rjsf/validator-ajv8": "^6.
|
|
37
|
-
"@tailwindcss/vite": "^4.
|
|
38
|
-
"@tanstack/react-query": "^5.
|
|
30
|
+
"@playwright/test": "^1.61.1",
|
|
31
|
+
"@radix-ui/react-accordion": "^1.2.15",
|
|
32
|
+
"@radix-ui/react-tooltip": "^1.2.11",
|
|
33
|
+
"@rjsf/core": "^6.6.2",
|
|
34
|
+
"@rjsf/shadcn": "^6.6.2",
|
|
35
|
+
"@rjsf/utils": "^6.6.2",
|
|
36
|
+
"@rjsf/validator-ajv8": "^6.6.2",
|
|
37
|
+
"@tailwindcss/vite": "^4.3.2",
|
|
38
|
+
"@tanstack/react-query": "^5.101.2",
|
|
39
39
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
40
40
|
"@types/cors": "^2.8.19",
|
|
41
41
|
"@types/express": "^5.0.6",
|
|
42
42
|
"@types/lodash-es": "^4.17.12",
|
|
43
|
-
"@types/react": "^19.2.
|
|
43
|
+
"@types/react": "^19.2.17",
|
|
44
44
|
"@types/react-dom": "^19.2.3",
|
|
45
45
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
46
|
-
"@vitejs/plugin-react": "^6.0.
|
|
46
|
+
"@vitejs/plugin-react": "^6.0.3",
|
|
47
47
|
"ahooks": "^3.9.7",
|
|
48
|
-
"autoprefixer": "^10.
|
|
48
|
+
"autoprefixer": "^10.5.2",
|
|
49
49
|
"class-variance-authority": "^0.7.1",
|
|
50
50
|
"clsx": "^2.1.1",
|
|
51
51
|
"cmdk": "^1.1.1",
|
|
52
|
-
"framer-motion": "^12.
|
|
53
|
-
"lodash-es": "^4.
|
|
54
|
-
"lucide-react": "^1.
|
|
55
|
-
"motion": "^12.
|
|
56
|
-
"nuqs": "^2.
|
|
57
|
-
"postcss": "^8.5.
|
|
58
|
-
"react": "^19.2.
|
|
59
|
-
"react-dom": "^19.2.
|
|
60
|
-
"react-resizable-panels": "^4.
|
|
52
|
+
"framer-motion": "^12.42.2",
|
|
53
|
+
"lodash-es": "^4.18.1",
|
|
54
|
+
"lucide-react": "^1.23.0",
|
|
55
|
+
"motion": "^12.42.2",
|
|
56
|
+
"nuqs": "^2.9.0",
|
|
57
|
+
"postcss": "^8.5.16",
|
|
58
|
+
"react": "^19.2.7",
|
|
59
|
+
"react-dom": "^19.2.7",
|
|
60
|
+
"react-resizable-panels": "^4.12.1",
|
|
61
61
|
"react-syntax-highlighter": "^16.1.1",
|
|
62
|
-
"shadcn": "^4.
|
|
63
|
-
"shiki": "^4.
|
|
64
|
-
"tailwind-merge": "^3.
|
|
65
|
-
"tailwindcss": "^4.
|
|
62
|
+
"shadcn": "^4.13.0",
|
|
63
|
+
"shiki": "^4.3.1",
|
|
64
|
+
"tailwind-merge": "^3.6.0",
|
|
65
|
+
"tailwindcss": "^4.3.2",
|
|
66
66
|
"tailwindcss-animate": "^1.0.7",
|
|
67
|
-
"tsx": "^4.
|
|
67
|
+
"tsx": "^4.23.0",
|
|
68
68
|
"tw-animate-css": "^1.4.0",
|
|
69
|
-
"typescript": "~6.0.
|
|
70
|
-
"vite": "^8.
|
|
71
|
-
"vitest": "^4.1.
|
|
72
|
-
"zustand": "^5.0.
|
|
73
|
-
"skybridge": "0.0.0-dev.
|
|
69
|
+
"typescript": "~6.0.3",
|
|
70
|
+
"vite": "^8.1.3",
|
|
71
|
+
"vitest": "^4.1.9",
|
|
72
|
+
"zustand": "^5.0.14",
|
|
73
|
+
"skybridge": "0.0.0-dev.fc70f67"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
76
|
"dev": "vite",
|