agentera 3.0.0-dev.15 → 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/references/contract.md +10 -3
- 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/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/profile/instructions.js +1 -1
- package/dist/capabilities/profile/instructions.js.map +1 -1
- package/dist/cli/capabilityContext/startup.js +1 -0
- package/dist/cli/capabilityContext/startup.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 +12 -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 +75 -3
- package/dist/cli/commands/schema.js.map +1 -1
- 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/lifecycle.js +71 -3
- package/dist/cli/dispatch/lifecycle.js.map +1 -1
- package/dist/cli/help.js +18 -6
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/startupCompletenessContract.js +1 -1
- package/dist/cli/startupCompletenessContract.js.map +1 -1
- package/dist/eval/evalSkills.js +13 -13
- package/dist/eval/evalSkills.js.map +1 -1
- package/dist/hooks/validateArtifact/runtime.js +4 -4
- package/dist/migrate/v2HandoffManifest.js +4 -0
- package/dist/migrate/v2HandoffManifest.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/upgrade/appContentRefresh.js +8 -1
- package/dist/upgrade/appContentRefresh.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,288 @@
|
|
|
1
|
+
schema_version: agentera.runtimeLifecycleAdapters.v1
|
|
2
|
+
status: active_contract
|
|
3
|
+
decision: 92
|
|
4
|
+
authority: references/adapters/runtime-lifecycle-authority.yaml
|
|
5
|
+
operation_contract: references/adapters/runtime-lifecycle-operation-contract.yaml
|
|
6
|
+
categories:
|
|
7
|
+
- skills
|
|
8
|
+
- plugins
|
|
9
|
+
- hooks
|
|
10
|
+
- agents
|
|
11
|
+
- configuration
|
|
12
|
+
- enablement
|
|
13
|
+
- trust
|
|
14
|
+
- native_actions
|
|
15
|
+
category_contract:
|
|
16
|
+
required_fields:
|
|
17
|
+
- capability
|
|
18
|
+
- evidence
|
|
19
|
+
- remediation
|
|
20
|
+
capabilities:
|
|
21
|
+
- repairable
|
|
22
|
+
- observable
|
|
23
|
+
- action_required
|
|
24
|
+
- unsupported
|
|
25
|
+
- unverified
|
|
26
|
+
- not_applicable
|
|
27
|
+
evidence_states:
|
|
28
|
+
- confirmed
|
|
29
|
+
- absent
|
|
30
|
+
- drifted
|
|
31
|
+
- shadowed
|
|
32
|
+
- denied
|
|
33
|
+
- unknown
|
|
34
|
+
- blocked_unowned
|
|
35
|
+
- unsupported
|
|
36
|
+
- not_applicable
|
|
37
|
+
- action_required
|
|
38
|
+
remediation_kinds:
|
|
39
|
+
- none
|
|
40
|
+
- repair
|
|
41
|
+
- action_required
|
|
42
|
+
- unavailable
|
|
43
|
+
support_floor:
|
|
44
|
+
authority: references/adapters/runtime-lifecycle-authority.yaml#support_floor
|
|
45
|
+
required_category: skills
|
|
46
|
+
required_capability: repairable
|
|
47
|
+
unknown_or_unverified_required_detection_blocks: true
|
|
48
|
+
incomplete_required_diagnosis_blocks: true
|
|
49
|
+
unknown_or_missing_mandatory_evidence_blocks: true
|
|
50
|
+
denied_required_trust_blocks: true
|
|
51
|
+
known_false_presence_install_enable_is_diagnosed_degraded: true
|
|
52
|
+
not_applicable_only_for_unobserved_conditional_surface: true
|
|
53
|
+
native_policy:
|
|
54
|
+
execution: forbidden
|
|
55
|
+
exact_action_required_only: true
|
|
56
|
+
install_update_enable_auth_trust_are_user_owned: true
|
|
57
|
+
path_policy:
|
|
58
|
+
destination_templates_are_declarations: true
|
|
59
|
+
matching_ledger_required_for_existing_resources: true
|
|
60
|
+
equality_or_name_never_establishes_ownership: true
|
|
61
|
+
forbidden_destination_segments:
|
|
62
|
+
- cache
|
|
63
|
+
- caches
|
|
64
|
+
- cacheddata
|
|
65
|
+
- node_modules
|
|
66
|
+
- .npm
|
|
67
|
+
- .pnpm-store
|
|
68
|
+
- marketplace-cache
|
|
69
|
+
known_caveats:
|
|
70
|
+
- Append-only ownership journal recovery accepts only a strict contiguous hash chain, ignores uniquely named non-authoritative publication temporaries, blocks malformed or disconnected final events, and re-observes every resource before retry.
|
|
71
|
+
shared_resources:
|
|
72
|
+
- id: canonical_skill
|
|
73
|
+
category: skills
|
|
74
|
+
kind: symlink
|
|
75
|
+
source: "{source_root}/skills/agentera"
|
|
76
|
+
destination: "{home}/.agents/skills/agentera"
|
|
77
|
+
required: true
|
|
78
|
+
managed_resources:
|
|
79
|
+
- id: opencode.plugin
|
|
80
|
+
runtime_id: opencode
|
|
81
|
+
surface_id: host
|
|
82
|
+
category: plugins
|
|
83
|
+
kind: file
|
|
84
|
+
source: "{source_root}/.opencode/plugins/agentera.js"
|
|
85
|
+
destination: "{opencode_config}/plugins/agentera.js"
|
|
86
|
+
required: false
|
|
87
|
+
- id: opencode.agent
|
|
88
|
+
runtime_id: opencode
|
|
89
|
+
surface_id: host
|
|
90
|
+
category: agents
|
|
91
|
+
kind: file
|
|
92
|
+
source: "{source_root}/.opencode/agents/agentera.md"
|
|
93
|
+
destination: "{opencode_config}/agents/agentera.md"
|
|
94
|
+
required: false
|
|
95
|
+
- id: codex.hooks
|
|
96
|
+
runtime_id: codex
|
|
97
|
+
surface_id: cli
|
|
98
|
+
category: hooks
|
|
99
|
+
kind: file
|
|
100
|
+
source: "{source_root}/hooks/codex-hooks.json"
|
|
101
|
+
destination: "{home}/.codex/hooks.json"
|
|
102
|
+
required: false
|
|
103
|
+
- id: codex.agents
|
|
104
|
+
runtime_id: codex
|
|
105
|
+
surface_id: cli
|
|
106
|
+
category: agents
|
|
107
|
+
kind: directory_files
|
|
108
|
+
source: "{source_root}/skills/agentera/agents"
|
|
109
|
+
destination: "{home}/.codex/agents"
|
|
110
|
+
extension: .toml
|
|
111
|
+
required: false
|
|
112
|
+
- id: cursor.plugin
|
|
113
|
+
runtime_id: cursor
|
|
114
|
+
surface_id: ide
|
|
115
|
+
category: plugins
|
|
116
|
+
kind: file
|
|
117
|
+
source: "{source_root}/.cursor-plugin/plugin.json"
|
|
118
|
+
destination: "{project}/.cursor-plugin/plugin.json"
|
|
119
|
+
required: false
|
|
120
|
+
- id: cursor.hooks
|
|
121
|
+
runtime_id: cursor
|
|
122
|
+
surface_id: ide
|
|
123
|
+
category: hooks
|
|
124
|
+
kind: file
|
|
125
|
+
source: "{source_root}/.cursor/hooks.json"
|
|
126
|
+
destination: "{project}/.cursor/hooks.json"
|
|
127
|
+
required: false
|
|
128
|
+
- id: cursor.agent
|
|
129
|
+
runtime_id: cursor
|
|
130
|
+
surface_id: ide
|
|
131
|
+
category: agents
|
|
132
|
+
kind: file
|
|
133
|
+
source: "{source_root}/.cursor/agents/agentera.md"
|
|
134
|
+
destination: "{project}/.cursor/agents/agentera.md"
|
|
135
|
+
required: false
|
|
136
|
+
adapters:
|
|
137
|
+
- runtime_id: opencode
|
|
138
|
+
binaries:
|
|
139
|
+
host: [opencode]
|
|
140
|
+
resource_refs: [canonical_skill, opencode.plugin, opencode.agent]
|
|
141
|
+
skill_locations:
|
|
142
|
+
- path: "{project}/.opencode/skills/agentera"
|
|
143
|
+
scope: project_runtime
|
|
144
|
+
- path: "{project}/.agents/skills/agentera"
|
|
145
|
+
scope: project_shared
|
|
146
|
+
- path: "{home}/.agents/skills/agentera"
|
|
147
|
+
scope: personal_shared
|
|
148
|
+
canonical: true
|
|
149
|
+
- path: "{opencode_config}/skills/agentera"
|
|
150
|
+
scope: personal_runtime
|
|
151
|
+
categories:
|
|
152
|
+
skills:
|
|
153
|
+
host: { capability: repairable, evidence: filesystem, remediation: shared_engine, required: true }
|
|
154
|
+
plugins:
|
|
155
|
+
host: { capability: repairable, evidence: filesystem, remediation: shared_engine }
|
|
156
|
+
hooks:
|
|
157
|
+
host: { capability: observable, evidence: managed_resource:opencode.plugin, remediation: shared_engine:opencode.plugin }
|
|
158
|
+
agents:
|
|
159
|
+
host: { capability: repairable, evidence: filesystem, remediation: shared_engine }
|
|
160
|
+
configuration:
|
|
161
|
+
host: { capability: not_applicable, evidence: plugin_autodiscovery, remediation: none }
|
|
162
|
+
enablement:
|
|
163
|
+
host: { capability: observable, evidence: managed_resource:opencode.plugin, remediation: shared_engine:opencode.plugin }
|
|
164
|
+
trust:
|
|
165
|
+
host: { capability: unverified, evidence: external_observation, remediation: unavailable }
|
|
166
|
+
native_actions:
|
|
167
|
+
host: { capability: unverified, evidence: no_verified_native_action, remediation: unavailable }
|
|
168
|
+
native_actions: []
|
|
169
|
+
- runtime_id: codex
|
|
170
|
+
binaries:
|
|
171
|
+
cli: [codex]
|
|
172
|
+
resource_refs: [canonical_skill, codex.hooks, codex.agents]
|
|
173
|
+
skill_locations:
|
|
174
|
+
- path: "{project}/.agents/skills/agentera"
|
|
175
|
+
scope: project_shared
|
|
176
|
+
- path: "{home}/.agents/skills/agentera"
|
|
177
|
+
scope: personal_shared
|
|
178
|
+
canonical: true
|
|
179
|
+
categories:
|
|
180
|
+
skills:
|
|
181
|
+
cli: { capability: repairable, evidence: filesystem, remediation: shared_engine, required: true }
|
|
182
|
+
plugins:
|
|
183
|
+
cli: { capability: unverified, evidence: external_observation, remediation: unavailable }
|
|
184
|
+
hooks:
|
|
185
|
+
cli: { capability: repairable, evidence: filesystem, remediation: shared_engine }
|
|
186
|
+
agents:
|
|
187
|
+
cli: { capability: repairable, evidence: filesystem, remediation: shared_engine }
|
|
188
|
+
configuration:
|
|
189
|
+
cli: { capability: observable, evidence: "path:{home}/.codex/config.toml", remediation: action_required }
|
|
190
|
+
enablement:
|
|
191
|
+
cli: { capability: unverified, evidence: external_observation, remediation: unavailable }
|
|
192
|
+
trust:
|
|
193
|
+
cli: { capability: observable, evidence: external_observation, remediation: action_required }
|
|
194
|
+
native_actions:
|
|
195
|
+
cli: { capability: unverified, evidence: no_verified_native_action, remediation: unavailable }
|
|
196
|
+
native_actions: []
|
|
197
|
+
- runtime_id: cursor
|
|
198
|
+
binaries:
|
|
199
|
+
cli: [cursor-agent]
|
|
200
|
+
ide: [cursor]
|
|
201
|
+
resource_refs: [canonical_skill, cursor.plugin, cursor.hooks, cursor.agent]
|
|
202
|
+
skill_locations:
|
|
203
|
+
- path: "{project}/.agents/skills/agentera"
|
|
204
|
+
scope: project_shared
|
|
205
|
+
surfaces: [cli, ide]
|
|
206
|
+
- path: "{project}/.cursor/skills/agentera"
|
|
207
|
+
scope: project_runtime
|
|
208
|
+
surfaces: [cli, ide]
|
|
209
|
+
- path: "{home}/.agents/skills/agentera"
|
|
210
|
+
scope: personal_shared
|
|
211
|
+
surfaces: [cli, ide]
|
|
212
|
+
canonical: true
|
|
213
|
+
- path: "{home}/.cursor/skills/agentera"
|
|
214
|
+
scope: personal_runtime
|
|
215
|
+
surfaces: [cli, ide]
|
|
216
|
+
categories:
|
|
217
|
+
skills:
|
|
218
|
+
cli: { capability: repairable, evidence: filesystem, remediation: shared_engine, required: true }
|
|
219
|
+
ide: { capability: repairable, evidence: filesystem, remediation: shared_engine, required: false }
|
|
220
|
+
plugins:
|
|
221
|
+
cli: { capability: not_applicable, evidence: no_cli_plugin_claim, remediation: none }
|
|
222
|
+
ide: { capability: repairable, evidence: filesystem, remediation: shared_engine }
|
|
223
|
+
hooks:
|
|
224
|
+
cli: { capability: unverified, evidence: no_verified_cli_hook_claim, remediation: unavailable }
|
|
225
|
+
ide: { capability: repairable, evidence: filesystem, remediation: shared_engine }
|
|
226
|
+
agents:
|
|
227
|
+
cli: { capability: unverified, evidence: no_verified_cli_agent_claim, remediation: unavailable }
|
|
228
|
+
ide: { capability: repairable, evidence: filesystem, remediation: shared_engine }
|
|
229
|
+
configuration:
|
|
230
|
+
cli: { capability: not_applicable, evidence: skill_autodiscovery, remediation: none }
|
|
231
|
+
ide: { capability: not_applicable, evidence: plugin_manifest, remediation: none }
|
|
232
|
+
enablement:
|
|
233
|
+
cli: { capability: observable, evidence: canonical_skill, remediation: shared_engine:canonical_skill }
|
|
234
|
+
ide: { capability: unverified, evidence: external_observation, remediation: unavailable }
|
|
235
|
+
trust:
|
|
236
|
+
cli: { capability: unverified, evidence: external_observation, remediation: unavailable }
|
|
237
|
+
ide: { capability: observable, evidence: external_observation, remediation: action_required }
|
|
238
|
+
native_actions:
|
|
239
|
+
cli: { capability: unverified, evidence: no_verified_native_action, remediation: unavailable }
|
|
240
|
+
ide: { capability: unverified, evidence: no_verified_native_action, remediation: unavailable }
|
|
241
|
+
native_actions: []
|
|
242
|
+
- runtime_id: copilot
|
|
243
|
+
binaries:
|
|
244
|
+
cli: [copilot]
|
|
245
|
+
resource_refs: [canonical_skill]
|
|
246
|
+
skill_locations:
|
|
247
|
+
- path: "{project}/.github/skills/agentera"
|
|
248
|
+
scope: project_runtime
|
|
249
|
+
- path: "{project}/.agents/skills/agentera"
|
|
250
|
+
scope: project_shared
|
|
251
|
+
- path: "{home}/.copilot/skills/agentera"
|
|
252
|
+
scope: personal_runtime
|
|
253
|
+
- path: "{home}/.agents/skills/agentera"
|
|
254
|
+
scope: personal_shared
|
|
255
|
+
canonical: true
|
|
256
|
+
categories:
|
|
257
|
+
skills:
|
|
258
|
+
cli: { capability: repairable, evidence: filesystem, remediation: shared_engine, required: true }
|
|
259
|
+
plugins:
|
|
260
|
+
cli: { capability: unverified, evidence: external_observation, remediation: unavailable }
|
|
261
|
+
hooks:
|
|
262
|
+
cli: { capability: unverified, evidence: external_observation, remediation: unavailable }
|
|
263
|
+
agents:
|
|
264
|
+
cli: { capability: unsupported, evidence: no_verified_agent_surface, remediation: unavailable }
|
|
265
|
+
configuration:
|
|
266
|
+
cli: { capability: observable, evidence: env:AGENTERA_HOME, remediation: action_required }
|
|
267
|
+
enablement:
|
|
268
|
+
cli: { capability: observable, evidence: canonical_skill, remediation: shared_engine:canonical_skill }
|
|
269
|
+
trust:
|
|
270
|
+
cli: { capability: unverified, evidence: external_observation, remediation: unavailable }
|
|
271
|
+
native_actions:
|
|
272
|
+
cli: { capability: action_required, evidence: verified_host_actions, remediation: action_required }
|
|
273
|
+
native_actions:
|
|
274
|
+
- id: copilot.skills.list
|
|
275
|
+
surface_id: cli
|
|
276
|
+
action_kind: slash_action
|
|
277
|
+
command: /skills list
|
|
278
|
+
instruction: Run `/skills list` in Copilot CLI to inspect discovered skills.
|
|
279
|
+
- id: copilot.skills.info
|
|
280
|
+
surface_id: cli
|
|
281
|
+
action_kind: slash_action
|
|
282
|
+
command: /skills info agentera
|
|
283
|
+
instruction: Run `/skills info agentera` in Copilot CLI to inspect the Agentera skill.
|
|
284
|
+
- id: copilot.skills.reload
|
|
285
|
+
surface_id: cli
|
|
286
|
+
action_kind: slash_action
|
|
287
|
+
command: /skills reload
|
|
288
|
+
instruction: Run `/skills reload` in Copilot CLI after an approved filesystem repair.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
schema_version: agentera.runtimeLifecycleAuthority.v1
|
|
2
|
+
status: active_authority
|
|
3
|
+
decision: 92
|
|
4
|
+
operation_contract: references/adapters/runtime-lifecycle-operation-contract.yaml
|
|
5
|
+
adapter_contract: references/adapters/runtime-lifecycle-adapters.yaml
|
|
6
|
+
retired_cleanup_contract: references/adapters/runtime-retired-resources.yaml
|
|
7
|
+
canonical_skill:
|
|
8
|
+
path: ~/.agents/skills/agentera
|
|
9
|
+
required_for_support_floor: true
|
|
10
|
+
evidence_contract:
|
|
11
|
+
mandatory_fields:
|
|
12
|
+
- host_present
|
|
13
|
+
- installed
|
|
14
|
+
- enabled
|
|
15
|
+
- trusted
|
|
16
|
+
values:
|
|
17
|
+
- true
|
|
18
|
+
- false
|
|
19
|
+
- unknown
|
|
20
|
+
- denied
|
|
21
|
+
- not_applicable
|
|
22
|
+
trust_policy: Trust is observed only; unknown trust must never be promoted to trusted.
|
|
23
|
+
support_floor:
|
|
24
|
+
requirements:
|
|
25
|
+
- canonical_shared_skill_detected
|
|
26
|
+
- diagnosis_complete
|
|
27
|
+
- mandatory_evidence_resolved
|
|
28
|
+
evidence_rules:
|
|
29
|
+
unknown_or_missing_mandatory_blocks: true
|
|
30
|
+
denied_mandatory_trust_blocks: true
|
|
31
|
+
known_false_diagnoses_degraded:
|
|
32
|
+
- host_present
|
|
33
|
+
- installed
|
|
34
|
+
- enabled
|
|
35
|
+
not_applicable_scope: unobserved_conditional_surface_only
|
|
36
|
+
unmet_blocks_release: true
|
|
37
|
+
active_runtimes:
|
|
38
|
+
- id: opencode
|
|
39
|
+
display_name: OpenCode
|
|
40
|
+
surfaces:
|
|
41
|
+
- id: host
|
|
42
|
+
display_name: OpenCode host
|
|
43
|
+
presence: required
|
|
44
|
+
- id: codex
|
|
45
|
+
display_name: Codex
|
|
46
|
+
surfaces:
|
|
47
|
+
- id: cli
|
|
48
|
+
display_name: Codex CLI
|
|
49
|
+
presence: required
|
|
50
|
+
- id: cursor
|
|
51
|
+
display_name: Cursor
|
|
52
|
+
surfaces:
|
|
53
|
+
- id: cli
|
|
54
|
+
display_name: Cursor Agent CLI
|
|
55
|
+
presence: required
|
|
56
|
+
- id: ide
|
|
57
|
+
display_name: Cursor IDE
|
|
58
|
+
presence: conditional
|
|
59
|
+
- id: copilot
|
|
60
|
+
display_name: GitHub Copilot
|
|
61
|
+
surfaces:
|
|
62
|
+
- id: cli
|
|
63
|
+
display_name: Copilot CLI
|
|
64
|
+
presence: required
|
|
65
|
+
retired_runtime_inputs:
|
|
66
|
+
- id: claude
|
|
67
|
+
purposes:
|
|
68
|
+
- consent_gated_historical_import
|
|
69
|
+
- owned_legacy_resource_cleanup
|
|
70
|
+
migration_aliases:
|
|
71
|
+
cursor-agent:
|
|
72
|
+
runtime_id: cursor
|
|
73
|
+
surface_id: cli
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
schema_version: agentera.lifecycleOperationContract.v1
|
|
2
|
+
status: active_contract
|
|
3
|
+
decision: 92
|
|
4
|
+
scope: runtime_neutral_filesystem_resources
|
|
5
|
+
ownership:
|
|
6
|
+
manifest_schema: agentera.lifecycleOwnershipManifest.v1
|
|
7
|
+
ledger_schema: agentera.lifecycleOwnershipLedger.v1
|
|
8
|
+
owner: agentera
|
|
9
|
+
mutation_rule: A destination declaration is always required. Existing resources additionally require one matching whole-resource ledger record.
|
|
10
|
+
equality_rule: Content equality and resource names never establish ownership.
|
|
11
|
+
collision_rule: Pre-existing resources without matching ledger ownership are never replaced or removed.
|
|
12
|
+
identity_rule: Managed and published pending-create records bind the filesystem device and inode observed at publication.
|
|
13
|
+
removal_rule: Removal requires a matching whole-resource ledger identity and fingerprint, a pinned non-symlink parent, and Linux /proc/self/fd directory-relative access.
|
|
14
|
+
interrupted_create_rule: A pending_create record may be finalized when its recorded identity and expected fingerprint match, or when the durable pre-create record survived and the exclusively declared resource is observed at the exact expected kind and fingerprint after restart.
|
|
15
|
+
journal_rule: Apply publishes fsynced append-only ledger snapshots atomically at final names and accepts only a contiguous sequence-one hash chain with no gaps, forks, duplicate sequences, digest mismatches, or disconnected events.
|
|
16
|
+
journal_statuses:
|
|
17
|
+
absent: No journal directory exists; preview remains zero-write and apply may publish sequence one.
|
|
18
|
+
clean: Every authoritative final event is complete, schema-valid, digest-valid, and connected; mutation may append the next sequence.
|
|
19
|
+
recoverable_terminal_tail: Exactly one syntactically incomplete final event follows the clean prefix with no successor; reads preserve the prefix but every mutation is blocked until the tail is resolved.
|
|
20
|
+
corrupt: Any malformed complete event, middle incomplete event, gap, fork, duplicate sequence, body or filename mismatch, digest mismatch, disconnection, or unsafe entry blocks every mutation.
|
|
21
|
+
recovery_rule: Restart ignores uniquely named non-authoritative publication temporaries, folds only the strict connected final chain, and re-observes each resource before retry; append never continues from a rolled-back prefix or past an unresolved final tail.
|
|
22
|
+
resource_states:
|
|
23
|
+
- exact
|
|
24
|
+
- modified
|
|
25
|
+
- missing
|
|
26
|
+
- legacy
|
|
27
|
+
- symlinked
|
|
28
|
+
- wrong_type
|
|
29
|
+
- partial_managed
|
|
30
|
+
- unowned
|
|
31
|
+
- unsafe_path
|
|
32
|
+
- ambiguous_ownership
|
|
33
|
+
plan_actions:
|
|
34
|
+
- create
|
|
35
|
+
- update
|
|
36
|
+
- remove
|
|
37
|
+
- finalize_ownership
|
|
38
|
+
- noop
|
|
39
|
+
- blocked_unowned
|
|
40
|
+
- action_required
|
|
41
|
+
apply_results:
|
|
42
|
+
- applied
|
|
43
|
+
- noop
|
|
44
|
+
- failed
|
|
45
|
+
- blocked_unowned
|
|
46
|
+
- skipped_dependency
|
|
47
|
+
- action_required
|
|
48
|
+
aggregate_rule: Required results other than applied or noop make the aggregate non_success.
|
|
49
|
+
dependency_rule: Independent operations continue after failure. Dependents skip with their failed dependency IDs.
|
|
50
|
+
retry_rule: Successful work replans to noop; pending and failed work retries from observed filesystem and ledger state.
|
|
51
|
+
preview_policy:
|
|
52
|
+
mode: strictly_read_only
|
|
53
|
+
forbidden:
|
|
54
|
+
- filesystem mutation
|
|
55
|
+
- directory creation
|
|
56
|
+
- locks
|
|
57
|
+
- temporary target files
|
|
58
|
+
- ownership record writes
|
|
59
|
+
- caches
|
|
60
|
+
- telemetry
|
|
61
|
+
- native commands
|
|
62
|
+
- package managers
|
|
63
|
+
- authentication
|
|
64
|
+
- trust changes
|
|
65
|
+
path_safety:
|
|
66
|
+
- Destinations must be absolute and contained by an explicit existing allowed root.
|
|
67
|
+
- Apply pins the allowed root and every parent through Linux /proc/self/fd, then revalidates directory identities at the final publication boundary.
|
|
68
|
+
- Parent symlink traversal, parent identity substitution, link-target escapes, target identity substitution, hard-linked files, wrong types, partial ownership, and ambiguous ownership require action or fail safely.
|
|
69
|
+
publication_policy:
|
|
70
|
+
supported_platform: linux_proc_self_fd
|
|
71
|
+
unsupported_platform_result: action_required
|
|
72
|
+
apply_serialization: lifecycle apply prepares a complete fsynced uniquely named lock directory and atomically renames it into final position; a complete live preparation blocks contenders, and the immutable owner record binds token, PID, Linux boot ID, and /proc process start ticks.
|
|
73
|
+
lock_recovery: Malformed or incomplete final locks fail closed. A complete lock is stale only when boot ID or process start ticks prove that exact owner identity is gone; release verifies the full identity and token before removing the owner record and lock directory.
|
|
74
|
+
journal_publication: Event bytes are fsynced under a unique non-authoritative temporary name, hard-linked atomically to the exclusive final event name, and followed by directory fsync before temporary cleanup.
|
|
75
|
+
create_protocol: directory-relative exclusive no-follow creation with no sibling temporary path
|
|
76
|
+
owned_file_update_protocol: directory-relative no-follow open, ledger and observation identity match, descriptor-local fingerprint check, in-place descriptor write, and post-write path identity check
|
|
77
|
+
destructive_path_mutations: owned_removal_only
|
|
78
|
+
destructive_path_reason: Removal is limited to declared resources whose whole-resource ledger identity and fingerprint still match through a pinned parent; every weaker case fails closed.
|
|
79
|
+
cleanup_rule: Publication creates no sibling temporary entry and never unlinks a colliding or replaced path; approved cleanup may unlink only the validated owned resource.
|
|
80
|
+
crash_boundary: Creates and owned file updates preserve the never-overwrite-unowned invariant but are not promised crash-atomic; a recorded pending identity makes partial Agentera-created files retryable.
|
|
81
|
+
native_policy:
|
|
82
|
+
install_update_auth_trust_operations: forbidden
|
|
83
|
+
trust_is_observed_only: true
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
schema_version: agentera.retiredRuntimeResources.v1
|
|
2
|
+
status: retired_migration_contract
|
|
3
|
+
decision: 92
|
|
4
|
+
authority: references/adapters/runtime-lifecycle-authority.yaml
|
|
5
|
+
operation_contract: references/adapters/runtime-lifecycle-operation-contract.yaml
|
|
6
|
+
policy:
|
|
7
|
+
active_inventory_exposure: forbidden
|
|
8
|
+
preview: strictly_read_only
|
|
9
|
+
apply_requires: explicit_approval
|
|
10
|
+
ownership: matching_whole_resource_legacy_ledger_identity_and_fingerprint
|
|
11
|
+
unsupported_platform_result: action_required
|
|
12
|
+
retired_runtimes:
|
|
13
|
+
- id: claude
|
|
14
|
+
display_name: Claude Code historical migration
|
|
15
|
+
active_runtime: false
|
|
16
|
+
source_product: claude-code
|
|
17
|
+
resources:
|
|
18
|
+
- id: claude.agentera-skill-link
|
|
19
|
+
kind: symlink
|
|
20
|
+
intent: remove
|
|
21
|
+
destination: "{home}/.claude/skills/agentera"
|
|
22
|
+
ledger_status: legacy
|
|
23
|
+
never_touch:
|
|
24
|
+
- "{home}/.claude/projects"
|
|
25
|
+
- "{home}/.claude/statsig"
|
|
26
|
+
- "{home}/.claude/settings.json"
|
|
27
|
+
- "{home}/.claude/settings.local.json"
|
|
28
|
+
- "{home}/.claude.json"
|
|
29
|
+
- "{home}/.claude/cache"
|
|
30
|
+
- "{home}/.claude/caches"
|
|
31
|
+
- "{home}/.claude/conversations"
|
|
32
|
+
- "{home}/.claude/credentials"
|
|
33
|
+
safety_note: Only the declared Agentera skill symlink may be removed, and only when a matching legacy ownership ledger still binds its identity and target fingerprint. Transcript, settings, credential, conversation, stats, cache, and ambiguous paths are never cleanup targets.
|
|
@@ -83,11 +83,11 @@ Status interpretation is intentionally split:
|
|
|
83
83
|
| No matching records | `sparse` / `no_matching_records` | Candidate storage was readable and schema-compatible, but no supported records were extracted. Treat this as sparse coverage evidence. |
|
|
84
84
|
| Successful zero-record window | `ok` / `records_extracted` with `record_count: 0` and `error_count: 0` | Extraction succeeded, but the incremental benchmark window has no records after the previous watermark. Treat this as compatible successful behavior. |
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
`
|
|
88
|
-
and 2 errors; `
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
Known active-runtime caveats are extraction caveats, not CLI behavior evidence:
|
|
87
|
+
`cursor` is degraded by `schema_divergent` with 4836 candidates, 0 records,
|
|
88
|
+
and 2 errors; `copilot` is degraded by `schema_divergent` with 1 candidate,
|
|
89
|
+
0 records, and 1 error; `opencode` currently contributes records; `codex` can
|
|
90
|
+
validly report `ok` with zero records and zero errors for an empty
|
|
91
91
|
incremental window.
|
|
92
92
|
|
|
93
93
|
Runtime-store runs are incremental by default. The first run for a runtime scope
|
|
@@ -15,7 +15,7 @@ boundary:
|
|
|
15
15
|
rule: include records with timestamps strictly after committed_at
|
|
16
16
|
|
|
17
17
|
section_22_compatibility:
|
|
18
|
-
consumes_adapter_version: agentera-
|
|
18
|
+
consumes_adapter_version: agentera-v3-corpus-2
|
|
19
19
|
required_record_families:
|
|
20
20
|
- conversation_turn
|
|
21
21
|
- tool_call
|
|
@@ -39,7 +39,9 @@ benchmark_execution:
|
|
|
39
39
|
live_host_checks: forbidden_by_default
|
|
40
40
|
runtime_path_approval: >-
|
|
41
41
|
Running mage bench:startupState authorizes inspection of the documented
|
|
42
|
-
default runtime stores for codex,
|
|
42
|
+
default active-runtime stores for codex, cursor, opencode, and copilot.
|
|
43
|
+
Claude history is excluded unless the caller separately supplies
|
|
44
|
+
--import-source claude with its concrete local path.
|
|
43
45
|
Custom runtime history sources must be supplied as exact runtime labels and
|
|
44
46
|
concrete filesystem paths. A generic consent flag or runtime label without
|
|
45
47
|
its concrete path is insufficient for custom sources.
|
|
@@ -59,10 +61,10 @@ benchmark_execution:
|
|
|
59
61
|
|
|
60
62
|
runtime_extraction_contract:
|
|
61
63
|
supported_runtime_order:
|
|
62
|
-
- codex
|
|
63
|
-
- claude-code
|
|
64
64
|
- opencode
|
|
65
|
-
-
|
|
65
|
+
- codex
|
|
66
|
+
- cursor
|
|
67
|
+
- copilot
|
|
66
68
|
normalized_record_fields:
|
|
67
69
|
required:
|
|
68
70
|
- source_id
|
|
@@ -70,6 +72,9 @@ runtime_extraction_contract:
|
|
|
70
72
|
- project_id
|
|
71
73
|
- source_kind
|
|
72
74
|
- runtime
|
|
75
|
+
- source_class
|
|
76
|
+
- source_product
|
|
77
|
+
- active_runtime
|
|
73
78
|
- adapter_version
|
|
74
79
|
- data
|
|
75
80
|
optional:
|
|
@@ -94,11 +99,11 @@ runtime_extraction_contract:
|
|
|
94
99
|
- record_count, which may be zero or partial
|
|
95
100
|
- error_count greater than zero
|
|
96
101
|
current_examples:
|
|
97
|
-
- runtime:
|
|
102
|
+
- runtime: cursor
|
|
98
103
|
file_count: 4836
|
|
99
104
|
record_count: 0
|
|
100
105
|
error_count: 2
|
|
101
|
-
- runtime:
|
|
106
|
+
- runtime: copilot
|
|
102
107
|
file_count: 1
|
|
103
108
|
record_count: 0
|
|
104
109
|
error_count: 1
|
|
@@ -127,7 +132,7 @@ runtime_extraction_contract:
|
|
|
127
132
|
- runtime: codex
|
|
128
133
|
record_count: 0
|
|
129
134
|
error_count: 0
|
|
130
|
-
|
|
135
|
+
source_products:
|
|
131
136
|
codex:
|
|
132
137
|
accepted_input_schema_classes:
|
|
133
138
|
- JSONL session files containing session_meta or turn_context records
|
|
@@ -146,6 +151,9 @@ runtime_extraction_contract:
|
|
|
146
151
|
- Do not retain cwd, project_path, store_path, file_path, raw session ids, or generated salted hashes.
|
|
147
152
|
- Retain only canonical runtime labels, canonical artifact labels, bounded counts, and aggregate status fields.
|
|
148
153
|
claude-code:
|
|
154
|
+
source_class: historical_import
|
|
155
|
+
active_runtime: false
|
|
156
|
+
inclusion_rule: explicit --import-source claude only; excluded from default active-runtime metrics
|
|
149
157
|
accepted_input_schema_classes:
|
|
150
158
|
- JSONL project session files with top-level role or type user/assistant events
|
|
151
159
|
- JSONL message objects with nested message.role plus content/text/message content variants
|
|
@@ -180,6 +188,9 @@ runtime_extraction_contract:
|
|
|
180
188
|
- Do not retain SQLite file paths, project paths, transcript text, raw session ids, or generated salted hashes.
|
|
181
189
|
- Retain only canonical runtime labels, canonical artifact labels, bounded counts, and aggregate status fields.
|
|
182
190
|
github-copilot:
|
|
191
|
+
runtime: copilot
|
|
192
|
+
source_class: active_runtime
|
|
193
|
+
active_runtime: true
|
|
183
194
|
accepted_input_schema_classes:
|
|
184
195
|
- SQLite session-store.db with sessions and turns tables
|
|
185
196
|
- session id columns id, session_id, or sessionID
|
|
@@ -65,8 +65,8 @@ canonical_concepts:
|
|
|
65
65
|
- bundled suite
|
|
66
66
|
plugin_shipped_hooks:
|
|
67
67
|
definition: >-
|
|
68
|
-
Hooks that are shipped by runtime plugin package surfaces such as
|
|
69
|
-
OpenCode,
|
|
68
|
+
Hooks that are shipped by active runtime plugin package surfaces such as
|
|
69
|
+
Codex, OpenCode, Cursor, or GitHub plugin metadata.
|
|
70
70
|
allowed_terms:
|
|
71
71
|
- plugin-shipped hooks
|
|
72
72
|
- plugin-bundled hooks
|
|
@@ -33,7 +33,7 @@ normalization_rules:
|
|
|
33
33
|
use: single Agentera agent, capabilities (the product word); "skill" and "plugin" survive only as internal transport (the skills/ directory and plugin.json manifests host editors require)
|
|
34
34
|
avoid: '"Agentera skill" or "plugin" as product words; "twelve-skill suite" or "plugin suite" for the capability set.'
|
|
35
35
|
- rule: Agentera is the agent; the host is the harness (Decision 74).
|
|
36
|
-
use: host runtime, harness, host coding agent (
|
|
36
|
+
use: host runtime, harness, host coding agent (OpenCode, Codex, Cursor, Copilot); the CLI owns routing, memory, capability prose, and the worker-spec contract
|
|
37
37
|
avoid: Calling host coding agents peers or extension hosts of Agentera; implying Agentera is a module loaded into the host.
|
|
38
38
|
- rule: /agentera is the main invocation.
|
|
39
39
|
use: /agentera, $agentera for Codex-specific docs
|