skydive-cli 0.5.0-beta.4 → 0.5.0-beta.41

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 (37) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +35 -4
  3. package/dist/js/api-DQCaztBg.mjs +315 -0
  4. package/dist/js/{billing-blocked-Dgu5-oDy.mjs → billing-blocked-SE6tySLd.mjs} +1 -1
  5. package/dist/js/bin.mjs +655 -278
  6. package/dist/js/{boot-B_93T51X.mjs → boot-B1Y1D48W.mjs} +2980 -823
  7. package/dist/js/chunk-BbwQpWto.mjs +33 -0
  8. package/dist/js/{client-Cn2af31H.mjs → client-Btq6bMzX.mjs} +108 -2
  9. package/dist/js/client-DCwVlAal.mjs +5 -0
  10. package/dist/js/{client-Dd5sMXPv.mjs → client-DMYwKALl.mjs} +348 -141
  11. package/dist/js/daemon-By-I_HVM.mjs +7 -0
  12. package/dist/js/{daemon-BYlIJN6x.mjs → daemon-D8WoX21I.mjs} +43 -7
  13. package/dist/js/{daemon-client-DPjmvIDE.mjs → daemon-client-Bp5DMeIi.mjs} +12 -8
  14. package/dist/js/daemon-client-_SVAskeO.mjs +8 -0
  15. package/dist/js/dist-CRtjM7ba.mjs +1750 -0
  16. package/dist/js/forward-zwB55Bls.mjs +208 -0
  17. package/dist/js/{profiler-RmWjKIHD.mjs → install-BkMcGVYS.mjs} +529 -211
  18. package/dist/js/launcher.mjs +49 -0
  19. package/dist/js/localhost-cert-Bn-UBUmj.mjs +67 -0
  20. package/dist/js/{print-ba_0hiV9.mjs → print-BAmEefvX.mjs} +3 -3
  21. package/dist/js/{print-CbayCa87.mjs → print-CwbdwCeQ.mjs} +213 -37
  22. package/dist/js/{print-share-uwUG16Ov.mjs → print-share-azWHVxpt.mjs} +8 -2
  23. package/dist/js/raw-pty-Ci2qFR9F.mjs +5 -0
  24. package/dist/js/{raw-pty-B6mAroiI.mjs → raw-pty-D5PhKZSl.mjs} +1 -1
  25. package/dist/js/rest-B5DVQ1LM.mjs +6 -0
  26. package/dist/js/{rest-BY2nADw5.mjs → rest-Bbe-RhMy.mjs} +105 -25
  27. package/dist/js/tls-cert-CLgSQALB.mjs +4 -0
  28. package/dist/js/tls-cert-CV-pwxVN.mjs +67 -0
  29. package/package.json +11 -4
  30. package/dist/js/client-DZstLQ_1.mjs +0 -4
  31. package/dist/js/daemon-CBvFKDpy.mjs +0 -5
  32. package/dist/js/daemon-client-Z4Ce4zf-.mjs +0 -6
  33. package/dist/js/raw-pty-3EkG-jjH.mjs +0 -5
  34. package/dist/js/rest-DADJh0bi.mjs +0 -6
  35. /package/dist/js/{billing-blocked-2wju4gC_.mjs → billing-blocked-D3l5kJlX.mjs} +0 -0
  36. /package/dist/js/{http-error-DzyrsLAZ.mjs → http-error-UHH3mVBF.mjs} +0 -0
  37. /package/dist/js/{output-DYzzdXYV.mjs → output-wY0VQDea.mjs} +0 -0
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { t as HttpError } from "./http-error-DzyrsLAZ.mjs";
3
- import { a as billingBlockedOutcomeSchema } from "./billing-blocked-2wju4gC_.mjs";
2
+ import { t as HttpError } from "./http-error-UHH3mVBF.mjs";
3
+ import { a as billingBlockedOutcomeSchema } from "./billing-blocked-D3l5kJlX.mjs";
4
4
  import { z } from "zod";
5
5
  import { createParser } from "eventsource-parser";
6
6
 
@@ -124,6 +124,13 @@ function createRestClient({ appUrl, sessionToken, workspaceId }) {
124
124
  if (!res.ok) throw new HttpError(res.status, await res.text().catch(() => ""));
125
125
  return schema.parse(await res.json());
126
126
  }
127
+ /**
128
+ * The agent PATCH is a merge: only the keys present are written, so each
129
+ * caller sends exactly the settings it means to change.
130
+ */
131
+ function patchAgent(agentId, body) {
132
+ return post(`/api/v1/agents/${encodeURIComponent(agentId)}`, body, updateAgentResponseSchema, "PATCH");
133
+ }
127
134
  async function del(path) {
128
135
  const res = await fetch(`${appUrl}${path}`, {
129
136
  method: "DELETE",
@@ -193,13 +200,14 @@ function createRestClient({ appUrl, sessionToken, workspaceId }) {
193
200
  }
194
201
  };
195
202
  return {
196
- listAgents: async ({ scope, onPage }) => {
203
+ listAgents: async ({ scope, onPage, limit }) => {
197
204
  const all = [];
198
205
  let cursor;
199
- const maxAgents = 2e3;
206
+ const maxAgents = limit ?? 2e3;
207
+ const pageSize = Math.min(100, maxAgents);
200
208
  do {
201
209
  const params = new URLSearchParams({
202
- limit: "100",
210
+ limit: String(pageSize),
203
211
  scope,
204
212
  sort: "mine_first_usage",
205
213
  includeStats: "false"
@@ -213,16 +221,23 @@ function createRestClient({ appUrl, sessionToken, workspaceId }) {
213
221
  return all;
214
222
  },
215
223
  createAgent: async ({ name }) => {
216
- const { agent } = await post("/api/v1/agents", { name }, createAgentResponseSchema);
224
+ const { agent } = await post("/api/v1/agents", name == null ? {} : { name }, createAgentResponseSchema);
217
225
  return agent;
218
226
  },
219
- getAgent: async ({ agentId }) => {
220
- const { agent } = await get(`/api/v1/agents/${encodeURIComponent(agentId)}`, getAgentResponseSchema);
227
+ createOnboardingConversation: async ({ agentId, projectDir, os }) => {
228
+ const result = await post(`/api/v1/agents/${encodeURIComponent(agentId)}/onboarding-conversation`, {
229
+ projectDir,
230
+ os
231
+ }, onboardingConversationResponseSchema);
221
232
  return {
222
- id: agent.id,
223
- name: agent.name
233
+ conversationId: result.conversationId,
234
+ runId: result.runId
224
235
  };
225
236
  },
237
+ getAgent: async ({ agentId }) => {
238
+ const { agent } = await get(`/api/v1/agents/${encodeURIComponent(agentId)}`, getAgentResponseSchema);
239
+ return agent;
240
+ },
226
241
  suggestAgentIdentity: async () => {
227
242
  const { suggestion } = await get("/api/v1/agents/suggest", suggestAgentResponseSchema);
228
243
  return suggestion;
@@ -235,9 +250,31 @@ function createRestClient({ appUrl, sessionToken, workspaceId }) {
235
250
  const { models } = await get("/api/v1/models", listModelsResponseSchema);
236
251
  return models;
237
252
  },
238
- updateAgentModel: async ({ agentId, model }) => {
239
- const { agent } = await post(`/api/v1/agents/${encodeURIComponent(agentId)}`, { model }, updateAgentResponseSchema, "PATCH");
240
- return { model: agent.model ?? null };
253
+ listModelEfforts: async () => {
254
+ const { modelConfigOverrides } = await get("/api/v1/models/preferred", modelEffortPreferencesResponseSchema);
255
+ const efforts = {};
256
+ for (const [modelId, config] of Object.entries(modelConfigOverrides ?? {})) if (config.thinkingLevel) efforts[modelId] = config.thinkingLevel;
257
+ return efforts;
258
+ },
259
+ setModelEffort: async ({ modelId, thinkingLevel }) => {
260
+ await post("/api/v1/models/config", {
261
+ modelId,
262
+ config: { thinkingLevel }
263
+ }, z.unknown(), "PATCH");
264
+ },
265
+ updateAgentModel: async ({ agentId, model, thinkingLevel }) => {
266
+ const { agent } = await patchAgent(agentId, {
267
+ model,
268
+ thinkingLevel
269
+ });
270
+ return {
271
+ model: agent.model ?? null,
272
+ thinkingLevel: agent.thinkingLevel ?? null
273
+ };
274
+ },
275
+ updateAgentEffort: async ({ agentId, thinkingLevel }) => {
276
+ const { agent } = await patchAgent(agentId, { thinkingLevel });
277
+ return { thinkingLevel: agent.thinkingLevel ?? null };
241
278
  },
242
279
  listConversations: async ({ agentId, limit, channels, archived, query, onPage }) => {
243
280
  const trimmedQuery = query?.trim();
@@ -262,9 +299,17 @@ function createRestClient({ appUrl, sessionToken, workspaceId }) {
262
299
  } while (cursor && all.length < maxConversations);
263
300
  return limit ? all.slice(0, limit) : all;
264
301
  },
265
- listMessages: async ({ conversationId }) => {
266
- const { messages } = await get(`/api/v1/conversations/${encodeURIComponent(conversationId)}/messages`, listMessagesResponseSchema);
267
- return messages;
302
+ listMessages: async ({ conversationId, limit, before }) => {
303
+ const params = new URLSearchParams();
304
+ if (limit !== void 0) params.set("limit", String(limit));
305
+ if (before !== void 0) params.set("before", before);
306
+ const query = params.toString();
307
+ const { messages, hasMore, nextBefore } = await get(`/api/v1/conversations/${encodeURIComponent(conversationId)}/messages${query ? `?${query}` : ""}`, listMessagesResponseSchema);
308
+ return {
309
+ messages,
310
+ hasMore: hasMore ?? false,
311
+ nextBefore: nextBefore ?? null
312
+ };
268
313
  },
269
314
  listWorkspaceFiles: async ({ agentId }) => {
270
315
  const { files } = await get(`/api/v1/workspace-files?${new URLSearchParams({ agentId }).toString()}`, listWorkspaceFilesResponseSchema);
@@ -291,6 +336,13 @@ function createRestClient({ appUrl, sessionToken, workspaceId }) {
291
336
  const { result } = await get(`/api/v1/trpc/v2.subagentTasks.list?input=${encodeURIComponent(JSON.stringify({ conversationId }))}`, subagentTasksResponseSchema);
292
337
  return new Map(result.data.subagentTasks.map((task) => [task.id, task]));
293
338
  },
339
+ computeLiveStats: async (agentId) => {
340
+ const { stats } = await get(`/api/v1/compute/live-stats?agentId=${encodeURIComponent(agentId)}`, liveStatsResponseSchema);
341
+ return stats;
342
+ },
343
+ restartAgent: async (agentId) => {
344
+ await post(`/api/v1/agents/${encodeURIComponent(agentId)}/restart`, {}, z.object({ ok: z.boolean() }));
345
+ },
294
346
  uploadAttachment: async ({ agentId, fileName, mediaType, data }) => {
295
347
  const size = data.byteLength;
296
348
  const presign = await post("/api/v1/attachments/presign", {
@@ -331,6 +383,9 @@ function createRestClient({ appUrl, sessionToken, workspaceId }) {
331
383
  setConversationArchived: async ({ conversationId, archived }) => {
332
384
  await post(`/api/v1/conversations/${encodeURIComponent(conversationId)}/archive`, { archived }, z.object({ archived: z.boolean() }));
333
385
  },
386
+ markConversationRead: async ({ conversationId }) => {
387
+ await post(`/api/v1/conversations/${encodeURIComponent(conversationId)}/read`, {}, z.object({ read: z.boolean() }));
388
+ },
334
389
  renameConversation: async ({ conversationId, title }) => {
335
390
  await post(`/api/v1/conversations/${encodeURIComponent(conversationId)}`, { title }, z.object({ conversation: z.object({ id: z.string() }) }), "PATCH");
336
391
  },
@@ -352,6 +407,7 @@ function createRestClient({ appUrl, sessionToken, workspaceId }) {
352
407
  const { authorizationUrl } = await post("/api/v1/external-oauth/connect", input, externalOauthConnectResponseSchema);
353
408
  return { authorizationUrl: authorizationUrl ?? null };
354
409
  },
410
+ decideComputeRequest: async ({ requestId, decision }) => post(`/api/v1/compute-requests/${encodeURIComponent(requestId)}/decision`, { decision }, computeDecisionResponseSchema),
355
411
  fulfillCredential: async ({ url, body }) => {
356
412
  const target = new URL(url, appUrl).toString();
357
413
  const res = await fetch(target, {
@@ -436,27 +492,35 @@ const agentSummarySchema = z.object({
436
492
  createdAt: z.string(),
437
493
  creatorName: z.string().nullable().optional(),
438
494
  model: z.string().nullable().optional(),
439
- modelLocked: z.boolean().optional()
495
+ modelLocked: z.boolean().optional(),
496
+ thinkingLevel: z.string().nullable().optional()
440
497
  });
441
498
  const platformModelSchema = z.object({
442
499
  id: z.string(),
443
500
  displayName: z.string(),
444
501
  providerDisplay: z.string().optional(),
445
502
  reasoning: z.boolean().optional(),
446
- compliant: z.boolean().optional()
503
+ compliant: z.boolean().optional(),
504
+ thinkingLevels: z.array(z.string()).optional(),
505
+ thinkingLevelLabels: z.record(z.string(), z.string()).optional()
447
506
  }).passthrough();
448
507
  const listModelsResponseSchema = z.object({ models: z.array(platformModelSchema) });
449
- const updateAgentResponseSchema = z.object({ agent: z.object({ model: z.string().nullable().optional() }).passthrough() });
508
+ const modelEffortPreferencesResponseSchema = z.object({ modelConfigOverrides: z.record(z.string(), z.object({ thinkingLevel: z.string().optional() })).optional() });
509
+ const updateAgentResponseSchema = z.object({ agent: z.object({
510
+ model: z.string().nullable().optional(),
511
+ thinkingLevel: z.string().nullable().optional()
512
+ }).passthrough() });
450
513
  const listAgentsResponseSchema = z.object({
451
514
  agents: z.array(agentSummarySchema),
452
515
  nextCursor: z.string().nullable().optional(),
453
516
  totalCount: z.number().nullable().optional()
454
517
  });
455
518
  const createAgentResponseSchema = z.object({ agent: agentSummarySchema });
456
- const getAgentResponseSchema = z.object({ agent: z.object({
457
- id: z.string(),
458
- name: z.string()
459
- }).passthrough() });
519
+ const onboardingConversationResponseSchema = z.object({
520
+ conversationId: z.string(),
521
+ runId: z.string().nullable()
522
+ });
523
+ const getAgentResponseSchema = z.object({ agent: agentSummarySchema });
460
524
  const agentSuggestionSchema = z.object({ name: z.string() });
461
525
  const suggestAgentResponseSchema = z.object({ suggestion: agentSuggestionSchema.nullable() });
462
526
  const conversationAgentSchema = z.object({
@@ -474,6 +538,7 @@ const conversationSummarySchema = z.object({
474
538
  channel: z.string().nullable(),
475
539
  channelLabel: z.string().nullable(),
476
540
  viewerArchivedAt: z.string().nullable().optional(),
541
+ unread: z.boolean().optional(),
477
542
  agent: conversationAgentSchema,
478
543
  agents: z.array(conversationAgentSchema).optional()
479
544
  });
@@ -535,7 +600,20 @@ const subagentTaskSnapshotSchema = z.object({
535
600
  completedAt: z.string().nullable()
536
601
  });
537
602
  const subagentTasksResponseSchema = z.object({ result: z.object({ data: z.object({ subagentTasks: z.array(subagentTaskSnapshotSchema) }) }) });
538
- const listMessagesResponseSchema = z.object({ messages: z.array(uiMessageSchema) });
603
+ const liveStatsResponseSchema = z.object({ stats: z.object({
604
+ sampledAt: z.number(),
605
+ cpuUsedPct: z.number(),
606
+ cpuCount: z.number(),
607
+ memUsedBytes: z.number(),
608
+ memTotalBytes: z.number(),
609
+ diskUsedBytes: z.number(),
610
+ diskTotalBytes: z.number()
611
+ }).nullable() });
612
+ const listMessagesResponseSchema = z.object({
613
+ messages: z.array(uiMessageSchema),
614
+ hasMore: z.boolean().optional(),
615
+ nextBefore: z.string().nullish()
616
+ });
539
617
  const workspaceFileSchema = z.object({
540
618
  id: z.string(),
541
619
  path: z.string(),
@@ -569,6 +647,7 @@ const finalizeResponseSchema = z.object({
569
647
  });
570
648
  const oauthConnectResponseSchema = z.object({ connectLink: z.string() }).passthrough();
571
649
  const externalOauthConnectResponseSchema = z.object({ authorizationUrl: z.string().optional() }).passthrough();
650
+ const computeDecisionResponseSchema = z.object({ status: z.string() }).passthrough();
572
651
  const runStreamEventSchema = z.union([z.object({
573
652
  kind: z.literal("chunk"),
574
653
  chunk: z.record(z.unknown())
@@ -589,7 +668,8 @@ const conversationStreamEventSchema = z.discriminatedUnion("kind", [
589
668
  kind: z.literal("agent"),
590
669
  id: z.string(),
591
670
  model: z.string().nullable(),
592
- modelLocked: z.boolean()
671
+ modelLocked: z.boolean(),
672
+ thinkingLevel: z.string().nullish()
593
673
  }),
594
674
  z.object({
595
675
  kind: z.literal("run"),
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { n as envTlsCertSource, r as warnOnRebindProtection, t as defaultTlsCertSource } from "./tls-cert-CV-pwxVN.mjs";
3
+
4
+ export { defaultTlsCertSource };
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env node
2
+ import { readFile } from "node:fs/promises";
3
+ import dns from "node:dns";
4
+
5
+ //#region ../portal-daemon/src/tls-cert.ts
6
+ /**
7
+ * File-backed cert source, configured by environment:
8
+ * SKYDIVE_PORTAL_TLS_KEY / SKYDIVE_PORTAL_TLS_CERT (PEM file paths) and
9
+ * SKYDIVE_PORTAL_TLS_HOST (the name the cert covers). All three or nothing —
10
+ * a partial configuration is reported once and treated as absent, so a typo
11
+ * degrades to today's behavior instead of a crash loop.
12
+ */
13
+ function envTlsCertSource(env, log) {
14
+ return async () => {
15
+ const keyPath = env.SKYDIVE_PORTAL_TLS_KEY;
16
+ const certPath = env.SKYDIVE_PORTAL_TLS_CERT;
17
+ const hostname = env.SKYDIVE_PORTAL_TLS_HOST;
18
+ if (!keyPath && !certPath && !hostname) return null;
19
+ if (!keyPath || !certPath || !hostname) {
20
+ log("forward: SKYDIVE_PORTAL_TLS_KEY, SKYDIVE_PORTAL_TLS_CERT and SKYDIVE_PORTAL_TLS_HOST must all be set to enable the TLS origin; continuing with http only");
21
+ return null;
22
+ }
23
+ try {
24
+ const [key, cert] = await Promise.all([readFile(keyPath, "utf8"), readFile(certPath, "utf8")]);
25
+ return {
26
+ key,
27
+ cert,
28
+ hostname
29
+ };
30
+ } catch (err) {
31
+ log(`forward: could not read TLS key/cert (${err instanceof Error ? err.message : String(err)}); continuing with http only`);
32
+ return null;
33
+ }
34
+ };
35
+ }
36
+ /**
37
+ * The default cert source for both tunnel surfaces: an explicit env/file
38
+ * configuration wins (BYO cert — also the escape hatch for machines where the
39
+ * trust prompt is unwanted, e.g. CI), otherwise the fully automatic
40
+ * devcert-backed localhost source.
41
+ */
42
+ function defaultTlsCertSource(env, log) {
43
+ const fromEnv = envTlsCertSource(env, log);
44
+ return async () => {
45
+ if (env.SKYDIVE_PORTAL_TLS_KEY || env.SKYDIVE_PORTAL_TLS_CERT || env.SKYDIVE_PORTAL_TLS_HOST) return fromEnv();
46
+ const { localhostCertSource } = await import("./localhost-cert-Bn-UBUmj.mjs");
47
+ return localhostCertSource(log)();
48
+ };
49
+ }
50
+ /**
51
+ * Detect resolver-level DNS rebind protection: some routers/resolvers refuse
52
+ * public names that answer with loopback addresses (Plex documents this exact
53
+ * failure for *.plex.direct). The https origin simply won't resolve for such
54
+ * users — warn with the cause, and leave the http origin (unaffected) as the
55
+ * fallback. Never fatal: the browser may use a different resolver than the
56
+ * OS, so we start the listener regardless.
57
+ */
58
+ async function warnOnRebindProtection(hostname, log) {
59
+ try {
60
+ if (!(await dns.promises.lookup(hostname, { all: true })).some((a) => a.address === "127.0.0.1" || a.address === "::1")) log(`forward: ${hostname} did not resolve to 127.0.0.1 — a resolver on this network may block public names pointing at loopback (DNS rebind protection). The https origin may not work here; http://localhost is unaffected.`);
61
+ } catch (error) {
62
+ log(`forward: ${hostname} did not resolve (${error instanceof Error ? error.message : String(error)}) — a resolver on this network may block public names pointing at loopback (DNS rebind protection). The https origin may not work here; http://localhost is unaffected.`);
63
+ }
64
+ }
65
+
66
+ //#endregion
67
+ export { envTlsCertSource as n, warnOnRebindProtection as r, defaultTlsCertSource as t };
package/package.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "skydive-cli",
3
- "version": "0.5.0-beta.4",
3
+ "version": "0.5.0-beta.41",
4
4
  "description": "Skydive CLI — cloud agents from the command line",
5
5
  "homepage": "https://skydive.com",
6
6
  "license": "MIT",
7
7
  "bin": {
8
- "skydive": "./dist/js/bin.mjs"
8
+ "skydive": "./dist/js/launcher.mjs"
9
9
  },
10
10
  "files": [
11
11
  "dist"
12
12
  ],
13
13
  "type": "module",
14
14
  "exports": {
15
- "./bin": "./dist/js/bin.mjs"
15
+ "./bin": "./dist/js/bin.mjs",
16
+ "./launcher": "./dist/js/launcher.mjs"
16
17
  },
17
18
  "publishConfig": {
18
19
  "access": "public",
@@ -41,7 +42,6 @@
41
42
  "react-devtools-core": "^7.0.1",
42
43
  "safe-stable-stringify": "^2.3.1",
43
44
  "semver": "^7.7.4",
44
- "shell-quote": "1.9.0",
45
45
  "web-tree-sitter": "0.25.10",
46
46
  "ws": "^8.21.0",
47
47
  "yargs": "^17.7.2",
@@ -66,5 +66,12 @@
66
66
  "engines": {
67
67
  "bun": ">=1.3.14",
68
68
  "node": ">=20.0.0"
69
+ },
70
+ "//optionalDependencies": "The per-platform binary packages (skydive-cli-<os>-<arch>) are INTENTIONALLY not committed here. They are published by release-skydive-cli-binaries.yml and injected — pinned to the exact version being published — into the published launcher's optionalDependencies at release time (scripts/prepare-platform-packages.mjs --pin-version, run in release-skydive-cli.yml). Committing them would make `yarn install` try to resolve versions that only exist post-publish, breaking local dev and CI. npm installs of a published skydive-cli still get them (os/cpu-gated); the launcher (src/launcher.ts) resolves and execs the matching one. Local dev never needs them: it runs the JS bundle or `build:binary` directly.",
71
+ "optionalDependencies": {
72
+ "skydive-cli-darwin-arm64": "0.5.0-beta.41",
73
+ "skydive-cli-darwin-x64": "0.5.0-beta.41",
74
+ "skydive-cli-linux-x64": "0.5.0-beta.41",
75
+ "skydive-cli-linux-arm64": "0.5.0-beta.41"
69
76
  }
70
77
  }
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import { t as PortalClient } from "./client-Dd5sMXPv.mjs";
3
-
4
- export { PortalClient };
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env node
2
- import "./client-Dd5sMXPv.mjs";
3
- import { a as runPortalDaemon, i as queryDaemonStatus, n as ensureDaemonRunning, o as startPortalDaemon, r as isDaemonListening, s as stopDaemon, t as PortalDaemon } from "./daemon-BYlIJN6x.mjs";
4
-
5
- export { runPortalDaemon };
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env node
2
- import "./client-Dd5sMXPv.mjs";
3
- import "./daemon-BYlIJN6x.mjs";
4
- import { t as PortalDaemonClient } from "./daemon-client-DPjmvIDE.mjs";
5
-
6
- export { PortalDaemonClient };
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env node
2
- import "./client-Cn2af31H.mjs";
3
- import { t as runRawPtyPassthrough } from "./raw-pty-B6mAroiI.mjs";
4
-
5
- export { runRawPtyPassthrough };
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env node
2
- import { t as HttpError } from "./http-error-DzyrsLAZ.mjs";
3
- import { n as errorDetail, r as sendErrorMessage, t as createRestClient } from "./rest-BY2nADw5.mjs";
4
- import "./billing-blocked-2wju4gC_.mjs";
5
-
6
- export { createRestClient };