{
  "ok": true,
  "role": "product",
  "slug": "4dmap",
  "name": "4DMap",
  "version": "0.3.0",
  "one_line": "Inspect the same event on time, change, graph, and place axes at once.",
  "author": "Aziel Eliab",
  "identity": "Aziel Eliab",
  "aka": "Aziel Elroi Eliab",
  "license": "Apache-2.0",
  "github": "https://github.com/AzielEliab/4dmap",
  "skill_url": "https://www.azieleliab.com/runtime/v1/pull/4dmap/skill",
  "worker_skill": "https://4dmap-download-tracker.vibelock.workers.dev/v1/skill",
  "skill": "---\nname: 4DMap\ndescription: Use this when inspecting time as four axes (T clock, Δ interval, Γ trajectory, Π pattern). Inspection coordinate frame, not a truth engine, not Lumen, not GIS, not a Node Gate. Hosted /v1 via this Worker and aziel-runtime FragGate slug=4dmap. Dual surface: Worker / Flutter / counted download stay complete human software; agents see display envelopes in chat. This Worker /v1/mesh/* PROXY to aziel-runtime via AZIEL_RUNTIME. Suite mesh default OFF. GET /v1/mesh never enables. QNM-BUILD-1.0 live|locked|isolated. QNS-CD-1.0 cite only. No Node Gate. Author Aziel Eliab.\n---\n\n# 4DMap\n\nFour-axis temporal mapping and pattern mapping (4DM-WP-1.0). Author: **Aziel Eliab**.\n\n**THIS IS:** an inspection coordinate frame (0.3.0). 4DM-CARD receipts (id, t, delta, gamma, pi, prev, src, h, note) plus axis receipts. Ops pin / span / stack / gap / fork / walk / lens / class / cohort / absence / cap / join plus card_new / card_export / card_import / frame_status / axis_describe / walk_trace / verify_chain / verify_hash / memory_cite / memory_observe / library_pin / plot / possibility / pattern_recall / lattice_tip / poison_refuse / neighbor_cite. Library ingest is paper date × event × lat/lon or gazetteer. Possibility and Bayesian stay labeled separately. Adaptive pattern memory walks the hashchain lattice — not a detached ML store. Typed joins T↔Δ, Δ↔Γ, Γ↔Π, T↔Π cite TemporalLock / StaticClock / ChronoLock / TrajectoryLock / SpectralLock as inspection inputs only. Optional AKM-TRIAD-1.0 fabric cite/observe (not a Softwares-tab product; posterior ≠ truth). Fail-closed SHA-256. Forks kept. ZionPattern cap 75%. Π-EMPTY when the lens is silent. Not a Softwares door (`domains_are_doors:false`). FragGate is THE single door. Growth-ON.\n\n**THIS IS NOT:** a truth engine; Lumen; GIS 4D; a Node Gate; certified forensics; an identity store. Receipts are not truth. No legal name, home, or county on cards. Π→T backdate, intent, and identity leak refuse.\n\nAlways send a normal `User-Agent` (for example `Mozilla/5.0`). Cloudflare Workers may 403 empty agents.\n\n## When to call it\n\n- Pin a clock, span an interval, join two cards, walk a prev chain, or apply a lens.\n- Health / skill / OpenAPI. Never invent a person, a county, or a backdated clock.\n\nHosted `/v1/{op}` is stateless. Cards travel in the JSON body. The Worker does not store a map.\n\n## Endpoints (this Worker)\n\nHost: `https://4dmap-download-tracker.vibelock.workers.dev`\n\n| Method | Path | What |\n|--------|------|------|\n| GET | `/v1/health` | Liveness. Does not increment downloads. |\n| GET | `/v1/skill` | This markdown. Does not increment downloads. |\n| GET | `/v1/mesh` | PROXY suite mesh status. Default OFF. Never enables. |\n| GET | `/v1/mesh/nodes` | PROXY Live Nodes roster. |\n| POST | `/v1/mesh/{enable,disable,join,heartbeat,leave,broadcast}` | PROXY. Bearer required to enable. |\n| GET | `/v1/example` | Synthetic cards. Not a real case. |\n| GET | `/v1/frame_status` | MASTER-33 inspection-frame status. Not a door. |\n| GET | `/v1/axis_describe` | T/Δ/Γ/Π + companion cites. |\n| GET | `/llms.txt` | Agent-oriented skill text. |\n| POST | `/v1/{pin,span,stack,gap,fork,walk,lens,class,cohort,absence,cap,join}` | Stateless card ops. |\n| POST | `/v1/{card_new,card_pin,card_span,card_join,card_walk,card_list,verify_hash}` | FragGate aliases. |\n| POST | `/v1/{card_export,card_import,frame_status,axis_describe,walk_trace,verify_chain}` | 0.2.0 read/write ops. |\n| POST | `/v1/{memory_cite,memory_observe}` | Optional AKM-TRIAD-1.0 fabric cite/observe. Not a Softwares slug. |\n| POST | `/v1/{library_pin,plot,possibility,pattern_recall,lattice_tip,poison_refuse,neighbor_cite}` | Library pin frames + lattice memory. Growth-ON. |\n\nOpenAPI: `https://4dmap-download-tracker.vibelock.workers.dev/openapi.json`\n\nCatalog OpenAPI: `https://www.azieleliab.com/runtime/openapi.json`\n\nMCP: `POST https://4dmap-download-tracker.vibelock.workers.dev/mcp`\nalso `POST https://www.azieleliab.com/runtime/mcp`\n\nFragGate is LIVE on aziel-runtime: `fraggate_list` → `fraggate_describe slug=4dmap` → `fraggate_call` (`card_new` / `card_pin` / `card_span` / `card_join` / `card_walk` / `card_list` / `verify_hash` plus `card_export` / `card_import` / `frame_status` / `axis_describe` / `walk_trace` / `verify_chain` / `memory_cite` / `memory_observe` / `library_pin` / `plot` / `possibility` / `pattern_recall` / `lattice_tip` / `poison_refuse` / `neighbor_cite`). Softwares bucket **Plain**. Hubs list 4DMap. Agent path remains FragGate only. 4DMap is not an extra door. AKM-TRIAD-1.0 is LIVE fabric (not a Softwares-tab product): optional card cite/observe only; posterior ≠ truth; no history rewrite. Pattern recollection stays on the hashchain lattice.\n\nDemo path (library upload → 4DMap pin): ingest `{event, date, lat, lon|gazetteer_id, surface:REAL|MOCK}` → `POST /v1/library_pin` → 4DM-PIN-FRAME on T. Cite https://www.azielcorpuslibrary.net/map and `/v1/verify-geo`. Scores are not courtroom proof.\n\n## How to call (Mozilla/5.0)\n\n```bash\ncurl -s -A 'Mozilla/5.0' https://4dmap-download-tracker.vibelock.workers.dev/v1/health\ncurl -s -A 'Mozilla/5.0' https://4dmap-download-tracker.vibelock.workers.dev/v1/mesh\ncurl -s -A 'Mozilla/5.0' -X POST https://4dmap-download-tracker.vibelock.workers.dev/v1/pin \\\n  -H 'content-type: application/json' \\\n  -d '{\"t\":\"2026-09-10T00:00:00Z\",\"src\":\"synthetic\",\"note\":\"synthetic T pin\"}'\n```\n\n## Use with AI clients\n\nWorks with ChatGPT (GPT Actions / OpenAI), Grok (xAI), Venice, Claude (Anthropic), Cursor (MCP), Glama (MCP), Perplexity, Microsoft Copilot / Bing, Google Gemini / Vertex, Mistral, Meta AI, Apple Intelligence surfaces, Amazon Q tooling, DuckAssist, You.com, Cohere, and other MCP/OpenAPI-capable assistants.\n\nImport the catalog OpenAPI as a custom tool, GPT Action, or HTTP tool. Connect MCP remotes in Cursor, Glama, and other MCP clients.\n\n## Honest banner\n\nReceipts are not truth. Not Lumen. Not certified forensics. Not GIS 4D. Not a Node Gate.\n\nPaper: 4DM-WP-1.0\n\nForks are welcome and always allowed.\n\nWorker homepage Live Nodes strip polls `GET /v1/mesh` (default OFF). GET never enables. QNS-CD-1.0 is a hub cite / Worker mesh cross-map only.\n",
  "download": "https://4dmap-download-tracker.vibelock.workers.dev/download",
  "cite": "https://4dmap-download-tracker.vibelock.workers.dev/cite.json",
  "llms": "https://4dmap-download-tracker.vibelock.workers.dev/llms.txt",
  "sitemap": "https://4dmap-download-tracker.vibelock.workers.dev/sitemap.xml",
  "count": "https://4dmap-download-tracker.vibelock.workers.dev/count",
  "install": "https://4dmap-download-tracker.vibelock.workers.dev/install.sh",
  "install_sh": "curl -fsSL -A 'Mozilla/5.0' -o install.sh https://4dmap-download-tracker.vibelock.workers.dev/install.sh",
  "install_inspect": {
    "url": "https://4dmap-download-tracker.vibelock.workers.dev/install.sh",
    "downloads": "That product Worker's install.sh. Typical next fetch is the counted /download on the same hostname. Not aziel-runtime. This runtime has no pipe installer.",
    "steps": [
      "curl -fsSL -A 'Mozilla/5.0' -o install.sh https://4dmap-download-tracker.vibelock.workers.dev/install.sh",
      "Inspect install.sh (URLs, write paths, checksums if present).",
      "bash install.sh"
    ]
  },
  "update_check": "https://www.azieleliab.com/runtime/v1/update/check?slug=4dmap&version=0.3.0",
  "software": "https://www.azieleliab.com/runtime/v1/software",
  "openapi": "https://4dmap-download-tracker.vibelock.workers.dev/openapi.json",
  "runtime_openapi": "https://www.azieleliab.com/runtime/openapi.json",
  "in_runtime": false,
  "ops": [
    {
      "op": "health",
      "method": "GET",
      "summary": "Liveness. Does not increment download KV."
    },
    {
      "op": "pin",
      "method": "POST",
      "summary": "Pin a declared mark (product 0.2 verb). Opens a card when card_id is omitted."
    },
    {
      "op": "span",
      "method": "POST",
      "summary": "Span two axes on one card, or two existing cards (Δ)."
    },
    {
      "op": "stack",
      "method": "POST",
      "summary": "Stack declared cards onto Γ. Does not invent cards."
    },
    {
      "op": "gap",
      "method": "POST",
      "summary": "Record a declared Δ gap. Not a truth score."
    },
    {
      "op": "fork",
      "method": "POST",
      "summary": "Keep a sibling fork of a declared card. No winner."
    },
    {
      "op": "walk",
      "method": "POST",
      "summary": "Walk card_ids or a tip prev_hash chain. Not a sequential gate."
    },
    {
      "op": "lens",
      "method": "POST",
      "summary": "Silent lens over declared cards. Empty hit is Π-EMPTY."
    },
    {
      "op": "class",
      "method": "POST",
      "summary": "Pin a declared Π class. Empty label is Π-EMPTY."
    },
    {
      "op": "cohort",
      "method": "POST",
      "summary": "Pin a declared Π cohort of card ids."
    },
    {
      "op": "absence",
      "method": "POST",
      "summary": "Absence lens. Silent miss is Π-EMPTY."
    },
    {
      "op": "cap",
      "method": "POST",
      "summary": "ZionPattern confidence cap 75%. Not P(the world is true)."
    },
    {
      "op": "join",
      "method": "POST",
      "summary": "Join two existing cards. Π→T backdate refuses."
    },
    {
      "op": "list",
      "method": "POST",
      "summary": "List inspection cards, walks, and kept forks."
    },
    {
      "op": "example",
      "method": "POST",
      "summary": "Synthetic T pin. Never a real-case finding."
    },
    {
      "op": "card_new",
      "method": "POST",
      "summary": "Open a four-axis inspection card (T/Δ/Γ/Π). Not a sequential gate."
    },
    {
      "op": "card_pin",
      "method": "POST",
      "summary": "Pin a declared mark onto one axis. Invent-mark refuses."
    },
    {
      "op": "card_span",
      "method": "POST",
      "summary": "Span two axes that already have pins. Does not invent marks."
    },
    {
      "op": "card_join",
      "method": "POST",
      "summary": "Join two existing cards. FragGate claims cite join type."
    },
    {
      "op": "card_walk",
      "method": "POST",
      "summary": "Walk an ordered list of cards. ChainLock may stamp the walk hash."
    },
    {
      "op": "card_list",
      "method": "POST",
      "summary": "List inspection cards and walks in this isolate."
    },
    {
      "op": "verify_hash",
      "method": "POST",
      "summary": "Recompute a card or walk hash. Not a truth score."
    },
    {
      "op": "frame_status",
      "method": "POST",
      "summary": "Read the inspection frame (T/Δ/Γ/Π). Not a sequential gate and not an extra door."
    },
    {
      "op": "axis_describe",
      "method": "POST",
      "summary": "Describe one axis and its neighbors. Axes are simultaneous."
    },
    {
      "op": "walk_trace",
      "method": "POST",
      "summary": "Trace a declared walk. 4DMap is not a sequential gate."
    },
    {
      "op": "card_export",
      "method": "POST",
      "summary": "Export a declared card or the isolate snapshot. Hash-closed."
    },
    {
      "op": "card_import",
      "method": "POST",
      "summary": "Import a previously exported card. Hash mismatch and invent-mark refuse."
    },
    {
      "op": "verify_chain",
      "method": "POST",
      "summary": "Verify card prev_hash or walk card-hash chain. Not a truth score."
    },
    {
      "op": "neighbor_cite",
      "method": "POST",
      "summary": "Cite a neighbor engine on a declared card (join type neighbor or cite)."
    },
    {
      "op": "frame",
      "method": "POST",
      "summary": "UI alias of frame_status. Same FragGate backend as the Worker UI button."
    },
    {
      "op": "axis",
      "method": "POST",
      "summary": "UI alias of axis_describe. Same FragGate backend as the Worker UI button."
    },
    {
      "op": "trace",
      "method": "POST",
      "summary": "UI alias of walk_trace. Same FragGate backend as the Worker UI button."
    },
    {
      "op": "export",
      "method": "POST",
      "summary": "UI alias of card_export. Same FragGate backend as the Worker UI button."
    },
    {
      "op": "import",
      "method": "POST",
      "summary": "UI alias of card_import. Same FragGate backend as the Worker UI button."
    },
    {
      "op": "neighbor",
      "method": "POST",
      "summary": "UI alias of neighbor_cite. Same FragGate backend as the Worker UI button."
    },
    {
      "op": "memory_cite",
      "method": "POST",
      "summary": "Optional AKM-TRIAD-1.0 fabric cite of a 4DM-CARD. Card hash unchanged. Posterior is not truth."
    },
    {
      "op": "memory_observe",
      "method": "POST",
      "summary": "Build an observation packet for FragGate memory_observe. Not forwarded from this op. Not a second door."
    },
    {
      "op": "library_pin",
      "method": "POST",
      "summary": "Pin a 4DM-PIN-FRAME from paper date, event, and lat/lon or gazetteer id."
    },
    {
      "op": "plot",
      "method": "POST",
      "summary": "Inspection plot of lattice pins. REAL and MOCK stay labeled."
    },
    {
      "op": "possibility",
      "method": "POST",
      "summary": "Labeled time×geo possibility and cited bayesian input. They stay separate numbers."
    },
    {
      "op": "pattern_recall",
      "method": "POST",
      "summary": "Count recurring feature hashes on the hashchain lattice."
    },
    {
      "op": "lattice_tip",
      "method": "POST",
      "summary": "List append-only lattice tips."
    },
    {
      "op": "poison_refuse",
      "method": "POST",
      "summary": "Append a refuse-set card. Feature hash only."
    },
    {
      "op": "news_status",
      "method": "POST",
      "summary": "Read AZNews live status from the AzNewsStore Durable Object: outlets live of configured, stored news / weather / sky counts, full-text coverage, pins, receipts. Flags turn true only from stored data."
    },
    {
      "op": "news_pin",
      "method": "POST",
      "summary": "Item -> pins from the AzNewsStore (item_id, url, or newest). Pins are minted at pull time. Refuses AZNEWS-NO-MATCH when the store has no such item; payload.fetch/real keeps the legacy supplied-item path."
    },
    {
      "op": "news_open",
      "method": "POST",
      "summary": "Pin -> item from the AzNewsStore (pin_id, or the newest pin), with the pin<->item link check. Refuses AZNEWS-NO-MATCH when the pin is not stored."
    },
    {
      "op": "news_ingest",
      "method": "POST",
      "summary": "Standalone AZNews store. Wording, image hash, and score go on both hash chains. Does not pin the map."
    },
    {
      "op": "news_sources",
      "method": "POST",
      "summary": "Press Gazette English-language top 50. Configured outlets stay not live until a fetch stores an item."
    },
    {
      "op": "news_weather",
      "method": "POST",
      "summary": "Open-Meteo observations by UN M49 region. A missing observation is a gap. Weather is not live globally unless every region was fetched."
    },
    {
      "op": "news_black_swan",
      "method": "POST",
      "summary": "Cited historical black-swan rows. A row with a date can pin on 4DMap. A missing day stays unpinned."
    },
    {
      "op": "news_feed",
      "method": "POST",
      "summary": "Latest real headlines from the official public RSS of the top-50 outlets: title, link, wording (feed body or summary, full_text flagged), image sha256, triad score. Mints view receipts."
    },
    {
      "op": "news_item",
      "method": "POST",
      "summary": "Open one stored item by item_id with its two pins and pull receipt. Mints a view receipt linked to the pull receipt."
    },
    {
      "op": "news_sky",
      "method": "POST",
      "summary": "Computed sky (astronomy-engine): tropical Sun sign, IAU constellation, Moon phase and sign, equinoxes, solstices, season per hemisphere, constellations visible tonight per region."
    },
    {
      "op": "news_pins",
      "method": "POST",
      "summary": "4DMap pins with type and color (red event, blue report, black/white correspondence, orange weather, gold sky), era (+-3 years), and the last 10 pins added."
    },
    {
      "op": "news_pin_open",
      "method": "POST",
      "summary": "Open one pin by pin_id (permalink /aznews?pin=<id>) with its report and receipts."
    },
    {
      "op": "news_receipts",
      "method": "POST",
      "summary": "Latest pull receipts and view receipts on the dual lattice."
    },
    {
      "op": "news_verify",
      "method": "POST",
      "summary": "Walk the AZNews dual lattice (primary + secondary) over the latest rows and recheck document hashes. Fail closed."
    },
    {
      "op": "news_globe",
      "method": "POST",
      "summary": "One read for the /aznews globe: status, pins, last 10, headlines, weather, sky."
    },
    {
      "op": "ingest_pin",
      "method": "POST",
      "summary": "Alias of library_pin."
    },
    {
      "op": "plot_pins",
      "method": "POST",
      "summary": "Alias of plot."
    },
    {
      "op": "score_hooks",
      "method": "POST",
      "summary": "Alias of possibility."
    },
    {
      "op": "possibility_cite",
      "method": "POST",
      "summary": "Alias of possibility."
    },
    {
      "op": "lattice_tips",
      "method": "POST",
      "summary": "Alias of lattice_tip."
    },
    {
      "op": "skill",
      "method": "GET",
      "summary": "Return 4DMap skill markdown. Does not increment download KV."
    }
  ],
  "banner": "4DMap (4DM-WP-1.0 / 0.3.0): four-axis inspection frame T/Δ/Γ/Π. Inspection frame after AZPIPE routes to isolated engines — not an extra door (domains_are_doors:false). Library pin frames and hashchain lattice memory are public door ops. AZNews can store an item on its own, or pin it here and open it from the map. An empty pin refuses AZNEWS-SOURCE-ABSENT. Not a sequential gate. Not a truth score. Not a Lumen panel. Not a globally live news product. Does not invent marks or backdate class. Neighbors TemporalLock / StaticClock / ChronoLock / TrajectoryLock / SpectralLock. FragGate claims cite join types. ChainLock may stamp walks. Author Aziel Eliab.",
  "limitations": "4DMap (4DM-WP-1.0 / 0.3.0): four-axis inspection frame T/Δ/Γ/Π. Inspection frame after AZPIPE routes to isolated engines — not an extra door (domains_are_doors:false). Library pin frames and hashchain lattice memory are public door ops. AZNews can store an item on its own, or pin it here and open it from the map. An empty pin refuses AZNEWS-SOURCE-ABSENT. Not a sequential gate. Not a truth score. Not a Lumen panel. Not a globally live news product. Does not invent marks or backdate class. Neighbors TemporalLock / StaticClock / ChronoLock / TrajectoryLock / SpectralLock. FragGate claims cite join types. ChainLock may stamp walks. Author Aziel Eliab.",
  "aliases": {
    "catalog_card": "https://www.azieleliab.com/runtime/p/4dmap",
    "catalog_skill": "https://www.azieleliab.com/runtime/p/4dmap/skill",
    "catalog_health": "https://www.azieleliab.com/runtime/p/4dmap/health",
    "invoke_prefix": "https://www.azieleliab.com/runtime/p/4dmap",
    "update_check": "https://www.azieleliab.com/runtime/v1/update/check?slug=4dmap&version=0.3.0",
    "software": "https://www.azieleliab.com/runtime/v1/software",
    "worker_home": "https://4dmap-download-tracker.vibelock.workers.dev/",
    "slugs": [
      "4dmap",
      "fourdmap",
      "four-d-map",
      "4-d-map",
      "4d-map",
      "4dm-wp",
      "4dm-wp-1.0"
    ]
  },
  "doi": null,
  "doi_note": "No DOI. Zenodo software deposit needed. Do not invent one.",
  "skill_source": "https://4dmap-download-tracker.vibelock.workers.dev/v1/skill",
  "kv_increment": false
}