{"ok":true,"agent_id":32934,"events":[{"event_id":475810,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-10-27T12:00:00.000Z","effective_at":"2026-10-27T02:09:11.059Z","window_days":3,"baseline":0,"current_value":13707,"delta":1721,"velocity":573.6666666666666,"acceleration":573.6666666666666,"confidence":0.75,"why":"npm_downloads_7d gained 1721 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","reason":"npm_downloads_7d gained 1721 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","explanation_source":"detector","state_before":"gain_3d=0","state_after":"gain_3d=1721","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1793066951059,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":474696,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-10-26T12:00:00.000Z","effective_at":"2026-10-26T13:57:32.002Z","window_days":3,"baseline":0,"current_value":13707,"delta":1721,"velocity":573.6666666666666,"acceleration":573.6666666666666,"confidence":0.75,"why":"npm_downloads_7d gained 1721 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","reason":"npm_downloads_7d gained 1721 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","explanation_source":"detector","state_before":"gain_3d=0","state_after":"gain_3d=1721","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1793023052002,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":370697,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-10-09T12:00:00.000Z","effective_at":"2026-10-09T00:06:27.189Z","window_days":3,"baseline":1495,"current_value":32805,"delta":-568,"velocity":-189.33333333333334,"acceleration":-687.6666666666666,"confidence":0.85,"why":"npm_downloads_7d momentum fell to -568 per 3d from 1495 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to -568 per 3d from 1495 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=1495","state_after":"gain_3d=-568","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1791504387189,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":363507,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-10-08T12:00:00.000Z","effective_at":"2026-10-08T00:44:18.691Z","window_days":3,"baseline":3324,"current_value":32805,"delta":-1062,"velocity":-354,"acceleration":-1462,"confidence":0.85,"why":"npm_downloads_7d momentum fell to -1062 per 3d from 3324 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to -1062 per 3d from 3324 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=3324","state_after":"gain_3d=-1062","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1791420258691,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":356705,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-10-07T12:00:00.000Z","effective_at":"2026-10-07T00:20:10.255Z","window_days":3,"baseline":5616,"current_value":32805,"delta":-1062,"velocity":-354,"acceleration":-2226,"confidence":0.85,"why":"npm_downloads_7d momentum fell to -1062 per 3d from 5616 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to -1062 per 3d from 5616 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=5616","state_after":"gain_3d=-1062","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1791332410255,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":350359,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-10-06T12:00:00.000Z","effective_at":"2026-10-06T00:57:27.053Z","window_days":3,"baseline":5144,"current_value":33373,"delta":1495,"velocity":498.3333333333333,"acceleration":-1216.3333333333333,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 1495 per 3d from 5144 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 1495 per 3d from 5144 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=5144","state_after":"gain_3d=1495","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1791248247053,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":344738,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-10-05T12:00:00.000Z","effective_at":"2026-10-05T03:37:39.614Z","window_days":3,"baseline":5144,"current_value":33867,"delta":1989,"velocity":663,"acceleration":-1051.6666666666667,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 1989 per 3d from 5144 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 1989 per 3d from 5144 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=5144","state_after":"gain_3d=1989","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1791171459614,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":337169,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-10-04T12:00:00.000Z","effective_at":"2026-10-04T00:12:02.362Z","window_days":3,"baseline":3483,"current_value":33867,"delta":5616,"velocity":1872,"acceleration":711,"confidence":0.9,"why":"npm_downloads_7d gained 5616 in the last 3d vs 3483 in the 3d before (ratio 1.6x, threshold 1.5x)","reason":"npm_downloads_7d gained 5616 in the last 3d vs 3483 in the 3d before (ratio 1.6x, threshold 1.5x)","explanation_source":"detector","state_before":"gain_3d=3483","state_after":"gain_3d=5616","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1791072722362,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":332758,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-10-03T12:00:00.000Z","effective_at":"2026-10-03T08:57:30.221Z","window_days":3,"baseline":3483,"current_value":33867,"delta":5616,"velocity":1872,"acceleration":711,"confidence":0.9,"why":"npm_downloads_7d gained 5616 in the last 3d vs 3483 in the 3d before (ratio 1.6x, threshold 1.5x)","reason":"npm_downloads_7d gained 5616 in the last 3d vs 3483 in the 3d before (ratio 1.6x, threshold 1.5x)","explanation_source":"detector","state_before":"gain_3d=3483","state_after":"gain_3d=5616","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1791017850221,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":321211,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-10-02T12:00:00.000Z","effective_at":"2026-10-02T00:18:19.936Z","window_days":3,"baseline":10570,"current_value":30543,"delta":3809,"velocity":1269.6666666666667,"acceleration":-2253.6666666666665,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 3809 per 3d from 10570 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 3809 per 3d from 10570 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=10570","state_after":"gain_3d=3809","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790900299936,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":312554,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-10-01T12:00:00.000Z","effective_at":"2026-10-01T00:54:18.608Z","window_days":3,"baseline":8989,"current_value":28251,"delta":3483,"velocity":1161,"acceleration":-1835.3333333333333,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 3483 per 3d from 8989 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 3483 per 3d from 8989 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=8989","state_after":"gain_3d=3483","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790816058608,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":306682,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-30T12:00:00.000Z","effective_at":"2026-09-30T08:38:16.977Z","window_days":3,"baseline":8989,"current_value":26734,"delta":1966,"velocity":655.3333333333334,"acceleration":-2341,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 1966 per 3d from 8989 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 1966 per 3d from 8989 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=8989","state_after":"gain_3d=1966","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790757496977,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":295589,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-29T12:00:00.000Z","effective_at":"2026-09-29T00:08:47.843Z","window_days":3,"baseline":385,"current_value":26734,"delta":10570,"velocity":3523.3333333333335,"acceleration":3395,"confidence":0.9,"why":"npm_downloads_7d gained 10570 in the last 3d vs 385 in the 3d before (ratio 27.5x, threshold 1.5x)","reason":"npm_downloads_7d gained 10570 in the last 3d vs 385 in the 3d before (ratio 27.5x, threshold 1.5x)","explanation_source":"detector","state_before":"gain_3d=385","state_after":"gain_3d=10570","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790640527843,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":291894,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-28T12:00:00.000Z","effective_at":"2026-09-28T13:59:51.024Z","window_days":3,"baseline":0,"current_value":25668,"delta":9889,"velocity":3296.3333333333335,"acceleration":3296.3333333333335,"confidence":0.75,"why":"npm_downloads_7d gained 9889 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","reason":"npm_downloads_7d gained 9889 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","explanation_source":"detector","state_before":"gain_3d=0","state_after":"gain_3d=9889","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790603991024,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":267542,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"traction_anomaly","metric_key":"npm_downloads_7d","detected_at":"2026-09-25T12:00:00.000Z","effective_at":"2026-09-25T00:39:30.096Z","window_days":1,"baseline":636.4090909090909,"current_value":15779,"delta":-7527,"velocity":null,"acceleration":null,"confidence":0.783263249241482,"why":"daily change -7527.0 is -5.7 standard deviations from this entity's own prior mean (636.4±1441.0, baseline excludes this point) — unusual, not necessarily adoption","reason":"daily change -7527.0 is -5.7 standard deviations from this entity's own prior mean (636.4±1441.0, baseline excludes this point) — unusual, not necessarily adoption","explanation_source":"detector","state_before":"prior_mean=636.4","state_after":"delta=-7527.0","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790296770096,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":261940,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-24T12:00:00.000Z","effective_at":"2026-09-24T00:16:16.039Z","window_days":3,"baseline":11553,"current_value":15779,"delta":-7406,"velocity":-2468.6666666666665,"acceleration":-6319.666666666667,"confidence":0.85,"why":"npm_downloads_7d momentum fell to -7406 per 3d from 11553 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to -7406 per 3d from 11553 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=11553","state_after":"gain_3d=-7406","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790208976039,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":261941,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"traction_anomaly","metric_key":"npm_downloads_7d","detected_at":"2026-09-24T12:00:00.000Z","effective_at":"2026-09-24T00:16:16.039Z","window_days":1,"baseline":636.4090909090909,"current_value":15779,"delta":-7527,"velocity":null,"acceleration":null,"confidence":0.783263249241482,"why":"daily change -7527.0 is -5.7 standard deviations from this entity's own prior mean (636.4±1441.0, baseline excludes this point) — unusual, not necessarily adoption","reason":"daily change -7527.0 is -5.7 standard deviations from this entity's own prior mean (636.4±1441.0, baseline excludes this point) — unusual, not necessarily adoption","explanation_source":"detector","state_before":"prior_mean=636.4","state_after":"delta=-7527.0","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790208976039,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":254854,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-23T12:00:00.000Z","effective_at":"2026-09-23T00:55:01.094Z","window_days":3,"baseline":10832,"current_value":15779,"delta":-6685,"velocity":-2228.3333333333335,"acceleration":-5839,"confidence":0.85,"why":"npm_downloads_7d momentum fell to -6685 per 3d from 10832 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to -6685 per 3d from 10832 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=10832","state_after":"gain_3d=-6685","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790124901094,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":254855,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"traction_anomaly","metric_key":"npm_downloads_7d","detected_at":"2026-09-23T12:00:00.000Z","effective_at":"2026-09-23T00:55:01.094Z","window_days":1,"baseline":636.4090909090909,"current_value":15779,"delta":-7527,"velocity":null,"acceleration":null,"confidence":0.783263249241482,"why":"daily change -7527.0 is -5.7 standard deviations from this entity's own prior mean (636.4±1441.0, baseline excludes this point) — unusual, not necessarily adoption","reason":"daily change -7527.0 is -5.7 standard deviations from this entity's own prior mean (636.4±1441.0, baseline excludes this point) — unusual, not necessarily adoption","explanation_source":"detector","state_before":"prior_mean=636.4","state_after":"delta=-7527.0","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790124901094,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":245697,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-22T12:00:00.000Z","effective_at":"2026-09-22T00:33:44.586Z","window_days":3,"baseline":13144,"current_value":23306,"delta":-1470,"velocity":-490,"acceleration":-4871.333333333333,"confidence":0.85,"why":"npm_downloads_7d momentum fell to -1470 per 3d from 13144 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to -1470 per 3d from 13144 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=13144","state_after":"gain_3d=-1470","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790037224586,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":250987,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"traction_anomaly","metric_key":"npm_downloads_7d","detected_at":"2026-09-22T12:00:00.000Z","effective_at":"2026-09-22T13:45:10.973Z","window_days":1,"baseline":636.4090909090909,"current_value":15779,"delta":-7527,"velocity":null,"acceleration":null,"confidence":0.783263249241482,"why":"daily change -7527.0 is -5.7 standard deviations from this entity's own prior mean (636.4±1441.0, baseline excludes this point) — unusual, not necessarily adoption","reason":"daily change -7527.0 is -5.7 standard deviations from this entity's own prior mean (636.4±1441.0, baseline excludes this point) — unusual, not necessarily adoption","explanation_source":"detector","state_before":"prior_mean=636.4","state_after":"delta=-7527.0","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1790084710973,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":235936,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-21T12:00:00.000Z","effective_at":"2026-09-21T00:10:31.972Z","window_days":3,"baseline":0,"current_value":23185,"delta":11553,"velocity":3851,"acceleration":3851,"confidence":0.75,"why":"npm_downloads_7d gained 11553 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","reason":"npm_downloads_7d gained 11553 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","explanation_source":"detector","state_before":"gain_3d=0","state_after":"gain_3d=11553","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789949431972,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":236315,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-21T12:00:00.000Z","effective_at":"2026-09-21T01:11:21.931Z","window_days":3,"baseline":13144,"current_value":23185,"delta":-1591,"velocity":-530.3333333333334,"acceleration":-4911.666666666667,"confidence":0.85,"why":"npm_downloads_7d momentum fell to -1591 per 3d from 13144 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to -1591 per 3d from 13144 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=13144","state_after":"gain_3d=-1591","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789953081931,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":227283,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-20T12:00:00.000Z","effective_at":"2026-09-20T00:50:45.042Z","window_days":3,"baseline":0,"current_value":22464,"delta":10832,"velocity":3610.6666666666665,"acceleration":3610.6666666666665,"confidence":0.75,"why":"npm_downloads_7d gained 10832 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","reason":"npm_downloads_7d gained 10832 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","explanation_source":"detector","state_before":"gain_3d=0","state_after":"gain_3d=10832","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789865445042,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":217094,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-19T12:00:00.000Z","effective_at":"2026-09-19T00:28:06.132Z","window_days":3,"baseline":0,"current_value":24776,"delta":13144,"velocity":4381.333333333333,"acceleration":4381.333333333333,"confidence":0.75,"why":"npm_downloads_7d gained 13144 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","reason":"npm_downloads_7d gained 13144 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","explanation_source":"detector","state_before":"gain_3d=0","state_after":"gain_3d=13144","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789777686132,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":207605,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-18T12:00:00.000Z","effective_at":"2026-09-18T00:02:36.409Z","window_days":3,"baseline":5285,"current_value":11632,"delta":0,"velocity":0,"acceleration":-1761.6666666666667,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 0 per 3d from 5285 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 0 per 3d from 5285 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=5285","state_after":"gain_3d=0","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789689756409,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":207960,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-18T12:00:00.000Z","effective_at":"2026-09-18T01:04:17.648Z","window_days":3,"baseline":5285,"current_value":24776,"delta":13144,"velocity":4381.333333333333,"acceleration":2619.6666666666665,"confidence":0.9,"why":"npm_downloads_7d gained 13144 in the last 3d vs 5285 in the 3d before (ratio 2.5x, threshold 1.5x)","reason":"npm_downloads_7d gained 13144 in the last 3d vs 5285 in the 3d before (ratio 2.5x, threshold 1.5x)","explanation_source":"detector","state_before":"gain_3d=5285","state_after":"gain_3d=13144","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789693457648,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":198314,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-17T12:00:00.000Z","effective_at":"2026-09-17T00:40:16.585Z","window_days":3,"baseline":6291,"current_value":11632,"delta":0,"velocity":0,"acceleration":-2097,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 0 per 3d from 6291 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 0 per 3d from 6291 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=6291","state_after":"gain_3d=0","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789605616585,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":189595,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-16T12:00:00.000Z","effective_at":"2026-09-16T00:17:42.806Z","window_days":3,"baseline":6291,"current_value":11632,"delta":0,"velocity":0,"acceleration":-2097,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 0 per 3d from 6291 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 0 per 3d from 6291 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=6291","state_after":"gain_3d=0","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789517862806,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":181986,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-15T12:00:00.000Z","effective_at":"2026-09-15T00:56:33.815Z","window_days":3,"baseline":1006,"current_value":11632,"delta":5285,"velocity":1761.6666666666667,"acceleration":1426.3333333333333,"confidence":0.9,"why":"npm_downloads_7d gained 5285 in the last 3d vs 1006 in the 3d before (ratio 5.3x, threshold 1.5x)","reason":"npm_downloads_7d gained 5285 in the last 3d vs 1006 in the 3d before (ratio 5.3x, threshold 1.5x)","explanation_source":"detector","state_before":"gain_3d=1006","state_after":"gain_3d=5285","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789433793815,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":187556,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"cooling","metric_key":"npm_downloads_7d","detected_at":"2026-09-15T12:00:00.000Z","effective_at":"2026-09-15T18:12:15.836Z","window_days":3,"baseline":6291,"current_value":11632,"delta":0,"velocity":0,"acceleration":-2097,"confidence":0.85,"why":"npm_downloads_7d momentum fell to 0 per 3d from 6291 (<= 40% of the prior window)","reason":"npm_downloads_7d momentum fell to 0 per 3d from 6291 (<= 40% of the prior window)","explanation_source":"detector","state_before":"gain_3d=6291","state_after":"gain_3d=0","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789495935836,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":174032,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-14T12:00:00.000Z","effective_at":"2026-09-14T00:33:19.200Z","window_days":3,"baseline":0,"current_value":11632,"delta":6291,"velocity":2097,"acceleration":2097,"confidence":0.75,"why":"npm_downloads_7d gained 6291 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","reason":"npm_downloads_7d gained 6291 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","explanation_source":"detector","state_before":"gain_3d=0","state_after":"gain_3d=6291","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789345999200,"note":"observation series"}],"detector_version":"signal-v1","status":"active"},{"event_id":169234,"entity":{"kind":"source_link","id":1148,"agent_id":32934,"name":"Graft – Claude Code hooks that cut grep tokens by 42%","url":"https://github.com/NanoNets/Graft"},"event_type":"accelerating","metric_key":"npm_downloads_7d","detected_at":"2026-09-13T12:00:00.000Z","effective_at":"2026-09-13T11:22:02.282Z","window_days":3,"baseline":0,"current_value":11632,"delta":6291,"velocity":2097,"acceleration":2097,"confidence":0.75,"why":"npm_downloads_7d gained 6291 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","reason":"npm_downloads_7d gained 6291 in the last 3d after a flat 3d baseline (no prior movement to compare a ratio against)","explanation_source":"detector","state_before":"gain_3d=0","state_after":"gain_3d=6291","source_diversity":3,"evidence":[{"sourceUrl":"https://www.npmjs.com/package/@nanonets/graft","observedAt":1789298522282,"note":"observation series"}],"detector_version":"signal-v1","status":"active"}],"series":[{"metric_key":"github_stars","points":2,"first":1789823211650,"last":1792238170810},{"metric_key":"hn_points","points":3,"first":1787436224820,"last":1792544626192},{"metric_key":"npm_downloads_7d","points":28,"first":1788274103694,"last":1792848253923}],"note":"observation series are step functions: a missing day means unchanged, not unobserved"}