flyspace-cli 0.1.19 → 0.1.25
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/brand/favicon.svg +39 -0
- package/dist/brand/icons/icon-512.png +0 -0
- package/dist/{chunk-GDPYN4HT.js → chunk-B5NWSWAM.js} +19 -3
- package/dist/cli.js +3544 -3480
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
|
2
|
+
<g transform="translate(0.000000,1024.000000) scale(0.100000,-0.100000)" fill="#5052f2" stroke="none">
|
|
3
|
+
<path d="M8237 8664 c-4 -4 -7 -16 -7 -27 0 -12 -5 -34 -10 -51 -6 -17 -26
|
|
4
|
+
-83 -45 -146 -19 -63 -40 -133 -47 -155 -7 -24 -34 -62 -68 -96 -47 -47 -67
|
|
5
|
+
-59 -140 -83 -75 -25 -198 -60 -298 -86 -19 -4 -36 -11 -39 -13 -9 -10 8 -27
|
|
6
|
+
26 -27 10 0 41 -7 67 -15 27 -8 96 -29 154 -46 153 -47 200 -70 246 -122 42
|
|
7
|
+
-48 75 -135 129 -342 43 -164 48 -165 85 -20 42 165 96 314 127 354 47 60 173
|
|
8
|
+
113 408 173 136 35 133 40 -50 88 -174 46 -292 93 -332 132 -18 18 -44 55 -57
|
|
9
|
+
83 -26 55 -109 321 -118 379 -3 21 -20 31 -31 20z m31 -87 c6 -6 14 -26 17
|
|
10
|
+
-42 9 -38 52 -176 73 -235 24 -69 68 -127 117 -155 47 -28 205 -85 295 -106
|
|
11
|
+
64 -15 90 -33 72 -51 -6 -6 -64 -26 -129 -45 -186 -53 -262 -91 -307 -153 -32
|
|
12
|
+
-43 -105 -245 -121 -332 -16 -83 -51 -64 -79 42 -61 226 -101 308 -173 353
|
|
13
|
+
-43 27 -239 95 -320 112 -17 3 -37 13 -44 21 -19 23 5 39 86 59 83 21 223 68
|
|
14
|
+
263 89 70 36 115 113 162 276 12 41 25 85 31 98 5 13 9 31 9 40 0 18 18 42 31
|
|
15
|
+
42 4 0 11 -6 17 -13z M7855 7619 c-47 -30 -225 -105 -353 -150 -477 -165
|
|
16
|
+
-1133 -275 -1907 -320 -104 -6 -529 -13 -942 -16 -600 -4 -753 -8 -753 -18 0
|
|
17
|
+
-7 -39 -134 -86 -281 -47 -148 -120 -375 -161 -504 -41 -129 -110 -345 -153
|
|
18
|
+
-480 -43 -135 -146 -461 -230 -725 -83 -264 -194 -615 -247 -780 -52 -165
|
|
19
|
+
-122 -385 -155 -490 -32 -104 -90 -287 -128 -405 -70 -220 -343 -1081 -431
|
|
20
|
+
-1361 -27 -86 -49 -159 -49 -162 0 -3 70 42 155 101 425 294 601 415 1085 746
|
|
21
|
+
135 93 255 178 267 190 13 13 39 76 66 161 163 506 297 933 297 943 0 15 -19
|
|
22
|
+
15 -175 -3 -132 -16 -306 -53 -369 -79 -30 -12 -37 -12 -46 -1 -32 38 307 194
|
|
23
|
+
550 254 47 11 172 37 279 56 308 56 496 109 746 210 590 238 1142 654 1519
|
|
24
|
+
1144 31 41 54 76 52 78 -3 3 -19 -5 -35 -17 -80 -56 -353 -163 -571 -224 -341
|
|
25
|
+
-94 -821 -160 -1355 -185 -131 -6 -173 -5 -184 4 -11 11 2 60 78 295 50 155
|
|
26
|
+
91 287 91 292 0 26 -350 -19 -508 -65 -65 -19 -84 -21 -92 -11 -14 15 16 37
|
|
27
|
+
125 91 202 101 443 169 720 203 334 40 559 83 813 156 749 213 1424 617 1948
|
|
28
|
+
1166 115 121 190 208 177 207 -4 0 -21 -9 -38 -20z"/>
|
|
29
|
+
</g>
|
|
30
|
+
<g transform="translate(0.000000,1024.000000) scale(0.100000,-0.100000)" fill="#9da7fe" stroke="none">
|
|
31
|
+
<path d="M8247 8640 c-4 -8 -13 -40 -21 -70 -8 -30 -22 -77 -30 -105 -8 -27
|
|
32
|
+
-21 -73 -29 -100 -33 -119 -84 -197 -151 -232 -42 -22 -156 -60 -261 -88 -50
|
|
33
|
+
-13 -104 -29 -120 -35 l-30 -12 65 -19 c36 -11 83 -24 105 -31 102 -29 223
|
|
34
|
+
-73 258 -95 75 -47 113 -129 182 -388 14 -55 29 -107 32 -115 3 -8 16 26 28
|
|
35
|
+
75 43 169 97 319 131 365 30 41 54 58 151 103 18 8 102 35 188 59 85 23 155
|
|
36
|
+
46 155 49 0 3 -42 16 -92 28 -129 32 -281 85 -333 116 -47 27 -93 86 -114 145
|
|
37
|
+
-27 75 -81 257 -101 335 -5 21 -9 25 -13 15z"/>
|
|
38
|
+
</g>
|
|
39
|
+
</svg>
|
|
Binary file
|
|
@@ -600,6 +600,10 @@ async function updateChannelById(id, patch) {
|
|
|
600
600
|
if (existing?.isDefault && (patch.visibility === "private" || patch.archivedAt || patch.isDefault === false || patch.name !== void 0 && patch.name.trim() !== existing.name)) {
|
|
601
601
|
throw new DefaultChannelError();
|
|
602
602
|
}
|
|
603
|
+
if (patch.cwd !== void 0 && existing && patch.cwd === existing.cwd) {
|
|
604
|
+
const { cwd: _unchanged, ...rest } = patch;
|
|
605
|
+
patch = rest;
|
|
606
|
+
}
|
|
603
607
|
if (patch.cwd !== void 0) {
|
|
604
608
|
patch = { ...patch, cwd: await assertCwdInWorkspace(existing?.profile ?? getProfile(), patch.cwd) };
|
|
605
609
|
}
|
|
@@ -652,9 +656,12 @@ async function ensureChannelProvisioned(externalChannelId, opts = {}) {
|
|
|
652
656
|
async function upsertChannelByAgentName(input) {
|
|
653
657
|
const { data, error } = await getSupabaseClient().from("channels").upsert(
|
|
654
658
|
{ ...toRow(input), profile: getProfile(), updated_at: (/* @__PURE__ */ new Date()).toISOString() },
|
|
655
|
-
{ onConflict: "agent_name" }
|
|
659
|
+
{ onConflict: "profile,agent_name" }
|
|
656
660
|
).select().single();
|
|
657
661
|
if (error) throw new Error(error.message);
|
|
662
|
+
if (data.profile !== getProfile()) {
|
|
663
|
+
throw new Error(`agent DM upsert for ${input.agentName} resolved to another workspace's channel`);
|
|
664
|
+
}
|
|
658
665
|
await refreshChannelRegistry();
|
|
659
666
|
return rowToChannel(data);
|
|
660
667
|
}
|
|
@@ -2563,13 +2570,14 @@ var workspaceCache = /* @__PURE__ */ new Map();
|
|
|
2563
2570
|
async function getWorkspaceBySlug(slug) {
|
|
2564
2571
|
const cached = workspaceCache.get(slug);
|
|
2565
2572
|
if (cached && cached.expiresAt > Date.now()) return cached.workspace;
|
|
2566
|
-
const { data, error } = await getSupabaseClient().from("workspaces").select("id, slug, agent_connected_at, projects_setup_at").eq("slug", slug).maybeSingle();
|
|
2573
|
+
const { data, error } = await getSupabaseClient().from("workspaces").select("id, slug, agent_connected_at, projects_setup_at, plan").eq("slug", slug).maybeSingle();
|
|
2567
2574
|
if (error) throw new Error(`getWorkspaceBySlug(${slug}): ${error.message}`);
|
|
2568
2575
|
const workspace = data ? {
|
|
2569
2576
|
id: data.id,
|
|
2570
2577
|
slug: data.slug,
|
|
2571
2578
|
agentConnectedAt: data.agent_connected_at,
|
|
2572
|
-
projectsSetupAt: data.projects_setup_at
|
|
2579
|
+
projectsSetupAt: data.projects_setup_at,
|
|
2580
|
+
plan: data.plan ?? null
|
|
2573
2581
|
} : null;
|
|
2574
2582
|
workspaceCache.set(slug, { workspace, expiresAt: Date.now() + WORKSPACE_CACHE_TTL_MS });
|
|
2575
2583
|
return workspace;
|
|
@@ -2634,6 +2642,13 @@ async function markWorkspaceProjectsSetup(workspaceId) {
|
|
|
2634
2642
|
async function markWorkspaceGreeted(workspaceId) {
|
|
2635
2643
|
await stampOnce(workspaceId, "greeted_at");
|
|
2636
2644
|
}
|
|
2645
|
+
async function resetWorkspaceOnboarding(workspaceId) {
|
|
2646
|
+
const { error } = await getSupabaseClient().from("workspaces").update({ projects_setup_at: null, greeted_at: null }).eq("id", workspaceId);
|
|
2647
|
+
if (error) throw new Error(`resetWorkspaceOnboarding(${workspaceId}): ${error.message}`);
|
|
2648
|
+
for (const [slug, entry] of workspaceCache) {
|
|
2649
|
+
if (entry.workspace?.id === workspaceId) workspaceCache.delete(slug);
|
|
2650
|
+
}
|
|
2651
|
+
}
|
|
2637
2652
|
async function getWorkspaceGreetedAt(workspaceId) {
|
|
2638
2653
|
const { data, error } = await getSupabaseClient().from("workspaces").select("greeted_at").eq("id", workspaceId).maybeSingle();
|
|
2639
2654
|
if (error) throw new Error(`getWorkspaceGreetedAt(${workspaceId}): ${error.message}`);
|
|
@@ -9021,6 +9036,7 @@ export {
|
|
|
9021
9036
|
setWorkspaceStripeSubscription,
|
|
9022
9037
|
markWorkspaceProjectsSetup,
|
|
9023
9038
|
markWorkspaceGreeted,
|
|
9039
|
+
resetWorkspaceOnboarding,
|
|
9024
9040
|
getWorkspaceGreetedAt,
|
|
9025
9041
|
getWorkspaceByStripeCustomerId,
|
|
9026
9042
|
getWorkspaceBilling,
|