agentera 3.0.0-dev.14 → 3.0.0-dev.16
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 +43 -22
- package/bundle/.codex-plugin/plugin.json +92 -0
- package/bundle/.cursor/agents/agentera.md +7 -0
- package/bundle/.cursor/hooks.json +32 -0
- package/bundle/.cursor-plugin/plugin.json +34 -0
- package/bundle/.github/hooks/postToolUse.json +9 -0
- package/bundle/.github/hooks/preToolUse.json +8 -0
- package/bundle/.github/hooks/sessionEnd.json +8 -0
- package/bundle/.github/hooks/sessionStart.json +8 -0
- package/bundle/.github/plugin/plugin.json +7 -0
- package/bundle/.opencode/agents/agentera.md +12 -0
- package/bundle/.opencode/commands/agentera.md +5 -0
- package/bundle/.opencode/package.json +31 -0
- package/bundle/.opencode/plugins/agentera.js +820 -0
- package/bundle/CHANGELOG.md +1075 -0
- package/bundle/DESIGN.md +233 -0
- package/bundle/LICENSE +201 -0
- package/bundle/README.md +137 -0
- package/bundle/UPGRADE.md +188 -0
- package/bundle/agents/openai.yaml +87 -0
- package/bundle/extract-corpus-parity.json +2 -4
- package/bundle/hooks/codex-hooks.json +31 -0
- package/bundle/hooks/codex-plugin-hooks.json +31 -0
- package/bundle/plugin.json +13 -0
- package/bundle/references/adapters/cursor.md +50 -40
- package/bundle/references/adapters/opencode.md +22 -23
- package/bundle/references/adapters/package-manifest-interface-model.yaml +36 -43
- package/bundle/references/adapters/package-registry.yaml +19 -52
- package/bundle/references/adapters/package-surface-characterization.md +61 -47
- package/bundle/references/adapters/runtime-adapter-characterization.md +44 -79
- package/bundle/references/adapters/runtime-adapter-registry.yaml +7 -169
- package/bundle/references/adapters/runtime-feature-parity.md +99 -167
- package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +288 -0
- package/bundle/references/adapters/runtime-lifecycle-authority.yaml +73 -0
- package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +83 -0
- package/bundle/references/adapters/runtime-retired-resources.yaml +33 -0
- package/bundle/references/analysis/benchmark.md +5 -5
- package/bundle/references/analysis/startup-measurement-contract.yaml +19 -8
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +2 -2
- package/bundle/references/cli/vocabulary-index.yaml +1 -1
- package/bundle/references/cli/vocabulary.md +7 -7
- package/bundle/skills/agentera/SKILL.md +43 -2
- package/bundle/skills/agentera/references/contract.md +10 -3
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +1 -1
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +1 -1
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +1 -1
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +1 -1
- package/dist/analytics/extractCorpus/cli.js +19 -5
- package/dist/analytics/extractCorpus/cli.js.map +1 -1
- package/dist/analytics/extractCorpus/copilotSessions.js +6 -3
- package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -1
- package/dist/analytics/extractCorpus/core.js +40 -11
- package/dist/analytics/extractCorpus/core.js.map +1 -1
- package/dist/analytics/extractCorpus/corpus.js +39 -16
- package/dist/analytics/extractCorpus/corpus.js.map +1 -1
- package/dist/analytics/extractCorpus/coverageAudit.js +44 -44
- package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -1
- package/dist/analytics/extractCorpus/cursorSessions.js +6 -3
- package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -1
- package/dist/analytics/extractCorpus/extractCorpusParity.js +2 -2
- package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -1
- package/dist/analytics/extractCorpus/filesystemSources.js +1 -4
- package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -1
- package/dist/analytics/extractCorpus/jsonlSessions.js +24 -4
- package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -1
- package/dist/analytics/usageStats.js +51 -7
- package/dist/analytics/usageStats.js.map +1 -1
- package/dist/bin/agentera.js +3 -1
- package/dist/bin/agentera.js.map +1 -1
- package/dist/capabilities/audit/instructions.js +1 -1
- package/dist/capabilities/audit/instructions.js.map +1 -1
- package/dist/capabilities/build/instructions.js +1 -1
- package/dist/capabilities/build/instructions.js.map +1 -1
- package/dist/capabilities/discuss/instructions.js +1 -1
- package/dist/capabilities/discuss/instructions.js.map +1 -1
- package/dist/capabilities/orchestrate/instructions.js +1 -1
- package/dist/capabilities/orchestrate/instructions.js.map +1 -1
- package/dist/capabilities/plan/instructions.js +1 -1
- package/dist/capabilities/plan/instructions.js.map +1 -1
- package/dist/capabilities/profile/instructions.js +1 -1
- package/dist/capabilities/profile/instructions.js.map +1 -1
- package/dist/cli/capabilityContext/contract.js +2 -0
- package/dist/cli/capabilityContext/contract.js.map +1 -1
- package/dist/cli/capabilityContext/startup.js +2 -0
- package/dist/cli/capabilityContext/startup.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 +66 -4
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/prime/collectOrientationState.js +15 -1
- package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
- package/dist/cli/commands/prime/orientationOutput.js +15 -1
- package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
- package/dist/cli/commands/report.js +19 -4
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/schema.js +79 -3
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/state/write.js +341 -0
- package/dist/cli/commands/state/write.js.map +1 -0
- package/dist/cli/commands/upgrade.js +18 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/verify.js +6 -6
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/dispatch/index.js +2 -1
- package/dist/cli/dispatch/index.js.map +1 -1
- package/dist/cli/dispatch/lifecycle.js +71 -3
- package/dist/cli/dispatch/lifecycle.js.map +1 -1
- package/dist/cli/dispatch/state.js +4 -0
- package/dist/cli/dispatch/state.js.map +1 -1
- package/dist/cli/errors.js +1 -0
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/help.js +34 -8
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/prime-blob.js +68 -2
- package/dist/cli/prime-blob.js.map +1 -1
- package/dist/cli/startupCompletenessContract.js +1 -1
- package/dist/cli/startupCompletenessContract.js.map +1 -1
- package/dist/core/atomicWriter.js +21 -0
- package/dist/core/atomicWriter.js.map +1 -0
- package/dist/core/yaml.js +8 -0
- package/dist/core/yaml.js.map +1 -1
- package/dist/eval/evalSkills.js +13 -13
- package/dist/eval/evalSkills.js.map +1 -1
- package/dist/hooks/common.js +3 -3
- package/dist/hooks/common.js.map +1 -1
- package/dist/hooks/compaction/index.js +2 -2
- package/dist/hooks/compaction/index.js.map +1 -1
- package/dist/hooks/compaction/status.js +3 -3
- package/dist/hooks/compaction/status.js.map +1 -1
- package/dist/hooks/validateArtifact/runtime.js +4 -4
- package/dist/hooks/validateArtifact/schema.js +82 -6
- package/dist/hooks/validateArtifact/schema.js.map +1 -1
- package/dist/hooks/validateArtifact/violations.js +5 -2
- package/dist/hooks/validateArtifact/violations.js.map +1 -1
- package/dist/migrate/v2HandoffManifest.js +4 -0
- package/dist/migrate/v2HandoffManifest.js.map +1 -1
- package/dist/registries/artifactRegistry.js +39 -6
- package/dist/registries/artifactRegistry.js.map +1 -1
- package/dist/registries/packageRegistry.js +36 -3
- package/dist/registries/packageRegistry.js.map +1 -1
- package/dist/registries/runtimeAdapterRegistry.js +22 -16
- package/dist/registries/runtimeAdapterRegistry.js.map +1 -1
- package/dist/runtime/lifecycleAdapterContract.js +436 -0
- package/dist/runtime/lifecycleAdapterContract.js.map +1 -0
- package/dist/runtime/lifecycleAdapters.js +707 -0
- package/dist/runtime/lifecycleAdapters.js.map +1 -0
- package/dist/runtime/lifecycleAuthority.js +443 -0
- package/dist/runtime/lifecycleAuthority.js.map +1 -0
- package/dist/runtime/lifecycleOperationContract.js +109 -0
- package/dist/runtime/lifecycleOperationContract.js.map +1 -0
- package/dist/runtime/lifecycleOperations.js +627 -0
- package/dist/runtime/lifecycleOperations.js.map +1 -0
- package/dist/runtime/lifecycleOwnershipJournal.js +623 -0
- package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -0
- package/dist/runtime/lifecyclePublication.js +395 -0
- package/dist/runtime/lifecyclePublication.js.map +1 -0
- package/dist/runtime/lifecycleSnapshot.js +174 -0
- package/dist/runtime/lifecycleSnapshot.js.map +1 -0
- package/dist/runtime/retiredRuntimeCleanup.js +232 -0
- package/dist/runtime/retiredRuntimeCleanup.js.map +1 -0
- package/dist/setup/codex/installRoot.js +1 -1
- package/dist/setup/codex/installRoot.js.map +1 -1
- package/dist/setup/copilot.js +1 -1
- package/dist/setup/copilot.js.map +1 -1
- package/dist/setup/cursor.js +1 -1
- package/dist/setup/cursor.js.map +1 -1
- package/dist/setup/doctor/core.js +3 -3
- package/dist/setup/doctor/core.js.map +1 -1
- package/dist/setup/doctor/diagnostics.js +0 -39
- package/dist/setup/doctor/diagnostics.js.map +1 -1
- package/dist/setup/smokeChecks.js +1 -3
- package/dist/setup/smokeChecks.js.map +1 -1
- package/dist/state/startupAnalysis/helpers.js +1 -1
- package/dist/state/startupAnalysis/helpers.js.map +1 -1
- package/dist/state/write/assign.js +21 -0
- package/dist/state/write/assign.js.map +1 -0
- package/dist/state/write/errors.js +12 -0
- package/dist/state/write/errors.js.map +1 -0
- package/dist/state/write/explain.js +151 -0
- package/dist/state/write/explain.js.map +1 -0
- package/dist/state/write/fields.js +62 -0
- package/dist/state/write/fields.js.map +1 -0
- package/dist/state/write/index.js +11 -0
- package/dist/state/write/index.js.map +1 -0
- package/dist/state/write/input.js +22 -0
- package/dist/state/write/input.js.map +1 -0
- package/dist/state/write/lock.js +108 -0
- package/dist/state/write/lock.js.map +1 -0
- package/dist/state/write/operations.js +181 -0
- package/dist/state/write/operations.js.map +1 -0
- package/dist/state/write/serialize.js +2 -0
- package/dist/state/write/serialize.js.map +1 -0
- package/dist/state/write/transaction.js +619 -0
- package/dist/state/write/transaction.js.map +1 -0
- package/dist/state/write/validate.js +8 -0
- package/dist/state/write/validate.js.map +1 -0
- package/dist/upgrade/appContentRefresh.js +8 -1
- package/dist/upgrade/appContentRefresh.js.map +1 -1
- package/dist/upgrade/atomicWriter.js +1 -22
- package/dist/upgrade/atomicWriter.js.map +1 -1
- package/dist/upgrade/doctor.js +4 -0
- package/dist/upgrade/doctor.js.map +1 -1
- package/dist/upgrade/lifecycleUpgrade.js +386 -0
- package/dist/upgrade/lifecycleUpgrade.js.map +1 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
- package/dist/upgrade/runtimeMigration.js +1 -8
- package/dist/upgrade/runtimeMigration.js.map +1 -1
- package/dist/upgrade/upgradeCommands.js +8 -0
- package/dist/upgrade/upgradeCommands.js.map +1 -1
- package/dist/upgrade/upgradeOrchestrator.js +148 -5
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
- package/dist/validate/appHomeContract.js +1 -1
- package/dist/validate/appHomeContract.js.map +1 -1
- package/dist/validate/lifecycleAdapters/nodeFormChecks.js +2 -9
- package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +1 -1
- package/dist/validate/lifecycleAdapters/shared.js +1 -1
- package/dist/validate/lifecycleAdapters/shared.js.map +1 -1
- package/dist/validate/lifecycleAdapters.js +77 -2
- package/dist/validate/lifecycleAdapters.js.map +1 -1
- package/package.json +1 -1
- package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { loadYamlMapping } from "../core/yaml.js";
|
|
4
|
+
import { LIFECYCLE_APPLY_STATUSES, LIFECYCLE_OPERATION_CONTRACT_RELATIVE_PATH, LIFECYCLE_PLAN_ACTIONS, LIFECYCLE_RESOURCE_STATES, } from "./lifecycleOperations.js";
|
|
5
|
+
function sameList(value, expected) {
|
|
6
|
+
return Array.isArray(value) && JSON.stringify(value) === JSON.stringify(expected);
|
|
7
|
+
}
|
|
8
|
+
export function validateLifecycleOperationContractData(value) {
|
|
9
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
10
|
+
return ["operation contract must be a YAML object"];
|
|
11
|
+
}
|
|
12
|
+
const data = value;
|
|
13
|
+
const errors = [];
|
|
14
|
+
if (data.schema_version !== "agentera.lifecycleOperationContract.v1") {
|
|
15
|
+
errors.push("schema_version must be agentera.lifecycleOperationContract.v1");
|
|
16
|
+
}
|
|
17
|
+
if (data.status !== "active_contract")
|
|
18
|
+
errors.push("status must be active_contract");
|
|
19
|
+
if (data.decision !== 92)
|
|
20
|
+
errors.push("decision must cite approved Decision 92");
|
|
21
|
+
if (!sameList(data.resource_states, LIFECYCLE_RESOURCE_STATES)) {
|
|
22
|
+
errors.push(`resource_states must be ${LIFECYCLE_RESOURCE_STATES.join(", ")}`);
|
|
23
|
+
}
|
|
24
|
+
if (!sameList(data.plan_actions, LIFECYCLE_PLAN_ACTIONS)) {
|
|
25
|
+
errors.push(`plan_actions must be ${LIFECYCLE_PLAN_ACTIONS.join(", ")}`);
|
|
26
|
+
}
|
|
27
|
+
if (!sameList(data.apply_results, LIFECYCLE_APPLY_STATUSES)) {
|
|
28
|
+
errors.push(`apply_results must be ${LIFECYCLE_APPLY_STATUSES.join(", ")}`);
|
|
29
|
+
}
|
|
30
|
+
const ownership = data.ownership;
|
|
31
|
+
if (ownership?.identity_rule !== "Managed and published pending-create records bind the filesystem device and inode observed at publication.") {
|
|
32
|
+
errors.push("ownership.identity_rule must bind records to publication identity");
|
|
33
|
+
}
|
|
34
|
+
if (typeof ownership?.removal_rule !== "string" || !ownership.removal_rule.includes("identity and fingerprint")) {
|
|
35
|
+
errors.push("ownership.removal_rule must require matching identity and fingerprint");
|
|
36
|
+
}
|
|
37
|
+
if (typeof ownership?.journal_rule !== "string"
|
|
38
|
+
|| !ownership.journal_rule.includes("append-only")
|
|
39
|
+
|| !ownership.journal_rule.includes("atomically at final names")
|
|
40
|
+
|| !ownership.journal_rule.includes("contiguous sequence-one hash chain")) {
|
|
41
|
+
errors.push("ownership.journal_rule must require atomic append-only publication and a strict contiguous hash chain");
|
|
42
|
+
}
|
|
43
|
+
const journalStatuses = ownership?.journal_statuses;
|
|
44
|
+
if (!journalStatuses
|
|
45
|
+
|| !["absent", "clean", "recoverable_terminal_tail", "corrupt"]
|
|
46
|
+
.every((state) => typeof journalStatuses[state] === "string")
|
|
47
|
+
|| !journalStatuses.recoverable_terminal_tail.includes("every mutation is blocked")
|
|
48
|
+
|| !journalStatuses.corrupt.includes("digest mismatch")) {
|
|
49
|
+
errors.push("ownership.journal_statuses must define the four strict read and mutation states");
|
|
50
|
+
}
|
|
51
|
+
if (typeof ownership?.recovery_rule !== "string"
|
|
52
|
+
|| !ownership.recovery_rule.includes("non-authoritative publication temporaries")
|
|
53
|
+
|| !ownership.recovery_rule.includes("rolled-back prefix")
|
|
54
|
+
|| !ownership.recovery_rule.includes("re-observes each resource")) {
|
|
55
|
+
errors.push("ownership.recovery_rule must ignore only publication temporaries, block rollback append, and re-observe resources");
|
|
56
|
+
}
|
|
57
|
+
const publication = data.publication_policy;
|
|
58
|
+
if (publication?.supported_platform !== "linux_proc_self_fd") {
|
|
59
|
+
errors.push("publication_policy.supported_platform must be linux_proc_self_fd");
|
|
60
|
+
}
|
|
61
|
+
if (publication?.unsupported_platform_result !== "action_required") {
|
|
62
|
+
errors.push("publication_policy.unsupported_platform_result must be action_required");
|
|
63
|
+
}
|
|
64
|
+
if (typeof publication?.apply_serialization !== "string"
|
|
65
|
+
|| !publication.apply_serialization.includes("complete live preparation blocks contenders")
|
|
66
|
+
|| !publication.apply_serialization.includes("Linux boot ID")
|
|
67
|
+
|| !publication.apply_serialization.includes("process start ticks")) {
|
|
68
|
+
errors.push("publication_policy.apply_serialization must atomically publish a complete strong-identity lock");
|
|
69
|
+
}
|
|
70
|
+
if (typeof publication?.lock_recovery !== "string"
|
|
71
|
+
|| !publication.lock_recovery.includes("Malformed or incomplete final locks fail closed")
|
|
72
|
+
|| !publication.lock_recovery.includes("full identity and token")) {
|
|
73
|
+
errors.push("publication_policy.lock_recovery must fail closed and verify identity on stale recovery and release");
|
|
74
|
+
}
|
|
75
|
+
if (typeof publication?.journal_publication !== "string"
|
|
76
|
+
|| !publication.journal_publication.includes("non-authoritative temporary name")
|
|
77
|
+
|| !publication.journal_publication.includes("hard-linked atomically")) {
|
|
78
|
+
errors.push("publication_policy.journal_publication must atomically publish durable complete final events");
|
|
79
|
+
}
|
|
80
|
+
if (publication?.destructive_path_mutations !== "owned_removal_only") {
|
|
81
|
+
errors.push("publication_policy.destructive_path_mutations must be owned_removal_only");
|
|
82
|
+
}
|
|
83
|
+
if (typeof publication?.cleanup_rule !== "string" || !publication.cleanup_rule.includes("never unlinks")) {
|
|
84
|
+
errors.push("publication_policy.cleanup_rule must forbid unlinking colliding or replaced paths");
|
|
85
|
+
}
|
|
86
|
+
const nativePolicy = data.native_policy;
|
|
87
|
+
if (nativePolicy?.install_update_auth_trust_operations !== "forbidden") {
|
|
88
|
+
errors.push("native_policy.install_update_auth_trust_operations must be forbidden");
|
|
89
|
+
}
|
|
90
|
+
if (nativePolicy?.trust_is_observed_only !== true) {
|
|
91
|
+
errors.push("native_policy.trust_is_observed_only must be true");
|
|
92
|
+
}
|
|
93
|
+
return errors;
|
|
94
|
+
}
|
|
95
|
+
export function validateLifecycleOperationContractRoot(root) {
|
|
96
|
+
const contractPath = path.join(root, LIFECYCLE_OPERATION_CONTRACT_RELATIVE_PATH);
|
|
97
|
+
if (!fs.existsSync(contractPath)) {
|
|
98
|
+
return [`${LIFECYCLE_OPERATION_CONTRACT_RELATIVE_PATH}:1: missing lifecycle operation contract`];
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
return validateLifecycleOperationContractData(loadYamlMapping(fs.readFileSync(contractPath, "utf8"))).map((error) => `${LIFECYCLE_OPERATION_CONTRACT_RELATIVE_PATH}: ${error}`);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
return [
|
|
105
|
+
`${LIFECYCLE_OPERATION_CONTRACT_RELATIVE_PATH}: could not parse contract: ${error.message}`,
|
|
106
|
+
];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=lifecycleOperationContract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycleOperationContract.js","sourceRoot":"","sources":["../../src/runtime/lifecycleOperationContract.ts"],"names":[],"mappings":"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"}
|