agentera 3.0.0-dev.15 → 3.0.0-dev.17
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 +47 -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 +1087 -0
- package/bundle/DESIGN.md +233 -0
- package/bundle/LICENSE +201 -0
- package/bundle/README.md +141 -0
- package/bundle/UPGRADE.md +202 -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 +32 -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 +114 -174
- package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +288 -0
- package/bundle/references/adapters/runtime-lifecycle-authority.yaml +90 -0
- package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -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/bundle/skills/agentera/schemas/artifacts/plan.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/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 +43 -20
- 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 +85 -4
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/state/plan.js +82 -46
- package/dist/cli/commands/state/plan.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/orientation/attention.js +99 -1
- package/dist/cli/orientation/attention.js.map +1 -1
- package/dist/cli/orientation.js +44 -17
- package/dist/cli/orientation.js.map +1 -1
- package/dist/cli/planArtifacts.js +95 -0
- package/dist/cli/planArtifacts.js.map +1 -0
- package/dist/cli/planEvidence.js +158 -0
- package/dist/cli/planEvidence.js.map +1 -0
- package/dist/cli/prime-blob.js +1 -1
- 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/cli/stateQuery.js +1 -0
- package/dist/cli/stateQuery.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 +26 -17
- package/dist/registries/runtimeAdapterRegistry.js.map +1 -1
- package/dist/release/releaseMetadata.js +1 -1
- package/dist/release/releaseMetadata.js.map +1 -1
- package/dist/runtime/lifecycleAdapterContract.js +458 -0
- package/dist/runtime/lifecycleAdapterContract.js.map +1 -0
- package/dist/runtime/lifecycleAdapters.js +766 -0
- package/dist/runtime/lifecycleAdapters.js.map +1 -0
- package/dist/runtime/lifecycleAuthority.js +493 -0
- package/dist/runtime/lifecycleAuthority.js.map +1 -0
- package/dist/runtime/lifecycleOperationContract.js +113 -0
- package/dist/runtime/lifecycleOperationContract.js.map +1 -0
- package/dist/runtime/lifecycleOperations.js +635 -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 +439 -0
- package/dist/runtime/lifecycleSnapshot.js.map +1 -0
- package/dist/runtime/retiredRuntimeCleanup.js +238 -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/channels.js +6 -8
- package/dist/upgrade/channels.js.map +1 -1
- package/dist/upgrade/compatibility.js +5 -0
- package/dist/upgrade/compatibility.js.map +1 -1
- package/dist/upgrade/doctor.js +18 -13
- package/dist/upgrade/doctor.js.map +1 -1
- package/dist/upgrade/lifecycleUpgrade.js +427 -0
- package/dist/upgrade/lifecycleUpgrade.js.map +1 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
- package/dist/upgrade/projectIntegration.js +148 -69
- package/dist/upgrade/projectIntegration.js.map +1 -1
- package/dist/upgrade/projectIntegrationDecision.js +99 -0
- package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
- package/dist/upgrade/runtimeMigration.js +3 -10
- 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 +164 -7
- 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 +102 -3
- package/dist/validate/lifecycleAdapters.js.map +1 -1
- package/package.json +1 -1
- package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
|
@@ -62,7 +62,8 @@ Each Agentera skill entry file contains YAML frontmatter with `name` and `descri
|
|
|
62
62
|
|
|
63
63
|
**Skill loading**: OpenCode loads skills on-demand via a native `skill` tool. Agents see available skills listed in the tool description and load full content by calling `skill({ name: "agentera" })`. Agentera works unmodified: it is loaded into the agent's context when invoked.
|
|
64
64
|
|
|
65
|
-
**Gap**: None. OpenCode
|
|
65
|
+
**Gap**: None. OpenCode skill discovery supports `.opencode/`, `.claude/`
|
|
66
|
+
compatibility, and `.agents/` paths. Agentera skills install cleanly.
|
|
66
67
|
|
|
67
68
|
### Artifact resolution (Required)
|
|
68
69
|
|
|
@@ -133,8 +134,8 @@ Read PROFILE.md from the runtime-provided profile path (Section 21). In OpenCode
|
|
|
133
134
|
**Concrete mapping for build Step 5 dispatch**:
|
|
134
135
|
|
|
135
136
|
```
|
|
136
|
-
#
|
|
137
|
-
Spawn
|
|
137
|
+
# Runtime-neutral requirement
|
|
138
|
+
Spawn an implementation agent in an isolated worktree
|
|
138
139
|
|
|
139
140
|
# OpenCode Strategy A
|
|
140
141
|
Invoke the Agentera agent (@agentera) with the implementation plan
|
|
@@ -167,7 +168,8 @@ opencode run "Explain closures in JavaScript"
|
|
|
167
168
|
opencode run --format json "Explain closures in JavaScript"
|
|
168
169
|
```
|
|
169
170
|
|
|
170
|
-
The `--format json` flag produces a raw JSON event stream
|
|
171
|
+
The `--format json` flag produces a raw JSON event stream. Each event is a
|
|
172
|
+
separate JSON object representing a message part, tool call, or status update.
|
|
171
173
|
|
|
172
174
|
For long-running sessions, OpenCode's server mode provides an HTTP API with the same structured output:
|
|
173
175
|
|
|
@@ -176,15 +178,8 @@ opencode serve --port 4096
|
|
|
176
178
|
# Then POST to the API with session creation and message sending
|
|
177
179
|
```
|
|
178
180
|
|
|
179
|
-
**Adapter approach**:
|
|
180
|
-
|
|
181
|
-
| Claude Code | OpenCode |
|
|
182
|
-
|-------------|----------|
|
|
183
|
-
| `claude -p "prompt"` | `opencode run "prompt"` |
|
|
184
|
-
| `claude -p --output-format json` | `opencode run --format json "prompt"` |
|
|
185
|
-
| `claude -p --skill build` | `opencode run "prompt"` (skill loaded via discovery) |
|
|
186
|
-
|
|
187
|
-
The agentera eval runner (`scripts/eval_skills.py`) would need an OpenCode dispatch mode that calls `opencode run --format json` instead of `claude -p --output-format json`. The dispatch wrapper:
|
|
181
|
+
**Adapter approach**: The eval runner invokes `opencode run --format json`
|
|
182
|
+
directly and parses OpenCode's event schema. The dispatch wrapper:
|
|
188
183
|
|
|
189
184
|
```python
|
|
190
185
|
def dispatch_opencode(skill_name: str, prompt: str) -> dict:
|
|
@@ -195,7 +190,9 @@ def dispatch_opencode(skill_name: str, prompt: str) -> dict:
|
|
|
195
190
|
return {"output": result.stdout, "exit_code": result.returncode}
|
|
196
191
|
```
|
|
197
192
|
|
|
198
|
-
**Gap**: Minimal. `opencode run --format json` provides structured JSON events
|
|
193
|
+
**Gap**: Minimal. `opencode run --format json` provides structured JSON events.
|
|
194
|
+
The eval runner uses a dedicated OpenCode parser. For smoke tests, text output
|
|
195
|
+
with exit-code checking is also sufficient.
|
|
199
196
|
|
|
200
197
|
### Hook lifecycle (Optional but recommended)
|
|
201
198
|
|
|
@@ -276,9 +273,11 @@ This keeps the plugin thin while matching the packaged Python script contract.
|
|
|
276
273
|
|
|
277
274
|
Profilera mines five canonical record types from host session data. This section maps each record type to OpenCode's data sources.
|
|
278
275
|
|
|
279
|
-
### memory_entry (
|
|
276
|
+
### memory_entry (retired historical-import extension)
|
|
280
277
|
|
|
281
|
-
**Agentera contract**: This record type is
|
|
278
|
+
**Agentera contract**: This retired-source record type is not part of the
|
|
279
|
+
portable active corpus. It may appear only in explicitly consented historical
|
|
280
|
+
imports and remains excluded from default analytics.
|
|
282
281
|
|
|
283
282
|
**OpenCode source**: OpenCode does not have a built-in memory system. The memory_entry extension does not apply.
|
|
284
283
|
|
|
@@ -315,7 +314,7 @@ Profilera mines five canonical record types from host session data. This section
|
|
|
315
314
|
}
|
|
316
315
|
```
|
|
317
316
|
|
|
318
|
-
**Gap**: None. OpenCode
|
|
317
|
+
**Gap**: None. OpenCode supports remote URLs, glob patterns, and explicit config.
|
|
319
318
|
|
|
320
319
|
### history_prompt
|
|
321
320
|
|
|
@@ -336,7 +335,7 @@ The SDK exposes message history with timestamps, project context, and session me
|
|
|
336
335
|
1. Enumerate sessions via `opencode session list --format json`
|
|
337
336
|
2. Export each session via `opencode export [sessionID]`
|
|
338
337
|
3. Filter for user-originated messages from the export JSON
|
|
339
|
-
4. Apply decision-pattern
|
|
338
|
+
4. Apply the shared decision-pattern classifier to label prompts as `"decision"`, `"correction"`, or `"question"`
|
|
340
339
|
5. Produce history_prompt records with session and project metadata
|
|
341
340
|
|
|
342
341
|
```python
|
|
@@ -400,13 +399,13 @@ The SDK approach remains preferable for programmatic integration (e.g., as an Op
|
|
|
400
399
|
|
|
401
400
|
**OpenCode source**: OpenCode projects are standard filesystem directories. Config files are accessible via direct file reads.
|
|
402
401
|
|
|
403
|
-
**Adapter extraction**:
|
|
402
|
+
**Adapter extraction**: Scan the project root for known config types:
|
|
404
403
|
|
|
405
404
|
- `package.json`, `go.mod`, `Cargo.toml`, `pyproject.toml`
|
|
406
405
|
- `.golangci.yml`, `tsconfig.json`, `ruff.toml`
|
|
407
406
|
- `Makefile`, `magefile.go`, `justfile`, `taskfile.yaml`
|
|
408
407
|
|
|
409
|
-
No runtime-specific adaptation needed
|
|
408
|
+
No runtime-specific adaptation is needed; the config scan is runtime-agnostic.
|
|
410
409
|
|
|
411
410
|
```python
|
|
412
411
|
{
|
|
@@ -436,7 +435,7 @@ Summary of which corpus families the OpenCode adapter can produce:
|
|
|
436
435
|
| Crystallized decisions | instruction_document | Yes | AGENTS.md files (global and project), instructions config |
|
|
437
436
|
| Decision history | history_prompt | Yes (CLI) | `opencode session list --format json` enumerates sessions; `opencode export [sessionID]` provides full message JSON for prompt extraction |
|
|
438
437
|
| Conversation exchanges | conversation_turn | Yes (CLI) | `opencode export [sessionID]` provides full session JSON with paired user-assistant turns |
|
|
439
|
-
| Config patterns | project_config_signal | Yes | Direct filesystem scan
|
|
438
|
+
| Config patterns | project_config_signal | Yes | Direct filesystem scan |
|
|
440
439
|
|
|
441
440
|
**Initial port profile mode**: Full. All four source families are available via included OpenCode functionality. Crystallized decisions come from AGENTS.md files and instructions config. Decision history and conversation exchanges come from `opencode export` CLI output. Config patterns come from direct filesystem scan.
|
|
442
441
|
|
|
@@ -511,7 +510,7 @@ OpenCode repair is ownership-gated. Managed slash commands include `agentera_man
|
|
|
511
510
|
| Gap | Impact | Mitigation |
|
|
512
511
|
|-----|--------|------------|
|
|
513
512
|
| Sub-agent dispatch lacks built-in worktree isolation | build/orchestrate run in same working tree | Strategy A (Task tool) for initial port; manual `git worktree` commands for full isolation |
|
|
514
|
-
| `opencode run --format json`
|
|
513
|
+
| `opencode run --format json` uses an OpenCode-specific event schema | Eval runner needs a dedicated parser | Use the OpenCode parser module in eval_skills.py; event stream structure is straightforward |
|
|
515
514
|
| Session history requires JSON event schema mapping | history_prompt and conversation_turn need export parser | `opencode export [sessionID]` provides full session JSON; adapter parses the export output |
|
|
516
515
|
| Python scripts require Python runtime | Hook plugin calls Python via shell | Python is already a prerequisite for agentera scripts |
|
|
517
516
|
|
|
@@ -523,7 +522,7 @@ To verify the adapter is sufficient, check each acceptance criterion from PLAN.m
|
|
|
523
522
|
|
|
524
523
|
1. **Each of the six host capabilities is mapped**: Yes. Skill discovery, artifact resolution, and profile path have direct OpenCode equivalents with no gaps. Sub-agent dispatch maps to the Task tool (with manual git worktree as an alternative). Eval mechanism maps to `opencode run --format json`. Hook lifecycle maps to the plugin event system.
|
|
525
524
|
|
|
526
|
-
2. **Session Corpus Contract is mapped per record type**: Yes. All four portable record types are mapped. instruction_document and project_config_signal have immediate extraction paths. history_prompt and conversation_turn are extractable via `opencode export` CLI output. The
|
|
525
|
+
2. **Session Corpus Contract is mapped per record type**: Yes. All four portable record types are mapped. instruction_document and project_config_signal have immediate extraction paths. history_prompt and conversation_turn are extractable via `opencode export` CLI output. The retired historical-import extension does not apply to OpenCode.
|
|
527
526
|
|
|
528
527
|
3. **A developer can implement OpenCode support without reading skill entry file source**: Yes. This document specifies the adapter mapping, installation steps, extraction logic, and remaining gaps independently.
|
|
529
528
|
|
|
@@ -5,7 +5,7 @@ intent: >
|
|
|
5
5
|
Define the package and release-surface access Interface before introducing an
|
|
6
6
|
executable registry Module. This model records ownership boundaries and the
|
|
7
7
|
validation contract for future PackageManifest records. The executable registry
|
|
8
|
-
at references/adapters/package-registry.yaml and its loader
|
|
8
|
+
at references/adapters/package-registry.yaml and its TypeScript PackageRegistry loader
|
|
9
9
|
now implement this interface; this model remains the authoritative design contract.
|
|
10
10
|
record:
|
|
11
11
|
required_groups:
|
|
@@ -115,7 +115,7 @@ ownership:
|
|
|
115
115
|
explicit future ADR changes persisted authority.
|
|
116
116
|
future_authority_change_requires: explicit ADR
|
|
117
117
|
install_root_delegated:
|
|
118
|
-
owner:
|
|
118
|
+
owner: packages/cli/src/state/installRoot.ts
|
|
119
119
|
forbidden_in_package_manifest:
|
|
120
120
|
- AGENTERA_HOME precedence
|
|
121
121
|
- default app home
|
|
@@ -124,7 +124,7 @@ ownership:
|
|
|
124
124
|
- unmanaged classification
|
|
125
125
|
- app-home diagnostics
|
|
126
126
|
runtime_adapter_delegated:
|
|
127
|
-
owner:
|
|
127
|
+
owner: packages/cli/src/registries/runtimeAdapterRegistry.ts
|
|
128
128
|
forbidden_in_package_manifest:
|
|
129
129
|
- runtime discovery
|
|
130
130
|
- lifecycle events
|
|
@@ -141,10 +141,11 @@ command_safety:
|
|
|
141
141
|
- install-agentera-skill
|
|
142
142
|
approved_runtimes:
|
|
143
143
|
- all
|
|
144
|
-
- claude
|
|
145
144
|
- opencode
|
|
145
|
+
- codex
|
|
146
|
+
- cursor
|
|
147
|
+
- copilot
|
|
146
148
|
approved_runtime_agents:
|
|
147
|
-
- claude-code
|
|
148
149
|
- opencode
|
|
149
150
|
approved_package_tool:
|
|
150
151
|
executable: npx
|
|
@@ -176,9 +177,12 @@ sample_manifest:
|
|
|
176
177
|
- id: registry
|
|
177
178
|
path: registry.json
|
|
178
179
|
selector: skills[0].version
|
|
179
|
-
- id:
|
|
180
|
-
path:
|
|
181
|
-
selector:
|
|
180
|
+
- id: cli-package
|
|
181
|
+
path: packages/cli/package.json
|
|
182
|
+
selector: version
|
|
183
|
+
- id: cli-suite-marker
|
|
184
|
+
path: packages/cli/package.json
|
|
185
|
+
selector: agentera.suiteVersion
|
|
182
186
|
- id: copilot-root
|
|
183
187
|
path: plugin.json
|
|
184
188
|
selector: version
|
|
@@ -188,15 +192,15 @@ sample_manifest:
|
|
|
188
192
|
- id: codex-plugin
|
|
189
193
|
path: .codex-plugin/plugin.json
|
|
190
194
|
selector: version
|
|
191
|
-
- id:
|
|
192
|
-
path: .
|
|
193
|
-
selector:
|
|
194
|
-
- id: claude-marketplace-plugins
|
|
195
|
-
path: .claude-plugin/marketplace.json
|
|
196
|
-
selector: plugins[*].version
|
|
195
|
+
- id: cursor-plugin
|
|
196
|
+
path: .cursor-plugin/plugin.json
|
|
197
|
+
selector: version
|
|
197
198
|
- id: opencode-plugin-marker
|
|
198
199
|
path: .opencode/plugins/agentera.js
|
|
199
200
|
selector: AGENTERA_VERSION
|
|
201
|
+
- id: skill-frontmatter
|
|
202
|
+
path: skills/agentera/SKILL.md
|
|
203
|
+
selector: frontmatter.version
|
|
200
204
|
excluded_runtime_manifests:
|
|
201
205
|
- .opencode/package.json
|
|
202
206
|
runtime_package_manifests:
|
|
@@ -213,28 +217,27 @@ sample_manifest:
|
|
|
213
217
|
path: .codex-plugin/plugin.json
|
|
214
218
|
version_bearing: true
|
|
215
219
|
package_shape: suite-bundle
|
|
216
|
-
- runtime:
|
|
217
|
-
path: .
|
|
220
|
+
- runtime: cursor
|
|
221
|
+
path: .cursor-plugin/plugin.json
|
|
218
222
|
version_bearing: true
|
|
219
223
|
package_shape: suite-bundle
|
|
220
224
|
- runtime: opencode
|
|
221
225
|
path: .opencode/package.json
|
|
222
226
|
version_bearing: false
|
|
223
|
-
package_shape:
|
|
227
|
+
package_shape: npm-loadable-plugin
|
|
224
228
|
shared_paths_policy: validate minimum shared paths separately from full bundle includes
|
|
225
229
|
bundle_surfaces:
|
|
226
230
|
directories:
|
|
227
231
|
- skills
|
|
228
|
-
- scripts
|
|
229
|
-
- hooks
|
|
230
232
|
- references
|
|
231
233
|
- agents
|
|
232
|
-
-
|
|
233
|
-
- .codex-plugin
|
|
234
|
-
- .claude-plugin
|
|
234
|
+
- hooks
|
|
235
235
|
- .github/hooks
|
|
236
|
-
- .
|
|
236
|
+
- .codex-plugin
|
|
237
|
+
- .cursor-plugin
|
|
238
|
+
- .cursor/agents
|
|
237
239
|
- .opencode/commands
|
|
240
|
+
- .opencode/agents
|
|
238
241
|
- .opencode/plugins
|
|
239
242
|
files:
|
|
240
243
|
- README.md
|
|
@@ -242,11 +245,11 @@ sample_manifest:
|
|
|
242
245
|
- CHANGELOG.md
|
|
243
246
|
- DESIGN.md
|
|
244
247
|
- LICENSE
|
|
245
|
-
- pyproject.toml
|
|
246
|
-
- uv.lock
|
|
247
248
|
- registry.json
|
|
248
249
|
- plugin.json
|
|
250
|
+
- .github/plugin/plugin.json
|
|
249
251
|
- .opencode/package.json
|
|
252
|
+
- .cursor/hooks.json
|
|
250
253
|
skip_parts:
|
|
251
254
|
- __pycache__
|
|
252
255
|
- .pytest_cache
|
|
@@ -278,21 +281,6 @@ sample_manifest:
|
|
|
278
281
|
- -g
|
|
279
282
|
- -y
|
|
280
283
|
skipped_without_update_packages_message: legacy skill removal skipped; pass --update-packages to run
|
|
281
|
-
- runtime: claude
|
|
282
|
-
action: install-agentera-skill
|
|
283
|
-
phase: runtime-install
|
|
284
|
-
argv:
|
|
285
|
-
- npx
|
|
286
|
-
- skills
|
|
287
|
-
- add
|
|
288
|
-
- jgabor/agentera
|
|
289
|
-
- -g
|
|
290
|
-
- -a
|
|
291
|
-
- claude-code
|
|
292
|
-
- --skill
|
|
293
|
-
- agentera
|
|
294
|
-
- -y
|
|
295
|
-
skipped_without_update_packages_message: external package update skipped; pass --update-packages to run
|
|
296
284
|
- runtime: opencode
|
|
297
285
|
action: install-agentera-skill
|
|
298
286
|
phase: runtime-install
|
|
@@ -318,17 +306,18 @@ sample_manifest:
|
|
|
318
306
|
docs_targets:
|
|
319
307
|
version_files_source: .agentera/docs.yaml conventions.version_files
|
|
320
308
|
version_files:
|
|
321
|
-
-
|
|
322
|
-
- uv.lock
|
|
309
|
+
- packages/cli/package.json
|
|
323
310
|
- plugin.json
|
|
324
311
|
- .github/plugin/plugin.json
|
|
325
312
|
- .codex-plugin/plugin.json
|
|
326
|
-
- .
|
|
313
|
+
- .cursor-plugin/plugin.json
|
|
327
314
|
- .opencode/plugins/agentera.js
|
|
315
|
+
- skills/agentera/SKILL.md
|
|
328
316
|
- registry.json
|
|
329
317
|
index_targets:
|
|
330
318
|
- references/adapters/package-surface-characterization.md
|
|
331
319
|
- references/adapters/package-manifest-interface-model.yaml
|
|
320
|
+
- references/adapters/package-registry.yaml
|
|
332
321
|
excluded_version_files:
|
|
333
322
|
- .opencode/package.json
|
|
334
323
|
release_policy:
|
|
@@ -17,9 +17,12 @@ records:
|
|
|
17
17
|
- id: registry
|
|
18
18
|
path: registry.json
|
|
19
19
|
selector: skills[0].version
|
|
20
|
-
- id:
|
|
21
|
-
path:
|
|
22
|
-
selector:
|
|
20
|
+
- id: cli-package
|
|
21
|
+
path: packages/cli/package.json
|
|
22
|
+
selector: version
|
|
23
|
+
- id: cli-suite-marker
|
|
24
|
+
path: packages/cli/package.json
|
|
25
|
+
selector: agentera.suiteVersion
|
|
23
26
|
- id: copilot-root
|
|
24
27
|
path: plugin.json
|
|
25
28
|
selector: version
|
|
@@ -29,15 +32,15 @@ records:
|
|
|
29
32
|
- id: codex-plugin
|
|
30
33
|
path: .codex-plugin/plugin.json
|
|
31
34
|
selector: version
|
|
32
|
-
- id:
|
|
33
|
-
path: .
|
|
34
|
-
selector:
|
|
35
|
-
- id: claude-marketplace-plugins
|
|
36
|
-
path: .claude-plugin/marketplace.json
|
|
37
|
-
selector: plugins[*].version
|
|
35
|
+
- id: cursor-plugin
|
|
36
|
+
path: .cursor-plugin/plugin.json
|
|
37
|
+
selector: version
|
|
38
38
|
- id: opencode-plugin-marker
|
|
39
39
|
path: .opencode/plugins/agentera.js
|
|
40
40
|
selector: AGENTERA_VERSION
|
|
41
|
+
- id: skill-frontmatter
|
|
42
|
+
path: skills/agentera/SKILL.md
|
|
43
|
+
selector: frontmatter.version
|
|
41
44
|
excluded_runtime_manifests:
|
|
42
45
|
- .opencode/package.json
|
|
43
46
|
runtime_package_manifests:
|
|
@@ -62,11 +65,6 @@ records:
|
|
|
62
65
|
path: .cursor-plugin/plugin.json
|
|
63
66
|
version_bearing: true
|
|
64
67
|
package_shape: suite-bundle
|
|
65
|
-
- id: claude-marketplace-manifest
|
|
66
|
-
runtime: claude
|
|
67
|
-
path: .claude-plugin/marketplace.json
|
|
68
|
-
version_bearing: true
|
|
69
|
-
package_shape: suite-bundle
|
|
70
68
|
- id: opencode-package-manifest
|
|
71
69
|
runtime: opencode
|
|
72
70
|
path: .opencode/package.json
|
|
@@ -76,9 +74,6 @@ records:
|
|
|
76
74
|
- id: skills
|
|
77
75
|
path: skills
|
|
78
76
|
kind: dir
|
|
79
|
-
- id: scripts
|
|
80
|
-
path: scripts
|
|
81
|
-
kind: dir
|
|
82
77
|
- id: hooks
|
|
83
78
|
path: hooks
|
|
84
79
|
kind: dir
|
|
@@ -99,28 +94,20 @@ records:
|
|
|
99
94
|
directories:
|
|
100
95
|
- id: skills
|
|
101
96
|
path: skills
|
|
102
|
-
- id: scripts
|
|
103
|
-
path: scripts
|
|
104
|
-
- id: hooks
|
|
105
|
-
path: hooks
|
|
106
97
|
- id: references
|
|
107
98
|
path: references
|
|
108
99
|
- id: agents
|
|
109
100
|
path: agents
|
|
110
|
-
- id:
|
|
111
|
-
path:
|
|
101
|
+
- id: hooks
|
|
102
|
+
path: hooks
|
|
103
|
+
- id: github-hooks
|
|
104
|
+
path: .github/hooks
|
|
112
105
|
- id: codex-plugin
|
|
113
106
|
path: .codex-plugin
|
|
114
107
|
- id: cursor-plugin
|
|
115
108
|
path: .cursor-plugin
|
|
116
109
|
- id: cursor-agents
|
|
117
110
|
path: .cursor/agents
|
|
118
|
-
- id: claude-plugin
|
|
119
|
-
path: .claude-plugin
|
|
120
|
-
- id: github-hooks
|
|
121
|
-
path: .github/hooks
|
|
122
|
-
- id: github-plugin
|
|
123
|
-
path: .github/plugin
|
|
124
111
|
- id: opencode-commands
|
|
125
112
|
path: .opencode/commands
|
|
126
113
|
- id: opencode-agents
|
|
@@ -138,14 +125,12 @@ records:
|
|
|
138
125
|
path: DESIGN.md
|
|
139
126
|
- id: license
|
|
140
127
|
path: LICENSE
|
|
141
|
-
- id: python-project
|
|
142
|
-
path: pyproject.toml
|
|
143
|
-
- id: python-lock
|
|
144
|
-
path: uv.lock
|
|
145
128
|
- id: registry
|
|
146
129
|
path: registry.json
|
|
147
130
|
- id: copilot-root-manifest
|
|
148
131
|
path: plugin.json
|
|
132
|
+
- id: copilot-repository-manifest
|
|
133
|
+
path: .github/plugin/plugin.json
|
|
149
134
|
- id: opencode-package-manifest
|
|
150
135
|
path: .opencode/package.json
|
|
151
136
|
- id: cursor-hooks
|
|
@@ -182,22 +167,6 @@ records:
|
|
|
182
167
|
- -g
|
|
183
168
|
- -y
|
|
184
169
|
skipped_without_update_packages_message: legacy skill removal skipped; pass --update-packages to run
|
|
185
|
-
- id: install-agentera-skill-claude
|
|
186
|
-
runtime: claude
|
|
187
|
-
action: install-agentera-skill
|
|
188
|
-
phase: runtime-install
|
|
189
|
-
argv:
|
|
190
|
-
- npx
|
|
191
|
-
- skills
|
|
192
|
-
- add
|
|
193
|
-
- jgabor/agentera
|
|
194
|
-
- -g
|
|
195
|
-
- -a
|
|
196
|
-
- claude-code
|
|
197
|
-
- --skill
|
|
198
|
-
- agentera
|
|
199
|
-
- -y
|
|
200
|
-
skipped_without_update_packages_message: external package update skipped; pass --update-packages to run
|
|
201
170
|
- id: install-agentera-skill-opencode
|
|
202
171
|
runtime: opencode
|
|
203
172
|
action: install-agentera-skill
|
|
@@ -224,13 +193,11 @@ records:
|
|
|
224
193
|
docs_targets:
|
|
225
194
|
version_files_source: .agentera/docs.yaml conventions.version_files
|
|
226
195
|
version_files:
|
|
227
|
-
-
|
|
228
|
-
- uv.lock
|
|
196
|
+
- packages/cli/package.json
|
|
229
197
|
- plugin.json
|
|
230
198
|
- .github/plugin/plugin.json
|
|
231
199
|
- .codex-plugin/plugin.json
|
|
232
200
|
- .cursor-plugin/plugin.json
|
|
233
|
-
- .claude-plugin/marketplace.json
|
|
234
201
|
- .opencode/plugins/agentera.js
|
|
235
202
|
- skills/agentera/SKILL.md
|
|
236
203
|
- registry.json
|
|
@@ -1,47 +1,61 @@
|
|
|
1
|
-
# Package
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## Version
|
|
8
|
-
|
|
9
|
-
`registry.json` is the persisted suite
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
| Surface |
|
|
14
|
-
| --- | --- |
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
|
|
|
18
|
-
| `.
|
|
19
|
-
| `.
|
|
20
|
-
| `.
|
|
21
|
-
|
|
|
22
|
-
|
|
23
|
-
`.opencode/package.json` is
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
# Package surface characterization
|
|
2
|
+
|
|
3
|
+
Current Agentera 3.0 package behavior is owned by
|
|
4
|
+
`references/adapters/package-registry.yaml` and the TypeScript
|
|
5
|
+
`PackageRegistry` loader.
|
|
6
|
+
|
|
7
|
+
## Version matrix
|
|
8
|
+
|
|
9
|
+
`registry.json` `skills[0].version` is the persisted suite authority. Tracked
|
|
10
|
+
suite mirrors must match it exactly. The npm package `version` may carry a
|
|
11
|
+
development pre-release suffix, but its `X.Y.Z` core must match the suite:
|
|
12
|
+
|
|
13
|
+
| Surface | Selector |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| `packages/cli/package.json` | `version` (development pre-release) and `agentera.suiteVersion` (suite) |
|
|
16
|
+
| `plugin.json` | `version` |
|
|
17
|
+
| `.github/plugin/plugin.json` | `version` |
|
|
18
|
+
| `.codex-plugin/plugin.json` | `version` |
|
|
19
|
+
| `.cursor-plugin/plugin.json` | `version` |
|
|
20
|
+
| `.opencode/plugins/agentera.js` | `AGENTERA_VERSION` |
|
|
21
|
+
| `skills/agentera/SKILL.md` | frontmatter `version` |
|
|
22
|
+
|
|
23
|
+
`.opencode/package.json` is a runtime package manifest but intentionally has no
|
|
24
|
+
suite-version field.
|
|
25
|
+
|
|
26
|
+
## Active runtime manifests
|
|
27
|
+
|
|
28
|
+
The runtime manifest set covers exactly OpenCode, Codex, Cursor, and GitHub
|
|
29
|
+
Copilot. Claude has no package or marketplace manifest.
|
|
30
|
+
|
|
31
|
+
| Runtime | Manifest sources |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| OpenCode | `.opencode/package.json` |
|
|
34
|
+
| Codex | `.codex-plugin/plugin.json` |
|
|
35
|
+
| Cursor | `.cursor-plugin/plugin.json` |
|
|
36
|
+
| GitHub Copilot | `plugin.json`, `.github/plugin/plugin.json` |
|
|
37
|
+
|
|
38
|
+
## npm bundle
|
|
39
|
+
|
|
40
|
+
The self-contained npm package ships `dist/` plus `bundle/`. Bundle data
|
|
41
|
+
includes the shared skill, contracts, references, release docs, and every
|
|
42
|
+
runtime lifecycle/package source declared by the registry:
|
|
43
|
+
|
|
44
|
+
- `.opencode/commands`, `.opencode/agents`, `.opencode/plugins`, and package manifest;
|
|
45
|
+
- `.codex-plugin` and both Codex hook sources under `hooks/`;
|
|
46
|
+
- `.cursor-plugin`, `.cursor/hooks.json`, and `.cursor/agents`;
|
|
47
|
+
- Copilot root/repository manifests and `.github/hooks`;
|
|
48
|
+
- `skills`, `references`, `registry.json`, README, upgrade guide, changelog,
|
|
49
|
+
design, and license.
|
|
50
|
+
|
|
51
|
+
Packaging tests inspect `npm pack --dry-run --json --ignore-scripts` and fail if
|
|
52
|
+
any declared runtime source disappears. The retired Claude manifest is also a
|
|
53
|
+
negative assertion.
|
|
54
|
+
|
|
55
|
+
## Package-manager boundary
|
|
56
|
+
|
|
57
|
+
Lifecycle upgrade does not execute runtime-native package managers. Legacy
|
|
58
|
+
portable-skill cleanup and the OpenCode portable-skill install specification
|
|
59
|
+
remain argv-only package-registry records behind their existing update and
|
|
60
|
+
approval gates. Native installation, enablement, authentication, and trust are
|
|
61
|
+
user-owned actions.
|