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
|
@@ -1,79 +1,44 @@
|
|
|
1
|
-
# Runtime
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
and `message`. Without `--update-packages`, package items are `skipped`; with it,
|
|
46
|
-
Claude Code and OpenCode package commands become `pending` and apply through the
|
|
47
|
-
external command runner. Copilot CLI and Codex CLI have no package command item in
|
|
48
|
-
the current upgrade phase.
|
|
49
|
-
|
|
50
|
-
## Lifecycle Validation
|
|
51
|
-
|
|
52
|
-
Current pass output from `scripts/validate_lifecycle_adapters.py` is exactly:
|
|
53
|
-
|
|
54
|
-
```text
|
|
55
|
-
lifecycle adapter metadata ok
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Current failure output begins with:
|
|
59
|
-
|
|
60
|
-
```text
|
|
61
|
-
lifecycle adapter validation failed:
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Representative fail messages are characterized in `tests/test_runtime_adapters.py`:
|
|
65
|
-
Copilot stale `lifecycleHooks`, unsupported hook event files, missing `preToolUse`
|
|
66
|
-
artifact validation, Codex unsupported status values, malformed event containers,
|
|
67
|
-
missing supported-event declarations, missing unsupported-event declarations, and
|
|
68
|
-
missing `codex_hooks` limitation text.
|
|
69
|
-
|
|
70
|
-
## Drift Inventory
|
|
71
|
-
|
|
72
|
-
| Drift point | Decision | Before-migration handling |
|
|
73
|
-
|-------------|----------|---------------------------|
|
|
74
|
-
| duplicated runtime order appears in doctor, upgrade, and tests | `standardize` | Later registry extraction should define one runtime order and have consumers read it. |
|
|
75
|
-
| upgrade package phase only manages Claude Code and OpenCode | `preserve` | This is current behavior, not a registry gap; Copilot CLI and Codex CLI package command support is separate future work. |
|
|
76
|
-
| Codex supports hook events but shipped config wires only apply_patch validation | `preserve` | Keep the distinction between host support and shipped Agentera wiring. |
|
|
77
|
-
| Claude lifecycle behavior is validated through native hook files, not lifecycle metadata | `defer` | Do not invent Claude lifecycle metadata in Task 2; decide during registry interface design. |
|
|
78
|
-
| OpenCode session preload observes `session.created` but has no verified context injection path | `preserve` | Keep degraded preload semantics in docs and diagnostics. |
|
|
79
|
-
| hard-gate docs only claim blocking for reconstructable OpenCode and Copilot candidates | `preserve` | Keep scoped claims; do not standardize to full hard-gate parity. |
|
|
1
|
+
# Runtime adapter characterization
|
|
2
|
+
|
|
3
|
+
The executable lifecycle contract is split deliberately:
|
|
4
|
+
|
|
5
|
+
- `runtime-lifecycle-authority.yaml` owns active identities, surfaces, evidence,
|
|
6
|
+
support-floor rules, the Cursor alias, and retired inputs;
|
|
7
|
+
- `runtime-lifecycle-adapters.yaml` owns the common eight-category adapter
|
|
8
|
+
claims and declared Agentera-managed resources;
|
|
9
|
+
- `runtime-lifecycle-operation-contract.yaml` owns operation and ownership
|
|
10
|
+
semantics;
|
|
11
|
+
- `runtime-retired-resources.yaml` owns bounded legacy cleanup;
|
|
12
|
+
- `runtime-adapter-registry.yaml` retains host-event and behavioral parity facts
|
|
13
|
+
and must match the lifecycle authority's four identities.
|
|
14
|
+
|
|
15
|
+
## Characterized identities
|
|
16
|
+
|
|
17
|
+
| Runtime ID | Required host surface | Additional surface | Lifecycle source highlights |
|
|
18
|
+
| --- | --- | --- | --- |
|
|
19
|
+
| `opencode` | OpenCode host | — | plugin and single Agentera agent |
|
|
20
|
+
| `codex` | Codex CLI | — | plugin hooks, copied hooks, capability TOML agents |
|
|
21
|
+
| `cursor` | Cursor Agent CLI | Cursor IDE when observed | IDE plugin, hooks, and Agentera descriptor |
|
|
22
|
+
| `copilot` | GitHub Copilot CLI | — | plugin manifests and lifecycle hooks |
|
|
23
|
+
|
|
24
|
+
The inactive `cursor-agent` spelling identifies the Cursor CLI binary/source
|
|
25
|
+
product only. Claude is absent from adapter records and can appear only in the
|
|
26
|
+
retired cleanup or explicit historical-import contracts.
|
|
27
|
+
|
|
28
|
+
## Diagnosis and remediation
|
|
29
|
+
|
|
30
|
+
Every adapter reports `skills`, `plugins`, `hooks`, `agents`, `configuration`,
|
|
31
|
+
`enablement`, `trust`, and `native_actions`. Evidence is read-only. Trust is
|
|
32
|
+
never inferred. Managed repair is planned through the shared operation engine;
|
|
33
|
+
native and user-owned work is returned as `action_required`.
|
|
34
|
+
|
|
35
|
+
Preview has no side effects. Apply requires declared destinations and matching
|
|
36
|
+
ownership-journal evidence, uses secure directory-relative publication on
|
|
37
|
+
Linux, continues independent operations after failure, and converges on retry.
|
|
38
|
+
|
|
39
|
+
## Validation
|
|
40
|
+
|
|
41
|
+
`agentera check validate lifecycle-adapters` rejects identity drift, missing
|
|
42
|
+
runtime/category/surface claims, unsafe destinations, unverified mandatory
|
|
43
|
+
skills, missing package manifests, unbundled lifecycle sources, version drift,
|
|
44
|
+
retired Claude manifests, and stale runtime-specific hook claims.
|
|
@@ -1,88 +1,11 @@
|
|
|
1
1
|
schema_version: agentera.runtimeAdapterRegistry.v1
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
lifecycle_authority: references/adapters/runtime-lifecycle-authority.yaml
|
|
3
|
+
adapter_record_order:
|
|
4
4
|
- opencode
|
|
5
5
|
- copilot
|
|
6
6
|
- codex
|
|
7
7
|
- cursor
|
|
8
|
-
- cursor-agent
|
|
9
8
|
records:
|
|
10
|
-
- identity:
|
|
11
|
-
runtime_id: claude
|
|
12
|
-
display_name: Claude Code
|
|
13
|
-
adapter_family: native-plugin
|
|
14
|
-
support_status: supported
|
|
15
|
-
host_detection:
|
|
16
|
-
binary_names:
|
|
17
|
-
- claude
|
|
18
|
-
host_config_locations:
|
|
19
|
-
- CLAUDE_PLUGIN_ROOT
|
|
20
|
-
availability_probe_label: runtime_binary
|
|
21
|
-
lifecycle_events:
|
|
22
|
-
supported_events:
|
|
23
|
-
- PreToolUse
|
|
24
|
-
- PostToolUse
|
|
25
|
-
- UserPromptSubmit
|
|
26
|
-
- SessionStart
|
|
27
|
-
- Stop
|
|
28
|
-
- SubagentStop
|
|
29
|
-
unsupported_events: []
|
|
30
|
-
event_status:
|
|
31
|
-
PreToolUse: native
|
|
32
|
-
PostToolUse: native
|
|
33
|
-
UserPromptSubmit: native
|
|
34
|
-
SessionStart: native
|
|
35
|
-
Stop: native
|
|
36
|
-
SubagentStop: native
|
|
37
|
-
limitations:
|
|
38
|
-
- Claude lifecycle behavior is validated through native hook files rather than lifecycle metadata.
|
|
39
|
-
artifact_validation:
|
|
40
|
-
validation_events:
|
|
41
|
-
- PreToolUse
|
|
42
|
-
hard_gate_claims:
|
|
43
|
-
- Native hook files can run artifact validation before tool writes.
|
|
44
|
-
payload_reconstruction_limitations: []
|
|
45
|
-
subagent_dispatch:
|
|
46
|
-
mechanism: Claude Code native subagent dispatch
|
|
47
|
-
setup_targets: []
|
|
48
|
-
descriptor_sources: []
|
|
49
|
-
invocation_pattern: Use the host Task/subagent surface with the selected Agentera capability context.
|
|
50
|
-
tool_configuration: none
|
|
51
|
-
limitations:
|
|
52
|
-
- Agentera does not install per-capability Claude descriptors in this package phase.
|
|
53
|
-
config_targets:
|
|
54
|
-
runtime_config_files: []
|
|
55
|
-
hook_targets:
|
|
56
|
-
- .claude-plugin/marketplace.json
|
|
57
|
-
plugin_targets:
|
|
58
|
-
- skills/*/.claude-plugin/plugin.json
|
|
59
|
-
environment_exports:
|
|
60
|
-
- CLAUDE_PLUGIN_ROOT
|
|
61
|
-
write_safety_labels:
|
|
62
|
-
- Claude Code plugin installs expose the app home without local config writes
|
|
63
|
-
diagnostics:
|
|
64
|
-
check_names:
|
|
65
|
-
- CLAUDE_PLUGIN_ROOT
|
|
66
|
-
status_labels:
|
|
67
|
-
- pass
|
|
68
|
-
- warn
|
|
69
|
-
- fail
|
|
70
|
-
- skip
|
|
71
|
-
gap_labels:
|
|
72
|
-
- runtime_config
|
|
73
|
-
- user_environment
|
|
74
|
-
primary_messages:
|
|
75
|
-
- runtime can reach shared Agentera helper scripts
|
|
76
|
-
- Claude Code plugin root is not present in this process environment
|
|
77
|
-
documentation_claims:
|
|
78
|
-
reference_paths:
|
|
79
|
-
- references/adapters/runtime-feature-parity.md
|
|
80
|
-
parity_claims:
|
|
81
|
-
- Claude Code uses native plugin and hook surfaces.
|
|
82
|
-
install_claims:
|
|
83
|
-
- Claude Code plugin installs expose the app home without local config writes.
|
|
84
|
-
known_drifts:
|
|
85
|
-
- Claude lifecycle behavior is validated through native hook files, not lifecycle metadata.
|
|
86
9
|
- identity:
|
|
87
10
|
runtime_id: opencode
|
|
88
11
|
display_name: OpenCode
|
|
@@ -189,7 +112,7 @@ records:
|
|
|
189
112
|
- OpenCode session preload observes session.created but has no verified context injection path.
|
|
190
113
|
- identity:
|
|
191
114
|
runtime_id: copilot
|
|
192
|
-
display_name: Copilot
|
|
115
|
+
display_name: GitHub Copilot
|
|
193
116
|
adapter_family: portable-plugin
|
|
194
117
|
support_status: supported
|
|
195
118
|
host_detection:
|
|
@@ -271,9 +194,9 @@ records:
|
|
|
271
194
|
- Upgrade runtime configure is noop; shell rc paths in host_detection are doctor diagnostic probes only.
|
|
272
195
|
- identity:
|
|
273
196
|
runtime_id: codex
|
|
274
|
-
display_name: Codex
|
|
197
|
+
display_name: Codex
|
|
275
198
|
adapter_family: portable-plugin
|
|
276
|
-
support_status:
|
|
199
|
+
support_status: supported
|
|
277
200
|
host_detection:
|
|
278
201
|
binary_names:
|
|
279
202
|
- codex
|
|
@@ -358,11 +281,12 @@ records:
|
|
|
358
281
|
- Codex supports hook events but shipped config wires only apply_patch validation.
|
|
359
282
|
- identity:
|
|
360
283
|
runtime_id: cursor
|
|
361
|
-
display_name: Cursor
|
|
284
|
+
display_name: Cursor
|
|
362
285
|
adapter_family: native-plugin
|
|
363
286
|
support_status: supported
|
|
364
287
|
host_detection:
|
|
365
288
|
binary_names:
|
|
289
|
+
- cursor-agent
|
|
366
290
|
- cursor
|
|
367
291
|
host_config_locations:
|
|
368
292
|
- AGENTERA_HOME
|
|
@@ -461,89 +385,3 @@ records:
|
|
|
461
385
|
known_drifts:
|
|
462
386
|
- Release tagging and marketplace publication remain blocked pending broader release closeout despite passed live preToolUse Write smoke.
|
|
463
387
|
- Cloud agents are unsupported in v1.
|
|
464
|
-
- identity:
|
|
465
|
-
runtime_id: cursor-agent
|
|
466
|
-
display_name: Cursor Agent CLI
|
|
467
|
-
adapter_family: portable-cli
|
|
468
|
-
support_status: degraded
|
|
469
|
-
host_detection:
|
|
470
|
-
binary_names:
|
|
471
|
-
- cursor-agent
|
|
472
|
-
- agent
|
|
473
|
-
host_config_locations:
|
|
474
|
-
- AGENTERA_HOME
|
|
475
|
-
- ~/.bashrc
|
|
476
|
-
- ~/.zshrc
|
|
477
|
-
- ~/.config/fish/config.fish
|
|
478
|
-
availability_probe_label: runtime_binary
|
|
479
|
-
lifecycle_events:
|
|
480
|
-
supported_events:
|
|
481
|
-
- sessionStart
|
|
482
|
-
- sessionEnd
|
|
483
|
-
- preToolUse
|
|
484
|
-
- postToolUse
|
|
485
|
-
unsupported_events:
|
|
486
|
-
- subagentStart
|
|
487
|
-
- subagentStop
|
|
488
|
-
- beforeSubmitPrompt
|
|
489
|
-
- preCompact
|
|
490
|
-
- stop
|
|
491
|
-
event_status:
|
|
492
|
-
sessionStart: degraded
|
|
493
|
-
sessionEnd: degraded
|
|
494
|
-
preToolUse: degraded
|
|
495
|
-
postToolUse: degraded
|
|
496
|
-
limitations:
|
|
497
|
-
- CLI sessions may not inherit IDE sessionStart env; persistent shell configuration is a fallback only when shell-tool smoke fails.
|
|
498
|
-
- Non-interactive print mode may hang after completion in some host builds; eval and smoke harnesses use bounded timeouts.
|
|
499
|
-
- Cloud agents are unsupported in v1.
|
|
500
|
-
artifact_validation:
|
|
501
|
-
validation_events:
|
|
502
|
-
- preToolUse
|
|
503
|
-
hard_gate_claims:
|
|
504
|
-
- CLI hook parity is degraded relative to IDE; hard-gate claims follow IDE smoke evidence only.
|
|
505
|
-
payload_reconstruction_limitations:
|
|
506
|
-
- CLI may omit hook wiring entirely when launched outside a Cursor workspace with project hooks.
|
|
507
|
-
subagent_dispatch:
|
|
508
|
-
mechanism: Cursor Agent CLI host-managed dispatch
|
|
509
|
-
setup_targets: []
|
|
510
|
-
descriptor_sources: []
|
|
511
|
-
invocation_pattern: Use cursor-agent with explicit capability context; managed .cursor/agents descriptors apply only when the workspace is loaded.
|
|
512
|
-
tool_configuration: global_full_access
|
|
513
|
-
limitations:
|
|
514
|
-
- Agentera does not install per-capability cursor-agent descriptors separately from IDE managed agents.
|
|
515
|
-
config_targets:
|
|
516
|
-
runtime_config_files: []
|
|
517
|
-
hook_targets: []
|
|
518
|
-
plugin_targets: []
|
|
519
|
-
environment_exports:
|
|
520
|
-
- AGENTERA_HOME
|
|
521
|
-
write_safety_labels:
|
|
522
|
-
- configure
|
|
523
|
-
diagnostics:
|
|
524
|
-
check_names:
|
|
525
|
-
- AGENTERA_HOME
|
|
526
|
-
- cursor-agent
|
|
527
|
-
status_labels:
|
|
528
|
-
- pass
|
|
529
|
-
- warn
|
|
530
|
-
- fail
|
|
531
|
-
- skip
|
|
532
|
-
gap_labels:
|
|
533
|
-
- runtime_config
|
|
534
|
-
- user_environment
|
|
535
|
-
primary_messages:
|
|
536
|
-
- runtime can reach shared Agentera helper scripts
|
|
537
|
-
- cursor-agent binary is not on PATH
|
|
538
|
-
- cursor-agent helper access depends on AGENTERA_HOME or shell rc configuration
|
|
539
|
-
documentation_claims:
|
|
540
|
-
reference_paths:
|
|
541
|
-
- references/adapters/runtime-feature-parity.md
|
|
542
|
-
- references/adapters/cursor.md
|
|
543
|
-
parity_claims:
|
|
544
|
-
- cursor-agent supports eval_skills --runtime cursor-agent print-mode dispatch.
|
|
545
|
-
install_claims:
|
|
546
|
-
- cursor-agent inherits IDE hook wiring only when run inside a workspace with installed Cursor surfaces.
|
|
547
|
-
known_drifts:
|
|
548
|
-
- CLI hook and session env parity is degraded relative to Cursor IDE.
|
|
549
|
-
- Bare text /agentera routing is metadata-only like Claude, Copilot, and Codex.
|
|
@@ -1,189 +1,121 @@
|
|
|
1
|
-
# Runtime feature parity
|
|
2
|
-
|
|
3
|
-
Tracks release-relevant runtime behavior for the portable agentera suite.
|
|
4
|
-
|
|
5
|
-
This reference distinguishes implemented behavior from host support. A runtime
|
|
6
|
-
may expose an event while agentera still lacks a shipped adapter path for it.
|
|
7
|
-
|
|
8
|
-
## Summary
|
|
9
|
-
|
|
10
|
-
| Runtime | Skill loading | Session preload | Artifact validation | Session bookmark |
|
|
11
|
-
|---------|---------------|-----------------|---------------------|------------------|
|
|
12
|
-
| Claude Code | Full: marketplace plugin and native skill paths load `skills/<name>/SKILL.md` | Active via `SessionStart` in `hooks/hooks.json` | Advisory after mutation via `PostToolUse` for `Edit` or `Write` | Active via `Stop` |
|
|
13
|
-
| OpenCode | Full: native `skill` tool loads `.opencode`, `.claude`, and `.agents` skill paths | Deferred for session start: `session.created` is observable, but no model-context injection path is verified. Active for compaction through bounded `experimental.session.compacting` context from `agentera hej --format json`. | Conditional hard gate for reconstructable `write` and `edit` candidates via `tool.execute.before`; `tool.execute.after` remains advisory | Active via generic `event` hook on `session.idle` |
|
|
14
|
-
| Copilot CLI | Full for portable skills through plugin or skill-folder install paths | Active via `sessionStart` | Conditional hard gate via `preToolUse` when `toolArgs` include path plus candidate content or exact replacement evidence | Active via `sessionEnd` |
|
|
15
|
-
| Codex CLI | Full for portable skills through plugin install, `.agents/skills`, and `$skill` invocation | Not wired by the shipped hook config | Advisory `apply_patch` path validation through shipped PreToolUse and PostToolUse hooks; final patch content is not reconstructed | Not wired by the shipped hook config |
|
|
16
|
-
| Cursor IDE | Full for portable skills through local plugin (`~/.cursor/plugins/local/agentera` via `.cursor-plugin/plugin.json`), repo-native surfaces, and upgrade-installed `.cursor/` targets | Active via `sessionStart` env export plus optional `additional_context` digest; plugin-root fallback when `AGENTERA_HOME` env and project walk-up fail (`hooks/cursor_session_start.py`) | Conditional hard gate for reconstructable `Write` and `Edit` candidates via `preToolUse`; verified after live preToolUse Write smoke (2026-05-24) | Active via `sessionEnd` |
|
|
17
|
-
| Cursor Agent CLI | Full when workspace surfaces are installed; degraded when launched outside a Cursor project | Degraded relative to IDE sessionStart env export | Degraded hook parity; follows IDE smoke evidence only | Degraded relative to IDE `sessionEnd` wiring |
|
|
18
|
-
|
|
19
|
-
## Profilera session corpus
|
|
20
|
-
|
|
21
|
-
| Runtime | Local session mining | Evidence |
|
|
22
|
-
| ------- | -------------------- | -------- |
|
|
23
|
-
| Claude Code | Yes: `~/.claude/projects/**/*.jsonl` | `scripts/extract_corpus.py` |
|
|
24
|
-
| Codex CLI | Yes: `~/.codex/sessions/**/*.jsonl` | `scripts/extract_corpus.py` |
|
|
25
|
-
| OpenCode | Yes: `opencode.db` SQLite stores | `scripts/extract_corpus.py`, `references/adapters/opencode.md` |
|
|
26
|
-
| Copilot CLI | Yes: `session-store.db` SQLite stores | `scripts/extract_corpus.py` |
|
|
27
|
-
| Cursor IDE | Yes: `~/.cursor/projects/*/agent-transcripts/*/*.jsonl` | `scripts/extract_corpus.py`, `references/adapters/cursor.md` |
|
|
28
|
-
| Cursor Agent CLI | Yes: gap-fill from `~/.config/cursor/chats/<md5(project)>/<session>/store.db` when no IDE JSONL exists | `scripts/extract_corpus.py`, `references/adapters/cursor.md` |
|
|
29
|
-
|
|
30
|
-
## Bare `hej` routing
|
|
31
|
-
|
|
32
|
-
| Runtime | Bare text `hej` behavior | Evidence |
|
|
33
|
-
|---------|--------------------------|----------|
|
|
34
|
-
| OpenCode | Deterministic exact-match adapter route through `chat.message`; only a complete lowercase text message `hej` is rewritten to load `agentera` and run the `agentera hej` dashboard path, accepting OpenCode's CLI-added single trailing newline as a transport artifact. | `.opencode/plugins/agentera.js`, `scripts/smoke_opencode_bootstrap.mjs`, OpenCode `packages/plugin/src/index.ts` Hooks interface |
|
|
35
|
-
| Claude Code | Metadata/context only; `UserPromptSubmit` can observe or add context but is not a verified prompt rewrite router. | `skills/agentera/SKILL.md`, marketplace metadata |
|
|
36
|
-
| Copilot CLI | Metadata/context only; skills, prompts, hooks, and plugins expose Agentera but do not guarantee pre-model bare-prompt routing. | `plugin.json`, `.github/plugin/plugin.json`, `.github/hooks` |
|
|
37
|
-
| Codex CLI | Metadata/context only; `$agentera` is explicit and the legacy `$hej` bridge is not implicitly invocable. | `.codex-plugin/plugin.json`, `agents/openai.yaml` |
|
|
38
|
-
| Cursor IDE | Metadata/context only; `beforeSubmitPrompt` is supported by the host but Agentera v1 does not rewrite bare `hej`. | `.cursor-plugin/plugin.json`, `.cursor/agents/*.md` |
|
|
39
|
-
| Cursor Agent CLI | Metadata/context only like Claude, Copilot, and Codex. | `references/adapters/cursor.md`, eval runner metadata |
|
|
40
|
-
|
|
41
|
-
## Artifact validation
|
|
42
|
-
|
|
43
|
-
| Runtime | Blocking surface | Implemented gate | Evidence-insufficient paths | Verification surface |
|
|
44
|
-
|---------|------------------|------------------|-----------------------------|----------------------|
|
|
45
|
-
| Claude Code | None in shipped config; validation runs after `Edit` or `Write` | No pre-write hard gate is claimed | Any invalid artifact can already be written before the warning appears | `hooks/hooks.json`, `hooks/validate_artifact.py` |
|
|
46
|
-
| OpenCode | `tool.execute.before` can throw before mutation | Invalid reconstructable artifact `write` and `edit` candidates are blocked | Sparse payloads and `apply_patch` `patchText` without reconstructed full content are allowed | `.opencode/plugins/agentera.js`, `scripts/smoke_opencode_bootstrap.mjs` |
|
|
47
|
-
| Copilot CLI | `preToolUse` returns `permissionDecision: deny` | Invalid reconstructable artifact candidates are denied | Malformed, sparse, or non-reconstructable `toolArgs` are allowed | `.github/hooks/preToolUse.json`, `hooks/validate_artifact.py`, `tests/test_validate_artifact.py` |
|
|
48
|
-
| Codex CLI | `codex_hooks` can run before and after `apply_patch` | No content hard gate is claimed; the copied user hook config parses touched paths and validates existing files; optional plugin-bundled hooks require `[features].plugin_hooks = true` plus `/hooks` review | Add-file targets and final post-patch candidate content are not reconstructed by the adapter | `~/.codex/hooks.json` generated by upgrade, `.codex-plugin/plugin.json` `hooks`, `hooks/codex-plugin-hooks.json`, `hooks/validate_artifact.py`, live apply_patch hook firing smoke |
|
|
49
|
-
| Cursor IDE | `preToolUse` returns `permission: deny` when wired | Invalid reconstructable artifact candidates are denied; live preToolUse Write smoke passed 2026-05-24 | Malformed, sparse, or non-reconstructable tool_input payloads are allowed | `.cursor/hooks.json`, `hooks/cursor_pre_tool_use.py`, `hooks/validate_artifact.py`, `.agentera/smoke-cursor-pretooluse-evidence.txt` |
|
|
50
|
-
| Cursor Agent CLI | None claimed for standalone CLI | No IDE-equivalent hard gate is claimed | CLI may run without project hook wiring | `scripts/eval_skills.py --runtime cursor-agent` |
|
|
51
|
-
|
|
52
|
-
Docs may claim functional hard-gate parity only for closeable paths that are
|
|
53
|
-
implemented and verified. Today that means OpenCode, Copilot, and Cursor IDE
|
|
54
|
-
reconstructable artifact candidates. Claude Code and Codex remain active validation
|
|
55
|
-
surfaces, but neither shipped configuration blocks every invalid artifact candidate
|
|
56
|
-
before mutation.
|
|
57
|
-
|
|
58
|
-
## Lifecycle notes
|
|
59
|
-
|
|
60
|
-
| Runtime | Runtime reason for degraded or blocked capability |
|
|
61
|
-
|---------|---------------------------------------------------|
|
|
62
|
-
| OpenCode preload | The `event` hook observes `session.created`, but no supported adapter path injects text into model context. |
|
|
63
|
-
| OpenCode compaction context | `experimental.session.compacting` appends bounded Agentera state from `agentera hej --format json`; the plugin does not read raw `.agentera` artifacts for compaction. |
|
|
64
|
-
| OpenCode `apply_patch` hard gate | The adapter receives `patchText` without reconstructing full candidate content. It allows that path rather than guessing. |
|
|
65
|
-
| Copilot sparse edits | Copilot `preToolUse` stdin may omit full content or unique old/new replacement evidence. The hook allows those payloads. |
|
|
66
|
-
| Codex preload/bookmarks | `codex_hooks` supports lifecycle events, but Agentera ships only `apply_patch` PreToolUse/PostToolUse wiring for copied user hooks and optional plugin-bundled hooks. |
|
|
67
|
-
| Codex artifact hard gate | The adapter parses patch headers for touched paths, but it does not reconstruct final candidate content for blocking validation. |
|
|
68
|
-
| Codex plugin hook trust | Plugin-bundled hooks require `[features].plugin_hooks = true` and deliberate `/hooks` review; copied `~/.codex/hooks.json` remains the default reliable install path with generated `[hooks.state]` trust hashes. |
|
|
69
|
-
| Cursor cloud agents | Cloud agents are unsupported in v1; repo hooks and managed agents target local IDE sessions only. |
|
|
70
|
-
| Cursor CLI hook parity | `cursor-agent` print mode is eval-covered but hook/session env parity is degraded relative to IDE wiring. |
|
|
71
|
-
| Cursor hard-gate release gate | Live preToolUse Write smoke passed 2026-05-24; release tagging and publication stay blocked pending broader release closeout. |
|
|
72
|
-
|
|
73
|
-
## Subagent Dispatch
|
|
74
|
-
|
|
75
|
-
| Runtime | Dispatch surface | Descriptor source | Tool Access | Verification surface |
|
|
76
|
-
|---------|------------------|-------------------|-------------|----------------------|
|
|
77
|
-
| Claude Code | Native Task/subagent surface | Host-managed; no Agentera descriptor files shipped for this phase | None (no descriptors) | RuntimeAdapter registry |
|
|
78
|
-
| OpenCode | Single `agentera` primary agent with `general` subagent dispatch | `.opencode/agents/agentera.md`, bootstrapped by `.opencode/plugins/agentera.js` | Per-agent `permission` frontmatter (broad: write+bash allow) | `scripts/smoke_opencode_bootstrap.mjs`, `agentera validate descriptors` |
|
|
79
|
-
| Copilot CLI | User-driven host action such as `/fleet` when available | Host-managed; no Agentera descriptor files shipped for this phase | N/A (no descriptors) | RuntimeAdapter registry |
|
|
80
|
-
| Codex CLI | Native agent descriptors under `~/.codex/agents` or project `.codex/agents` with bounded `[agents]` settings | `skills/agentera/agents/*.toml`, installed by `scripts/setup_codex.py` and `agentera upgrade` | Global sandbox policy (no per-agent) | `agentera validate descriptors`, `tests/test_setup_codex.py`, `tests/test_upgrade_cli.py` |
|
|
81
|
-
| Cursor IDE | Single `agentera` agent with `general` subagent dispatch | `.cursor/agents/agentera.md`, via local plugin or `agentera upgrade --runtime cursor` | Global full access (no per-agent) | `references/adapters/cursor.md`, `scripts/validate_lifecycle_adapters.py`, `tests/test_upgrade_cli.py` |
|
|
82
|
-
| Cursor Agent CLI | Host-managed `cursor-agent -p` print mode | Workspace `.cursor/agents/*.md` when present; no separate CLI descriptor install | Global full access (no per-agent) | `scripts/eval_skills.py --runtime cursor-agent`, `tests/test_eval_skills.py` |
|
|
83
|
-
|
|
84
|
-
Agentera v2 does not write legacy `[agents.<name>]` Codex config blocks. Capability dispatch must use runtime-native subagent descriptors or host Task surfaces, not unsupported `agentera <capability>` CLI commands.
|
|
85
|
-
|
|
86
|
-
## Copilot install notes
|
|
87
|
-
|
|
88
|
-
Recommended marketplace install:
|
|
1
|
+
# Runtime feature parity
|
|
89
2
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
```
|
|
3
|
+
Release-relevant behavior is governed by
|
|
4
|
+
`runtime-lifecycle-authority.yaml` and `runtime-lifecycle-adapters.yaml`.
|
|
5
|
+
Active runtime IDs are exactly `opencode`, `codex`, `cursor`, and `copilot`.
|
|
94
6
|
|
|
95
|
-
|
|
7
|
+
`cursor-agent` is an inactive compatibility alias and Cursor CLI source-product
|
|
8
|
+
name beneath the single `cursor` identity. It is never an active runtime ID.
|
|
9
|
+
Claude Code is a retired migration and consent-gated historical-import source,
|
|
10
|
+
not a supported runtime.
|
|
96
11
|
|
|
97
|
-
|
|
98
|
-
copilot plugin install jgabor/agentera
|
|
99
|
-
```
|
|
12
|
+
## Lifecycle identity and support floor
|
|
100
13
|
|
|
101
|
-
|
|
102
|
-
|
|
14
|
+
| Runtime | Required surface | Conditional surface | Canonical skill |
|
|
15
|
+
| --- | --- | --- | --- |
|
|
16
|
+
| OpenCode | host | — | `~/.agents/skills/agentera` |
|
|
17
|
+
| Codex | CLI | — | `~/.agents/skills/agentera` |
|
|
18
|
+
| Cursor | Agent CLI | IDE | `~/.agents/skills/agentera` |
|
|
19
|
+
| GitHub Copilot | CLI | — | `~/.agents/skills/agentera` |
|
|
103
20
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
21
|
+
The support floor requires the canonical skill, complete diagnosis, and
|
|
22
|
+
resolved mandatory evidence. Unknown or missing mandatory evidence and denied
|
|
23
|
+
trust block release. A known false installation or enablement state is
|
|
24
|
+
diagnosed as degraded. An unobserved conditional Cursor IDE is
|
|
25
|
+
`not_applicable` and does not block CLI support.
|
|
107
26
|
|
|
108
|
-
|
|
109
|
-
|
|
27
|
+
`prime` projects a bounded summary from this lifecycle snapshot. `doctor`
|
|
28
|
+
projects detailed evidence and exact actions from the same snapshot.
|
|
110
29
|
|
|
111
|
-
##
|
|
30
|
+
## Common adapter contract
|
|
112
31
|
|
|
113
|
-
|
|
32
|
+
Every active runtime reports the same eight categories:
|
|
114
33
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
34
|
+
| Category | Meaning |
|
|
35
|
+
| --- | --- |
|
|
36
|
+
| skills | Canonical and additional skill discovery locations |
|
|
37
|
+
| plugins | Agentera plugin package or host plugin state |
|
|
38
|
+
| hooks | Session and tool lifecycle wiring |
|
|
39
|
+
| agents | Runtime-native Agentera descriptors |
|
|
40
|
+
| configuration | User or project configuration evidence |
|
|
41
|
+
| enablement | Whether the host has enabled the integration |
|
|
42
|
+
| trust | Observed trust state; never inferred or approved |
|
|
43
|
+
| native actions | Exact user-owned host/package-manager steps |
|
|
44
|
+
|
|
45
|
+
Each runtime/surface/category claim declares capability, evidence, and
|
|
46
|
+
remediation. Unsupported or unverified host behavior cannot satisfy a mandatory
|
|
47
|
+
support floor.
|
|
48
|
+
|
|
49
|
+
## Host behavior
|
|
50
|
+
|
|
51
|
+
| Runtime | Skill/package source | Hook and validation behavior | Agent behavior |
|
|
52
|
+
| --- | --- | --- | --- |
|
|
53
|
+
| OpenCode | Portable skill plus `.opencode/plugins/agentera.js` | Conditional hard gate for reconstructable write/edit candidates; sparse or unreconstructed patches remain advisory | Single Agentera descriptor in `.opencode/agents/agentera.md` |
|
|
54
|
+
| Codex | `.codex-plugin/plugin.json`, shared skill, and marketplace entry | Plugin and copied-hook sources validate `apply_patch` paths before/after use; final patch content is not reconstructed | Capability TOML descriptors under `skills/agentera/agents/` |
|
|
55
|
+
| Cursor | One identity spanning Agent CLI and optional IDE plugin | IDE hooks provide session context and conditional hard-gate validation for reconstructable Write/Edit candidates | One IDE Agentera descriptor; CLI uses the Cursor-owned binary surface |
|
|
56
|
+
| GitHub Copilot | Root and repository plugin manifests | `sessionStart`, `sessionEnd`, `preToolUse`, and `postToolUse`; reconstructable candidates are denied before mutation | Host-managed dispatch; no Agentera-specific Copilot agent descriptor |
|
|
119
57
|
|
|
120
|
-
|
|
121
|
-
`.cursor-plugin/plugin.json`. Agentera is not published to the Cursor Marketplace
|
|
122
|
-
yet.
|
|
58
|
+
The validated hard-gate claims retain their exact scope:
|
|
123
59
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
env and project walk-up do not resolve a managed root).
|
|
60
|
+
- OpenCode: Conditional hard gate for reconstructable write and edit candidates. Sparse payloads and apply_patch patchText without reconstructed full content are allowed.
|
|
61
|
+
- GitHub Copilot: Conditional hard gate via preToolUse. Malformed, sparse, or non-reconstructable toolArgs are allowed.
|
|
62
|
+
- Cursor: Conditional hard gate for reconstructable Write and Edit candidates via preToolUse; verified after live preToolUse Write smoke (2026-05-24). Malformed, sparse, or non-reconstructable tool_input payloads are allowed.
|
|
128
63
|
|
|
129
|
-
|
|
64
|
+
Agentera never upgrades a runtime binary, runs a native marketplace/package
|
|
65
|
+
manager, authenticates, enables a plugin, or approves trust. Those operations
|
|
66
|
+
are emitted as `action_required`.
|
|
130
67
|
|
|
131
|
-
|
|
68
|
+
## Lifecycle repair
|
|
132
69
|
|
|
133
70
|
```bash
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
uv run scripts/agentera upgrade --runtime cursor --yes
|
|
137
|
-
uv run scripts/agentera doctor --runtime cursor
|
|
71
|
+
agentera upgrade --runtime all --dry-run
|
|
72
|
+
agentera upgrade --runtime all --yes
|
|
138
73
|
```
|
|
139
74
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
75
|
+
Preview is side-effect free. Apply is limited to declared Agentera-owned
|
|
76
|
+
resources with matching ownership-journal evidence. Secure automatic
|
|
77
|
+
publication currently requires Linux `/proc/self/fd`; other platforms receive
|
|
78
|
+
the same plan as explicit actions.
|
|
143
79
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
80
|
+
Outcomes are `applied`, `noop`, `failed`, `blocked_unowned`,
|
|
81
|
+
`skipped_dependency`, and `action_required`. Independent operations continue
|
|
82
|
+
after a local failure, and retries re-observe state so completed work becomes
|
|
83
|
+
`noop`.
|
|
147
84
|
|
|
148
|
-
|
|
149
|
-
reconstructable Write and Edit candidates is verified after live preToolUse Write
|
|
150
|
-
smoke (2026-05-24); release tagging and publication remain blocked until explicitly
|
|
151
|
-
approved.
|
|
85
|
+
## Corpus sources
|
|
152
86
|
|
|
153
|
-
|
|
87
|
+
| Runtime identity | Source product | Default analytics |
|
|
88
|
+
| --- | --- | --- |
|
|
89
|
+
| Codex | Codex session JSONL | included |
|
|
90
|
+
| OpenCode | OpenCode SQLite store | included |
|
|
91
|
+
| Cursor | Cursor IDE JSONL | included |
|
|
92
|
+
| Cursor | Cursor Agent CLI SQLite source (`cursor-agent`) | included as Cursor gap-fill |
|
|
93
|
+
| GitHub Copilot | Copilot session SQLite store | included |
|
|
94
|
+
| none | Claude Code JSONL | excluded; requires `--import-source claude` |
|
|
154
95
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
96
|
+
Claude imports use `historical_import` provenance and `active_runtime: false`.
|
|
97
|
+
They never add Claude to runtime inventories, readiness, or default analytics.
|
|
98
|
+
|
|
99
|
+
## Package release surface
|
|
100
|
+
|
|
101
|
+
The npm bundle contains the shared skill and contract data plus every declared
|
|
102
|
+
runtime source:
|
|
103
|
+
|
|
104
|
+
- OpenCode package, plugin, command, and agent files;
|
|
105
|
+
- Codex plugin manifest, plugin hooks, copied-hook fallback, and capability agents;
|
|
106
|
+
- Cursor plugin manifest, IDE hooks, and agent descriptor;
|
|
107
|
+
- GitHub Copilot root/repository manifests and lifecycle hook files.
|
|
108
|
+
|
|
109
|
+
`.claude-plugin/marketplace.json` is retired and must not be packaged.
|
|
110
|
+
|
|
111
|
+
## Validation boundary
|
|
112
|
+
|
|
113
|
+
`agentera check validate lifecycle-adapters` validates:
|
|
158
114
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
against the registry rather than duplicated here as an independent table.
|
|
167
|
-
|
|
168
|
-
App-home classification is not runtime-specific. `scripts/install_root.py` is
|
|
169
|
-
the shared Module for `AGENTERA_HOME`, the normal user data root, managed app,
|
|
170
|
-
out-of-date app, unknown directories, and diagnostic semantics. Package metadata
|
|
171
|
-
registry work stays outside both the RuntimeAdapter registry and this shared
|
|
172
|
-
classification Module.
|
|
173
|
-
|
|
174
|
-
| Surface | Path |
|
|
175
|
-
|---------|------|
|
|
176
|
-
| Shared artifact validator | `hooks/validate_artifact.py` |
|
|
177
|
-
| Claude Code hook registry | `hooks/hooks.json` |
|
|
178
|
-
| OpenCode plugin | `.opencode/plugins/agentera.js` |
|
|
179
|
-
| OpenCode agent descriptors | `.opencode/agents/*.md` |
|
|
180
|
-
| Copilot pre-write hook | `.github/hooks/preToolUse.json` |
|
|
181
|
-
| Codex copied user hook config | `~/.codex/hooks.json` generated from `hooks/codex-hooks.json` with a resolved validator command |
|
|
182
|
-
| Codex plugin hook config | `hooks/codex-plugin-hooks.json` via `.codex-plugin/plugin.json` `hooks` |
|
|
183
|
-
| Codex agent descriptors | `skills/agentera/agents/*.toml` |
|
|
184
|
-
| Cursor hook registry | `.cursor/hooks.json` |
|
|
185
|
-
| Cursor agent descriptors | `.cursor/agents/*.md` |
|
|
186
|
-
| Cursor plugin manifest | `.cursor-plugin/plugin.json` |
|
|
187
|
-
| RuntimeAdapter registry | `references/adapters/runtime-adapter-registry.yaml` |
|
|
188
|
-
| RuntimeAdapter registry loader | `scripts/runtime_adapter_registry.py` |
|
|
189
|
-
| Lifecycle metadata validator | `scripts/validate_lifecycle_adapters.py` |
|
|
115
|
+
- lifecycle authority and exact four-runtime identity parity;
|
|
116
|
+
- all eight categories and every declared runtime surface;
|
|
117
|
+
- package-manifest coverage for all active runtimes;
|
|
118
|
+
- npm-bundle coverage for every lifecycle source and runtime manifest;
|
|
119
|
+
- 3.0.0 version mirrors;
|
|
120
|
+
- runtime-specific hook and documentation claims;
|
|
121
|
+
- absence of retired Claude package manifests.
|