Skip to content
← 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

ExportImport
namespace (getLocalConditions, emailLocalConditions)kody:@kody/local-conditions
getLocalConditionskody:@kody/local-conditions/getLocalConditions
emailLocalConditionskody:@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 place is 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 ./getLocalConditions when you only need data; use ./emailLocalConditions for the one-shot inbox briefing.