← Public packages
@kody/local-conditions
Quick onboarding example: weather and AQI for a city via Open-Meteo (zero OAuth).
AGENTS.md
61 lines · 1.8 KB · Markdown@kody/local-conditions — agent notes
Human overview: README.md. Zero-auth Open-Meteo example — no
secrets. Do not disable live webhooks or jobs.
Auth
None. Public Open-Meteo fetch only. emailLocalConditions uses the caller's
signed-in Kody email send path.
Import paths
| Export | Import |
|---|---|
namespace (getLocalConditions, emailLocalConditions) | kody:@kody/local-conditions |
| getLocalConditions | kody:@kody/local-conditions/getLocalConditions |
| emailLocalConditions | kody:@kody/local-conditions/emailLocalConditions |
Prefer static kody:@kody/local-conditions/... imports from execute. Do not
lead with packages.invoke.
Smoke test (read-only)
import getLocalConditions from 'kody:@kody/local-conditions/getLocalConditions'
export default async function main() {
return await getLocalConditions({ place: 'Salt Lake City' })
// => { place, current: { temperatureC, weatherLabel, … }, aqi?, sunrise?, sunset? }
}Root namespace:
import { getLocalConditions } from 'kody:@kody/local-conditions'
export default async function main() {
return await getLocalConditions({ place: 'Salt Lake City' })
}Email snapshot
Only when the user asks to email themselves a briefing:
import emailLocalConditions from 'kody:@kody/local-conditions/emailLocalConditions'
export default async function main() {
return await emailLocalConditions({ place: 'Salt Lake City' })
// => { emailed: true, subject, conditions }
}Edge cases
- Free-form
placeis geocoded; ambiguous names resolve to Open-Meteo's top hit. - AQI may be omitted when the air-quality endpoint has no US AQI for that point.
- Prefer
./getLocalConditionswhen you only need data; use./emailLocalConditionsfor the one-shot inbox briefing.