@vm0/cli 9.246.10 → 9.247.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/{agent-I3JFWK4N.js → agent-YLCZG4ST.js} +5 -5
- package/{banking-IARZ5AWJ.js → banking-A4VPNAGY.js} +3 -3
- package/{chat-UNFIWAPR.js → chat-C6P67WYO.js} +4 -4
- package/{chunk-PAHALCUI.js → chunk-FYZS5VEA.js} +71 -13
- package/chunk-FYZS5VEA.js.map +1 -0
- package/{chunk-2ZI6BEAC.js → chunk-HFXL5AVL.js} +2 -2
- package/{chunk-HYU6KI5A.js → chunk-HYRTW4LY.js} +2 -2
- package/{chunk-3PJP2SGA.js → chunk-JREZPGL7.js} +163 -40
- package/chunk-JREZPGL7.js.map +1 -0
- package/{chunk-RR7BZ6EH.js → chunk-KBKTQLGX.js} +2 -2
- package/{chunk-DPSR6NPE.js → chunk-LA4I64KW.js} +2 -2
- package/{chunk-6VTJPGKG.js → chunk-TM2JASGG.js} +2 -2
- package/{chunk-NHK2KDYS.js → chunk-VTVYDURY.js} +4 -4
- package/{computer-use-EZM7EXRZ.js → computer-use-HZLNEZ2I.js} +3 -3
- package/{connector-KYP4HOSX.js → connector-6LDMVILB.js} +6 -6
- package/{credit-T6W5CAB5.js → credit-E4DPMKBT.js} +4 -4
- package/{developer-support-KWXMW2SF.js → developer-support-E3FEFRY2.js} +3 -3
- package/{doctor-4S6XFRNC.js → doctor-ILWD6C2K.js} +3 -3
- package/{generate-EK3TSRNK.js → generate-N6R5TZZ2.js} +4 -4
- package/{github-TINANPSO.js → github-VDCFYJIH.js} +3 -3
- package/{goal-T2PXNJTM.js → goal-DQCWM4I3.js} +3 -3
- package/{host-OM6O74S6.js → host-7CN3NZRQ.js} +3 -3
- package/{logs-PGH4FABT.js → logs-52MLVLCY.js} +4 -4
- package/{mail-MECJAUVM.js → mail-MEI2ARFN.js} +5 -5
- package/{maps-KMVRBVEX.js → maps-HOSDZCTR.js} +3 -3
- package/{model-MPUHVF7H.js → model-YPG2ESDH.js} +4 -4
- package/{model-provider-27TZ6VFX.js → model-provider-CRSYVHTZ.js} +4 -4
- package/{org-FNSENJJO.js → org-QAEZNHHR.js} +3 -3
- package/package.json +1 -1
- package/{phone-LLPXOOJW.js → phone-KBACVWG7.js} +3 -3
- package/{preference-FUSV446Z.js → preference-CZ5T4ZH6.js} +3 -3
- package/{resource-NIMK4DX6.js → resource-6O5NRYUA.js} +3 -3
- package/{scrape-XLX64EOI.js → scrape-XTWF7NE4.js} +3 -3
- package/{search-6E2N4DQB.js → search-OI5PNIX3.js} +4 -4
- package/{secret-IEATUVEL.js → secret-S6Z5NHSK.js} +3 -3
- package/{slack-6ETEPWTV.js → slack-RTT7D47V.js} +3 -3
- package/{teams-7YDYQBYQ.js → teams-WS6I3ZMV.js} +3 -3
- package/{telegram-2R6NQS4O.js → telegram-Q2GNTJFX.js} +3 -3
- package/{variable-TEEBVVZE.js → variable-4WVPWYYU.js} +3 -3
- package/{video-ZA3IQ2ZY.js → video-B3UGIF3E.js} +2 -2
- package/weather-JLYOYLJR.js +216 -0
- package/weather-JLYOYLJR.js.map +1 -0
- package/{web-4GADX76H.js → web-3RIJORTL.js} +3 -3
- package/{web-search-K4BAJAXZ.js → web-search-CVZYQ7HH.js} +3 -3
- package/{whoami-JDTHGADP.js → whoami-U2VXOZNF.js} +5 -5
- package/{workflow-4R2DFMCY.js → workflow-OTBS5W7K.js} +3 -3
- package/zero.js +47 -36
- package/zero.js.map +1 -1
- package/chunk-3PJP2SGA.js.map +0 -1
- package/chunk-PAHALCUI.js.map +0 -1
- /package/{agent-I3JFWK4N.js.map → agent-YLCZG4ST.js.map} +0 -0
- /package/{banking-IARZ5AWJ.js.map → banking-A4VPNAGY.js.map} +0 -0
- /package/{chat-UNFIWAPR.js.map → chat-C6P67WYO.js.map} +0 -0
- /package/{chunk-2ZI6BEAC.js.map → chunk-HFXL5AVL.js.map} +0 -0
- /package/{chunk-HYU6KI5A.js.map → chunk-HYRTW4LY.js.map} +0 -0
- /package/{chunk-RR7BZ6EH.js.map → chunk-KBKTQLGX.js.map} +0 -0
- /package/{chunk-DPSR6NPE.js.map → chunk-LA4I64KW.js.map} +0 -0
- /package/{chunk-6VTJPGKG.js.map → chunk-TM2JASGG.js.map} +0 -0
- /package/{chunk-NHK2KDYS.js.map → chunk-VTVYDURY.js.map} +0 -0
- /package/{computer-use-EZM7EXRZ.js.map → computer-use-HZLNEZ2I.js.map} +0 -0
- /package/{connector-KYP4HOSX.js.map → connector-6LDMVILB.js.map} +0 -0
- /package/{credit-T6W5CAB5.js.map → credit-E4DPMKBT.js.map} +0 -0
- /package/{developer-support-KWXMW2SF.js.map → developer-support-E3FEFRY2.js.map} +0 -0
- /package/{doctor-4S6XFRNC.js.map → doctor-ILWD6C2K.js.map} +0 -0
- /package/{generate-EK3TSRNK.js.map → generate-N6R5TZZ2.js.map} +0 -0
- /package/{github-TINANPSO.js.map → github-VDCFYJIH.js.map} +0 -0
- /package/{goal-T2PXNJTM.js.map → goal-DQCWM4I3.js.map} +0 -0
- /package/{host-OM6O74S6.js.map → host-7CN3NZRQ.js.map} +0 -0
- /package/{logs-PGH4FABT.js.map → logs-52MLVLCY.js.map} +0 -0
- /package/{mail-MECJAUVM.js.map → mail-MEI2ARFN.js.map} +0 -0
- /package/{maps-KMVRBVEX.js.map → maps-HOSDZCTR.js.map} +0 -0
- /package/{model-MPUHVF7H.js.map → model-YPG2ESDH.js.map} +0 -0
- /package/{model-provider-27TZ6VFX.js.map → model-provider-CRSYVHTZ.js.map} +0 -0
- /package/{org-FNSENJJO.js.map → org-QAEZNHHR.js.map} +0 -0
- /package/{phone-LLPXOOJW.js.map → phone-KBACVWG7.js.map} +0 -0
- /package/{preference-FUSV446Z.js.map → preference-CZ5T4ZH6.js.map} +0 -0
- /package/{resource-NIMK4DX6.js.map → resource-6O5NRYUA.js.map} +0 -0
- /package/{scrape-XLX64EOI.js.map → scrape-XTWF7NE4.js.map} +0 -0
- /package/{search-6E2N4DQB.js.map → search-OI5PNIX3.js.map} +0 -0
- /package/{secret-IEATUVEL.js.map → secret-S6Z5NHSK.js.map} +0 -0
- /package/{slack-6ETEPWTV.js.map → slack-RTT7D47V.js.map} +0 -0
- /package/{teams-7YDYQBYQ.js.map → teams-WS6I3ZMV.js.map} +0 -0
- /package/{telegram-2R6NQS4O.js.map → telegram-Q2GNTJFX.js.map} +0 -0
- /package/{variable-TEEBVVZE.js.map → variable-4WVPWYYU.js.map} +0 -0
- /package/{video-ZA3IQ2ZY.js.map → video-B3UGIF3E.js.map} +0 -0
- /package/{web-4GADX76H.js.map → web-3RIJORTL.js.map} +0 -0
- /package/{web-search-K4BAJAXZ.js.map → web-search-CVZYQ7HH.js.map} +0 -0
- /package/{whoami-JDTHGADP.js.map → whoami-U2VXOZNF.js.map} +0 -0
- /package/{workflow-4R2DFMCY.js.map → workflow-OTBS5W7K.js.map} +0 -0
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
deleteZeroVariable,
|
|
10
10
|
listZeroVariables,
|
|
11
11
|
setZeroVariable
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FYZS5VEA.js";
|
|
13
13
|
import "./chunk-LTDQISD7.js";
|
|
14
14
|
import {
|
|
15
15
|
source_default,
|
|
16
16
|
withErrorHandler
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-HYRTW4LY.js";
|
|
18
18
|
import "./chunk-LRHXR7JT.js";
|
|
19
19
|
import {
|
|
20
20
|
Command
|
|
@@ -115,4 +115,4 @@ var zeroVariableCommand = new Command().name("variable").description("Read or wr
|
|
|
115
115
|
export {
|
|
116
116
|
zeroVariableCommand
|
|
117
117
|
};
|
|
118
|
-
//# sourceMappingURL=variable-
|
|
118
|
+
//# sourceMappingURL=variable-4WVPWYYU.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
downloadWebFile,
|
|
7
7
|
transcribeAudio,
|
|
8
8
|
withErrorHandler
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-HYRTW4LY.js";
|
|
10
10
|
import "./chunk-LRHXR7JT.js";
|
|
11
11
|
import {
|
|
12
12
|
Command
|
|
@@ -245,4 +245,4 @@ Tip (video understanding):
|
|
|
245
245
|
export {
|
|
246
246
|
zeroVideoCommand
|
|
247
247
|
};
|
|
248
|
-
//# sourceMappingURL=video-
|
|
248
|
+
//# sourceMappingURL=video-B3UGIF3E.js.map
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
callZeroWeather
|
|
6
|
+
} from "./chunk-FYZS5VEA.js";
|
|
7
|
+
import "./chunk-LTDQISD7.js";
|
|
8
|
+
import {
|
|
9
|
+
source_default,
|
|
10
|
+
withErrorHandler
|
|
11
|
+
} from "./chunk-HYRTW4LY.js";
|
|
12
|
+
import "./chunk-LRHXR7JT.js";
|
|
13
|
+
import {
|
|
14
|
+
Command,
|
|
15
|
+
InvalidArgumentError
|
|
16
|
+
} from "./chunk-B3W2RUBP.js";
|
|
17
|
+
import {
|
|
18
|
+
init_esm_shims
|
|
19
|
+
} from "./chunk-DIRAZ3YX.js";
|
|
20
|
+
|
|
21
|
+
// src/commands/zero/weather/index.ts
|
|
22
|
+
init_esm_shims();
|
|
23
|
+
var WEATHER_UNITS = ["metric", "imperial"];
|
|
24
|
+
function parseLatitude(value) {
|
|
25
|
+
const latitude = Number(value);
|
|
26
|
+
if (!Number.isFinite(latitude) || latitude < -90 || latitude > 90) {
|
|
27
|
+
throw new InvalidArgumentError("latitude must be a number from -90 to 90");
|
|
28
|
+
}
|
|
29
|
+
return latitude;
|
|
30
|
+
}
|
|
31
|
+
function parseLongitude(value) {
|
|
32
|
+
const longitude = Number(value);
|
|
33
|
+
if (!Number.isFinite(longitude) || longitude < -180 || longitude > 180) {
|
|
34
|
+
throw new InvalidArgumentError(
|
|
35
|
+
"longitude must be a number from -180 to 180"
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
return longitude;
|
|
39
|
+
}
|
|
40
|
+
function parseIntegerInRange(value, min, max) {
|
|
41
|
+
const parsed = Number(value);
|
|
42
|
+
if (!Number.isInteger(parsed) || parsed < min || parsed > max) {
|
|
43
|
+
throw new InvalidArgumentError(
|
|
44
|
+
`value must be an integer from ${min} to ${max}`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
return parsed;
|
|
48
|
+
}
|
|
49
|
+
function parseWeatherUnits(value) {
|
|
50
|
+
if (WEATHER_UNITS.includes(value)) {
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
throw new InvalidArgumentError(
|
|
54
|
+
`units must be one of: ${WEATHER_UNITS.join(", ")}`
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
function coordinatePayload(options) {
|
|
58
|
+
return {
|
|
59
|
+
lat: options.lat,
|
|
60
|
+
lng: options.lng,
|
|
61
|
+
languageCode: options.language
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function locationPayload(options) {
|
|
65
|
+
return {
|
|
66
|
+
...coordinatePayload(options),
|
|
67
|
+
units: options.units
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function pagedPayload(options) {
|
|
71
|
+
return {
|
|
72
|
+
...locationPayload(options),
|
|
73
|
+
pageSize: options.pageSize,
|
|
74
|
+
pageToken: options.pageToken
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function renderWeatherMetadata(response) {
|
|
78
|
+
if (response.provider) {
|
|
79
|
+
console.log(source_default.dim(` Provider: ${response.provider}`));
|
|
80
|
+
}
|
|
81
|
+
if (response.attribution) {
|
|
82
|
+
console.log(source_default.dim(` ${response.attribution}`));
|
|
83
|
+
}
|
|
84
|
+
if (response.billingCategory) {
|
|
85
|
+
console.log(source_default.dim(` Billing category: ${response.billingCategory}`));
|
|
86
|
+
}
|
|
87
|
+
if (response.billingQuantity !== void 0) {
|
|
88
|
+
console.log(source_default.dim(` Billing quantity: ${response.billingQuantity}`));
|
|
89
|
+
}
|
|
90
|
+
if (response.creditsCharged !== void 0) {
|
|
91
|
+
console.log(source_default.dim(` Credits charged: ${response.creditsCharged}`));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function renderWeatherResponse(label, response) {
|
|
95
|
+
console.log(source_default.green(`\u2713 ${label}`));
|
|
96
|
+
renderWeatherMetadata(response);
|
|
97
|
+
console.log(JSON.stringify(response.result ?? response, null, 2));
|
|
98
|
+
}
|
|
99
|
+
async function runWeatherRequest(label, endpoint, payload, options) {
|
|
100
|
+
const response = await callZeroWeather(endpoint, payload);
|
|
101
|
+
if (options.json) {
|
|
102
|
+
console.log(JSON.stringify(response));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
renderWeatherResponse(label, response);
|
|
106
|
+
}
|
|
107
|
+
function addCoordinateOptions(command) {
|
|
108
|
+
return command.requiredOption("--lat <number>", "Latitude", parseLatitude).requiredOption("--lng <number>", "Longitude", parseLongitude).option("--language <code>", "IETF BCP-47 response language code").option("--json", "Print the raw response as JSON");
|
|
109
|
+
}
|
|
110
|
+
function addLocationOptions(command) {
|
|
111
|
+
return addCoordinateOptions(command).option(
|
|
112
|
+
"--units <system>",
|
|
113
|
+
"Units system: metric or imperial",
|
|
114
|
+
parseWeatherUnits,
|
|
115
|
+
"metric"
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
function addHourlyPaginationOptions(command) {
|
|
119
|
+
return command.option("--page-size <n>", "Records per page, from 1 to 24", (value) => {
|
|
120
|
+
return parseIntegerInRange(value, 1, 24);
|
|
121
|
+
}).option("--page-token <token>", "Token for the next page");
|
|
122
|
+
}
|
|
123
|
+
var currentCommand = addLocationOptions(
|
|
124
|
+
new Command().name("current").description("Get current weather conditions")
|
|
125
|
+
).action(
|
|
126
|
+
withErrorHandler(async (options) => {
|
|
127
|
+
await runWeatherRequest(
|
|
128
|
+
"Current weather retrieved",
|
|
129
|
+
"current",
|
|
130
|
+
locationPayload(options),
|
|
131
|
+
options
|
|
132
|
+
);
|
|
133
|
+
})
|
|
134
|
+
);
|
|
135
|
+
var hourlyForecastCommand = addHourlyPaginationOptions(
|
|
136
|
+
addLocationOptions(
|
|
137
|
+
new Command().name("hourly").description("Get up to 240 hours of hourly forecasts")
|
|
138
|
+
)
|
|
139
|
+
).option("--hours <n>", "Total forecast hours, from 1 to 240", (value) => {
|
|
140
|
+
return parseIntegerInRange(value, 1, 240);
|
|
141
|
+
}).action(
|
|
142
|
+
withErrorHandler(async (options) => {
|
|
143
|
+
await runWeatherRequest(
|
|
144
|
+
"Hourly forecast retrieved",
|
|
145
|
+
"forecast/hourly",
|
|
146
|
+
{ ...pagedPayload(options), hours: options.hours },
|
|
147
|
+
options
|
|
148
|
+
);
|
|
149
|
+
})
|
|
150
|
+
);
|
|
151
|
+
var dailyForecastCommand = addLocationOptions(
|
|
152
|
+
new Command().name("daily").description("Get up to 10 days of daily forecasts")
|
|
153
|
+
).option("--days <n>", "Total forecast days, from 1 to 10", (value) => {
|
|
154
|
+
return parseIntegerInRange(value, 1, 10);
|
|
155
|
+
}).option("--page-size <n>", "Records per page, from 1 to 10", (value) => {
|
|
156
|
+
return parseIntegerInRange(value, 1, 10);
|
|
157
|
+
}).option("--page-token <token>", "Token for the next page").action(
|
|
158
|
+
withErrorHandler(async (options) => {
|
|
159
|
+
await runWeatherRequest(
|
|
160
|
+
"Daily forecast retrieved",
|
|
161
|
+
"forecast/daily",
|
|
162
|
+
{ ...pagedPayload(options), days: options.days },
|
|
163
|
+
options
|
|
164
|
+
);
|
|
165
|
+
})
|
|
166
|
+
);
|
|
167
|
+
var hourlyHistoryCommand = addHourlyPaginationOptions(
|
|
168
|
+
addLocationOptions(
|
|
169
|
+
new Command().name("hourly").description("Get up to 24 hours of recent hourly history")
|
|
170
|
+
)
|
|
171
|
+
).option("--hours <n>", "Total history hours, from 1 to 24", (value) => {
|
|
172
|
+
return parseIntegerInRange(value, 1, 24);
|
|
173
|
+
}).action(
|
|
174
|
+
withErrorHandler(async (options) => {
|
|
175
|
+
await runWeatherRequest(
|
|
176
|
+
"Hourly weather history retrieved",
|
|
177
|
+
"history/hourly",
|
|
178
|
+
{ ...pagedPayload(options), hours: options.hours },
|
|
179
|
+
options
|
|
180
|
+
);
|
|
181
|
+
})
|
|
182
|
+
);
|
|
183
|
+
var airQualityCurrentCommand = addCoordinateOptions(
|
|
184
|
+
new Command().name("current").description("Get current air quality")
|
|
185
|
+
).action(
|
|
186
|
+
withErrorHandler(async (options) => {
|
|
187
|
+
await runWeatherRequest(
|
|
188
|
+
"Current air quality retrieved",
|
|
189
|
+
"air-quality/current",
|
|
190
|
+
coordinatePayload(options),
|
|
191
|
+
options
|
|
192
|
+
);
|
|
193
|
+
})
|
|
194
|
+
);
|
|
195
|
+
var forecastCommand = new Command().name("forecast").description("Get hourly or daily weather forecasts").addCommand(hourlyForecastCommand).addCommand(dailyForecastCommand);
|
|
196
|
+
var historyCommand = new Command().name("history").description("Get recent weather history").addCommand(hourlyHistoryCommand);
|
|
197
|
+
var airQualityCommand = new Command().name("air-quality").description("Get current air quality").addCommand(airQualityCurrentCommand);
|
|
198
|
+
var zeroWeatherCommand = new Command().name("weather").description("Use managed Zero weather and air quality services").addCommand(currentCommand).addCommand(forecastCommand).addCommand(historyCommand).addCommand(airQualityCommand).addHelpText(
|
|
199
|
+
"after",
|
|
200
|
+
`
|
|
201
|
+
Examples:
|
|
202
|
+
Current conditions: zero weather current --lat 39.9042 --lng 116.4074 --language zh-CN --json
|
|
203
|
+
Hourly forecast: zero weather forecast hourly --lat 39.9042 --lng 116.4074 --hours 48 --page-size 24 --json
|
|
204
|
+
Daily forecast: zero weather forecast daily --lat 39.9042 --lng 116.4074 --days 10 --page-size 10 --json
|
|
205
|
+
Hourly history: zero weather history hourly --lat 39.9042 --lng 116.4074 --hours 24 --json
|
|
206
|
+
Current air quality: zero weather air-quality current --lat 39.9042 --lng 116.4074 --language zh-CN --json
|
|
207
|
+
|
|
208
|
+
Notes:
|
|
209
|
+
- Authenticates via ZERO_TOKEN (requires weather:read capability) or a CLI token
|
|
210
|
+
- Each command makes one Google Weather or Air Quality API request; use page tokens for additional weather pages
|
|
211
|
+
- Calls are recorded for usage analytics and currently charge 0 credits`
|
|
212
|
+
);
|
|
213
|
+
export {
|
|
214
|
+
zeroWeatherCommand
|
|
215
|
+
};
|
|
216
|
+
//# sourceMappingURL=weather-JLYOYLJR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/zero/weather/index.ts"],"sourcesContent":["import { Command, InvalidArgumentError } from \"commander\";\nimport chalk from \"chalk\";\n\nimport { callZeroWeather, type ZeroWeatherResponse } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\nconst WEATHER_UNITS = [\"metric\", \"imperial\"] as const;\n\ntype WeatherUnits = (typeof WEATHER_UNITS)[number];\n\ninterface JsonOption {\n readonly json?: boolean;\n}\n\ninterface CoordinateOptions extends JsonOption {\n readonly lat: number;\n readonly lng: number;\n readonly language?: string;\n}\n\ninterface LocationOptions extends CoordinateOptions {\n readonly units: WeatherUnits;\n}\n\ninterface PagedOptions extends LocationOptions {\n readonly pageSize?: number;\n readonly pageToken?: string;\n}\n\ninterface HourlyForecastOptions extends PagedOptions {\n readonly hours?: number;\n}\n\ninterface DailyForecastOptions extends PagedOptions {\n readonly days?: number;\n}\n\ninterface HourlyHistoryOptions extends PagedOptions {\n readonly hours?: number;\n}\n\nfunction parseLatitude(value: string): number {\n const latitude = Number(value);\n if (!Number.isFinite(latitude) || latitude < -90 || latitude > 90) {\n throw new InvalidArgumentError(\"latitude must be a number from -90 to 90\");\n }\n return latitude;\n}\n\nfunction parseLongitude(value: string): number {\n const longitude = Number(value);\n if (!Number.isFinite(longitude) || longitude < -180 || longitude > 180) {\n throw new InvalidArgumentError(\n \"longitude must be a number from -180 to 180\",\n );\n }\n return longitude;\n}\n\nfunction parseIntegerInRange(value: string, min: number, max: number): number {\n const parsed = Number(value);\n if (!Number.isInteger(parsed) || parsed < min || parsed > max) {\n throw new InvalidArgumentError(\n `value must be an integer from ${min} to ${max}`,\n );\n }\n return parsed;\n}\n\nfunction parseWeatherUnits(value: string): WeatherUnits {\n if (WEATHER_UNITS.includes(value as WeatherUnits)) {\n return value as WeatherUnits;\n }\n throw new InvalidArgumentError(\n `units must be one of: ${WEATHER_UNITS.join(\", \")}`,\n );\n}\n\nfunction coordinatePayload(\n options: CoordinateOptions,\n): Record<string, unknown> {\n return {\n lat: options.lat,\n lng: options.lng,\n languageCode: options.language,\n };\n}\n\nfunction locationPayload(options: LocationOptions): Record<string, unknown> {\n return {\n ...coordinatePayload(options),\n units: options.units,\n };\n}\n\nfunction pagedPayload(options: PagedOptions): Record<string, unknown> {\n return {\n ...locationPayload(options),\n pageSize: options.pageSize,\n pageToken: options.pageToken,\n };\n}\n\nfunction renderWeatherMetadata(response: ZeroWeatherResponse): void {\n if (response.provider) {\n console.log(chalk.dim(` Provider: ${response.provider}`));\n }\n if (response.attribution) {\n console.log(chalk.dim(` ${response.attribution}`));\n }\n if (response.billingCategory) {\n console.log(chalk.dim(` Billing category: ${response.billingCategory}`));\n }\n if (response.billingQuantity !== undefined) {\n console.log(chalk.dim(` Billing quantity: ${response.billingQuantity}`));\n }\n if (response.creditsCharged !== undefined) {\n console.log(chalk.dim(` Credits charged: ${response.creditsCharged}`));\n }\n}\n\nfunction renderWeatherResponse(\n label: string,\n response: ZeroWeatherResponse,\n): void {\n console.log(chalk.green(`✓ ${label}`));\n renderWeatherMetadata(response);\n console.log(JSON.stringify(response.result ?? response, null, 2));\n}\n\nasync function runWeatherRequest(\n label: string,\n endpoint:\n | \"current\"\n | \"forecast/hourly\"\n | \"forecast/daily\"\n | \"history/hourly\"\n | \"air-quality/current\",\n payload: Record<string, unknown>,\n options: JsonOption,\n): Promise<void> {\n const response = await callZeroWeather(endpoint, payload);\n if (options.json) {\n console.log(JSON.stringify(response));\n return;\n }\n renderWeatherResponse(label, response);\n}\n\nfunction addCoordinateOptions(command: Command): Command {\n return command\n .requiredOption(\"--lat <number>\", \"Latitude\", parseLatitude)\n .requiredOption(\"--lng <number>\", \"Longitude\", parseLongitude)\n .option(\"--language <code>\", \"IETF BCP-47 response language code\")\n .option(\"--json\", \"Print the raw response as JSON\");\n}\n\nfunction addLocationOptions(command: Command): Command {\n return addCoordinateOptions(command).option(\n \"--units <system>\",\n \"Units system: metric or imperial\",\n parseWeatherUnits,\n \"metric\",\n );\n}\n\nfunction addHourlyPaginationOptions(command: Command): Command {\n return command\n .option(\"--page-size <n>\", \"Records per page, from 1 to 24\", (value) => {\n return parseIntegerInRange(value, 1, 24);\n })\n .option(\"--page-token <token>\", \"Token for the next page\");\n}\n\nconst currentCommand = addLocationOptions(\n new Command().name(\"current\").description(\"Get current weather conditions\"),\n).action(\n withErrorHandler(async (options: LocationOptions) => {\n await runWeatherRequest(\n \"Current weather retrieved\",\n \"current\",\n locationPayload(options),\n options,\n );\n }),\n);\n\nconst hourlyForecastCommand = addHourlyPaginationOptions(\n addLocationOptions(\n new Command()\n .name(\"hourly\")\n .description(\"Get up to 240 hours of hourly forecasts\"),\n ),\n)\n .option(\"--hours <n>\", \"Total forecast hours, from 1 to 240\", (value) => {\n return parseIntegerInRange(value, 1, 240);\n })\n .action(\n withErrorHandler(async (options: HourlyForecastOptions) => {\n await runWeatherRequest(\n \"Hourly forecast retrieved\",\n \"forecast/hourly\",\n { ...pagedPayload(options), hours: options.hours },\n options,\n );\n }),\n );\n\nconst dailyForecastCommand = addLocationOptions(\n new Command()\n .name(\"daily\")\n .description(\"Get up to 10 days of daily forecasts\"),\n)\n .option(\"--days <n>\", \"Total forecast days, from 1 to 10\", (value) => {\n return parseIntegerInRange(value, 1, 10);\n })\n .option(\"--page-size <n>\", \"Records per page, from 1 to 10\", (value) => {\n return parseIntegerInRange(value, 1, 10);\n })\n .option(\"--page-token <token>\", \"Token for the next page\")\n .action(\n withErrorHandler(async (options: DailyForecastOptions) => {\n await runWeatherRequest(\n \"Daily forecast retrieved\",\n \"forecast/daily\",\n { ...pagedPayload(options), days: options.days },\n options,\n );\n }),\n );\n\nconst hourlyHistoryCommand = addHourlyPaginationOptions(\n addLocationOptions(\n new Command()\n .name(\"hourly\")\n .description(\"Get up to 24 hours of recent hourly history\"),\n ),\n)\n .option(\"--hours <n>\", \"Total history hours, from 1 to 24\", (value) => {\n return parseIntegerInRange(value, 1, 24);\n })\n .action(\n withErrorHandler(async (options: HourlyHistoryOptions) => {\n await runWeatherRequest(\n \"Hourly weather history retrieved\",\n \"history/hourly\",\n { ...pagedPayload(options), hours: options.hours },\n options,\n );\n }),\n );\n\nconst airQualityCurrentCommand = addCoordinateOptions(\n new Command().name(\"current\").description(\"Get current air quality\"),\n).action(\n withErrorHandler(async (options: CoordinateOptions) => {\n await runWeatherRequest(\n \"Current air quality retrieved\",\n \"air-quality/current\",\n coordinatePayload(options),\n options,\n );\n }),\n);\n\nconst forecastCommand = new Command()\n .name(\"forecast\")\n .description(\"Get hourly or daily weather forecasts\")\n .addCommand(hourlyForecastCommand)\n .addCommand(dailyForecastCommand);\n\nconst historyCommand = new Command()\n .name(\"history\")\n .description(\"Get recent weather history\")\n .addCommand(hourlyHistoryCommand);\n\nconst airQualityCommand = new Command()\n .name(\"air-quality\")\n .description(\"Get current air quality\")\n .addCommand(airQualityCurrentCommand);\n\nexport const zeroWeatherCommand = new Command()\n .name(\"weather\")\n .description(\"Use managed Zero weather and air quality services\")\n .addCommand(currentCommand)\n .addCommand(forecastCommand)\n .addCommand(historyCommand)\n .addCommand(airQualityCommand)\n .addHelpText(\n \"after\",\n `\nExamples:\n Current conditions: zero weather current --lat 39.9042 --lng 116.4074 --language zh-CN --json\n Hourly forecast: zero weather forecast hourly --lat 39.9042 --lng 116.4074 --hours 48 --page-size 24 --json\n Daily forecast: zero weather forecast daily --lat 39.9042 --lng 116.4074 --days 10 --page-size 10 --json\n Hourly history: zero weather history hourly --lat 39.9042 --lng 116.4074 --hours 24 --json\n Current air quality: zero weather air-quality current --lat 39.9042 --lng 116.4074 --language zh-CN --json\n\nNotes:\n - Authenticates via ZERO_TOKEN (requires weather:read capability) or a CLI token\n - Each command makes one Google Weather or Air Quality API request; use page tokens for additional weather pages\n - Calls are recorded for usage analytics and currently charge 0 credits`,\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAMA,IAAM,gBAAgB,CAAC,UAAU,UAAU;AAmC3C,SAAS,cAAc,OAAuB;AAC5C,QAAM,WAAW,OAAO,KAAK;AAC7B,MAAI,CAAC,OAAO,SAAS,QAAQ,KAAK,WAAW,OAAO,WAAW,IAAI;AACjE,UAAM,IAAI,qBAAqB,0CAA0C;AAAA,EAC3E;AACA,SAAO;AACT;AAEA,SAAS,eAAe,OAAuB;AAC7C,QAAM,YAAY,OAAO,KAAK;AAC9B,MAAI,CAAC,OAAO,SAAS,SAAS,KAAK,YAAY,QAAQ,YAAY,KAAK;AACtE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,oBAAoB,OAAe,KAAa,KAAqB;AAC5E,QAAM,SAAS,OAAO,KAAK;AAC3B,MAAI,CAAC,OAAO,UAAU,MAAM,KAAK,SAAS,OAAO,SAAS,KAAK;AAC7D,UAAM,IAAI;AAAA,MACR,iCAAiC,GAAG,OAAO,GAAG;AAAA,IAChD;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,OAA6B;AACtD,MAAI,cAAc,SAAS,KAAqB,GAAG;AACjD,WAAO;AAAA,EACT;AACA,QAAM,IAAI;AAAA,IACR,yBAAyB,cAAc,KAAK,IAAI,CAAC;AAAA,EACnD;AACF;AAEA,SAAS,kBACP,SACyB;AACzB,SAAO;AAAA,IACL,KAAK,QAAQ;AAAA,IACb,KAAK,QAAQ;AAAA,IACb,cAAc,QAAQ;AAAA,EACxB;AACF;AAEA,SAAS,gBAAgB,SAAmD;AAC1E,SAAO;AAAA,IACL,GAAG,kBAAkB,OAAO;AAAA,IAC5B,OAAO,QAAQ;AAAA,EACjB;AACF;AAEA,SAAS,aAAa,SAAgD;AACpE,SAAO;AAAA,IACL,GAAG,gBAAgB,OAAO;AAAA,IAC1B,UAAU,QAAQ;AAAA,IAClB,WAAW,QAAQ;AAAA,EACrB;AACF;AAEA,SAAS,sBAAsB,UAAqC;AAClE,MAAI,SAAS,UAAU;AACrB,YAAQ,IAAI,eAAM,IAAI,eAAe,SAAS,QAAQ,EAAE,CAAC;AAAA,EAC3D;AACA,MAAI,SAAS,aAAa;AACxB,YAAQ,IAAI,eAAM,IAAI,KAAK,SAAS,WAAW,EAAE,CAAC;AAAA,EACpD;AACA,MAAI,SAAS,iBAAiB;AAC5B,YAAQ,IAAI,eAAM,IAAI,uBAAuB,SAAS,eAAe,EAAE,CAAC;AAAA,EAC1E;AACA,MAAI,SAAS,oBAAoB,QAAW;AAC1C,YAAQ,IAAI,eAAM,IAAI,uBAAuB,SAAS,eAAe,EAAE,CAAC;AAAA,EAC1E;AACA,MAAI,SAAS,mBAAmB,QAAW;AACzC,YAAQ,IAAI,eAAM,IAAI,sBAAsB,SAAS,cAAc,EAAE,CAAC;AAAA,EACxE;AACF;AAEA,SAAS,sBACP,OACA,UACM;AACN,UAAQ,IAAI,eAAM,MAAM,UAAK,KAAK,EAAE,CAAC;AACrC,wBAAsB,QAAQ;AAC9B,UAAQ,IAAI,KAAK,UAAU,SAAS,UAAU,UAAU,MAAM,CAAC,CAAC;AAClE;AAEA,eAAe,kBACb,OACA,UAMA,SACA,SACe;AACf,QAAM,WAAW,MAAM,gBAAgB,UAAU,OAAO;AACxD,MAAI,QAAQ,MAAM;AAChB,YAAQ,IAAI,KAAK,UAAU,QAAQ,CAAC;AACpC;AAAA,EACF;AACA,wBAAsB,OAAO,QAAQ;AACvC;AAEA,SAAS,qBAAqB,SAA2B;AACvD,SAAO,QACJ,eAAe,kBAAkB,YAAY,aAAa,EAC1D,eAAe,kBAAkB,aAAa,cAAc,EAC5D,OAAO,qBAAqB,oCAAoC,EAChE,OAAO,UAAU,gCAAgC;AACtD;AAEA,SAAS,mBAAmB,SAA2B;AACrD,SAAO,qBAAqB,OAAO,EAAE;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,2BAA2B,SAA2B;AAC7D,SAAO,QACJ,OAAO,mBAAmB,kCAAkC,CAAC,UAAU;AACtE,WAAO,oBAAoB,OAAO,GAAG,EAAE;AAAA,EACzC,CAAC,EACA,OAAO,wBAAwB,yBAAyB;AAC7D;AAEA,IAAM,iBAAiB;AAAA,EACrB,IAAI,QAAQ,EAAE,KAAK,SAAS,EAAE,YAAY,gCAAgC;AAC5E,EAAE;AAAA,EACA,iBAAiB,OAAO,YAA6B;AACnD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB,OAAO;AAAA,MACvB;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,IAAM,wBAAwB;AAAA,EAC5B;AAAA,IACE,IAAI,QAAQ,EACT,KAAK,QAAQ,EACb,YAAY,yCAAyC;AAAA,EAC1D;AACF,EACG,OAAO,eAAe,uCAAuC,CAAC,UAAU;AACvE,SAAO,oBAAoB,OAAO,GAAG,GAAG;AAC1C,CAAC,EACA;AAAA,EACC,iBAAiB,OAAO,YAAmC;AACzD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,EAAE,GAAG,aAAa,OAAO,GAAG,OAAO,QAAQ,MAAM;AAAA,MACjD;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEF,IAAM,uBAAuB;AAAA,EAC3B,IAAI,QAAQ,EACT,KAAK,OAAO,EACZ,YAAY,sCAAsC;AACvD,EACG,OAAO,cAAc,qCAAqC,CAAC,UAAU;AACpE,SAAO,oBAAoB,OAAO,GAAG,EAAE;AACzC,CAAC,EACA,OAAO,mBAAmB,kCAAkC,CAAC,UAAU;AACtE,SAAO,oBAAoB,OAAO,GAAG,EAAE;AACzC,CAAC,EACA,OAAO,wBAAwB,yBAAyB,EACxD;AAAA,EACC,iBAAiB,OAAO,YAAkC;AACxD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,EAAE,GAAG,aAAa,OAAO,GAAG,MAAM,QAAQ,KAAK;AAAA,MAC/C;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEF,IAAM,uBAAuB;AAAA,EAC3B;AAAA,IACE,IAAI,QAAQ,EACT,KAAK,QAAQ,EACb,YAAY,6CAA6C;AAAA,EAC9D;AACF,EACG,OAAO,eAAe,qCAAqC,CAAC,UAAU;AACrE,SAAO,oBAAoB,OAAO,GAAG,EAAE;AACzC,CAAC,EACA;AAAA,EACC,iBAAiB,OAAO,YAAkC;AACxD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,EAAE,GAAG,aAAa,OAAO,GAAG,OAAO,QAAQ,MAAM;AAAA,MACjD;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEF,IAAM,2BAA2B;AAAA,EAC/B,IAAI,QAAQ,EAAE,KAAK,SAAS,EAAE,YAAY,yBAAyB;AACrE,EAAE;AAAA,EACA,iBAAiB,OAAO,YAA+B;AACrD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,kBAAkB,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,IAAM,kBAAkB,IAAI,QAAQ,EACjC,KAAK,UAAU,EACf,YAAY,uCAAuC,EACnD,WAAW,qBAAqB,EAChC,WAAW,oBAAoB;AAElC,IAAM,iBAAiB,IAAI,QAAQ,EAChC,KAAK,SAAS,EACd,YAAY,4BAA4B,EACxC,WAAW,oBAAoB;AAElC,IAAM,oBAAoB,IAAI,QAAQ,EACnC,KAAK,aAAa,EAClB,YAAY,yBAAyB,EACrC,WAAW,wBAAwB;AAE/B,IAAM,qBAAqB,IAAI,QAAQ,EAC3C,KAAK,SAAS,EACd,YAAY,mDAAmD,EAC/D,WAAW,cAAc,EACzB,WAAW,eAAe,EAC1B,WAAW,cAAc,EACzB,WAAW,iBAAiB,EAC5B;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYF;","names":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __createRequire } from "node:module";
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
|
-
import "./chunk-
|
|
4
|
+
import "./chunk-FYZS5VEA.js";
|
|
5
5
|
import "./chunk-LTDQISD7.js";
|
|
6
6
|
import {
|
|
7
7
|
downloadWebFile,
|
|
8
8
|
uploadWebFile,
|
|
9
9
|
withErrorHandler
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HYRTW4LY.js";
|
|
11
11
|
import "./chunk-LRHXR7JT.js";
|
|
12
12
|
import {
|
|
13
13
|
Command
|
|
@@ -105,4 +105,4 @@ Examples:
|
|
|
105
105
|
export {
|
|
106
106
|
zeroWebCommand
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=web-
|
|
108
|
+
//# sourceMappingURL=web-3RIJORTL.js.map
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
zeroWebSearchDomainSchema,
|
|
10
10
|
zeroWebSearchRecencySchema,
|
|
11
11
|
zeroWebSearchRequestSchema
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FYZS5VEA.js";
|
|
13
13
|
import "./chunk-LTDQISD7.js";
|
|
14
14
|
import {
|
|
15
15
|
source_default,
|
|
16
16
|
withErrorHandler
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-HYRTW4LY.js";
|
|
18
18
|
import "./chunk-LRHXR7JT.js";
|
|
19
19
|
import {
|
|
20
20
|
Command,
|
|
@@ -147,4 +147,4 @@ Notes:
|
|
|
147
147
|
export {
|
|
148
148
|
zeroWebSearchCommand
|
|
149
149
|
};
|
|
150
|
-
//# sourceMappingURL=web-search-
|
|
150
|
+
//# sourceMappingURL=web-search-CVZYQ7HH.js.map
|
|
@@ -4,15 +4,15 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
loadConnectorPermissionInfos,
|
|
6
6
|
policyIcon
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VTVYDURY.js";
|
|
8
8
|
import {
|
|
9
9
|
permissionGrantsToFirewallPolicies
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KBKTQLGX.js";
|
|
11
11
|
import {
|
|
12
12
|
getZeroAgentUserConnectors,
|
|
13
13
|
listZeroConnectors,
|
|
14
14
|
listZeroUserPermissionGrants
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-FYZS5VEA.js";
|
|
16
16
|
import "./chunk-LTDQISD7.js";
|
|
17
17
|
import {
|
|
18
18
|
getActiveOrg,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
getToken,
|
|
21
21
|
source_default,
|
|
22
22
|
withErrorHandler
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-HYRTW4LY.js";
|
|
24
24
|
import {
|
|
25
25
|
decodeZeroTokenPayload
|
|
26
26
|
} from "./chunk-LRHXR7JT.js";
|
|
@@ -195,4 +195,4 @@ Notes:
|
|
|
195
195
|
export {
|
|
196
196
|
zeroWhoamiCommand
|
|
197
197
|
};
|
|
198
|
-
//# sourceMappingURL=whoami-
|
|
198
|
+
//# sourceMappingURL=whoami-U2VXOZNF.js.map
|
|
@@ -19,12 +19,12 @@ import {
|
|
|
19
19
|
listWorkflows,
|
|
20
20
|
updateWorkflow,
|
|
21
21
|
updateWorkflowAutomation
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-FYZS5VEA.js";
|
|
23
23
|
import "./chunk-LTDQISD7.js";
|
|
24
24
|
import {
|
|
25
25
|
source_default,
|
|
26
26
|
withErrorHandler
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-HYRTW4LY.js";
|
|
28
28
|
import "./chunk-LRHXR7JT.js";
|
|
29
29
|
import {
|
|
30
30
|
Command
|
|
@@ -1792,4 +1792,4 @@ Examples:
|
|
|
1792
1792
|
export {
|
|
1793
1793
|
zeroWorkflowCommand
|
|
1794
1794
|
};
|
|
1795
|
-
//# sourceMappingURL=workflow-
|
|
1795
|
+
//# sourceMappingURL=workflow-OTBS5W7K.js.map
|