{"schema":"sb.node.v1","id":"sb:e/d783ec32d971b2c419ddcf3a","kind":"entity","label":{"text":"typescript","locale":"en"},"identity":{"anchor":"label:en:typescript","strength":"label"},"asOf":{"knowledgeCutoff":"2026-10-08T21:52:38.794589+00:00","snapshot":"deploy 42fcb912508e16b96962a1bf0a5ae2df232e259a"},"lens":{"kind":"public"},"build":{"plane":"projected","builtFrom":["entity_graph.slim.json","entity_receipts (deploy asset)","event_graph.json","truth_records (deploy asset)","corroborated_record.json"],"rule":"node-projection.entity@v1"},"standing":{"evidence":{"supporting":66,"separatePublishers":25,"basis":"documents that mention the subject and the outlets that carried them; a mention is evidence the referent is in use, not evidence about any claim"},"admission":{"state":"canonical","reason":"entity graph provenance 'curated'; the node carries no promotion receipt in v1","policy":"EQ-PROMOTION (receipt not carried)"},"disposition":{"state":"served","reason":"public record"},"validity":{"from":"2026-04-30","to":"2026-10-07","basis":"first and last day we saw it mentioned; not the subject's own lifetime"},"measurement":{"state":"partial","blind":["assertion coverage 0.076: about 92% of mentions carry no typed assertion"]}},"dimensions":{"domains":["auto","crypto_defi"],"activeDays":24,"assertions":{}},"up":[],"upNote":"An entity is a root: it is contained by nothing. Pan out by following R.","children":{"count":12,"byKind":{"observation":12},"items":[{"id":"sb:o/dc7e729fc92fa7d63f27717d","kind":"observation","label":"SitePoint · 2026-10-04 · How to Detect Breaking API Changes with TypeScript and OpenAPI","url":"https://www.sitepoint.com/detect-breaking-api-changes-typescript-openapi/?utm_source=rss"},{"id":"sb:o/d29a0cae02a661790f761c22","kind":"observation","label":"SitePoint · 2026-10-02 · JavaScript Fetch Error Handling: Build a Reusable TypeScript Wrapper","url":"https://www.sitepoint.com/javascript-fetch-error-handling-typescript-wrapper/?utm_source=rss"},{"id":"sb:o/50e384c49d15316964b27ec5","kind":"observation","label":"SitePoint · 2026-09-29 · Gemini Interactions API in TypeScript: Task-Aware Thinking Routing","url":"https://www.sitepoint.com/gemini-interactions-api-typescript-thinking-router/?utm_source=rss"},{"id":"sb:o/d749ed4bdfcda69147030bc7","kind":"observation","label":"SitePoint · 2026-09-29 · Building LLM Primitives from Scratch in TypeScript: Tokenizers, Vectors, and Attention","url":"https://www.sitepoint.com/building-llm-primitives-from-scratch-typescript/?utm_source=rss"},{"id":"sb:o/92fbf32c9c45f247209043a5","kind":"observation","label":"SitePoint · 2026-09-26 · Gemini 3.8 Flash Reasoning Effort: Balancing Latency and Costs in TypeScript","url":"https://www.sitepoint.com/gemini-3-8-flash-reasoning-effort-balancing-latency-and-costs-in-typescript/?utm_source=rss"},{"id":"sb:o/4b2864f6eda90b962b6a5898","kind":"observation","label":"SitePoint · 2026-09-26 · Building Multi-Tier AI Agent Memory with TypeScript and SQLite-vec","url":"https://www.sitepoint.com/multi-tier-ai-agent-memory-typescript-sqlite-vec/?utm_source=rss"},{"id":"sb:o/741b4f7d152366f6e3450e40","kind":"observation","label":"SitePoint · 2026-09-22 · Securing AI Agent Tool Execution with TypeScript AST Sandboxes","url":"https://www.sitepoint.com/securing-ai-agent-tool-execution-with-typescript-ast-sandboxes/?utm_source=rss"},{"id":"sb:o/8a7ad3c690f883f146bd0671","kind":"observation","label":"SitePoint · 2026-09-22 · Building Deterministic Multi-Agent State Machines in TypeScript","url":"https://www.sitepoint.com/building-deterministic-multi-agent-state-machines-in-typescript/?utm_source=rss"},{"id":"sb:o/5cbf365156f7f36b44b1c21b","kind":"observation","label":"SitePoint · 2026-09-22 · Building Composite Model Context Protocol (MCP) Gateways in TypeScript","url":"https://www.sitepoint.com/building-composite-model-context-protocol-mcp-gateways-in-typescript/?utm_source=rss"},{"id":"sb:o/be0fbda3fb71e7f6276de812","kind":"observation","label":"SitePoint · 2026-09-21 · Eliminating AI Code Hallucinations with TypeScript Compiler Diagnostics and TDD Loops","url":"https://www.sitepoint.com/ai-code-hallucinations-typescript-compiler-diagnostics-tdd/?utm_source=rss"}],"cursor":"c1.eyJpZCI6InNiOmUvZDc4M2VjMzJkOTcxYjJjNDE5ZGRjZjNhIiwibCI6ImNoaWxkcmVuIiwibyI6MTAsImsiOm51bGwsImEiOiIyMDI2LTEwLTA4VDIxOjUyOjM4Ljc5NDU4OSswMDowMCJ9","order":"newest first; we keep the 12 newest receipts for this entity. Its other observations are counted in standing.evidence.supporting but are not addressable in v1"},"relations":{"count":10,"byKind":{"co-mentioned":10},"items":[{"kind":"relation","label":"co-mentioned with ai (42 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/eba94ca75b249e9c06d86889"},{"kind":"relation","label":"co-mentioned with node.js (32 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/b697838c9be945b2560f50ea"},{"kind":"relation","label":"co-mentioned with python (31 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/4a40a09360bc3b8a210c61c2"},{"kind":"relation","label":"co-mentioned with continue reading (30 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/c3cb714c9a72db621835aad3"},{"kind":"relation","label":"co-mentioned with github (28 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/d1f3ca1eef7b7d884e33e093"},{"kind":"relation","label":"co-mentioned with apis (25 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/0020e0e284a19c7e416854d8"},{"kind":"relation","label":"co-mentioned with openai (24 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/3409ef6cbc1a2d9dadb111f1"},{"kind":"relation","label":"co-mentioned with google (23 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/a67e9d8bf759454b4cd43189"},{"kind":"relation","label":"co-mentioned with boolean (22 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/aff231d06dbd1fc181cc27ac"},{"kind":"relation","label":"co-mentioned with crypto (20 documents)","role":"co-mentioned","relationKind":"co-mentioned","members":2,"id":"sb:r/0d4cec11e6c5b337719e8a02"}],"cursor":null,"order":"situations first, then claims (the subject's own maintained record, then site-wide corroborated clusters; each label ends with its standing), then co-mentions by shared documents, descending. Co-mentions are the ten strongest the entity graph keeps per entity"},"edge":{"state":"continues"},"links":{"rest":"/api/v1/node/e/d783ec32d971b2c419ddcf3a","mcp":"traverse {\"id\":\"sb:e/d783ec32d971b2c419ddcf3a\"}","page":"/entity/typescript/"},"limits":{"levelsPerCall":1,"pageSize":10,"maxPageSize":50,"membersMax":50,"statement":"One level per call: depth is 1 and only 1, and there is no whole-graph dump. pageSize 1-50 (default 10); a page limit is a cursor, never an edge. Members are listed up to 50. At most 60 traverse calls a minute per caller (runaway-loop protection, not a meter). One knowledge cutoff is served: the deploy's."},"actions":[{"verb":"unfold","lit":true,"effect":"read","layer":"cantina","call":"traverse {\"id\":\"sb:e/d783ec32d971b2c419ddcf3a\",\"level\":\"children\"}"},{"verb":"fold","lit":true,"effect":"read","layer":"cantina","call":"traverse {\"id\":\"sb:e/d783ec32d971b2c419ddcf3a\"}"},{"verb":"panOut","lit":false,"effect":"read","layer":"cantina","reason":"An entity is a root: it is contained by nothing. Pan out by following R."},{"verb":"follow","lit":true,"effect":"read","layer":"cantina","call":"traverse {\"id\":\"sb:e/d783ec32d971b2c419ddcf3a\",\"level\":\"relations\"}"},{"verb":"receipts","lit":false,"effect":"read","layer":"cantina","reason":"receipts are the observations below this node; unfold to reach them"},{"verb":"edge","lit":true,"effect":"read","layer":"cantina","call":"traverse {\"id\":\"sb:e/d783ec32d971b2c419ddcf3a\"}"},{"verb":"asOf","lit":false,"effect":"read","layer":"cantina","reason":"v1 serves one knowledge cutoff, this deploy's; walking an earlier cutoff needs retained history (EQ-REPLAY), which v1 does not keep"},{"verb":"switchObserver","lit":false,"effect":"read","layer":"cantina","reason":"the public record is the same for every observer; traversal through a Watch's lens is not served in v1"},{"verb":"readOriginal","lit":false,"effect":"read","layer":"cantina","reason":"no translation is applied on this node; every label is the source's own text"},{"verb":"save","lit":false,"effect":"watch-declaration","layer":"workshop","reason":"saving applies to a configured Watch; configure one around this node first (free), then save it"},{"verb":"deliver","lit":false,"effect":"watch-declaration","layer":"workshop","reason":"delivery applies to a saved Watch"},{"verb":"format","lit":false,"effect":"watch-declaration","layer":"workshop","reason":"output format applies to a saved Watch"},{"verb":"deltaR","lit":false,"effect":"read","layer":"workshop","reason":"Delta R needs a saved Watch with a previous reading"},{"verb":"read","lit":false,"effect":"read","layer":"docking-bay","reason":"one-time Reads are parked until the Commander decides their shape (#938)"}]}