agentic-engineering-harness 0.6.29 → 0.8.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/dist/agents/permissions.js +4 -3
- package/dist/agents/permissions.js.map +1 -1
- package/dist/cli.js +34 -1
- package/dist/cli.js.map +1 -1
- package/dist/context/compression/headroom.d.ts +6 -1
- package/dist/context/compression/headroom.js +60 -15
- package/dist/context/compression/headroom.js.map +1 -1
- package/dist/context/compression/types.d.ts +1 -0
- package/dist/context/gateway.d.ts +1 -0
- package/dist/context/gateway.js +58 -44
- package/dist/context/gateway.js.map +1 -1
- package/dist/context/repository/serena.d.ts +1 -1
- package/dist/context/repository/serena.js +2 -1
- package/dist/context/repository/serena.js.map +1 -1
- package/dist/context/transport.d.ts +33 -0
- package/dist/context/transport.js +63 -0
- package/dist/context/transport.js.map +1 -0
- package/dist/core/config.js +5 -5
- package/dist/core/config.js.map +1 -1
- package/dist/core/init.js +2 -1
- package/dist/core/init.js.map +1 -1
- package/dist/core/run.js +6 -2
- package/dist/core/run.js.map +1 -1
- package/dist/core/sdd.js +2 -2
- package/dist/core/sdd.js.map +1 -1
- package/dist/core/types.d.ts +53 -1
- package/dist/core/verify.js +2 -1
- package/dist/core/verify.js.map +1 -1
- package/dist/delivery/finalize.d.ts +1 -1
- package/dist/delivery/finalize.js +6 -1
- package/dist/delivery/finalize.js.map +1 -1
- package/dist/evals/fullStack.d.ts +10 -7
- package/dist/evals/fullStack.js +132 -36
- package/dist/evals/fullStack.js.map +1 -1
- package/dist/evidence/graph.d.ts +1 -0
- package/dist/evidence/graph.js +28 -11
- package/dist/evidence/graph.js.map +1 -1
- package/dist/issues/intake.d.ts +1 -1
- package/dist/maturity/inventory.d.ts +30 -0
- package/dist/maturity/inventory.js +53 -0
- package/dist/maturity/inventory.js.map +1 -0
- package/dist/memory/candidates.d.ts +29 -0
- package/dist/memory/candidates.js +31 -0
- package/dist/memory/candidates.js.map +1 -0
- package/dist/paseo/launchSpec.js +4 -4
- package/dist/paseo/launchSpec.js.map +1 -1
- package/dist/provenance/generate.d.ts +27 -1
- package/dist/provenance/generate.js +233 -75
- package/dist/provenance/generate.js.map +1 -1
- package/dist/providers/engram.d.ts +1 -0
- package/dist/providers/engram.js +40 -8
- package/dist/providers/engram.js.map +1 -1
- package/dist/providers/graphify.d.ts +20 -1
- package/dist/providers/graphify.js +106 -26
- package/dist/providers/graphify.js.map +1 -1
- package/dist/providers/serenaMcp.d.ts +7 -0
- package/dist/providers/serenaMcp.js +77 -0
- package/dist/providers/serenaMcp.js.map +1 -0
- package/dist/providers/validation/bddExecution.d.ts +15 -0
- package/dist/providers/validation/bddExecution.js +107 -0
- package/dist/providers/validation/bddExecution.js.map +1 -0
- package/dist/providers/validation/integrationEnvironment.d.ts +12 -0
- package/dist/providers/validation/integrationEnvironment.js +101 -0
- package/dist/providers/validation/integrationEnvironment.js.map +1 -0
- package/dist/providers/validation/pact.d.ts +15 -0
- package/dist/providers/validation/pact.js +79 -0
- package/dist/providers/validation/pact.js.map +1 -0
- package/dist/providers/validation/protocol.d.ts +7 -0
- package/dist/providers/validation/protocol.js +35 -0
- package/dist/providers/validation/protocol.js.map +1 -0
- package/dist/providers/validation/providerUtils.d.ts +18 -0
- package/dist/providers/validation/providerUtils.js +40 -0
- package/dist/providers/validation/providerUtils.js.map +1 -0
- package/dist/providers/validation/registry.d.ts +21 -0
- package/dist/providers/validation/registry.js +59 -0
- package/dist/providers/validation/registry.js.map +1 -0
- package/dist/providers/validation/reqnroll.d.ts +7 -0
- package/dist/providers/validation/reqnroll.js +50 -0
- package/dist/providers/validation/reqnroll.js.map +1 -0
- package/dist/providers/validation/testExecution.d.ts +15 -0
- package/dist/providers/validation/testExecution.js +122 -0
- package/dist/providers/validation/testExecution.js.map +1 -0
- package/dist/providers/validation/types.d.ts +158 -0
- package/dist/providers/validation/types.js +2 -0
- package/dist/providers/validation/types.js.map +1 -0
- package/dist/providers/versions.d.ts +10 -0
- package/dist/providers/versions.js +3 -0
- package/dist/providers/versions.js.map +1 -0
- package/dist/spec/openspec.js +12 -7
- package/dist/spec/openspec.js.map +1 -1
- package/dist/telemetry/events.js +36 -37
- package/dist/telemetry/events.js.map +1 -1
- package/dist/telemetry/otlp.d.ts +2 -1
- package/dist/telemetry/otlp.js +20 -41
- package/dist/telemetry/otlp.js.map +1 -1
- package/dist/telemetry/tracing.d.ts +19 -0
- package/dist/telemetry/tracing.js +141 -0
- package/dist/telemetry/tracing.js.map +1 -0
- package/dist/toolchain/config.js +3 -2
- package/dist/toolchain/config.js.map +1 -1
- package/dist/validators/external.js +6 -5
- package/dist/validators/external.js.map +1 -1
- package/dist/validators/gherkin.js +5 -56
- package/dist/validators/gherkin.js.map +1 -1
- package/dist/validators/registry.js +42 -3
- package/dist/validators/registry.js.map +1 -1
- package/dist/validators/toolEvidence.d.ts +2 -22
- package/dist/validators/toolEvidence.js +38 -5
- package/dist/validators/toolEvidence.js.map +1 -1
- package/dist/validators/types.d.ts +2 -1
- package/dist/workers/agentPrompt.js +5 -3
- package/dist/workers/agentPrompt.js.map +1 -1
- package/docs/ARCHITECTURE.md +60 -2
- package/docs/COMPONENT_MATURITY.md +19 -15
- package/docs/OSS_STACK.md +5 -4
- package/docs/V0.2.md +4 -1
- package/docs/VALIDATION.md +54 -3
- package/docs/VALIDATION_COMPATIBILITY.md +19 -0
- package/docs/component-maturity.json +34 -0
- package/maturity/components.yaml +59 -0
- package/package.json +8 -1
- package/schemas/project.schema.json +3 -3
- package/schemas/validation-report.schema.json +2 -1
- package/schemas/validation-result.schema.json +84 -0
- package/scripts/headroom-bridge.py +88 -0
- package/templates/project.yaml +1 -0
- package/templates/provider-versions.json +10 -0
- package/templates/toolchain.yaml +12 -4
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
} },
|
|
48
48
|
"delivery": { "type": "object", "properties": { "stateDir": { "type": "string" }, "github": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "tokenEnv": { "type": "string", "minLength": 1 }, "repository": { "type": "string", "pattern": "^[^/]+/[^/]+$" }, "apiBaseUrl": { "type": "string", "format": "uri" }, "assignTokenOwner": { "type": "boolean" }, "labels": { "type": "array", "items": { "type": "string" } }, "branchPattern": { "type": "string", "minLength": 1 }, "finalizeOnAcceptance": { "type": "boolean" }, "pullRequestDraft": { "type": "boolean" } } }, "paseo": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "createWorkspace": { "type": "boolean" }, "autoUseWorkspace": { "type": "boolean" }, "worktreeSlugPattern": { "type": "string", "minLength": 1 } } } } },
|
|
49
49
|
"memory": { "type": "object" },
|
|
50
|
-
"codeIntelligence": { "type": "object", "properties": { "provider": { "type": "string" }, "required": { "type": "boolean" }, "graphPath": { "type": "string" }, "snapshotDir": { "type": "string" }, "refreshCommand": { "type": "string" }, "scheduling": { "type": "object", "properties": { "useEdges": { "type": "boolean" }, "maxGraphHops": { "type": "integer", "minimum": 1 }, "maxSharedNodes": { "type": "integer", "minimum": 0 }, "centralityConflictThreshold": { "type": "number", "minimum": 0 } } } } },
|
|
50
|
+
"codeIntelligence": { "type": "object", "properties": { "provider": { "type": "string" }, "required": { "type": "boolean" }, "graphPath": { "type": "string" }, "snapshotDir": { "type": "string" }, "codeOnly": { "type": "boolean" }, "refreshCommand": { "type": "string" }, "scheduling": { "type": "object", "properties": { "useEdges": { "type": "boolean" }, "maxGraphHops": { "type": "integer", "minimum": 1 }, "maxSharedNodes": { "type": "integer", "minimum": 0 }, "centralityConflictThreshold": { "type": "number", "minimum": 0 } } } } },
|
|
51
51
|
"context": { "type": "object", "properties": {
|
|
52
52
|
"mode": { "enum": ["observe", "enforce"] },
|
|
53
53
|
"budgets": { "type": "object", "properties": {
|
|
@@ -65,11 +65,11 @@
|
|
|
65
65
|
"organization": { "type": "object", "properties": { "policyBundles": { "type": "object", "properties": { "cacheDir": { "type": "string" }, "required": { "type": "boolean" }, "sources": { "type": "array", "items": { "$ref": "#/$defs/policyBundleSource" } } } } } },
|
|
66
66
|
"distributed": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "provider": { "type": "string" }, "queueDir": { "type": "string" }, "endpoint": { "type": "string", "format": "uri" }, "tokenEnv": { "type": "string" }, "pollIntervalMs": { "type": "integer", "minimum": 1 }, "leaseSeconds": { "type": "integer", "minimum": 1 }, "workerId": { "type": "string" } } },
|
|
67
67
|
"sdd": { "type": "object", "properties": { "specsDir": { "type": "string" }, "contractsDir": { "type": "string" }, "reportsDir": { "type": "string" }, "repairsDir": { "type": "string" }, "runsDir": { "type": "string" }, "authoring": { "type": "object", "properties": { "provider": { "type": "string", "minLength": 1 }, "schema": { "type": "string", "minLength": 1 }, "managerAgent": { "type": "string", "minLength": 1 } } } } },
|
|
68
|
-
"validation": { "type": "object" },
|
|
68
|
+
"validation": { "type": "object", "properties": { "baseRef": { "type": "string" }, "commands": { "type": "array" }, "validators": { "type": "array" }, "providers": { "type": "array", "items": { "type": "object", "required": ["id", "capability", "provider"], "properties": { "id": { "type": "string", "minLength": 1 }, "capability": { "type": "string", "minLength": 1 }, "provider": { "type": "string", "minLength": 1 }, "command": { "type": "string" }, "required": { "type": "boolean" }, "timeoutSeconds": { "type": "integer", "minimum": 1 }, "workingDirectory": { "type": "string" }, "options": { "type": "object" } } } }, "frozenPaths": { "type": "array" }, "requireSeal": { "type": "boolean" } } },
|
|
69
69
|
"security": { "type": "object", "properties": { "sandbox": { "type": "object", "properties": { "provider": { "type": "string" }, "required": { "type": "boolean" }, "image": { "type": "string" }, "imageDigest": { "type": "string" }, "network": { "type": "boolean" }, "extraArgs": { "type": "array", "items": { "type": "string" } }, "readOnlyRoot": { "type": "boolean" }, "ephemeralHome": { "type": "boolean" }, "noNewPrivileges": { "type": "boolean" }, "capDropAll": { "type": "boolean" }, "pidsLimit": { "type": "integer", "minimum": 1 }, "memory": { "type": "string" }, "cpus": { "type": "number", "exclusiveMinimum": 0 }, "tmpfs": { "type": "array", "items": { "type": "string" } }, "forceForRisks": { "type": "array", "items": { "enum": ["low", "medium", "high"] } }, "environmentAllowlist": { "type": "array", "items": { "type": "string" } }, "credentialEnvAllowlist": { "type": "array", "items": { "type": "string" } } } }, "tools": { "type": "array", "items": { "type": "string" } } } },
|
|
70
70
|
"telemetry": { "type": "object" },
|
|
71
71
|
"evals": { "type": "object", "properties": { "corpusDir": { "type": "string" }, "resultsDir": { "type": "string" }, "workspacesDir": { "type": "string" }, "defaultRuns": { "type": "integer", "minimum": 1 }, "confidenceLevel": { "type": "number", "exclusiveMinimum": 0, "exclusiveMaximum": 1 } } },
|
|
72
|
-
"provenance": { "type": "object" }
|
|
72
|
+
"provenance": { "type": "object", "properties": { "outputDir": { "type": "string" }, "buildType": { "type": "string" }, "cosignKey": { "type": "string" }, "required": { "type": "boolean" }, "sbom": { "type": "object", "properties": { "required": { "type": "boolean" }, "command": { "type": "string" } } }, "signing": { "type": "object", "properties": { "required": { "type": "boolean" }, "key": { "type": "string" } } }, "verification": { "type": "object", "properties": { "required": { "type": "boolean" }, "publicKey": { "type": "string" } } } } }
|
|
73
73
|
},
|
|
74
74
|
"$defs": {
|
|
75
75
|
"severityNumbers": { "type": "object", "properties": { "critical": { "type": "integer", "minimum": 0 }, "high": { "type": "integer", "minimum": 0 }, "medium": { "type": "integer", "minimum": 0 }, "low": { "type": "integer", "minimum": 0 }, "note": { "type": "integer", "minimum": 0 } } },
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"taskId": { "type": "string" },
|
|
10
10
|
"status": { "enum": ["PASS", "FAIL"] },
|
|
11
11
|
"checks": { "type": "array" },
|
|
12
|
-
"changedFiles": { "type": "array", "items": { "type": "string" } }
|
|
12
|
+
"changedFiles": { "type": "array", "items": { "type": "string" } },
|
|
13
|
+
"findings": { "type": "array", "items": { "type": "object", "required": ["fingerprint", "tool", "kind"], "properties": { "fingerprint": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "tool": { "type": "string" }, "kind": { "type": "string" }, "rule": { "type": "string" }, "severity": { "type": "string" }, "file": { "type": "string" }, "line": { "type": "integer", "minimum": 1 }, "message": { "type": "string" }, "artifact": { "type": "string" } }, "additionalProperties": true } }
|
|
13
14
|
},
|
|
14
15
|
"additionalProperties": true
|
|
15
16
|
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/JamesMorales04/agentic-engineering-harness/schemas/validation-result.schema.json",
|
|
4
|
+
"title": "AEH normalized validation result",
|
|
5
|
+
"oneOf": [
|
|
6
|
+
{
|
|
7
|
+
"title": "TestExecutionResult",
|
|
8
|
+
"type": "object",
|
|
9
|
+
"required": ["version", "provider", "capability", "command", "status", "summary", "failures", "requirements", "rawArtifact"],
|
|
10
|
+
"properties": {
|
|
11
|
+
"version": { "const": 1 },
|
|
12
|
+
"provider": { "type": "string" },
|
|
13
|
+
"capability": { "enum": ["unit-test", "integration-test", "bdd", "contract-test"] },
|
|
14
|
+
"command": { "type": "string" },
|
|
15
|
+
"runtime": { "type": "string" },
|
|
16
|
+
"status": { "enum": ["PASS", "FAIL", "SKIP"] },
|
|
17
|
+
"summary": { "$ref": "#/$defs/testSummary" },
|
|
18
|
+
"failures": { "type": "array", "items": { "$ref": "#/$defs/failure" } },
|
|
19
|
+
"requirements": { "type": "array", "items": { "type": "string" } },
|
|
20
|
+
"rawArtifact": { "type": "string" }
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"title": "BddExecutionResult",
|
|
25
|
+
"type": "object",
|
|
26
|
+
"required": ["version", "provider", "capability", "command", "status", "scenarios", "summary", "rawArtifact"],
|
|
27
|
+
"properties": {
|
|
28
|
+
"version": { "const": 1 },
|
|
29
|
+
"provider": { "type": "string" },
|
|
30
|
+
"capability": { "const": "bdd" },
|
|
31
|
+
"command": { "type": "string" },
|
|
32
|
+
"runtime": { "type": "string" },
|
|
33
|
+
"status": { "enum": ["PASS", "FAIL", "SKIP"] },
|
|
34
|
+
"scenarios": { "type": "array" },
|
|
35
|
+
"summary": { "$ref": "#/$defs/testSummary" },
|
|
36
|
+
"rawArtifact": { "type": "string" }
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"title": "IntegrationEnvironmentResult",
|
|
41
|
+
"type": "object",
|
|
42
|
+
"required": ["version", "provider", "capability", "status", "requirements", "lifecycle", "rawArtifact"],
|
|
43
|
+
"properties": {
|
|
44
|
+
"version": { "const": 1 },
|
|
45
|
+
"provider": { "type": "string" },
|
|
46
|
+
"capability": { "const": "integration-test" },
|
|
47
|
+
"status": { "enum": ["PASS", "FAIL", "SKIP"] },
|
|
48
|
+
"requirements": { "type": "array" },
|
|
49
|
+
"lifecycle": { "type": "object", "required": ["provisioned", "ready", "tested", "cleaned", "durationMs"] },
|
|
50
|
+
"rawArtifact": { "type": "string" }
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"title": "ContractVerificationResult",
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": ["version", "provider", "capability", "status", "verifierCommand", "summary", "failures", "requirements", "rawArtifact"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"version": { "const": 1 },
|
|
59
|
+
"provider": { "type": "string" },
|
|
60
|
+
"capability": { "const": "contract-test" },
|
|
61
|
+
"status": { "enum": ["PASS", "FAIL", "SKIP"] },
|
|
62
|
+
"verifierCommand": { "type": "string" },
|
|
63
|
+
"pactFile": { "type": "string" },
|
|
64
|
+
"providerUrl": { "type": "string" },
|
|
65
|
+
"summary": { "type": "object", "required": ["total", "passed", "failed", "durationMs"] },
|
|
66
|
+
"failures": { "type": "array", "items": { "$ref": "#/$defs/failure" } },
|
|
67
|
+
"requirements": { "type": "array", "items": { "type": "string" } },
|
|
68
|
+
"rawArtifact": { "type": "string" }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"$defs": {
|
|
73
|
+
"testSummary": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"required": ["total", "passed", "failed", "skipped", "durationMs"],
|
|
76
|
+
"properties": { "total": { "type": "integer", "minimum": 0 }, "passed": { "type": "integer", "minimum": 0 }, "failed": { "type": "integer", "minimum": 0 }, "skipped": { "type": "integer", "minimum": 0 }, "durationMs": { "type": "number", "minimum": 0 } }
|
|
77
|
+
},
|
|
78
|
+
"failure": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"required": ["message"],
|
|
81
|
+
"properties": { "id": { "type": "string" }, "message": { "type": "string" }, "source": { "type": "object" } }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Small, line-oriented JSON bridge for the pinned Headroom SDK.
|
|
3
|
+
|
|
4
|
+
The bridge deliberately uses Headroom's public ``headroom.compression`` API,
|
|
5
|
+
never its agent wrappers or memory store. stdout is reserved for one JSON
|
|
6
|
+
response; diagnostics belong on stderr so the Node adapter can reject framing
|
|
7
|
+
corruption deterministically.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import hashlib
|
|
13
|
+
import json
|
|
14
|
+
import sys
|
|
15
|
+
from typing import Any
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def fail(message: str, code: str = "HEADROOM_BRIDGE_ERROR") -> None:
|
|
19
|
+
print(json.dumps({"version": 1, "error": {"code": code, "message": message}}), flush=True)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def main() -> int:
|
|
23
|
+
try:
|
|
24
|
+
raw = sys.stdin.read()
|
|
25
|
+
request = json.loads(raw)
|
|
26
|
+
if not isinstance(request, dict) or request.get("version") != 1:
|
|
27
|
+
fail("request version must be 1", "INVALID_REQUEST")
|
|
28
|
+
return 2
|
|
29
|
+
operation = request.get("operation", "compress")
|
|
30
|
+
from headroom import __version__
|
|
31
|
+
|
|
32
|
+
if operation == "doctor":
|
|
33
|
+
print(json.dumps({"version": 1, "providerVersion": __version__}), flush=True)
|
|
34
|
+
return 0
|
|
35
|
+
if operation != "compress":
|
|
36
|
+
fail(f"unsupported operation: {operation}", "INVALID_REQUEST")
|
|
37
|
+
return 2
|
|
38
|
+
|
|
39
|
+
content = request.get("content")
|
|
40
|
+
source_sha256 = request.get("sourceSha256")
|
|
41
|
+
max_tokens = request.get("maxTokens")
|
|
42
|
+
if not isinstance(content, str) or not content:
|
|
43
|
+
fail("content must be a non-empty string", "INVALID_REQUEST")
|
|
44
|
+
return 2
|
|
45
|
+
if not isinstance(source_sha256, str) or hashlib.sha256(content.encode()).hexdigest() != source_sha256:
|
|
46
|
+
fail("sourceSha256 does not match content", "SOURCE_HASH_MISMATCH")
|
|
47
|
+
return 2
|
|
48
|
+
if not isinstance(max_tokens, int) or max_tokens < 1:
|
|
49
|
+
fail("maxTokens must be a positive integer", "INVALID_REQUEST")
|
|
50
|
+
return 2
|
|
51
|
+
|
|
52
|
+
# UniversalCompressor is the documented local SDK entry point. Keep
|
|
53
|
+
# Kompress enabled: AEH provisions headroom-ai[all] and this contract
|
|
54
|
+
# must exercise the intended compression stack, not the fallback-only
|
|
55
|
+
# path. CCR remains disabled because AEH persists and authorizes the
|
|
56
|
+
# original fragment itself.
|
|
57
|
+
from headroom.compression import UniversalCompressor, UniversalCompressorConfig
|
|
58
|
+
|
|
59
|
+
original_tokens = max(1, len(content) // 4)
|
|
60
|
+
target_ratio = min(1.0, max_tokens / original_tokens)
|
|
61
|
+
compressor = UniversalCompressor(
|
|
62
|
+
UniversalCompressorConfig(
|
|
63
|
+
use_magika=True,
|
|
64
|
+
use_kompress=True,
|
|
65
|
+
ccr_enabled=False,
|
|
66
|
+
compression_ratio_target=target_ratio,
|
|
67
|
+
)
|
|
68
|
+
)
|
|
69
|
+
result = compressor.compress(content)
|
|
70
|
+
response: dict[str, Any] = {
|
|
71
|
+
"version": 1,
|
|
72
|
+
"content": result.compressed,
|
|
73
|
+
"originalTokens": result.tokens_before,
|
|
74
|
+
"compressedTokens": result.tokens_after,
|
|
75
|
+
"reversible": False,
|
|
76
|
+
"providerVersion": __version__,
|
|
77
|
+
"sourceSha256": source_sha256,
|
|
78
|
+
}
|
|
79
|
+
print(json.dumps(response, separators=(",", ":")), flush=True)
|
|
80
|
+
return 0
|
|
81
|
+
except Exception as error: # pragma: no cover - exercised by contract tests
|
|
82
|
+
print(f"headroom bridge failure: {error}", file=sys.stderr, flush=True)
|
|
83
|
+
fail(str(error), "SDK_RUNTIME_FAILURE")
|
|
84
|
+
return 1
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
if __name__ == "__main__":
|
|
88
|
+
raise SystemExit(main())
|
package/templates/project.yaml
CHANGED
package/templates/toolchain.yaml
CHANGED
|
@@ -106,7 +106,7 @@ tools:
|
|
|
106
106
|
kind: mise
|
|
107
107
|
command: graphify
|
|
108
108
|
source: "pipx:graphifyy"
|
|
109
|
-
version:
|
|
109
|
+
version: "0.9.43"
|
|
110
110
|
dependsOn: [uv]
|
|
111
111
|
activateWhen: [code-intelligence:graphify]
|
|
112
112
|
|
|
@@ -132,7 +132,8 @@ tools:
|
|
|
132
132
|
kind: mise
|
|
133
133
|
command: engram
|
|
134
134
|
source: "npm:@engram-ai-memory/cli"
|
|
135
|
-
version:
|
|
135
|
+
version: "0.4.1"
|
|
136
|
+
dependsOn: [pnpm]
|
|
136
137
|
activateWhen: [memory:engram]
|
|
137
138
|
|
|
138
139
|
opa:
|
|
@@ -148,14 +149,14 @@ tools:
|
|
|
148
149
|
kind: mise
|
|
149
150
|
command: opengrep
|
|
150
151
|
source: "aqua:opengrep/opengrep"
|
|
151
|
-
version:
|
|
152
|
+
version: "1.22.0"
|
|
152
153
|
activateWhen: [security-tool:opengrep, validator:opengrep]
|
|
153
154
|
|
|
154
155
|
trivy:
|
|
155
156
|
kind: mise
|
|
156
157
|
command: trivy
|
|
157
158
|
source: "aqua:aquasecurity/trivy"
|
|
158
|
-
version:
|
|
159
|
+
version: "0.70.0"
|
|
159
160
|
activateWhen: [security-tool:trivy, validator:trivy]
|
|
160
161
|
container:
|
|
161
162
|
image: ghcr.io/aquasecurity/trivy:latest
|
|
@@ -172,6 +173,13 @@ tools:
|
|
|
172
173
|
command: podman
|
|
173
174
|
activateWhen: [orchestration:podman, sandbox:podman]
|
|
174
175
|
|
|
176
|
+
pnpm:
|
|
177
|
+
kind: mise
|
|
178
|
+
command: pnpm
|
|
179
|
+
source: "npm:pnpm"
|
|
180
|
+
version: "10.15.0"
|
|
181
|
+
activateWhen: [memory:engram, project:pnpm]
|
|
182
|
+
|
|
175
183
|
projectDependencies:
|
|
176
184
|
autoDetect: true
|
|
177
185
|
commands: []
|