Files
BillyOutlast a197e50988 Scaffold Prog-Prober: spec, ADRs, and Phase 1 tracker
- docs/architecture.md: full architecture spec (safety contract, topology,
  Tool API, data model, phasing).
- docs/adr/0001-0011: decision records for the grilling outcomes.
- Repo skeleton: Cargo workspace (crates/core), pnpm workspace
  (apps/desktop, packages/ui), Python workers package, OCI runtime
  placeholder, graph JSON Schema.
- AGENTS.md, CONTEXT.md, THIRD_PARTY.md, README.md, LICENSE (AGPL-3.0).
- GitHub issues #1-#14: phase epics plus Phase 1 tickets.
2026-09-19 17:50:23 -04:00

62 lines
2.0 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/Heretek-AI/Prog-Prober/schemas/graph.schema.json",
"title": "Prog-Prober graph",
"description": "Canonical call/control-flow graph. Normalized in LadybugDB; projected to flat typed arrays for @cosmos.gl/graph at the edge.",
"type": "object",
"required": ["nodes", "edges"],
"properties": {
"nodes": {
"type": "array",
"items": { "$ref": "#/$defs/node" }
},
"edges": {
"type": "array",
"items": { "$ref": "#/$defs/edge" }
}
},
"$defs": {
"provenance": {
"type": "object",
"required": ["tool", "version"],
"properties": {
"tool": { "type": "string", "examples": ["ghidra", "capa", "lief", "floss"] },
"version": { "type": "string" }
}
},
"node": {
"type": "object",
"required": ["id", "kind", "binary_id", "provenance"],
"properties": {
"id": { "type": "string" },
"kind": {
"type": "string",
"enum": ["binary", "function", "basicblock", "instruction", "import", "api_sink", "string"]
},
"binary_id": { "type": "string" },
"name": { "type": "string" },
"address": { "type": "string", "description": "Virtual address, hex, where applicable" },
"provenance": { "$ref": "#/$defs/provenance" },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
"attributes": { "type": "object" }
}
},
"edge": {
"type": "object",
"required": ["id", "kind", "source", "target", "provenance"],
"properties": {
"id": { "type": "string" },
"kind": {
"type": "string",
"enum": ["call", "cfg", "ref", "import", "data_flow"]
},
"source": { "type": "string" },
"target": { "type": "string" },
"provenance": { "$ref": "#/$defs/provenance" },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
"attributes": { "type": "object" }
}
}
}
}