agentera 3.0.0-dev.4 → 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.
- package/README.md +4 -3
- package/bundle/.agentera-npx-bundle.json +1 -1
- package/bundle/references/adapters/opencode.md +1 -1
- package/bundle/references/adapters/package-registry.yaml +0 -1
- package/bundle/references/adapters/package-surface-characterization.md +1 -2
- package/bundle/references/analysis/startup-measurement-contract.yaml +11 -11
- package/bundle/references/cli/agent-ready-state-contract.yaml +5 -5
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +40 -26
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +2 -30
- package/bundle/references/cli/capability-instruction-contract.yaml +98 -57
- package/bundle/references/cli/coexistence-probe.yaml +9 -0
- package/bundle/references/cli/routing-execution-vocabulary.yaml +6 -6
- package/bundle/references/cli/single-name-protocol.yaml +42 -0
- package/bundle/references/cli/update-channels.yaml +18 -2
- package/bundle/references/cli/upgrade-repair-wording.md +31 -0
- package/bundle/references/cli/v3-handoff-manifest.schema.yaml +98 -0
- package/bundle/references/cli/vocabulary-index.yaml +3 -3
- package/bundle/references/cli/vocabulary.md +34 -26
- package/bundle/references/meta/documentation-inventory.md +9 -3
- package/bundle/registry.json +1 -1
- package/bundle/skills/agentera/SKILL.md +50 -33
- package/bundle/skills/agentera/agents/dokumentera.toml +1 -1
- package/bundle/skills/agentera/agents/hej.toml +1 -1
- package/bundle/skills/agentera/agents/inspektera.toml +1 -1
- package/bundle/skills/agentera/agents/inspirera.toml +1 -1
- package/bundle/skills/agentera/agents/optimera.toml +1 -1
- package/bundle/skills/agentera/agents/orkestrera.toml +1 -1
- package/bundle/skills/agentera/agents/planera.toml +1 -1
- package/bundle/skills/agentera/agents/profilera.toml +1 -1
- package/bundle/skills/agentera/agents/realisera.toml +1 -1
- package/bundle/skills/agentera/agents/resonera.toml +1 -1
- package/bundle/skills/agentera/agents/visionera.toml +1 -1
- package/bundle/skills/agentera/agents/visualisera.toml +1 -1
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +26 -13
- package/bundle/skills/agentera/capability_schema_contract.yaml +33 -14
- package/bundle/skills/agentera/references/contract.md +2 -2
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +1 -1
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +15 -36
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +14 -0
- package/dist/analytics/extractCorpus/cli.js +101 -0
- package/dist/analytics/extractCorpus/cli.js.map +1 -0
- package/dist/analytics/extractCorpus/copilotSessions.js +231 -0
- package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
- package/dist/analytics/extractCorpus/core.js +357 -0
- package/dist/analytics/extractCorpus/core.js.map +1 -0
- package/dist/analytics/extractCorpus/corpus.js +132 -0
- package/dist/analytics/extractCorpus/corpus.js.map +1 -0
- package/dist/analytics/extractCorpus/cursorSessions.js +420 -0
- package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
- package/dist/analytics/extractCorpus/filesystemSources.js +122 -0
- package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
- package/dist/analytics/extractCorpus/index.js +9 -0
- package/dist/analytics/extractCorpus/index.js.map +1 -0
- package/dist/analytics/extractCorpus/jsonlSessions.js +185 -0
- package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
- package/dist/analytics/extractCorpus/sqliteSessions.js +275 -0
- package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
- package/dist/analytics/extractCorpus.js +2 -1790
- package/dist/analytics/extractCorpus.js.map +1 -1
- package/dist/analytics/usageStats.js +1 -1
- package/dist/analytics/usageStats.js.map +1 -1
- package/dist/capabilities/dokumentera/instructions.js +6 -0
- package/dist/capabilities/dokumentera/instructions.js.map +1 -0
- package/dist/capabilities/hej/instructions.js +6 -0
- package/dist/capabilities/hej/instructions.js.map +1 -0
- package/dist/capabilities/index.js +38 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/inspektera/instructions.js +6 -0
- package/dist/capabilities/inspektera/instructions.js.map +1 -0
- package/dist/capabilities/inspirera/instructions.js +6 -0
- package/dist/capabilities/inspirera/instructions.js.map +1 -0
- package/dist/capabilities/optimera/instructions.js +6 -0
- package/dist/capabilities/optimera/instructions.js.map +1 -0
- package/dist/capabilities/orkestrera/instructions.js +6 -0
- package/dist/capabilities/orkestrera/instructions.js.map +1 -0
- package/dist/capabilities/planera/instructions.js +6 -0
- package/dist/capabilities/planera/instructions.js.map +1 -0
- package/dist/capabilities/profilera/instructions.js +6 -0
- package/dist/capabilities/profilera/instructions.js.map +1 -0
- package/dist/capabilities/realisera/instructions.js +6 -0
- package/dist/capabilities/realisera/instructions.js.map +1 -0
- package/dist/capabilities/resonera/instructions.js +6 -0
- package/dist/capabilities/resonera/instructions.js.map +1 -0
- package/dist/capabilities/visionera/instructions.js +6 -0
- package/dist/capabilities/visionera/instructions.js.map +1 -0
- package/dist/capabilities/visualisera/instructions.js +6 -0
- package/dist/capabilities/visualisera/instructions.js.map +1 -0
- package/dist/cli/capabilityContext/benchmark.js +557 -0
- package/dist/cli/capabilityContext/benchmark.js.map +1 -0
- package/dist/cli/capabilityContext/bespoke.js +25 -0
- package/dist/cli/capabilityContext/bespoke.js.map +1 -0
- package/dist/cli/capabilityContext/closeout.js +230 -0
- package/dist/cli/capabilityContext/closeout.js.map +1 -0
- package/dist/cli/capabilityContext/contract.js +186 -0
- package/dist/cli/capabilityContext/contract.js.map +1 -0
- package/dist/cli/capabilityContext/evidence.js +446 -0
- package/dist/cli/capabilityContext/evidence.js.map +1 -0
- package/dist/cli/capabilityContext/index.js +4 -0
- package/dist/cli/capabilityContext/index.js.map +1 -0
- package/dist/cli/capabilityContext/orchestration.js +107 -0
- package/dist/cli/capabilityContext/orchestration.js.map +1 -0
- package/dist/cli/capabilityContext/planState.js +271 -0
- package/dist/cli/capabilityContext/planState.js.map +1 -0
- package/dist/cli/capabilityContext/progress.js +96 -0
- package/dist/cli/capabilityContext/progress.js.map +1 -0
- package/dist/cli/capabilityContext/realisera.js +174 -0
- package/dist/cli/capabilityContext/realisera.js.map +1 -0
- package/dist/cli/capabilityContext/shared.js +94 -0
- package/dist/cli/capabilityContext/shared.js.map +1 -0
- package/dist/cli/capabilityContext/slim.js +106 -0
- package/dist/cli/capabilityContext/slim.js.map +1 -0
- package/dist/cli/capabilityContext/startup.js +208 -0
- package/dist/cli/capabilityContext/startup.js.map +1 -0
- package/dist/cli/capabilityContext/types.js +43 -0
- package/dist/cli/capabilityContext/types.js.map +1 -0
- package/dist/cli/capabilityContext.js +1 -2420
- package/dist/cli/capabilityContext.js.map +1 -1
- package/dist/cli/commands/capability.js +1 -8
- package/dist/cli/commands/capability.js.map +1 -1
- package/dist/cli/commands/compact.js +1 -1
- package/dist/cli/commands/compact.js.map +1 -1
- package/dist/cli/commands/doctor.js +35 -6
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/lint.js +4 -36
- package/dist/cli/commands/lint.js.map +1 -1
- package/dist/cli/commands/query.js +1 -1
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/report.js +11 -2
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/schema.js +1 -2
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/state/decisions.js +397 -0
- package/dist/cli/commands/state/decisions.js.map +1 -0
- package/dist/cli/commands/state/docs.js +93 -0
- package/dist/cli/commands/state/docs.js.map +1 -0
- package/dist/cli/commands/state/experiments.js +67 -0
- package/dist/cli/commands/state/experiments.js.map +1 -0
- package/dist/cli/commands/state/health.js +114 -0
- package/dist/cli/commands/state/health.js.map +1 -0
- package/dist/cli/commands/state/index.js +51 -0
- package/dist/cli/commands/state/index.js.map +1 -0
- package/dist/cli/commands/state/objective.js +68 -0
- package/dist/cli/commands/state/objective.js.map +1 -0
- package/dist/cli/commands/state/plan.js +172 -0
- package/dist/cli/commands/state/plan.js.map +1 -0
- package/dist/cli/commands/state/progress.js +47 -0
- package/dist/cli/commands/state/progress.js.map +1 -0
- package/dist/cli/commands/state/shared.js +15 -0
- package/dist/cli/commands/state/shared.js.map +1 -0
- package/dist/cli/commands/state/todo.js +121 -0
- package/dist/cli/commands/state/todo.js.map +1 -0
- package/dist/cli/commands/state.js +29 -18
- package/dist/cli/commands/state.js.map +1 -1
- package/dist/cli/commands/validate.js +44 -20
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/dispatch/check.js +328 -0
- package/dist/cli/dispatch/check.js.map +1 -0
- package/dist/cli/dispatch/index.js +177 -0
- package/dist/cli/dispatch/index.js.map +1 -0
- package/dist/cli/dispatch/lifecycle.js +492 -0
- package/dist/cli/dispatch/lifecycle.js.map +1 -0
- package/dist/cli/dispatch/prime.js +100 -0
- package/dist/cli/dispatch/prime.js.map +1 -0
- package/dist/cli/dispatch/shared.js +64 -0
- package/dist/cli/dispatch/shared.js.map +1 -0
- package/dist/cli/dispatch/state.js +149 -0
- package/dist/cli/dispatch/state.js.map +1 -0
- package/dist/cli/dispatch.js +1 -995
- package/dist/cli/dispatch.js.map +1 -1
- package/dist/cli/errors.js +53 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/help.js +1 -3
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/orientation.js +10 -7
- package/dist/cli/orientation.js.map +1 -1
- package/dist/cli/stateQuery.js +7 -0
- package/dist/cli/stateQuery.js.map +1 -1
- package/dist/cli/todoMarkdown.js +33 -0
- package/dist/cli/todoMarkdown.js.map +1 -0
- package/dist/hooks/common.js +8 -25
- package/dist/hooks/common.js.map +1 -1
- package/dist/hooks/compaction/apply.js +244 -0
- package/dist/hooks/compaction/apply.js.map +1 -0
- package/dist/hooks/compaction/dryRun.js +181 -0
- package/dist/hooks/compaction/dryRun.js.map +1 -0
- package/dist/hooks/compaction/index.js +23 -0
- package/dist/hooks/compaction/index.js.map +1 -0
- package/dist/hooks/compaction/parse.js +129 -0
- package/dist/hooks/compaction/parse.js.map +1 -0
- package/dist/hooks/compaction/retention.js +197 -0
- package/dist/hooks/compaction/retention.js.map +1 -0
- package/dist/hooks/compaction/status.js +243 -0
- package/dist/hooks/compaction/status.js.map +1 -0
- package/dist/hooks/compaction/types.js +6 -0
- package/dist/hooks/compaction/types.js.map +1 -0
- package/dist/hooks/compaction.js +20 -20
- package/dist/hooks/compaction.js.map +1 -1
- package/dist/hooks/cursorPreToolUse.js +1 -1
- package/dist/hooks/cursorPreToolUse.js.map +1 -1
- package/dist/hooks/sessionStart.js +4 -4
- package/dist/hooks/sessionStart.js.map +1 -1
- package/dist/hooks/sessionStop.js +3 -12
- package/dist/hooks/sessionStop.js.map +1 -1
- package/dist/hooks/validateArtifact/agentFacing.js +10 -0
- package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
- package/dist/hooks/validateArtifact/index.js +149 -0
- package/dist/hooks/validateArtifact/index.js.map +1 -0
- package/dist/hooks/validateArtifact/markdown.js +95 -0
- package/dist/hooks/validateArtifact/markdown.js.map +1 -0
- package/dist/hooks/validateArtifact/runtime.js +83 -0
- package/dist/hooks/validateArtifact/runtime.js.map +1 -0
- package/dist/hooks/validateArtifact/schema.js +455 -0
- package/dist/hooks/validateArtifact/schema.js.map +1 -0
- package/dist/hooks/validateArtifact/traversal.js +105 -0
- package/dist/hooks/validateArtifact/traversal.js.map +1 -0
- package/dist/hooks/validateArtifact/violations.js +105 -0
- package/dist/hooks/validateArtifact/violations.js.map +1 -0
- package/dist/hooks/validateArtifact.js +40 -49
- package/dist/hooks/validateArtifact.js.map +1 -1
- package/dist/migrate/v2HandoffManifest.js +333 -0
- package/dist/migrate/v2HandoffManifest.js.map +1 -0
- package/dist/registries/artifactProtocolIds.js +77 -0
- package/dist/registries/artifactProtocolIds.js.map +1 -0
- package/dist/registries/capabilityContract.js +12 -11
- package/dist/registries/capabilityContract.js.map +1 -1
- package/dist/registries/evaluatorHandoffContract.js +171 -0
- package/dist/registries/evaluatorHandoffContract.js.map +1 -0
- package/dist/release/releaseMetadata.js +235 -0
- package/dist/release/releaseMetadata.js.map +1 -0
- package/dist/setup/codex/agents.js +96 -0
- package/dist/setup/codex/agents.js.map +1 -0
- package/dist/setup/codex/cli.js +161 -0
- package/dist/setup/codex/cli.js.map +1 -0
- package/dist/setup/codex/configToml.js +644 -0
- package/dist/setup/codex/configToml.js.map +1 -0
- package/dist/setup/codex/constants.js +29 -0
- package/dist/setup/codex/constants.js.map +1 -0
- package/dist/setup/codex/installRoot.js +64 -0
- package/dist/setup/codex/installRoot.js.map +1 -0
- package/dist/setup/codex/state.js +270 -0
- package/dist/setup/codex/state.js.map +1 -0
- package/dist/setup/codex.js +11 -1055
- package/dist/setup/codex.js.map +1 -1
- package/dist/setup/doctor/core.js +300 -0
- package/dist/setup/doctor/core.js.map +1 -0
- package/dist/setup/doctor/diagnostics.js +247 -0
- package/dist/setup/doctor/diagnostics.js.map +1 -0
- package/dist/setup/doctor/opencode.js +281 -0
- package/dist/setup/doctor/opencode.js.map +1 -0
- package/dist/setup/doctor/report.js +474 -0
- package/dist/setup/doctor/report.js.map +1 -0
- package/dist/setup/doctor.js +9 -1296
- package/dist/setup/doctor.js.map +1 -1
- package/dist/setup/opencode.js +13 -0
- package/dist/setup/opencode.js.map +1 -0
- package/dist/setup/smokeChecks.js +1 -1
- package/dist/setup/smokeChecks.js.map +1 -1
- package/dist/state/progressCommit.js +1 -1
- package/dist/state/progressCommit.js.map +1 -1
- package/dist/state/startupAnalysis/benchmark.js +367 -0
- package/dist/state/startupAnalysis/benchmark.js.map +1 -0
- package/dist/state/startupAnalysis/contract.js +122 -0
- package/dist/state/startupAnalysis/contract.js.map +1 -0
- package/dist/state/startupAnalysis/helpers.js +332 -0
- package/dist/state/startupAnalysis/helpers.js.map +1 -0
- package/dist/state/startupAnalysis/index.js +7 -0
- package/dist/state/startupAnalysis/index.js.map +1 -0
- package/dist/state/startupAnalysis/metrics.js +334 -0
- package/dist/state/startupAnalysis/metrics.js.map +1 -0
- package/dist/state/startupAnalysis/records.js +195 -0
- package/dist/state/startupAnalysis/records.js.map +1 -0
- package/dist/state/startupAnalysis/report.js +123 -0
- package/dist/state/startupAnalysis/report.js.map +1 -0
- package/dist/state/startupAnalysis/threshold.js +500 -0
- package/dist/state/startupAnalysis/threshold.js.map +1 -0
- package/dist/state/startupAnalysis.js +2 -1952
- package/dist/state/startupAnalysis.js.map +1 -1
- package/dist/upgrade/coexistenceProbe.js +83 -0
- package/dist/upgrade/coexistenceProbe.js.map +1 -0
- package/dist/upgrade/doctor.js +41 -2
- package/dist/upgrade/doctor.js.map +1 -1
- package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -1
- package/dist/upgrade/migrateArtifactsV1ToV2.js.map +1 -1
- package/dist/upgrade/migrateArtifactsV2ToV3.js +5 -83
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
- package/dist/upgrade/nextMajorDoctor.js +136 -0
- package/dist/upgrade/nextMajorDoctor.js.map +1 -0
- package/dist/upgrade/projectIntegration.js +3 -1
- package/dist/upgrade/projectIntegration.js.map +1 -1
- package/dist/upgrade/runtimeMigration.js +32 -5
- package/dist/upgrade/runtimeMigration.js.map +1 -1
- package/dist/upgrade/v3CapabilitySurface.js +15 -0
- package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
- package/dist/upgrade/versionResolution.js +12 -4
- package/dist/upgrade/versionResolution.js.map +1 -1
- package/dist/validate/appHomeContract.js +4 -4
- package/dist/validate/appHomeContract.js.map +1 -1
- package/dist/validate/capability.js +11 -3
- package/dist/validate/capability.js.map +1 -1
- package/dist/validate/selfAudit.js +62 -20
- package/dist/validate/selfAudit.js.map +1 -1
- package/dist/validate/vocabularyAuthority.js +298 -0
- package/dist/validate/vocabularyAuthority.js.map +1 -0
- package/package.json +4 -4
- package/bundle/references/v1-section-mapping.md +0 -47
- package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
- package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
- package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
- package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
- package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
- package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
- package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
- package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
- package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
- package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
- package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
- package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
- package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
- package/bundle/skills/hej/SKILL.md +0 -69
- package/bundle/skills/hej/agents/hej.toml +0 -11
- package/bundle/skills/hej/agents/openai.yaml +0 -8
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { asList } from "../stateQuery.js";
|
|
3
|
+
import { artifactPath } from "../appContext.js";
|
|
4
|
+
import { sourceMetadata } from "../stateQuery.js";
|
|
5
|
+
import { entryStatus, sourceProvenance, taskRef, hasRecordedValue, } from "./shared.js";
|
|
6
|
+
export function orchestrationTaskSummary(task) {
|
|
7
|
+
const evidence = task.evidence;
|
|
8
|
+
const evidenceItems = Array.isArray(evidence) ? evidence : evidence === null || evidence === undefined || evidence === "" ? [] : [evidence];
|
|
9
|
+
return {
|
|
10
|
+
...taskRef(task),
|
|
11
|
+
depends_on: planDependsOnList(task),
|
|
12
|
+
acceptance_summary: { count: asList(task.acceptance).length, items: asList(task.acceptance) },
|
|
13
|
+
evidence_summary: { count: evidenceItems.length, items: evidenceItems },
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Coerce plan task numbers and depends_on refs to comparable lookup keys (int/string/object forms). */
|
|
17
|
+
export function planTaskRefKeys(value) {
|
|
18
|
+
if (value === null || value === undefined)
|
|
19
|
+
return [];
|
|
20
|
+
if (typeof value === "object" && !Array.isArray(value)) {
|
|
21
|
+
const entry = value;
|
|
22
|
+
const nested = entry.number ?? entry.task_number ?? entry.id;
|
|
23
|
+
return nested === null || nested === undefined ? [] : planTaskRefKeys(nested);
|
|
24
|
+
}
|
|
25
|
+
const text = String(value).trim();
|
|
26
|
+
if (!text)
|
|
27
|
+
return [];
|
|
28
|
+
const keys = new Set([text]);
|
|
29
|
+
const numeric = Number(text);
|
|
30
|
+
if (Number.isFinite(numeric) && Number.isInteger(numeric))
|
|
31
|
+
keys.add(String(numeric));
|
|
32
|
+
return [...keys];
|
|
33
|
+
}
|
|
34
|
+
export function formatPlanTaskDepRef(dep) {
|
|
35
|
+
const keys = planTaskRefKeys(dep);
|
|
36
|
+
return keys.length > 0 ? keys[0] : String(dep);
|
|
37
|
+
}
|
|
38
|
+
export function planDependsOnList(task) {
|
|
39
|
+
const raw = task.depends_on;
|
|
40
|
+
if (Array.isArray(raw))
|
|
41
|
+
return raw;
|
|
42
|
+
if (raw === null || raw === undefined || raw === "")
|
|
43
|
+
return [];
|
|
44
|
+
return [raw];
|
|
45
|
+
}
|
|
46
|
+
export function indexPlanTasksByNumber(tasks) {
|
|
47
|
+
const taskByNumber = {};
|
|
48
|
+
for (const task of tasks) {
|
|
49
|
+
if (task.number === null || task.number === undefined)
|
|
50
|
+
continue;
|
|
51
|
+
for (const key of planTaskRefKeys(task.number))
|
|
52
|
+
taskByNumber[key] = task;
|
|
53
|
+
}
|
|
54
|
+
return taskByNumber;
|
|
55
|
+
}
|
|
56
|
+
export function resolvePlanTaskByRef(taskByNumber, dep) {
|
|
57
|
+
for (const key of planTaskRefKeys(dep)) {
|
|
58
|
+
const hit = taskByNumber[key];
|
|
59
|
+
if (hit !== undefined)
|
|
60
|
+
return hit;
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
export const DONE_STATUSES_ORCH = new Set(["complete", "completed", "closed", "done", "resolved", "retired"]);
|
|
65
|
+
export const BLOCKED_STATUSES_ORCH = new Set(["blocked", "stuck"]);
|
|
66
|
+
export const TARGET_VERSION_RE = /\b\d+\.\d+\.\d+\b/;
|
|
67
|
+
export function dependencyReadyTasks(tasks) {
|
|
68
|
+
const taskByNumber = indexPlanTasksByNumber(tasks);
|
|
69
|
+
const ready = [];
|
|
70
|
+
for (const task of tasks) {
|
|
71
|
+
const status = entryStatus(task, "pending");
|
|
72
|
+
if (DONE_STATUSES_ORCH.has(status) || BLOCKED_STATUSES_ORCH.has(status))
|
|
73
|
+
continue;
|
|
74
|
+
let blocked = false;
|
|
75
|
+
for (const dep of planDependsOnList(task)) {
|
|
76
|
+
const dependency = resolvePlanTaskByRef(taskByNumber, dep);
|
|
77
|
+
if (dependency === undefined || !DONE_STATUSES_ORCH.has(entryStatus(dependency, "pending"))) {
|
|
78
|
+
blocked = true;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (!blocked)
|
|
83
|
+
ready.push(task);
|
|
84
|
+
}
|
|
85
|
+
return ready;
|
|
86
|
+
}
|
|
87
|
+
export function selectEvidenceTarget(plan) {
|
|
88
|
+
const tasks = asList(plan.tasks).filter((t) => t && typeof t === "object" && !Array.isArray(t));
|
|
89
|
+
const noTarget = {
|
|
90
|
+
status: "no_target",
|
|
91
|
+
target_type: "repository",
|
|
92
|
+
task: null,
|
|
93
|
+
selection_reason: "no_plan_task_target",
|
|
94
|
+
source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries"),
|
|
95
|
+
caveats: ["No plan task target was selected; evaluate repository-level evidence only."],
|
|
96
|
+
};
|
|
97
|
+
if (!plan.exists || tasks.length === 0)
|
|
98
|
+
return noTarget;
|
|
99
|
+
const inProgress = tasks.find((task) => entryStatus(task, "pending") === "in_progress");
|
|
100
|
+
if (inProgress) {
|
|
101
|
+
return {
|
|
102
|
+
status: "selected",
|
|
103
|
+
target_type: "plan_task",
|
|
104
|
+
task: taskRef(inProgress),
|
|
105
|
+
selection_reason: "in_progress_task",
|
|
106
|
+
source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries.status"),
|
|
107
|
+
caveats: [],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const ready = dependencyReadyTasks(tasks);
|
|
111
|
+
if (ready.length > 0) {
|
|
112
|
+
return {
|
|
113
|
+
status: "selected",
|
|
114
|
+
target_type: "plan_task",
|
|
115
|
+
task: taskRef(ready[0]),
|
|
116
|
+
selection_reason: "first_dependency_ready_pending_task",
|
|
117
|
+
source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries.depends_on"),
|
|
118
|
+
caveats: [],
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const completedWithEvidence = [...tasks].reverse().find((task) => DONE_STATUSES_ORCH.has(entryStatus(task, "pending")) && hasRecordedValue(task.evidence));
|
|
122
|
+
if (completedWithEvidence) {
|
|
123
|
+
return {
|
|
124
|
+
status: "selected",
|
|
125
|
+
target_type: "plan_task",
|
|
126
|
+
task: taskRef(completedWithEvidence),
|
|
127
|
+
selection_reason: "latest_completed_task_with_evidence",
|
|
128
|
+
source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries.evidence"),
|
|
129
|
+
caveats: [],
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return noTarget;
|
|
133
|
+
}
|
|
134
|
+
export function taskByRef(plan, ref) {
|
|
135
|
+
if (!ref)
|
|
136
|
+
return null;
|
|
137
|
+
for (const task of asList(plan.tasks)) {
|
|
138
|
+
if (task && typeof task === "object" && !Array.isArray(task) && task.number === ref.number)
|
|
139
|
+
return task;
|
|
140
|
+
}
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
export function planContextField(plan, field) {
|
|
144
|
+
const summary = plan.summary && typeof plan.summary === "object" && !Array.isArray(plan.summary) ? plan.summary : {};
|
|
145
|
+
return field in summary ? summary[field] : plan[field];
|
|
146
|
+
}
|
|
147
|
+
export function realiseraScopeBoundary(plan, selected) {
|
|
148
|
+
const explicitPaths = [];
|
|
149
|
+
const scopeField = planContextField(plan, "scope");
|
|
150
|
+
const sources = [selected ?? {}, scopeField && typeof scopeField === "object" ? scopeField : {}];
|
|
151
|
+
for (const source of sources) {
|
|
152
|
+
if (!source || typeof source !== "object" || Array.isArray(source))
|
|
153
|
+
continue;
|
|
154
|
+
for (const key of ["source_files", "files", "paths"]) {
|
|
155
|
+
for (const value of asList(source[key])) {
|
|
156
|
+
const text = String(value).trim();
|
|
157
|
+
if (text && !explicitPaths.includes(text))
|
|
158
|
+
explicitPaths.push(text);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
artifact_families: ["plan", "progress", "todo", "docs", "health", "changelog", "decisions", "vision", "profile", "design"],
|
|
164
|
+
source_scope: {
|
|
165
|
+
status: explicitPaths.length > 0 ? "explicit" : "unspecified",
|
|
166
|
+
explicit_paths: explicitPaths,
|
|
167
|
+
policy: "Do not infer source-file allowlists or exclusions from task text; use only explicit plan/source-contract paths.",
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
export function realiseraArtifactUpdateRequirements(plan, docs) {
|
|
172
|
+
const mapping = asList(docs.mapping);
|
|
173
|
+
const mapped = mapping.filter((e) => e && typeof e === "object" && e.artifact).map((e) => e.artifact);
|
|
174
|
+
return {
|
|
175
|
+
required_families: ["plan", "progress", "todo", "changelog"],
|
|
176
|
+
protected_families: ["vision", "objective", "profile", "installed_app"],
|
|
177
|
+
docs_mapping_available: Boolean(docs.exists && mapping.length > 0),
|
|
178
|
+
mapped_artifacts: mapped,
|
|
179
|
+
plan_status_update_required: Boolean(plan.exists),
|
|
180
|
+
policy: "Update execution artifacts during the cycle; do not mutate protected state without explicit approval.",
|
|
181
|
+
source_provenance: sourceProvenance("docs", "agentera docs --format json", "summary.mapping"),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export function realiseraPlanCompletionSweep(plan) {
|
|
185
|
+
const complete = Boolean(plan.complete_plan);
|
|
186
|
+
return {
|
|
187
|
+
status: complete ? "eligible" : "not_eligible",
|
|
188
|
+
mutation_allowed: false,
|
|
189
|
+
required_updates: ["progress aggregate cycle", "changelog plan-level entries", "TODO milestone advance", "health cross-reference"],
|
|
190
|
+
archive_candidate: complete ? "active plan archive path is generated only during Realisera sweep execution" : null,
|
|
191
|
+
caveats: complete ? [] : ["Plan completion sweep is not eligible until every plan task is complete."],
|
|
192
|
+
source_provenance: sourceProvenance("plan", "agentera plan --format json", "summary.status"),
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
export function selectedTargetVersion(plan) {
|
|
196
|
+
const textParts = [String(plan.title ?? "")];
|
|
197
|
+
const firstPending = plan.first_pending;
|
|
198
|
+
if (firstPending && typeof firstPending === "object" && !Array.isArray(firstPending)) {
|
|
199
|
+
for (const key of ["name", "title"])
|
|
200
|
+
textParts.push(String(firstPending[key] ?? ""));
|
|
201
|
+
}
|
|
202
|
+
for (const task of asList(plan.tasks)) {
|
|
203
|
+
if (task && typeof task === "object" && !Array.isArray(task)) {
|
|
204
|
+
for (const key of ["name", "title"])
|
|
205
|
+
textParts.push(String(task[key] ?? ""));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const match = TARGET_VERSION_RE.exec(textParts.join("\n"));
|
|
209
|
+
return match ? match[0] : null;
|
|
210
|
+
}
|
|
211
|
+
export function changelogRecordsTarget(text, targetVersion) {
|
|
212
|
+
if (!targetVersion)
|
|
213
|
+
return false;
|
|
214
|
+
const escaped = targetVersion.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
215
|
+
const re = new RegExp(`(?<![\\d.])${escaped}(?![\\d.+-])`);
|
|
216
|
+
return text.split(/\r\n|\r|\n/).some((line) => re.test(line));
|
|
217
|
+
}
|
|
218
|
+
export function closeoutChangelogBoundary(schemas, plan) {
|
|
219
|
+
const info = schemas.changelog ?? { path: "CHANGELOG.md", record: undefined, schema: {}, fields: {} };
|
|
220
|
+
const p = artifactPath(info, "changelog");
|
|
221
|
+
const source = sourceMetadata("changelog", p);
|
|
222
|
+
const targetVersion = selectedTargetVersion(plan);
|
|
223
|
+
const unavailable = (caveat) => ({
|
|
224
|
+
status: "unavailable",
|
|
225
|
+
source,
|
|
226
|
+
source_provenance: sourceProvenance("changelog", "agentera query changelog --format json"),
|
|
227
|
+
selected_target_version: targetVersion,
|
|
228
|
+
selected_target_recorded: false,
|
|
229
|
+
unreleased_present: false,
|
|
230
|
+
latest_release_heading: null,
|
|
231
|
+
boundary_present: false,
|
|
232
|
+
boundary: null,
|
|
233
|
+
caveats: [caveat],
|
|
234
|
+
});
|
|
235
|
+
if (!fs.existsSync(p))
|
|
236
|
+
return unavailable("CHANGELOG state is unavailable in CLI state.");
|
|
237
|
+
let text;
|
|
238
|
+
try {
|
|
239
|
+
text = fs.readFileSync(p, "utf8");
|
|
240
|
+
}
|
|
241
|
+
catch (exc) {
|
|
242
|
+
return unavailable(`CHANGELOG state could not be read by the CLI: ${exc.message}`);
|
|
243
|
+
}
|
|
244
|
+
const headings = text.split(/\r\n|\r|\n/).filter((line) => line.startsWith("## ")).map((line) => line.trim());
|
|
245
|
+
const unreleased = headings.find((h) => h.toLowerCase().includes("unreleased")) ?? null;
|
|
246
|
+
const latestRelease = headings.find((h) => !h.toLowerCase().includes("unreleased")) ?? null;
|
|
247
|
+
const selectedRecorded = changelogRecordsTarget(text, targetVersion);
|
|
248
|
+
const caveats = [];
|
|
249
|
+
if (headings.length === 0)
|
|
250
|
+
caveats.push("CHANGELOG state has no release headings.");
|
|
251
|
+
if (targetVersion && !selectedRecorded)
|
|
252
|
+
caveats.push(`CHANGELOG state has no ${targetVersion} closeout entry yet.`);
|
|
253
|
+
const boundary = unreleased || latestRelease;
|
|
254
|
+
return {
|
|
255
|
+
status: headings.length > 0 ? "available" : "incomplete",
|
|
256
|
+
source,
|
|
257
|
+
source_provenance: {
|
|
258
|
+
...sourceProvenance("changelog", "agentera query changelog --format json", "release_headings"),
|
|
259
|
+
internal_source: "CLI-resolved CHANGELOG.md heading scan",
|
|
260
|
+
},
|
|
261
|
+
selected_target_version: targetVersion,
|
|
262
|
+
selected_target_recorded: selectedRecorded,
|
|
263
|
+
unreleased_present: unreleased !== null,
|
|
264
|
+
latest_release_heading: latestRelease,
|
|
265
|
+
boundary_present: boundary !== null,
|
|
266
|
+
boundary,
|
|
267
|
+
release_state: selectedRecorded ? "selected_target_recorded" : "no_selected_target_closeout_entry",
|
|
268
|
+
caveats,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=planState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planState.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/planState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { evaluatorHandoffOutputRequirements, loadEvaluatorHandoffContract, } from "../../registries/evaluatorHandoffContract.js";
|
|
2
|
+
import { capabilityInstructionContractPath } from "./contract.js";
|
|
3
|
+
import { hasRecordedValue, isFile, taskRef } from "./shared.js";
|
|
4
|
+
export function progressVerificationSummary(progress) {
|
|
5
|
+
const source = { source_family: "progress", command: "agentera progress --format json" };
|
|
6
|
+
if (!progress.exists) {
|
|
7
|
+
return {
|
|
8
|
+
status: "unavailable",
|
|
9
|
+
source_provenance: source,
|
|
10
|
+
cycle: null,
|
|
11
|
+
verified_present: false,
|
|
12
|
+
non_empty_evidence_present: false,
|
|
13
|
+
non_empty_evidence_fields: [],
|
|
14
|
+
verified: null,
|
|
15
|
+
verification_summary: null,
|
|
16
|
+
latest_progress_verification_pointer: null,
|
|
17
|
+
caveats: ["No progress cycles are recorded in CLI progress state."],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const latest = progress.latest && typeof progress.latest === "object" && !Array.isArray(progress.latest) ? progress.latest : {};
|
|
21
|
+
const verified = latest.verified;
|
|
22
|
+
const verifiedPresent = hasRecordedValue(verified);
|
|
23
|
+
const cycle = {};
|
|
24
|
+
for (const key of ["number", "timestamp", "type", "phase"]) {
|
|
25
|
+
if (latest[key] !== null && latest[key] !== undefined && latest[key] !== "")
|
|
26
|
+
cycle[key] = latest[key];
|
|
27
|
+
}
|
|
28
|
+
const pointer = { ...source, cycle_number: latest.number ?? null, field: "verified" };
|
|
29
|
+
const caveats = verifiedPresent ? [] : ["Latest progress cycle has no non-empty verified evidence."];
|
|
30
|
+
const evidenceFields = verifiedPresent ? ["verified"] : [];
|
|
31
|
+
return {
|
|
32
|
+
status: "available",
|
|
33
|
+
source_provenance: source,
|
|
34
|
+
cycle,
|
|
35
|
+
verified_present: verifiedPresent,
|
|
36
|
+
non_empty_evidence_present: verifiedPresent,
|
|
37
|
+
non_empty_evidence_fields: evidenceFields,
|
|
38
|
+
verified: verifiedPresent ? verified : null,
|
|
39
|
+
verification_summary: verifiedPresent ? verified : null,
|
|
40
|
+
latest_progress_verification_pointer: pointer,
|
|
41
|
+
caveats,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function retryState() {
|
|
45
|
+
return {
|
|
46
|
+
status: "not_recorded",
|
|
47
|
+
source_provenance: {
|
|
48
|
+
source_family: "progress",
|
|
49
|
+
command: "agentera progress --format json",
|
|
50
|
+
reason: "Current CLI/artifact state records progress cycles but no retry attempt state for orchestration tasks.",
|
|
51
|
+
},
|
|
52
|
+
caveats: ["Retry attempt state is not recorded; no attempt count is exposed."],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function evaluatorHandoffOutputRequirementsFromContract() {
|
|
56
|
+
const contractPath = capabilityInstructionContractPath();
|
|
57
|
+
if (!isFile(contractPath))
|
|
58
|
+
return {};
|
|
59
|
+
try {
|
|
60
|
+
const contract = loadEvaluatorHandoffContract(contractPath);
|
|
61
|
+
return evaluatorHandoffOutputRequirements(contract);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export function evaluatorHandoff(selected, progressVerification, retry, stateCaveats) {
|
|
68
|
+
const caveats = [...stateCaveats, ...(progressVerification.caveats ?? []), ...(retry.caveats ?? [])];
|
|
69
|
+
const outputRequirements = evaluatorHandoffOutputRequirementsFromContract();
|
|
70
|
+
if (selected === null) {
|
|
71
|
+
caveats.push("No dependency-ready task is selected for evaluator handoff.");
|
|
72
|
+
return {
|
|
73
|
+
status: "unavailable",
|
|
74
|
+
task: null,
|
|
75
|
+
acceptance_criteria: [],
|
|
76
|
+
evidence_requirements: [],
|
|
77
|
+
latest_progress_verification_pointer: progressVerification.latest_progress_verification_pointer ?? null,
|
|
78
|
+
evaluation_caveats: caveats,
|
|
79
|
+
output_requirements: outputRequirements,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const evidenceRequirements = (selected.evidence_summary?.items ?? []);
|
|
83
|
+
if (evidenceRequirements.length === 0) {
|
|
84
|
+
caveats.push("Selected task has no explicit evidence requirements recorded in plan state.");
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
status: "ready",
|
|
88
|
+
task: taskRef(selected),
|
|
89
|
+
acceptance_criteria: selected.acceptance_summary?.items ?? [],
|
|
90
|
+
evidence_requirements: evidenceRequirements,
|
|
91
|
+
latest_progress_verification_pointer: progressVerification.latest_progress_verification_pointer ?? null,
|
|
92
|
+
evaluation_caveats: caveats,
|
|
93
|
+
output_requirements: outputRequirements,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { asList } from "../stateQuery.js";
|
|
2
|
+
import { capabilityContext } from "./contract.js";
|
|
3
|
+
import { sourceProvenance, uniqueList, hasRecordedValue, taskRef } from "./shared.js";
|
|
4
|
+
import { closeoutChangelogBoundary, orchestrationTaskSummary, planContextField, realiseraArtifactUpdateRequirements, realiseraPlanCompletionSweep, realiseraScopeBoundary, selectEvidenceTarget, taskByRef, } from "./planState.js";
|
|
5
|
+
import { progressVerificationSummary } from "./progress.js";
|
|
6
|
+
export function realiseraExecutionContext(capability, schemas, plan, progress, health, todoItems, docs, profile, bundle) {
|
|
7
|
+
if (capability !== "realisera")
|
|
8
|
+
return null;
|
|
9
|
+
const capabilityContract = capabilityContext(capability) ?? {};
|
|
10
|
+
const tasks = asList(plan.tasks).filter((t) => t && typeof t === "object" && !Array.isArray(t));
|
|
11
|
+
const target = selectEvidenceTarget(plan);
|
|
12
|
+
const selected = taskByRef(plan, target && typeof target === "object" ? target.task : null);
|
|
13
|
+
const acceptance = selected && typeof selected === "object" ? asList(selected.acceptance) : [];
|
|
14
|
+
const progressVerification = progressVerificationSummary(progress);
|
|
15
|
+
const changelogBoundary = closeoutChangelogBoundary(schemas, plan);
|
|
16
|
+
const sweep = realiseraPlanCompletionSweep(plan);
|
|
17
|
+
let mode;
|
|
18
|
+
if (plan.complete_plan)
|
|
19
|
+
mode = "completed_plan_sweep";
|
|
20
|
+
else if (!plan.exists || tasks.length === 0)
|
|
21
|
+
mode = "no_plan";
|
|
22
|
+
else if (target.status === "selected" && selected !== null)
|
|
23
|
+
mode = "plan_driven";
|
|
24
|
+
else
|
|
25
|
+
mode = "blocked_or_dependency_unready";
|
|
26
|
+
let stateCaveats = [];
|
|
27
|
+
let fallbackCommands = [];
|
|
28
|
+
for (const family of (capabilityContract.missing_state_families ?? [])) {
|
|
29
|
+
stateCaveats.push(`${family} state is not included in prime --context startup context.`);
|
|
30
|
+
}
|
|
31
|
+
fallbackCommands.push(...(capabilityContract.cli_fallback ?? []));
|
|
32
|
+
if (!plan.exists) {
|
|
33
|
+
stateCaveats.push("plan state is unavailable; execution context cannot select plan-driven work.");
|
|
34
|
+
fallbackCommands.push("agentera plan --format json");
|
|
35
|
+
}
|
|
36
|
+
if (mode === "blocked_or_dependency_unready") {
|
|
37
|
+
stateCaveats.push("No dependency-ready pending plan task is available in CLI plan state.");
|
|
38
|
+
fallbackCommands.push("agentera plan --format json");
|
|
39
|
+
}
|
|
40
|
+
if (mode === "plan_driven" && acceptance.length === 0) {
|
|
41
|
+
stateCaveats.push("Selected Realisera task has no acceptance criteria in CLI plan state.");
|
|
42
|
+
fallbackCommands.push("agentera plan --format json");
|
|
43
|
+
}
|
|
44
|
+
if (!progress.exists) {
|
|
45
|
+
stateCaveats.push("progress state is unavailable; progress logging context is incomplete.");
|
|
46
|
+
fallbackCommands.push("agentera progress --format json");
|
|
47
|
+
}
|
|
48
|
+
if (!health.exists) {
|
|
49
|
+
stateCaveats.push("health state is unavailable or incomplete.");
|
|
50
|
+
fallbackCommands.push("agentera health --format json");
|
|
51
|
+
}
|
|
52
|
+
if (!docs.exists) {
|
|
53
|
+
stateCaveats.push("docs mapping state is unavailable or incomplete.");
|
|
54
|
+
fallbackCommands.push("agentera docs --format json");
|
|
55
|
+
}
|
|
56
|
+
if (todoItems.length === 0) {
|
|
57
|
+
stateCaveats.push("todo state has no open entries in prime --context response; absence may mean none open or unavailable.");
|
|
58
|
+
fallbackCommands.push("agentera todo --format json");
|
|
59
|
+
}
|
|
60
|
+
if (changelogBoundary.status !== "available") {
|
|
61
|
+
stateCaveats.push(...(changelogBoundary.caveats ?? []));
|
|
62
|
+
fallbackCommands.push("agentera query changelog --format json");
|
|
63
|
+
}
|
|
64
|
+
if (profile.status !== "loaded") {
|
|
65
|
+
stateCaveats.push("profile-derived state is unavailable in prime --context response.");
|
|
66
|
+
}
|
|
67
|
+
else if (profile.stale === true) {
|
|
68
|
+
stateCaveats.push("profile-derived state is stale; this is a caveat, not approval to refresh profile state.");
|
|
69
|
+
}
|
|
70
|
+
if (bundle.status !== "up_to_date") {
|
|
71
|
+
stateCaveats.push("Agentera app files are not up to date; this is a caveat, not approval to repair or update app files.");
|
|
72
|
+
}
|
|
73
|
+
const scopeBoundary = realiseraScopeBoundary(plan, selected);
|
|
74
|
+
if (scopeBoundary.source_scope.status === "unspecified") {
|
|
75
|
+
stateCaveats.push("source-file scope is unspecified; no allowed or prohibited source paths were inferred.");
|
|
76
|
+
}
|
|
77
|
+
fallbackCommands = uniqueList(fallbackCommands);
|
|
78
|
+
stateCaveats = uniqueList(stateCaveats);
|
|
79
|
+
const requiredState = {
|
|
80
|
+
work_selection: mode === "plan_driven" || mode === "completed_plan_sweep",
|
|
81
|
+
acceptance_criteria: mode === "completed_plan_sweep" || acceptance.length > 0,
|
|
82
|
+
artifact_update_requirements: Boolean(docs.exists),
|
|
83
|
+
progress_logging_requirements: progressVerification.status === "available" || (progressVerification.caveats ?? []).length > 0,
|
|
84
|
+
changelog_boundary: changelogBoundary.status === "available",
|
|
85
|
+
scope_boundary: true,
|
|
86
|
+
safety_boundaries: true,
|
|
87
|
+
};
|
|
88
|
+
const missingRequired = Object.entries(requiredState).filter(([, present]) => !present).map(([name]) => name);
|
|
89
|
+
const caveated = stateCaveats.length > 0;
|
|
90
|
+
const complete = (mode === "plan_driven" || mode === "completed_plan_sweep") && missingRequired.length === 0;
|
|
91
|
+
return {
|
|
92
|
+
capability: "realisera",
|
|
93
|
+
mode,
|
|
94
|
+
work_selection: {
|
|
95
|
+
status: target.status,
|
|
96
|
+
selection_reason: target.selection_reason,
|
|
97
|
+
task: selected && typeof selected === "object" ? taskRef(selected) : null,
|
|
98
|
+
source_provenance: target.source_provenance,
|
|
99
|
+
caveats: target.caveats ?? [],
|
|
100
|
+
},
|
|
101
|
+
plan_task: selected && typeof selected === "object" ? orchestrationTaskSummary(selected) : null,
|
|
102
|
+
acceptance_criteria: {
|
|
103
|
+
status: acceptance.length > 0 ? "available" : "incomplete",
|
|
104
|
+
items: acceptance,
|
|
105
|
+
count: acceptance.length,
|
|
106
|
+
source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries.acceptance"),
|
|
107
|
+
},
|
|
108
|
+
constraints: {
|
|
109
|
+
plan_constraints_present: hasRecordedValue(planContextField(plan, "constraints")),
|
|
110
|
+
plan_constraints_summary: "Plan constraints are represented here as structured safety and fallback policy; " +
|
|
111
|
+
"run the plan CLI fallback only if full wording is needed.",
|
|
112
|
+
protected_actions: [
|
|
113
|
+
"no profile refresh",
|
|
114
|
+
"no installed app refresh",
|
|
115
|
+
"no vision edit",
|
|
116
|
+
"no objective-state edit",
|
|
117
|
+
"no dispatch without explicit cycle execution",
|
|
118
|
+
"no commit/push/tag/publication without explicit approval",
|
|
119
|
+
],
|
|
120
|
+
unsupported_cli_command_policy: "Do not introduce capability-name or slash-alias CLI commands for Realisera.",
|
|
121
|
+
source_provenance: sourceProvenance("plan", "agentera plan --format json", "summary.constraints"),
|
|
122
|
+
},
|
|
123
|
+
scope_boundary: scopeBoundary,
|
|
124
|
+
verification_expectations: {
|
|
125
|
+
latest_progress_verification: progressVerification,
|
|
126
|
+
expected_commands: ["focused pytest targets", "Realisera capability validation", "self-validation", "agentera gate", "compaction check", "git diff --check"],
|
|
127
|
+
source_provenance: sourceProvenance("plan", "agentera plan --format json", "entries.acceptance"),
|
|
128
|
+
},
|
|
129
|
+
artifact_update_requirements: realiseraArtifactUpdateRequirements(plan, docs),
|
|
130
|
+
progress_logging_requirements: {
|
|
131
|
+
append_cycle: true,
|
|
132
|
+
verified_field_mandatory: true,
|
|
133
|
+
latest_progress_verification_pointer: progressVerification.latest_progress_verification_pointer ?? null,
|
|
134
|
+
source_provenance: sourceProvenance("progress", "agentera progress --format json"),
|
|
135
|
+
},
|
|
136
|
+
changelog_boundary: changelogBoundary,
|
|
137
|
+
git_boundary: {
|
|
138
|
+
remote_push_allowed: false,
|
|
139
|
+
commit_allowed_only_with_explicit_user_request: true,
|
|
140
|
+
tag_or_publication_allowed: false,
|
|
141
|
+
source_provenance: sourceProvenance("execution_context", "agentera prime --context realisera --format json", "git_boundary"),
|
|
142
|
+
},
|
|
143
|
+
plan_completion_sweep: sweep,
|
|
144
|
+
state_family_caveats: stateCaveats,
|
|
145
|
+
fallback_commands: fallbackCommands,
|
|
146
|
+
source_contract: {
|
|
147
|
+
complete_for_execution_context: complete,
|
|
148
|
+
caveated,
|
|
149
|
+
raw_artifact_reads_required: false,
|
|
150
|
+
raw_artifact_read_policy: "Use this execution_context and included hej state first. Run listed routine/query CLI fallback commands " +
|
|
151
|
+
"for missing or incomplete execution state; raw artifact reads are last-resort diagnostics, not normal Realisera startup behavior.",
|
|
152
|
+
included_state_families: capabilityContract.included_state_families ?? [],
|
|
153
|
+
missing_state_families: capabilityContract.missing_state_families ?? [],
|
|
154
|
+
required_execution_state: requiredState,
|
|
155
|
+
missing_required_execution_state: missingRequired,
|
|
156
|
+
fallback_commands: fallbackCommands,
|
|
157
|
+
caveats: stateCaveats,
|
|
158
|
+
owns: [
|
|
159
|
+
"selected work item",
|
|
160
|
+
"task details and acceptance criteria",
|
|
161
|
+
"constraints and safety boundaries",
|
|
162
|
+
"verification expectations",
|
|
163
|
+
"artifact update requirements",
|
|
164
|
+
"progress logging requirements",
|
|
165
|
+
"changelog boundary",
|
|
166
|
+
"scope boundary",
|
|
167
|
+
"read-only plan completion sweep metadata",
|
|
168
|
+
"truthful completeness metadata",
|
|
169
|
+
],
|
|
170
|
+
deferred: [],
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=realisera.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realisera.js","sourceRoot":"","sources":["../../../src/cli/capabilityContext/realisera.ts"],"names":[],"mappings":"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"}
|