agentera 0.0.0 → 3.0.0-dev.1
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 +241 -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 +147 -0
- package/bundle/references/cli/vocabulary-index.yaml +160 -0
- package/bundle/references/cli/vocabulary.md +566 -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 +544 -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 +48 -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 +958 -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 +1056 -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 +1276 -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 +208 -0
- package/dist/upgrade/channels.js.map +1 -0
- package/dist/upgrade/compatibility.js +201 -0
- package/dist/upgrade/compatibility.js.map +1 -0
- package/dist/upgrade/doctor.js +373 -0
- package/dist/upgrade/doctor.js.map +1 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js +332 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -0
- package/dist/upgrade/runtimeMigration.js +484 -0
- package/dist/upgrade/runtimeMigration.js.map +1 -0
- package/dist/upgrade/upgradeCommands.js +36 -0
- package/dist/upgrade/upgradeCommands.js.map +1 -0
- package/dist/upgrade/upgradeOrchestrator.js +299 -0
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -0
- package/dist/upgrade/versionResolution.js +179 -0
- package/dist/upgrade/versionResolution.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 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/cli/commands/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { buildUpgradePlan, renderUpgradePlan, sortKeysDeep, upgradeExitCode, validateUpgradeApply, } from "../../upgrade/upgradeOrchestrator.js";
|
|
2
|
+
/** Canonical stable-channel update entry point. */
|
|
3
|
+
export const UPGRADE_COMMAND = "npx -y agentera@latest";
|
|
4
|
+
function toOrchestratorArgs(args) {
|
|
5
|
+
return {
|
|
6
|
+
installRoot: args.installRoot ?? null,
|
|
7
|
+
home: args.home ?? null,
|
|
8
|
+
project: args.project ?? null,
|
|
9
|
+
channel: args.channel ?? null,
|
|
10
|
+
yes: args.yes ?? false,
|
|
11
|
+
dryRun: args.dryRun ?? false,
|
|
12
|
+
only: args.only && args.only.length > 0 ? args.only : null,
|
|
13
|
+
force: args.force ?? false,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function cmdUpgrade(args, io = {}) {
|
|
17
|
+
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
18
|
+
const err = io.err ?? ((t) => process.stderr.write(t));
|
|
19
|
+
const orchestratorArgs = toOrchestratorArgs(args);
|
|
20
|
+
if (orchestratorArgs.yes && orchestratorArgs.dryRun) {
|
|
21
|
+
err("upgrade error: --yes and --dry-run are mutually exclusive\n");
|
|
22
|
+
return 2;
|
|
23
|
+
}
|
|
24
|
+
let plan;
|
|
25
|
+
try {
|
|
26
|
+
if (orchestratorArgs.yes) {
|
|
27
|
+
const preview = buildUpgradePlan({ ...orchestratorArgs, yes: false });
|
|
28
|
+
const applyError = validateUpgradeApply(orchestratorArgs, preview);
|
|
29
|
+
if (applyError) {
|
|
30
|
+
err(`upgrade error: ${applyError}\n`);
|
|
31
|
+
return 1;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
plan = buildUpgradePlan(orchestratorArgs);
|
|
35
|
+
}
|
|
36
|
+
catch (exc) {
|
|
37
|
+
err(`upgrade error: ${exc.message}\n`);
|
|
38
|
+
return 2;
|
|
39
|
+
}
|
|
40
|
+
if ((args.format ?? "text") === "json") {
|
|
41
|
+
out(JSON.stringify(sortKeysDeep(plan), null, 2) + "\n");
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
out(renderUpgradePlan(plan));
|
|
45
|
+
}
|
|
46
|
+
return upgradeExitCode(plan);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,oBAAoB,GAGrB,MAAM,sCAAsC,CAAC;AAiB9C,mDAAmD;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,SAAS,kBAAkB,CAAC,IAAiB;IAC3C,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK;QACtB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC1D,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAiB,EAAE,KAAS,EAAE;IACvD,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAElD,IAAI,gBAAgB,CAAC,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACpD,GAAG,CAAC,6DAA6D,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,MAAM,UAAU,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,UAAU,EAAE,CAAC;gBACf,GAAG,CAAC,kBAAkB,UAAU,IAAI,CAAC,CAAC;gBACtC,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,IAAI,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,kBAAmB,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,519 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { readdirSync as fsReaddirSync, readFileSync as fsReadFileSync, statSync as fsStatSync } from "node:fs";
|
|
3
|
+
import { resolvePath } from "../../core/paths.js";
|
|
4
|
+
import { resolveSourceRoot } from "../../core/sourceRoot.js";
|
|
5
|
+
import { validateAgentString, validatePathValue } from "../argvalidate.js";
|
|
6
|
+
import { HookCliAdapter } from "../../hooks/validateArtifact.js";
|
|
7
|
+
import { validateCapability, validateContractSelf, validateProtocolSelf } from "../../validate/capability.js";
|
|
8
|
+
import { loadYamlMapping } from "../../core/yaml.js";
|
|
9
|
+
import { parseToml as parseTomlValidate } from "../../core/toml.js";
|
|
10
|
+
import { validateGraph } from "../../validate/crossCapability.js";
|
|
11
|
+
import { lifecycleMain } from "../../validate/lifecycleAdapters.js";
|
|
12
|
+
import { validate as validateAppHome } from "../../validate/appHomeContract.js";
|
|
13
|
+
import { emitStructured } from "../structured.js";
|
|
14
|
+
const VALIDATE_DELEGATED_SCRIPTS = {
|
|
15
|
+
"cross-capability": "validate_cross_capability.py",
|
|
16
|
+
"lifecycle-adapters": "validate_lifecycle_adapters.py",
|
|
17
|
+
"app-home-contract": "validate_app_home_contract.py",
|
|
18
|
+
};
|
|
19
|
+
function pySplitlines(s) {
|
|
20
|
+
if (!s)
|
|
21
|
+
return [];
|
|
22
|
+
const parts = s.split(/\r\n|\r|\n/);
|
|
23
|
+
if (parts.length > 0 && parts[parts.length - 1] === "")
|
|
24
|
+
parts.pop();
|
|
25
|
+
return parts;
|
|
26
|
+
}
|
|
27
|
+
function runCrossCapability() {
|
|
28
|
+
const errors = validateGraph();
|
|
29
|
+
if (errors.length > 0) {
|
|
30
|
+
return { stdout: errors.map((e) => `FAIL: ${e}\n`).join(""), stderr: "", returncode: 1 };
|
|
31
|
+
}
|
|
32
|
+
return { stdout: "cross-capability artifact graph ok\n", stderr: "", returncode: 0 };
|
|
33
|
+
}
|
|
34
|
+
function runLifecycleAdapters() {
|
|
35
|
+
const lines = [];
|
|
36
|
+
const rc = lifecycleMain({ out: (line) => lines.push(line) });
|
|
37
|
+
return { stdout: lines.map((l) => l + "\n").join(""), stderr: "", returncode: rc };
|
|
38
|
+
}
|
|
39
|
+
function runAppHomeContract() {
|
|
40
|
+
const errors = validateAppHome(resolvePath(repoRoot()));
|
|
41
|
+
if (errors.length > 0) {
|
|
42
|
+
return {
|
|
43
|
+
stdout: "",
|
|
44
|
+
stderr: "App-home contract validation failed:\n" + errors.map((e) => `- ${e}\n`).join(""),
|
|
45
|
+
returncode: 1,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return { stdout: "OK: app-home contract terminology is release-ready\n", stderr: "", returncode: 0 };
|
|
49
|
+
}
|
|
50
|
+
function repoRoot() {
|
|
51
|
+
// appHomeContract.validate resolves its own default root; pass the source root.
|
|
52
|
+
return process.cwd();
|
|
53
|
+
}
|
|
54
|
+
const DELEGATED_RUNNERS = {
|
|
55
|
+
"cross-capability": runCrossCapability,
|
|
56
|
+
"lifecycle-adapters": runLifecycleAdapters,
|
|
57
|
+
"app-home-contract": runAppHomeContract,
|
|
58
|
+
};
|
|
59
|
+
function validationProcessPayload(targetFamily, target, p, result) {
|
|
60
|
+
const lines = pySplitlines(result.stderr).map((l) => l.trim());
|
|
61
|
+
const violations = lines.filter((l) => l.trim()).map((l) => (l.startsWith(" ") ? l.slice(2) : l));
|
|
62
|
+
const payload = {
|
|
63
|
+
command: "validate",
|
|
64
|
+
status: result.returncode === 0 ? "pass" : "fail",
|
|
65
|
+
target_family: targetFamily,
|
|
66
|
+
target,
|
|
67
|
+
violations,
|
|
68
|
+
engine: {
|
|
69
|
+
exit_code: result.returncode,
|
|
70
|
+
stdout: pySplitlines(result.stdout),
|
|
71
|
+
stderr: pySplitlines(result.stderr),
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
if (p !== null)
|
|
75
|
+
payload.path = resolvePath(p);
|
|
76
|
+
return payload;
|
|
77
|
+
}
|
|
78
|
+
function delegatedValidationPayload(targetFamily, result, engineCommand) {
|
|
79
|
+
const payload = validationProcessPayload(targetFamily, targetFamily, null, result);
|
|
80
|
+
payload.engine = { ...payload.engine, command: engineCommand };
|
|
81
|
+
return payload;
|
|
82
|
+
}
|
|
83
|
+
export function cmdValidate(family, args, io) {
|
|
84
|
+
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
85
|
+
const err = io.err ?? ((t) => process.stderr.write(t));
|
|
86
|
+
if (!(family in DELEGATED_RUNNERS)) {
|
|
87
|
+
throw new Error("unsupported validate target family; valid families: capability, artifact, descriptors, " +
|
|
88
|
+
"cross-capability, lifecycle-adapters, app-home-contract, capability-contract.");
|
|
89
|
+
}
|
|
90
|
+
const result = DELEGATED_RUNNERS[family]();
|
|
91
|
+
if ((args.format ?? "text") === "json") {
|
|
92
|
+
emitStructured(delegatedValidationPayload(family, result, VALIDATE_DELEGATED_SCRIPTS[family]), "json", out);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
if (result.stdout)
|
|
96
|
+
out(result.stdout);
|
|
97
|
+
if (result.stderr)
|
|
98
|
+
err(result.stderr);
|
|
99
|
+
}
|
|
100
|
+
return result.returncode;
|
|
101
|
+
}
|
|
102
|
+
export function isDelegatedValidateFamily(family) {
|
|
103
|
+
return family in DELEGATED_RUNNERS;
|
|
104
|
+
}
|
|
105
|
+
// ── capability + capability-contract families ───────────────────────
|
|
106
|
+
const CAPABILITY_NAMES = [
|
|
107
|
+
"hej", "visionera", "resonera", "inspirera", "planera", "realisera",
|
|
108
|
+
"optimera", "inspektera", "dokumentera", "profilera", "visualisera", "orkestrera",
|
|
109
|
+
];
|
|
110
|
+
const CONTRACT_PATH = "skills/agentera/capability_schema_contract.yaml";
|
|
111
|
+
const PROTOCOL_PATH = "skills/agentera/protocol.yaml";
|
|
112
|
+
function pyRepr(value) {
|
|
113
|
+
return value.includes("'") && !value.includes('"') ? `"${value}"` : `'${value}'`;
|
|
114
|
+
}
|
|
115
|
+
function validateCapabilityTarget(target) {
|
|
116
|
+
validateAgentString(target, "capability target");
|
|
117
|
+
const sourceRoot = resolveSourceRoot();
|
|
118
|
+
if (CAPABILITY_NAMES.includes(target)) {
|
|
119
|
+
return path.join(sourceRoot, "skills", "agentera", "capabilities", target);
|
|
120
|
+
}
|
|
121
|
+
if (/^[A-Za-z][A-Za-z0-9_-]*$/.test(target)) {
|
|
122
|
+
const valid = CAPABILITY_NAMES.join(", ");
|
|
123
|
+
throw new Error(`unsupported capability target ${pyRepr(target)}; valid capability names: ${valid}. ` +
|
|
124
|
+
"Syntax: agentera validate capability <capability-or-path> [--format text|json]. " +
|
|
125
|
+
"Example: agentera validate capability hej");
|
|
126
|
+
}
|
|
127
|
+
validatePathValue(target, "capability path");
|
|
128
|
+
return target;
|
|
129
|
+
}
|
|
130
|
+
function capabilityResult(capDir) {
|
|
131
|
+
const resolved = resolvePath(capDir);
|
|
132
|
+
let stdout = `Validating capability: ${resolved}\nUsing contract: ${CONTRACT_PATH}\n`;
|
|
133
|
+
let errors;
|
|
134
|
+
try {
|
|
135
|
+
errors = validateCapability(resolved, path.join(resolveSourceRoot(), CONTRACT_PATH));
|
|
136
|
+
}
|
|
137
|
+
catch (exc) {
|
|
138
|
+
errors = [exc.message];
|
|
139
|
+
}
|
|
140
|
+
let stderr = "";
|
|
141
|
+
let returncode = 0;
|
|
142
|
+
if (errors.length > 0) {
|
|
143
|
+
stderr = "FAILED:\n" + errors.map((e) => ` ${e}\n`).join("");
|
|
144
|
+
returncode = 1;
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
stdout += "PASS: capability directory is valid\n";
|
|
148
|
+
}
|
|
149
|
+
return { stdout, stderr, returncode };
|
|
150
|
+
}
|
|
151
|
+
function listDirsSorted(dir) {
|
|
152
|
+
let entries;
|
|
153
|
+
try {
|
|
154
|
+
entries = fsReaddirSync(dir);
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
return entries
|
|
160
|
+
.map((e) => path.join(dir, e))
|
|
161
|
+
.filter((p) => {
|
|
162
|
+
try {
|
|
163
|
+
return fsStatSync(p).isDirectory();
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
})
|
|
169
|
+
.sort();
|
|
170
|
+
}
|
|
171
|
+
export function cmdValidateCapability(target, args, io) {
|
|
172
|
+
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
173
|
+
const err = io.err ?? ((t) => process.stderr.write(t));
|
|
174
|
+
const capDir = validateCapabilityTarget(target);
|
|
175
|
+
const sourceRoot = resolveSourceRoot();
|
|
176
|
+
const capabilityRoot = path.join(sourceRoot, "skills", "agentera", "capabilities");
|
|
177
|
+
let targets = [capDir];
|
|
178
|
+
if (resolvePath(capDir) === resolvePath(capabilityRoot)) {
|
|
179
|
+
targets = listDirsSorted(capDir);
|
|
180
|
+
}
|
|
181
|
+
const format = args.format ?? "text";
|
|
182
|
+
if (targets.length > 1) {
|
|
183
|
+
const results = targets.map((t) => capabilityResult(t));
|
|
184
|
+
const status = results.every((r) => r.returncode === 0) ? "pass" : "fail";
|
|
185
|
+
if (format === "json") {
|
|
186
|
+
const checks = targets.map((t, i) => validationProcessPayload("capability", path.basename(t), t, results[i]));
|
|
187
|
+
emitStructured({
|
|
188
|
+
command: "validate",
|
|
189
|
+
status,
|
|
190
|
+
target_family: "capability-set",
|
|
191
|
+
target,
|
|
192
|
+
path: resolvePath(capDir),
|
|
193
|
+
checks,
|
|
194
|
+
violations: checks.flatMap((c) => c.violations),
|
|
195
|
+
summary: {
|
|
196
|
+
passed: checks.filter((c) => c.status === "pass").length,
|
|
197
|
+
failed: checks.filter((c) => c.status === "fail").length,
|
|
198
|
+
},
|
|
199
|
+
}, "json", out);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
for (const r of results) {
|
|
203
|
+
if (r.stdout)
|
|
204
|
+
out(r.stdout);
|
|
205
|
+
if (r.stderr)
|
|
206
|
+
err(r.stderr);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return status === "pass" ? 0 : 1;
|
|
210
|
+
}
|
|
211
|
+
const result = capabilityResult(capDir);
|
|
212
|
+
if (format === "json") {
|
|
213
|
+
emitStructured(validationProcessPayload("capability", target, capDir, result), "json", out);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
if (result.stdout)
|
|
217
|
+
out(result.stdout);
|
|
218
|
+
if (result.stderr)
|
|
219
|
+
err(result.stderr);
|
|
220
|
+
}
|
|
221
|
+
return result.returncode;
|
|
222
|
+
}
|
|
223
|
+
function contractSelfResult() {
|
|
224
|
+
let stdout = `Self-validating contract: ${CONTRACT_PATH}\n`;
|
|
225
|
+
let errors;
|
|
226
|
+
try {
|
|
227
|
+
errors = validateContractSelf(path.join(resolveSourceRoot(), CONTRACT_PATH));
|
|
228
|
+
}
|
|
229
|
+
catch (exc) {
|
|
230
|
+
errors = [exc.message];
|
|
231
|
+
}
|
|
232
|
+
let stderr = "";
|
|
233
|
+
let returncode = 0;
|
|
234
|
+
if (errors.length > 0) {
|
|
235
|
+
stderr = "FAILED: contract does not pass its own rules:\n" + errors.map((e) => ` ${e}\n`).join("");
|
|
236
|
+
returncode = 1;
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
stdout += "PASS: contract is self-referentially valid\n";
|
|
240
|
+
}
|
|
241
|
+
return { stdout, stderr, returncode };
|
|
242
|
+
}
|
|
243
|
+
function protocolSelfResult() {
|
|
244
|
+
let stdout = `Validating protocol: ${PROTOCOL_PATH}\n`;
|
|
245
|
+
let errors;
|
|
246
|
+
try {
|
|
247
|
+
errors = validateProtocolSelf(path.join(resolveSourceRoot(), PROTOCOL_PATH));
|
|
248
|
+
}
|
|
249
|
+
catch (exc) {
|
|
250
|
+
errors = [exc.message];
|
|
251
|
+
}
|
|
252
|
+
let stderr = "";
|
|
253
|
+
let returncode = 0;
|
|
254
|
+
if (errors.length > 0) {
|
|
255
|
+
stderr = "FAILED:\n" + errors.map((e) => ` ${e}\n`).join("");
|
|
256
|
+
returncode = 1;
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
stdout += "PASS: protocol is internally consistent\n";
|
|
260
|
+
}
|
|
261
|
+
return { stdout, stderr, returncode };
|
|
262
|
+
}
|
|
263
|
+
export function cmdValidateCapabilityContract(args, io) {
|
|
264
|
+
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
265
|
+
const err = io.err ?? ((t) => process.stderr.write(t));
|
|
266
|
+
const results = [
|
|
267
|
+
["capability-contract-self", contractSelfResult()],
|
|
268
|
+
["capability-protocol", protocolSelfResult()],
|
|
269
|
+
];
|
|
270
|
+
if ((args.format ?? "text") === "json") {
|
|
271
|
+
const checks = results.map(([name, result]) => delegatedValidationPayload(name, result, "validate_capability.py"));
|
|
272
|
+
emitStructured({
|
|
273
|
+
command: "validate",
|
|
274
|
+
status: results.every(([, r]) => r.returncode === 0) ? "pass" : "fail",
|
|
275
|
+
target_family: "capability-contract",
|
|
276
|
+
target: "capability-schema-contract-and-protocol",
|
|
277
|
+
checks,
|
|
278
|
+
violations: checks.flatMap((c) => c.violations),
|
|
279
|
+
summary: {
|
|
280
|
+
passed: results.filter(([, r]) => r.returncode === 0).length,
|
|
281
|
+
failed: results.filter(([, r]) => r.returncode !== 0).length,
|
|
282
|
+
},
|
|
283
|
+
}, "json", out);
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
for (const [, result] of results) {
|
|
287
|
+
if (result.stdout)
|
|
288
|
+
out(result.stdout);
|
|
289
|
+
if (result.stderr)
|
|
290
|
+
err(result.stderr);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return results.every(([, r]) => r.returncode === 0) ? 0 : 1;
|
|
294
|
+
}
|
|
295
|
+
// ── descriptors family ──────────────────────────────────────────────
|
|
296
|
+
function pySplitlinesText(s) {
|
|
297
|
+
return s.split(/\r\n|\r|\n/);
|
|
298
|
+
}
|
|
299
|
+
function descriptorValidationPayload() {
|
|
300
|
+
const sourceRoot = resolveSourceRoot();
|
|
301
|
+
const codexDir = path.join(sourceRoot, "skills", "agentera", "agents");
|
|
302
|
+
const opencodeDir = path.join(sourceRoot, ".opencode", "agents");
|
|
303
|
+
const classificationPath = path.join(sourceRoot, "references", "cli", "capability-tool-classification.yaml");
|
|
304
|
+
const checks = [];
|
|
305
|
+
const violations = [];
|
|
306
|
+
let capPermissions = {};
|
|
307
|
+
try {
|
|
308
|
+
const classificationData = loadYamlMapping(fsReadFileSync(classificationPath, "utf8"));
|
|
309
|
+
capPermissions = {};
|
|
310
|
+
for (const categoryData of Object.values(classificationData.classification)) {
|
|
311
|
+
for (const [capability, capData] of Object.entries(categoryData.capabilities)) {
|
|
312
|
+
capPermissions[capability] = capData.permission;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch (exc) {
|
|
317
|
+
violations.push(`classification authority: failed to load classification: ${exc.message}`);
|
|
318
|
+
capPermissions = {};
|
|
319
|
+
}
|
|
320
|
+
for (const name of CAPABILITY_NAMES) {
|
|
321
|
+
const codexPath = path.join(codexDir, `${name}.toml`);
|
|
322
|
+
let check = { runtime: "codex", capability: name, path: codexPath, status: "pass" };
|
|
323
|
+
let text;
|
|
324
|
+
let parsed;
|
|
325
|
+
try {
|
|
326
|
+
text = fsReadFileSync(codexPath, "utf8");
|
|
327
|
+
parsed = parseTomlValidate(text);
|
|
328
|
+
}
|
|
329
|
+
catch (exc) {
|
|
330
|
+
check = { ...check, status: "fail", message: exc.message };
|
|
331
|
+
violations.push(`codex ${name}: ${exc.message}`);
|
|
332
|
+
checks.push(check);
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
335
|
+
const expectedRef = `capabilities/${name}/instructions.md`;
|
|
336
|
+
if (parsed.name !== name) {
|
|
337
|
+
check = { ...check, status: "fail", message: "name field does not match capability" };
|
|
338
|
+
violations.push(`codex ${name}: name field must be ${name}`);
|
|
339
|
+
}
|
|
340
|
+
else if (typeof parsed.description !== "string" || !parsed.description.trim()) {
|
|
341
|
+
check = { ...check, status: "fail", message: "description is required" };
|
|
342
|
+
violations.push(`codex ${name}: description is required`);
|
|
343
|
+
}
|
|
344
|
+
else if (typeof parsed.developer_instructions !== "string" || !parsed.developer_instructions.includes(expectedRef)) {
|
|
345
|
+
check = { ...check, status: "fail", message: "developer_instructions must reference capability instructions" };
|
|
346
|
+
violations.push(`codex ${name}: developer_instructions must reference ${expectedRef}`);
|
|
347
|
+
}
|
|
348
|
+
else if (!pySplitlinesText(text).slice(0, 5).includes("# agentera_managed: true")) {
|
|
349
|
+
check = { ...check, status: "fail", message: "managed marker is required" };
|
|
350
|
+
violations.push(`codex ${name}: managed marker is required`);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
const devInst = parsed.developer_instructions;
|
|
354
|
+
const expectedPermission = (capPermissions[name] ?? {});
|
|
355
|
+
if (expectedPermission && Object.keys(expectedPermission).length > 0) {
|
|
356
|
+
let expectedGuidance;
|
|
357
|
+
if (expectedPermission.write === "allow" && expectedPermission.bash === "allow") {
|
|
358
|
+
expectedGuidance = "You have full file write, file edit, and shell execution tools available";
|
|
359
|
+
}
|
|
360
|
+
else if (expectedPermission.write === "allow" && expectedPermission.bash === "deny") {
|
|
361
|
+
expectedGuidance =
|
|
362
|
+
"You have file write and file edit tools available to create or update files, but shell execution is disabled";
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
expectedGuidance = "You are a read-only agent \u2014 do not write files or execute shell commands";
|
|
366
|
+
}
|
|
367
|
+
if (!devInst.includes(expectedGuidance)) {
|
|
368
|
+
check = { ...check, status: "fail", message: `developer_instructions must contain guidance '${expectedGuidance}'` };
|
|
369
|
+
violations.push(`codex ${name}: developer_instructions must contain guidance '${expectedGuidance}'`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
checks.push(check);
|
|
374
|
+
const opencodePath = path.join(opencodeDir, `${name}.md`);
|
|
375
|
+
let ocheck = { runtime: "opencode", capability: name, path: opencodePath, status: "pass" };
|
|
376
|
+
let otext;
|
|
377
|
+
try {
|
|
378
|
+
otext = fsReadFileSync(opencodePath, "utf8");
|
|
379
|
+
}
|
|
380
|
+
catch (exc) {
|
|
381
|
+
ocheck = { ...ocheck, status: "fail", message: exc.message };
|
|
382
|
+
violations.push(`opencode ${name}: ${exc.message}`);
|
|
383
|
+
checks.push(ocheck);
|
|
384
|
+
continue;
|
|
385
|
+
}
|
|
386
|
+
let frontmatter = {};
|
|
387
|
+
try {
|
|
388
|
+
const lines = pySplitlinesText(otext);
|
|
389
|
+
if (lines.length > 0 && lines[0] === "---") {
|
|
390
|
+
const closing = lines.indexOf("---", 1);
|
|
391
|
+
if (closing !== -1) {
|
|
392
|
+
const frontmatterText = lines.slice(1, closing).join("\n");
|
|
393
|
+
frontmatter = loadYamlMapping(frontmatterText);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
frontmatter = {};
|
|
399
|
+
}
|
|
400
|
+
const expectedRefO = `capabilities/${name}/instructions.md`;
|
|
401
|
+
const expectedPermission = (capPermissions[name] ?? {});
|
|
402
|
+
const actualPermission = frontmatter.permission;
|
|
403
|
+
if ("name" in frontmatter) {
|
|
404
|
+
ocheck = { ...ocheck, status: "fail", message: "name frontmatter must be omitted" };
|
|
405
|
+
violations.push(`opencode ${name}: name frontmatter must be omitted`);
|
|
406
|
+
}
|
|
407
|
+
else if (frontmatter.agentera_managed === "true") {
|
|
408
|
+
ocheck = { ...ocheck, status: "fail", message: "agentera_managed frontmatter must be omitted" };
|
|
409
|
+
violations.push(`opencode ${name}: agentera_managed frontmatter must be omitted`);
|
|
410
|
+
}
|
|
411
|
+
else if (frontmatter.mode !== "subagent") {
|
|
412
|
+
ocheck = { ...ocheck, status: "fail", message: "mode: subagent frontmatter is required" };
|
|
413
|
+
violations.push(`opencode ${name}: mode: subagent frontmatter is required`);
|
|
414
|
+
}
|
|
415
|
+
else if (!frontmatter.description) {
|
|
416
|
+
ocheck = { ...ocheck, status: "fail", message: "description is required" };
|
|
417
|
+
violations.push(`opencode ${name}: description is required`);
|
|
418
|
+
}
|
|
419
|
+
else if (!actualPermission || typeof actualPermission !== "object" || Array.isArray(actualPermission)) {
|
|
420
|
+
ocheck = { ...ocheck, status: "fail", message: "permission frontmatter is required and must be an object" };
|
|
421
|
+
violations.push(`opencode ${name}: permission frontmatter is required and must be an object`);
|
|
422
|
+
}
|
|
423
|
+
else if (actualPermission.write !== expectedPermission.write ||
|
|
424
|
+
actualPermission.bash !== expectedPermission.bash) {
|
|
425
|
+
ocheck = { ...ocheck, status: "fail", message: "permission frontmatter does not match classification" };
|
|
426
|
+
violations.push(`opencode ${name}: permission frontmatter must be write: ${expectedPermission.write}, bash: ${expectedPermission.bash}`);
|
|
427
|
+
}
|
|
428
|
+
else if (!otext.includes("<!-- agentera: managed -->")) {
|
|
429
|
+
ocheck = { ...ocheck, status: "fail", message: "managed body marker is required" };
|
|
430
|
+
violations.push(`opencode ${name}: managed body marker is required`);
|
|
431
|
+
}
|
|
432
|
+
else if (!otext.includes(expectedRefO)) {
|
|
433
|
+
ocheck = { ...ocheck, status: "fail", message: "descriptor must reference capability instructions" };
|
|
434
|
+
violations.push(`opencode ${name}: descriptor must reference ${expectedRefO}`);
|
|
435
|
+
}
|
|
436
|
+
else if (otext.includes("Dispatch only through the runtime-native") || otext.includes(`\`@${name}\``)) {
|
|
437
|
+
ocheck = { ...ocheck, status: "fail", message: "descriptor must not self-dispatch from a subagent" };
|
|
438
|
+
violations.push(`opencode ${name}: descriptor must execute directly without self-dispatch`);
|
|
439
|
+
}
|
|
440
|
+
checks.push(ocheck);
|
|
441
|
+
}
|
|
442
|
+
return {
|
|
443
|
+
command: "validate",
|
|
444
|
+
status: violations.length > 0 ? "fail" : "pass",
|
|
445
|
+
target_family: "descriptors",
|
|
446
|
+
target: "agent-descriptors",
|
|
447
|
+
checks,
|
|
448
|
+
violations,
|
|
449
|
+
summary: {
|
|
450
|
+
passed: checks.filter((c) => c.status === "pass").length,
|
|
451
|
+
failed: checks.filter((c) => c.status === "fail").length,
|
|
452
|
+
},
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
export function cmdValidateDescriptors(args, io) {
|
|
456
|
+
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
457
|
+
const err = io.err ?? ((t) => process.stderr.write(t));
|
|
458
|
+
const payload = descriptorValidationPayload();
|
|
459
|
+
if ((args.format ?? "text") === "json") {
|
|
460
|
+
emitStructured(payload, "json", out);
|
|
461
|
+
}
|
|
462
|
+
else {
|
|
463
|
+
out(`descriptor validation ${payload.status}: ${payload.summary.passed} passed, ${payload.summary.failed} failed\n`);
|
|
464
|
+
for (const violation of payload.violations)
|
|
465
|
+
err(`- ${violation}\n`);
|
|
466
|
+
}
|
|
467
|
+
return payload.status === "pass" ? 0 : 1;
|
|
468
|
+
}
|
|
469
|
+
// ── artifact family ─────────────────────────────────────────────────
|
|
470
|
+
const VALIDATE_ARTIFACT_LABELS = [
|
|
471
|
+
"CHANGELOG.md",
|
|
472
|
+
"DECISIONS.md",
|
|
473
|
+
"DESIGN.md",
|
|
474
|
+
"DOCS.md",
|
|
475
|
+
"HEALTH.md",
|
|
476
|
+
"PLAN.md",
|
|
477
|
+
"PROGRESS.md",
|
|
478
|
+
"TODO.md",
|
|
479
|
+
"VISION.md",
|
|
480
|
+
];
|
|
481
|
+
function validateArtifactLabel(artifact) {
|
|
482
|
+
validateAgentString(artifact, "artifact");
|
|
483
|
+
if (!VALIDATE_ARTIFACT_LABELS.includes(artifact)) {
|
|
484
|
+
const valid = VALIDATE_ARTIFACT_LABELS.join(", ");
|
|
485
|
+
throw new Error(`unsupported artifact ${pyRepr(artifact)}; valid artifacts: ${valid}. ` +
|
|
486
|
+
"Syntax: agentera validate artifact --artifact <ARTIFACT> [--file <PATH>] [--format text|json]. " +
|
|
487
|
+
"Example: agentera validate artifact --artifact PLAN.md --file .agentera/plan.yaml --format json");
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
export function cmdValidateArtifact(args, io) {
|
|
491
|
+
const out = io.out ?? ((t) => process.stdout.write(t));
|
|
492
|
+
const err = io.err ?? ((t) => process.stderr.write(t));
|
|
493
|
+
const artifact = String(args.artifact);
|
|
494
|
+
validateArtifactLabel(artifact);
|
|
495
|
+
const cwd = resolvePath(args.cwd ?? process.cwd());
|
|
496
|
+
const adapter = new HookCliAdapter();
|
|
497
|
+
const [rc, payload] = adapter.runExplicit(artifact, args.file ?? null, cwd);
|
|
498
|
+
if ((args.format ?? "text") === "json") {
|
|
499
|
+
const wrapped = {
|
|
500
|
+
...payload,
|
|
501
|
+
command: "validate",
|
|
502
|
+
status: payload.status ?? "fail",
|
|
503
|
+
target_family: "artifact",
|
|
504
|
+
target: artifact,
|
|
505
|
+
engine: { command: "validate-artifact", exit_code: rc },
|
|
506
|
+
};
|
|
507
|
+
emitStructured(wrapped, "json", out);
|
|
508
|
+
if (wrapped.status === "fail" && rc === 0)
|
|
509
|
+
return 2;
|
|
510
|
+
return rc;
|
|
511
|
+
}
|
|
512
|
+
out(`status=${payload.status} | artifact=${payload.artifact} | ` +
|
|
513
|
+
`file=${payload.file} | docs_mapped_default=${payload.docs_mapped_default} | ` +
|
|
514
|
+
`path_source=${payload.path_source}\n`);
|
|
515
|
+
for (const violation of payload.violations)
|
|
516
|
+
err(`${violation}\n`);
|
|
517
|
+
return rc;
|
|
518
|
+
}
|
|
519
|
+
//# sourceMappingURL=validate.js.map
|