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,230 @@
1
+ import fs from "node:fs";
2
+ import { execFileSync } from "node:child_process";
3
+ import { artifactPath } from "../appContext.js";
4
+ import { asList } from "../stateQuery.js";
5
+ import { capabilityContext } from "./contract.js";
6
+ import { docsConventions, sourceProvenance, uniqueList } from "./shared.js";
7
+ import { closeoutChangelogBoundary } from "./planState.js";
8
+ import { progressVerificationSummary } from "./progress.js";
9
+ import { decisionReviewPressure } from "./evidence.js";
10
+ export function closeoutArtifactMappings(docs) {
11
+ const mapping = asList(docs.mapping);
12
+ const ok = Boolean(docs.exists) && mapping.length > 0;
13
+ return {
14
+ status: ok ? "available" : "unavailable",
15
+ source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.mapping"),
16
+ entries: mapping,
17
+ mapping_entries: mapping.length,
18
+ caveats: ok ? [] : ["Docs artifact mappings are unavailable or empty in CLI docs state."],
19
+ };
20
+ }
21
+ export function closeoutVersionPolicy(docs) {
22
+ const conventions = docsConventions(docs);
23
+ const semverPolicy = conventions.semver_policy && typeof conventions.semver_policy === "object" && !Array.isArray(conventions.semver_policy) ? conventions.semver_policy : {};
24
+ const versionFiles = asList(conventions.version_files);
25
+ const registry = conventions.version_files_registry ?? null;
26
+ const available = Object.keys(semverPolicy).length > 0;
27
+ return {
28
+ status: available ? "available" : "unavailable",
29
+ source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.conventions"),
30
+ version_files: versionFiles,
31
+ version_files_registry: registry,
32
+ semver_policy: semverPolicy,
33
+ caveats: available ? [] : ["Docs version policy is unavailable in CLI docs state."],
34
+ };
35
+ }
36
+ export function closeoutTodoBlockers(schemas, todoItems) {
37
+ const info = schemas.todo ?? { path: "TODO.md", record: undefined, schema: {}, fields: {} };
38
+ const exists = fs.existsSync(artifactPath(info, "todo"));
39
+ return {
40
+ status: exists ? "available" : "unavailable",
41
+ source_provenance: sourceProvenance("todo", "agentera todo --format json"),
42
+ open_count: todoItems.length,
43
+ items: todoItems,
44
+ caveats: exists ? [] : ["TODO state is unavailable in CLI state."],
45
+ };
46
+ }
47
+ export function closeoutBenchmarkEvidence(docs) {
48
+ const coverage = docs.coverage && typeof docs.coverage === "object" && !Array.isArray(docs.coverage) ? docs.coverage : {};
49
+ const testsSummary = String(coverage.tests ?? "").trim();
50
+ if (testsSummary && testsSummary.toLowerCase().includes("benchmark")) {
51
+ return {
52
+ status: "available",
53
+ source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.coverage.tests"),
54
+ summary_present: true,
55
+ non_empty_evidence_present: true,
56
+ history_scope: "cli_visible_summary",
57
+ user_local_benchmark_reads_required: false,
58
+ summary: testsSummary,
59
+ caveats: [],
60
+ };
61
+ }
62
+ return {
63
+ status: "unavailable",
64
+ source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.coverage.tests"),
65
+ summary_present: false,
66
+ non_empty_evidence_present: false,
67
+ history_scope: "not_exposed_by_supported_cli_state",
68
+ user_local_benchmark_reads_required: false,
69
+ summary: null,
70
+ caveats: ["Supported CLI/state summaries do not expose benchmark evidence; do not read user-local benchmark files for normal closeout."],
71
+ };
72
+ }
73
+ export function localGitTagEvidence(targetVersion) {
74
+ const tag = targetVersion ? `v${targetVersion}` : null;
75
+ const source = { source_family: "local_git", command: "git tag --list <target-tag>", remote: false };
76
+ if (!tag) {
77
+ return { status: "unavailable", tag: null, source_provenance: source, object_type: null, caveats: ["No selected target version is available for local tag evidence."] };
78
+ }
79
+ let stdout;
80
+ try {
81
+ stdout = execFileSync("git", ["tag", "--list", tag], { cwd: process.cwd(), encoding: "utf8", timeout: 2000 });
82
+ }
83
+ catch (exc) {
84
+ const e = exc;
85
+ if (typeof e.status === "number" && e.status !== 0) {
86
+ return { status: "unavailable", tag, source_provenance: source, object_type: null, caveats: ["Local git tag evidence is unavailable because this project is not a git worktree."] };
87
+ }
88
+ return { status: "unavailable", tag, source_provenance: source, object_type: null, caveats: [`Local git tag evidence is unavailable: ${exc.message}`] };
89
+ }
90
+ if (!stdout.split(/\r\n|\r|\n/).includes(tag)) {
91
+ return { status: "absent", tag, source_provenance: source, object_type: null, caveats: [`Local tag ${tag} is not present.`] };
92
+ }
93
+ let objectType = null;
94
+ try {
95
+ const out = execFileSync("git", ["cat-file", "-t", tag], { cwd: process.cwd(), encoding: "utf8", timeout: 2000 });
96
+ objectType = out.trim() || null;
97
+ }
98
+ catch {
99
+ objectType = null;
100
+ }
101
+ return {
102
+ status: "available",
103
+ tag,
104
+ source_provenance: source,
105
+ object_type: objectType,
106
+ caveats: objectType ? [] : [`Local tag ${tag} exists but object type could not be verified.`],
107
+ };
108
+ }
109
+ export function closeoutReleaseBoundary(changelogBoundary, bundle) {
110
+ const targetVersion = changelogBoundary.selected_target_version;
111
+ const localTag = localGitTagEvidence(targetVersion ? String(targetVersion) : null);
112
+ const metadataRecorded = Boolean(changelogBoundary.selected_target_recorded);
113
+ const caveats = [...(changelogBoundary.caveats ?? []), ...(localTag.caveats ?? [])];
114
+ if (!metadataRecorded && localTag.status !== "available") {
115
+ caveats.push("No local closeout metadata or local tag evidence is recorded for the selected target.");
116
+ }
117
+ return {
118
+ status: changelogBoundary.boundary_present ? "available" : "incomplete",
119
+ selected_target_version: targetVersion ?? null,
120
+ boundary: changelogBoundary.boundary ?? null,
121
+ local_metadata_evidence: {
122
+ status: metadataRecorded ? "recorded" : "not_recorded",
123
+ source_provenance: changelogBoundary.source_provenance ?? null,
124
+ field: "changelog_boundary.selected_target_recorded",
125
+ },
126
+ local_tag_evidence: localTag,
127
+ publication_evidence: {
128
+ package_publication: "not_recorded_in_cli_state",
129
+ remote_push: "not_recorded_in_cli_state",
130
+ remote_checks_performed: false,
131
+ registry_checks_performed: false,
132
+ source_provenance: sourceProvenance("closeout_context", "agentera prime --context dokumentera --format json", "release_boundary.publication_evidence"),
133
+ caveats: ["Closeout context does not contact remotes or package registries."],
134
+ },
135
+ app_refresh_evidence: {
136
+ installed_app_status: bundle.status ?? null,
137
+ refresh: "not_recorded_in_cli_state",
138
+ approval_recorded: false,
139
+ source_provenance: sourceProvenance("hej", "agentera hej --format json", "bundle.status"),
140
+ },
141
+ caveats,
142
+ };
143
+ }
144
+ export function dokumenteraCloseoutContext(capability, schemas, plan, progress, todoItems, docs, profile, bundle) {
145
+ if (capability !== "dokumentera")
146
+ return null;
147
+ const capabilityContract = capabilityContext(capability) ?? {};
148
+ const artifactMappings = closeoutArtifactMappings(docs);
149
+ const versionPolicy = closeoutVersionPolicy(docs);
150
+ const todoBlockers = closeoutTodoBlockers(schemas, todoItems);
151
+ const changelogBoundary = closeoutChangelogBoundary(schemas, plan);
152
+ const progressEvidence = progressVerificationSummary(progress);
153
+ const benchmarkEvidence = closeoutBenchmarkEvidence(docs);
154
+ const releaseBoundary = closeoutReleaseBoundary(changelogBoundary, bundle);
155
+ const reviewPressure = decisionReviewPressure(schemas);
156
+ const requiredState = {
157
+ artifact_mappings: artifactMappings.status === "available",
158
+ version_policy: versionPolicy.status === "available",
159
+ todo_blockers: todoBlockers.status === "available",
160
+ changelog_boundary: Boolean(changelogBoundary.boundary_present),
161
+ progress_evidence: progressEvidence.status === "available",
162
+ benchmark_evidence_or_caveat: benchmarkEvidence.status === "available" || (benchmarkEvidence.caveats ?? []).length > 0,
163
+ decision_review_pressure: reviewPressure.status !== "review_required",
164
+ };
165
+ const missingRequired = Object.entries(requiredState).filter(([, present]) => !present).map(([k]) => k);
166
+ let stateCaveats = [];
167
+ for (const family of (capabilityContract.missing_state_families ?? [])) {
168
+ stateCaveats.push(`${family} state is not included in prime --context startup context.`);
169
+ }
170
+ for (const component of [artifactMappings, versionPolicy, todoBlockers, changelogBoundary, releaseBoundary, progressEvidence, benchmarkEvidence, reviewPressure]) {
171
+ stateCaveats.push(...(component.caveats ?? []));
172
+ }
173
+ if (bundle.status !== "up_to_date")
174
+ stateCaveats.push("Agentera app files are not up to date; this is a caveat, not approval to repair or update app files.");
175
+ if (profile.status !== "loaded")
176
+ stateCaveats.push("profile-derived state is unavailable in prime --context response.");
177
+ else if (profile.stale === true)
178
+ stateCaveats.push("profile-derived state is stale; this is a caveat, not approval to refresh profile state.");
179
+ stateCaveats = uniqueList(stateCaveats);
180
+ const fallbackCommands = uniqueList([
181
+ "agentera todo --format json",
182
+ "agentera docs --format json",
183
+ "agentera progress --format json",
184
+ "agentera query changelog --format json",
185
+ "agentera query --list-artifacts --format json",
186
+ ...(capabilityContract.cli_fallback ?? []),
187
+ ]);
188
+ return {
189
+ capability: "dokumentera",
190
+ artifact_mappings: artifactMappings,
191
+ version_policy: versionPolicy,
192
+ todo_blockers: todoBlockers,
193
+ changelog_boundary: changelogBoundary,
194
+ release_boundary: releaseBoundary,
195
+ progress_evidence: progressEvidence,
196
+ benchmark_evidence: benchmarkEvidence,
197
+ decision_review_pressure: reviewPressure,
198
+ state_family_caveats: stateCaveats,
199
+ fallback_commands: fallbackCommands,
200
+ source_contract: {
201
+ complete_for_closeout_context: missingRequired.length === 0,
202
+ caveated: stateCaveats.length > 0,
203
+ raw_artifact_reads_required: false,
204
+ raw_artifact_read_policy: "Use this closeout_context and included hej state first. Run listed routine/query CLI fallback commands " +
205
+ "for missing or incomplete closeout state; raw artifact reads are last-resort diagnostics, not normal closeout behavior.",
206
+ included_state_families: capabilityContract.included_state_families ?? [],
207
+ missing_state_families: capabilityContract.missing_state_families ?? [],
208
+ closeout_state_families: ["docs", "todo", "changelog", "progress", "benchmark_evidence", "decisions"],
209
+ required_closeout_state: requiredState,
210
+ missing_required_closeout_state: missingRequired,
211
+ fallback_commands: fallbackCommands,
212
+ caveats: stateCaveats,
213
+ owns: [
214
+ "artifact mappings",
215
+ "version policy",
216
+ "TODO blockers",
217
+ "changelog or no-release boundary",
218
+ "local metadata/tag versus publication boundary",
219
+ "latest progress evidence",
220
+ "benchmark evidence pointer or unavailable caveat",
221
+ "protected decision review pressure",
222
+ "provenance pointers and non-empty evidence flags",
223
+ "fallback commands",
224
+ "raw-read policy",
225
+ "truthful completeness flag",
226
+ ],
227
+ },
228
+ };
229
+ }
230
+ //# sourceMappingURL=closeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeout.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/closeout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { loadYamlMapping } from "../../core/yaml.js";
4
+ import { activeAppModel, discoverSchemasDir } from "../appContext.js";
5
+ import { capabilityStartupCommand } from "../../capabilities/index.js";
6
+ import { PLANERA_COMPLETED_PLAN_ARCHIVE_CONFIRMATION, PLANERA_INSTRUCTIONS_AUTHORITY_EXCEPTIONS, PLANERA_PLANNING_LEVELS, PLANERA_RAW_PLAN_ACCESS_ALLOWED_FOR, PLANERA_STARTUP_CONTRACT_VERSION, PLANERA_STEP_VERBS, STARTUP_ENVELOPE_STATE_FAMILIES, STATE_FAMILY_FALLBACK_COMMANDS, } from "./types.js";
7
+ import { CAPABILITY_INSTRUCTIONS, capabilityInstructionModulePath } from "../../capabilities/index.js";
8
+ import { isFile, pyRepr, appendUnique } from "./shared.js";
9
+ export function capabilityInstructionContractPath() {
10
+ const model = activeAppModel();
11
+ const active = path.join(String(model.authoritativeRoot ?? model.activeBundleRoot), "references", "cli", "capability-instruction-contract.yaml");
12
+ if (isFile(active))
13
+ return active;
14
+ return path.join(path.resolve(discoverSchemasDir(), "..", "..", "..", ".."), "references", "cli", "capability-instruction-contract.yaml");
15
+ }
16
+ export function capabilityInstructionContract() {
17
+ const p = capabilityInstructionContractPath();
18
+ if (!isFile(p))
19
+ return {};
20
+ try {
21
+ return loadYamlMapping(fs.readFileSync(p, "utf8"));
22
+ }
23
+ catch (exc) {
24
+ process.stderr.write(`warning: failed to load capability instruction contract: ${exc.message}\n`);
25
+ return {};
26
+ }
27
+ }
28
+ export function capabilityInstructionTarget(capability) {
29
+ const module = capabilityInstructionModulePath(capability);
30
+ const prose = CAPABILITY_INSTRUCTIONS[capability] ?? null;
31
+ return {
32
+ module,
33
+ exists: prose !== null && prose.length > 0,
34
+ runtime_path: module,
35
+ prose_present: prose !== null,
36
+ prose_length: prose === null ? 0 : prose.length,
37
+ };
38
+ }
39
+ export function firstInvocationReadMetadata(capability) {
40
+ const authority = capabilityInstructionContract();
41
+ const firstRead = authority.first_invocation_read && typeof authority.first_invocation_read === "object" ? authority.first_invocation_read : {};
42
+ const allowedValues = firstRead.allowed_values && typeof firstRead.allowed_values === "object" ? firstRead.allowed_values : {};
43
+ const value = "prime_context";
44
+ const valueContract = (allowedValues[value] ?? {});
45
+ return {
46
+ field: "first_invocation_read",
47
+ value,
48
+ allowed_values: Object.keys(allowedValues),
49
+ default_rule: firstRead.default_rule ?? firstRead.default_future_rule ?? null,
50
+ module_target: capabilityInstructionTarget(capability),
51
+ startup_command: capabilityStartupCommand(capability),
52
+ obligation_summary: valueContract.obligation ?? `shell out to ${capabilityStartupCommand(capability)}`,
53
+ meaning: valueContract.meaning ?? null,
54
+ runtime_enforcement: true,
55
+ provenance: {
56
+ authority_path: "references/cli/capability-instruction-contract.yaml",
57
+ authority_status: authority.status ?? null,
58
+ decision: authority.decision ?? null,
59
+ source_field: "first_invocation_read.allowed_values",
60
+ },
61
+ };
62
+ }
63
+ export function planeraStartupContract() {
64
+ return {
65
+ schemaVersion: PLANERA_STARTUP_CONTRACT_VERSION,
66
+ status: "implemented_compact_normal_startup_contract",
67
+ canonical_surface: "agentera prime --context planera --format json",
68
+ bounded: true,
69
+ instructions_runtime_read_required: false,
70
+ instructions_authority: {
71
+ normal_startup: "Use this compact context for normal Planera execution startup; " +
72
+ "shell out to `agentera prime --context planera --format json` for the full Planera prose.",
73
+ read_planera_instructions_when: PLANERA_INSTRUCTIONS_AUTHORITY_EXCEPTIONS,
74
+ },
75
+ planning: {
76
+ levels: PLANERA_PLANNING_LEVELS,
77
+ step_marker_format: "── step N/6: verb",
78
+ required_steps: PLANERA_STEP_VERBS,
79
+ full_plan_review_required: true,
80
+ pre_write_self_audit_required: true,
81
+ max_full_plan_tasks: 8,
82
+ },
83
+ cli_first_orientation: {
84
+ use_startup_state_first: true,
85
+ current_plan_command: "agentera plan --format json",
86
+ complete_plan_contract_key: "source_contract.complete_for_plan_artifact",
87
+ fallback_policy: "Use CLI-provided fallback commands for missing or incomplete state families " +
88
+ "before any last-resort raw artifact read.",
89
+ },
90
+ artifact_access_boundaries: {
91
+ skip_raw_plan_artifact_when: "`agentera plan --format json` reports source_contract.complete_for_plan_artifact=true " +
92
+ "during normal read-only startup or evaluation.",
93
+ raw_plan_artifact_allowed_for: PLANERA_RAW_PLAN_ACCESS_ALLOWED_FOR,
94
+ completed_plan_archive_confirmation: PLANERA_COMPLETED_PLAN_ARCHIVE_CONFIRMATION,
95
+ artifact_mapping_source: "agentera docs/query artifact mapping before writes or closeout",
96
+ },
97
+ handoff_expectations: [
98
+ "skip level suggests ⧉ realisera and waits for confirmation unless the user already asked to implement now",
99
+ "single-task plans suggest ⧉ realisera and wait for confirmation",
100
+ "full plans suggest ⎈ orkestrera and wait for confirmation",
101
+ ],
102
+ unsupported_command_boundary: {
103
+ capability_cli_commands_added: true,
104
+ forbidden_examples: [],
105
+ route_boundary: "Use `/agentera plan` for routing, `agentera plan` for plan state, " +
106
+ "and `agentera planera` for capability routing guidance only.",
107
+ },
108
+ seam_decision: {
109
+ selected: "prime --context",
110
+ not_changed: [
111
+ { surface: "agentera schema --format json", reason: "runtime/schema command discovery, not capability workflow startup context" },
112
+ { surface: "dispatcher guidance", reason: "route and CLI-state separation guidance, not a bounded Planera workflow payload" },
113
+ ],
114
+ },
115
+ };
116
+ }
117
+ export function capabilityArtifactInventory(capability) {
118
+ const inventory = { read_needs: [], write_targets: [] };
119
+ const capabilityDir = path.join(String(activeAppModel().skillRoot), "capabilities", capability);
120
+ const p = path.join(capabilityDir, "schemas", "artifacts.yaml");
121
+ if (!isFile(p))
122
+ return [inventory, `No capability artifact schema found for ${capability}.`];
123
+ let data;
124
+ try {
125
+ data = loadYamlMapping(fs.readFileSync(p, "utf8"));
126
+ }
127
+ catch (exc) {
128
+ return [inventory, `Capability artifact schema for ${capability} could not be read: ${exc.message}`];
129
+ }
130
+ const artifacts = data.ARTIFACTS;
131
+ if (!artifacts || typeof artifacts !== "object" || Array.isArray(artifacts)) {
132
+ return [inventory, `Capability artifact schema for ${capability} has no ARTIFACTS mapping.`];
133
+ }
134
+ const errors = [];
135
+ for (const [key, entry] of Object.entries(artifacts)) {
136
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
137
+ errors.push(`entry ${key} is not a mapping`);
138
+ continue;
139
+ }
140
+ const e = entry;
141
+ const artifactId = String(e.artifact_id ?? "").trim();
142
+ const localRole = String(e.local_role ?? "").trim();
143
+ if (!artifactId) {
144
+ errors.push(`entry ${key} is missing artifact_id`);
145
+ continue;
146
+ }
147
+ if (localRole === "consumes")
148
+ appendUnique(inventory.read_needs, artifactId);
149
+ else if (localRole === "produces")
150
+ appendUnique(inventory.write_targets, artifactId);
151
+ else if (localRole === "produces_and_consumes") {
152
+ appendUnique(inventory.read_needs, artifactId);
153
+ appendUnique(inventory.write_targets, artifactId);
154
+ }
155
+ else
156
+ errors.push(`entry ${key} has unsupported local_role ${pyRepr(localRole)}`);
157
+ }
158
+ const error = errors.length > 0 ? `Capability artifact schema for ${capability} has invalid ARTIFACTS entries: ${errors.join("; ")}.` : null;
159
+ return [inventory, error];
160
+ }
161
+ export function capabilityContext(capability) {
162
+ if (!capability)
163
+ return null;
164
+ const [inventory, error] = capabilityArtifactInventory(capability);
165
+ const needs = inventory.read_needs;
166
+ const writeTargets = inventory.write_targets;
167
+ const missing = needs.filter((name) => !STARTUP_ENVELOPE_STATE_FAMILIES.has(name));
168
+ const cliFallback = missing.filter((name) => name in STATE_FAMILY_FALLBACK_COMMANDS).map((name) => STATE_FAMILY_FALLBACK_COMMANDS[name]);
169
+ const context = {
170
+ capability,
171
+ first_invocation_read: firstInvocationReadMetadata(capability),
172
+ declared_state_needs: needs,
173
+ declared_write_targets: writeTargets,
174
+ artifact_inventory: inventory,
175
+ included_state_families: needs.filter((name) => STARTUP_ENVELOPE_STATE_FAMILIES.has(name)),
176
+ missing_state_families: missing,
177
+ cli_fallback: cliFallback,
178
+ raw_artifact_read_policy: "Use the included state families from this prime --context response first. " +
179
+ "If needed families are missing or CLI state is incomplete, run the CLI fallback commands before raw file access.",
180
+ schema_error: error,
181
+ };
182
+ if (capability === "planera")
183
+ context.startup_contract = planeraStartupContract();
184
+ return context;
185
+ }
186
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/contract.ts"],"names":[],"mappings":"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"}