agentic-engineering-harness 0.6.27 → 0.6.29

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.
Files changed (202) hide show
  1. package/README.md +3 -3
  2. package/dist/agents/permissions.js +12 -0
  3. package/dist/agents/permissions.js.map +1 -1
  4. package/dist/audit/run.js +2 -0
  5. package/dist/audit/run.js.map +1 -1
  6. package/dist/cli.js +12 -13
  7. package/dist/cli.js.map +1 -1
  8. package/dist/context/budget.d.ts +4 -0
  9. package/dist/context/budget.js +19 -0
  10. package/dist/context/budget.js.map +1 -0
  11. package/dist/context/classifier.d.ts +4 -0
  12. package/dist/context/classifier.js +14 -0
  13. package/dist/context/classifier.js.map +1 -0
  14. package/dist/context/compression/headroom.d.ts +18 -0
  15. package/dist/context/compression/headroom.js +53 -0
  16. package/dist/context/compression/headroom.js.map +1 -0
  17. package/dist/context/compression/index.d.ts +3 -0
  18. package/dist/context/compression/index.js +4 -0
  19. package/dist/context/compression/index.js.map +1 -0
  20. package/dist/context/compression/lifecycle.d.ts +20 -0
  21. package/dist/context/compression/lifecycle.js +70 -0
  22. package/dist/context/compression/lifecycle.js.map +1 -0
  23. package/dist/context/compression/types.d.ts +27 -0
  24. package/dist/context/compression/types.js +2 -0
  25. package/dist/context/compression/types.js.map +1 -0
  26. package/dist/context/envelope.d.ts +4 -0
  27. package/dist/context/envelope.js +20 -0
  28. package/dist/context/envelope.js.map +1 -0
  29. package/dist/context/estimator.d.ts +3 -0
  30. package/dist/context/estimator.js +10 -0
  31. package/dist/context/estimator.js.map +1 -0
  32. package/dist/context/eval.d.ts +19 -0
  33. package/dist/context/eval.js +12 -0
  34. package/dist/context/eval.js.map +1 -0
  35. package/dist/context/gateway.d.ts +22 -0
  36. package/dist/context/gateway.js +202 -0
  37. package/dist/context/gateway.js.map +1 -0
  38. package/dist/context/index.d.ts +15 -0
  39. package/dist/context/index.js +16 -0
  40. package/dist/context/index.js.map +1 -0
  41. package/dist/context/policy.d.ts +6 -0
  42. package/dist/context/policy.js +40 -0
  43. package/dist/context/policy.js.map +1 -0
  44. package/dist/context/preflight.d.ts +13 -0
  45. package/dist/context/preflight.js +25 -0
  46. package/dist/context/preflight.js.map +1 -0
  47. package/dist/context/projectors/audit.d.ts +2 -0
  48. package/dist/context/projectors/audit.js +30 -0
  49. package/dist/context/projectors/audit.js.map +1 -0
  50. package/dist/context/projectors/diff.d.ts +2 -0
  51. package/dist/context/projectors/diff.js +8 -0
  52. package/dist/context/projectors/diff.js.map +1 -0
  53. package/dist/context/projectors/explorer.d.ts +2 -0
  54. package/dist/context/projectors/explorer.js +5 -0
  55. package/dist/context/projectors/explorer.js.map +1 -0
  56. package/dist/context/projectors/index.d.ts +8 -0
  57. package/dist/context/projectors/index.js +9 -0
  58. package/dist/context/projectors/index.js.map +1 -0
  59. package/dist/context/projectors/operation.d.ts +3 -0
  60. package/dist/context/projectors/operation.js +26 -0
  61. package/dist/context/projectors/operation.js.map +1 -0
  62. package/dist/context/projectors/planner.d.ts +2 -0
  63. package/dist/context/projectors/planner.js +5 -0
  64. package/dist/context/projectors/planner.js.map +1 -0
  65. package/dist/context/projectors/source.d.ts +2 -0
  66. package/dist/context/projectors/source.js +5 -0
  67. package/dist/context/projectors/source.js.map +1 -0
  68. package/dist/context/projectors/structured.d.ts +2 -0
  69. package/dist/context/projectors/structured.js +24 -0
  70. package/dist/context/projectors/structured.js.map +1 -0
  71. package/dist/context/projectors/validation.d.ts +3 -0
  72. package/dist/context/projectors/validation.js +25 -0
  73. package/dist/context/projectors/validation.js.map +1 -0
  74. package/dist/context/provenance.d.ts +3 -0
  75. package/dist/context/provenance.js +13 -0
  76. package/dist/context/provenance.js.map +1 -0
  77. package/dist/context/repository/graphify.d.ts +3 -0
  78. package/dist/context/repository/graphify.js +7 -0
  79. package/dist/context/repository/graphify.js.map +1 -0
  80. package/dist/context/repository/index.d.ts +6 -0
  81. package/dist/context/repository/index.js +7 -0
  82. package/dist/context/repository/index.js.map +1 -0
  83. package/dist/context/repository/map.d.ts +6 -0
  84. package/dist/context/repository/map.js +34 -0
  85. package/dist/context/repository/map.js.map +1 -0
  86. package/dist/context/repository/rank.d.ts +3 -0
  87. package/dist/context/repository/rank.js +43 -0
  88. package/dist/context/repository/rank.js.map +1 -0
  89. package/dist/context/repository/render.d.ts +8 -0
  90. package/dist/context/repository/render.js +21 -0
  91. package/dist/context/repository/render.js.map +1 -0
  92. package/dist/context/repository/serena.d.ts +11 -0
  93. package/dist/context/repository/serena.js +26 -0
  94. package/dist/context/repository/serena.js.map +1 -0
  95. package/dist/context/repository/types.d.ts +34 -0
  96. package/dist/context/repository/types.js +2 -0
  97. package/dist/context/repository/types.js.map +1 -0
  98. package/dist/context/retrieval/authorization.d.ts +11 -0
  99. package/dist/context/retrieval/authorization.js +9 -0
  100. package/dist/context/retrieval/authorization.js.map +1 -0
  101. package/dist/context/retrieval/gateway.d.ts +33 -0
  102. package/dist/context/retrieval/gateway.js +69 -0
  103. package/dist/context/retrieval/gateway.js.map +1 -0
  104. package/dist/context/retrieval/index.d.ts +5 -0
  105. package/dist/context/retrieval/index.js +6 -0
  106. package/dist/context/retrieval/index.js.map +1 -0
  107. package/dist/context/retrieval/mcp.d.ts +3 -0
  108. package/dist/context/retrieval/mcp.js +8 -0
  109. package/dist/context/retrieval/mcp.js.map +1 -0
  110. package/dist/context/retrieval/persisted.d.ts +3 -0
  111. package/dist/context/retrieval/persisted.js +22 -0
  112. package/dist/context/retrieval/persisted.js.map +1 -0
  113. package/dist/context/retrieval/server.d.ts +1 -0
  114. package/dist/context/retrieval/server.js +52 -0
  115. package/dist/context/retrieval/server.js.map +1 -0
  116. package/dist/context/telemetry.d.ts +3 -0
  117. package/dist/context/telemetry.js +9 -0
  118. package/dist/context/telemetry.js.map +1 -0
  119. package/dist/context/types.d.ts +243 -0
  120. package/dist/context/types.js +29 -0
  121. package/dist/context/types.js.map +1 -0
  122. package/dist/core/config.js +19 -1
  123. package/dist/core/config.js.map +1 -1
  124. package/dist/core/doctor.js +23 -2
  125. package/dist/core/doctor.js.map +1 -1
  126. package/dist/core/run.js +35 -14
  127. package/dist/core/run.js.map +1 -1
  128. package/dist/core/types.d.ts +52 -0
  129. package/dist/core/verify.d.ts +2 -0
  130. package/dist/core/verify.js +1 -1
  131. package/dist/core/verify.js.map +1 -1
  132. package/dist/entry.js +30 -0
  133. package/dist/entry.js.map +1 -1
  134. package/dist/evals/fullStack.d.ts +17 -0
  135. package/dist/evals/fullStack.js +42 -0
  136. package/dist/evals/fullStack.js.map +1 -0
  137. package/dist/main.js +1 -0
  138. package/dist/main.js.map +1 -1
  139. package/dist/operations/change.js +2 -0
  140. package/dist/operations/change.js.map +1 -1
  141. package/dist/paseo/launchSpec.d.ts +3 -0
  142. package/dist/paseo/launchSpec.js +17 -0
  143. package/dist/paseo/launchSpec.js.map +1 -1
  144. package/dist/provenance/generate.d.ts +19 -0
  145. package/dist/provenance/generate.js +94 -8
  146. package/dist/provenance/generate.js.map +1 -1
  147. package/dist/providers/engram.d.ts +26 -1
  148. package/dist/providers/engram.js +110 -6
  149. package/dist/providers/engram.js.map +1 -1
  150. package/dist/providers/graphify.d.ts +9 -1
  151. package/dist/providers/graphify.js +34 -16
  152. package/dist/providers/graphify.js.map +1 -1
  153. package/dist/providers/graphifyModel.d.ts +23 -0
  154. package/dist/providers/graphifyModel.js +101 -0
  155. package/dist/providers/graphifyModel.js.map +1 -0
  156. package/dist/providers/headroom.d.ts +2 -0
  157. package/dist/providers/headroom.js +3 -0
  158. package/dist/providers/headroom.js.map +1 -0
  159. package/dist/providers/memory.d.ts +1 -0
  160. package/dist/providers/memory.js +2 -0
  161. package/dist/providers/memory.js.map +1 -0
  162. package/dist/providers/serena.d.ts +1 -0
  163. package/dist/providers/serena.js +2 -0
  164. package/dist/providers/serena.js.map +1 -0
  165. package/dist/providers/types.d.ts +25 -2
  166. package/dist/telemetry/events.d.ts +1 -0
  167. package/dist/telemetry/events.js +19 -2
  168. package/dist/telemetry/events.js.map +1 -1
  169. package/dist/telemetry/otlp.d.ts +6 -1
  170. package/dist/telemetry/otlp.js +2 -2
  171. package/dist/telemetry/otlp.js.map +1 -1
  172. package/dist/toolchain/config.js +10 -1
  173. package/dist/toolchain/config.js.map +1 -1
  174. package/dist/toolchain/resolve.js +8 -0
  175. package/dist/toolchain/resolve.js.map +1 -1
  176. package/dist/validators/external.js +24 -3
  177. package/dist/validators/external.js.map +1 -1
  178. package/dist/validators/graphify.js +5 -73
  179. package/dist/validators/graphify.js.map +1 -1
  180. package/dist/validators/opa.d.ts +14 -1
  181. package/dist/validators/opa.js +6 -2
  182. package/dist/validators/opa.js.map +1 -1
  183. package/dist/validators/toolEvidence.d.ts +29 -0
  184. package/dist/validators/toolEvidence.js +104 -0
  185. package/dist/validators/toolEvidence.js.map +1 -0
  186. package/dist/workers/agentPrompt.d.ts +9 -0
  187. package/dist/workers/agentPrompt.js +133 -4
  188. package/dist/workers/agentPrompt.js.map +1 -1
  189. package/docs/ARCHITECTURE.md +20 -1
  190. package/docs/COMPONENT_MATURITY.md +43 -0
  191. package/docs/CONTEXT_EFFICIENCY.md +48 -0
  192. package/docs/MEMORY.md +9 -0
  193. package/docs/OBSERVABILITY.md +6 -1
  194. package/docs/OSS_STACK.md +10 -2
  195. package/docs/SECURITY.md +12 -0
  196. package/package.json +2 -2
  197. package/policies/core/trust-boundary.rego +14 -4
  198. package/presets/agents/default.jsonc +4 -4
  199. package/presets/agents/orchestration.jsonc +2 -2
  200. package/schemas/project.schema.json +14 -0
  201. package/templates/project.yaml +42 -0
  202. package/templates/toolchain.yaml +34 -1
@@ -41,7 +41,7 @@
41
41
  "temperature": 0.2
42
42
  },
43
43
  "architecture-reviewer": {
44
- "execution": { "model": "@brain" },
44
+ "execution": { "model": "@workhorse" },
45
45
  "temperature": 0.1
46
46
  },
47
47
  "security-reviewer": {
@@ -100,7 +100,7 @@
100
100
  "profiles": {
101
101
  "balanced": {
102
102
  "agents": {
103
- "architecture-reviewer": { "execution": { "model": "@brain" } },
103
+ "architecture-reviewer": { "execution": { "model": "@workhorse" } },
104
104
  "security-reviewer": { "execution": { "model": "@workhorse" } },
105
105
  "requirements-reviewer": { "execution": { "model": "@workhorse" } }
106
106
  }
@@ -48,6 +48,19 @@
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
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 } } } } },
51
+ "context": { "type": "object", "properties": {
52
+ "mode": { "enum": ["observe", "enforce"] },
53
+ "budgets": { "type": "object", "properties": {
54
+ "default": { "$ref": "#/$defs/contextBudget" },
55
+ "agents": { "type": "object", "additionalProperties": { "$ref": "#/$defs/contextBudget" } },
56
+ "phases": { "type": "object", "additionalProperties": { "$ref": "#/$defs/contextBudget" } }
57
+ } },
58
+ "repositoryMap": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "tokenBudget": { "type": "integer", "minimum": 1 }, "maxGraphHops": { "type": "integer", "minimum": 1 } } },
59
+ "semanticRetrieval": { "type": "object", "properties": { "provider": { "type": "string", "const": "serena" }, "required": { "const": true }, "editing": { "type": "boolean" } } },
60
+ "compression": { "type": "object", "properties": { "provider": { "type": "string", "const": "headroom" }, "required": { "const": true }, "minTokens": { "type": "integer", "minimum": 1 }, "reversible": { "type": "boolean" }, "command": { "type": "string", "minLength": 1 } } },
61
+ "retrieval": { "type": "object", "properties": { "maxRequestsPerTurn": { "type": "integer", "minimum": 1 }, "maxTokensPerRequest": { "type": "integer", "minimum": 1 }, "maxTotalTokensPerTurn": { "type": "integer", "minimum": 1 } } },
62
+ "outputPolicy": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "modes": { "type": "object", "additionalProperties": { "enum": ["terse", "compact", "normal"] } } } }
63
+ } },
51
64
  "evidence": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "outputDir": { "type": "string" }, "requireComplete": { "type": "boolean" } } },
52
65
  "organization": { "type": "object", "properties": { "policyBundles": { "type": "object", "properties": { "cacheDir": { "type": "string" }, "required": { "type": "boolean" }, "sources": { "type": "array", "items": { "$ref": "#/$defs/policyBundleSource" } } } } } },
53
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" } } },
@@ -60,6 +73,7 @@
60
73
  },
61
74
  "$defs": {
62
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 } } },
76
+ "contextBudget": { "type": "object", "properties": { "inputTokens": { "type": "integer", "minimum": 1 }, "maxTokens": { "type": "integer", "minimum": 1 }, "reserved": { "type": "object", "properties": { "instructions": { "type": "integer", "minimum": 0 }, "normative": { "type": "integer", "minimum": 0 }, "evidence": { "type": "integer", "minimum": 0 }, "response": { "type": "integer", "minimum": 0 } } } } },
63
77
  "policyBundleSource": { "type": "object", "required": ["name"], "properties": { "name": { "type": "string", "minLength": 1 }, "path": { "type": "string" }, "url": { "type": "string", "format": "uri" }, "sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "required": { "type": "boolean" }, "publicKey": { "type": "string" }, "signature": { "type": "string" } } }
64
78
  },
65
79
  "additionalProperties": false
@@ -196,6 +196,44 @@ codeIntelligence:
196
196
  maxSharedNodes: 0
197
197
  centralityConflictThreshold: 0.35
198
198
 
199
+ context:
200
+ mode: enforce
201
+ budgets:
202
+ default:
203
+ inputTokens: 16000
204
+ agents:
205
+ explorer:
206
+ inputTokens: 12000
207
+ planner:
208
+ inputTokens: 10000
209
+ spec-manager:
210
+ inputTokens: 18000
211
+ implementer:
212
+ inputTokens: 24000
213
+ reviewer:
214
+ inputTokens: 14000
215
+ operation-supervisor:
216
+ inputTokens: 1500
217
+ repositoryMap:
218
+ enabled: true
219
+ tokenBudget: 2000
220
+ maxGraphHops: 2
221
+ semanticRetrieval:
222
+ provider: serena
223
+ required: true
224
+ editing: false
225
+ compression:
226
+ provider: headroom
227
+ required: true
228
+ minTokens: 2000
229
+ reversible: true
230
+ retrieval:
231
+ maxRequestsPerTurn: 8
232
+ maxTokensPerRequest: 6000
233
+ maxTotalTokensPerTurn: 20000
234
+ outputPolicy:
235
+ enabled: true
236
+
199
237
  evidence:
200
238
  enabled: true
201
239
  outputDir: .harness/evidence
@@ -268,6 +306,10 @@ evals:
268
306
  workspacesDir: .harness/evals/workspaces
269
307
  defaultRuns: 5
270
308
  confidenceLevel: 0.95
309
+ fullStack:
310
+ enabled: false
311
+ required: false
312
+ strictSupplyChain: false
271
313
 
272
314
  provenance:
273
315
  outputDir: .harness/provenance
@@ -22,7 +22,7 @@ profiles:
22
22
  tools: [openspec]
23
23
  intelligence:
24
24
  extends: [core]
25
- tools: [uv, graphify]
25
+ tools: [python, uv, graphify, serena, headroom]
26
26
  validation:
27
27
  extends: [core]
28
28
  tools: [opa, opengrep, trivy, cosign]
@@ -94,6 +94,14 @@ tools:
94
94
  version: latest
95
95
  activateWhen: [code-intelligence:graphify, project:python]
96
96
 
97
+ python:
98
+ kind: mise
99
+ command: python
100
+ source: python
101
+ version: "3.13"
102
+ required: true
103
+ activateWhen: [semantic-retrieval:serena, compression:headroom, project:python]
104
+
97
105
  graphify:
98
106
  kind: mise
99
107
  command: graphify
@@ -102,6 +110,31 @@ tools:
102
110
  dependsOn: [uv]
103
111
  activateWhen: [code-intelligence:graphify]
104
112
 
113
+ serena:
114
+ kind: mise
115
+ command: serena
116
+ source: "pipx:serena-agent"
117
+ version: "1.6.1"
118
+ required: true
119
+ dependsOn: [uv, python]
120
+ activateWhen: [semantic-retrieval:serena]
121
+
122
+ headroom:
123
+ kind: mise
124
+ command: headroom
125
+ source: "pipx:headroom-ai[all]"
126
+ version: "0.28.0"
127
+ required: true
128
+ dependsOn: [uv, python]
129
+ activateWhen: [compression:headroom]
130
+
131
+ engram:
132
+ kind: mise
133
+ command: engram
134
+ source: "npm:@engram-ai-memory/cli"
135
+ version: latest
136
+ activateWhen: [memory:engram]
137
+
105
138
  opa:
106
139
  kind: mise
107
140
  command: opa