{
  "ml": {
    "v": "7",
    "eng": "2.9.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.2325364,
        "rte": "az",
        "prob": 0.2325364
      },
      {
        "cls": 0,
        "raw": 0.018831035,
        "rte": "az/npm",
        "prob": 0.018831035
      }
    ],
    "prob": 0.2325364,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.2325364053249359,
        "type": "npm"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010649363503034692,
        "type": "javascript"
      },
      {
        "id": 10,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011632840141828638,
        "type": "javascript"
      },
      {
        "id": 25,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011603037819440942,
        "type": "javascript"
      },
      {
        "id": 29,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010132789611816406,
        "type": "package.json"
      },
      {
        "id": 58,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010132789611816406,
        "type": "registry"
      },
      {
        "id": 59,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010033448234025855,
        "type": "registry"
      },
      {
        "id": 60,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010033448234025855,
        "type": "registry"
      },
      {
        "id": 61,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010033448234025855,
        "type": "registry"
      },
      {
        "id": 62,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010132789611816406,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-13T04:25:19Z"
  },
  "path": "@principles-host-runtime-0.5.0.tgz",
  "raw": {
    "fetched": [
      {
        "kind": "dependency",
        "size": 3112260,
        "cached": false,
        "status": 200,
        "headers": [
          [
            "date",
            "Sun, 13 Sep 2026 04:25:19 GMT"
          ],
          [
            "content-type",
            "application/octet-stream"
          ],
          [
            "content-length",
            "3112260"
          ],
          [
            "connection",
            "keep-alive"
          ],
          [
            "cf-ray",
            "a3a46329cf8fd147-IAD"
          ],
          [
            "cf-cache-status",
            "HIT"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "access-control-allow-origin",
            "*"
          ],
          [
            "age",
            "6894"
          ],
          [
            "cache-control",
            "public, must-revalidate, max-age=31557600"
          ],
          [
            "etag",
            "\"99c52ea8b96e94299db75e8f0bb164cf\""
          ],
          [
            "last-modified",
            "Sun, 13 Sep 2026 02:30:25 GMT"
          ],
          [
            "server",
            "cloudflare"
          ],
          [
            "set-cookie",
            "__cf_bm=7CSHgnbH7g5F8bdhgMQUf6D1c0gd_gI9VGCYmaFLpuo-1789273519.6493084-1.0.1.1-YFUz.i2_lCNENLcmIJFwFpqcMduUZYUNu2TJJsB.f8EDhEcl5bHfkioE7oAZ_nizjBUtabc8buRPNL0pYDBolsVW9dWta32KRJSsqYM_gBEEGARipGlOTVIynH8N8dn5; HttpOnly; SameSite=None; Secure; Path=/; Domain=npmjs.org; Expires=Sun, 13 Sep 2026 04:55:19 GMT"
          ]
        ],
        "locator": "pkg:npm/%40principles/core@1.282.2?checksum=sha1:df4aec4d3b897c701adeebf72dda6c16a40683a8%2Csha512:40153ea08a56b94f06d0404e454e8738a4df031d439ef912fad2cccc84ea7ee76c2af0a918887581489694a098a425d44742e973468747a924d435560d588f7b",
        "outcome": "ok",
        "final_url": "https://registry.npmjs.org/@principles/core/-/core-1.282.2.tgz",
        "fetched_at": 1789273519,
        "pin_verified": true,
        "resolved_url": "https://registry.npmjs.org/@principles/core/-/core-1.282.2.tgz",
        "source_offset": 547,
        "source_sha256": "2ffac718edc15a92807930c13e0ad37374a6c01f6d0f59b33816e80eec06a4f5",
        "content_sha256": "e2916ee80458eedf1c303673b232297935d44109bbdaddf0326650086ecd525d"
      },
      {
        "kind": "dependency",
        "size": 3415,
        "cached": false,
        "status": 200,
        "headers": [
          [
            "date",
            "Sun, 13 Sep 2026 04:25:19 GMT"
          ],
          [
            "content-type",
            "application/octet-stream"
          ],
          [
            "content-length",
            "3415"
          ],
          [
            "connection",
            "keep-alive"
          ],
          [
            "cf-ray",
            "a3a463298f171d4c-IAD"
          ],
          [
            "cf-cache-status",
            "HIT"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "access-control-allow-origin",
            "*"
          ],
          [
            "age",
            "334732"
          ],
          [
            "cache-control",
            "public, must-revalidate, max-age=31557600"
          ],
          [
            "etag",
            "\"94da0732e889db27138742412d4bf012\""
          ],
          [
            "last-modified",
            "Wed, 09 Sep 2026 07:26:27 GMT"
          ],
          [
            "server",
            "cloudflare"
          ],
          [
            "set-cookie",
            "__cf_bm=_seR5RwtfY9acnPtCDXj2bK30SsikNgBV1TJzEL.2Bw-1789273519.603643-1.0.1.1-pTB6u2oVCPykYVxhVLnMGoewJtaYFKSM2nZj9ZNLd_PXr1gmghImMk.Jt5fm6v2ekkpc40TklVVElCafxIoCyRCUJbSHK45P8wv1Dl_tNI9nRKwNgDwwIOnzjMjhUl4r; HttpOnly; SameSite=None; Secure; Path=/; Domain=npmjs.org; Expires=Sun, 13 Sep 2026 04:55:19 GMT"
          ]
        ],
        "locator": "pkg:npm/%40principles/install-layout@0.2.4?checksum=sha1:8e9e5092557c8ad82ec8fad451fc9ca39653350a%2Csha512:01770aef3a3d7b290c88a80a5eeb61364fe83b9d0bd5a146761fc06a0873f205577675f1310331c0a7cb14e21e447b647273a2887b5200135a7fc7c0cb735e10",
        "outcome": "ok",
        "final_url": "https://registry.npmjs.org/@principles/install-layout/-/install-layout-0.2.4.tgz",
        "fetched_at": 1789273519,
        "pin_verified": true,
        "resolved_url": "https://registry.npmjs.org/@principles/install-layout/-/install-layout-0.2.4.tgz",
        "source_offset": 582,
        "source_sha256": "2ffac718edc15a92807930c13e0ad37374a6c01f6d0f59b33816e80eec06a4f5",
        "content_sha256": "477c24989fa3a90dcb5f42ec14a96720684edf4a7e303bea0356f47778a27eac"
      },
      {
        "kind": "dependency",
        "size": 363341,
        "cached": false,
        "status": 200,
        "headers": [
          [
            "date",
            "Sun, 13 Sep 2026 04:25:19 GMT"
          ],
          [
            "content-type",
            "application/octet-stream"
          ],
          [
            "content-length",
            "363341"
          ],
          [
            "connection",
            "keep-alive"
          ],
          [
            "cf-ray",
            "a3a463298ce9706a-IAD"
          ],
          [
            "cf-cache-status",
            "HIT"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "access-control-allow-origin",
            "*"
          ],
          [
            "age",
            "14978"
          ],
          [
            "cache-control",
            "public, immutable, max-age=31557600"
          ],
          [
            "etag",
            "\"1f1c0294142da751e052f651f13d89e2\""
          ],
          [
            "last-modified",
            "Sun, 13 Sep 2026 00:15:40 GMT"
          ],
          [
            "server",
            "cloudflare"
          ],
          [
            "set-cookie",
            "__cf_bm=JDeGg6BaUMnssNVL5bf.MkoAlnurYCdSoBC4.MVsfmw-1789273519.6029391-1.0.1.1-7yTLCV44Mj27FR257iEgVLptts6A7TgLd7XtVy47zVY64.g3iAdJ2zy2786TdnhnRlxk9Keg1QEiE.UdCartpOKOSqZ.jYNB8EKfNRHJVm8y8dLFyuemA3dsoell1SVX; HttpOnly; SameSite=None; Secure; Path=/; Domain=npmjs.org; Expires=Sun, 13 Sep 2026 04:55:19 GMT"
          ]
        ],
        "locator": "pkg:npm/js-yaml@5.4.2?checksum=sha1:eebc7a57e0bbe1d6b6d9416a72e7463082c7da85%2Csha512:9be6aabbe2f03b53bab08a2969f8fc1d4565e5a6b0213c1941eff21e93022a369605a03f774ec1fd074c6f7e76f5111fb6253e44c3072f7565b30de138deef5a",
        "outcome": "ok",
        "final_url": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.2.tgz",
        "fetched_at": 1789273519,
        "pin_verified": true,
        "resolved_url": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.2.tgz",
        "source_offset": 659,
        "source_sha256": "2ffac718edc15a92807930c13e0ad37374a6c01f6d0f59b33816e80eec06a4f5",
        "content_sha256": "0003d2f51f6717c17a708449d05f2f8d8c90a52e9ba4587ff7e8e474c9792209"
      }
    ],
    "files": [
      {
        "id": 0,
        "mol": "H₂(CmPo₂)",
        "sha": "e641c845d30e1370ad469fe53f8ae7d6b02086ef914099596c2552e475bfff0a",
        "path": "@principles-host-runtime-0.5.0.tgz",
        "refs": [
          {
            "to": "pkg:github/csuzngjh/principles",
            "off": 0,
            "kind": "repository"
          }
        ],
        "risk": 4,
        "size": 114810,
        "type": "npm",
        "facts": {
          "metrics": {
            "file": {
              "size": 114810,
              "entropy": 8
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 113664,
              "peak_region_entropy": 7.83
            },
            "consistency": {
              "self_dependency": 0,
              "name_repo_mismatch": 1,
              "unused_runtime_deps": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "@principles/host-runtime",
            "source": "npm.name",
            "verified": false
          },
          "urls": [
            {
              "url": "git+https://github.com/csuzngjh/principles.git",
              "kind": "repository",
              "source": "npm.repository.url"
            }
          ],
          "trust": "unsigned",
          "version": {
            "value": "0.5.0",
            "source": "npm.version",
            "verified": false
          },
          "identifier": {
            "value": "@principles/host-runtime",
            "source": "npm.name",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/process/create/spawn-variable::spawn-variable-program",
            "conf": 0.82,
            "crit": 3,
            "desc": "Node spawns a variable program path",
            "from": [
              {
                "file": 25
              }
            ]
          },
          {
            "id": "micro-behaviors/communications/http/response-code::source-http-429-status",
            "atk": "T1590",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Source checks for HTTP 429 rate-limit response",
            "from": [
              {
                "file": 10
              }
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/eval/compile::js-indirect-function-constructor",
            "conf": 0.9,
            "crit": 3,
            "desc": "Function constructor via prototype chain"
          },
          {
            "id": "supply-chain/missing-author",
            "conf": 0.5,
            "crit": 3,
            "desc": "Package has empty or missing author field"
          }
        ]
      },
      {
        "analysis_gaps": [
          "flow-graph-limited",
          "flow-query-incomplete"
        ],
        "ctx": [
          {
            "b": "x(W={Bzk]fB1wCOwPI^aC4BG\u003cx(mA{Abo8PA=k!XA==2cvpKygaBLwAA=k!qcQqS\u003ex(mA{Abo9bfjO{vwIn7DzGGPfwI56XcP.VHze:AlBrCgpazbUjz6gizz!9Auw]/sY3tBu@z/P}xAa9\u003c4azbUjz6gizz!9AuAa9\u003c4cP.VHze:AlBrC]MwPIu\u0026AaJc*y-[cGw].*basxA[A+PA3x(E)1B1.3wA+c[yA=k/lBs*%Ax(4r\u003eAWJ{Qx(d*cA=-BJaz+$8wkD/7z/ff3xgu/Wp\u00267n!x(k5wazbUjz6ghUfk$CNv@Dl%x\u003eG5kB0\u003c3RwQ5fjA=-BjB9RUkazb+lv@#B6zxJzhx(4rCv@#BdwL^zYzEWy1y?lB-z/6DnlVl\u003c:wQ5qBx(m)jBswtV3lQDlay/tcB95KGvrcm1zFa2kjS)%mi%)8MarUfjzGx[xAb]Vgv}/)#wPF$Sax@bk3lQDlay/tcB95KoCW\u003eMjwmYpFA+PA3x(E)1nN#(+jS)%mi%)8MarUfjzGx[xv@Dl%x\u003eFLKaz+$8wkD/7z/ff3xgu/Wp\u00267n!x(ktkzG6Z",
            "ln": 182,
            "col": 183,
            "line": 1
          },
          {
            "b": "c)r8szF0P}e]LIOaBsCrarR^HarR!Jvrcm1zFa2yAclknc[Wb8v@Dl%x\u003eG5fA=M8sB1RrrA40bCA=M8sdiH=qayFX$zF0P}uUKz3vqGT*iV]X{wPz*fAXqxzvrlv8",
            "ln": 657,
            "col": 8,
            "line": 11
          },
          {
            "b": "arSr\u003caw+%ceJ2stiV}\u003czwO#PjB7Gf1ePLAwz/P}xx(n0lA=\u003e(lx(v(iA+P5}B0bNrwGUI$A+e:5x)a5gBy/rdy*?A%aA}HgzvdHearSr\u003caARpdazbB#xcp]faA8cuc$Wp7xdX4lw/$(2wPhYkBzbkdBy/rdy*?A%ayYRrwI4RbwO#Q7v{%g5e^-Zzao",
            "ln": 1280,
            "col": 3,
            "line": 19
          },
          {
            "b": "B.9SwarR^Hy?mYhv@Dm5wN/*@z/dSzarR^Hv@DmaBrCTDvru6GvO*GPxDPCXAa9\u003c4e]2rszyxjpAclmPCw?IqB8UL$wKHlMefDq)AaysEaszkLvru6kwmu]ni%)8MarUxgasFyBB1R3Gx(!xqq*Am\u003cd06GsBy^\u003cHp*[DVdjDx^3lQDlarR^HaA}mmzFs03B1RAOB7=%HvpKy[C42Gbz/e])vQB1\u003eByeS#B-7.Kaz$+nBu%zUx(v(Lx(mTbx\u003c\u003e*(DsZDcz/PSmAa9l/",
            "ln": 1564,
            "col": 61,
            "line": 22
          },
          {
            "b": "jS[SNCox?7y?X05p!r@[Bzkt}v@$T\u003ez/Pzqv@Dm5wN/*@z/d0=3lQDlarR^HazbLjasH-rzGx[xvpKy[C42Gbz/cXow/$I(Bzk]bBzkVhB15kU3lQDlarR^HarR^Haz+RhayPqjx\u003ey^-Buo*LarR^HarR^HarR!GA^n^O3lQDlarR^HarR^HarR^HayL",
            "ln": 2378,
            "col": 29,
            "line": 36
          },
          {
            "b": "c$NBtz/NoHDKp(rarR^HarR^HarR^HarUfjzGx[xzdN^fvp%c]jS[rRA=k$vx(n0lvqYN^z!paXA=M8sau{#WA=M8se]tfvB75Y)auySzBAh8kxddtiA=k$Ei%)8MarR^",
            "ln": 2630,
            "col": 19,
            "line": 42
          },
          {
            "b": "wfs2Ttu%q$arR^Hy?mYhvpS[.BzkVhvqFqHzGGDmBrAZ?cNQ$.arR^Hy?mYhBAhIwv{%E\u003cwfs2Tw)]H%wJHkwarR!sz/M%Gv@DmaBrCKyx(mA{Abo8dz!pbhA+PA3x(E)1B15kU3lQDlarR^Hay/tcB95KmvqYQ\u0026wmoN\u003eauZ\u0026Ke?O+\u003czEWH9wmYp5aAhvnzEWy1y?l)l3lP",
            "ln": 4122,
            "col": 18,
            "line": 76
          },
          {
            "b": "w(rhVz/P}*zEE0\u003cwN({idlv\u003eVarR^HarR!vw/@HivqYQ\u0026wmoN\u003elVl\u003c:wQ5qHy?mG%Bz8^Xaw#imr7P!MuSF{?p/o\u003eWlRg9FmpewYl}oWBdiJ%AarR^HarR^HarR^HBAhIwv{%E\u003cwfs2TBAhIni%)8MarR^HarR^HarUclwNPvo3lQDlarR^HaBKOtarQ",
            "ln": 4459,
            "col": 177,
            "line": 81
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "loadPdConfigForPlugin"
            ],
            [
              "",
              "warnings.push"
            ],
            [
              "",
              "config.errors.map"
            ],
            [
              "",
              "computeFeatureFlagsFromConfig"
            ],
            [
              "",
              "warnings.push"
            ],
            [
              "",
              "computeFeatureFlagsFromConfig"
            ],
            [
              "",
              "path.join"
            ],
            [
              "",
              "fs.existsSync"
            ],
            [
              "",
              "warnings.push"
            ],
            [
              "",
              "SqliteConnection"
            ],
            [
              "",
              "filterPromptActivations"
            ],
            [
              "",
              "SqliteActivationStateStore.listPromptActivations"
            ],
            [
              "",
              "SqliteActivationStateStore"
            ],
            [
              "",
              "SqlitePIArtifactStore"
            ],
            [
              "",
              "artifactStore.getArtifactById"
            ],
            [
              "",
              "String"
            ],
            [
              "",
              "warnings.push"
            ],
            [
              "",
              "warnings.push"
            ],
            [
              "",
              "resolvePrincipleFromArtifact"
            ],
            [
              "",
              "warnings.push"
            ],
            [
              "",
              "input.excludePrincipleIds.has"
            ],
            [
              "",
              "excludedPrincipleIds.push"
            ],
            [
              "",
              "principles.push"
            ],
            [
              "",
              "String"
            ],
            [
              "",
              "warnings.push"
            ],
            [
              "",
              "connection.close"
            ],
            [
              "",
              "renderPrinciplesToDirectives"
            ],
            [
              "",
              "Set"
            ],
            [
              "",
              "candidate.map"
            ],
            [
              "",
              "included.push"
            ],
            [
              "",
              "warnings.push"
            ],
            [
              "",
              "Set"
            ],
            [
              "",
              "included.map"
            ],
            [
              "",
              "included.map"
            ],
            [
              "",
              "included.map"
            ],
            [
              "",
              "./pd-config.js"
            ],
            [
              "",
              "@principles/core/prompt-builder"
            ],
            [
              "",
              "@principles/core/runtime-v2"
            ],
            [
              "",
              "node:fs"
            ],
            [
              "",
              "node:path"
            ]
          ],
          "mbr": [
            "SqliteActivationStateStore.listPromptActivations",
            "activation.artifactId",
            "artifact.artifactId",
            "artifact.artifactKind",
            "artifact.contentJson",
            "artifact.validationStatus",
            "artifactStore.getArtifactById",
            "candidate.map",
            "candidateContext.length",
            "computeFeatureFlagsFromConfig.flags",
            "computeFeatureFlagsFromConfig.flags.principle_receipt_self_report",
            "computeFeatureFlagsFromConfig.flags.principle_receipt_self_report.enabled",
            "computeFeatureFlagsFromConfig.flags.prompt",
            "config.effective",
            "config.errors",
            "config.errors.map",
            "config.ok",
            "connection.close",
            "entry.principleId",
            "error.message",
            "error.nextAction",
            "error.reason",
            "excludedPrincipleIds.length",
            "excludedPrincipleIds.push",
            "fs.existsSync",
            "included.map",
            "included.push",
            "input.excludePrincipleIds",
            "input.excludePrincipleIds.has",
            "input.workspaceDir",
            "path.join",
            "principle.activationId",
            "principle.artifactId",
            "principle.principleId",
            "principles.length",
            "principles.push",
            "promptFlag.enabled",
            "resolved.ok",
            "resolved.principle",
            "resolved.principle.principleId",
            "resolved.warning",
            "warnings.push"
          ],
          "tgt": [
            "Set",
            "SqliteActivationStateStore",
            "SqliteActivationStateStore.listPromptActivations",
            "SqliteConnection",
            "SqlitePIArtifactStore",
            "String",
            "artifactStore.getArtifactById",
            "candidate.map",
            "computeFeatureFlagsFromConfig",
            "config.errors.map",
            "connection.close",
            "excludedPrincipleIds.push",
            "filterPromptActivations",
            "fs.existsSync",
            "included.map",
            "included.push",
            "input.excludePrincipleIds.has",
            "loadPdConfigForPlugin",
            "path.join",
            "principles.push",
            "renderPrinciplesToDirectives",
            "resolvePrincipleFromArtifact",
            "warnings.push"
          ],
          "funcs": [
            [
              "buildActivePrinciplePromptContext",
              441
            ],
            [
              "anonymous",
              715
            ],
            [
              "anonymous",
              4378
            ],
            [
              "anonymous",
              4882
            ],
            [
              "anonymous",
              5038
            ],
            [
              "anonymous",
              5112
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 3,
              "op.gt": 3,
              "op.land": 1,
              "op.lnot": 4,
              "max_depth": 17,
              "call_count": 35,
              "node_count": 1205,
              "member_count": 42,
              "op_density.eq": 0,
              "op_density.gt": 0,
              "op_density.land": 0,
              "op_density.lnot": 0,
              "max_array_length": 2,
              "max_member_depth": 4
            },
            "file": {
              "size": 5522,
              "entropy": 4.75
            },
            "text": {
              "lines": 106,
              "top_char": 116,
              "digit_ratio": 0,
              "space_count": 1135,
              "char_entropy": 4.75,
              "unique_chars": 74,
              "top_char_null": 0,
              "import_density": 4.72,
              "lines_over_200": 2,
              "string_density": 0.17,
              "top_char_ratio": 0.06,
              "avg_line_length": 51.09,
              "max_line_length": 260,
              "last_line_length": 1,
              "whitespace_ratio": 0.22,
              "identifier_density": 2.3,
              "line_length_stddev": 46.64,
              "max_whitespace_run": 1,
              "normalized_import_count": 0.49,
              "normalized_string_count": 1.75,
              "repeated_char_sequences": 34,
              "anonymous_function_ratio": 0.83,
              "normalized_function_count": 0.58,
              "imports_to_functions_ratio": 0.83,
              "strings_to_functions_ratio": 3,
              "suspicious_identifier_ratio": 0.01,
              "normalized_unique_identifiers": 12.19,
              "identifiers_to_functions_ratio": 13.67
            },
            "binds": {
              "count": 22
            },
            "binary": {
              "peak_region_bytes": 3474,
              "peak_region_entropy": 5.02
            },
            "source": {
              "function_count": 1
            },
            "imports": {
              "count": 5,
              "relative": 1,
              "stdlib_count": 2,
              "stdlib_ratio": 0.4,
              "relative_ratio": 0.2,
              "third_party_count": 3,
              "third_party_ratio": 0.6
            },
            "strings": {
              "bytes": 740,
              "count": 18,
              "avg_length": 41.11,
              "max_length": 119,
              "path_count": 1,
              "avg_entropy": 3.71,
              "empty_count": 3,
              "entropy_stddev": 0.79
            },
            "comments": {
              "chars": 134,
              "count": 2,
              "lines": 2,
              "to_code_ratio": 0.02
            },
            "functions": {
              "count": 1,
              "nested": 1,
              "density": 5.66,
              "anonymous": 5,
              "avg_params": 1,
              "code_ratio": 1,
              "max_params": 1,
              "one_liners": 5,
              "length_stddev": 37.27,
              "over_100_lines": 1,
              "avg_name_length": 33,
              "avg_length_lines": 17.67,
              "max_length_lines": 101,
              "min_length_lines": 1,
              "avg_nesting_depth": 0.83,
              "max_nesting_depth": 1,
              "high_entropy_names": 1,
              "avg_param_name_length": 7
            },
            "identifiers": {
              "count": 244,
              "unique": 82,
              "avg_length": 12.11,
              "max_length": 33,
              "min_length": 2,
              "avg_entropy": 2.86,
              "reuse_ratio": 0.34,
              "length_stddev": 7.36,
              "has_digit_ratio": 0.01,
              "high_entropy_count": 16,
              "high_entropy_ratio": 0.2,
              "all_lowercase_ratio": 0.48,
              "keyboard_pattern_names": 1
            }
          }
        },
        "id": 1,
        "mol": "Md₂(InPa)",
        "path": "@principles-host-runtime-0.5.0.tgz!!package/dist/active-principle-prompt.js",
        "pid": 0,
        "refs": [
          {
            "to": "./pd-config.js",
            "off": 417,
            "file": 22,
            "kind": "local"
          }
        ],
        "risk": 3,
        "sha": "ce3e965d0b55dab482b8d16e637619c0f597f6f9681f2ab38412905532d59bfc",
        "size": 5522,
        "traits": [
          {
            "id": "metadata/import/npm/fs::fs",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports node:fs",
            "spans": [
              [
                276,
                7
              ]
            ]
          },
          {
            "id": "metadata/package/files/runtime::javascript-dist-tree-artifact",
            "conf": 0.95,
            "crit": 3,
            "desc": "JavaScript/TypeScript file under dist"
          },
          {
            "id": "metadata/file/comment::source-at-most-two-comments",
            "conf": 0.88,
            "crit": 2,
            "desc": "Source has at most two comments"
          },
          {
            "id": "metadata/import/npm/path::path",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports node:path",
            "spans": [
              [
                304,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/npm/principles/core/prompt-builder::principles/core/prompt-builder",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports @principles/core/prompt-builder",
            "spans": [
              [
                343,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/npm/principles/core/runtime-v2::principles/core/runtime-v2",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports @principles/core/runtime-v2",
            "spans": [
              [
                230,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/npm/relative/1/pd-config/js::relative/1/pd-config/js",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports ./pd-config.js",
            "spans": [
              [
                416,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/source/shape::js-ts-source-basename",
            "conf": 0.95,
            "crit": 2,
            "desc": "JavaScript or TypeScript source filename"
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::data-transfer-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "Data-transfer verb token",
            "spans": [
              [
                689,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                1330,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                2427,
                0
              ]
            ]
          }
        ],
        "type": "javascript"
      },
      {
        "analysis_gaps": [
          "flow-graph-limited",
          "flow-query-incomplete"
        ],
        "ctx": [
          {
            "b": "fdFBUasXH2z/]@dwN(](B9RUkxMw3ez/{azBy/o1zdN*fC{3WyAbP=say/k4wO#Pj\u0026^^mol2HQUD2mFxB0aq1z!a02BrBK]y?mD{BAhTlasXHSf^4(vqB@C$ixnSkq=2[IaI$3iiw5aCgC*Kk3lQ/9asXHfzE\u003c}Yr8=W)aw+\u003cjr3lc\u003eAV/7lC5H(0BzkVhefFzuB-7-3wftubavfEPA=:V!zGG]qy\u00260W6efF?wC4CXpBzbYkCwg@ce^-ZJao",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "asHe+mmeimR.ZdUiV}{JwmY*8z/fxpefF?wC4CXpzdN^fvp%d)efG1QvpK7]ed9HHaA8oyA+frhz/fScayYn1x\u003equraxi2=azC.dwN/*\u003cvR/P#w[u6]xHV\u003eZyH}6@B0bQyx(\u003eFtwPI%maA7\u003e7y?W=#e^-ZJfa8onAbP=say/tcB95J)mmGNyoJkv}qCPXXlSvz(mnccAmo0e/uQWZTp!%UTr3jsDcUNQzAc15[fk$@CzEWy1y?mVtCv+l8x()]sAa9x\u003cB1R0mB$Woyx!KBCz!a02Bs?PCy?mD{BAhTWB8CA9B7/GlcP.VDCYmOwBrC7izGx[xp/p7Sryo.)r7fFHo*@2VsZLc1o*}\u0026Tr9@u#auZ\u0026bfFCgx3t1E3z/P}xv@DmaBrByTpEFhIr9@P[oHRVAr8M\u003eao*I(*lqH0LuQv){mn\u003er(at+=jhAImTB-7Yhx(v(iwmYvYB.(d?wPRA}mS6R%A+)oHx(mTbdiJ%AarR^Hfe1CWwPRA}az(mxBrC47azC.pz!\u0026]{ayO[\u003ex(n0lazkIevQT7LxLzJgx(n0awmV)cz/PS8A=S)Dvru78vr\u0026#oB-8qn",
            "ln": 226,
            "col": 29,
            "line": 6
          },
          {
            "b": "aARpqz*cm:az2.cA^n^tvqfL2A+cwgvq{ogBz\u0026pgay/s#A=U!mv@C)?3lQ/vCwhejayMykwPR%rvpB4:aztFbBrCWswGV59A=#ebwGVbpwPF#az/M$fvpK7\u003ew[AU5asY2KwQ5fjA=-BjB9RUkazb+lv@#B6zxJInAbP=sq/l2.B7/Glc$ddeB15kU3lQDlay/tcB95KozE^Z8x(n2njS[fNxlbXpzE^Z8x(n2nkr*nUmmGNyoJkv}qCPXXlSvz(mnccAmo0e/uQWZTp!%UTr67BfarR!pz/fSraARsmwP8Zko(?BuayPq6B1RMGzdNTdBwl*0kr*n!qCPXXlSvz(mnccAmo0e/uSoP\u003emnD].uRKDX3lQDlay/tcB95KpwPRA}mS6tiayPq6B1R6oByO#NzxIeday]4}vrDydmRcWKxHV(33lQDlay/tcB95Klz!abojS)u}pFJJ-BAh8kxk7$6c$ddeB1RJKvq{p3z/^A\u00263lQDlazCBgc{\u00265*w[u0nvTi6boL59OBz97iz!abAaszqNw\u0026Id!au*]AqCPXXlSvz(mnccAmo0e/uRJ**uQvKRsZKG#r7f.maBsCrarR^HarR^WfcBh4w[u7faz$+jiV@JTwGV5oA+P39",
            "ln": 858,
            "col": 30,
            "line": 18
          },
          {
            "b": "arR^Hv@DmaBrC7izGG]qy\u00260W6auZ\u0026+wP]m.vScpelVl\u003c:A=k=gwPxgFi%)8MarUfjzGx[xBzkP6AV^H/B7GC)x(dB1B-Y2WdiH=qay/tcBAhqoy?mStvpBd}BsnN?aARsmwP8Zko(?:B3lQDlaARTHaBsCrarR^HarR!pz/fSraAz4mAbPSnwGTbUvrVc]BrCgbByO#Nzyx7lwn(E3zGEALDKp(rarR^HarR^HarUJjBzbP6iV]!DpG7jued9HxarR^HarR^HarUuevpS}\u0026B2\u003eB\u003casyVqzGGDcBs?PWAaHyTasyPpAbok#vruj4zzb:Cz/c{BEjLZFarR^HarR^HarR!oz!abA3lQDlarR^HarR^HaAImfzEEuxay/tcBAhqoy?mStB7]o8vqEF4arR^HarR^HEjmk+arR^HarR^Hv@DmaBrC]MB97\u0026jB-OWNauZ\u0026/wPI*ezGxwJ3lQDlarR^HazCBgd06GsBAE",
            "ln": 1567,
            "col": 1,
            "line": 31
          },
          {
            "b": "aBtkHyDrOIvqH0@efFCvwmW!AcUNQzA9\u003eBQfEFy]A+fukD0$e#wJy@CvqH0@aBMrUarR^HarR^Hx\u003ewFoB97\u0026jB-OV*jV%]Agc3=\u003carR^HarR^HarR^HA+funA=91DaA83Razb4#B7D)Bv@C)?iV]!-BAzFeg+}6sefF$ABAhUnvR/QpaARTDwGVy.3lQDlarR^HazCBgd06GsBAITEk0p2CfFB{.arR^HarR^HarR^HA+funA=91DaA83Razb4#B7C",
            "ln": 2078,
            "col": 19,
            "line": 45
          },
          {
            "b": "x(n0lvqYN^z!paXA=M8sasnATwPz*fAXqlrzdK?MjV%]nl1j+MBvyj\u003cz/NiOaBsCrarR^HarR^HarR!EwPS6nzxKoGz!?xRw)]H%wH[%lz!9AuasznBzdNTdBseQZA+fukD0$e#wJy@QA=\u003e}oEld=UarR^HarR!P3lQDlarR^Hatkw\u003cw[u6]xDRtbygQ)%B0bWvBz8^@D2Ns-A=M8saA8cul@3V6w)]y\u0026B-I4ofcB+yzF\u003c2}BzkVhaAz49B-Rb8atj6AarR^HarR^WfcBj/qY]T(A=k#taMv{oazC.7x(!xgzFa9aB7!#\u003ey?j.$BrCWsx(+zaz/]@dvrcSovqYP#wPq\u003c3y\u00261wtA+fukD0$e#wIarjarR^HarR!EwPS6nzxKoGz!?xRw)]H%wH[%lz!9Auasz5rBA.UzyHpT[A=k$CefF$ABAhUnvR/QpaARTDwGVy.3lQDlaBKN",
            "ln": 2447,
            "col": 19,
            "line": 53
          },
          {
            "b": "femb[h!T\u003c0gIwA@iCo\u0026)azC.7wPhi#wmYU2aA7\u003cmv@c6[yANXlwP]:lasY2KwQ5fjA=-BoB-7Yhx(v(izE[6mqE%@\u003cC%(jWvr\u003eN*c#:irC4\u003e(qB4fOLy\u0026%=fs7#+\u0026x(kW.xEL6J3lQDlaAz4nB-IvxAb]Jkx(wcnmQZ1EB-I4{x([35zzB4Zau{#basXG(fD.?/hzum6atCM7fD-z0hzum6at$[@dJ*D1fFCM}Ef]",
            "ln": 3057,
            "col": 29,
            "line": 67
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "fetch.call"
            ],
            [
              "",
              "JSON.stringify"
            ],
            [
              "",
              "Buffer.byteLength"
            ],
            [
              "",
              "AbortController"
            ],
            [
              "",
              "setTimeout"
            ],
            [
              "",
              "controller.abort"
            ],
            [
              "",
              "fetchFn"
            ],
            [
              "",
              "clearTimeout"
            ]
          ],
          "mbr": [
            "Buffer.byteLength",
            "JSON.stringify",
            "args.endpoint",
            "args.fetchFn",
            "args.snapshot",
            "args.timeoutMs",
            "controller.abort",
            "controller.signal",
            "error.name",
            "fetch.call"
          ],
          "tgt": [
            "AbortController",
            "Buffer.byteLength",
            "JSON.stringify",
            "clearTimeout",
            "controller.abort",
            "fetch.call",
            "fetchFn",
            "setTimeout"
          ],
          "funcs": [
            [
              "defaultFetchFn",
              577
            ],
            [
              "exportSnapshot",
              969
            ],
            [
              "anonymous",
              1642
            ],
            [
              "nextRetryDelayMs",
              3112
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 3,
              "op.ge": 2,
              "op.gt": 1,
              "op.lt": 1,
              "op.mul": 5,
              "op.land": 2,
              "max_depth": 16,
              "call_count": 8,
              "node_count": 568,
              "op.coalesce": 3,
              "member_count": 10,
              "op_density.eq": 0.01,
              "op_density.ge": 0,
              "op_density.gt": 0,
              "op_density.lt": 0,
              "op_density.mul": 0.01,
              "op_density.land": 0,
              "max_member_depth": 2,
              "self_compare_count": 1,
              "op_density.coalesce": 0.01
            },
            "file": {
              "size": 3243,
              "entropy": 4.97
            },
            "text": {
              "lines": 71,
              "top_char": 101,
              "digit_ratio": 0.04,
              "space_count": 680,
              "char_entropy": 4.97,
              "unique_chars": 83,
              "top_char_null": 0,
              "string_density": 0.18,
              "top_char_ratio": 0.07,
              "avg_line_length": 44.68,
              "max_line_length": 120,
              "non_ascii_ratio": 0,
              "last_line_length": 1,
              "whitespace_ratio": 0.23,
              "identifier_density": 1.25,
              "line_length_stddev": 30.06,
              "max_whitespace_run": 1,
              "normalized_string_count": 1.54,
              "repeated_char_sequences": 9,
              "anonymous_function_ratio": 0.25,
              "suspicious_comment_ratio": 0.22,
              "normalized_function_count": 0.47,
              "strings_to_functions_ratio": 3.25,
              "suspicious_identifier_ratio": 0.03,
              "normalized_unique_identifiers": 6.34,
              "identifiers_to_functions_ratio": 9.75
            },
            "binds": {
              "count": 10
            },
            "binary": {
              "peak_region_bytes": 2219,
              "peak_region_entropy": 5.2
            },
            "source": {
              "function_count": 3
            },
            "strings": {
              "bytes": 195,
              "count": 13,
              "url_count": 1,
              "avg_length": 15,
              "max_length": 67,
              "avg_entropy": 2.82,
              "entropy_stddev": 0.61
            },
            "comments": {
              "chars": 1139,
              "count": 9,
              "lines": 23,
              "high_entropy": 2,
              "to_code_ratio": 0.48
            },
            "functions": {
              "count": 3,
              "nested": 1,
              "density": 5.63,
              "anonymous": 1,
              "avg_params": 1,
              "code_ratio": 0.73,
              "max_params": 2,
              "one_liners": 1,
              "length_stddev": 17.38,
              "avg_name_length": 14.67,
              "no_params_count": 1,
              "avg_length_lines": 13,
              "max_length_lines": 43,
              "min_length_lines": 1,
              "avg_nesting_depth": 0.25,
              "max_nesting_depth": 1,
              "avg_param_name_length": 8.75
            },
            "identifiers": {
              "count": 89,
              "unique": 39,
              "avg_length": 9.64,
              "max_length": 34,
              "min_length": 2,
              "avg_entropy": 2.56,
              "reuse_ratio": 0.44,
              "length_stddev": 7.61,
              "has_digit_ratio": 0.03,
              "base64_like_names": 1,
              "high_entropy_count": 4,
              "high_entropy_ratio": 0.1,
              "all_lowercase_ratio": 0.56,
              "all_uppercase_ratio": 0.1
            }
          }
        },
        "id": 10,
        "mol": "H₂(Cm₉Ti)Md₂(Pa)",
        "path": "@principles-host-runtime-0.5.0.tgz!!package/dist/product-telemetry/exporter.js",
        "pid": 0,
        "risk": 5,
        "sha": "947eb536b42b2792653af214432b9e9d1215c74f53a0ac84458f4ca11da63a5c",
        "size": 3243,
        "traits": [
          {
            "id": "metadata/file/profile/markup::reference-guide-target-placeholder",
            "conf": 0.97,
            "crit": 3,
            "desc": "Example uses a placeholder target or callback",
            "spans": [
              [
                365,
                34
              ]
            ]
          },
          {
            "id": "metadata/package/files/runtime::javascript-dist-tree-artifact",
            "conf": 0.95,
            "crit": 3,
            "desc": "JavaScript/TypeScript file under dist"
          },
          {
            "id": "micro-behaviors/communications/http/header/content-type::application-json",
            "conf": 0.65,
            "crit": 3,
            "desc": "References the application/json media type",
            "spans": [
              [
                1809,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/header/content-type::json-header",
            "conf": 0.9,
            "crit": 3,
            "desc": "References HTTP Content-Type application/json",
            "spans": [
              [
                1793,
                32
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/post::post",
            "mbc": "C0002",
            "conf": 0.7,
            "crit": 3,
            "desc": "HTTP POST method string literal",
            "spans": [
              [
                1761,
                6
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/post::request-options-post-method",
            "mbc": "C0002",
            "conf": 0.86,
            "crit": 3,
            "desc": "Script request option specifies POST",
            "spans": [
              [
                1753,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/json::http-post-json",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.75,
            "crit": 3,
            "desc": "HTTP POST request with JSON content",
            "uses": [
              2,
              9
            ],
            "spans": [
              [
                1753,
                6
              ],
              [
                1761,
                6
              ],
              [
                1809,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/result::http-post-method",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.8,
            "crit": 3,
            "desc": "HTTP POST method field",
            "spans": [
              [
                1753,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/verb::mutating-method-option",
            "conf": 0.85,
            "crit": 3,
            "desc": "Method option selects POST, PUT or PATCH",
            "spans": [
              [
                1753,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/request/verb::post-method-text",
            "atk": "T1071.001",
            "mbc": "C0002",
            "conf": 0.94,
            "crit": 3,
            "desc": "Configures an HTTP POST request",
            "spans": [
              [
                1753,
                6
              ],
              [
                1761,
                6
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/response::source-http-429-status",
            "mbc": "C0002",
            "conf": 0.9,
            "crit": 3,
            "desc": "Source checks for HTTP 429 rate-limit response",
            "spans": [
              [
                2142,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/services/cloudflare::cloudflare-pages-host",
            "conf": 0.8,
            "crit": 3,
            "desc": "Cloudflare Pages hosting domain",
            "spans": [
              [
                429,
                10
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/domain::js-remote-host-url",
            "conf": 0.75,
            "crit": 3,
            "desc": "Contains a hardcoded remote HTTP(S) URL",
            "spans": [
              [
                403,
                36
              ]
            ]
          },
          {
            "id": "micro-behaviors/communications/http/url/scheme::http-url-literal",
            "conf": 0.75,
            "crit": 3,
            "desc": "HTTP URL string literal",
            "spans": [
              [
                403,
                67
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/json::json-stringify-call",
            "conf": 0.5,
            "crit": 3,
            "desc": "Calls JSON.stringify()",
            "spans": [
              [
                1220,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/time/schedule/delay::settimeout-callback-computed-delay",
            "conf": 0.9,
            "crit": 3,
            "desc": "setTimeout defers callback with a computed delay",
            "spans": [
              [
                1631,
                47
              ],
              [
                1668,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/time/schedule/timeout::setTimeout",
            "conf": 0.5,
            "crit": 3,
            "desc": "Schedules a JavaScript callback with setTimeout",
            "spans": [
              [
                1631,
                10
              ]
            ]
          },
          {
            "id": "metadata/file/comment::source-comment-bytes-over-300",
            "conf": 0.92,
            "crit": 2,
            "desc": "Source has over 300 comment bytes"
          },
          {
            "id": "metadata/lang/source/shape::js-ts-source-basename",
            "conf": 0.95,
            "crit": 2,
            "desc": "JavaScript or TypeScript source filename"
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::data-transfer-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "Data-transfer verb token",
            "spans": [
              [
                133,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                299,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                2715,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                945,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                906,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                2701,
                0
              ]
            ]
          }
        ],
        "type": "javascript"
      },
      {
        "analysis_gaps": [
          "flow-graph-limited",
          "flow-call-unavailable",
          "flow-query-incomplete"
        ],
        "ctx": [
          {
            "b": "x(d*cA=-BJaAIHgCwZu8zET/qazbUjz6gizz!9Auv}YN)wm6p@z!0v1B0\u003c3RwQ5fjA=-Blz/fSraw#ikmpewEr6%h-r7P!MpGpw3o\u0026Ae$atNpYfFCM}wQ5fjA=-Blz/fSraw#ikmpewEr6%h-pGpv\u003crA9r(sYv**auZ\u00269g:1m\u003cf!+vti%]LzAbP=say/tcB95K5rzk?*q+{y\u003elQ+uGsYv**auZ\u00269g:1m\u003cf!+vti%]LzAbP=say/tcB95K5rzk?*lp1Nrnmbp\u003erz(gMuQv){mn\u003er(atL/jasXG*fFUED3t1E3z/P}xv@DmaBrBpzsyjuYr7QaVuS6($mn\u003er(atU=m3s!0(B95J[rZxzVk#ZAKpg3*}pEvMHq^SE0rz(gMauZ\u0026CBAh8kxd!jkCoyo2v@DmaBrC:zauZ\u0026/wPq\u003cbA+cTDzF%5%i^bu/dlv(Dz/fSrazbWqjS[=RADL#owHF{zz!9Auw]/sGi%]OxzEW^5z/cXnz/PY6y?Xibd06rHA:@VFz!9AdaBsCray/tcB95KGx([3bB-Z5%AbP=sB09Q*B8Mhwv}w2CwmV8\u003carR^VA+fiavpJ\u003c%fj/xEz/P@8B1p:szGx]8B1q9sBywA}dM]BoasyVqzGx[xzdN/$au.833lQDlatdXCAbn@)wHGiyCYmOwBx\u0026(qw{503BzkVhtYRAbC42ifvru6=B1gAyfdXj[w{503BzkVhaz2.8y\u0026%fdwHF]Pi%)8MA+funA=91zx([3bB-Z5%AbP=sB08$QcTpL4y\u0026r=\u003ey/C7ZB1Q*bAaz\u003c?y?lsVwozZ1auZ\u0026]az\u003eXivlbJMD2Ntkw/$@4ByupPjV%]iB-7-3w[=c]wfJcXaA.NjwObT]wN(]Aaz\u003eXivjSKjC42ifvru6waAR)FwP8f6wP?G#BZYx6au.\u003eJar\u003e@CwmYv!zE)u5au{#\u003ezE^r\u003cx(mG)auySRC42ifvru66Ele/r3vJm[B-7Yhx(v(iAb]Jkx\u003eqGpwPz*fAW-bTaAz4nB-Ivxq/)4]zF7weA=M8sdk2WTx\u003e7Z5fF1t7fFB}qaBKPsA^n^O3lQE3z/fSraA}:AyH}JOvrt{2jS)u}pFJJYvrcB2c$WJMA+eV\u0026mRMWIq*Am\u003cc[)g{cV%Jyi43d7i%)8Mv@DmaBrCQnB9hqvB09Q*tu%q$arUomAV==uz/fSraAzQvwGU]6aA}:AyH}JOvrt{gA=(hfB15kU3lQDlaARTHaBsCrarR^Hay/tcB95Kmz/fVdCYU5\u003eaA?POv@=c?By^*TzGGDmBso{]ygQ)%e[n{kvru6ezGP=idjEs=arR^HarUMkCoz6Ce(Mn2x(FexzF%MjvqGU7wHIOwy?kkuz/{8gwHPeMDMV{my?mG)zdL:JA=(hfe[O*lwO${[wGVyIe](8LnP3[lzGGDmBspTqzGGDmBsXLYaARsmwP8ZkiV{dhfFBR$dlv\u003eVarR^HazCBgc)r8szGGDmBs{{cAaz\u003c?y?lsVwozZ1aBFLVBA}?pz!pb4z/fVdCYUMBuVoKNB.\u003eR-z!a0bwIdLqvqH6{By=NrjV%]nw{503BzkVhcN*fWxMw3naz$+mavQr\u003ez/NlNv@Dj6x(4u\u003eaz(4cB.\u003eRixKL%8zF{UeC42ifvru66w{503BzkVhcN?a:arR^HarSr\u003cax8Y^wmxF4ayYnizE^f@C@^6YvqYP#Bzbkdv@DmbwQ5qtpFKO^ayMyiA+Px8Bzk]fawbNdp9sR1A+PA7ayPd#3lQDlarR^WfcB.Dx(4r5Bzbkdv{%g\u0026azC.jB-X-Raztt5AaK6haA}KwxDRzgwGUG3zGGDmBshbLz*c7wx(n3kx(n0av@\u003cmfarR^HarSr\u003caw=G/B7]J8aztXmBs?JAvqG^6z^)D)v@#=md0fclaAg+fB7F(8x(m)jBsXLyaztXmBs*%Ax(4(lxK#10wPz\u00260arR^HarSr\u003caA7.7wN/*haA}:Dy?aV8wPP5nB.\u003eRiB8Mhwv}u^bvqGZ4e[n*qB98CBv@#Tfe[n*qB98CBv@#TfayX+?yAN.q3lQDlarR^WfcCvIwGUV8B95KBwNPy(cVZz1B-7Yhx(v(iv@DmaBAhIlBz(gxvqYP#A+eV?xDRzgwGUF@x(4r5Ab](bwPI]1arR^HarSr\u003cayPd#aAz4kB.L(caMv{oayMy8B.\u003e\u003epB75@%vScGlwPIu\u0026AaHeox([2hB-RbmaAhvnC4\u003e=7xjVcp3lQDlarR!pz/fVdCYUMBuVoKEzG6-un][]*auZ\u0026tq+{dvB98CpzF9V}C{)(PA+/lbl$7gCe[]ixB-Y5]3lQDlarR!AwP]nuz7X:%A+PGmc\u003c?7tarR^HarS4wz/fSraywF{wj6^wy!nI-B-X-?awbNdpa*G]A=U!uxkzG}vqF[Rx(+[luVoKEzG6-un][]*dlw[1d*^ywarR^HarS4xwO+}1wGUS4z^)c\u003era]#!e)?$8wjZVTB-Zk%z/dS:as^^warR^HarR^Ov@DmaBrB{$AazsAy?#TNy\u0026A%aB09Q*pHX6Iv@%tnA+e*dwHI)Mas^^warR^HarR^OazC){x(!5^vrufzasFVYjW6#}uVoKyvqG:KzG6-ue{zkOyJBD6v}vobB5DZ[yFXCYxE\u003eINd*^ywarR^HarS3OxjVf:z/oC!vqPNpasFVYjW6#}uVoKyvqG:KzG6-ue[5mix(v(wBz(8lpgn0JeghL\u003c3lQDlarR^HaswpAwPQvZBzkP2By!#Rx(mGHxKL^\u003ewPG)Pc[co4j%jitAazsAy?#WXAclmPwmY^}C4ChpwPI%czddJ$wk3YPwKyctzF9K4eghL\u003c3lQDlarR^HaswpAwPQmEB7!D=B89/Vc[co4j%jitAazsAy?#WXAclmPwmY^}C4ChpvQTs\u003eqFyh/eghL\u003c3lQDlarR^HaswpAwPQvWrb2]:iV]?1au.[huTE+.lT:!EnP5G\u0026Bs}cFz!%Mrx(v(wwPgQ.wPxdvd*^ywarR^HarS4Wdlw[daBtkyx(4u#vqPNpaAzQvwIdOey?mG)zdK?uasw^Jz/o-sBAg/ecM)*AarR^HarS9=A=(m\u003ezBntWBy/Ysc$vgkBy/YsefGoZBzkP6z/{d.atCM7fD+=)i%)8MarR^Hv@DmaBrCQnB9hqvauZ\u0026+wP]nuz7X:%A+PGmc)@weAaz\u003c?y?lsVwozZ1e[Gimy\u0026%fdwHH[)AazsAy?#WXAclmNaywF{wj6^wy!ebNAaK6hdjlU?DMV{my?mG)zdL:JA=(hfe[O*lwO${[wGSGCcOw[qy?$EwEjkHCarR^HarR^VA=(m\u003ezBntWBy/Ysc$vgkBy/YsefGoZBzkP6z/{d.atCM7fD+=)i%)8MarR^HA+frmy\u0026\u003c.JAclknd0)7PyDrOWA=\u003e}AaAz4mB.(dxEjmk+arR^HEir3dByO#bc$NBtz/NoHDKp(rarR^HA+frmy\u0026\u003c.JAclknd0)7PyDrOIvqH0@efFIAA=k$VaAhvjC4\u003eJic$NBtz/NoHEjmk+arR^HEf}8tEf}8tAb](bwPI]BB97@hB-YlWA+PSbc}WAlpa*QfA+PA7x\u003ezSsDMWlxiV@J+B.99DA+frmy\u0026\u003c.vEjlQb3vK4bvru0)asH/wA=k$EaBsCraAhvtv}x.5e]#bBz/{dOCxdztwHHeHpFJJ-BAh8kxk7$6d0)7PyDrOIvqH0@efFIAA=k$VaAhvjC4\u003eJic$NBtz/NoHEjlQb3lQEgA=kD0B8@%BCXIm!z!9A4jS(Ev3vJm?i%]OxzEW^5z/cXiB5DNVz/PwpC42ifwHO:G3lQDlaAz4nB-IvxBA}?pz!pbnvqH6$au.\u003eJasz8pygQ)%cM\u003c-.aA?gfB.8WsjV%{9B.\u003e\u003epcmf\u0026Ul2}0OC}J/Ll2}0OC{)\u0026Ay\u0026%qri%{xyw{503BzkVhaAg+fB7EWDByO#ZwPJ0gBAn\u003cNvqH6$efFIGAaJK3wN[FCzFa68diJ%AarR^Hx\u003ewFoa.=0}wN/U0wghRfy\u0026%qraBFLVC42ifwId[par-)haARTDwGVwFar:3\u003eA::kCx(=NXA::kwC42ifwIe1mB9hqvB15kVD)0Pvy\u0026%qwA+frmy\u0026\u003c.Jy?mG%Bz8^ujV%{0CYmk7By!#RwO#d5xEKoharR^HarR!EwPS6nzxJ?ty?#fuarR^Hv@DmaBrCQnB9hqvB09Q*tu%q$arR^Hw]zYjc$vgkB95KmvqYQ\u0026wmoN\u003eaA7\u003cmC42ifwIe1mB9hqvB15kU3lQDlarR^HazCBgc)rqCqE%uRA+3OdvqYQ\u0026wmoN\u003ediK1=aAR)FwP8f6v{%m=x\u003egT]wId[par-)hasySpz!@#[zyl\u003euarR^HarR^HarR^HA+funA=91qB.\u003e\u003eQ3lQDlarR^HazCBgc$uX6wnbN.By^7yyBHxM3lQDlarR^Hao",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "y=.$DarR^HarR^HarR!EwPJ0gBAo6NB-RjADMWlxiV@J+B.99DA+frmy\u0026?YXv{%m=x\u003egT]wIe1mB9hqvaBLX23lQDlarR^HaBKOtarR^HarR!ry\u0026:egDKp(rarR^HarR^HarUxgasItSAaJ%1ay!?$wnbN.By^7oA=M8sar-)haszkLA+PA7cN/xBarR^HarR^HarR^H",
            "ln": 3536,
            "col": 27,
            "line": 68
          },
          {
            "b": "at\u003e\u0026bdiK3/i%)8MarR^HarV7tarR^HEf}8tarUYoBAIRwaAz4mB.(evi%{xywQ5fjA=-BoB-7Yhx(v(iv@=c?By!i=wmXUYy?lgPAbo95wO#P#BzkVhqGV(0x(dAfdiJ%AarR^HA+funA=91D3lQDlarR^Haz2.8y\u0026%fdwKo*Ev}WohB.\u003eSgefFUAAclmNaARsmwP8Zko(?:aDKp(rarR^HarR^HarUfjzGx[xv}YN)wfs2TB8UMizC$*#v\u003c(qpz!0v1B1R3GwN!LBBz9iFtph0OzddVvz!@@oB8UL$wI4$qDsYk}gaaQ}cOn)SefEwZk$\u003eoAr7P\u003eXuR\u003cS@lQ:{LuSf:2qBr(UefGoDarR^HarR^HarR^HarR^Hx(m)jBugKpq+{dvB98CpzF9V}C{[1ZA=(hfB1wCFzG6-uaBLW\u0026az2C2z!5",
            "ln": 3781,
            "col": 70,
            "line": 74
          },
          {
            "b": "o*}\u0026Tr9@u#djD!ParR^HarR^HarR^HarR^HzddVQB.kk%AYLsvrzk?*lp1Nrnmbd)r8uN]uQv){mn\u003e-WCwg@9z*cm[x\u003eg^oaARTDwH[fharR^HarR^HarR!Pdlv\u003eVarR^HarR^HarR!vw/@HixLzo[e[G6zz/NoHDKp(rarR^HarR^HarR^HarUfjzGx[xv@C)?auZ\u0026YB5DNVz/Pwpv}YN)wg?ClA=k$EasnATBA}?pz!pb4xLzo[e[G6zz/NEuz!9A4jV$}JcV:xIx(mMhau{#UxLzo[e[G6zz/NEuz!9A4iV]^$i%)8MarR^HarR^HarR^HarUxgasH-rwmV(DjV%]nmn#\u0026Mmmo{Kr3%a4arR^HarR^HarR^HarR^",
            "ln": 4194,
            "col": 130,
            "line": 83
          },
          {
            "b": "xKt\u003c}zdNTdBseQZwmY\u003c\u003ex(2*Mv}YN)wg?ClA=k$JzdN^fvp%d7B8kM2wHGk-at\u003e\u0026bdiK423lQDlarR^HarR^HarR^HazCBgc$vgawGTc0jS(avpeshRmPgV-3lQDlarR^",
            "ln": 4540,
            "col": 59,
            "line": 89
          },
          {
            "b": "yDrOIvqH0@efF$Avrlv8iV]!\u003cB.\u003eR@vQTv*xKtvWx(4u\u003ecOcxJwPRu{y=SXDv}YN)wft]7BAIRwwN(]$zGYD8x\u003eetUq+{dHas8qzxLzo[e]#bBwPz/zBAh8jc[c=\u0026y?Wx\u003cc[)g{gCyHiEpagCi%)8MarR^HarR^HarV7tarR^HarR^HarR^Hv@DmaBrCQnB9hqvB09Q*Aa9^dwKo*Ev}X+KB9hqvB0#0oA=U/5efF$Qy?mVuy?mG%Bz99+3lQDlarR^HarR^HazCBgc)rRxB9hqvB15kU3lQDlarR^HarR^HarR^Hay/tcB95KnwPRu{y-\u003e\u003e-x(^f-v@Dx#c#-QnA@",
            "ln": 5271,
            "col": 27,
            "line": 102
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "String.raw"
            ],
            [
              "",
              "Array.isArray"
            ],
            [
              "",
              "isRecord"
            ],
            [
              "",
              "Array.isArray"
            ],
            [
              "",
              "isRecord"
            ],
            [
              "",
              "Object.hasOwn"
            ],
            [
              "",
              "results.push"
            ],
            [
              "",
              "results.push"
            ],
            [
              "",
              "candidate.error.slice"
            ],
            [
              "",
              "spawnSync"
            ],
            [
              "",
              "JSON.stringify"
            ],
            [
              "",
              "Math.max"
            ],
            [
              "",
              "Math.min"
            ],
            [
              "",
              "isRecord"
            ],
            [
              "",
              "child.error.message.slice"
            ],
            [
              "",
              "child.error.message.slice"
            ],
            [
              "",
              "child.error.message.slice"
            ],
            [
              "",
              "Buffer.byteLength"
            ],
            [
              "",
              "JSON.parse"
            ],
            [
              "",
              "child.stderr.trim.slice"
            ],
            [
              "",
              "child.stderr.trim"
            ],
            [
              "",
              "parseBatchResults"
            ],
            [
              "",
              "isRecord"
            ],
            [
              "",
              "parsed.error.slice"
            ],
            [
              "",
              "node:child_process"
            ]
          ],
          "mbr": [
            "Array.isArray",
            "Buffer.byteLength",
            "JSON.parse",
            "JSON.stringify",
            "Math.max",
            "Math.min",
            "Object.hasOwn",
            "String.raw",
            "candidate.error",
            "candidate.error.slice",
            "candidate.ok",
            "candidate.result",
            "child.error",
            "child.error.code",
            "child.error.message",
            "child.error.message.slice",
            "child.stderr",
            "child.stderr.trim",
            "child.stderr.trim.slice",
            "child.stdout",
            "parsed.error",
            "parsed.error.slice",
            "process.execPath",
            "results.push",
            "rules.length",
            "value.ok",
            "value.results",
            "value.results.length"
          ],
          "tgt": [
            "Array.isArray",
            "Buffer.byteLength",
            "JSON.parse",
            "JSON.stringify",
            "Math.max",
            "Math.min",
            "Object.hasOwn",
            "String.raw",
            "candidate.error.slice",
            "child.error.message.slice",
            "child.stderr.trim",
            "child.stderr.trim.slice",
            "isRecord",
            "parseBatchResults",
            "parsed.error.slice",
            "results.push",
            "spawnSync"
          ],
          "funcs": [
            [
              "isRecord",
              2958
            ],
            [
              "parseBatchResults",
              3068
            ],
            [
              "createNodeRuleImplementationRuntime",
              3836
            ],
            [
              "evaluateBatch",
              3906
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 5,
              "op.ge": 1,
              "op.ne": 5,
              "op.lor": 4,
              "op.mul": 3,
              "op.land": 4,
              "op.lnot": 6,
              "max_depth": 21,
              "call_count": 24,
              "node_count": 955,
              "member_count": 28,
              "op_density.eq": 0.01,
              "op_density.ge": 0,
              "op_density.ne": 0.01,
              "op_density.lor": 0,
              "op_density.mul": 0,
              "op_density.land": 0,
              "op_density.lnot": 0.01,
              "max_array_length": 3,
              "max_member_depth": 4
            },
            "file": {
              "size": 5796,
              "entropy": 4.91
            },
            "text": {
              "lines": 112,
              "top_char": 101,
              "digit_ratio": 0.02,
              "space_count": 1272,
              "char_entropy": 4.91,
              "unique_chars": 86,
              "top_char_null": 0,
              "import_density": 0.89,
              "string_density": 0.21,
              "top_char_ratio": 0.07,
              "avg_line_length": 50.75,
              "max_line_length": 182,
              "non_ascii_ratio": 0,
              "last_line_length": 1,
              "whitespace_ratio": 0.24,
              "identifier_density": 1.44,
              "line_length_stddev": 38.76,
              "max_whitespace_run": 1,
              "normalized_import_count": 0.09,
              "normalized_string_count": 2.27,
              "repeated_char_sequences": 35,
              "suspicious_string_ratio": 0.08,
              "normalized_function_count": 0.38,
              "imports_to_functions_ratio": 0.25,
              "strings_to_functions_ratio": 6,
              "normalized_unique_identifiers": 7.79,
              "identifiers_to_functions_ratio": 13.25
            },
            "binds": {
              "count": 12
            },
            "binary": {
              "peak_region_bytes": 2048,
              "peak_region_entropy": 5.32
            },
            "source": {
              "function_count": 4
            },
            "imports": {
              "count": 1,
              "stdlib_count": 1,
              "stdlib_ratio": 1
            },
            "strings": {
              "sql": 1,
              "bytes": 2997,
              "count": 24,
              "very_long": 1,
              "avg_length": 124.88,
              "max_length": 2635,
              "avg_entropy": 3.13,
              "empty_count": 1,
              "entropy_stddev": 0.87,
              "embedded_code_candidates": 1
            },
            "functions": {
              "count": 4,
              "nested": 1,
              "density": 3.57,
              "avg_params": 1.5,
              "code_ratio": 0.78,
              "max_params": 3,
              "length_stddev": 11.97,
              "avg_name_length": 18.25,
              "no_params_count": 1,
              "avg_length_lines": 21.75,
              "max_length_lines": 34,
              "min_length_lines": 3,
              "avg_nesting_depth": 0.25,
              "max_nesting_depth": 1,
              "high_entropy_names": 1,
              "avg_param_name_length": 7.17
            },
            "identifiers": {
              "count": 161,
              "unique": 53,
              "avg_length": 8.79,
              "max_length": 35,
              "min_length": 2,
              "avg_entropy": 2.57,
              "reuse_ratio": 0.33,
              "length_stddev": 6.47,
              "high_entropy_count": 6,
              "high_entropy_ratio": 0.11,
              "all_lowercase_ratio": 0.53,
              "all_uppercase_ratio": 0.13
            }
          }
        },
        "id": 25,
        "mol": "H₄(DbFPo₅)Md₂(In₄Pa)",
        "path": "@principles-host-runtime-0.5.0.tgz!!package/dist/rule-implementation-runtime.js",
        "pid": 0,
        "risk": 11,
        "sha": "8c26b13ff78837590df88d1a0455e572ceb3ec0bd8f745316ddc1498e33c8709",
        "size": 5796,
        "traits": [
          {
            "id": "metadata/import/builtin::child-process-import-runtime",
            "conf": 0.85,
            "crit": 3,
            "desc": "Imports Node child_process through ESM",
            "spans": [
              [
                0,
                46
              ]
            ]
          },
          {
            "id": "metadata/import/builtin::child-process-module-reference",
            "conf": 0.9,
            "crit": 3,
            "desc": "Node child_process module name reference",
            "spans": [
              [
                32,
                13
              ]
            ]
          },
          {
            "id": "metadata/import/builtin::node-spawnsync-import",
            "conf": 0.95,
            "crit": 3,
            "desc": "Imports Node.js spawnSync process execution API",
            "spans": [
              [
                3973,
                9
              ]
            ]
          },
          {
            "id": "metadata/import/npm/child_process::child_process",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports node:child_process",
            "spans": [
              [
                26,
                18
              ]
            ]
          },
          {
            "id": "metadata/import/npm/fs::fs",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports node:fs",
            "spans": [
              [
                370,
                7
              ]
            ]
          },
          {
            "id": "metadata/import/npm/vm::vm",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports node:vm",
            "spans": [
              [
                339,
                7
              ]
            ]
          },
          {
            "id": "metadata/package/files/runtime::javascript-dist-tree-artifact",
            "conf": 0.95,
            "crit": 3,
            "desc": "JavaScript/TypeScript file under dist"
          },
          {
            "id": "micro-behaviors/data/control-flow/module-exec::module-level-imported-method-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Top-level method call on require result",
            "spans": [
              [
                869,
                15
              ],
              [
                993,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/json::json-stringify-call",
            "conf": 0.5,
            "crit": 3,
            "desc": "Calls JSON.stringify()",
            "spans": [
              [
                1779,
                14
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file/full::read-node",
            "conf": 0.9,
            "crit": 3,
            "desc": "Reads files with Node.js",
            "spans": [
              [
                869,
                15
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file/full::readfilesync-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Calls readFileSync",
            "spans": [
              [
                837,
                48
              ]
            ]
          },
          {
            "id": "micro-behaviors/metaprogramming/generation::js-indirect-function-constructor",
            "conf": 0.9,
            "crit": 3,
            "desc": "Function constructor via prototype chain",
            "spans": [
              [
                1572,
                24
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/exec::node-spawn-current-executable",
            "mbc": "C0017",
            "conf": 0.9,
            "crit": 3,
            "desc": "Launches the current runtime executable",
            "spans": [
              [
                3973,
                9
              ],
              [
                3983,
                7
              ],
              [
                3991,
                8
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/exec::node-spawnsync-call",
            "conf": 0.98,
            "crit": 3,
            "desc": "Calls spawnSync() to run a child process",
            "spans": [
              [
                3973,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/exec::spawn-variable-program",
            "conf": 0.82,
            "crit": 3,
            "desc": "Node spawn uses a computed program path",
            "spans": [
              [
                3973,
                9
              ],
              [
                3983,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/create/spawn::windowshide-option",
            "conf": 0.85,
            "crit": 3,
            "desc": "Node.js windowsHide process-launch option",
            "spans": [
              [
                4258,
                17
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/exit/terminate::process-exit",
            "conf": 0.3,
            "crit": 3,
            "desc": "Node process.exit string reference",
            "spans": [
              [
                319,
                128
              ],
              [
                611,
                128
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/fd/stdio::node-read-stdin-fd",
            "conf": 0.92,
            "crit": 3,
            "desc": "Reads Node stdin through file descriptor 0",
            "spans": [
              [
                869,
                15
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/vm::vm-Script",
            "conf": 0.9,
            "crit": 3,
            "desc": "Node vm.Script constructor call",
            "spans": [
              [
                1038,
                9
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/vm::vm-createContext",
            "conf": 0.85,
            "crit": 3,
            "desc": "node:vm createContext sandbox creation",
            "uses": [
              20,
              21
            ],
            "spans": [
              [
                331,
                18
              ],
              [
                993,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/vm::vm-createContext-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Calls createContext on Node VM receiver",
            "spans": [
              [
                993,
                16
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/vm::vm-require",
            "conf": 0.85,
            "crit": 3,
            "desc": "Node.js vm module import",
            "spans": [
              [
                331,
                18
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/vm::vm-run-methods",
            "conf": 0.8,
            "crit": 3,
            "desc": "VM code execution methods",
            "uses": [
              23
            ],
            "spans": [
              [
                331,
                18
              ],
              [
                1038,
                22
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/vm::vm-runInContext",
            "atk": "T1059",
            "mbc": "B0024",
            "conf": 0.9,
            "crit": 3,
            "desc": "VM runInContext sandbox execution",
            "uses": [
              21,
              24
            ],
            "spans": [
              [
                331,
                18
              ],
              [
                1038,
                22
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/interpreter/vm::vm-runInContext-member",
            "conf": 0.8,
            "crit": 3,
            "desc": "runInContext member call on any receiver",
            "spans": [
              [
                1038,
                22
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/io/stream::node-stdout-reference",
            "conf": 0.8,
            "crit": 3,
            "desc": "References Node.js stdout stream",
            "spans": [
              [
                2772,
                14
              ]
            ]
          },
          {
            "id": "metadata/file/comment::source-comment-bytes-over-300",
            "conf": 0.92,
            "crit": 2,
            "desc": "Source has over 300 comment bytes"
          },
          {
            "id": "metadata/lang/javascript-features::const-let",
            "conf": 0.9,
            "crit": 2,
            "desc": "ES6 const/let declarations",
            "spans": [
              [
                1843,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/source/shape::js-ts-source-basename",
            "conf": 0.95,
            "crit": 2,
            "desc": "JavaScript or TypeScript source filename"
          },
          {
            "id": "metadata/lang/source/syntax/member::message-code-member-name",
            "conf": 0.98,
            "crit": 2,
            "desc": "Code member-name reference",
            "spans": [
              [
                4385,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/source/syntax/member::message-input-member-name",
            "conf": 0.98,
            "crit": 2,
            "desc": "Input member-name reference",
            "spans": [
              [
                1794,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/error-handling::catch-keyword",
            "conf": 0.5,
            "crit": 2,
            "desc": "Literal contains the catch keyword",
            "spans": [
              [
                2686,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/error-handling::try-block-open",
            "conf": 0.5,
            "crit": 2,
            "desc": "Literal contains try-block opening text",
            "spans": [
              [
                831,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/control-flow/error-handling::try-catch-handling",
            "conf": 0.7,
            "crit": 2,
            "desc": "Try/catch literal vocabulary",
            "uses": [
              31,
              32
            ],
            "spans": [
              [
                2686,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file/full::file-content-read-operation",
            "conf": 0.82,
            "crit": 2,
            "desc": "File content read operation",
            "uses": [
              9,
              10,
              35
            ],
            "spans": [
              [
                837,
                0
              ],
              [
                869,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/read/file/full::read-text-utf8",
            "conf": 0.72,
            "crit": 2,
            "desc": "Reads file content as utf8",
            "spans": [
              [
                872,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/fd/stdio::stderr-string",
            "conf": 0.3,
            "crit": 2,
            "desc": "References the stderr stream name",
            "spans": [
              [
                5319,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/process/fd/stdio::stdout-string",
            "conf": 0.3,
            "crit": 2,
            "desc": "References the stdout stream name",
            "spans": [
              [
                611,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::data-transfer-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "Data-transfer verb token",
            "spans": [
              [
                2652,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/content-word::english-edit-verb-token",
            "conf": 0.88,
            "crit": 1,
            "desc": "English edit-action verb token",
            "spans": [
              [
                1915,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                1332,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                1373,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                922,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural/vocabulary/function-word::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                1417,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/envelope::result-assignment-key",
            "conf": 0.4,
            "crit": 1,
            "desc": "Result field or assignment key",
            "spans": [
              [
                2466,
                0
              ]
            ]
          },
          {
            "id": "micro-behaviors/data/serialize/schema-object::result-field-key",
            "conf": 0.9,
            "crit": 1,
            "desc": "JSON-like object result field",
            "spans": [
              [
                3574,
                0
              ]
            ]
          }
        ],
        "type": "javascript"
      },
      {
        "ctx": [
          {
            "b": "DKp(rb5Q?awG\u003ceTb0Z9/x(mA{Abo9bfkboBBs?JQzGGPfwG\u0026VjarR\u003eKwPz\u003caz/c:War\u0026G(h7*Nbed9Hxb4Lnav@=p5BzkVhb03?\u003cq!PPWwN(]%z/Z1LzE)%jA:-=bz/Pu3wPI%lvruj4zxJLfAV!h0x(mA{Abo9bavG{+v}/)#wGTYFp+t4MA+cwbzV",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "^13.0.3",
              "better-sqlite3"
            ],
            [
              "^1.74.1",
              "@principles/core"
            ],
            [
              "^0.2.0",
              "@principles/install-layout"
            ],
            [
              "^5.2.0",
              "js-yaml"
            ],
            [
              "^7.0.2",
              "typescript"
            ],
            [
              "^9.6.0",
              "@types/better-sqlite3"
            ],
            [
              "^8.2.2",
              "vite"
            ],
            [
              "^26.4.1",
              "@types/node"
            ],
            [
              "^4.0.9",
              "@types/js-yaml"
            ],
            [
              "^5.0.0",
              "vitest"
            ]
          ],
          "metrics": {
            "file": {
              "size": 1008,
              "entropy": 4.72
            },
            "binary": {
              "peak_region_bytes": 1008,
              "peak_region_entropy": 4.72
            },
            "references": {
              "declared_count": 4,
              "unresolved_count": 0,
              "security_hold_count": 0,
              "unresolved_extension_count": 0
            },
            "consistency": {
              "name_repo_mismatch": 1
            }
          }
        },
        "id": 29,
        "path": "@principles-host-runtime-0.5.0.tgz!!package/package.json",
        "pid": 0,
        "refs": [
          {
            "to": "pkg:github/csuzngjh/principles",
            "off": 934,
            "kind": "repository"
          },
          {
            "to": "pkg:npm/%40principles/core",
            "off": 547,
            "kind": "dependency"
          },
          {
            "to": "pkg:npm/%40principles/install-layout",
            "off": 582,
            "kind": "dependency"
          },
          {
            "to": "pkg:npm/better-sqlite3",
            "off": 626,
            "kind": "dependency"
          },
          {
            "to": "pkg:npm/js-yaml",
            "off": 659,
            "kind": "dependency"
          },
          {
            "to": "./dist/index.js",
            "off": 192,
            "file": 16,
            "kind": "local"
          },
          {
            "to": "./dist/index.d.ts",
            "off": 222,
            "file": 45,
            "kind": "local"
          },
          {
            "to": "./package.json",
            "off": 351,
            "kind": "local"
          }
        ],
        "risk": 1,
        "sha": "2ffac718edc15a92807930c13e0ad37374a6c01f6d0f59b33816e80eec06a4f5",
        "size": 1008,
        "traits": [
          {
            "id": "supply-chain/missing-author",
            "conf": 0.5,
            "crit": 3,
            "desc": "Package has empty or missing author field",
            "spans": [
              [
                0,
                21
              ]
            ]
          }
        ],
        "type": "package.json"
      },
      {
        "depth": 2,
        "facts": {
          "metrics": {
            "file": {
              "size": 1006,
              "entropy": 4.94
            },
            "binary": {
              "peak_region_bytes": 1006,
              "peak_region_entropy": 4.94
            },
            "registry": {
              "age_days": 0,
              "file_count": 3058,
              "maintainers": 1,
              "published_at": 1789266623,
              "releases_24h": 8,
              "releases_48h": 11,
              "is_deprecated": 0,
              "release_count": 304,
              "security_hold": 0,
              "unpacked_size": 17615400,
              "version_removed": 0,
              "package_age_days": 104,
              "first_published_at": 1780202568,
              "has_install_script": 0,
              "previous_published_at": 1789264818,
              "publisher_in_maintainers": 0,
              "days_since_previous_release": 0
            }
          }
        },
        "id": 58,
        "path": "@principles_core@1.282.2.registry.json",
        "pid": 29,
        "rel": "registry",
        "role": "sidecar",
        "sha": "32752931f31fb427db1c84ba7e9ed427fe55bb5bc6c36789cc9c327f46616be4",
        "size": 1006,
        "type": "registry"
      },
      {
        "id": 59,
        "sha": "51569fe364d1bccf1541077a94bc3273c86f0afda6ac9e0cb9f0134e33a19742",
        "path": "@principles_install-layout@0.2.4.registry.json",
        "size": 886,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 60,
        "sha": "13cb0b5dc2363b661051aeffec93c697fbcd009bcd58e1938f2fed7c566aaf9c",
        "path": "better-sqlite3@13.0.3.registry.json",
        "size": 919,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 61,
        "sha": "dfc132a16210e88b0968e0ff6570892f5fa9b6c83c7bf2a8bd028d38c2853b89",
        "path": "js-yaml@5.4.2.registry.json",
        "size": 875,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 62,
        "sha": "5733d38cdee8a198c66703bb80f6e00c042ca3afae3b18417008ea8c55d7ff55",
        "path": "@principles_host-runtime@0.5.0.registry.json",
        "size": 963,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 4,
    "v": "8"
  }
}