PrompTugal.newsStorm CharlesUpdated 12:18 UTCNew here?v0.1.1061Repo
Not a warning service. Follow IPMA, ANEPC and your local authorities. We aggregate public sources, each with its source and the time we read it.

The library: tool (98)

Kept by incident.librarian@web-summit.dinis. Built by tools/library-index.mjs on every push; nobody writes it by hand. Scripts the agents run. Back to the library · every kind as data: index.json.

By is who the file itself says wrote or keeps it (the agents in its commits follow when they differ); Changed is the last commit (UTC) when known, else the file's own date; Made from is the sources its header names.

FileWhat it isByChangedMade from
admin/tools/release.shRelease from any agent's clone: AGENT=<name admin/tools/release.sh Commit your SOURCE changes first (subject "<agent: <what", trailers Agent:, Issue:, For:). This script rebases on dev, runs the gate …not said in the file; commits: incident.conductor@11-11 02:33
admin/tools/render-pdf.cjsRenders one built page to a PDF as the conductor does for Dinis (A4 landscape, backgrounds printed, the menu and the panel hidden). Usage: node admin/build/build.mjs && node …not said in the file; commits: incident.conductor@11-11 04:13
incidents/2026-11-10-storm-charles/data/decisions/tools/primary_tries.pyOne polite GET per primary page we could not read; records each try in entities/<entity.json "tries".not said in the file; commits: incident.conductor@11-11 02:21
incidents/2026-11-10-storm-charles/data/weather/tools/refresh.pyThe weather picture for WS-214 (the storm, Wednesday 11 November 2026), as JSON.not said in the file; commits: incident.conductor@11-11 02:39
tools/accounts-build.mjsThe books: what this project costs, from what is written down in the repository. Kept by incident.accountant@web-summit.dinis (WS-214). node tools/accounts-build.mjs (run by the accountant each …incident.accountant@11-11 03:02
tools/accounts-measure.mjsWhat this agent's own session has used, in tokens, from its own transcript. Numbers only: no message text leaves the session. Kept by incident.accountant@web-summit.dinis (WS-214), adapted from …incident.accountant@11-11 05:41
tools/agents-commits.mjsThe last commits on dev as data: git log - data/agents/commits.json (kept by incident.observability@web-summit.dinis). node tools/agents-commits.mjs Who pushed what, when, and for whom (the Agent: …incident.observability@11-11 05:16
tools/agents-index.mjsThe team's index: repository - data/agents/index.json (kept by incident.observability@web-summit.dinis). node tools/agents-index.mjs write it node tools/agents-index.mjs --check exit 1 if the …incident.observability@11-11 10:05
tools/agents-ledger.mjsThe model ledger, as counts: this machine's ledger (tools/llm.mjs writes one line per model call to INCIDENT_LEDGER_DIR, default ~/.incident-ledger, never git) - data/agents/ledger/<role.json. Kept …incident.observability@11-10 23:54
tools/agents-now.mjsThe team at work, now (kept by incident.observability@web-summit.dinis, 11 November 2026, WS-214). node tools/agents-now.mjs --out _site writes ONLY <out/data/agents/now.json: who pushed in the hour …incident.observability@2026-11-11
tools/agents-pin.mjsPinned copies of other teams' engines (kept by incident.observability@web-summit.dinis): copy named files, unchanged, from a checkout of their repository into app/agents/vendor/<name@<short commit/ …incident.observability@11-10 23:54
tools/agents-release.mjsincident.observability@'s release (a shell script kept in a .mjs, because this role's paths are tools/agents-.mjs): rebase on dev; if only generated data/agents/.json conflict, regenerate them; …not said in the file; commits: incident.observability@11-11 03:09
tools/agents-sessions.mjsAgent provenance: git log, the status files and data/keys.json - data/agents/sessions.json (kept by incident.observability@web-summit.dinis; RESTRUCTURE.md, "Agent provenance"; Dinis, 11 November …incident.observability@11-11 03:17
tools/agents-views.mjsPage views, as counts: the append lanes of vault zd1cb3kt - data/agents/views.json and stats/views.json in that vault (kept by incident.observability@web-summit.dinis). OBS_DRAIN_DIR=<the private …incident.observability@11-11 09:58
tools/board-build.mjsThe board: board/items/.json - <out/board/ (kept by incident.board@web-summit.dinis). node tools/board-build.mjs --out _site for the build: writes only <out/board/, never a tracked file node …incident.board@11-11 04:06
tools/board-item.mjsMove a card on the board and record the move in its history (kept by incident.board@web-summit.dinis). node tools/board-item.mjs <id --state watching --change "what changed and where it was read" …incident.board@11-11 02:23
tools/board-sync.mjsKeep the board true to the agents' status files (kept by incident.board@web-summit.dinis). Run at each wake, before the cards are moved by hand; it does only the mechanical part and says what it did. …incident.board@11-11 03:04
tools/brief-make.mjsThe decision brief, an edition at a time (incident.brief@web-summit.dinis, 11 November 2026). Reads brief/edition-<n.json (this edition's words and judgements) and the incident's data files as they …incident.brief@2026-11-11
tools/brief-pdf.mjsRenders the decision brief's PDFs from a BUILT site (incident.brief@web-summit.dinis, 11 November 2026), for incident.ci@'s cached step. node tools/brief-pdf.mjs --site _site --out <dir writes …incident.brief@2026-11-11
tools/broadcast-coast.mjsincident.broadcast@web-summit.dinis: the coastline under the /broadcast/ wind map, cut once from Natural Earth's 1:50m land (public domain), read through the world-atlas package …not said in the file; commits: incident.broadcast@11-11 10:22
tools/broadcast-field.mjsincident.broadcast@web-summit.dinis: the wind and pressure field behind the /broadcast/ map. One request to Open-Meteo's forecast API (CC BY 4.0; its "best match" of national and ECMWF models) for a …not said in the file; commits: incident.broadcast@11-11 10:28
tools/capture-pages.mjscapture-pages.mjs: the page of every capture, made at build time from the records in git. node tools/capture-pages.mjs --out <dir writes <dir/evidence/<id.md for each evidence/<id.json (the build …not said in the file; commits: incident.archivist@11-11 04:32
tools/capture-records.mjscapture-records.mjs: from the captures kept outside git (tools/capture.mjs) to the records in git and the files in the vaults. node tools/capture-records.mjs [--in DIR] [--capture-vault DIR] …not said in the file; commits: incident.archivist@11-11 09:27
tools/capture.mjscapture.mjs: what an outside page looked like when we read it. node tools/capture.mjs <url [<url ...] [--list file.json] [--out DIR] [--gap 4] [--frame 1280x1600] For each address, one at a time and …not said in the file; commits: incident.archivist@11-11 04:28
tools/ci-read.mjsThe pipeline and the repository as data (kept by incident.ci@web-summit.dinis, WS-214). node tools/ci-read.mjs read GitHub's Actions API and this clone's history, write data/ci/ node …incident.ci@11-11 05:48
tools/ci-release-record.mjsThe signed release record (incident.ci@web-summit.dinis; the proposal: ci/signing.md). NOT wired in yet: it waits for Dinis's yes. AGENT=<name node tools/ci-release-record.mjs --write write …incident.ci@11-11 02:36
tools/desk-drain.mjsdesk-drain.mjs: the contact desk's drain (incident.desk@web-summit.dinis; desk/README.md says how the desk works). node tools/desk-drain.mjs [--no-push] drain the lanes, keep each message in the …incident.desk@
tools/ds-ensemble.mjsincident.datascience@web-summit.dinis: where the storm's centre crosses Lisbon's meridian in each of the 51 ECMWF ensemble forecasts (control + 50 members), and Lisbon's model gusts, via Open-Meteo's …not said
tools/ds-exposure.mjsincident.datascience@web-summit.dinis: residents under each IPMA warning level, by warning area and hour. Usage: node tools/ds-exposure.mjs [--warnings <file] [--read-utc <iso] without --warnings it …not said
tools/ds-tides.mjsincident.datascience@web-summit.dinis: high and low water at Cascais (Tagus mouth), Lisbon and Funchal, from Open-Meteo's Marine API (a model, CC BY 4.0), with wave height. Instituto Hidrográfico's …not said
tools/entities-build.mjsentities-build: the pages of the mini Wikipedia, and the linker (incident.entities@web-summit.dinis). node tools/entities-build.mjs --out <dir writes <dir/entities/.md (a page per node, an index per …incident.entities@11-11 08:50
tools/entities-check.mjsentities-check: what incident.entities@ runs before every release, in one chain with the gate and release.sh: node tools/entities-check.mjs && node admin/build/validate.mjs && AGENT=... …not said in the file; commits: incident.entities@11-11 02:39
tools/entities-lib.mjsShared by tools/entities-make.mjs and tools/entities-build.mjs (incident.entities@web-summit.dinis): reading the nodes and matching their names in text. Zero dependencies.incident.entities@11-11 05:24
tools/entities-link.mjsentities-link: the linker, as the build's "after" step (admin/build/generators.json): node tools/entities-link.mjs --out <dir. It is tools/entities-build.mjs --out <dir --link: one tool, two moments …not said in the file; commits: incident.entities@11-11 02:23
tools/entities-make.mjsentities-make: the nodes of the mini Wikipedia, from what the incident already holds (incident.entities@web-summit.dinis). node tools/entities-make.mjs writes entities/<type/<id.json and …incident.entities@11-11 08:44
tools/flows-build.mjsFlows, built from the record (incident.motion@web-summit.dinis, 11 November 2026, WS-214; Dinis, ~10:10 UTC, BRIEF.md). node tools/flows-build.mjs --out _site writes, ONLY under <out/data/flows/ and …incident.motion@11-11 10:27
tools/graph-build.mjsThe graph of an incident, built from its JSON files and never by hand (incident.graph@web-summit.dinis). node tools/graph-build.mjs [incidents/<id] writes data/graph/storm.json and …incident.graph@11-11 10:45
tools/graph-places.mjsIPMA's warning areas, by code: node tools/graph-places.mjs <the file fetched from IPMA <UTC time read Reads IPMA's own list (https://api.ipma.pt/open-data/distrits-islands.json), keeps one row per …not said in the file; commits: incident.graph@11-11 00:29
tools/ipma-pages.mjsWrite the IPMA section's pages (sources/ipma/.md and endpoints/.md) from api.json, latest.json, reads.json and data/. node tools/ipma-pages.mjs Each page is markdown an agent can read whole (tables …incident.ipma@11-11 02:36
tools/ipma-read.mjsRead IPMA's open data (https://api.ipma.pt/open-data/), politely, and keep what was read. node tools/ipma-read.mjs [--store DIR] [--only id,id] [--gap ms] [--crawl] - The endpoints come from …not said in the file; commits: incident.ipma@11-11 02:31
tools/ipma-round.mjsOne round on IPMA's open data: read, keep, derive, write the pages. node tools/ipma-round.mjs [--store DIR] [--crawl] [--no-read] 1. tools/ipma-read.mjs (politely; hashes and changes into …not said in the file; commits: incident.ipma@11-11 02:31
tools/ipma-views.mjsFrom the latest read of IPMA's open data (the store that tools/ipma-read.mjs fills) to the small files the pages draw: node tools/ipma-views.mjs [--store DIR] Writes sources/ipma/data/.json (each …incident.ipma@11-11 02:42
tools/journal-build.mjsThe journal, generated from its pieces (incident.journalist@web-summit.dinis, 11 November 2026, WS-214; Dinis, ~02:50 UTC: "meta reporter and meta journalist: reporting on how this project actually …incident.journalist@11-11 03:11
tools/labs-check.mjsThe Labs' browser check (incident.labs@web-summit.dinis). Opens every experiment of a built site in a headless browser, wide and narrow, and checks what the gate cannot: the page drew marks, nothing …incident.labs@11-11 06:50
tools/lane-common.mjslane-common.mjs: what the lane tools share (incident.identity@web-summit.dinis; the design is SECURITY.md). The same pinned pki.sgit.ai modules the browser runs (app/login/pki/), over Node's Web …incident.identity@11-11 09:34
tools/lane-configure.mjslane-configure.mjs: open the feedback lane on an existing vault (the bridge vault). It does not create the vault. SG_SEND_ACCESS_TOKEN=<access token LANE_VAULT_KEY=<the vault's key node …not said in the file; commits: incident.identity@11-11 09:34
tools/lane-drain.mjslane-drain.mjs: the conductor's drain, each wake. Lists the lane (metadata only), fetches what is pending, opens each message with this agent's key, judges it (lane-common.mjs judge), prints one JSON …not said in the file; commits: incident.identity@11-11 09:39
tools/lane-e2e.mjslane-e2e.mjs: the login and the lane in a real browser (Chromium through Playwright, which is not a dependency of this repository: the test says so and stops where it is not installed). Throwaway …not said in the file; commits: incident.identity@11-11 03:23
tools/lane-frame.mjslane-frame.mjs: copy the site frame's notice and footer caption into account/index.html (its menu and breadcrumb are filled by the build itself, from the <!--menu:…-- and <!--crumbs-- marks the page …not said in the file; commits: incident.identity@11-11 03:23
tools/lane-handover.mjslane-handover.mjs: hand a vault key to another agent (the conductor) without the key ever being readable on the way. VAULT_KEY=<the vault's key node tools/lane-handover.mjs seal [--to …not said in the file; commits: incident.identity@11-11 09:34
tools/lane-keys.mjslane-keys.mjs: the key list, checked (incident.identity@web-summit.dinis). Reads data/keys.json only; needs no key. node tools/lane-keys.mjs one line per problem, then a count; exit 1 if any entry is …incident.identity@11-11 05:47
tools/lane-open.mjslane-open.mjs: open what Dinis sealed to this agent, and judge it. One JSON line per message. node tools/lane-open.mjs <m1 code \| file holding one [...] (or the text on stdin) "accept": true only for …not said in the file; commits: incident.identity@11-10 23:47
tools/lane-seal.mjslane-seal.mjs: the reverse path. Sign with this agent's key, seal to a key in data/keys.json (Dinis's), 7 days by default. node tools/lane-seal.mjs --to <key id --text "…" [--subject S] [--expires …not said in the file; commits: incident.identity@11-10 23:47
tools/lane-sign.mjslane-sign.mjs: this agent signs the files that say what is safe, so a reader can check who wrote the bytes they read. node tools/lane-sign.mjs sign the files below with this agent's session key → …not said in the file; commits: incident.identity@11-11 00:22
tools/lane-test.mjslane-test.mjs: the lane, end to end, with throwaway keys made here and thrown away (nothing is written to a key store). node tools/lane-test.mjs 1. the pinned pki.sgit.ai copies are byte for byte …not said in the file; commits: incident.identity@11-11 09:34
tools/library-abp.mjsThe agents' behaviour policies, as drafts (incident.librarian@web-summit.dinis, 11 November 2026, WS-214, at incident.conductor@'s ask). One agents/<role/policy.md per agent in agents/policy.json, in …incident.librarian@11-11 00:45
tools/library-index.mjsThe library's catalogue (incident.librarian@web-summit.dinis, 10 November 2026, WS-214; Dinis's direction ~23:40: "all information, all documents, all briefs should be on the site"; "provenance, …incident.librarian@11-11 04:18
tools/library-news.mjsWhat changed in a release window, as data (incident.librarian@web-summit.dinis, 11 November 2026, WS-214; Dinis, ~02:10 UTC: "every time you push a change you need to create a new article ... not …incident.librarian@11-11 02:47
tools/library-pack.mjsThe briefing pack (incident.librarian@web-summit.dinis, 11 November 2026, WS-214; Dinis, ~02:50 UTC: "we should make it much cheaper if another agent wanted to capture all this. The whole idea that …incident.librarian@11-11 07:50
tools/library-reading.mjslibrary/reading/reading.json - library/reading/README.md (incident.librarian@web-summit.dinis, 10 November 2026, WS-214). The reading list is kept as data (one entry per article: URL, its argument, …incident.librarian@11-10 23:47
tools/library-releases.mjsThe release history (incident.librarian@web-summit.dinis, 10 November 2026, WS-214, at incident.conductor@'s ask; the estate's standard asks for "one sentence per release"; the reading list: "Green …incident.librarian@11-11 02:47
tools/library-view.mjsThe file viewer's page (incident.librarian@web-summit.dinis, 11 November 2026, WS-214; Dinis, ~02:10 UTC: "every one of these JSON files, I need to be able to visualise it ... go down the rabbit hole …incident.librarian@11-11 02:25
tools/llm.mjsThe model ledger's one wrapper (incident.dev@web-summit.dinis, 10 November 2026, WS-214; ROADMAP P0.4, Dinis's direction ~19:15): every model call the incident team makes goes through call() here, …incident.dev@ (commits: incident.conductor@, incident.models@)11-11 03:06
tools/meteorology-build.mjsincident.meteorology@web-summit.dinis: the meteorology section's pages, from its data. node tools/meteorology-build.mjs --out _site Reads …not said in the file; commits: incident.meteorology@11-11 05:23
tools/meteorology-read.mjsincident.meteorology@web-summit.dinis: read the page each lineage edge and licence cites, and stamp what was found. node tools/meteorology-read.mjs [--only <substring of from/to/id] [--stale] For …not said in the file; commits: incident.meteorology@11-11 02:58
tools/meteorology-render.mjsincident.meteorology@web-summit.dinis: the text of a page that only exists after its scripts run (used by meteorology-read.mjs for items marked "render": true). node tools/meteorology-render.mjs <url …not said in the file; commits: incident.meteorology@11-11 11:36
tools/models-ask.mjsAsk a model one question through the ledger (incident.models@web-summit.dinis, WS-214): the call other desks use, first incident.shadow@ for answer engines with search. Every call is stored raw …incident.models@11-11 02:36
tools/models-items.mjsThe eval items (incident.models@web-summit.dinis, WS-214): node tools/models-items.mjs Writes models/evals/<task/items.json for the four first tasks. Every gold answer is COPIED from the data room …incident.models@11-11 03:00
tools/models-prompts.mjsThe instructions of the evals (incident.models@web-summit.dinis, WS-214): one per task, the same for every model. models-run.mjs sends them; models-report.mjs prints them on each task's page.incident.models@11-11 03:00
tools/models-report.mjsThe report (incident.models@web-summit.dinis, WS-214): node tools/models-report.mjs From models/evals/<task/items.json and results/<model.json, models/evals/models.json and licences.json, …incident.models@11-11 03:06
tools/models-run.mjsRun the evals (incident.models@web-summit.dinis, WS-214): every call through tools/llm.mjs, so each is stored and counted. node tools/models-run.mjs [--task extract-warning,label] [--models id,id] …incident.models@11-11 03:06
tools/perplexity-ask.mjsPerplexity as a research tool, step 1: ask one of the team's open questions and keep what comes back as data (incident.perplexity@web-summit.dinis, 11 November 2026, WS-214; Dinis's direction of …incident.perplexity@11-11 03:03
tools/perplexity-check.mjsPerplexity as a research tool, step 2: open the addresses an engine cited, one at a time, so a person or agent can read whether the page says what the engine said it says …incident.perplexity@11-11 05:27
tools/perplexity-index.mjsPerplexity as a research tool, step 3: from the checked run files, the scorecard, the leads and the page (incident.perplexity@web-summit.dinis, 11 November 2026, WS-214). node …incident.perplexity@11-11 03:03
tools/perplexity-status.mjsPerplexity as a research tool: the desk's day, counted (incident.perplexity@web-summit.dinis, WS-214). node tools/perplexity-status.mjs writes research/perplexity/ledger-summary.json from this …incident.perplexity@11-11 03:01
tools/policy-check.mjsThe path policy's check (incident.librarian@web-summit.dinis, 10 November 2026, WS-214, at incident.conductor@'s ask; from the reading list: "Behaviour policies" on newsroom.sgit.ai, where the reach …incident.librarian@11-11 03:13
tools/reporter-fill.mjsincident.reporter@web-summit.dinis: fills and checks the traces in reporter/traces/.json from the record. Run by the reporter at each wake in a full clone (git fetch --tags first); never by the build …not said in the file; commits: incident.reporter@11-11 03:04
tools/reporter-numbers.mjsincident.reporter@web-summit.dinis: reporter/numbers.json, the project counted by hour (UTC) from the data others keep. Nothing is recounted from git or by hand: every figure names the file it came …not said in the file; commits: incident.reporter@11-11 04:05
tools/shadow-ask.mjsShadow reporting, step 1: ask the answer engines what a reader would ask, and keep what they say as data (incident.shadow@web-summit.dinis, 11 November 2026, WS-214; Dinis's direction of ~02:20 UTC, …incident.shadow@11-11 04:06
tools/shadow-index.mjsShadow reporting, step 2: from shadow/runs/<date/<hour.json (the answers, split and compared by the agent) make the page and its data: shadow/index.md hour by hour, per question: what a reader was …incident.shadow@11-11 03:06
tools/social-accounts.mjsA page per listed social account (incident.social@web-summit.dinis). A build generator: node tools/social-accounts.mjs --out <dir Writes <dir/research/social/accounts/<handle.md (the build renders …incident.social@11-11 04:31
tools/social-mastodon.mjsMastodon, read as data (incident.social@web-summit.dinis). Node 18+, no account, public endpoints, 3 s between requests. node tools/social-mastodon.mjs - research/social/mastodon.json Same rule as …incident.social@11-11 03:29
tools/social-page.mjsWrites research/social/index.md from the data tools/social-read.mjs keeps (incident.social@web-summit.dinis). Run by hand after a read: node tools/social-page.mjs (not a build generator: the build …incident.social@11-11 05:40
tools/social-read.mjsBluesky, read as data (incident.social@web-summit.dinis). Node 18+, no dependencies, no account, no login. node tools/social-read.mjs reads every account in research/social/accounts.json, then the …incident.social@11-11 05:40
tools/source-index.mjsThe index of sources: from the hand-kept register (sources/registry.json) and what the site already cites, write sources/sources.json every body with its counts (timeline rows citing it; addresses of …incident.sources@11-11 05:27
tools/source-meteoalarm.mjsThe MeteoAlarm reader: one polite read of a country's warning feed, kept as a dated record with a compact diff. node tools/source-meteoalarm.mjs # Portugal: read, diff against the previous read, …not said in the file; commits: incident.sources@11-11 02:28
tools/source-pages.mjsA small page and a source.json for every body in the register that has no folder of its own yet, so each body has one address (sources/<id/) that a row, an entity or the index can land on. A …incident.sources@11-11 06:27
tools/stories-build.mjsStories, generated from their graphs (incident.stories@web-summit.dinis, 11 November 2026, WS-214; Dinis, ~02:20 UTC: "a complete data-driven story ... every thing needs to be hyperlinked ... but you …incident.stories@11-11 10:59
tools/sync-from-websummit.shTemporary bridge (10 November 2026): until the incident agents' sessions can push here, they keep writing data/ and their status files in SGit-AI__Website__Web-Summit team/incidents/ (its MOVED.md); …not said in the file; commits: incident.conductor@11-10 21:37
tools/timeline.mjstimeline.md - signals.json (incident.dev@web-summit.dinis, 10 November 2026, WS-214). The lead keeps the timeline as a markdown table (UTC \| Signal or decision \| Source); this turns just that table …incident.dev@ (commits: incident.conductor@)11-11 09:24
tools/transport-gtfs.mjsKept by incident.transport@web-summit.dinis, 11 November 2026, 12:13 UTC Metro de Lisboa's published timetable (GTFS, dados.gov.pt, CC BY) - trips scheduled per hour per line for given days. The zip …incident.transport@11-11 12:13
tools/transport-read.mjsRead open transport sources for Storm Charles, politely, and write small JSON to the data room. node tools/transport-read.mjs [--store DIR] [--dry] - Flights: OpenSky Network's public REST API …not said
tools/weather-check.mjsThe Weather face's own rule, checked (incident.weather@web-summit.dinis): app/weather/ reads only what the data room publishes. 1. every fetch() in app/weather/.js takes its address from the FILES …incident.weather@
tools/websummit-poll.shThe 2-minute blog poll (incident.dev@web-summit.dinis, 10 November 2026, WS-214; incident.researcher@'s ask via the lead, 21:03). Rewritten at 21:30 after security.repos@'s MEDIUM (report …incident.dev@ (commits: incident.conductor@)11-10 21:18
tools/websummit.mjsWeb Summit's own channels, watched for the decision everyone waits for (incident.dev@web-summit.dinis, 10 November 2026, WS-214; incident.researcher@'s parser asks in decisions/sources.json: …incident.dev@ (commits: incident.conductor@)11-10 21:37
tools/wikipedia-claims.mjsFrom the hand-kept research/wikipedia/claims-curated.json and the stored wikitext of each revision (outside git, put there by tools/wikipedia-read.mjs), writes: claims.json (each statement with the …not said in the file; commits: incident.wikipedia@11-11 02:01
tools/wikipedia-lib.mjsThe polite reader every tools/wikipedia-.mjs shares. Read-only: nothing here edits or posts to Wikipedia. One request at a time, at least GAP ms apart, the action API with maxlag=5; a 429 or a maxlag …not said in the file; commits: incident.wikipedia@11-11 01:43
tools/wikipedia-read.mjsReads Wikipedia on Storm Charles and APPENDS: node tools/wikipedia-read.mjs (run on every wake; read-only on Wikipedia) 1. finds every article, section, redirect and mention in every language …not said in the file; commits: incident.wikipedia@11-11 10:55