@boxes-dev/dvb 0.2.4

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 (201) hide show
  1. package/dist/bin/dvb.cjs +28232 -0
  2. package/dist/bin/dvb.d.ts +2 -0
  3. package/dist/bin/dvb.d.ts.map +1 -0
  4. package/dist/bin/dvb.js +71 -0
  5. package/dist/bin/dvb.js.map +1 -0
  6. package/dist/bin/dvbd.cjs +11816 -0
  7. package/dist/bin/dvbd.d.ts +2 -0
  8. package/dist/bin/dvbd.d.ts.map +1 -0
  9. package/dist/bin/dvbd.js +20 -0
  10. package/dist/bin/dvbd.js.map +1 -0
  11. package/dist/codex/services-schema.json +59 -0
  12. package/dist/codex/setup-schema.json +176 -0
  13. package/dist/devbox/auth.d.ts +17 -0
  14. package/dist/devbox/auth.d.ts.map +1 -0
  15. package/dist/devbox/auth.js +302 -0
  16. package/dist/devbox/auth.js.map +1 -0
  17. package/dist/devbox/cli.d.ts +2 -0
  18. package/dist/devbox/cli.d.ts.map +1 -0
  19. package/dist/devbox/cli.js +142 -0
  20. package/dist/devbox/cli.js.map +1 -0
  21. package/dist/devbox/commands/agent.d.ts +21 -0
  22. package/dist/devbox/commands/agent.d.ts.map +1 -0
  23. package/dist/devbox/commands/agent.js +257 -0
  24. package/dist/devbox/commands/agent.js.map +1 -0
  25. package/dist/devbox/commands/boxSelect.d.ts +14 -0
  26. package/dist/devbox/commands/boxSelect.d.ts.map +1 -0
  27. package/dist/devbox/commands/boxSelect.js +82 -0
  28. package/dist/devbox/commands/boxSelect.js.map +1 -0
  29. package/dist/devbox/commands/connect.d.ts +8 -0
  30. package/dist/devbox/commands/connect.d.ts.map +1 -0
  31. package/dist/devbox/commands/connect.js +1369 -0
  32. package/dist/devbox/commands/connect.js.map +1 -0
  33. package/dist/devbox/commands/daemon.d.ts +4 -0
  34. package/dist/devbox/commands/daemon.d.ts.map +1 -0
  35. package/dist/devbox/commands/daemon.js +36 -0
  36. package/dist/devbox/commands/daemon.js.map +1 -0
  37. package/dist/devbox/commands/destroy.d.ts +2 -0
  38. package/dist/devbox/commands/destroy.d.ts.map +1 -0
  39. package/dist/devbox/commands/destroy.js +131 -0
  40. package/dist/devbox/commands/destroy.js.map +1 -0
  41. package/dist/devbox/commands/init/args.d.ts +12 -0
  42. package/dist/devbox/commands/init/args.d.ts.map +1 -0
  43. package/dist/devbox/commands/init/args.js +42 -0
  44. package/dist/devbox/commands/init/args.js.map +1 -0
  45. package/dist/devbox/commands/init/codex/artifacts.d.ts +26 -0
  46. package/dist/devbox/commands/init/codex/artifacts.d.ts.map +1 -0
  47. package/dist/devbox/commands/init/codex/artifacts.js +108 -0
  48. package/dist/devbox/commands/init/codex/artifacts.js.map +1 -0
  49. package/dist/devbox/commands/init/codex/index.d.ts +35 -0
  50. package/dist/devbox/commands/init/codex/index.d.ts.map +1 -0
  51. package/dist/devbox/commands/init/codex/index.js +147 -0
  52. package/dist/devbox/commands/init/codex/index.js.map +1 -0
  53. package/dist/devbox/commands/init/codex/local.d.ts +19 -0
  54. package/dist/devbox/commands/init/codex/local.d.ts.map +1 -0
  55. package/dist/devbox/commands/init/codex/local.js +189 -0
  56. package/dist/devbox/commands/init/codex/local.js.map +1 -0
  57. package/dist/devbox/commands/init/codex/plan.d.ts +61 -0
  58. package/dist/devbox/commands/init/codex/plan.d.ts.map +1 -0
  59. package/dist/devbox/commands/init/codex/plan.js +39 -0
  60. package/dist/devbox/commands/init/codex/plan.js.map +1 -0
  61. package/dist/devbox/commands/init/codex/prompts.d.ts +6 -0
  62. package/dist/devbox/commands/init/codex/prompts.d.ts.map +1 -0
  63. package/dist/devbox/commands/init/codex/prompts.js +26 -0
  64. package/dist/devbox/commands/init/codex/prompts.js.map +1 -0
  65. package/dist/devbox/commands/init/codex/remote.d.ts +56 -0
  66. package/dist/devbox/commands/init/codex/remote.d.ts.map +1 -0
  67. package/dist/devbox/commands/init/codex/remote.js +395 -0
  68. package/dist/devbox/commands/init/codex/remote.js.map +1 -0
  69. package/dist/devbox/commands/init/codex/template.d.ts +3 -0
  70. package/dist/devbox/commands/init/codex/template.d.ts.map +1 -0
  71. package/dist/devbox/commands/init/codex/template.js +3 -0
  72. package/dist/devbox/commands/init/codex/template.js.map +1 -0
  73. package/dist/devbox/commands/init/index.d.ts +2 -0
  74. package/dist/devbox/commands/init/index.d.ts.map +1 -0
  75. package/dist/devbox/commands/init/index.js +1117 -0
  76. package/dist/devbox/commands/init/index.js.map +1 -0
  77. package/dist/devbox/commands/init/packaging.d.ts +5 -0
  78. package/dist/devbox/commands/init/packaging.d.ts.map +1 -0
  79. package/dist/devbox/commands/init/packaging.js +86 -0
  80. package/dist/devbox/commands/init/packaging.js.map +1 -0
  81. package/dist/devbox/commands/init/registry.d.ts +14 -0
  82. package/dist/devbox/commands/init/registry.d.ts.map +1 -0
  83. package/dist/devbox/commands/init/registry.js +61 -0
  84. package/dist/devbox/commands/init/registry.js.map +1 -0
  85. package/dist/devbox/commands/init/remote.d.ts +38 -0
  86. package/dist/devbox/commands/init/remote.d.ts.map +1 -0
  87. package/dist/devbox/commands/init/remote.js +554 -0
  88. package/dist/devbox/commands/init/remote.js.map +1 -0
  89. package/dist/devbox/commands/init/repo.d.ts +31 -0
  90. package/dist/devbox/commands/init/repo.d.ts.map +1 -0
  91. package/dist/devbox/commands/init/repo.js +164 -0
  92. package/dist/devbox/commands/init/repo.js.map +1 -0
  93. package/dist/devbox/commands/init/scripts.d.ts +3 -0
  94. package/dist/devbox/commands/init/scripts.d.ts.map +1 -0
  95. package/dist/devbox/commands/init/scripts.js +15 -0
  96. package/dist/devbox/commands/init/scripts.js.map +1 -0
  97. package/dist/devbox/commands/init/ssh.d.ts +19 -0
  98. package/dist/devbox/commands/init/ssh.d.ts.map +1 -0
  99. package/dist/devbox/commands/init/ssh.js +270 -0
  100. package/dist/devbox/commands/init/ssh.js.map +1 -0
  101. package/dist/devbox/commands/init/state.d.ts +31 -0
  102. package/dist/devbox/commands/init/state.d.ts.map +1 -0
  103. package/dist/devbox/commands/init/state.js +25 -0
  104. package/dist/devbox/commands/init/state.js.map +1 -0
  105. package/dist/devbox/commands/list.d.ts +2 -0
  106. package/dist/devbox/commands/list.d.ts.map +1 -0
  107. package/dist/devbox/commands/list.js +213 -0
  108. package/dist/devbox/commands/list.js.map +1 -0
  109. package/dist/devbox/commands/listFormatting.d.ts +27 -0
  110. package/dist/devbox/commands/listFormatting.d.ts.map +1 -0
  111. package/dist/devbox/commands/listFormatting.js +155 -0
  112. package/dist/devbox/commands/listFormatting.js.map +1 -0
  113. package/dist/devbox/commands/logout.d.ts +2 -0
  114. package/dist/devbox/commands/logout.d.ts.map +1 -0
  115. package/dist/devbox/commands/logout.js +45 -0
  116. package/dist/devbox/commands/logout.js.map +1 -0
  117. package/dist/devbox/commands/mount.d.ts +3 -0
  118. package/dist/devbox/commands/mount.d.ts.map +1 -0
  119. package/dist/devbox/commands/mount.js +144 -0
  120. package/dist/devbox/commands/mount.js.map +1 -0
  121. package/dist/devbox/commands/mountSsh.d.ts +12 -0
  122. package/dist/devbox/commands/mountSsh.d.ts.map +1 -0
  123. package/dist/devbox/commands/mountSsh.js +137 -0
  124. package/dist/devbox/commands/mountSsh.js.map +1 -0
  125. package/dist/devbox/commands/ports.d.ts +2 -0
  126. package/dist/devbox/commands/ports.d.ts.map +1 -0
  127. package/dist/devbox/commands/ports.js +145 -0
  128. package/dist/devbox/commands/ports.js.map +1 -0
  129. package/dist/devbox/commands/services.d.ts +2 -0
  130. package/dist/devbox/commands/services.d.ts.map +1 -0
  131. package/dist/devbox/commands/services.js +552 -0
  132. package/dist/devbox/commands/services.js.map +1 -0
  133. package/dist/devbox/commands/servicesToml.d.ts +13 -0
  134. package/dist/devbox/commands/servicesToml.d.ts.map +1 -0
  135. package/dist/devbox/commands/servicesToml.js +198 -0
  136. package/dist/devbox/commands/servicesToml.js.map +1 -0
  137. package/dist/devbox/commands/sessionUtils.d.ts +10 -0
  138. package/dist/devbox/commands/sessionUtils.d.ts.map +1 -0
  139. package/dist/devbox/commands/sessionUtils.js +48 -0
  140. package/dist/devbox/commands/sessionUtils.js.map +1 -0
  141. package/dist/devbox/commands/sessions.d.ts +2 -0
  142. package/dist/devbox/commands/sessions.d.ts.map +1 -0
  143. package/dist/devbox/commands/sessions.js +425 -0
  144. package/dist/devbox/commands/sessions.js.map +1 -0
  145. package/dist/devbox/commands/setup.d.ts +2 -0
  146. package/dist/devbox/commands/setup.d.ts.map +1 -0
  147. package/dist/devbox/commands/setup.js +183 -0
  148. package/dist/devbox/commands/setup.js.map +1 -0
  149. package/dist/devbox/commands/wezterm.d.ts +3 -0
  150. package/dist/devbox/commands/wezterm.d.ts.map +1 -0
  151. package/dist/devbox/commands/wezterm.js +878 -0
  152. package/dist/devbox/commands/wezterm.js.map +1 -0
  153. package/dist/devbox/completions/cache.d.ts +59 -0
  154. package/dist/devbox/completions/cache.d.ts.map +1 -0
  155. package/dist/devbox/completions/cache.js +122 -0
  156. package/dist/devbox/completions/cache.js.map +1 -0
  157. package/dist/devbox/completions/index.d.ts +14 -0
  158. package/dist/devbox/completions/index.d.ts.map +1 -0
  159. package/dist/devbox/completions/index.js +796 -0
  160. package/dist/devbox/completions/index.js.map +1 -0
  161. package/dist/devbox/controlPlane.d.ts +44 -0
  162. package/dist/devbox/controlPlane.d.ts.map +1 -0
  163. package/dist/devbox/controlPlane.js +310 -0
  164. package/dist/devbox/controlPlane.js.map +1 -0
  165. package/dist/devbox/daemonClient.d.ts +28 -0
  166. package/dist/devbox/daemonClient.d.ts.map +1 -0
  167. package/dist/devbox/daemonClient.js +276 -0
  168. package/dist/devbox/daemonClient.js.map +1 -0
  169. package/dist/devbox/latency.d.ts +25 -0
  170. package/dist/devbox/latency.d.ts.map +1 -0
  171. package/dist/devbox/latency.js +186 -0
  172. package/dist/devbox/latency.js.map +1 -0
  173. package/dist/devbox/logger.d.ts +2 -0
  174. package/dist/devbox/logger.d.ts.map +1 -0
  175. package/dist/devbox/logger.js +3 -0
  176. package/dist/devbox/logger.js.map +1 -0
  177. package/dist/devbox/terminal/osc.d.ts +10 -0
  178. package/dist/devbox/terminal/osc.d.ts.map +1 -0
  179. package/dist/devbox/terminal/osc.js +88 -0
  180. package/dist/devbox/terminal/osc.js.map +1 -0
  181. package/dist/devbox/types.d.ts +4 -0
  182. package/dist/devbox/types.d.ts.map +1 -0
  183. package/dist/devbox/types.js +2 -0
  184. package/dist/devbox/types.js.map +1 -0
  185. package/dist/devbox/ui/colors.d.ts +19 -0
  186. package/dist/devbox/ui/colors.d.ts.map +1 -0
  187. package/dist/devbox/ui/colors.js +22 -0
  188. package/dist/devbox/ui/colors.js.map +1 -0
  189. package/dist/devbox/ui/statusLine.d.ts +14 -0
  190. package/dist/devbox/ui/statusLine.d.ts.map +1 -0
  191. package/dist/devbox/ui/statusLine.js +90 -0
  192. package/dist/devbox/ui/statusLine.js.map +1 -0
  193. package/dist/devbox/weztermMux.d.ts +11 -0
  194. package/dist/devbox/weztermMux.d.ts.map +1 -0
  195. package/dist/devbox/weztermMux.js +11 -0
  196. package/dist/devbox/weztermMux.js.map +1 -0
  197. package/dist/prompts/local-scan.md +32 -0
  198. package/dist/prompts/local-services-scan.md +17 -0
  199. package/dist/prompts/remote-apply.md +370 -0
  200. package/dist/scripts/fix-bashrc.sh +48 -0
  201. package/package.json +38 -0
@@ -0,0 +1,198 @@
1
+ import { parse as parseToml } from "smol-toml";
2
+ const splitShellCommand = (value) => {
3
+ const args = [];
4
+ let current = "";
5
+ let inSingle = false;
6
+ let inDouble = false;
7
+ let escape = false;
8
+ const pushCurrent = () => {
9
+ if (current.length > 0) {
10
+ args.push(current);
11
+ current = "";
12
+ }
13
+ };
14
+ for (let i = 0; i < value.length; i += 1) {
15
+ const char = value[i] ?? "";
16
+ if (escape) {
17
+ current += char;
18
+ escape = false;
19
+ continue;
20
+ }
21
+ if (!inSingle && char === "\\") {
22
+ escape = true;
23
+ continue;
24
+ }
25
+ if (!inDouble && char === "'") {
26
+ inSingle = !inSingle;
27
+ continue;
28
+ }
29
+ if (!inSingle && char === "\"") {
30
+ inDouble = !inDouble;
31
+ continue;
32
+ }
33
+ if (!inSingle && !inDouble && /\s/.test(char)) {
34
+ pushCurrent();
35
+ continue;
36
+ }
37
+ current += char;
38
+ }
39
+ if (escape)
40
+ current += "\\";
41
+ if (inSingle || inDouble) {
42
+ throw new Error("Unclosed quote in --cmd");
43
+ }
44
+ pushCurrent();
45
+ return args;
46
+ };
47
+ const normalizeSectionName = (value) => {
48
+ const trimmed = value.trim();
49
+ if ((trimmed.startsWith("\"") && trimmed.endsWith("\"")) ||
50
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
51
+ return trimmed.slice(1, -1);
52
+ }
53
+ return trimmed;
54
+ };
55
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
56
+ const asString = (value) => typeof value === "string" ? value : null;
57
+ const asStringArray = (value) => {
58
+ if (!Array.isArray(value))
59
+ return null;
60
+ const output = [];
61
+ for (const entry of value) {
62
+ if (typeof entry !== "string")
63
+ return null;
64
+ output.push(entry);
65
+ }
66
+ return output;
67
+ };
68
+ const asNumber = (value) => {
69
+ if (typeof value === "number") {
70
+ return Number.isFinite(value) ? value : null;
71
+ }
72
+ if (typeof value === "bigint") {
73
+ const asNum = Number(value);
74
+ if (!Number.isSafeInteger(asNum))
75
+ return null;
76
+ return asNum;
77
+ }
78
+ return null;
79
+ };
80
+ const parseServicesToml = (content) => {
81
+ const parsed = parseToml(content);
82
+ if (!isRecord(parsed))
83
+ return {};
84
+ const servicesRoot = parsed.services;
85
+ if (!isRecord(servicesRoot))
86
+ return {};
87
+ const services = {};
88
+ for (const [rawName, value] of Object.entries(servicesRoot)) {
89
+ const name = String(rawName);
90
+ if (!name)
91
+ continue;
92
+ if (!isRecord(value))
93
+ continue;
94
+ const entry = { name };
95
+ const cmd = asString(value.cmd);
96
+ if (cmd)
97
+ entry.cmd = cmd;
98
+ const args = asStringArray(value.args);
99
+ if (args)
100
+ entry.args = args;
101
+ const needs = asStringArray(value.needs);
102
+ if (needs)
103
+ entry.needs = needs;
104
+ const httpPort = asNumber(value.http_port ?? value.httpPort);
105
+ if (httpPort !== null)
106
+ entry.httpPort = httpPort;
107
+ services[name] = entry;
108
+ }
109
+ return services;
110
+ };
111
+ const formatSectionName = (value) => /^[A-Za-z0-9_-]+$/.test(value)
112
+ ? value
113
+ : JSON.stringify(value);
114
+ const renderServiceBlock = (service) => {
115
+ const lines = [];
116
+ lines.push(`[services.${formatSectionName(service.name)}]`);
117
+ if (service.cmd) {
118
+ lines.push(`cmd = ${JSON.stringify(service.cmd)}`);
119
+ }
120
+ if (service.args) {
121
+ lines.push(`args = ${JSON.stringify(service.args)}`);
122
+ }
123
+ if (service.needs) {
124
+ lines.push(`needs = ${JSON.stringify(service.needs)}`);
125
+ }
126
+ if (service.httpPort !== undefined) {
127
+ lines.push(`http_port = ${service.httpPort}`);
128
+ }
129
+ return lines;
130
+ };
131
+ const mergeServicesToml = (content, updates) => {
132
+ const lines = content.split(/\r?\n/);
133
+ const sections = [];
134
+ let current = null;
135
+ const finishCurrent = (endIndex) => {
136
+ if (current) {
137
+ sections.push({ name: current.name, start: current.start, end: endIndex });
138
+ current = null;
139
+ }
140
+ };
141
+ for (let i = 0; i < lines.length; i += 1) {
142
+ const line = lines[i] ?? "";
143
+ const match = line.trim().match(/^\[(.+)\]$/);
144
+ if (!match)
145
+ continue;
146
+ finishCurrent(i);
147
+ const rawSection = match[1] ?? "";
148
+ if (rawSection.startsWith("services.")) {
149
+ const name = normalizeSectionName(rawSection.slice("services.".length));
150
+ if (name)
151
+ current = { name, start: i };
152
+ }
153
+ }
154
+ finishCurrent(lines.length);
155
+ const sectionByName = new Map(sections.map((section) => [section.name, section]));
156
+ const replacementTargets = Object.keys(updates)
157
+ .map((name) => sectionByName.get(name))
158
+ .filter((section) => Boolean(section))
159
+ .sort((a, b) => b.start - a.start);
160
+ const nextLines = [...lines];
161
+ for (const section of replacementTargets) {
162
+ const entry = updates[section.name];
163
+ if (!entry)
164
+ continue;
165
+ const block = renderServiceBlock(entry);
166
+ nextLines.splice(section.start, section.end - section.start, ...block);
167
+ }
168
+ const remainingUpdates = Object.keys(updates).filter((name) => !sectionByName.has(name));
169
+ if (remainingUpdates.length === 0) {
170
+ return nextLines.join("\n");
171
+ }
172
+ let insertIndex = nextLines.length;
173
+ for (let i = nextLines.length - 1; i >= 0; i -= 1) {
174
+ const line = nextLines[i] ?? "";
175
+ if (line.trim().match(/^\[services\..+\]$/)) {
176
+ insertIndex = i + 1;
177
+ while (insertIndex < nextLines.length && nextLines[insertIndex]?.trim() !== "") {
178
+ insertIndex += 1;
179
+ }
180
+ break;
181
+ }
182
+ }
183
+ const blocks = [];
184
+ for (const name of remainingUpdates) {
185
+ const entry = updates[name];
186
+ if (!entry)
187
+ continue;
188
+ if (blocks.length > 0)
189
+ blocks.push("");
190
+ blocks.push(...renderServiceBlock(entry));
191
+ }
192
+ const needsGap = insertIndex > 0 && nextLines[insertIndex - 1]?.trim() !== "";
193
+ const prefix = needsGap ? [""] : [];
194
+ nextLines.splice(insertIndex, 0, ...prefix, ...blocks);
195
+ return nextLines.join("\n");
196
+ };
197
+ export { mergeServicesToml, parseServicesToml, splitShellCommand };
198
+ //# sourceMappingURL=servicesToml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servicesToml.js","sourceRoot":"","sources":["../../../src/devbox/commands/servicesToml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { SpritesClient } from "@boxes-dev/core";
2
+ export declare const AUTO_SESSION_PREFIX = "new-session-";
3
+ export declare const parseAutoSessionSuffix: (name: string) => number | null;
4
+ export declare const getNextAutoSessionName: (sessions: Record<string, string>) => string;
5
+ export declare const ensureUniqueAutoSessionName: (sessions: Record<string, string>, preferred: string, sessionId: string) => string;
6
+ export declare const shellQuote: (value: string) => string;
7
+ export declare const sanitizeSessionName: (value: string) => string;
8
+ export declare const buildSessionLogPath: (name: string) => string;
9
+ export declare const renameSessionLog: (client: SpritesClient, box: string, fromName: string, toName: string) => Promise<void>;
10
+ //# sourceMappingURL=sessionUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionUtils.d.ts","sourceRoot":"","sources":["../../../src/devbox/commands/sessionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,eAAO,MAAM,sBAAsB,GAAI,MAAM,MAAM,kBAMlD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAOtE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,MAAM,EACjB,WAAW,MAAM,WAUlB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,WAAwC,CAAC;AAEjF,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,WAIhD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,WACc,CAAC;AAE/D,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,aAAa,EACrB,KAAK,MAAM,EACX,UAAU,MAAM,EAChB,QAAQ,MAAM,kBAUf,CAAC"}
@@ -0,0 +1,48 @@
1
+ export const AUTO_SESSION_PREFIX = "new-session-";
2
+ export const parseAutoSessionSuffix = (name) => {
3
+ if (!name.startsWith(AUTO_SESSION_PREFIX))
4
+ return null;
5
+ const raw = name.slice(AUTO_SESSION_PREFIX.length);
6
+ const parsed = Number(raw);
7
+ if (!Number.isFinite(parsed) || parsed < 1)
8
+ return null;
9
+ return Math.floor(parsed);
10
+ };
11
+ export const getNextAutoSessionName = (sessions) => {
12
+ let max = 0;
13
+ for (const name of Object.keys(sessions)) {
14
+ const suffix = parseAutoSessionSuffix(name);
15
+ if (suffix && suffix > max)
16
+ max = suffix;
17
+ }
18
+ return `${AUTO_SESSION_PREFIX}${max + 1}`;
19
+ };
20
+ export const ensureUniqueAutoSessionName = (sessions, preferred, sessionId) => {
21
+ const start = parseAutoSessionSuffix(preferred) ?? 1;
22
+ let current = preferred;
23
+ let counter = start;
24
+ while (sessions[current] && sessions[current] !== sessionId) {
25
+ counter += 1;
26
+ current = `${AUTO_SESSION_PREFIX}${counter}`;
27
+ }
28
+ return current;
29
+ };
30
+ export const shellQuote = (value) => `'${value.replace(/'/g, `'\\''`)}'`;
31
+ export const sanitizeSessionName = (value) => {
32
+ const trimmed = value.trim();
33
+ const sanitized = trimmed.replace(/[^a-zA-Z0-9._-]/g, "_");
34
+ return sanitized || "session";
35
+ };
36
+ export const buildSessionLogPath = (name) => `/home/sprite/.devbox/logs/${sanitizeSessionName(name)}.log`;
37
+ export const renameSessionLog = async (client, box, fromName, toName) => {
38
+ const fromPath = buildSessionLogPath(fromName);
39
+ const toPath = buildSessionLogPath(toName);
40
+ if (fromPath === toPath)
41
+ return;
42
+ await client.exec(box, [
43
+ "/bin/bash",
44
+ "-lc",
45
+ `if [ -f ${shellQuote(fromPath)} ]; then mv ${shellQuote(fromPath)} ${shellQuote(toPath)}; fi`,
46
+ ]);
47
+ };
48
+ //# sourceMappingURL=sessionUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionUtils.js","sourceRoot":"","sources":["../../../src/devbox/commands/sessionUtils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAE,EAAE;IACrD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAgC,EAAE,EAAE;IACzE,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,MAAM,GAAG,GAAG;YAAE,GAAG,GAAG,MAAM,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,mBAAmB,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,QAAgC,EAChC,SAAiB,EACjB,SAAiB,EACjB,EAAE;IACF,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,OAAO,GAAG,SAAS,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,CAAC;QACb,OAAO,GAAG,GAAG,mBAAmB,GAAG,OAAO,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAEjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,SAAS,IAAI,SAAS,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,6BAA6B,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,MAAqB,EACrB,GAAW,EACX,QAAgB,EAChB,MAAc,EACd,EAAE;IACF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO;IAChC,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACrB,WAAW;QACX,KAAK;QACL,WAAW,UAAU,CAAC,QAAQ,CAAC,eAAe,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM;KAC/F,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const runSessions: (args: string[]) => Promise<void>;
2
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/devbox/commands/sessions.ts"],"names":[],"mappings":"AAkTA,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM,EAAE,kBAqS/C,CAAC"}