2026-08-03 12:13:39 +08:00
|
|
|
{
|
|
|
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
|
|
|
"$id": "https://example.invalid/schemas/agent-context.schema.json",
|
|
|
|
|
"title": "Harness Coding agent context manifest",
|
|
|
|
|
"type": "object",
|
|
|
|
|
"additionalProperties": false,
|
|
|
|
|
"required": [
|
|
|
|
|
"schema",
|
|
|
|
|
"schema_version",
|
|
|
|
|
"authority",
|
|
|
|
|
"bootstrap",
|
|
|
|
|
"routes",
|
|
|
|
|
"tasks",
|
2026-08-03 17:00:41 +08:00
|
|
|
"shared_documents",
|
|
|
|
|
"tracker",
|
2026-08-03 12:13:39 +08:00
|
|
|
"refresh",
|
|
|
|
|
"degraded_mode"
|
|
|
|
|
],
|
|
|
|
|
"properties": {
|
|
|
|
|
"schema": {
|
|
|
|
|
"const": "docs/agent-context.schema.json"
|
|
|
|
|
},
|
|
|
|
|
"schema_version": {
|
2026-08-03 17:00:41 +08:00
|
|
|
"const": 2
|
2026-08-03 12:13:39 +08:00
|
|
|
},
|
|
|
|
|
"authority": {
|
|
|
|
|
"type": "object",
|
|
|
|
|
"additionalProperties": {
|
|
|
|
|
"type": "string",
|
|
|
|
|
"minLength": 1
|
|
|
|
|
},
|
|
|
|
|
"required": [
|
|
|
|
|
"bootstrap",
|
|
|
|
|
"framework_templates",
|
|
|
|
|
"project_facts",
|
|
|
|
|
"coordination"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"bootstrap": {
|
|
|
|
|
"type": "object",
|
|
|
|
|
"additionalProperties": false,
|
|
|
|
|
"required": ["always_read"],
|
|
|
|
|
"properties": {
|
|
|
|
|
"always_read": {
|
|
|
|
|
"type": "array",
|
|
|
|
|
"minItems": 1,
|
|
|
|
|
"uniqueItems": true,
|
|
|
|
|
"items": {"$ref": "#/$defs/repositoryPath"}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"routes": {
|
|
|
|
|
"type": "object",
|
|
|
|
|
"minProperties": 1,
|
|
|
|
|
"additionalProperties": {
|
|
|
|
|
"type": "array",
|
|
|
|
|
"minItems": 1,
|
|
|
|
|
"uniqueItems": true,
|
|
|
|
|
"items": {"$ref": "#/$defs/repositoryPath"}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"tasks": {
|
|
|
|
|
"type": "object",
|
|
|
|
|
"additionalProperties": false,
|
|
|
|
|
"required": ["roadmap", "directory", "template"],
|
|
|
|
|
"properties": {
|
|
|
|
|
"roadmap": {"$ref": "#/$defs/repositoryPath"},
|
|
|
|
|
"directory": {"$ref": "#/$defs/repositoryPath"},
|
|
|
|
|
"template": {"$ref": "#/$defs/repositoryPath"}
|
|
|
|
|
}
|
|
|
|
|
},
|
2026-08-03 17:00:41 +08:00
|
|
|
"shared_documents": {
|
|
|
|
|
"type": "array",
|
|
|
|
|
"minItems": 1,
|
|
|
|
|
"uniqueItems": true,
|
|
|
|
|
"items": {"$ref": "#/$defs/repositoryPath"}
|
|
|
|
|
},
|
|
|
|
|
"tracker": {
|
|
|
|
|
"type": "object",
|
|
|
|
|
"additionalProperties": false,
|
|
|
|
|
"required": ["kind", "project", "export_script", "direction", "git_native_fields"],
|
|
|
|
|
"properties": {
|
|
|
|
|
"kind": {"const": "vikunja"},
|
|
|
|
|
"project": {"type": "string", "minLength": 1},
|
|
|
|
|
"export_script": {"$ref": "#/$defs/repositoryPath"},
|
|
|
|
|
"direction": {"const": "tracker_to_git"},
|
|
|
|
|
"git_native_fields": {
|
|
|
|
|
"type": "array",
|
|
|
|
|
"minItems": 1,
|
|
|
|
|
"uniqueItems": true,
|
|
|
|
|
"items": {"type": "string", "minLength": 1}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2026-08-03 12:13:39 +08:00
|
|
|
"refresh": {
|
|
|
|
|
"type": "object",
|
|
|
|
|
"additionalProperties": false,
|
|
|
|
|
"required": ["context_ref", "cache_key", "unchanged_file", "changed_ref"],
|
|
|
|
|
"properties": {
|
|
|
|
|
"context_ref": {"const": "default_branch_head_sha"},
|
|
|
|
|
"cache_key": {"const": "file_sha"},
|
|
|
|
|
"unchanged_file": {"const": "reuse_within_current_session"},
|
|
|
|
|
"changed_ref": {"const": "reread_manifest_and_routed_documents"}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"degraded_mode": {
|
|
|
|
|
"type": "object",
|
|
|
|
|
"additionalProperties": false,
|
|
|
|
|
"required": ["continue_claimed_task", "claim_new_task", "write_remote_state"],
|
|
|
|
|
"properties": {
|
|
|
|
|
"continue_claimed_task": {"type": "boolean"},
|
|
|
|
|
"claim_new_task": {"type": "boolean"},
|
|
|
|
|
"write_remote_state": {"type": "boolean"}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"$defs": {
|
|
|
|
|
"repositoryPath": {
|
|
|
|
|
"type": "string",
|
|
|
|
|
"minLength": 1,
|
|
|
|
|
"pattern": "^(?!/)(?!.*\\\\)(?!.*(^|/)\\.\\.(/|$))(?![A-Za-z][A-Za-z0-9+.-]*:).+$"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|