@vm0/cli 9.221.4 → 9.221.6
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/{agent-SRJW4DJV.js → agent-DYWIJQ2R.js} +4 -4
- package/{automation-THUDKXQR.js → automation-U62LQKYO.js} +7 -9
- package/{automation-THUDKXQR.js.map → automation-U62LQKYO.js.map} +1 -1
- package/{banking-ED4LTRY3.js → banking-NLYZOBEM.js} +2 -2
- package/{chat-WMXIEDEY.js → chat-5UZFU2YR.js} +2 -2
- package/{chunk-3NMCKGNJ.js → chunk-65CYJRLA.js} +2 -2
- package/{chunk-4YUV2CMK.js → chunk-6OGS5SQ6.js} +3 -3
- package/{chunk-M5MXYLLZ.js → chunk-7TDL7YQG.js} +129 -222
- package/chunk-7TDL7YQG.js.map +1 -0
- package/{chunk-J7RLLIWI.js → chunk-HQFETCZ6.js} +26 -2
- package/chunk-HQFETCZ6.js.map +1 -0
- package/{chunk-2K5GNYND.js → chunk-IFA2V7EW.js} +2 -2
- package/{chunk-RR5CO7IT.js → chunk-IMZDXXSW.js} +2 -2
- package/{chunk-QV73BJ3B.js → chunk-PCBM5SRN.js} +320 -134
- package/chunk-PCBM5SRN.js.map +1 -0
- package/{chunk-QCYPFXRV.js → chunk-PX6FH3KT.js} +2 -2
- package/{chunk-AYR37FIN.js → chunk-ZOZTDOZE.js} +3 -3
- package/{chunk-DAC5OAWI.js → chunk-ZQYA5M55.js} +3 -64
- package/{chunk-DAC5OAWI.js.map → chunk-ZQYA5M55.js.map} +1 -1
- package/{computer-use-WINYVPQS.js → computer-use-JWVNMBIM.js} +2 -2
- package/{connector-WBM4EKRR.js → connector-YJX3MZGN.js} +382 -395
- package/connector-YJX3MZGN.js.map +1 -0
- package/{credit-KJRMNSQ2.js → credit-FHOJ736M.js} +2 -2
- package/{developer-support-DMUPPQB2.js → developer-support-BJVUM5OZ.js} +2 -2
- package/{doctor-VGQ6YI6G.js → doctor-BDSKVS5W.js} +5 -5
- package/{generate-STQVPQZO.js → generate-EA5ZRXFE.js} +60 -81
- package/generate-EA5ZRXFE.js.map +1 -0
- package/{github-LSFYZXO3.js → github-NU7VA3WB.js} +2 -2
- package/{goal-BNN7NM52.js → goal-4H4GUEMC.js} +2 -2
- package/{host-4MVX223U.js → host-SCI3ZPFT.js} +2 -2
- package/index.js +13 -13
- package/{logs-2VYXOUSW.js → logs-WHJPLPCR.js} +6 -6
- package/{maps-AMT7SMTH.js → maps-E5GVYSKP.js} +2 -2
- package/{model-HRRTGQQW.js → model-XP7ACN22.js} +3 -3
- package/{model-provider-HRK3C42K.js → model-provider-TAGWSIEW.js} +3 -3
- package/{org-M6Z5HXLU.js → org-4CMXX52G.js} +2 -2
- package/package.json +1 -1
- package/{phone-XM2DDX3C.js → phone-T7VLFMEU.js} +2 -2
- package/{preference-OQ3NRFCT.js → preference-Q4ZCLD2L.js} +2 -2
- package/{resource-NR6R2I6J.js → resource-QKFJESUB.js} +2 -2
- package/{search-RVTPT6N3.js → search-CTYF6KGG.js} +6 -6
- package/{secret-JPLOSNN3.js → secret-LMPIFKPU.js} +3 -3
- package/{slack-ETMPZQYC.js → slack-FKENH3DZ.js} +2 -2
- package/{telegram-IOHI44M5.js → telegram-ZG24OBRU.js} +2 -2
- package/{variable-URYGYI2W.js → variable-BOATQUX3.js} +2 -2
- package/{web-OAVP3LA4.js → web-3ASTXCH7.js} +2 -2
- package/{whoami-5RMEOJGY.js → whoami-DHCS6YIJ.js} +4 -4
- package/{workflow-JJXIMM3C.js → workflow-T2TTFE6C.js} +4 -6
- package/{workflow-JJXIMM3C.js.map → workflow-T2TTFE6C.js.map} +1 -1
- package/zero.js +31 -31
- package/chunk-J7RLLIWI.js.map +0 -1
- package/chunk-M5MXYLLZ.js.map +0 -1
- package/chunk-QV73BJ3B.js.map +0 -1
- package/chunk-RGP625TN.js +0 -47
- package/chunk-RGP625TN.js.map +0 -1
- package/connector-WBM4EKRR.js.map +0 -1
- package/generate-STQVPQZO.js.map +0 -1
- /package/{agent-SRJW4DJV.js.map → agent-DYWIJQ2R.js.map} +0 -0
- /package/{banking-ED4LTRY3.js.map → banking-NLYZOBEM.js.map} +0 -0
- /package/{chat-WMXIEDEY.js.map → chat-5UZFU2YR.js.map} +0 -0
- /package/{chunk-3NMCKGNJ.js.map → chunk-65CYJRLA.js.map} +0 -0
- /package/{chunk-4YUV2CMK.js.map → chunk-6OGS5SQ6.js.map} +0 -0
- /package/{chunk-2K5GNYND.js.map → chunk-IFA2V7EW.js.map} +0 -0
- /package/{chunk-RR5CO7IT.js.map → chunk-IMZDXXSW.js.map} +0 -0
- /package/{chunk-QCYPFXRV.js.map → chunk-PX6FH3KT.js.map} +0 -0
- /package/{chunk-AYR37FIN.js.map → chunk-ZOZTDOZE.js.map} +0 -0
- /package/{computer-use-WINYVPQS.js.map → computer-use-JWVNMBIM.js.map} +0 -0
- /package/{credit-KJRMNSQ2.js.map → credit-FHOJ736M.js.map} +0 -0
- /package/{developer-support-DMUPPQB2.js.map → developer-support-BJVUM5OZ.js.map} +0 -0
- /package/{doctor-VGQ6YI6G.js.map → doctor-BDSKVS5W.js.map} +0 -0
- /package/{github-LSFYZXO3.js.map → github-NU7VA3WB.js.map} +0 -0
- /package/{goal-BNN7NM52.js.map → goal-4H4GUEMC.js.map} +0 -0
- /package/{host-4MVX223U.js.map → host-SCI3ZPFT.js.map} +0 -0
- /package/{logs-2VYXOUSW.js.map → logs-WHJPLPCR.js.map} +0 -0
- /package/{maps-AMT7SMTH.js.map → maps-E5GVYSKP.js.map} +0 -0
- /package/{model-HRRTGQQW.js.map → model-XP7ACN22.js.map} +0 -0
- /package/{model-provider-HRK3C42K.js.map → model-provider-TAGWSIEW.js.map} +0 -0
- /package/{org-M6Z5HXLU.js.map → org-4CMXX52G.js.map} +0 -0
- /package/{phone-XM2DDX3C.js.map → phone-T7VLFMEU.js.map} +0 -0
- /package/{preference-OQ3NRFCT.js.map → preference-Q4ZCLD2L.js.map} +0 -0
- /package/{resource-NR6R2I6J.js.map → resource-QKFJESUB.js.map} +0 -0
- /package/{search-RVTPT6N3.js.map → search-CTYF6KGG.js.map} +0 -0
- /package/{secret-JPLOSNN3.js.map → secret-LMPIFKPU.js.map} +0 -0
- /package/{slack-ETMPZQYC.js.map → slack-FKENH3DZ.js.map} +0 -0
- /package/{telegram-IOHI44M5.js.map → telegram-ZG24OBRU.js.map} +0 -0
- /package/{variable-URYGYI2W.js.map → variable-BOATQUX3.js.map} +0 -0
- /package/{web-OAVP3LA4.js.map → web-3ASTXCH7.js.map} +0 -0
- /package/{whoami-5RMEOJGY.js.map → whoami-DHCS6YIJ.js.map} +0 -0
|
@@ -40,8 +40,32 @@ function formatDurationSeconds(seconds) {
|
|
|
40
40
|
return `${seconds}s`;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
// src/lib/domain/schedule-utils.ts
|
|
44
|
+
init_esm_shims();
|
|
45
|
+
function formatRelativeTime(dateStr) {
|
|
46
|
+
if (!dateStr) return "-";
|
|
47
|
+
const date = new Date(dateStr);
|
|
48
|
+
const now = /* @__PURE__ */ new Date();
|
|
49
|
+
const diffMs = date.getTime() - now.getTime();
|
|
50
|
+
const diffAbs = Math.abs(diffMs);
|
|
51
|
+
const minutes = Math.floor(diffAbs / (1e3 * 60));
|
|
52
|
+
const hours = Math.floor(diffAbs / (1e3 * 60 * 60));
|
|
53
|
+
const days = Math.floor(diffAbs / (1e3 * 60 * 60 * 24));
|
|
54
|
+
const isPast = diffMs < 0;
|
|
55
|
+
if (days > 0) {
|
|
56
|
+
return isPast ? `${days}d ago` : `in ${days}d`;
|
|
57
|
+
} else if (hours > 0) {
|
|
58
|
+
return isPast ? `${hours}h ago` : `in ${hours}h`;
|
|
59
|
+
} else if (minutes > 0) {
|
|
60
|
+
return isPast ? `${minutes}m ago` : `in ${minutes}m`;
|
|
61
|
+
} else {
|
|
62
|
+
return isPast ? "just now" : "soon";
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
43
66
|
export {
|
|
44
67
|
parseDurationSeconds,
|
|
45
|
-
formatDurationSeconds
|
|
68
|
+
formatDurationSeconds,
|
|
69
|
+
formatRelativeTime
|
|
46
70
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
71
|
+
//# sourceMappingURL=chunk-HQFETCZ6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/zero/automation/duration.ts","../src/lib/domain/schedule-utils.ts"],"sourcesContent":["/**\n * Human-friendly duration handling for loop triggers (`--every` / `--loop`).\n */\n\nconst DURATION_PATTERN = /^(\\d+)([smhd])$/;\n\nconst UNIT_SECONDS: Record<string, number> = {\n s: 1,\n m: 60,\n h: 60 * 60,\n d: 24 * 60 * 60,\n};\n\n/**\n * Parse a human duration like \"90s\", \"15m\", \"1h\", \"2d\" into seconds.\n * @throws Error when the input is not a positive integer + unit\n */\nexport function parseDurationSeconds(input: string): number {\n const match = input.match(DURATION_PATTERN);\n if (!match) {\n throw new Error(\n `Invalid duration: \"${input}\". Use <number><unit> with unit s, m, h, or d (e.g. 90s, 15m, 1h)`,\n );\n }\n\n const value = parseInt(match[1]!, 10);\n if (value <= 0) {\n throw new Error(`Invalid duration: \"${input}\". Must be greater than zero`);\n }\n\n return value * UNIT_SECONDS[match[2]!]!;\n}\n\n/**\n * Format seconds back into the largest exact unit (900 → \"15m\", 90 → \"90s\")\n */\nexport function formatDurationSeconds(seconds: number): string {\n for (const [unit, size] of [\n [\"d\", UNIT_SECONDS.d!],\n [\"h\", UNIT_SECONDS.h!],\n [\"m\", UNIT_SECONDS.m!],\n ] as const) {\n if (seconds % size === 0 && seconds >= size) {\n return `${seconds / size}${unit}`;\n }\n }\n return `${seconds}s`;\n}\n","/**\n * Format a date string as relative time (e.g., \"in 2h\", \"3d ago\")\n */\nexport function formatRelativeTime(dateStr: string | null): string {\n if (!dateStr) return \"-\";\n\n const date = new Date(dateStr);\n const now = new Date();\n const diffMs = date.getTime() - now.getTime();\n const diffAbs = Math.abs(diffMs);\n\n const minutes = Math.floor(diffAbs / (1000 * 60));\n const hours = Math.floor(diffAbs / (1000 * 60 * 60));\n const days = Math.floor(diffAbs / (1000 * 60 * 60 * 24));\n\n const isPast = diffMs < 0;\n\n if (days > 0) {\n return isPast ? `${days}d ago` : `in ${days}d`;\n } else if (hours > 0) {\n return isPast ? `${hours}h ago` : `in ${hours}h`;\n } else if (minutes > 0) {\n return isPast ? `${minutes}m ago` : `in ${minutes}m`;\n } else {\n return isPast ? \"just now\" : \"soon\";\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAIA,IAAM,mBAAmB;AAEzB,IAAM,eAAuC;AAAA,EAC3C,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG,KAAK;AAAA,EACR,GAAG,KAAK,KAAK;AACf;AAMO,SAAS,qBAAqB,OAAuB;AAC1D,QAAM,QAAQ,MAAM,MAAM,gBAAgB;AAC1C,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR,sBAAsB,KAAK;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,QAAQ,SAAS,MAAM,CAAC,GAAI,EAAE;AACpC,MAAI,SAAS,GAAG;AACd,UAAM,IAAI,MAAM,sBAAsB,KAAK,8BAA8B;AAAA,EAC3E;AAEA,SAAO,QAAQ,aAAa,MAAM,CAAC,CAAE;AACvC;AAKO,SAAS,sBAAsB,SAAyB;AAC7D,aAAW,CAAC,MAAM,IAAI,KAAK;AAAA,IACzB,CAAC,KAAK,aAAa,CAAE;AAAA,IACrB,CAAC,KAAK,aAAa,CAAE;AAAA,IACrB,CAAC,KAAK,aAAa,CAAE;AAAA,EACvB,GAAY;AACV,QAAI,UAAU,SAAS,KAAK,WAAW,MAAM;AAC3C,aAAO,GAAG,UAAU,IAAI,GAAG,IAAI;AAAA,IACjC;AAAA,EACF;AACA,SAAO,GAAG,OAAO;AACnB;;;AC/CA;AAGO,SAAS,mBAAmB,SAAgC;AACjE,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM,OAAO,IAAI,KAAK,OAAO;AAC7B,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,SAAS,KAAK,QAAQ,IAAI,IAAI,QAAQ;AAC5C,QAAM,UAAU,KAAK,IAAI,MAAM;AAE/B,QAAM,UAAU,KAAK,MAAM,WAAW,MAAO,GAAG;AAChD,QAAM,QAAQ,KAAK,MAAM,WAAW,MAAO,KAAK,GAAG;AACnD,QAAM,OAAO,KAAK,MAAM,WAAW,MAAO,KAAK,KAAK,GAAG;AAEvD,QAAM,SAAS,SAAS;AAExB,MAAI,OAAO,GAAG;AACZ,WAAO,SAAS,GAAG,IAAI,UAAU,MAAM,IAAI;AAAA,EAC7C,WAAW,QAAQ,GAAG;AACpB,WAAO,SAAS,GAAG,KAAK,UAAU,MAAM,KAAK;AAAA,EAC/C,WAAW,UAAU,GAAG;AACtB,WAAO,SAAS,GAAG,OAAO,UAAU,MAAM,OAAO;AAAA,EACnD,OAAO;AACL,WAAO,SAAS,aAAa;AAAA,EAC/B;AACF;","names":[]}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
parseSegment,
|
|
9
9
|
splitPathSegments,
|
|
10
10
|
validateBaseUrl
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PCBM5SRN.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esm_shims
|
|
14
14
|
} from "./chunk-DIRAZ3YX.js";
|
|
@@ -609,4 +609,4 @@ export {
|
|
|
609
609
|
matchFirewallBaseUrl,
|
|
610
610
|
findMatchingRoutingPermissions
|
|
611
611
|
};
|
|
612
|
-
//# sourceMappingURL=chunk-
|
|
612
|
+
//# sourceMappingURL=chunk-IFA2V7EW.js.map
|
|
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
loadFirewallPermissionMetadata,
|
|
6
6
|
resolveFirewallMetadataPolicies
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PX6FH3KT.js";
|
|
8
8
|
import {
|
|
9
9
|
source_default
|
|
10
10
|
} from "./chunk-JUTUEPIR.js";
|
|
@@ -87,4 +87,4 @@ export {
|
|
|
87
87
|
policyIcon,
|
|
88
88
|
loadConnectorPermissionInfos
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
90
|
+
//# sourceMappingURL=chunk-IMZDXXSW.js.map
|