feat: scaffold v0.1 foundation

This commit is contained in:
hermes 2026-07-28 19:26:47 +00:00
commit 170ca32f58
34 changed files with 6175 additions and 5 deletions

View file

@ -0,0 +1,167 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "AnalysisProfile",
"description": "Canonical Analysis Profile document whose exact JSON bytes are hashed.",
"type": "object",
"properties": {
"analysis_adapter_version": {
"description": "Analysis adapter implementation version.",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"analyzer_options": {
"description": "Fully resolved, bytewise-name-sorted analyzer options.",
"type": "array",
"items": {
"$ref": "#/$defs/ProfileOption"
}
},
"ghidra_version": {
"description": "Exact Ghidra version.",
"type": "string"
},
"java_version": {
"description": "Exact Java major version.",
"type": "string"
},
"loader_options": {
"description": "Fully resolved, bytewise-name-sorted loader options.",
"type": "array",
"items": {
"$ref": "#/$defs/ProfileOption"
}
},
"max_cpu": {
"description": "Maximum analysis CPU count.",
"$ref": "#/$defs/PositiveU64"
},
"profile_version": {
"type": "integer",
"const": 1
},
"target": {
"description": "Analysis-affecting Target Specification.",
"$ref": "#/$defs/ProfileTarget"
}
},
"additionalProperties": false,
"required": [
"profile_version",
"ghidra_version",
"java_version",
"analysis_adapter_version",
"target",
"loader_options",
"analyzer_options",
"max_cpu"
],
"$defs": {
"PositiveU64": {
"description": "A validated positive integer accepted by resource-limit flags.",
"type": "integer",
"format": "uint64",
"minimum": 1
},
"ProfileOption": {
"description": "Fully resolved typed Ghidra option.",
"type": "object",
"properties": {
"name": {
"description": "Canonical option name.",
"type": "string"
},
"value": {
"description": "Typed canonical value without floating-point data.",
"$ref": "#/$defs/ProfileOptionValue"
}
},
"additionalProperties": false,
"required": [
"name",
"value"
]
},
"ProfileOptionValue": {
"description": "Values permitted in canonical profile options.",
"oneOf": [
{
"description": "Boolean option.",
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "boolean"
},
"value": {
"type": "boolean"
}
},
"required": [
"type",
"value"
]
},
{
"description": "Signed integer option.",
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "integer"
},
"value": {
"type": "integer",
"format": "int64"
}
},
"required": [
"type",
"value"
]
},
{
"description": "Exact UTF-8 string option.",
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "string"
},
"value": {
"type": "string"
}
},
"required": [
"type",
"value"
]
}
]
},
"ProfileTarget": {
"description": "Target fields which affect Analysis identity.",
"type": "object",
"properties": {
"compiler_specification": {
"description": "Exact compiler-specification identifier.",
"type": "string"
},
"loader": {
"description": "Exact loader identifier.",
"type": "string"
},
"processor_language": {
"description": "Exact processor-language identifier.",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"loader",
"processor_language",
"compiler_specification"
]
}
}
}