openhermes 2.8.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTEXT.md +18 -0
- package/ETHOS.md +15 -0
- package/README.md +135 -292
- package/bootstrap.mjs +174 -512
- package/harness/agents/openhermes.md +87 -0
- package/harness/codex/CONSTITUTION.md +70 -148
- package/harness/codex/ROUTING.md +126 -0
- package/harness/commands/oh-doctor.md +26 -0
- package/harness/instructions/CONVENTIONS.md +206 -206
- package/harness/instructions/RUNTIME.md +54 -31
- package/harness/skills/oh-builder/SKILL.md +98 -0
- package/harness/skills/oh-caveman/SKILL.md +33 -0
- package/harness/skills/oh-expert/SKILL.md +121 -0
- package/harness/skills/oh-freeze/SKILL.md +28 -0
- package/harness/skills/oh-gauntlet/SKILL.md +119 -0
- package/harness/skills/oh-grill/SKILL.md +77 -0
- package/harness/skills/oh-guard/SKILL.md +33 -0
- package/harness/skills/oh-handoff/SKILL.md +33 -0
- package/harness/skills/oh-health/SKILL.md +90 -0
- package/harness/skills/oh-init/SKILL.md +78 -0
- package/harness/skills/oh-investigate/SKILL.md +35 -0
- package/harness/skills/oh-issue/SKILL.md +36 -0
- package/harness/skills/oh-learn/SKILL.md +28 -0
- package/harness/skills/oh-manifest/SKILL.md +84 -0
- package/harness/skills/oh-plan-review/SKILL.md +128 -0
- package/harness/skills/oh-planner/SKILL.md +157 -0
- package/harness/skills/oh-prd/SKILL.md +35 -0
- package/harness/skills/oh-retro/SKILL.md +33 -0
- package/harness/skills/oh-review/SKILL.md +110 -0
- package/harness/skills/oh-security/SKILL.md +110 -0
- package/harness/skills/oh-ship/SKILL.md +39 -0
- package/harness/skills/oh-skill-craft/SKILL.md +107 -0
- package/harness/skills/oh-skills-link/SKILL.md +29 -0
- package/harness/skills/oh-skills-list/SKILL.md +31 -0
- package/harness/skills/oh-triage/SKILL.md +36 -0
- package/index.mjs +3 -60
- package/lib/harness-resolver.mjs +77 -0
- package/lib/logger.mjs +62 -0
- package/package.json +49 -53
- package/test/plugins-behavioral.test.mjs +64 -0
- package/test/plugins.test.mjs +62 -0
- package/autorecall.mjs +0 -237
- package/curator.mjs +0 -482
- package/harness/commands/build-fix.md +0 -60
- package/harness/commands/checkpoint.md +0 -68
- package/harness/commands/code-review.md +0 -71
- package/harness/commands/doctor.md +0 -42
- package/harness/commands/eval.md +0 -89
- package/harness/commands/go-build.md +0 -87
- package/harness/commands/go-review.md +0 -71
- package/harness/commands/harness-audit.md +0 -90
- package/harness/commands/learn.md +0 -37
- package/harness/commands/loop-start.md +0 -38
- package/harness/commands/loop-status.md +0 -30
- package/harness/commands/memory-search.md +0 -37
- package/harness/commands/model-route.md +0 -32
- package/harness/commands/ohc.md +0 -13
- package/harness/commands/orchestrate.md +0 -88
- package/harness/commands/plan.md +0 -53
- package/harness/commands/quality-gate.md +0 -35
- package/harness/commands/refactor-clean.md +0 -102
- package/harness/commands/rust-build.md +0 -78
- package/harness/commands/rust-review.md +0 -65
- package/harness/commands/security.md +0 -93
- package/harness/commands/setup-pm.md +0 -65
- package/harness/commands/skill-create.md +0 -99
- package/harness/commands/test-coverage.md +0 -80
- package/harness/commands/update-codemaps.md +0 -81
- package/harness/commands/update-docs.md +0 -67
- package/harness/commands/verify.md +0 -68
- package/harness/prompts/architect.txt +0 -189
- package/harness/prompts/build-cpp.md +0 -98
- package/harness/prompts/build-error-resolver.md +0 -44
- package/harness/prompts/build-go.md +0 -340
- package/harness/prompts/build-java.md +0 -140
- package/harness/prompts/build-kotlin.md +0 -137
- package/harness/prompts/build-rust.md +0 -108
- package/harness/prompts/code-reviewer.md +0 -40
- package/harness/prompts/doc-updater.md +0 -206
- package/harness/prompts/docs-lookup.md +0 -71
- package/harness/prompts/e2e-runner.txt +0 -317
- package/harness/prompts/explore.md +0 -42
- package/harness/prompts/harness-optimizer.md +0 -42
- package/harness/prompts/loop-operator.md +0 -53
- package/harness/prompts/planner.md +0 -37
- package/harness/prompts/refactor-cleaner.md +0 -256
- package/harness/prompts/review-cpp.md +0 -81
- package/harness/prompts/review-database.md +0 -261
- package/harness/prompts/review-go.md +0 -257
- package/harness/prompts/review-java.md +0 -113
- package/harness/prompts/review-kotlin.md +0 -143
- package/harness/prompts/review-python.md +0 -101
- package/harness/prompts/review-rust.md +0 -77
- package/harness/prompts/security-reviewer.md +0 -42
- package/harness/prompts/tdd-guide.md +0 -228
- package/harness/rules/audit.md +0 -84
- package/harness/rules/checkpointing.md +0 -75
- package/harness/rules/context-loading.md +0 -33
- package/harness/rules/credential-exposure.md +0 -0
- package/harness/rules/delegation.md +0 -80
- package/harness/rules/handoff.md +0 -267
- package/harness/rules/memory-management.md +0 -28
- package/harness/rules/precedence.md +0 -52
- package/harness/rules/promotion.md +0 -46
- package/harness/rules/ranking.md +0 -64
- package/harness/rules/retrieval.md +0 -94
- package/harness/rules/runtime-guards.md +0 -196
- package/harness/rules/self-heal.md +0 -79
- package/harness/rules/session-start.md +0 -34
- package/harness/rules/skills-management.md +0 -165
- package/harness/rules/state-drift.md +0 -192
- package/harness/rules/verification.md +0 -88
- package/harness/scripts/sync-commands.mjs +0 -259
- package/harness/skills/.bundled_manifest +0 -17
- package/harness/skills/.usage.json +0 -6
- package/harness/skills/api-design/SKILL.md +0 -523
- package/harness/skills/backend-patterns/SKILL.md +0 -598
- package/harness/skills/coding-standards/SKILL.md +0 -549
- package/harness/skills/e2e-testing/SKILL.md +0 -326
- package/harness/skills/frontend-patterns/SKILL.md +0 -642
- package/harness/skills/frontend-slides/SKILL.md +0 -184
- package/harness/skills/security-review/SKILL.md +0 -495
- package/harness/skills/strategic-compact/SKILL.md +0 -131
- package/harness/skills/tdd-workflow/SKILL.md +0 -463
- package/harness/skills/verification-loop/SKILL.md +0 -126
- package/lib/ambient-memory.mjs +0 -167
- package/lib/handoff.mjs +0 -171
- package/lib/hardening.mjs +0 -146
- package/lib/memory-tools-plugin.mjs +0 -368
- package/lib/ohc/block-sync.mjs +0 -69
- package/lib/ohc/compress/search.mjs +0 -152
- package/lib/ohc/compress/state.mjs +0 -76
- package/lib/ohc/config.mjs +0 -185
- package/lib/ohc/message-ids.mjs +0 -178
- package/lib/ohc/notify.mjs +0 -135
- package/lib/ohc/protected-patterns.mjs +0 -55
- package/lib/ohc/prune-apply.mjs +0 -134
- package/lib/ohc/pruner.mjs +0 -608
- package/lib/ohc/reaper.mjs +0 -70
- package/lib/ohc/state.mjs +0 -265
- package/lib/ohc/strategies/deduplication.mjs +0 -72
- package/lib/ohc/strategies/index.mjs +0 -2
- package/lib/ohc/strategies/purge-errors.mjs +0 -43
- package/lib/ohc/token-utils.mjs +0 -26
- package/lib/ohc/updater.mjs +0 -132
- package/lib/paths.mjs +0 -49
- package/lib/schema-validator.mjs +0 -79
- package/lib/search.mjs +0 -48
- package/schemas/audit.schema.json +0 -82
- package/schemas/backlog.schema.json +0 -63
- package/schemas/checkpoint.schema.json +0 -65
- package/schemas/constraint.schema.json +0 -62
- package/schemas/decision.schema.json +0 -63
- package/schemas/instinct.schema.json +0 -63
- package/schemas/loop-state.schema.json +0 -33
- package/schemas/mistake.schema.json +0 -64
- package/schemas/verification_receipt.schema.json +0 -88
- package/skill-builder.mjs +0 -88
package/lib/search.mjs
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export function scoreRelevance(r, query, project) {
|
|
2
|
-
const q = query.toLowerCase()
|
|
3
|
-
const tokens = q.split(/\s+/).filter(t => t.length > 2)
|
|
4
|
-
let score = 0
|
|
5
|
-
|
|
6
|
-
const primaryFields = [r.summary, r.description, r.mission, r.current_state, r.failure, r.root_cause, r.fix, r.prevention, r.id, r.choice, r.reason, r.source, r.artifact, r.result].filter(Boolean)
|
|
7
|
-
const secondaryFields = [r.command, r.project, r.scope].filter(Boolean)
|
|
8
|
-
const listFields = [...(Array.isArray(r.tags) ? r.tags : []), ...(Array.isArray(r.next_actions) ? r.next_actions : []), ...(Array.isArray(r.refs) ? r.refs : [])].filter(Boolean)
|
|
9
|
-
|
|
10
|
-
for (const f of primaryFields) {
|
|
11
|
-
const str = String(f).toLowerCase()
|
|
12
|
-
let idx = 0; let count = 0
|
|
13
|
-
while ((idx = str.indexOf(q, idx)) !== -1) { count++; idx += q.length }
|
|
14
|
-
score += count * 15
|
|
15
|
-
if (str.startsWith(q)) score += 10
|
|
16
|
-
if (str.includes(q)) score += 4
|
|
17
|
-
for (const token of tokens) {
|
|
18
|
-
if (str.includes(token)) score += 4
|
|
19
|
-
if (str.startsWith(token)) score += 2
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
for (const f of secondaryFields) {
|
|
24
|
-
const str = String(f).toLowerCase()
|
|
25
|
-
if (str.includes(q)) score += 8
|
|
26
|
-
for (const token of tokens) {
|
|
27
|
-
if (str.includes(token)) score += 3
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
for (const f of listFields) {
|
|
32
|
-
const str = String(f).toLowerCase()
|
|
33
|
-
if (str.includes(q)) score += 5
|
|
34
|
-
for (const token of tokens) {
|
|
35
|
-
if (str.includes(token)) score += 2
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (r.project && r.project.toLowerCase() === (project || "").toLowerCase()) score += 25
|
|
40
|
-
if (r.project && project && r.project.toLowerCase().includes(project.toLowerCase())) score += 12
|
|
41
|
-
|
|
42
|
-
const age = Date.now() - Date.parse(r.updated_at || r.created_at || 0)
|
|
43
|
-
if (!Number.isNaN(age)) score += Math.max(0, 10 - age / 604800000)
|
|
44
|
-
if (r.status === "active") score += 4
|
|
45
|
-
if (r.status === "closed") score -= 3
|
|
46
|
-
|
|
47
|
-
return score
|
|
48
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Audit",
|
|
4
|
-
"description": "Structured evaluation of openhermes quality, integrity, and drift.",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["id", "class", "summary", "target", "overall_score", "checks", "top_actions", "integrity", "provenance", "created_at", "status"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"id": { "type": "string", "description": "Unique identifier, recommended pattern: audit-YYYYMMDD-short-slug" },
|
|
9
|
-
"class": { "type": "string", "const": "audit" },
|
|
10
|
-
"project": { "type": ["string", "null"], "description": "Project identifier; null for openhermes scope" },
|
|
11
|
-
"scope": { "type": "string", "enum": ["project", "global", "session", "harness"], "description": "Scope of applicability" },
|
|
12
|
-
"summary": { "type": "string", "description": "One-line description of audit scope and result" },
|
|
13
|
-
"tags": { "type": "array", "items": { "type": "string" }, "description": "Searchable tags" },
|
|
14
|
-
"source": { "type": "string", "enum": ["user", "agent", "audit", "migration", "repair"], "description": "Origin of this record" },
|
|
15
|
-
"provenance": {
|
|
16
|
-
"type": "object",
|
|
17
|
-
"required": ["session_id"],
|
|
18
|
-
"properties": {
|
|
19
|
-
"session_id": { "type": "string" },
|
|
20
|
-
"task_id": { "type": "string" },
|
|
21
|
-
"db_refs": { "type": "array", "items": { "type": "string" } },
|
|
22
|
-
"file_refs": { "type": "array", "items": { "type": "string" } },
|
|
23
|
-
"log_refs": { "type": "array", "items": { "type": "string" } },
|
|
24
|
-
"harness_root": { "type": "string" },
|
|
25
|
-
"project_root": { "type": "string" }
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"created_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
29
|
-
"updated_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
30
|
-
"confidence": { "type": "number", "minimum": 0, "maximum": 1, "default": 1.0 },
|
|
31
|
-
"signal": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
32
|
-
"visibility": { "type": "string", "enum": ["implicit", "selective", "explicit"] },
|
|
33
|
-
"status": { "type": "string", "enum": ["active", "superseded", "archived", "closed", "open"] },
|
|
34
|
-
"refs": { "type": "array", "items": { "type": "string" }, "description": "Related object IDs or file paths" },
|
|
35
|
-
"review_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
36
|
-
"decay_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
37
|
-
"archived_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
38
|
-
"target": { "type": "string", "enum": ["harness", "agents", "memory", "refs", "migration"], "description": "What this audit targets" },
|
|
39
|
-
"overall_score": { "type": "number", "minimum": 0, "maximum": 100, "description": "Overall health score (0-100)" },
|
|
40
|
-
"checks": {
|
|
41
|
-
"type": "array",
|
|
42
|
-
"items": {
|
|
43
|
-
"type": "object",
|
|
44
|
-
"required": ["name", "status"],
|
|
45
|
-
"properties": {
|
|
46
|
-
"name": { "type": "string", "description": "Check name" },
|
|
47
|
-
"status": { "type": "string", "enum": ["pass", "warn", "fail"], "description": "Check result" },
|
|
48
|
-
"details": { "type": "string", "description": "Additional detail" }
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"top_actions": { "type": "array", "items": { "type": "string" }, "description": "Highest-priority remediations" },
|
|
53
|
-
"integrity": {
|
|
54
|
-
"type": "object",
|
|
55
|
-
"required": ["refs_ok", "provenance_ok", "duplicates_ok"],
|
|
56
|
-
"properties": {
|
|
57
|
-
"refs_ok": { "type": "boolean", "description": "All references resolve" },
|
|
58
|
-
"provenance_ok": { "type": "boolean", "description": "All objects have valid provenance" },
|
|
59
|
-
"duplicates_ok": { "type": "boolean", "description": "No duplicate IDs found" }
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
"description": { "type": "string", "description": "Optional description" },
|
|
63
|
-
"environment_fingerprint": {
|
|
64
|
-
"type": "object",
|
|
65
|
-
"description": "System fingerprint at creation time",
|
|
66
|
-
"properties": {
|
|
67
|
-
"cwd": { "type": "string" },
|
|
68
|
-
"harness_root": { "type": "string" },
|
|
69
|
-
"project_root": { "type": "string" },
|
|
70
|
-
"project": { "type": "string" },
|
|
71
|
-
"session_id": { "type": "string" },
|
|
72
|
-
"os": { "type": "string" },
|
|
73
|
-
"release": { "type": "string" },
|
|
74
|
-
"arch": { "type": "string" },
|
|
75
|
-
"shell": { "type": "string" },
|
|
76
|
-
"provider": { "type": "string" },
|
|
77
|
-
"model": { "type": "string" },
|
|
78
|
-
"sha256": { "type": "string" }
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Backlog Item",
|
|
4
|
-
"description": "Evidence-backed self-improvement item for openhermes or project maintenance.",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["id", "class", "summary", "title", "priority", "trigger", "provenance", "created_at", "status"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"id": { "type": "string", "description": "Unique identifier, recommended pattern: backlog-YYYYMMDD-short-slug" },
|
|
9
|
-
"class": { "type": "string", "const": "backlog" },
|
|
10
|
-
"project": { "type": ["string", "null"], "description": "Project identifier; null for openhermes scope" },
|
|
11
|
-
"scope": { "type": "string", "enum": ["project", "global", "session", "harness"], "description": "Scope of applicability" },
|
|
12
|
-
"summary": { "type": "string", "description": "One-line description of the backlog item" },
|
|
13
|
-
"tags": { "type": "array", "items": { "type": "string" }, "description": "Searchable tags" },
|
|
14
|
-
"source": { "type": "string", "enum": ["user", "agent", "audit", "migration", "repair"], "description": "Origin of this record" },
|
|
15
|
-
"provenance": {
|
|
16
|
-
"type": "object",
|
|
17
|
-
"required": ["session_id"],
|
|
18
|
-
"properties": {
|
|
19
|
-
"session_id": { "type": "string" },
|
|
20
|
-
"task_id": { "type": "string" },
|
|
21
|
-
"db_refs": { "type": "array", "items": { "type": "string" } },
|
|
22
|
-
"file_refs": { "type": "array", "items": { "type": "string" } },
|
|
23
|
-
"log_refs": { "type": "array", "items": { "type": "string" } },
|
|
24
|
-
"harness_root": { "type": "string" },
|
|
25
|
-
"project_root": { "type": "string" }
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"created_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
29
|
-
"updated_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
30
|
-
"confidence": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.8 },
|
|
31
|
-
"signal": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
32
|
-
"visibility": { "type": "string", "enum": ["implicit", "selective", "explicit"] },
|
|
33
|
-
"status": { "type": "string", "enum": ["active", "superseded", "archived", "closed", "open"] },
|
|
34
|
-
"refs": { "type": "array", "items": { "type": "string" }, "description": "Related object IDs or file paths" },
|
|
35
|
-
"review_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
36
|
-
"decay_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
37
|
-
"archived_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
38
|
-
"title": { "type": "string", "description": "Human-readable title for this backlog item" },
|
|
39
|
-
"priority": { "type": "string", "enum": ["low", "medium", "high", "critical", "P0", "P1", "P2", "P3", "P4"], "description": "Priority level (low/medium/high/critical or P0-P4)" },
|
|
40
|
-
"trigger": { "type": "string", "enum": ["audit", "mistake", "drift", "user", "manual"], "default": "manual", "description": "What triggered creation of this item" },
|
|
41
|
-
"evidence_refs": { "type": "array", "items": { "type": "string" }, "description": "References to evidence (audit IDs, mistake IDs, file paths)" },
|
|
42
|
-
"done_when": { "type": "array", "items": { "type": "string" }, "description": "Acceptance criteria — concrete conditions for closure" },
|
|
43
|
-
"description": { "type": "string", "description": "Optional description" },
|
|
44
|
-
"environment_fingerprint": {
|
|
45
|
-
"type": "object",
|
|
46
|
-
"description": "System fingerprint at creation time",
|
|
47
|
-
"properties": {
|
|
48
|
-
"cwd": { "type": "string" },
|
|
49
|
-
"harness_root": { "type": "string" },
|
|
50
|
-
"project_root": { "type": "string" },
|
|
51
|
-
"project": { "type": "string" },
|
|
52
|
-
"session_id": { "type": "string" },
|
|
53
|
-
"os": { "type": "string" },
|
|
54
|
-
"release": { "type": "string" },
|
|
55
|
-
"arch": { "type": "string" },
|
|
56
|
-
"shell": { "type": "string" },
|
|
57
|
-
"provider": { "type": "string" },
|
|
58
|
-
"model": { "type": "string" },
|
|
59
|
-
"sha256": { "type": "string" }
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Checkpoint",
|
|
4
|
-
"description": "Bridge between volatile working context and durable state. Written before compaction.",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["id", "class", "summary", "mission", "current_state", "next_actions", "provenance", "created_at", "status"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"id": { "type": "string", "description": "Unique identifier, recommended pattern: checkpoint-YYYYMMDD-short-slug" },
|
|
9
|
-
"class": { "type": "string", "const": "checkpoint" },
|
|
10
|
-
"project": { "type": ["string", "null"], "description": "Project identifier; null for global/openhermes/session scope" },
|
|
11
|
-
"scope": { "type": "string", "enum": ["project", "global", "session", "harness"], "description": "Scope of applicability" },
|
|
12
|
-
"summary": { "type": "string", "description": "One-line description of checkpoint state" },
|
|
13
|
-
"tags": { "type": "array", "items": { "type": "string" }, "description": "Searchable tags" },
|
|
14
|
-
"source": { "type": "string", "enum": ["user", "agent", "audit", "migration", "repair"], "description": "Origin of this record" },
|
|
15
|
-
"provenance": {
|
|
16
|
-
"type": "object",
|
|
17
|
-
"required": ["session_id"],
|
|
18
|
-
"properties": {
|
|
19
|
-
"session_id": { "type": "string" },
|
|
20
|
-
"task_id": { "type": "string" },
|
|
21
|
-
"db_refs": { "type": "array", "items": { "type": "string" } },
|
|
22
|
-
"file_refs": { "type": "array", "items": { "type": "string" } },
|
|
23
|
-
"log_refs": { "type": "array", "items": { "type": "string" } },
|
|
24
|
-
"harness_root": { "type": "string" },
|
|
25
|
-
"project_root": { "type": "string" }
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"created_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
29
|
-
"updated_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
30
|
-
"confidence": { "type": "number", "minimum": 0, "maximum": 1, "default": 1.0 },
|
|
31
|
-
"signal": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
32
|
-
"visibility": { "type": "string", "enum": ["implicit", "selective", "explicit"] },
|
|
33
|
-
"status": { "type": "string", "enum": ["active", "superseded", "archived", "closed", "open"] },
|
|
34
|
-
"refs": { "type": "array", "items": { "type": "string" }, "description": "Related object IDs or file paths" },
|
|
35
|
-
"review_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
36
|
-
"decay_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
37
|
-
"archived_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
38
|
-
"mission": { "type": "string", "description": "Current task or goal" },
|
|
39
|
-
"current_state": { "type": "string", "description": "What has been done so far" },
|
|
40
|
-
"active_decisions": { "type": "array", "items": { "type": "string" }, "description": "Decision IDs currently shaping behavior" },
|
|
41
|
-
"active_constraints": { "type": "array", "items": { "type": "string" }, "description": "Constraint IDs currently enforced" },
|
|
42
|
-
"blockers": { "type": "array", "items": { "type": "string" }, "description": "What is preventing progress" },
|
|
43
|
-
"next_actions": { "type": "array", "items": { "type": "string" }, "description": "Concrete next steps" },
|
|
44
|
-
"risk_notes": { "type": "array", "items": { "type": "string" }, "description": "Open questions, untested assumptions, fragile state" },
|
|
45
|
-
"description": { "type": "string", "description": "Optional description" },
|
|
46
|
-
"environment_fingerprint": {
|
|
47
|
-
"type": "object",
|
|
48
|
-
"description": "System fingerprint at creation time",
|
|
49
|
-
"properties": {
|
|
50
|
-
"cwd": { "type": "string" },
|
|
51
|
-
"harness_root": { "type": "string" },
|
|
52
|
-
"project_root": { "type": "string" },
|
|
53
|
-
"project": { "type": "string" },
|
|
54
|
-
"session_id": { "type": "string" },
|
|
55
|
-
"os": { "type": "string" },
|
|
56
|
-
"release": { "type": "string" },
|
|
57
|
-
"arch": { "type": "string" },
|
|
58
|
-
"shell": { "type": "string" },
|
|
59
|
-
"provider": { "type": "string" },
|
|
60
|
-
"model": { "type": "string" },
|
|
61
|
-
"sha256": { "type": "string" }
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Constraint",
|
|
4
|
-
"description": "Hard limits, environment realities, user boundaries, safety rules, tool boundaries.",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["id", "class", "summary", "rule", "enforcement", "source_kind", "active", "provenance", "created_at", "status"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"id": { "type": "string", "description": "Unique identifier, recommended pattern: constraint-YYYYMMDD-short-slug" },
|
|
9
|
-
"class": { "type": "string", "const": "constraint" },
|
|
10
|
-
"project": { "type": ["string", "null"], "description": "Project identifier; null for global/openhermes/session scope" },
|
|
11
|
-
"scope": { "type": "string", "enum": ["project", "global", "session", "harness"], "description": "Scope of applicability" },
|
|
12
|
-
"summary": { "type": "string", "description": "One-line description of the constraint" },
|
|
13
|
-
"tags": { "type": "array", "items": { "type": "string" }, "description": "Searchable tags" },
|
|
14
|
-
"source": { "type": "string", "enum": ["user", "agent", "audit", "migration", "repair"], "description": "Origin of this record" },
|
|
15
|
-
"provenance": {
|
|
16
|
-
"type": "object",
|
|
17
|
-
"required": ["session_id"],
|
|
18
|
-
"properties": {
|
|
19
|
-
"session_id": { "type": "string" },
|
|
20
|
-
"task_id": { "type": "string" },
|
|
21
|
-
"db_refs": { "type": "array", "items": { "type": "string" } },
|
|
22
|
-
"file_refs": { "type": "array", "items": { "type": "string" } },
|
|
23
|
-
"log_refs": { "type": "array", "items": { "type": "string" } },
|
|
24
|
-
"harness_root": { "type": "string" },
|
|
25
|
-
"project_root": { "type": "string" }
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"created_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
29
|
-
"updated_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
30
|
-
"confidence": { "type": "number", "minimum": 0, "maximum": 1, "default": 1.0 },
|
|
31
|
-
"signal": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
32
|
-
"visibility": { "type": "string", "enum": ["implicit", "selective", "explicit"] },
|
|
33
|
-
"status": { "type": "string", "enum": ["active", "superseded", "archived", "closed", "open"] },
|
|
34
|
-
"refs": { "type": "array", "items": { "type": "string" }, "description": "Related object IDs or file paths" },
|
|
35
|
-
"review_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
36
|
-
"decay_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
37
|
-
"archived_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
38
|
-
"rule": { "type": "string", "description": "The constraint rule text" },
|
|
39
|
-
"enforcement": { "type": "string", "enum": ["hard", "soft"], "description": "Whether violations are blocked (hard) or warned (soft)" },
|
|
40
|
-
"source_kind": { "type": "string", "enum": ["user", "runtime", "safety", "tool", "policy"], "description": "What kind of source produced this constraint" },
|
|
41
|
-
"active": { "type": "boolean", "description": "Whether this constraint is currently enforced" },
|
|
42
|
-
"description": { "type": "string", "description": "Optional description" },
|
|
43
|
-
"environment_fingerprint": {
|
|
44
|
-
"type": "object",
|
|
45
|
-
"description": "System fingerprint at creation time",
|
|
46
|
-
"properties": {
|
|
47
|
-
"cwd": { "type": "string" },
|
|
48
|
-
"harness_root": { "type": "string" },
|
|
49
|
-
"project_root": { "type": "string" },
|
|
50
|
-
"project": { "type": "string" },
|
|
51
|
-
"session_id": { "type": "string" },
|
|
52
|
-
"os": { "type": "string" },
|
|
53
|
-
"release": { "type": "string" },
|
|
54
|
-
"arch": { "type": "string" },
|
|
55
|
-
"shell": { "type": "string" },
|
|
56
|
-
"provider": { "type": "string" },
|
|
57
|
-
"model": { "type": "string" },
|
|
58
|
-
"sha256": { "type": "string" }
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Decision",
|
|
4
|
-
"description": "Durable user or openhermes choices that shape future behavior.",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["id", "class", "summary", "context", "choice", "reason", "consequences", "provenance", "created_at", "status"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"id": { "type": "string", "description": "Unique identifier, recommended pattern: decision-YYYYMMDD-short-slug" },
|
|
9
|
-
"class": { "type": "string", "const": "decision" },
|
|
10
|
-
"project": { "type": ["string", "null"], "description": "Project identifier; null for global/openhermes/session scope" },
|
|
11
|
-
"scope": { "type": "string", "enum": ["project", "global", "session", "harness"], "description": "Scope of applicability" },
|
|
12
|
-
"summary": { "type": "string", "description": "One-line description of the decision" },
|
|
13
|
-
"tags": { "type": "array", "items": { "type": "string" }, "description": "Searchable tags" },
|
|
14
|
-
"source": { "type": "string", "enum": ["user", "agent", "audit", "migration", "repair"], "description": "Origin of this record" },
|
|
15
|
-
"provenance": {
|
|
16
|
-
"type": "object",
|
|
17
|
-
"required": ["session_id"],
|
|
18
|
-
"properties": {
|
|
19
|
-
"session_id": { "type": "string" },
|
|
20
|
-
"task_id": { "type": "string" },
|
|
21
|
-
"db_refs": { "type": "array", "items": { "type": "string" } },
|
|
22
|
-
"file_refs": { "type": "array", "items": { "type": "string" } },
|
|
23
|
-
"log_refs": { "type": "array", "items": { "type": "string" } },
|
|
24
|
-
"harness_root": { "type": "string" },
|
|
25
|
-
"project_root": { "type": "string" }
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"created_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
29
|
-
"updated_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
30
|
-
"confidence": { "type": "number", "minimum": 0, "maximum": 1, "default": 1.0 },
|
|
31
|
-
"signal": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
32
|
-
"visibility": { "type": "string", "enum": ["implicit", "selective", "explicit"] },
|
|
33
|
-
"status": { "type": "string", "enum": ["active", "superseded", "archived", "closed", "open"] },
|
|
34
|
-
"refs": { "type": "array", "items": { "type": "string" }, "description": "Related object IDs or file paths" },
|
|
35
|
-
"review_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
36
|
-
"decay_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
37
|
-
"archived_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
38
|
-
"context": { "type": "string", "description": "Full context in which the decision was made" },
|
|
39
|
-
"choice": { "type": "string", "description": "The specific choice made" },
|
|
40
|
-
"reason": { "type": "string", "description": "Rationale for the choice" },
|
|
41
|
-
"consequences": { "type": "array", "items": { "type": "string" }, "description": "Expected or observed consequences" },
|
|
42
|
-
"supersedes": { "type": "array", "items": { "type": "string" }, "description": "Decision IDs this decision supersedes" },
|
|
43
|
-
"description": { "type": "string", "description": "Optional description" },
|
|
44
|
-
"environment_fingerprint": {
|
|
45
|
-
"type": "object",
|
|
46
|
-
"description": "System fingerprint at creation time",
|
|
47
|
-
"properties": {
|
|
48
|
-
"cwd": { "type": "string" },
|
|
49
|
-
"harness_root": { "type": "string" },
|
|
50
|
-
"project_root": { "type": "string" },
|
|
51
|
-
"project": { "type": "string" },
|
|
52
|
-
"session_id": { "type": "string" },
|
|
53
|
-
"os": { "type": "string" },
|
|
54
|
-
"release": { "type": "string" },
|
|
55
|
-
"arch": { "type": "string" },
|
|
56
|
-
"shell": { "type": "string" },
|
|
57
|
-
"provider": { "type": "string" },
|
|
58
|
-
"model": { "type": "string" },
|
|
59
|
-
"sha256": { "type": "string" }
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Instinct",
|
|
4
|
-
"description": "Reusable proven patterns or heuristics with success/failure tracking.",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["id", "class", "summary", "trigger", "action", "success_count", "failure_count", "promotion_state", "provenance", "created_at", "status"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"id": { "type": "string", "description": "Unique identifier, recommended pattern: instinct-YYYYMMDD-short-slug" },
|
|
9
|
-
"class": { "type": "string", "const": "instinct" },
|
|
10
|
-
"project": { "type": ["string", "null"], "description": "Project identifier; null for global/openhermes/session scope" },
|
|
11
|
-
"scope": { "type": "string", "enum": ["project", "global", "session", "harness"], "description": "Scope of applicability" },
|
|
12
|
-
"summary": { "type": "string", "description": "One-line description of the instinct" },
|
|
13
|
-
"tags": { "type": "array", "items": { "type": "string" }, "description": "Searchable tags" },
|
|
14
|
-
"source": { "type": "string", "enum": ["user", "agent", "audit", "migration", "repair"], "description": "Origin of this record" },
|
|
15
|
-
"provenance": {
|
|
16
|
-
"type": "object",
|
|
17
|
-
"required": ["session_id"],
|
|
18
|
-
"properties": {
|
|
19
|
-
"session_id": { "type": "string" },
|
|
20
|
-
"task_id": { "type": "string" },
|
|
21
|
-
"db_refs": { "type": "array", "items": { "type": "string" } },
|
|
22
|
-
"file_refs": { "type": "array", "items": { "type": "string" } },
|
|
23
|
-
"log_refs": { "type": "array", "items": { "type": "string" } },
|
|
24
|
-
"harness_root": { "type": "string" },
|
|
25
|
-
"project_root": { "type": "string" }
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"created_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
29
|
-
"updated_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
30
|
-
"confidence": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.5 },
|
|
31
|
-
"signal": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
32
|
-
"visibility": { "type": "string", "enum": ["implicit", "selective", "explicit"] },
|
|
33
|
-
"status": { "type": "string", "enum": ["active", "superseded", "archived", "closed", "open"] },
|
|
34
|
-
"refs": { "type": "array", "items": { "type": "string" }, "description": "Related object IDs or file paths" },
|
|
35
|
-
"review_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
36
|
-
"decay_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
37
|
-
"archived_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
38
|
-
"trigger": { "type": "string", "default": "manual", "description": "Condition or pattern that triggers this instinct" },
|
|
39
|
-
"action": { "type": "string", "description": "Recommended action when triggered" },
|
|
40
|
-
"success_count": { "type": "integer", "minimum": 0, "default": 0, "description": "Number of successful applications" },
|
|
41
|
-
"failure_count": { "type": "integer", "minimum": 0, "default": 0, "description": "Number of failed applications" },
|
|
42
|
-
"promotion_state": { "type": "string", "enum": ["project", "candidate_global", "global"], "default": "project", "description": "Current promotion level" },
|
|
43
|
-
"description": { "type": "string", "description": "Optional description" },
|
|
44
|
-
"environment_fingerprint": {
|
|
45
|
-
"type": "object",
|
|
46
|
-
"description": "System fingerprint at creation time",
|
|
47
|
-
"properties": {
|
|
48
|
-
"cwd": { "type": "string" },
|
|
49
|
-
"harness_root": { "type": "string" },
|
|
50
|
-
"project_root": { "type": "string" },
|
|
51
|
-
"project": { "type": "string" },
|
|
52
|
-
"session_id": { "type": "string" },
|
|
53
|
-
"os": { "type": "string" },
|
|
54
|
-
"release": { "type": "string" },
|
|
55
|
-
"arch": { "type": "string" },
|
|
56
|
-
"shell": { "type": "string" },
|
|
57
|
-
"provider": { "type": "string" },
|
|
58
|
-
"model": { "type": "string" },
|
|
59
|
-
"sha256": { "type": "string" }
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Loop State",
|
|
4
|
-
"description": "Runtime loop state for curator session tracking and heartbeat. Written by curator.js plugin.",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["status", "updated_at", "phase", "heartbeat_at"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"status": { "type": "string", "enum": ["idle", "active", "error", "compacted"], "description": "Current session status" },
|
|
9
|
-
"last_gate_result": { "type": ["string", "null"], "description": "Result of last gate check, if any" },
|
|
10
|
-
"last_error": { "type": ["string", "null"], "description": "Last error message" },
|
|
11
|
-
"updated_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp of last update" },
|
|
12
|
-
"last_checkpoint_id": { "type": "string", "description": "ID of the most recent checkpoint" },
|
|
13
|
-
"phase": { "type": "string", "description": "Current lifecycle phase (session.idle, session.compacted, compress, etc.)" },
|
|
14
|
-
"heartbeat_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp of last heartbeat" },
|
|
15
|
-
"budget": {
|
|
16
|
-
"type": "object",
|
|
17
|
-
"description": "Token or execution budget tracking",
|
|
18
|
-
"properties": {
|
|
19
|
-
"remaining": { "type": "number" },
|
|
20
|
-
"total": { "type": "number" },
|
|
21
|
-
"reset_at": { "type": "string", "format": "date-time" }
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"rollback": {
|
|
25
|
-
"type": "object",
|
|
26
|
-
"description": "Rollback tracking",
|
|
27
|
-
"properties": {
|
|
28
|
-
"level": { "type": "integer" },
|
|
29
|
-
"last_rollback_at": { "type": "string", "format": "date-time" }
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Mistake",
|
|
4
|
-
"description": "Failure memory with root cause, fix, and prevention rule. Stored as JSONL (one object per line).",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["id", "class", "summary", "type", "failure", "root_cause", "fix", "prevention", "strike", "provenance", "created_at", "status"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"id": { "type": "string", "description": "Unique identifier, recommended pattern: mistake-YYYYMMDD-short-slug" },
|
|
9
|
-
"class": { "type": "string", "const": "mistake" },
|
|
10
|
-
"project": { "type": ["string", "null"], "description": "Project identifier; null for global/openhermes scope" },
|
|
11
|
-
"scope": { "type": "string", "enum": ["project", "global", "session", "harness"], "description": "Scope of applicability" },
|
|
12
|
-
"summary": { "type": "string", "description": "One-line description of the mistake" },
|
|
13
|
-
"tags": { "type": "array", "items": { "type": "string" }, "description": "Searchable tags" },
|
|
14
|
-
"source": { "type": "string", "enum": ["user", "agent", "audit", "migration", "repair"], "description": "Origin of this record" },
|
|
15
|
-
"type": { "type": "string", "enum": ["build", "logic", "config", "security", "tool", "scope", "other"], "description": "Category of mistake" },
|
|
16
|
-
"failure": { "type": "string", "description": "What happened — the observable failure" },
|
|
17
|
-
"root_cause": { "type": "string", "description": "Why it happened — the underlying cause" },
|
|
18
|
-
"fix": { "type": "string", "description": "How it was resolved" },
|
|
19
|
-
"prevention": { "type": "string", "description": "Rule or guard to prevent recurrence" },
|
|
20
|
-
"strike": { "type": "integer", "minimum": 1, "description": "Strike count for this mistake type" },
|
|
21
|
-
"provenance": {
|
|
22
|
-
"type": "object",
|
|
23
|
-
"required": ["session_id"],
|
|
24
|
-
"properties": {
|
|
25
|
-
"session_id": { "type": "string" },
|
|
26
|
-
"task_id": { "type": "string" },
|
|
27
|
-
"db_refs": { "type": "array", "items": { "type": "string" } },
|
|
28
|
-
"file_refs": { "type": "array", "items": { "type": "string" } },
|
|
29
|
-
"log_refs": { "type": "array", "items": { "type": "string" } },
|
|
30
|
-
"harness_root": { "type": "string" },
|
|
31
|
-
"project_root": { "type": "string" }
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"confidence": { "type": "number", "minimum": 0, "maximum": 1, "default": 1.0 },
|
|
35
|
-
"signal": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
|
|
36
|
-
"visibility": { "type": "string", "enum": ["implicit", "selective", "explicit"] },
|
|
37
|
-
"status": { "type": "string", "enum": ["active", "superseded", "archived", "closed", "open"] },
|
|
38
|
-
"refs": { "type": "array", "items": { "type": "string" }, "description": "Related object IDs or file paths" },
|
|
39
|
-
"created_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
40
|
-
"updated_at": { "type": "string", "format": "date-time", "description": "ISO-8601 timestamp" },
|
|
41
|
-
"review_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
42
|
-
"decay_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
43
|
-
"archived_at": { "type": ["string", "null"], "format": "date-time", "description": "ISO-8601 or null" },
|
|
44
|
-
"description": { "type": "string", "description": "Optional description" },
|
|
45
|
-
"environment_fingerprint": {
|
|
46
|
-
"type": "object",
|
|
47
|
-
"description": "System fingerprint at creation time",
|
|
48
|
-
"properties": {
|
|
49
|
-
"cwd": { "type": "string" },
|
|
50
|
-
"harness_root": { "type": "string" },
|
|
51
|
-
"project_root": { "type": "string" },
|
|
52
|
-
"project": { "type": "string" },
|
|
53
|
-
"session_id": { "type": "string" },
|
|
54
|
-
"os": { "type": "string" },
|
|
55
|
-
"release": { "type": "string" },
|
|
56
|
-
"arch": { "type": "string" },
|
|
57
|
-
"shell": { "type": "string" },
|
|
58
|
-
"provider": { "type": "string" },
|
|
59
|
-
"model": { "type": "string" },
|
|
60
|
-
"sha256": { "type": "string" }
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|