{
  "evidence_id": "ev_decb565a5b046cb8456c7ae02122a04d884f8905c60edf28fa418472cf5435c9",
  "subject": null,
  "provider": {
    "id": "rea-javascript-application-workflows",
    "name": "REA JavaScript application workflows",
    "version": "1"
  },
  "analysis_profile": null,
  "predicate_type": "rea.javascript-semantic-trace",
  "operation": "trace_javascript_semantics",
  "parameters": {
    "application_evidence_id": "ev_ac560e41c15e0c56b608c5a31675159f590a5cadff7cdb57cfe468c101e1c3be",
    "query": {
      "seed": {
        "kind": "property",
        "name": "destResourcePaths"
      },
      "direction": "forward-influence",
      "include_ambiguous_dynamic_edges": false,
      "expected": null
    }
  },
  "raw_result": null,
  "normalized_result": {
    "query_id": "jsrq_1b99d17b7ba15540e3353124f871b1120afe986ad2816f5d5e021aec9604218d",
    "source_graph_id": "jsrg_a5a492795c4285423fb4bbe552e1806abdde3e9b19fdf0545b722ed4ba64d2ae",
    "seed": {
      "kind": "property",
      "name": "destResourcePaths"
    },
    "direction": "forward-influence",
    "status": "ambiguous",
    "seed_node_ids": [
      "jsrg_node_4f64a88b201698f0f9bf232ad8bfdb87ac8c1e1fb42843fc6191fe1392614e36"
    ],
    "evidence_contexts": [
      {
        "authority": "ast-static-analysis",
        "state": "observed",
        "confidence": "exact",
        "artifact": {
          "available": true,
          "artifact_id": "art_3823ad7a3fd26eccfa3b51f0c246602e88776c529da8f2102b0193d598eee201",
          "sha256": "3823ad7a3fd26eccfa3b51f0c246602e88776c529da8f2102b0193d598eee201"
        },
        "extractor": {
          "name": "rea-javascript-semantic-analysis",
          "version": "1",
          "operation": "analyze_javascript_application",
          "executable_sha256": null
        },
        "coverage": {
          "status": "complete",
          "truncated": false,
          "omitted_count": 0,
          "limits": []
        },
        "limitations": [],
        "evidence_ids": [],
        "context_id": "jsrg_evidence_49ef5e48a1cd8523cb1b6e4870fe1e3b1043eee64668e6d727afa74390589f31"
      },
      {
        "authority": "unknown",
        "state": "unknown",
        "confidence": "unknown",
        "artifact": {
          "available": true,
          "artifact_id": "art_3823ad7a3fd26eccfa3b51f0c246602e88776c529da8f2102b0193d598eee201",
          "sha256": "3823ad7a3fd26eccfa3b51f0c246602e88776c529da8f2102b0193d598eee201"
        },
        "extractor": {
          "name": "rea-javascript-semantic-analysis",
          "version": "1",
          "operation": "analyze_javascript_application",
          "executable_sha256": null
        },
        "coverage": {
          "status": "complete",
          "truncated": false,
          "omitted_count": 0,
          "limits": []
        },
        "limitations": [
          "Dynamic syntax prevents an exact static relationship."
        ],
        "evidence_ids": [],
        "context_id": "jsrg_evidence_6318926f5f329886c9cc283283d40b37ff103ca24fed16756322d3d18c721589"
      }
    ],
    "nodes": [
      {
        "kind": "property-slot",
        "identity": {
          "artifact_sha256": "3823ad7a3fd26eccfa3b51f0c246602e88776c529da8f2102b0193d598eee201",
          "module_path": "markdown-exporter.js",
          "source_range": null,
          "role_key": "property:[\"scope:function:3600:3947:binding:r\",[\"destResourcePaths\"]]"
        },
        "function_node_id": "jsrg_node_02186a16f9d56070a97853807b477d9645a4bcb43a0e2fc65628ca0c93df0537",
        "application_node_ids": [
          "jag_node_300c3761b4c52e660e9cb685d27fb6f742ca3713ca863a0c25c4d80cf4175442"
        ],
        "label": "destResourcePaths",
        "properties": {
          "name": "destResourcePaths",
          "property_path": [
            "destResourcePaths"
          ],
          "property_pointer": "/destResourcePaths",
          "object_binding_id": "scope:function:3600:3947:binding:r",
          "presence": "unknown-coverage",
          "value_status": "unknown",
          "value_coverage": null
        },
        "evidence": {
          "context_id": "jsrg_evidence_49ef5e48a1cd8523cb1b6e4870fe1e3b1043eee64668e6d727afa74390589f31",
          "location": {
            "available": true,
            "value": {
              "kind": "artifact-path",
              "path": "markdown-exporter.js"
            }
          }
        },
        "node_id": "jsrg_node_4f64a88b201698f0f9bf232ad8bfdb87ac8c1e1fb42843fc6191fe1392614e36"
      }
    ],
    "relations": [],
    "unknowns": [
      {
        "node_id": "jsrg_node_4f64a88b201698f0f9bf232ad8bfdb87ac8c1e1fb42843fc6191fe1392614e36",
        "family": "object-flow",
        "relation_kinds": [
          "reads-property"
        ],
        "reason": "ambiguous-target",
        "detail": "Static read property /destResourcePaths has unknown-coverage presence; its receiver is unresolved or not a retained container; object identity is complete.",
        "candidate_node_ids": [],
        "evidence": {
          "context_id": "jsrg_evidence_6318926f5f329886c9cc283283d40b37ff103ca24fed16756322d3d18c721589",
          "location": {
            "available": true,
            "value": {
              "kind": "source-range",
              "source": "markdown-exporter.js",
              "start": {
                "line": 1,
                "column": 3834
              },
              "end": {
                "line": 1,
                "column": 3853
              }
            }
          }
        },
        "unknown_id": "jsrg_unknown_3fffc3410fc3ff228d32fad6ab1d71d834e15a7e01c5f78b41b585e37aa2d21b"
      },
      {
        "node_id": "jsrg_node_4f64a88b201698f0f9bf232ad8bfdb87ac8c1e1fb42843fc6191fe1392614e36",
        "family": "object-flow",
        "relation_kinds": [
          "reads-property"
        ],
        "reason": "ambiguous-target",
        "detail": "Static read property /destResourcePaths has unknown-coverage presence; its receiver is unresolved or not a retained container; object identity is complete.",
        "candidate_node_ids": [],
        "evidence": {
          "context_id": "jsrg_evidence_6318926f5f329886c9cc283283d40b37ff103ca24fed16756322d3d18c721589",
          "location": {
            "available": true,
            "value": {
              "kind": "source-range",
              "source": "markdown-exporter.js",
              "start": {
                "line": 1,
                "column": 3648
              },
              "end": {
                "line": 1,
                "column": 3667
              }
            }
          }
        },
        "unknown_id": "jsrg_unknown_85cdb9aedf3c75644ce7154ede014f54dc8a5f4c100c799e94bf8f30c128d26f"
      },
      {
        "node_id": "jsrg_node_4f64a88b201698f0f9bf232ad8bfdb87ac8c1e1fb42843fc6191fe1392614e36",
        "family": "object-flow",
        "relation_kinds": [
          "writes-property"
        ],
        "reason": "ambiguous-target",
        "detail": "Static write property /destResourcePaths has unknown-coverage presence; its receiver is unresolved or not a retained container; object identity is complete.",
        "candidate_node_ids": [],
        "evidence": {
          "context_id": "jsrg_evidence_6318926f5f329886c9cc283283d40b37ff103ca24fed16756322d3d18c721589",
          "location": {
            "available": true,
            "value": {
              "kind": "source-range",
              "source": "markdown-exporter.js",
              "start": {
                "line": 1,
                "column": 3670
              },
              "end": {
                "line": 1,
                "column": 3689
              }
            }
          }
        },
        "unknown_id": "jsrg_unknown_c6f6e7650179018bfc2e7f621e1d517f11f1a9c8f7c3de1ee3814bdea120cf02"
      }
    ],
    "expected_match_node_ids": [],
    "summary": {
      "total_seed_matches": 1,
      "traversed_nodes": 1,
      "traversed_relations": 0,
      "traversed_functions": 1,
      "traversed_modules": 1,
      "relevant_unknowns": 3
    },
    "coverage": {
      "status": "partial"
    },
    "limitations": [
      "Boundary extraction covers unshadowed JSON/global coercions plus parse and validation method candidates.",
      "Candidate relations remain ambiguous and do not establish a resolved semantic path.",
      "Child-process extraction covers asynchronous node:child_process creation, literal argv/env/stdio options, exit/error listeners, and kill signals.",
      "Configuration extraction covers process.env, process.argv, node:fs reads, and direct logical defaults.",
      "Event extraction covers EventEmitter-style literal registrations, removals, and dispatch candidates; dynamic names remain unknown.",
      "Function fingerprints are static candidates; equal digests can remain ambiguous and do not prove behavioral equivalence.",
      "Local data flow does not claim control-flow-sensitive reaching definitions or arbitrary dynamic property resolution.",
      "Promise ownership covers explicit unshadowed Promise construction, static factories, aggregation, chaining, and await syntax only.",
      "Relevant dynamic, unsupported, incomplete, or ambiguous semantics remain unknown.",
      "Request extraction covers fetch, WebSocket, node:http/node:https construction, direct option fields, and exact local response consumers.",
      "Resource extraction covers built-in filesystem/network acquisition and exact local close/destroy/end handles.",
      "Semantic graph reachability is a static inference and does not prove runtime execution.",
      "The semantic graph contains static syntax observations and conservative relationship candidates; it does not claim runtime execution.",
      "Timer extraction covers global or node:timers scheduling and exact local-handle cancellation."
    ],
    "source_evidence_id": "ev_ac560e41c15e0c56b608c5a31675159f590a5cadff7cdb57cfe468c101e1c3be",
    "evidence_links": [
      "ev_ac560e41c15e0c56b608c5a31675159f590a5cadff7cdb57cfe468c101e1c3be"
    ]
  },
  "confidence": "inferred",
  "authority": "analyst-inference",
  "environment": null,
  "limitations": [
    "Artifact identity is unavailable for this observation.",
    "Boundary extraction covers unshadowed JSON/global coercions plus parse and validation method candidates.",
    "Candidate relations remain ambiguous and do not establish a resolved semantic path.",
    "Child-process extraction covers asynchronous node:child_process creation, literal argv/env/stdio options, exit/error listeners, and kill signals.",
    "Configuration extraction covers process.env, process.argv, node:fs reads, and direct logical defaults.",
    "Event extraction covers EventEmitter-style literal registrations, removals, and dispatch candidates; dynamic names remain unknown.",
    "Function fingerprints are static candidates; equal digests can remain ambiguous and do not prove behavioral equivalence.",
    "Local data flow does not claim control-flow-sensitive reaching definitions or arbitrary dynamic property resolution.",
    "Promise ownership covers explicit unshadowed Promise construction, static factories, aggregation, chaining, and await syntax only.",
    "Relevant dynamic, unsupported, incomplete, or ambiguous semantics remain unknown.",
    "Request extraction covers fetch, WebSocket, node:http/node:https construction, direct option fields, and exact local response consumers.",
    "Resource extraction covers built-in filesystem/network acquisition and exact local close/destroy/end handles.",
    "Semantic graph reachability is a static inference and does not prove runtime execution.",
    "The semantic graph contains static syntax observations and conservative relationship candidates; it does not claim runtime execution.",
    "Timer extraction covers global or node:timers scheduling and exact local-handle cancellation."
  ],
  "relationship_coverage": null,
  "locations": [],
  "evidence_links": [
    "ev_ac560e41c15e0c56b608c5a31675159f590a5cadff7cdb57cfe468c101e1c3be"
  ]
}
