pyrtan / sourcev0.13.0 · main

Remove stray scratchpad build output under tmp/ and ignore tmp/

Claude · 2026-10-27 · 3a1587eb0747f9a6993ed6e3d8bf097e09f553df · parents 801959a

Five catalog tree copies from a session scratchpad were committed by accident with the Pages setup; the real trees are under examples/ and catalog/. They showed up as a tmp/ folder in the source browser.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013rD7jg3PznHuEYvaxmCdv1

Changes

 .gitignore                                                      |   1 +
 .../scratchpad/out/catalog/github/github-release.toml           |  63 -------------
 .../scratchpad/out/catalog/hacker-news/hacker-news-item.toml    |  66 --------------
 .../scratchpad/out/catalog/hacker-news/hacker-news.toml         |  79 -----------------
 .../scratchpad/out/catalog/site-status/site-status.toml         |  62 -------------
 .../scratchpad/out/catalog/weather/weather.toml                 | 133 ----------------------------
 6 files changed, 1 insertion(+), 403 deletions(-)
diff --git a/.gitignore b/.gitignore
index 2af4a18..87ac1ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ build/
*.egg-info/ .env .env.*
+tmp/
diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/github/github-release.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/github/github-release.toml deleted file mode 100644 index d32f374..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/github/github-release.toml +++ /dev/null
@@ -1,63 +0,0 @@
-# Latest release of a GitHub repository, from the public API. Shows an
-# optional token from the service's env and a decision on the status code.
-
-name = "github-release"
-version = 1
-description = "The latest release of a GitHub repository."
-tags = ["github", "read-only"]
-license = "MIT"
-hosts = ["api.github.com"]
-start = "fetch"
-
-[[triggers]]
-pattern = "[what's the] latest release of {repo:word}"
-[[triggers]]
-pattern = "latest {repo:word} release"
-
-[inputs.repo]
-type = "str"
-pattern = "^[A-Za-z0-9_.\\-]+/[A-Za-z0-9_.\\-]+$"
-description = "owner/name"
-
-[nodes.fetch]
-kind = "observe"
-http = { method = "GET", url = "https://api.github.com/repos/{{ inputs.repo }}/releases/latest", headers = { Accept = "application/vnd.github+json" } }
-into = "resp"
-extract = [
- { into = "tag", json = "json.tag_name" },
- { into = "name", json = "json.name" },
- { into = "published", json = "json.published_at" },
- { into = "url", json = "json.html_url" },
- { into = "prerelease", json = "json.prerelease" },
-]
-next = "status"
-
-[nodes.status]
-kind = "decide"
-on = "resp.status"
-branches = [
- { when = { eq = 200 }, then = "reply" },
- { when = { eq = 404 }, then = "none" },
- { when = { in = [403, 429] }, then = "rate-limited" },
- { else = "unexpected" },
-]
-
-[nodes.reply]
-kind = "done"
-say = "{{ inputs.repo }}: {{ state.tag }} ({{ state.published }}) {{ state.url }}"
-output = { repo = "{{ inputs.repo }}", tag = "{{ state.tag }}", name = "{{ state.name }}", published = "{{ state.published }}", url = "{{ state.url }}", prerelease = "{{ state.prerelease }}" }
-
-[nodes.none]
-kind = "fail"
-reason = "no-release"
-say = "{{ inputs.repo }} has no releases, or does not exist."
-
-[nodes.rate-limited]
-kind = "fail"
-reason = "rate-limited"
-say = "GitHub is rate-limiting unauthenticated requests ({{ state.resp.status }})."
-
-[nodes.unexpected]
-kind = "fail"
-reason = "unexpected-response"
-say = "GitHub answered {{ state.resp.status }}."
diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news-item.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news-item.toml deleted file mode 100644 index eadbb09..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news-item.toml +++ /dev/null
@@ -1,66 +0,0 @@
-name = "hacker-news-item"
-version = 1
-description = "One Hacker News item by id: title, url, score, author."
-tags = ["news", "read-only"]
-license = "MIT"
-hosts = ["hacker-news.firebaseio.com"]
-start = "fetch"
-
-[[triggers]]
-pattern = "hacker news item {id:int}"
-
-[inputs.id]
-type = "int"
-min = 1
-description = "The item id"
-
-[nodes.fetch]
-kind = "observe"
-http = { method = "GET", url = "https://hacker-news.firebaseio.com/v0/item/{{ inputs.id }}.json" }
-into = "resp"
-extract = [
- { into = "title", json = "json.title" },
- { into = "url", json = "json.url" },
- { into = "score", json = "json.score" },
- { into = "by", json = "json.by" },
- { into = "type", json = "json.type" },
-]
-next = "kind"
-
-[nodes.kind]
-kind = "decide"
-on = "type"
-branches = [
- { when = { eq = "story" }, then = "has-url" },
- { when = { eq = "job" }, then = "has-url" },
- { when = { exists = false }, then = "missing" },
- { else = "not-a-story" },
-]
-
-[nodes.has-url]
-kind = "decide"
-on = "url"
-branches = [
- { when = { exists = true }, then = "reply" },
- { else = "self-post" },
-]
-
-[nodes.self-post]
-kind = "set"
-set = { url = "https://news.ycombinator.com/item?id={{ inputs.id }}" }
-next = "reply"
-
-[nodes.reply]
-kind = "done"
-say = "{{ state.title }} ({{ state.score }} points, by {{ state.by }}) {{ state.url }}"
-output = { id = "{{ inputs.id }}", title = "{{ state.title }}", url = "{{ state.url }}", score = "{{ state.score }}", by = "{{ state.by }}" }
-
-[nodes.missing]
-kind = "fail"
-reason = "no-such-item"
-say = "There is no Hacker News item {{ inputs.id }}."
-
-[nodes.not-a-story]
-kind = "fail"
-reason = "not-a-story"
-say = "Item {{ inputs.id }} is a {{ state.type }}, not a story."
diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news.toml deleted file mode 100644 index 826c223..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/hacker-news/hacker-news.toml +++ /dev/null
@@ -1,79 +0,0 @@
-# Hacker News, through its public Firebase API. Two trees: this one answers
-# the question, and `hacker-news-item` fetches one story, so that `each`
-# can reuse it.
-
-name = "hacker-news"
-version = 1
-description = "Top stories on Hacker News, from its public API."
-tags = ["news", "read-only"]
-license = "MIT"
-hosts = ["hacker-news.firebaseio.com"]
-start = "fetch-ids"
-
-[[triggers]]
-pattern = "[what's the] top story on hacker news"
-inputs = { count = 1 }
-
-[[triggers]]
-pattern = "top {count:int} stories on hacker news"
-
-[inputs.count]
-type = "int"
-default = 1
-min = 1
-max = 30
-description = "How many stories to return"
-
-[nodes.fetch-ids]
-kind = "observe"
-http = { method = "GET", url = "https://hacker-news.firebaseio.com/v0/topstories.json" }
-into = "ids_resp"
-extract = [{ into = "ids", json = "json" }]
-next = "check"
-
-[nodes.check]
-kind = "decide"
-on = "ids_resp.status"
-branches = [
- { when = { eq = 200 }, then = "any" },
- { when = { gte = 500 }, then = "hn-down" },
- { else = "unexpected" },
-]
-
-[nodes.any]
-kind = "decide"
-on = "ids"
-branches = [
- { when = { empty = true }, then = "nothing" },
- { when = { type = "list" }, then = "stories" },
- { else = "unexpected" },
-]
-
-[nodes.stories]
-kind = "each"
-over = "ids"
-limit = "{{ inputs.count }}"
-tree = "hacker-news-item"
-with = { id = "{{ item }}" }
-into = "stories"
-next = "reply"
-
-[nodes.reply]
-kind = "done"
-say = "Top of Hacker News: {{ state.stories[0].title }} — {{ state.stories[0].url }}"
-output = { stories = "{{ state.stories }}" }
-
-[nodes.nothing]
-kind = "fail"
-reason = "no-stories"
-say = "Hacker News returned an empty front page."
-
-[nodes.hn-down]
-kind = "fail"
-reason = "upstream-down"
-say = "Hacker News answered {{ state.ids_resp.status }}; try again later."
-
-[nodes.unexpected]
-kind = "fail"
-reason = "unexpected-response"
-say = "Hacker News answered {{ state.ids_resp.status }} with something this tree does not recognise."
diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/site-status/site-status.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/site-status/site-status.toml deleted file mode 100644 index 3d016af..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/site-status/site-status.toml +++ /dev/null
@@ -1,62 +0,0 @@
-# Is a site up? The host comes from the sentence, so it cannot be checked
-# at load time; the runtime refuses anything outside `hosts`, and this tree
-# allows any host on purpose, with the wildcard spelled out.
-
-name = "site-status"
-version = 1
-description = "Whether a web site answers, and how quickly."
-tags = ["ops", "read-only"]
-license = "MIT"
-hosts = ["*"]
-start = "probe"
-
-[[triggers]]
-pattern = "is {host:host} up"
-[[triggers]]
-pattern = "is {host:host} down"
-[[triggers]]
-pattern = "[check] status of {host:host}"
-
-[inputs.host]
-type = "str"
-pattern = "(?i)^[a-z0-9.\\-]+(:[0-9]+)?$"
-description = "A host name, with no scheme"
-
-[nodes.probe]
-kind = "observe"
-http = { method = "GET", url = "https://{{ inputs.host | lower }}/" }
-into = "resp"
-timeout = 8
-retries = 1
-next = "status"
-
-[nodes.status]
-kind = "decide"
-on = "resp.status"
-branches = [
- { when = { between = [200, 399] }, then = "up" },
- { when = { between = [400, 499] }, then = "refusing" },
- { when = { gte = 500 }, then = "erroring" },
- { else = "odd" },
-]
-
-[nodes.up]
-kind = "done"
-say = "{{ inputs.host }} is up: {{ state.resp.status }} in {{ state.resp.elapsed_ms }} ms."
-output = { host = "{{ inputs.host }}", up = true, status = "{{ state.resp.status }}", elapsed_ms = "{{ state.resp.elapsed_ms }}" }
-
-[nodes.refusing]
-kind = "done"
-say = "{{ inputs.host }} answers but refuses the front page ({{ state.resp.status }}); the server is up."
-output = { host = "{{ inputs.host }}", up = true, status = "{{ state.resp.status }}", note = "client error on /" }
-
-[nodes.erroring]
-kind = "fail"
-reason = "server-error"
-say = "{{ inputs.host }} is answering {{ state.resp.status }}: up, but broken."
-output = { host = "{{ inputs.host }}", up = false, status = "{{ state.resp.status }}" }
-
-[nodes.odd]
-kind = "fail"
-reason = "unexpected-status"
-say = "{{ inputs.host }} answered {{ state.resp.status }}, which this tree has no branch for."
diff --git a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/weather/weather.toml b/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/weather/weather.toml deleted file mode 100644 index 3e65419..0000000 --- a/tmp/claude-0/-home-user-pyrtan/c01cbcf1-7852-56a6-833f-ba19e8dea139/scratchpad/out/catalog/weather/weather.toml +++ /dev/null
@@ -1,133 +0,0 @@
-# Weather for a place, from Open-Meteo (no key needed). Two hops: geocode
-# the name, then fetch the forecast for the coordinates. Each hop has its
-# own decision so a failure says which hop failed.
-
-name = "weather"
-version = 1
-description = "Current weather for a place, from Open-Meteo."
-tags = ["weather", "read-only"]
-license = "MIT"
-hosts = ["geocoding-api.open-meteo.com", "api.open-meteo.com"]
-start = "geocode"
-
-# "forecast in Oslo" and "temperature in Oslo" read as "weather in Oslo".
-[language]
-synonyms = { weather = ["forecast", "temperature"] }
-
-[[triggers]]
-pattern = "[what's the] weather in {place}"
-[[triggers]]
-pattern = "[what's the] weather for {place}"
-[[triggers]]
-pattern = "how [hot|cold|warm] is it in {place}"
-
-[inputs.place]
-type = "str"
-description = "A town or city name"
-
-[inputs.units]
-type = "str"
-default = "celsius"
-one_of = ["celsius", "fahrenheit"]
-
-[nodes.geocode]
-kind = "observe"
-http = { method = "GET", url = "https://geocoding-api.open-meteo.com/v1/search?name={{ inputs.place | url }}&count=1&language=en&format=json" }
-into = "geo"
-extract = [
- { into = "hit", json = "json.results[0]" },
- { into = "lat", json = "json.results[0].latitude" },
- { into = "lon", json = "json.results[0].longitude" },
- { into = "name", json = "json.results[0].name" },
- { into = "country", json = "json.results[0].country" },
-]
-next = "found"
-
-[nodes.found]
-kind = "decide"
-on = "hit"
-branches = [
- { when = { exists = true }, then = "forecast" },
- { else = "unknown-place" },
-]
-
-[nodes.forecast]
-kind = "observe"
-http = { method = "GET", url = "https://api.open-meteo.com/v1/forecast?latitude={{ state.lat }}&longitude={{ state.lon }}&current=temperature_2m,relative_humidity_2m,wind_speed_10m,weather_code&temperature_unit={{ inputs.units }}" }
-into = "fc"
-extract = [
- { into = "temp", json = "json.current.temperature_2m" },
- { into = "humidity", json = "json.current.relative_humidity_2m" },
- { into = "wind", json = "json.current.wind_speed_10m" },
- { into = "code", json = "json.current.weather_code" },
- { into = "unit", json = "json.current_units.temperature_2m" },
-]
-next = "have-temp"
-
-[nodes.have-temp]
-kind = "decide"
-on = "temp"
-branches = [
- { when = { type = "number" }, then = "sky" },
- { else = "no-forecast" },
-]
-
-# WMO weather codes, folded into words a person would use.
-[nodes.sky]
-kind = "decide"
-on = "code"
-branches = [
- { when = { eq = 0 }, then = "clear" },
- { when = { between = [1, 3] }, then = "cloudy" },
- { when = { between = [45, 48] }, then = "fog" },
- { when = { between = [51, 67] }, then = "rain" },
- { when = { between = [71, 77] }, then = "snow" },
- { when = { between = [80, 82] }, then = "rain" },
- { when = { between = [85, 86] }, then = "snow" },
- { when = { between = [95, 99] }, then = "storm" },
- { else = "unknown-sky" },
-]
-
-[nodes.clear]
-kind = "set"
-set = { sky = "clear" }
-next = "reply"
-[nodes.cloudy]
-kind = "set"
-set = { sky = "cloudy" }
-next = "reply"
-[nodes.fog]
-kind = "set"
-set = { sky = "foggy" }
-next = "reply"
-[nodes.rain]
-kind = "set"
-set = { sky = "raining" }
-next = "reply"
-[nodes.snow]
-kind = "set"
-set = { sky = "snowing" }
-next = "reply"
-[nodes.storm]
-kind = "set"
-set = { sky = "stormy" }
-next = "reply"
-[nodes.unknown-sky]
-kind = "set"
-set = { sky = "weather code {{ state.code }}" }
-next = "reply"
-
-[nodes.reply]
-kind = "done"
-say = "{{ state.name }}, {{ state.country }}: {{ state.temp }}{{ state.unit }}, {{ state.sky }}, humidity {{ state.humidity }}%, wind {{ state.wind }} km/h."
-output = { place = "{{ state.name }}", country = "{{ state.country }}", temperature = "{{ state.temp }}", unit = "{{ state.unit }}", sky = "{{ state.sky }}", humidity = "{{ state.humidity }}", wind_kmh = "{{ state.wind }}" }
-
-[nodes.unknown-place]
-kind = "fail"
-reason = "unknown-place"
-say = "I could not find a place called {{ inputs.place }}."
-
-[nodes.no-forecast]
-kind = "fail"
-reason = "no-forecast"
-say = "Open-Meteo found {{ state.name }} but returned no current temperature (status {{ state.fc.status }})."