agentera 0.0.0 → 3.0.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -45
- package/bundle/.agentera-npx-bundle.json +4 -0
- package/bundle/references/adapters/cursor.md +213 -0
- package/bundle/references/adapters/opencode.md +530 -0
- package/bundle/references/adapters/package-manifest-interface-model.yaml +337 -0
- package/bundle/references/adapters/package-registry.yaml +247 -0
- package/bundle/references/adapters/package-surface-characterization.md +48 -0
- package/bundle/references/adapters/runtime-adapter-characterization.md +79 -0
- package/bundle/references/adapters/runtime-adapter-interface-model.yaml +200 -0
- package/bundle/references/adapters/runtime-adapter-registry.yaml +548 -0
- package/bundle/references/adapters/runtime-feature-parity.md +189 -0
- package/bundle/references/analysis/benchmark.md +267 -0
- package/bundle/references/analysis/startup-measurement-contract.yaml +424 -0
- package/bundle/references/artifacts/artifact-registry-interface-model.yaml +288 -0
- package/bundle/references/cli/agent-ready-state-contract.yaml +950 -0
- package/bundle/references/cli/app-lifecycle-vocabulary.yaml +233 -0
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +355 -0
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +278 -0
- package/bundle/references/cli/capability-instruction-contract.yaml +123 -0
- package/bundle/references/cli/capability-tool-classification.yaml +53 -0
- package/bundle/references/cli/routing-execution-vocabulary.yaml +281 -0
- package/bundle/references/cli/update-channels.yaml +120 -0
- package/bundle/references/cli/vocabulary-index.yaml +160 -0
- package/bundle/references/cli/vocabulary.md +562 -0
- package/bundle/references/meta/documentation-inventory.md +43 -0
- package/bundle/references/v1-section-mapping.md +47 -0
- package/bundle/registry.json +39 -0
- package/bundle/skills/agentera/.claude-plugin/plugin.json +27 -0
- package/bundle/skills/agentera/SKILL.md +470 -0
- package/bundle/skills/agentera/agents/dokumentera.toml +6 -0
- package/bundle/skills/agentera/agents/hej.toml +6 -0
- package/bundle/skills/agentera/agents/inspektera.toml +6 -0
- package/bundle/skills/agentera/agents/inspirera.toml +6 -0
- package/bundle/skills/agentera/agents/optimera.toml +6 -0
- package/bundle/skills/agentera/agents/orkestrera.toml +6 -0
- package/bundle/skills/agentera/agents/planera.toml +6 -0
- package/bundle/skills/agentera/agents/profilera.toml +6 -0
- package/bundle/skills/agentera/agents/realisera.toml +6 -0
- package/bundle/skills/agentera/agents/resonera.toml +6 -0
- package/bundle/skills/agentera/agents/visionera.toml +6 -0
- package/bundle/skills/agentera/agents/visualisera.toml +6 -0
- package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +428 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +73 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +35 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/validation.yaml +139 -0
- package/bundle/skills/agentera/capabilities/hej/instructions.md +331 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +69 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/exit.yaml +32 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +58 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/validation.yaml +55 -0
- package/bundle/skills/agentera/capabilities/inspektera/instructions.md +514 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +76 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/exit.yaml +36 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +38 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/validation.yaml +113 -0
- package/bundle/skills/agentera/capabilities/inspirera/instructions.md +280 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +24 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/exit.yaml +33 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +34 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/validation.yaml +58 -0
- package/bundle/skills/agentera/capabilities/optimera/instructions.md +437 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/artifacts.yaml +69 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +39 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/validation.yaml +91 -0
- package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +433 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +64 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +42 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +107 -0
- package/bundle/skills/agentera/capabilities/planera/instructions.md +368 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +62 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/exit.yaml +33 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +34 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +61 -0
- package/bundle/skills/agentera/capabilities/profilera/instructions.md +419 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +18 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +45 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +57 -0
- package/bundle/skills/agentera/capabilities/realisera/instructions.md +403 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +80 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +39 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +110 -0
- package/bundle/skills/agentera/capabilities/resonera/instructions.md +329 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +47 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +46 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +77 -0
- package/bundle/skills/agentera/capabilities/visionera/instructions.md +309 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/artifacts.yaml +57 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +41 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/validation.yaml +74 -0
- package/bundle/skills/agentera/capabilities/visualisera/instructions.md +400 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/artifacts.yaml +44 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +33 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/validation.yaml +80 -0
- package/bundle/skills/agentera/capability_schema_contract.yaml +385 -0
- package/bundle/skills/agentera/protocol.yaml +463 -0
- package/bundle/skills/agentera/references/contract.md +1039 -0
- package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +60 -0
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +461 -0
- package/bundle/skills/agentera/schemas/artifacts/design.yaml +55 -0
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +402 -0
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +373 -0
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +484 -0
- package/bundle/skills/agentera/schemas/artifacts/objective.yaml +399 -0
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +342 -0
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +325 -0
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +110 -0
- package/bundle/skills/agentera/schemas/artifacts/vision.yaml +262 -0
- package/bundle/skills/hej/.claude-plugin/plugin.json +6 -0
- package/bundle/skills/hej/SKILL.md +69 -0
- package/bundle/skills/hej/agents/hej.toml +11 -0
- package/bundle/skills/hej/agents/openai.yaml +8 -0
- package/dist/analytics/extractCorpus.js +1791 -0
- package/dist/analytics/extractCorpus.js.map +1 -0
- package/dist/analytics/usageStats.js +487 -0
- package/dist/analytics/usageStats.js.map +1 -0
- package/dist/bin/agentera.js +4 -0
- package/dist/bin/agentera.js.map +1 -0
- package/dist/cli/appContext.js +226 -0
- package/dist/cli/appContext.js.map +1 -0
- package/dist/cli/argvalidate.js +41 -0
- package/dist/cli/argvalidate.js.map +1 -0
- package/dist/cli/capabilityContext.js +2421 -0
- package/dist/cli/capabilityContext.js.map +1 -0
- package/dist/cli/commands/backfill.js +84 -0
- package/dist/cli/commands/backfill.js.map +1 -0
- package/dist/cli/commands/capability.js +44 -0
- package/dist/cli/commands/capability.js.map +1 -0
- package/dist/cli/commands/compact.js +148 -0
- package/dist/cli/commands/compact.js.map +1 -0
- package/dist/cli/commands/doctor.js +180 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/lint.js +179 -0
- package/dist/cli/commands/lint.js.map +1 -0
- package/dist/cli/commands/prime.js +545 -0
- package/dist/cli/commands/prime.js.map +1 -0
- package/dist/cli/commands/query.js +346 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/report.js +210 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/schema.js +306 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/state.js +1012 -0
- package/dist/cli/commands/state.js.map +1 -0
- package/dist/cli/commands/upgrade.js +49 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/commands/validate.js +519 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/verify.js +204 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/dispatch.js +962 -0
- package/dist/cli/dispatch.js.map +1 -0
- package/dist/cli/orientation.js +595 -0
- package/dist/cli/orientation.js.map +1 -0
- package/dist/cli/prime-blob.js +3 -0
- package/dist/cli/prime-blob.js.map +1 -0
- package/dist/cli/stateQuery.js +292 -0
- package/dist/cli/stateQuery.js.map +1 -0
- package/dist/cli/structured.js +18 -0
- package/dist/cli/structured.js.map +1 -0
- package/dist/core/difflib.js +274 -0
- package/dist/core/difflib.js.map +1 -0
- package/dist/core/git.js +43 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/paths.js +50 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/pyjson.js +101 -0
- package/dist/core/pyjson.js.map +1 -0
- package/dist/core/sourceRoot.js +72 -0
- package/dist/core/sourceRoot.js.map +1 -0
- package/dist/core/toml.js +11 -0
- package/dist/core/toml.js.map +1 -0
- package/dist/core/yaml.js +25 -0
- package/dist/core/yaml.js.map +1 -0
- package/dist/eval/evalSkills.js +258 -0
- package/dist/eval/evalSkills.js.map +1 -0
- package/dist/eval/semanticEval.js +148 -0
- package/dist/eval/semanticEval.js.map +1 -0
- package/dist/eval/semanticFixtures.js +227 -0
- package/dist/eval/semanticFixtures.js.map +1 -0
- package/dist/hooks/common.js +160 -0
- package/dist/hooks/common.js.map +1 -0
- package/dist/hooks/compaction.js +935 -0
- package/dist/hooks/compaction.js.map +1 -0
- package/dist/hooks/cursorPreToolUse.js +19 -0
- package/dist/hooks/cursorPreToolUse.js.map +1 -0
- package/dist/hooks/cursorSessionStart.js +71 -0
- package/dist/hooks/cursorSessionStart.js.map +1 -0
- package/dist/hooks/sessionStart.js +209 -0
- package/dist/hooks/sessionStart.js.map +1 -0
- package/dist/hooks/sessionStop.js +212 -0
- package/dist/hooks/sessionStop.js.map +1 -0
- package/dist/hooks/validateArtifact.js +933 -0
- package/dist/hooks/validateArtifact.js.map +1 -0
- package/dist/registries/artifactRegistry.js +206 -0
- package/dist/registries/artifactRegistry.js.map +1 -0
- package/dist/registries/capabilityContract.js +310 -0
- package/dist/registries/capabilityContract.js.map +1 -0
- package/dist/registries/packageRegistry.js +641 -0
- package/dist/registries/packageRegistry.js.map +1 -0
- package/dist/registries/runtimeAdapterRegistry.js +315 -0
- package/dist/registries/runtimeAdapterRegistry.js.map +1 -0
- package/dist/setup/codex.js +1052 -0
- package/dist/setup/codex.js.map +1 -0
- package/dist/setup/copilot.js +227 -0
- package/dist/setup/copilot.js.map +1 -0
- package/dist/setup/cursor.js +127 -0
- package/dist/setup/cursor.js.map +1 -0
- package/dist/setup/doctor.js +1269 -0
- package/dist/setup/doctor.js.map +1 -0
- package/dist/state/installRoot.js +279 -0
- package/dist/state/installRoot.js.map +1 -0
- package/dist/state/progressCommit.js +289 -0
- package/dist/state/progressCommit.js.map +1 -0
- package/dist/state/startupAnalysis.js +1953 -0
- package/dist/state/startupAnalysis.js.map +1 -0
- package/dist/upgrade/appModel.js +189 -0
- package/dist/upgrade/appModel.js.map +1 -0
- package/dist/upgrade/channels.js +197 -0
- package/dist/upgrade/channels.js.map +1 -0
- package/dist/upgrade/compatibility.js +197 -0
- package/dist/upgrade/compatibility.js.map +1 -0
- package/dist/upgrade/doctor.js +368 -0
- package/dist/upgrade/doctor.js.map +1 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js +412 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -0
- package/dist/upgrade/upgradeCommands.js +40 -0
- package/dist/upgrade/upgradeCommands.js.map +1 -0
- package/dist/upgrade/upgradeOrchestrator.js +280 -0
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -0
- package/dist/validate/appHomeContract.js +150 -0
- package/dist/validate/appHomeContract.js.map +1 -0
- package/dist/validate/capability.js +412 -0
- package/dist/validate/capability.js.map +1 -0
- package/dist/validate/crossCapability.js +145 -0
- package/dist/validate/crossCapability.js.map +1 -0
- package/dist/validate/lifecycleAdapters.js +772 -0
- package/dist/validate/lifecycleAdapters.js.map +1 -0
- package/dist/validate/selfAudit.js +107 -0
- package/dist/validate/selfAudit.js.map +1 -0
- package/package.json +28 -8
- package/LICENSE +0 -201
- package/bin/agentera.mjs +0 -50
- package/lib/exec.mjs +0 -116
- package/lib/resolve.mjs +0 -129
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { parseYaml } from "../../core/yaml.js";
|
|
4
|
+
import { activeAppModel, discoverSchemasDir, loadSchemas, } from "../appContext.js";
|
|
5
|
+
import { emitStructured } from "../structured.js";
|
|
6
|
+
import { appModelPayload, REQUIRED_SPARSE_CONTEXT_FIELDS, ROUTINE_STRUCTURED_FIELDS, surfaceMissingMessage, } from "../stateQuery.js";
|
|
7
|
+
import { artifactLocationContract } from "./query.js";
|
|
8
|
+
const CAPABILITY_NAMES = [
|
|
9
|
+
"hej", "visionera", "resonera", "inspirera", "planera", "realisera",
|
|
10
|
+
"optimera", "inspektera", "dokumentera", "profilera", "visualisera", "orkestrera",
|
|
11
|
+
];
|
|
12
|
+
const ROUTINE_STATE_COMMANDS = [
|
|
13
|
+
"hej", "plan", "progress", "health", "todo", "decisions", "docs", "objective", "experiments",
|
|
14
|
+
];
|
|
15
|
+
const DOCTOR_SIGNAL_KINDS = [
|
|
16
|
+
"missing_bundle", "invalid_install_root", "unmanaged_install_root", "invalid_bundle",
|
|
17
|
+
"missing_marker", "version_mismatch", "cli_probe_unavailable", "cli_probe_failed", "missing_command",
|
|
18
|
+
];
|
|
19
|
+
const HEJ_STRUCTURED_FIELDS = [
|
|
20
|
+
"command", "status", "app_home", "bundle", "mode", "profile", "v1_migration", "health",
|
|
21
|
+
"issues", "plan", "docs", "progress", "objective", "state_presence", "attention",
|
|
22
|
+
"decision_attention", "next_action", "orchestration_context", "closeout_context",
|
|
23
|
+
"evidence_context", "benchmark_context", "execution_context", "source", "source_contract",
|
|
24
|
+
];
|
|
25
|
+
const COMMAND_DESCRIPTIONS = {
|
|
26
|
+
prime: "Composite orientation briefing and capability startup context.",
|
|
27
|
+
hej: "Deprecated alias for prime.",
|
|
28
|
+
schema: "Runtime CLI/schema introspection.",
|
|
29
|
+
plan: "Deprecated alias for state plan. Active plan summary.",
|
|
30
|
+
progress: "Deprecated alias for state progress. Recent cycle summary.",
|
|
31
|
+
health: "Deprecated alias for state health. Latest project artifact health audit.",
|
|
32
|
+
todo: "Deprecated alias for state todo. TODO summary.",
|
|
33
|
+
decisions: "Deprecated alias for state decisions. Decision log.",
|
|
34
|
+
docs: "Deprecated alias for state docs. Documentation contract summary.",
|
|
35
|
+
objective: "Deprecated alias for state objective. Active optimera objective summary.",
|
|
36
|
+
experiments: "Deprecated alias for state experiments. Active optimera experiments summary.",
|
|
37
|
+
query: "Deprecated alias for state query. Advanced custom artifact query.",
|
|
38
|
+
lint: "Deprecated alias for check lint. Run pre-write artifact prose self-audit.",
|
|
39
|
+
gate: "Deprecated alias for check compact. Run check-only repository gates.",
|
|
40
|
+
compact: "Deprecated alias for check compact. Check or fix artifact compaction budgets.",
|
|
41
|
+
upgrade: "Preview or apply phased upgrade: v1→v2 (legacy Python), v2→v3 (explicit --target-major 3 opt-in on 3.x CLI).",
|
|
42
|
+
doctor: "Check Agentera CLI, app, and runtime status.",
|
|
43
|
+
describe: "Deprecated alias for schema.",
|
|
44
|
+
};
|
|
45
|
+
const COMMAND_FILTERS_SCHEMA = {
|
|
46
|
+
prime: [],
|
|
47
|
+
hej: [],
|
|
48
|
+
schema: ["format"],
|
|
49
|
+
describe: ["format"],
|
|
50
|
+
};
|
|
51
|
+
function availableStructuredFields(command) {
|
|
52
|
+
if (command === "prime")
|
|
53
|
+
return [...HEJ_STRUCTURED_FIELDS, "capability_context"];
|
|
54
|
+
if (command === "hej")
|
|
55
|
+
return HEJ_STRUCTURED_FIELDS;
|
|
56
|
+
if (CAPABILITY_NAMES.includes(command))
|
|
57
|
+
return ["command", "status", "capability", "routing"];
|
|
58
|
+
return ROUTINE_STRUCTURED_FIELDS;
|
|
59
|
+
}
|
|
60
|
+
// COMMAND_FILTERS for the routine/state/lint/gate/compact/doctor/upgrade commands.
|
|
61
|
+
const COMMAND_FILTERS_ALL = {
|
|
62
|
+
hej: [],
|
|
63
|
+
plan: ["status"],
|
|
64
|
+
progress: ["topic", "status", "limit"],
|
|
65
|
+
health: ["dimension"],
|
|
66
|
+
todo: ["severity", "status"],
|
|
67
|
+
decisions: ["topic"],
|
|
68
|
+
docs: ["topic", "status"],
|
|
69
|
+
objective: ["status"],
|
|
70
|
+
experiments: ["topic", "status", "limit"],
|
|
71
|
+
query: ["list_artifacts", "topic", "severity", "dimension", "status", "limit"],
|
|
72
|
+
lint: ["artifact", "file", "text", "strict", "format"],
|
|
73
|
+
gate: ["project", "format"],
|
|
74
|
+
compact: ["project", "mode", "format"],
|
|
75
|
+
doctor: ["install_root", "home", "project", "expected_version", "expect_command"],
|
|
76
|
+
upgrade: ["project", "install_root", "home", "runtime", "only", "dry_run", "yes", "force", "update_packages", "channel", "target_major"],
|
|
77
|
+
describe: ["format"],
|
|
78
|
+
schema: ["format"],
|
|
79
|
+
};
|
|
80
|
+
function contractPath() {
|
|
81
|
+
const sourceRoot = path.resolve(discoverSchemasDir(), "..", "..", "..", "..");
|
|
82
|
+
return path.join(sourceRoot, "references", "cli", "agent-ready-state-contract.yaml");
|
|
83
|
+
}
|
|
84
|
+
function loadDecision45Contract() {
|
|
85
|
+
const p = contractPath();
|
|
86
|
+
let isFile = false;
|
|
87
|
+
try {
|
|
88
|
+
isFile = fs.statSync(p).isFile();
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
isFile = false;
|
|
92
|
+
}
|
|
93
|
+
if (!isFile)
|
|
94
|
+
return [null, "Decision 45 CLI contract is missing"];
|
|
95
|
+
try {
|
|
96
|
+
return [parseYaml(fs.readFileSync(p, "utf8")), null];
|
|
97
|
+
}
|
|
98
|
+
catch (exc) {
|
|
99
|
+
return [null, `Decision 45 CLI contract could not be read: ${exc.message}`];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function schemaFieldDescription(entry) {
|
|
103
|
+
return {
|
|
104
|
+
id: entry.id ?? null,
|
|
105
|
+
field: entry.field ?? null,
|
|
106
|
+
type: entry.type ?? "unknown",
|
|
107
|
+
required: "required" in entry ? entry.required : "unknown",
|
|
108
|
+
format: entry.format ?? null,
|
|
109
|
+
validation: entry.validation ?? [],
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const FIELD_SKIP = new Set([
|
|
113
|
+
"meta", "GROUP_PREFIXES", "BUDGET", "COMPACTION", "VALIDATION", "ARCHIVE", "CONVENTION", "CONVENTIONS",
|
|
114
|
+
]);
|
|
115
|
+
function describeSchemaFields(schema) {
|
|
116
|
+
const fields = [];
|
|
117
|
+
for (const [groupKey, groupVal] of Object.entries(schema)) {
|
|
118
|
+
if (FIELD_SKIP.has(groupKey) || !groupVal || typeof groupVal !== "object" || Array.isArray(groupVal))
|
|
119
|
+
continue;
|
|
120
|
+
for (const entry of Object.values(groupVal)) {
|
|
121
|
+
if (entry && typeof entry === "object" && !Array.isArray(entry) && "field" in entry) {
|
|
122
|
+
const field = schemaFieldDescription(entry);
|
|
123
|
+
field.group = groupKey;
|
|
124
|
+
fields.push(field);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return fields;
|
|
129
|
+
}
|
|
130
|
+
function commandDescription(name, kind, fields = null) {
|
|
131
|
+
let outputFormats = ["text", "json", "yaml"];
|
|
132
|
+
if (name === "lint")
|
|
133
|
+
outputFormats = ["text", "json"];
|
|
134
|
+
else if (name === "compact" || name === "gate")
|
|
135
|
+
outputFormats = ["text", "json"];
|
|
136
|
+
else if (name === "doctor")
|
|
137
|
+
outputFormats = ["text", "json"];
|
|
138
|
+
else if (name === "upgrade")
|
|
139
|
+
outputFormats = ["text", "json"];
|
|
140
|
+
else if (name === "describe" || name === "schema")
|
|
141
|
+
outputFormats = ["json", "yaml"];
|
|
142
|
+
else if (name === "prime")
|
|
143
|
+
outputFormats = ["text", "json", "yaml"];
|
|
144
|
+
return {
|
|
145
|
+
name,
|
|
146
|
+
kind,
|
|
147
|
+
description: COMMAND_DESCRIPTIONS[name] ?? "unknown",
|
|
148
|
+
filters: COMMAND_FILTERS_ALL[name] ?? [],
|
|
149
|
+
output_formats: outputFormats,
|
|
150
|
+
structured_fields: fields ?? [],
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function describeCommands() {
|
|
154
|
+
const commands = [
|
|
155
|
+
commandDescription("prime", "orientation", availableStructuredFields("prime")),
|
|
156
|
+
commandDescription("hej", "deprecated_alias", availableStructuredFields("hej")),
|
|
157
|
+
];
|
|
158
|
+
for (const name of CAPABILITY_NAMES) {
|
|
159
|
+
if (name === "hej")
|
|
160
|
+
continue;
|
|
161
|
+
commands.push(commandDescription(name, "capability_routing", availableStructuredFields(name)));
|
|
162
|
+
}
|
|
163
|
+
for (const name of ROUTINE_STATE_COMMANDS) {
|
|
164
|
+
commands.push(commandDescription(name, "routine_state", availableStructuredFields(name)));
|
|
165
|
+
}
|
|
166
|
+
commands.push(commandDescription("query", "advanced_artifact_query"), commandDescription("lint", "artifact_lint", ["command", "status", "artifact", "checks", "summary"]), commandDescription("gate", "repo_gate", ["command", "status", "project", "summary", "operations"]), commandDescription("compact", "artifact_compaction", ["command", "status", "project", "summary", "operations"]), commandDescription("schema", "runtime_introspection"), commandDescription("describe", "deprecated_alias"), commandDescription("upgrade", "upgrade"), commandDescription("doctor", "self_check"));
|
|
167
|
+
return commands;
|
|
168
|
+
}
|
|
169
|
+
function contractSection(contract, key, gaps) {
|
|
170
|
+
if (contract && typeof contract === "object" && !Array.isArray(contract) && key in contract) {
|
|
171
|
+
return contract[key];
|
|
172
|
+
}
|
|
173
|
+
gaps.push({ scope: key, status: "unknown", message: `Decision 45 contract section '${key}' is unavailable` });
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
function describeArtifactSchemas(schemasDir, schemas, model, artifactLocations) {
|
|
177
|
+
const gaps = [];
|
|
178
|
+
let isDir = false;
|
|
179
|
+
try {
|
|
180
|
+
isDir = fs.statSync(schemasDir).isDirectory();
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
isDir = false;
|
|
184
|
+
}
|
|
185
|
+
if (!isDir) {
|
|
186
|
+
gaps.push({
|
|
187
|
+
scope: "artifact_schemas",
|
|
188
|
+
status: "missing",
|
|
189
|
+
message: surfaceMissingMessage("artifact schema directory", schemasDir, model),
|
|
190
|
+
});
|
|
191
|
+
return [[], gaps];
|
|
192
|
+
}
|
|
193
|
+
const artifacts = [];
|
|
194
|
+
for (const name of Object.keys(schemas).sort()) {
|
|
195
|
+
const info = schemas[name];
|
|
196
|
+
const schema = info.schema && typeof info.schema === "object" ? info.schema : {};
|
|
197
|
+
const meta = (schema.meta ?? {});
|
|
198
|
+
const schemaFile = path.join(schemasDir, `${name}.yaml`);
|
|
199
|
+
const location = artifactLocations ? artifactLocations[name] ?? null : null;
|
|
200
|
+
const hasMeta = meta && Object.keys(meta).length > 0;
|
|
201
|
+
artifacts.push({
|
|
202
|
+
name,
|
|
203
|
+
status: hasMeta ? "discovered" : "unknown_metadata",
|
|
204
|
+
schema_file: fileExists(schemaFile) ? schemaFile : null,
|
|
205
|
+
path: info.path || "unknown",
|
|
206
|
+
location,
|
|
207
|
+
artifact_type: meta.artifact_type ?? "unknown",
|
|
208
|
+
format: meta.format ?? "unknown",
|
|
209
|
+
producer: meta.producer ?? "unknown",
|
|
210
|
+
consumers: meta.consumers ?? "unknown",
|
|
211
|
+
fields: describeSchemaFields(schema),
|
|
212
|
+
});
|
|
213
|
+
if (!hasMeta) {
|
|
214
|
+
gaps.push({ scope: `artifact_schemas.${name}`, status: "unknown", message: "schema metadata is absent or unreadable" });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return [artifacts, gaps];
|
|
218
|
+
}
|
|
219
|
+
function fileExists(p) {
|
|
220
|
+
try {
|
|
221
|
+
return fs.statSync(p).isFile();
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
function dirExists(p) {
|
|
228
|
+
try {
|
|
229
|
+
return fs.statSync(p).isDirectory();
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
export function buildSchemaPayload(command = "schema") {
|
|
236
|
+
const [contract, contractError] = loadDecision45Contract();
|
|
237
|
+
const appModel = activeAppModel();
|
|
238
|
+
const schemasDir = discoverSchemasDir(appModel);
|
|
239
|
+
const schemas = loadSchemas(schemasDir);
|
|
240
|
+
const gaps = [];
|
|
241
|
+
if (contractError)
|
|
242
|
+
gaps.push({ scope: "contract", status: "missing", message: contractError });
|
|
243
|
+
const artifactLocationsPayload = artifactLocationContract(schemasDir, schemas);
|
|
244
|
+
const artifactLocations = {};
|
|
245
|
+
for (const entry of artifactLocationsPayload.artifacts)
|
|
246
|
+
artifactLocations[entry.name] = entry;
|
|
247
|
+
const [artifactSchemas, schemaGaps] = describeArtifactSchemas(schemasDir, schemas, appModel, artifactLocations);
|
|
248
|
+
gaps.push(...schemaGaps);
|
|
249
|
+
const slashAliases = contractSection(contract, "slash_route_aliases", gaps);
|
|
250
|
+
const doctorContract = contractSection(contract, "doctor", gaps);
|
|
251
|
+
const structuredOutput = contractSection(contract, "structured_output", gaps);
|
|
252
|
+
const fieldSelection = contractSection(contract, "field_selection", gaps);
|
|
253
|
+
const isDict = (v) => v && typeof v === "object" && !Array.isArray(v);
|
|
254
|
+
const cp = contractPath();
|
|
255
|
+
return {
|
|
256
|
+
schemaVersion: "agentera.schema.v1",
|
|
257
|
+
command,
|
|
258
|
+
status: gaps.length > 0 ? "incomplete" : "ok",
|
|
259
|
+
source: {
|
|
260
|
+
contract: cp,
|
|
261
|
+
contract_exists: fileExists(cp),
|
|
262
|
+
schemas_dir: schemasDir,
|
|
263
|
+
schemas_dir_exists: dirExists(schemasDir),
|
|
264
|
+
schema_count: artifactSchemas.length,
|
|
265
|
+
app_model: appModelPayload(appModel),
|
|
266
|
+
},
|
|
267
|
+
commands: describeCommands(),
|
|
268
|
+
routine_state_commands: ROUTINE_STATE_COMMANDS,
|
|
269
|
+
structured_output: {
|
|
270
|
+
formats: isDict(structuredOutput) ? structuredOutput.formats ?? ["json", "yaml"] : "unknown",
|
|
271
|
+
fields_by_command: {
|
|
272
|
+
routine_state_commands: ROUTINE_STRUCTURED_FIELDS,
|
|
273
|
+
hej: HEJ_STRUCTURED_FIELDS,
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
field_selection: {
|
|
277
|
+
syntax: isDict(fieldSelection) ? fieldSelection.syntax ?? "--fields FIELD[,FIELD...]" : "unknown",
|
|
278
|
+
retained_context: REQUIRED_SPARSE_CONTEXT_FIELDS,
|
|
279
|
+
applies_to: isDict(fieldSelection) ? fieldSelection.applies_to ?? ROUTINE_STATE_COMMANDS : "unknown",
|
|
280
|
+
},
|
|
281
|
+
slash_route_aliases: {
|
|
282
|
+
status: isDict(slashAliases) ? slashAliases.status ?? "unknown" : "unknown",
|
|
283
|
+
aliases: isDict(slashAliases) ? slashAliases.aliases ?? {} : {},
|
|
284
|
+
cli_commands_added: true,
|
|
285
|
+
note: "Decision 43 slash-route aliases map to direct capability-name routing guidance commands in Agentera 3.0.",
|
|
286
|
+
},
|
|
287
|
+
artifact_schemas: artifactSchemas,
|
|
288
|
+
artifact_locations: artifactLocationsPayload,
|
|
289
|
+
doctor: {
|
|
290
|
+
command: "doctor",
|
|
291
|
+
removed_command: isDict(doctorContract) ? doctorContract.removed_command ?? "unknown" : "unknown",
|
|
292
|
+
compatibility_alias: isDict(doctorContract) ? doctorContract.compatibility_alias ?? "unknown" : "unknown",
|
|
293
|
+
self_check_categories: isDict(doctorContract) ? doctorContract.owns ?? "unknown" : "unknown",
|
|
294
|
+
excludes: isDict(doctorContract) ? doctorContract.excludes ?? "unknown" : "unknown",
|
|
295
|
+
adjacent_surfaces: isDict(doctorContract) ? doctorContract.adjacent_surfaces ?? "unknown" : "unknown",
|
|
296
|
+
signal_kinds: DOCTOR_SIGNAL_KINDS,
|
|
297
|
+
},
|
|
298
|
+
gaps,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
export function cmdSchema(args, io) {
|
|
302
|
+
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
303
|
+
emitStructured(buildSchemaPayload("schema"), args.format ?? "json", out);
|
|
304
|
+
return 0;
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/cli/commands/schema.ts"],"names":[],"mappings":"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"}
|