vibora 7.1.4 → 7.2.0
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/bin/vibora.js +1 -1
- package/package.json +1 -1
- package/server/index.js +50 -0
package/bin/vibora.js
CHANGED
|
@@ -32629,7 +32629,7 @@ function installUv() {
|
|
|
32629
32629
|
var package_default = {
|
|
32630
32630
|
name: "vibora",
|
|
32631
32631
|
private: true,
|
|
32632
|
-
version: "7.
|
|
32632
|
+
version: "7.2.0",
|
|
32633
32633
|
description: "Harness Attention. Orchestrate Agents. Ship.",
|
|
32634
32634
|
license: "PolyForm-Shield-1.0.0",
|
|
32635
32635
|
type: "module",
|
package/package.json
CHANGED
package/server/index.js
CHANGED
|
@@ -177803,6 +177803,13 @@ async function generateSwarmComposeFile(cwd, composeFile, projectName, externalN
|
|
|
177803
177803
|
if (Array.isArray(serviceConfig.volumes)) {
|
|
177804
177804
|
serviceConfig.volumes = serviceConfig.volumes.map((vol) => resolveVolumeEntry(vol, cwd));
|
|
177805
177805
|
}
|
|
177806
|
+
if (Array.isArray(serviceConfig.ports)) {
|
|
177807
|
+
serviceConfig.ports = serviceConfig.ports.map((port) => convertPortToHostMode(port));
|
|
177808
|
+
log2.deploy.debug("Converted ports to host mode", {
|
|
177809
|
+
service: serviceName,
|
|
177810
|
+
ports: serviceConfig.ports
|
|
177811
|
+
});
|
|
177812
|
+
}
|
|
177806
177813
|
const unsupportedFields = [
|
|
177807
177814
|
"container_name",
|
|
177808
177815
|
"links",
|
|
@@ -178052,6 +178059,49 @@ async function waitForServicesHealthy(stackName, timeoutMs = 300000, signal) {
|
|
|
178052
178059
|
function sleep(ms) {
|
|
178053
178060
|
return new Promise((r) => setTimeout(r, ms));
|
|
178054
178061
|
}
|
|
178062
|
+
function convertPortToHostMode(port) {
|
|
178063
|
+
if (typeof port === "string") {
|
|
178064
|
+
const [portPart, protocol] = port.split("/");
|
|
178065
|
+
const rawParts = splitRespectingEnvVars(portPart);
|
|
178066
|
+
const parts = rawParts.map((p) => {
|
|
178067
|
+
const expanded = expandEnvVar(p);
|
|
178068
|
+
return expanded ? Number(expanded) : NaN;
|
|
178069
|
+
});
|
|
178070
|
+
const published = parts[0];
|
|
178071
|
+
const target = parts.length > 1 ? parts[1] : parts[0];
|
|
178072
|
+
if (isNaN(published) || isNaN(target)) {
|
|
178073
|
+
log2.deploy.warn("Could not parse port specification, skipping host mode conversion", {
|
|
178074
|
+
port,
|
|
178075
|
+
parsed: { published, target }
|
|
178076
|
+
});
|
|
178077
|
+
throw new Error(`Cannot parse port specification: ${port}`);
|
|
178078
|
+
}
|
|
178079
|
+
return {
|
|
178080
|
+
target,
|
|
178081
|
+
published,
|
|
178082
|
+
protocol: protocol || "tcp",
|
|
178083
|
+
mode: "host"
|
|
178084
|
+
};
|
|
178085
|
+
}
|
|
178086
|
+
if (typeof port === "number") {
|
|
178087
|
+
return {
|
|
178088
|
+
target: port,
|
|
178089
|
+
published: port,
|
|
178090
|
+
protocol: "tcp",
|
|
178091
|
+
mode: "host"
|
|
178092
|
+
};
|
|
178093
|
+
}
|
|
178094
|
+
if (typeof port === "object" && port !== null) {
|
|
178095
|
+
const p = port;
|
|
178096
|
+
return {
|
|
178097
|
+
target: p.target || p.published,
|
|
178098
|
+
published: p.published || p.target,
|
|
178099
|
+
protocol: p.protocol || "tcp",
|
|
178100
|
+
mode: "host"
|
|
178101
|
+
};
|
|
178102
|
+
}
|
|
178103
|
+
throw new Error(`Invalid port specification: ${JSON.stringify(port)}`);
|
|
178104
|
+
}
|
|
178055
178105
|
function resolveVolumePath(volumePath, basePath) {
|
|
178056
178106
|
const expanded = expandEnvVar(volumePath);
|
|
178057
178107
|
const pathToCheck = expanded ?? volumePath;
|