agentera 3.0.0-dev.5 → 3.0.0-dev.6

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 (247) hide show
  1. package/README.md +4 -3
  2. package/bundle/references/adapters/opencode.md +1 -1
  3. package/bundle/references/adapters/package-registry.yaml +0 -1
  4. package/bundle/references/adapters/package-surface-characterization.md +1 -2
  5. package/bundle/references/analysis/startup-measurement-contract.yaml +11 -11
  6. package/bundle/references/cli/audience-namespace-cli-migration.yaml +40 -26
  7. package/bundle/references/cli/bundle-skill-vocabulary.yaml +1 -29
  8. package/bundle/references/cli/coexistence-probe.yaml +9 -0
  9. package/bundle/references/cli/single-name-protocol.yaml +42 -0
  10. package/bundle/references/cli/update-channels.yaml +1 -0
  11. package/bundle/references/cli/upgrade-repair-wording.md +31 -0
  12. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +98 -0
  13. package/bundle/references/cli/vocabulary.md +12 -10
  14. package/bundle/references/meta/documentation-inventory.md +9 -3
  15. package/bundle/skills/agentera/SKILL.md +14 -14
  16. package/dist/analytics/extractCorpus/cli.js +101 -0
  17. package/dist/analytics/extractCorpus/cli.js.map +1 -0
  18. package/dist/analytics/extractCorpus/copilotSessions.js +231 -0
  19. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
  20. package/dist/analytics/extractCorpus/core.js +357 -0
  21. package/dist/analytics/extractCorpus/core.js.map +1 -0
  22. package/dist/analytics/extractCorpus/corpus.js +132 -0
  23. package/dist/analytics/extractCorpus/corpus.js.map +1 -0
  24. package/dist/analytics/extractCorpus/cursorSessions.js +420 -0
  25. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
  26. package/dist/analytics/extractCorpus/filesystemSources.js +122 -0
  27. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
  28. package/dist/analytics/extractCorpus/index.js +9 -0
  29. package/dist/analytics/extractCorpus/index.js.map +1 -0
  30. package/dist/analytics/extractCorpus/jsonlSessions.js +185 -0
  31. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
  32. package/dist/analytics/extractCorpus/sqliteSessions.js +275 -0
  33. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
  34. package/dist/analytics/extractCorpus.js +2 -1790
  35. package/dist/analytics/extractCorpus.js.map +1 -1
  36. package/dist/analytics/usageStats.js +1 -1
  37. package/dist/analytics/usageStats.js.map +1 -1
  38. package/dist/cli/capabilityContext/benchmark.js +557 -0
  39. package/dist/cli/capabilityContext/benchmark.js.map +1 -0
  40. package/dist/cli/capabilityContext/bespoke.js +25 -0
  41. package/dist/cli/capabilityContext/bespoke.js.map +1 -0
  42. package/dist/cli/capabilityContext/closeout.js +230 -0
  43. package/dist/cli/capabilityContext/closeout.js.map +1 -0
  44. package/dist/cli/capabilityContext/contract.js +186 -0
  45. package/dist/cli/capabilityContext/contract.js.map +1 -0
  46. package/dist/cli/capabilityContext/evidence.js +446 -0
  47. package/dist/cli/capabilityContext/evidence.js.map +1 -0
  48. package/dist/cli/capabilityContext/index.js +4 -0
  49. package/dist/cli/capabilityContext/index.js.map +1 -0
  50. package/dist/cli/capabilityContext/orchestration.js +107 -0
  51. package/dist/cli/capabilityContext/orchestration.js.map +1 -0
  52. package/dist/cli/capabilityContext/planState.js +271 -0
  53. package/dist/cli/capabilityContext/planState.js.map +1 -0
  54. package/dist/cli/capabilityContext/progress.js +96 -0
  55. package/dist/cli/capabilityContext/progress.js.map +1 -0
  56. package/dist/cli/capabilityContext/realisera.js +174 -0
  57. package/dist/cli/capabilityContext/realisera.js.map +1 -0
  58. package/dist/cli/capabilityContext/shared.js +94 -0
  59. package/dist/cli/capabilityContext/shared.js.map +1 -0
  60. package/dist/cli/capabilityContext/slim.js +106 -0
  61. package/dist/cli/capabilityContext/slim.js.map +1 -0
  62. package/dist/cli/capabilityContext/startup.js +208 -0
  63. package/dist/cli/capabilityContext/startup.js.map +1 -0
  64. package/dist/cli/capabilityContext/types.js +43 -0
  65. package/dist/cli/capabilityContext/types.js.map +1 -0
  66. package/dist/cli/capabilityContext.js +1 -2486
  67. package/dist/cli/capabilityContext.js.map +1 -1
  68. package/dist/cli/commands/backfill.js +84 -0
  69. package/dist/cli/commands/backfill.js.map +1 -0
  70. package/dist/cli/commands/compact.js +1 -1
  71. package/dist/cli/commands/compact.js.map +1 -1
  72. package/dist/cli/commands/doctor.js +24 -7
  73. package/dist/cli/commands/doctor.js.map +1 -1
  74. package/dist/cli/commands/lint.js +4 -36
  75. package/dist/cli/commands/lint.js.map +1 -1
  76. package/dist/cli/commands/query.js +1 -1
  77. package/dist/cli/commands/query.js.map +1 -1
  78. package/dist/cli/commands/report.js +11 -2
  79. package/dist/cli/commands/report.js.map +1 -1
  80. package/dist/cli/commands/schema.js +1 -2
  81. package/dist/cli/commands/schema.js.map +1 -1
  82. package/dist/cli/commands/state/decisions.js +397 -0
  83. package/dist/cli/commands/state/decisions.js.map +1 -0
  84. package/dist/cli/commands/state/docs.js +93 -0
  85. package/dist/cli/commands/state/docs.js.map +1 -0
  86. package/dist/cli/commands/state/experiments.js +67 -0
  87. package/dist/cli/commands/state/experiments.js.map +1 -0
  88. package/dist/cli/commands/state/health.js +114 -0
  89. package/dist/cli/commands/state/health.js.map +1 -0
  90. package/dist/cli/commands/state/index.js +51 -0
  91. package/dist/cli/commands/state/index.js.map +1 -0
  92. package/dist/cli/commands/state/objective.js +68 -0
  93. package/dist/cli/commands/state/objective.js.map +1 -0
  94. package/dist/cli/commands/state/plan.js +172 -0
  95. package/dist/cli/commands/state/plan.js.map +1 -0
  96. package/dist/cli/commands/state/progress.js +47 -0
  97. package/dist/cli/commands/state/progress.js.map +1 -0
  98. package/dist/cli/commands/state/shared.js +15 -0
  99. package/dist/cli/commands/state/shared.js.map +1 -0
  100. package/dist/cli/commands/state/todo.js +121 -0
  101. package/dist/cli/commands/state/todo.js.map +1 -0
  102. package/dist/cli/commands/state.js +7 -7
  103. package/dist/cli/commands/state.js.map +1 -1
  104. package/dist/cli/commands/validate.js +32 -18
  105. package/dist/cli/commands/validate.js.map +1 -1
  106. package/dist/cli/dispatch/check.js +328 -0
  107. package/dist/cli/dispatch/check.js.map +1 -0
  108. package/dist/cli/dispatch/index.js +177 -0
  109. package/dist/cli/dispatch/index.js.map +1 -0
  110. package/dist/cli/dispatch/lifecycle.js +492 -0
  111. package/dist/cli/dispatch/lifecycle.js.map +1 -0
  112. package/dist/cli/dispatch/prime.js +100 -0
  113. package/dist/cli/dispatch/prime.js.map +1 -0
  114. package/dist/cli/dispatch/shared.js +64 -0
  115. package/dist/cli/dispatch/shared.js.map +1 -0
  116. package/dist/cli/dispatch/state.js +149 -0
  117. package/dist/cli/dispatch/state.js.map +1 -0
  118. package/dist/cli/dispatch.js +1 -1293
  119. package/dist/cli/dispatch.js.map +1 -1
  120. package/dist/cli/help.js +0 -2
  121. package/dist/cli/help.js.map +1 -1
  122. package/dist/cli/orientation.js +1 -1
  123. package/dist/cli/orientation.js.map +1 -1
  124. package/dist/core/git.js +43 -0
  125. package/dist/core/git.js.map +1 -0
  126. package/dist/hooks/common.js +8 -23
  127. package/dist/hooks/common.js.map +1 -1
  128. package/dist/hooks/compaction/apply.js +244 -0
  129. package/dist/hooks/compaction/apply.js.map +1 -0
  130. package/dist/hooks/compaction/dryRun.js +181 -0
  131. package/dist/hooks/compaction/dryRun.js.map +1 -0
  132. package/dist/hooks/compaction/index.js +23 -0
  133. package/dist/hooks/compaction/index.js.map +1 -0
  134. package/dist/hooks/compaction/parse.js +129 -0
  135. package/dist/hooks/compaction/parse.js.map +1 -0
  136. package/dist/hooks/compaction/retention.js +197 -0
  137. package/dist/hooks/compaction/retention.js.map +1 -0
  138. package/dist/hooks/compaction/status.js +243 -0
  139. package/dist/hooks/compaction/status.js.map +1 -0
  140. package/dist/hooks/compaction/types.js +6 -0
  141. package/dist/hooks/compaction/types.js.map +1 -0
  142. package/dist/hooks/compaction.js +20 -20
  143. package/dist/hooks/compaction.js.map +1 -1
  144. package/dist/hooks/cursorPreToolUse.js +1 -1
  145. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  146. package/dist/hooks/sessionStart.js +4 -4
  147. package/dist/hooks/sessionStart.js.map +1 -1
  148. package/dist/hooks/sessionStop.js +3 -12
  149. package/dist/hooks/sessionStop.js.map +1 -1
  150. package/dist/hooks/validateArtifact/agentFacing.js +10 -0
  151. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
  152. package/dist/hooks/validateArtifact/index.js +149 -0
  153. package/dist/hooks/validateArtifact/index.js.map +1 -0
  154. package/dist/hooks/validateArtifact/markdown.js +95 -0
  155. package/dist/hooks/validateArtifact/markdown.js.map +1 -0
  156. package/dist/hooks/validateArtifact/runtime.js +83 -0
  157. package/dist/hooks/validateArtifact/runtime.js.map +1 -0
  158. package/dist/hooks/validateArtifact/schema.js +455 -0
  159. package/dist/hooks/validateArtifact/schema.js.map +1 -0
  160. package/dist/hooks/validateArtifact/traversal.js +105 -0
  161. package/dist/hooks/validateArtifact/traversal.js.map +1 -0
  162. package/dist/hooks/validateArtifact/violations.js +105 -0
  163. package/dist/hooks/validateArtifact/violations.js.map +1 -0
  164. package/dist/hooks/validateArtifact.js +29 -40
  165. package/dist/hooks/validateArtifact.js.map +1 -1
  166. package/dist/migrate/v2HandoffManifest.js +333 -0
  167. package/dist/migrate/v2HandoffManifest.js.map +1 -0
  168. package/dist/registries/artifactProtocolIds.js +77 -0
  169. package/dist/registries/artifactProtocolIds.js.map +1 -0
  170. package/dist/release/releaseMetadata.js +235 -0
  171. package/dist/release/releaseMetadata.js.map +1 -0
  172. package/dist/setup/codex/agents.js +96 -0
  173. package/dist/setup/codex/agents.js.map +1 -0
  174. package/dist/setup/codex/cli.js +161 -0
  175. package/dist/setup/codex/cli.js.map +1 -0
  176. package/dist/setup/codex/configToml.js +644 -0
  177. package/dist/setup/codex/configToml.js.map +1 -0
  178. package/dist/setup/codex/constants.js +29 -0
  179. package/dist/setup/codex/constants.js.map +1 -0
  180. package/dist/setup/codex/installRoot.js +64 -0
  181. package/dist/setup/codex/installRoot.js.map +1 -0
  182. package/dist/setup/codex/state.js +270 -0
  183. package/dist/setup/codex/state.js.map +1 -0
  184. package/dist/setup/codex.js +11 -1196
  185. package/dist/setup/codex.js.map +1 -1
  186. package/dist/setup/doctor/core.js +300 -0
  187. package/dist/setup/doctor/core.js.map +1 -0
  188. package/dist/setup/doctor/diagnostics.js +247 -0
  189. package/dist/setup/doctor/diagnostics.js.map +1 -0
  190. package/dist/setup/doctor/opencode.js +281 -0
  191. package/dist/setup/doctor/opencode.js.map +1 -0
  192. package/dist/setup/doctor/report.js +474 -0
  193. package/dist/setup/doctor/report.js.map +1 -0
  194. package/dist/setup/doctor.js +9 -1296
  195. package/dist/setup/doctor.js.map +1 -1
  196. package/dist/setup/opencode.js +13 -0
  197. package/dist/setup/opencode.js.map +1 -0
  198. package/dist/setup/smokeChecks.js +1 -1
  199. package/dist/setup/smokeChecks.js.map +1 -1
  200. package/dist/state/progressCommit.js +289 -0
  201. package/dist/state/progressCommit.js.map +1 -0
  202. package/dist/state/startupAnalysis/benchmark.js +367 -0
  203. package/dist/state/startupAnalysis/benchmark.js.map +1 -0
  204. package/dist/state/startupAnalysis/contract.js +122 -0
  205. package/dist/state/startupAnalysis/contract.js.map +1 -0
  206. package/dist/state/startupAnalysis/helpers.js +332 -0
  207. package/dist/state/startupAnalysis/helpers.js.map +1 -0
  208. package/dist/state/startupAnalysis/index.js +7 -0
  209. package/dist/state/startupAnalysis/index.js.map +1 -0
  210. package/dist/state/startupAnalysis/metrics.js +334 -0
  211. package/dist/state/startupAnalysis/metrics.js.map +1 -0
  212. package/dist/state/startupAnalysis/records.js +195 -0
  213. package/dist/state/startupAnalysis/records.js.map +1 -0
  214. package/dist/state/startupAnalysis/report.js +123 -0
  215. package/dist/state/startupAnalysis/report.js.map +1 -0
  216. package/dist/state/startupAnalysis/threshold.js +500 -0
  217. package/dist/state/startupAnalysis/threshold.js.map +1 -0
  218. package/dist/state/startupAnalysis.js +2 -1952
  219. package/dist/state/startupAnalysis.js.map +1 -1
  220. package/dist/upgrade/coexistenceProbe.js +83 -0
  221. package/dist/upgrade/coexistenceProbe.js.map +1 -0
  222. package/dist/upgrade/doctor.js +41 -2
  223. package/dist/upgrade/doctor.js.map +1 -1
  224. package/dist/upgrade/migrateArtifactsV2ToV3.js +5 -83
  225. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  226. package/dist/upgrade/nextMajorDoctor.js +16 -1
  227. package/dist/upgrade/nextMajorDoctor.js.map +1 -1
  228. package/dist/upgrade/projectIntegration.js +3 -1
  229. package/dist/upgrade/projectIntegration.js.map +1 -1
  230. package/dist/upgrade/runtimeMigration.js +13 -2
  231. package/dist/upgrade/runtimeMigration.js.map +1 -1
  232. package/dist/upgrade/v3CapabilitySurface.js +15 -0
  233. package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
  234. package/dist/upgrade/versionResolution.js +8 -0
  235. package/dist/upgrade/versionResolution.js.map +1 -1
  236. package/dist/validate/appHomeContract.js +3 -3
  237. package/dist/validate/appHomeContract.js.map +1 -1
  238. package/dist/validate/selfAudit.js +62 -20
  239. package/dist/validate/selfAudit.js.map +1 -1
  240. package/dist/validate/vocabularyAuthority.js +298 -0
  241. package/dist/validate/vocabularyAuthority.js.map +1 -0
  242. package/package.json +3 -3
  243. package/bundle/references/v1-section-mapping.md +0 -47
  244. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  245. package/bundle/skills/hej/SKILL.md +0 -69
  246. package/bundle/skills/hej/agents/hej.toml +0 -11
  247. package/bundle/skills/hej/agents/openai.yaml +0 -8
@@ -0,0 +1,446 @@
1
+ import fs from "node:fs";
2
+ import { artifactPath } from "../appContext.js";
3
+ import { asList } from "../stateQuery.js";
4
+ import { decisionContextEntry, decisionSourceContract, extractDecisionEntries } from "../commands/state/index.js";
5
+ import { capabilityContext } from "./contract.js";
6
+ import { docsConventions, sourceProvenance, uniqueList, hasRecordedValue } from "./shared.js";
7
+ import { loadNamedArtifact } from "../orientation.js";
8
+ import { sourceMetadata } from "../stateQuery.js";
9
+ import { selectEvidenceTarget } from "./planState.js";
10
+ import { progressVerificationSummary, retryState } from "./progress.js";
11
+ export function dateFromIsoUtc(s) {
12
+ const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(s.trim());
13
+ if (!m)
14
+ return null;
15
+ const utc = Date.UTC(Number(m[1]), Number(m[2]) - 1, Number(m[3]));
16
+ const back = new Date(utc);
17
+ if (back.getUTCFullYear() !== Number(m[1]) || back.getUTCMonth() !== Number(m[2]) - 1 || back.getUTCDate() !== Number(m[3]))
18
+ return null;
19
+ return utc;
20
+ }
21
+ export function todayUtcMs() {
22
+ const now = new Date();
23
+ return Date.UTC(now.getFullYear(), now.getMonth(), now.getDate());
24
+ }
25
+ export function currentStateStatus(value, label, staleAfterDays = 30) {
26
+ if (typeof value !== "string" || !value.trim())
27
+ return ["unknown", null];
28
+ const observed = dateFromIsoUtc(value.trim().slice(0, 10));
29
+ if (observed === null)
30
+ return ["unknown", `${label} current-state date is not ISO-parseable in CLI state.`];
31
+ const ageDays = Math.round((todayUtcMs() - observed) / 86400000);
32
+ if (ageDays > staleAfterDays)
33
+ return ["stale", `${label} evidence is stale (${ageDays} days old; threshold=${staleAfterDays}).`];
34
+ return ["current", null];
35
+ }
36
+ export function evidenceDocsState(docs) {
37
+ const available = Boolean(docs.exists);
38
+ const nonEmptyFields = ["mapping_entries", "indexed_documents", "last_audit"].filter((f) => hasRecordedValue(docs[f]));
39
+ const [currentState, currentStateCaveat] = currentStateStatus(docs.last_audit, "Docs");
40
+ return {
41
+ status: available ? "available" : "unavailable",
42
+ source_provenance: sourceProvenance("docs", "agentera docs --format json"),
43
+ mapping_entries: docs.mapping_entries ?? 0,
44
+ indexed_documents: docs.indexed_documents ?? 0,
45
+ last_audit: docs.last_audit ?? null,
46
+ current_state: currentState,
47
+ non_empty_evidence_present: nonEmptyFields.length > 0,
48
+ non_empty_evidence_fields: nonEmptyFields,
49
+ caveats: [
50
+ ...(available ? [] : ["Docs state is unavailable in CLI docs state."]),
51
+ ...(available && currentStateCaveat ? [currentStateCaveat] : []),
52
+ ],
53
+ };
54
+ }
55
+ export function evidenceHealthState(health) {
56
+ const available = Boolean(health.exists);
57
+ const merged = { audit_number: health.number, ...health };
58
+ const nonEmptyFields = ["audit_number", "trajectory", "grade"].filter((f) => hasRecordedValue(merged[f]));
59
+ const auditDate = health.date ?? health.timestamp ?? null;
60
+ const [currentState, currentStateCaveat] = currentStateStatus(auditDate, "Health");
61
+ return {
62
+ status: available ? "available" : "unavailable",
63
+ source_provenance: sourceProvenance("health", "agentera health --format json"),
64
+ audit_number: health.number ?? null,
65
+ date: auditDate,
66
+ timestamp: auditDate,
67
+ trajectory: health.trajectory ?? null,
68
+ grade: health.grade ?? null,
69
+ degrading: Boolean(health.degrading),
70
+ current_state: currentState,
71
+ non_empty_evidence_present: nonEmptyFields.length > 0,
72
+ non_empty_evidence_fields: nonEmptyFields,
73
+ caveats: [
74
+ ...(available ? [] : ["Health state is unavailable in CLI health state."]),
75
+ ...(available && currentStateCaveat ? [currentStateCaveat] : []),
76
+ ],
77
+ };
78
+ }
79
+ export function evidenceTodoState(schemas, todoItems) {
80
+ const info = schemas.todo ?? { path: "TODO.md", record: undefined, schema: {}, fields: {} };
81
+ const exists = fs.existsSync(artifactPath(info, "todo"));
82
+ return {
83
+ status: exists ? "available" : "unavailable",
84
+ source_provenance: sourceProvenance("todo", "agentera todo --format json"),
85
+ open_count: todoItems.length,
86
+ items: todoItems,
87
+ non_empty_evidence_present: todoItems.length > 0,
88
+ non_empty_evidence_fields: todoItems.length > 0 ? ["items"] : [],
89
+ caveats: exists ? [] : ["TODO state is unavailable in CLI TODO state."],
90
+ };
91
+ }
92
+ export function evidenceProtectedStateChecks() {
93
+ const source = sourceProvenance("evidence_context", "agentera prime --context inspektera --format json", "protected_state_checks");
94
+ return {
95
+ status: "not_checked_by_design",
96
+ allowed_status_values: ["verified_local", "not_checked_by_design", "requires_manual_check", "unavailable"],
97
+ source_provenance: source,
98
+ checks: [
99
+ {
100
+ name: "vision_state",
101
+ status: "not_checked_by_design",
102
+ protected: true,
103
+ checked: false,
104
+ source_provenance: source,
105
+ caveats: ["Vision state is protected during execution cycles and was not read or modified."],
106
+ },
107
+ {
108
+ name: "objective_state",
109
+ status: "not_checked_by_design",
110
+ protected: true,
111
+ checked: false,
112
+ source_provenance: source,
113
+ caveats: ["Objective state is protected during execution cycles and was not read or modified."],
114
+ },
115
+ ],
116
+ caveats: ["Protected-state boundaries are reported without reading or modifying vision or objective state."],
117
+ };
118
+ }
119
+ export function evidenceVersionChecks(docs) {
120
+ const conventions = docsConventions(docs);
121
+ const versionFiles = asList(conventions.version_files);
122
+ const semverPolicy = conventions.semver_policy && typeof conventions.semver_policy === "object" && !Array.isArray(conventions.semver_policy) ? conventions.semver_policy : {};
123
+ const source = sourceProvenance("docs", "agentera docs --format json", "summary.conventions");
124
+ const ec = (field) => sourceProvenance("evidence_context", "agentera prime --context inspektera --format json", field);
125
+ const checks = [
126
+ {
127
+ name: "docs_version_policy",
128
+ status: Object.keys(semverPolicy).length > 0 ? "verified_local" : "unavailable",
129
+ source_provenance: source,
130
+ evidence: { semver_policy: semverPolicy },
131
+ caveats: Object.keys(semverPolicy).length > 0 ? [] : ["Docs semver policy is unavailable in CLI docs state."],
132
+ },
133
+ {
134
+ name: "version_files",
135
+ status: versionFiles.length > 0 ? "verified_local" : "unavailable",
136
+ source_provenance: source,
137
+ evidence: { version_files: versionFiles },
138
+ caveats: versionFiles.length > 0 ? [] : ["Docs version files are unavailable in CLI docs state."],
139
+ },
140
+ {
141
+ name: "publication_evidence",
142
+ status: "requires_manual_check",
143
+ source_provenance: ec("version_checks.publication_evidence"),
144
+ remote_checks_performed: false,
145
+ registry_checks_performed: false,
146
+ caveats: ["Publication and registry evidence is not recorded in CLI evidence context and requires manual verification if needed."],
147
+ },
148
+ {
149
+ name: "remote_push_evidence",
150
+ status: "requires_manual_check",
151
+ source_provenance: ec("version_checks.remote_push_evidence"),
152
+ remote_checks_performed: false,
153
+ caveats: ["Remote push evidence is not recorded in CLI evidence context and requires manual verification if needed."],
154
+ },
155
+ {
156
+ name: "installed_app_refresh",
157
+ status: "not_checked_by_design",
158
+ source_provenance: ec("version_checks.installed_app_refresh"),
159
+ refresh_performed: false,
160
+ caveats: ["Installed app refresh state is deliberately not checked or changed by evidence context."],
161
+ },
162
+ ];
163
+ let status;
164
+ if (checks.some((c) => c.status === "requires_manual_check"))
165
+ status = "requires_manual_check";
166
+ else if (checks.some((c) => c.status === "unavailable"))
167
+ status = "unavailable";
168
+ else
169
+ status = "verified_local";
170
+ return {
171
+ status,
172
+ allowed_status_values: ["verified_local", "not_checked_by_design", "requires_manual_check", "unavailable"],
173
+ source_provenance: source,
174
+ checks,
175
+ caveats: checks.flatMap((c) => (c.caveats ?? [])),
176
+ };
177
+ }
178
+ export function evidencePlanCriteria(plan, target) {
179
+ const taskRefObj = target.task && typeof target.task === "object" && !Array.isArray(target.task) ? target.task : null;
180
+ let selected = null;
181
+ if (taskRefObj) {
182
+ const tasks = asList(plan.tasks).filter((t) => t && typeof t === "object" && !Array.isArray(t));
183
+ selected = tasks.find((t) => t.number === taskRefObj.number) ?? null;
184
+ }
185
+ const criteria = selected && typeof selected === "object" ? asList(selected.acceptance) : [];
186
+ return {
187
+ status: criteria.length > 0 ? "available" : "incomplete",
188
+ source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries.acceptance"),
189
+ target: taskRefObj,
190
+ criteria,
191
+ criteria_count: criteria.length,
192
+ non_empty_evidence_present: criteria.length > 0,
193
+ non_empty_evidence_fields: criteria.length > 0 ? ["criteria"] : [],
194
+ caveats: criteria.length > 0 ? [] : ["Selected evaluation target has no acceptance criteria in CLI plan state."],
195
+ };
196
+ }
197
+ export function residualRiskEntry(category, status, message, sp) {
198
+ return { category, status, message, source_provenance: sp };
199
+ }
200
+ export function decisionContextRisk(schemas) {
201
+ const info = schemas.decisions ?? { path: ".agentera/decisions.yaml", record: undefined, schema: {}, fields: {} };
202
+ const p = artifactPath(info, "decisions");
203
+ const source = sourceMetadata("decisions", p);
204
+ const data = loadNamedArtifact(schemas, "decisions");
205
+ const entries = extractDecisionEntries(data).map((e) => decisionContextEntry(e));
206
+ if (!source.exists) {
207
+ return {
208
+ status: "unavailable",
209
+ source_provenance: sourceProvenance("decisions", "agentera decisions --format json"),
210
+ summary: null,
211
+ caveats: ["Decision state is unavailable in CLI evidence context."],
212
+ };
213
+ }
214
+ const contract = decisionSourceContract(source, entries, {});
215
+ const compacted = contract.completeness.compacted_entries;
216
+ const missing = contract.completeness.entries_with_missing_fields;
217
+ const caveats = compacted || missing ? (contract.caveats ?? []) : [];
218
+ return {
219
+ status: caveats.length > 0 ? "caveated" : "available",
220
+ source_provenance: sourceProvenance("decisions", "agentera decisions --format json"),
221
+ summary: contract.completeness,
222
+ caveats,
223
+ };
224
+ }
225
+ export function parseDecisionReviewDate(value) {
226
+ if (typeof value !== "string" || !value.trim())
227
+ return null;
228
+ return dateFromIsoUtc(value.trim().slice(0, 10));
229
+ }
230
+ export function decisionReviewDue(entry) {
231
+ const satisfaction = entry.satisfaction && typeof entry.satisfaction === "object" && !Array.isArray(entry.satisfaction) ? entry.satisfaction : {};
232
+ const candidates = [
233
+ ["review_date", entry.review_date],
234
+ ["review_by", entry.review_by],
235
+ ["satisfaction.review_date", satisfaction.review_date],
236
+ ["satisfaction.review_by", satisfaction.review_by],
237
+ ["satisfaction.review_due", satisfaction.review_due],
238
+ ];
239
+ for (const [field, value] of candidates) {
240
+ const parsed = parseDecisionReviewDate(value);
241
+ if (parsed !== null)
242
+ return [field, parsed];
243
+ }
244
+ return [null, null];
245
+ }
246
+ export function decisionLabel(entry) {
247
+ const number = entry.number;
248
+ if (number !== null && number !== undefined && number !== "")
249
+ return `Decision ${number}`;
250
+ const summary = entry.summary;
251
+ if (typeof summary === "string" && summary.trim())
252
+ return summary.trim().split(":", 1)[0];
253
+ return "Decision entry";
254
+ }
255
+ export function isoFromUtcMs(utc) {
256
+ const d = new Date(utc);
257
+ return `${d.getUTCFullYear()}-${String(d.getUTCMonth() + 1).padStart(2, "0")}-${String(d.getUTCDate()).padStart(2, "0")}`;
258
+ }
259
+ export function decisionReviewPressure(schemas) {
260
+ const info = schemas.decisions ?? { path: ".agentera/decisions.yaml", record: undefined, schema: {}, fields: {} };
261
+ const p = artifactPath(info, "decisions");
262
+ const source = sourceMetadata("decisions", p);
263
+ const sp = sourceProvenance("decisions", "agentera decisions --format json");
264
+ if (!source.exists) {
265
+ return { status: "unavailable", source_provenance: sp, summary: null, stale_protected_decisions: [], caveats: [] };
266
+ }
267
+ const data = loadNamedArtifact(schemas, "decisions");
268
+ const dd = data && typeof data === "object" && !Array.isArray(data) ? data : {};
269
+ const active = Array.isArray(dd.decisions) ? dd.decisions : [];
270
+ const archive = Array.isArray(dd.archive) ? dd.archive : [];
271
+ const activeEntries = active.filter((e) => e && typeof e === "object" && !Array.isArray(e)).map((e) => decisionContextEntry(e));
272
+ const archiveEntries = archive.filter((e) => e && typeof e === "object" && !Array.isArray(e)).map((e) => decisionContextEntry(e));
273
+ const protectedActive = activeEntries.filter((e) => e.satisfaction && typeof e.satisfaction === "object" && e.satisfaction.review_needed);
274
+ const protectedArchive = archiveEntries.filter((e) => e.satisfaction && typeof e.satisfaction === "object" && e.satisfaction.review_needed);
275
+ const today = todayUtcMs();
276
+ const stale = [];
277
+ let caveats = [];
278
+ for (const [collection, entries] of [["decisions", protectedActive], ["archive", protectedArchive]]) {
279
+ for (const entry of entries) {
280
+ const [field, reviewDate] = decisionReviewDue(entry);
281
+ if (reviewDate === null || reviewDate > today)
282
+ continue;
283
+ const label = decisionLabel(entry);
284
+ const message = `${label} requires protected decision review because ${field} elapsed on ${isoFromUtcMs(reviewDate)}.`;
285
+ stale.push({ label, collection, reason: "review_date_elapsed", review_date: isoFromUtcMs(reviewDate), source_field: field, message });
286
+ caveats.push(message);
287
+ }
288
+ }
289
+ const protectedOverflowCount = Math.max(protectedActive.length - 10, protectedArchive.length - 40, protectedActive.length + protectedArchive.length - 50, 0);
290
+ if (protectedOverflowCount) {
291
+ const message = "Protected decisions exceed the 10/40/50 compaction budget; " +
292
+ `${protectedOverflowCount} protected decision(s) require review before compaction can complete.`;
293
+ stale.push({ label: "decisions", collection: "decisions/archive", reason: "protected_compaction_budget_pressure", protected_overflow_count: protectedOverflowCount, message });
294
+ caveats.push(message);
295
+ }
296
+ caveats = uniqueList(caveats);
297
+ return {
298
+ status: caveats.length > 0 ? "review_required" : "available",
299
+ source_provenance: sp,
300
+ summary: {
301
+ protected_active_decisions: protectedActive.length,
302
+ protected_archive_decisions: protectedArchive.length,
303
+ protected_overflow_count: protectedOverflowCount,
304
+ stale_protected_decisions: stale.length,
305
+ },
306
+ stale_protected_decisions: stale,
307
+ caveats,
308
+ };
309
+ }
310
+ export function inspekteraEvidenceContext(capability, schemas, plan, progress, health, todoItems, docs, profile, bundle) {
311
+ if (capability !== "inspektera")
312
+ return null;
313
+ const capabilityContract = capabilityContext(capability) ?? {};
314
+ const evaluationTarget = selectEvidenceTarget(plan);
315
+ const planCriteria = evidencePlanCriteria(plan, evaluationTarget);
316
+ const progressVerification = progressVerificationSummary(progress);
317
+ const docsState = evidenceDocsState(docs);
318
+ const healthState = evidenceHealthState(health);
319
+ const todoState = evidenceTodoState(schemas, todoItems);
320
+ const protectedStateChecks = evidenceProtectedStateChecks();
321
+ const versionChecks = evidenceVersionChecks(docs);
322
+ const decisionRisk = decisionContextRisk(schemas);
323
+ const reviewPressure = decisionReviewPressure(schemas);
324
+ let stateCaveats = [];
325
+ const attributedRisks = [];
326
+ for (const family of (capabilityContract.missing_state_families ?? [])) {
327
+ const message = `${family} state is not included in prime --context startup context.`;
328
+ stateCaveats.push(message);
329
+ attributedRisks.push(residualRiskEntry("missing_state_family", "caveated", message, sourceProvenance("prime", "agentera prime --context inspektera --format json", "source_contract.capability_context.missing_state_families")));
330
+ }
331
+ if (bundle.status !== "up_to_date") {
332
+ const message = "Agentera app files are not up to date; this is a caveat, not approval to repair or update app files.";
333
+ stateCaveats.push(message);
334
+ attributedRisks.push(residualRiskEntry("installed_app_state", "caveated", message, sourceProvenance("hej", "agentera hej --format json", "bundle.status")));
335
+ }
336
+ if (profile.status !== "loaded") {
337
+ const message = "profile-derived state is unavailable in prime --context response.";
338
+ stateCaveats.push(message);
339
+ attributedRisks.push(residualRiskEntry("profile_state", "unavailable", message, sourceProvenance("hej", "agentera hej --format json", "profile.status")));
340
+ }
341
+ else if (profile.stale === true) {
342
+ const message = "profile-derived state is stale; this is a caveat, not approval to refresh profile state.";
343
+ stateCaveats.push(message);
344
+ attributedRisks.push(residualRiskEntry("profile_state", "caveated", message, sourceProvenance("hej", "agentera hej --format json", "profile.stale")));
345
+ }
346
+ for (const component of [evaluationTarget, planCriteria, progressVerification, docsState, healthState, todoState, protectedStateChecks, versionChecks]) {
347
+ for (const caveat of (component.caveats ?? [])) {
348
+ stateCaveats.push(caveat);
349
+ attributedRisks.push(residualRiskEntry("evidence_family", "caveated", caveat, component.source_provenance ?? sourceProvenance("evidence_context", "agentera prime --context inspektera --format json")));
350
+ }
351
+ }
352
+ for (const caveat of (decisionRisk.caveats ?? [])) {
353
+ stateCaveats.push(caveat);
354
+ attributedRisks.push(residualRiskEntry("decisions_context", decisionRisk.status, caveat, decisionRisk.source_provenance));
355
+ }
356
+ for (const caveat of (reviewPressure.caveats ?? [])) {
357
+ stateCaveats.push(caveat);
358
+ attributedRisks.push(residualRiskEntry("decision_review_pressure", reviewPressure.status, caveat, reviewPressure.source_provenance));
359
+ }
360
+ const retry = retryState();
361
+ for (const caveat of (retry.caveats ?? [])) {
362
+ stateCaveats.push(caveat);
363
+ attributedRisks.push(residualRiskEntry("retry_state", retry.status, caveat, retry.source_provenance));
364
+ }
365
+ stateCaveats = uniqueList(stateCaveats);
366
+ const dedupedRisks = [];
367
+ const seen = new Set();
368
+ for (const risk of attributedRisks) {
369
+ const key = `${risk.category}\u0000${risk.message}`;
370
+ if (!seen.has(key)) {
371
+ seen.add(key);
372
+ dedupedRisks.push(risk);
373
+ }
374
+ }
375
+ const requiredState = {
376
+ evaluation_target: evaluationTarget.status === "selected",
377
+ plan_criteria: planCriteria.status === "available",
378
+ progress_verification: progressVerification.status === "available",
379
+ docs_state: docsState.status === "available",
380
+ health_state: healthState.status === "available",
381
+ todo_state: todoState.status === "available",
382
+ source_contract: true,
383
+ };
384
+ const missingRequired = Object.entries(requiredState).filter(([, present]) => !present).map(([name]) => name);
385
+ const fallbackCommands = uniqueList([
386
+ "agentera plan --format json",
387
+ "agentera progress --format json",
388
+ "agentera docs --format json",
389
+ "agentera health --format json",
390
+ "agentera todo --format json",
391
+ "agentera query --list-artifacts --format json",
392
+ ...(capabilityContract.cli_fallback ?? []),
393
+ ]);
394
+ return {
395
+ capability: "inspektera",
396
+ evaluation_target: evaluationTarget,
397
+ plan_criteria: planCriteria,
398
+ progress_verification: progressVerification,
399
+ docs_state: docsState,
400
+ health_state: healthState,
401
+ todo_state: todoState,
402
+ protected_state_checks: protectedStateChecks,
403
+ version_checks: versionChecks,
404
+ decision_context: decisionRisk,
405
+ decision_review_pressure: reviewPressure,
406
+ residual_risks: {
407
+ status: dedupedRisks.length > 0 ? "caveated" : "none_recorded",
408
+ items: stateCaveats,
409
+ attributed_items: dedupedRisks,
410
+ caveats: [],
411
+ },
412
+ state_family_caveats: stateCaveats,
413
+ fallback_commands: fallbackCommands,
414
+ source_contract: {
415
+ complete_for_evidence_context: missingRequired.length === 0,
416
+ caveated: stateCaveats.length > 0,
417
+ raw_artifact_reads_required: false,
418
+ raw_artifact_read_policy: "Use this evidence_context and included hej state first. Run listed routine/query CLI fallback commands " +
419
+ "for missing or incomplete evidence state; raw artifact reads are last-resort diagnostics, not normal evaluation startup behavior.",
420
+ included_state_families: capabilityContract.included_state_families ?? [],
421
+ missing_state_families: capabilityContract.missing_state_families ?? [],
422
+ required_evidence_state: requiredState,
423
+ missing_required_evidence_state: missingRequired,
424
+ fallback_commands: fallbackCommands,
425
+ caveats: stateCaveats,
426
+ owns: [
427
+ "evaluation target",
428
+ "plan criteria",
429
+ "progress verification",
430
+ "docs state",
431
+ "health state",
432
+ "TODO state",
433
+ "protected-state placeholder checks",
434
+ "version boundary checks",
435
+ "compacted decision caveats",
436
+ "protected decision review pressure",
437
+ "attributed residual risks",
438
+ "fallback commands",
439
+ "raw-read policy",
440
+ "truthful completeness metadata",
441
+ ],
442
+ deferred: [],
443
+ },
444
+ };
445
+ }
446
+ //# sourceMappingURL=evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { CAPABILITY_NAMES, BESPOKE_CONTEXT_CAPABILITIES } from "./types.js";
2
+ export { validatePrimeCapability } from "./shared.js";
3
+ export { buildPrimeCapabilityContextPayload } from "./startup.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,107 @@
1
+ import { asList } from "../stateQuery.js";
2
+ import { capabilityContext } from "./contract.js";
3
+ import { entryStatus, uniqueList } from "./shared.js";
4
+ import { formatPlanTaskDepRef, indexPlanTasksByNumber, orchestrationTaskSummary, planDependsOnList, resolvePlanTaskByRef, DONE_STATUSES_ORCH, BLOCKED_STATUSES_ORCH, } from "./planState.js";
5
+ import { progressVerificationSummary, retryState, evaluatorHandoff } from "./progress.js";
6
+ export function orchestrationContext(capability, plan, progress, health, todoItems, docs, profile, nextAction) {
7
+ if (capability !== "orkestrera")
8
+ return null;
9
+ const tasks = asList(plan.tasks).filter((t) => t && typeof t === "object" && !Array.isArray(t));
10
+ const taskByNumber = indexPlanTasksByNumber(tasks);
11
+ const dependencyReady = [];
12
+ const blocked = [];
13
+ for (const task of tasks) {
14
+ const status = entryStatus(task, "pending");
15
+ if (DONE_STATUSES_ORCH.has(status))
16
+ continue;
17
+ const reasons = [];
18
+ if (BLOCKED_STATUSES_ORCH.has(status))
19
+ reasons.push(`task status is ${status}`);
20
+ for (const dep of planDependsOnList(task)) {
21
+ const dependency = resolvePlanTaskByRef(taskByNumber, dep);
22
+ if (dependency === undefined)
23
+ reasons.push(`dependency ${formatPlanTaskDepRef(dep)} is not present in plan tasks`);
24
+ else if (!DONE_STATUSES_ORCH.has(entryStatus(dependency, "pending"))) {
25
+ reasons.push(`dependency ${formatPlanTaskDepRef(dep)} is ${entryStatus(dependency, "pending")}`);
26
+ }
27
+ }
28
+ if (reasons.length > 0)
29
+ blocked.push({ ...orchestrationTaskSummary(task), blocked_reasons: reasons });
30
+ else
31
+ dependencyReady.push(orchestrationTaskSummary(task));
32
+ }
33
+ const selected = dependencyReady.length > 0 ? dependencyReady[0] : null;
34
+ const stateCaveats = [];
35
+ let fallbackCommands = [];
36
+ const capabilityContract = capabilityContext(capability) ?? {};
37
+ for (const family of (capabilityContract.missing_state_families ?? [])) {
38
+ stateCaveats.push(`${family} state is not included in prime --context startup context.`);
39
+ }
40
+ fallbackCommands.push(...(capabilityContract.cli_fallback ?? []));
41
+ if (!plan.exists) {
42
+ stateCaveats.push("plan state is unavailable; task queue cannot be complete.");
43
+ fallbackCommands.push("agentera plan --format json");
44
+ }
45
+ if (!progress.exists) {
46
+ stateCaveats.push("progress state is unavailable; latest verification is not summarized here.");
47
+ fallbackCommands.push("agentera progress --format json");
48
+ }
49
+ if (!health.exists) {
50
+ stateCaveats.push("health state is unavailable or incomplete.");
51
+ fallbackCommands.push("agentera health --format json");
52
+ }
53
+ if (!docs.exists) {
54
+ stateCaveats.push("docs mapping state is unavailable or incomplete.");
55
+ fallbackCommands.push("agentera docs --format json");
56
+ }
57
+ if (todoItems.length === 0) {
58
+ stateCaveats.push("todo state has no open entries in prime --context response; absence may mean none open or unavailable.");
59
+ fallbackCommands.push("agentera todo --format json");
60
+ }
61
+ if (profile.status !== "loaded") {
62
+ stateCaveats.push("profile-derived state is unavailable in prime --context response.");
63
+ }
64
+ else if (profile.stale === true) {
65
+ stateCaveats.push("profile-derived state is stale; this is a caveat, not approval to refresh profile state.");
66
+ }
67
+ fallbackCommands = uniqueList(fallbackCommands);
68
+ const progressVerification = progressVerificationSummary(progress);
69
+ const retry = retryState();
70
+ const handoff = evaluatorHandoff(selected, progressVerification, retry, stateCaveats);
71
+ const complete = Boolean(plan.exists) && tasks.length > 0 && stateCaveats.length === 0;
72
+ return {
73
+ capability: "orkestrera",
74
+ task_queue: { total: tasks.length, dependency_ready_tasks: dependencyReady, blocked_tasks: blocked },
75
+ selected_next_task: selected,
76
+ selected_next_action: nextAction,
77
+ progress_verification: progressVerification,
78
+ retry_state: retry,
79
+ evaluator_handoff: handoff,
80
+ task_summaries: tasks.map((task) => orchestrationTaskSummary(task)),
81
+ state_family_caveats: stateCaveats,
82
+ fallback_commands: fallbackCommands,
83
+ source_contract: {
84
+ complete_for_orchestration_context: complete,
85
+ raw_artifact_reads_required: false,
86
+ raw_artifact_read_policy: "Use this orchestration_context and included hej state first. Run listed routine CLI fallback commands " +
87
+ "for missing or incomplete state families; raw artifact reads are last-resort diagnostics, not normal startup behavior.",
88
+ included_state_families: capabilityContract.included_state_families ?? [],
89
+ missing_state_families: capabilityContract.missing_state_families ?? [],
90
+ fallback_commands: fallbackCommands,
91
+ caveats: stateCaveats,
92
+ owns: [
93
+ "dependency-ready task queue",
94
+ "blocked task reasons",
95
+ "selected next task",
96
+ "task acceptance summaries",
97
+ "task evidence summaries",
98
+ "latest progress verification summary",
99
+ "retry_state provenance",
100
+ "evaluator handoff inputs",
101
+ "state-family caveats",
102
+ ],
103
+ deferred: [],
104
+ },
105
+ };
106
+ }
107
+ //# sourceMappingURL=orchestration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/orchestration.ts"],"names":[],"mappings":"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"}