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.
Files changed (179) hide show
  1. package/README.md +47 -22
  2. package/bundle/.codex-plugin/plugin.json +92 -0
  3. package/bundle/.cursor/agents/agentera.md +7 -0
  4. package/bundle/.cursor/hooks.json +32 -0
  5. package/bundle/.cursor-plugin/plugin.json +34 -0
  6. package/bundle/.github/hooks/postToolUse.json +9 -0
  7. package/bundle/.github/hooks/preToolUse.json +8 -0
  8. package/bundle/.github/hooks/sessionEnd.json +8 -0
  9. package/bundle/.github/hooks/sessionStart.json +8 -0
  10. package/bundle/.github/plugin/plugin.json +7 -0
  11. package/bundle/.opencode/agents/agentera.md +12 -0
  12. package/bundle/.opencode/commands/agentera.md +5 -0
  13. package/bundle/.opencode/package.json +31 -0
  14. package/bundle/.opencode/plugins/agentera.js +820 -0
  15. package/bundle/CHANGELOG.md +1087 -0
  16. package/bundle/DESIGN.md +233 -0
  17. package/bundle/LICENSE +201 -0
  18. package/bundle/README.md +141 -0
  19. package/bundle/UPGRADE.md +202 -0
  20. package/bundle/agents/openai.yaml +87 -0
  21. package/bundle/extract-corpus-parity.json +2 -4
  22. package/bundle/hooks/codex-hooks.json +31 -0
  23. package/bundle/hooks/codex-plugin-hooks.json +31 -0
  24. package/bundle/plugin.json +13 -0
  25. package/bundle/references/adapters/cursor.md +50 -40
  26. package/bundle/references/adapters/opencode.md +22 -23
  27. package/bundle/references/adapters/package-manifest-interface-model.yaml +32 -43
  28. package/bundle/references/adapters/package-registry.yaml +19 -52
  29. package/bundle/references/adapters/package-surface-characterization.md +61 -47
  30. package/bundle/references/adapters/runtime-adapter-characterization.md +44 -79
  31. package/bundle/references/adapters/runtime-adapter-registry.yaml +7 -169
  32. package/bundle/references/adapters/runtime-feature-parity.md +114 -174
  33. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +288 -0
  34. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +90 -0
  35. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  36. package/bundle/references/adapters/runtime-retired-resources.yaml +33 -0
  37. package/bundle/references/analysis/benchmark.md +5 -5
  38. package/bundle/references/analysis/startup-measurement-contract.yaml +19 -8
  39. package/bundle/references/cli/bundle-skill-vocabulary.yaml +2 -2
  40. package/bundle/references/cli/vocabulary-index.yaml +1 -1
  41. package/bundle/references/cli/vocabulary.md +7 -7
  42. package/bundle/skills/agentera/references/contract.md +10 -3
  43. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +1 -1
  44. package/dist/analytics/extractCorpus/cli.js +19 -5
  45. package/dist/analytics/extractCorpus/cli.js.map +1 -1
  46. package/dist/analytics/extractCorpus/copilotSessions.js +6 -3
  47. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -1
  48. package/dist/analytics/extractCorpus/core.js +40 -11
  49. package/dist/analytics/extractCorpus/core.js.map +1 -1
  50. package/dist/analytics/extractCorpus/corpus.js +39 -16
  51. package/dist/analytics/extractCorpus/corpus.js.map +1 -1
  52. package/dist/analytics/extractCorpus/coverageAudit.js +44 -44
  53. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -1
  54. package/dist/analytics/extractCorpus/cursorSessions.js +6 -3
  55. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -1
  56. package/dist/analytics/extractCorpus/extractCorpusParity.js +2 -2
  57. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -1
  58. package/dist/analytics/extractCorpus/filesystemSources.js +1 -4
  59. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -1
  60. package/dist/analytics/extractCorpus/jsonlSessions.js +24 -4
  61. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -1
  62. package/dist/analytics/usageStats.js +51 -7
  63. package/dist/analytics/usageStats.js.map +1 -1
  64. package/dist/bin/agentera.js +3 -1
  65. package/dist/bin/agentera.js.map +1 -1
  66. package/dist/capabilities/discuss/instructions.js +1 -1
  67. package/dist/capabilities/discuss/instructions.js.map +1 -1
  68. package/dist/capabilities/orchestrate/instructions.js +1 -1
  69. package/dist/capabilities/orchestrate/instructions.js.map +1 -1
  70. package/dist/capabilities/profile/instructions.js +1 -1
  71. package/dist/capabilities/profile/instructions.js.map +1 -1
  72. package/dist/cli/capabilityContext/startup.js +1 -0
  73. package/dist/cli/capabilityContext/startup.js.map +1 -1
  74. package/dist/cli/commands/doctor.js +66 -4
  75. package/dist/cli/commands/doctor.js.map +1 -1
  76. package/dist/cli/commands/prime/collectOrientationState.js +43 -20
  77. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  78. package/dist/cli/commands/prime/orientationOutput.js +12 -1
  79. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  80. package/dist/cli/commands/report.js +19 -4
  81. package/dist/cli/commands/report.js.map +1 -1
  82. package/dist/cli/commands/schema.js +85 -4
  83. package/dist/cli/commands/schema.js.map +1 -1
  84. package/dist/cli/commands/state/plan.js +82 -46
  85. package/dist/cli/commands/state/plan.js.map +1 -1
  86. package/dist/cli/commands/upgrade.js +18 -2
  87. package/dist/cli/commands/upgrade.js.map +1 -1
  88. package/dist/cli/commands/verify.js +6 -6
  89. package/dist/cli/commands/verify.js.map +1 -1
  90. package/dist/cli/dispatch/lifecycle.js +71 -3
  91. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  92. package/dist/cli/help.js +18 -6
  93. package/dist/cli/help.js.map +1 -1
  94. package/dist/cli/orientation/attention.js +99 -1
  95. package/dist/cli/orientation/attention.js.map +1 -1
  96. package/dist/cli/orientation.js +44 -17
  97. package/dist/cli/orientation.js.map +1 -1
  98. package/dist/cli/planArtifacts.js +95 -0
  99. package/dist/cli/planArtifacts.js.map +1 -0
  100. package/dist/cli/planEvidence.js +158 -0
  101. package/dist/cli/planEvidence.js.map +1 -0
  102. package/dist/cli/prime-blob.js +1 -1
  103. package/dist/cli/prime-blob.js.map +1 -1
  104. package/dist/cli/startupCompletenessContract.js +1 -1
  105. package/dist/cli/startupCompletenessContract.js.map +1 -1
  106. package/dist/cli/stateQuery.js +1 -0
  107. package/dist/cli/stateQuery.js.map +1 -1
  108. package/dist/eval/evalSkills.js +13 -13
  109. package/dist/eval/evalSkills.js.map +1 -1
  110. package/dist/hooks/validateArtifact/runtime.js +4 -4
  111. package/dist/migrate/v2HandoffManifest.js +4 -0
  112. package/dist/migrate/v2HandoffManifest.js.map +1 -1
  113. package/dist/registries/packageRegistry.js +36 -3
  114. package/dist/registries/packageRegistry.js.map +1 -1
  115. package/dist/registries/runtimeAdapterRegistry.js +26 -17
  116. package/dist/registries/runtimeAdapterRegistry.js.map +1 -1
  117. package/dist/release/releaseMetadata.js +1 -1
  118. package/dist/release/releaseMetadata.js.map +1 -1
  119. package/dist/runtime/lifecycleAdapterContract.js +458 -0
  120. package/dist/runtime/lifecycleAdapterContract.js.map +1 -0
  121. package/dist/runtime/lifecycleAdapters.js +766 -0
  122. package/dist/runtime/lifecycleAdapters.js.map +1 -0
  123. package/dist/runtime/lifecycleAuthority.js +493 -0
  124. package/dist/runtime/lifecycleAuthority.js.map +1 -0
  125. package/dist/runtime/lifecycleOperationContract.js +113 -0
  126. package/dist/runtime/lifecycleOperationContract.js.map +1 -0
  127. package/dist/runtime/lifecycleOperations.js +635 -0
  128. package/dist/runtime/lifecycleOperations.js.map +1 -0
  129. package/dist/runtime/lifecycleOwnershipJournal.js +623 -0
  130. package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -0
  131. package/dist/runtime/lifecyclePublication.js +395 -0
  132. package/dist/runtime/lifecyclePublication.js.map +1 -0
  133. package/dist/runtime/lifecycleSnapshot.js +439 -0
  134. package/dist/runtime/lifecycleSnapshot.js.map +1 -0
  135. package/dist/runtime/retiredRuntimeCleanup.js +238 -0
  136. package/dist/runtime/retiredRuntimeCleanup.js.map +1 -0
  137. package/dist/setup/codex/installRoot.js +1 -1
  138. package/dist/setup/codex/installRoot.js.map +1 -1
  139. package/dist/setup/copilot.js +1 -1
  140. package/dist/setup/copilot.js.map +1 -1
  141. package/dist/setup/cursor.js +1 -1
  142. package/dist/setup/cursor.js.map +1 -1
  143. package/dist/setup/doctor/core.js +3 -3
  144. package/dist/setup/doctor/core.js.map +1 -1
  145. package/dist/setup/doctor/diagnostics.js +0 -39
  146. package/dist/setup/doctor/diagnostics.js.map +1 -1
  147. package/dist/setup/smokeChecks.js +1 -3
  148. package/dist/setup/smokeChecks.js.map +1 -1
  149. package/dist/upgrade/appContentRefresh.js +8 -1
  150. package/dist/upgrade/appContentRefresh.js.map +1 -1
  151. package/dist/upgrade/channels.js +6 -8
  152. package/dist/upgrade/channels.js.map +1 -1
  153. package/dist/upgrade/compatibility.js +5 -0
  154. package/dist/upgrade/compatibility.js.map +1 -1
  155. package/dist/upgrade/doctor.js +18 -13
  156. package/dist/upgrade/doctor.js.map +1 -1
  157. package/dist/upgrade/lifecycleUpgrade.js +427 -0
  158. package/dist/upgrade/lifecycleUpgrade.js.map +1 -0
  159. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  160. package/dist/upgrade/projectIntegration.js +148 -69
  161. package/dist/upgrade/projectIntegration.js.map +1 -1
  162. package/dist/upgrade/projectIntegrationDecision.js +99 -0
  163. package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
  164. package/dist/upgrade/runtimeMigration.js +3 -10
  165. package/dist/upgrade/runtimeMigration.js.map +1 -1
  166. package/dist/upgrade/upgradeCommands.js +8 -0
  167. package/dist/upgrade/upgradeCommands.js.map +1 -1
  168. package/dist/upgrade/upgradeOrchestrator.js +164 -7
  169. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  170. package/dist/validate/appHomeContract.js +1 -1
  171. package/dist/validate/appHomeContract.js.map +1 -1
  172. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +2 -9
  173. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +1 -1
  174. package/dist/validate/lifecycleAdapters/shared.js +1 -1
  175. package/dist/validate/lifecycleAdapters/shared.js.map +1 -1
  176. package/dist/validate/lifecycleAdapters.js +102 -3
  177. package/dist/validate/lifecycleAdapters.js.map +1 -1
  178. package/package.json +1 -1
  179. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
@@ -0,0 +1,90 @@
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
+ projection_contract:
11
+ schema_version: agentera.runtimeLifecycleProjection.v1
12
+ snapshot_identity: deterministic_sha256
13
+ applicability:
14
+ - required
15
+ - conditional
16
+ - not_applicable
17
+ action_classes:
18
+ - repairable_owned
19
+ - manual_verification
20
+ - unobservable_gap
21
+ command_eligibility:
22
+ - preview
23
+ - apply
24
+ - manual
25
+ - diagnostic
26
+ shared_resource_rule: selected_and_required_by_at_least_one_selected_runtime
27
+ evidence_contract:
28
+ mandatory_fields:
29
+ - host_present
30
+ - installed
31
+ - enabled
32
+ - trusted
33
+ values:
34
+ - true
35
+ - false
36
+ - unknown
37
+ - denied
38
+ - not_applicable
39
+ trust_policy: Trust is observed only; unknown trust must never be promoted to trusted.
40
+ support_floor:
41
+ requirements:
42
+ - canonical_shared_skill_detected
43
+ - diagnosis_complete
44
+ - mandatory_evidence_resolved
45
+ evidence_rules:
46
+ unknown_or_missing_mandatory_blocks: true
47
+ denied_mandatory_trust_blocks: true
48
+ known_false_diagnoses_degraded:
49
+ - host_present
50
+ - installed
51
+ - enabled
52
+ not_applicable_scope: unobserved_conditional_surface_only
53
+ unmet_blocks_release: true
54
+ active_runtimes:
55
+ - id: opencode
56
+ display_name: OpenCode
57
+ surfaces:
58
+ - id: host
59
+ display_name: OpenCode host
60
+ presence: required
61
+ - id: codex
62
+ display_name: Codex
63
+ surfaces:
64
+ - id: cli
65
+ display_name: Codex CLI
66
+ presence: required
67
+ - id: cursor
68
+ display_name: Cursor
69
+ surfaces:
70
+ - id: cli
71
+ display_name: Cursor Agent CLI
72
+ presence: required
73
+ - id: ide
74
+ display_name: Cursor IDE
75
+ presence: conditional
76
+ - id: copilot
77
+ display_name: GitHub Copilot
78
+ surfaces:
79
+ - id: cli
80
+ display_name: Copilot CLI
81
+ presence: required
82
+ retired_runtime_inputs:
83
+ - id: claude
84
+ purposes:
85
+ - consent_gated_historical_import
86
+ - owned_legacy_resource_cleanup
87
+ migration_aliases:
88
+ cursor-agent:
89
+ runtime_id: cursor
90
+ surface_id: cli
@@ -0,0 +1,84 @@
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
+ manual_review_guidance: The destination is not ledger-owned; review the collision manually. Agentera will not adopt it by name or equality.
15
+ 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.
16
+ 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.
17
+ journal_statuses:
18
+ absent: No journal directory exists; preview remains zero-write and apply may publish sequence one.
19
+ clean: Every authoritative final event is complete, schema-valid, digest-valid, and connected; mutation may append the next sequence.
20
+ 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.
21
+ 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.
22
+ 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.
23
+ resource_states:
24
+ - exact
25
+ - modified
26
+ - missing
27
+ - legacy
28
+ - symlinked
29
+ - wrong_type
30
+ - partial_managed
31
+ - unowned
32
+ - unsafe_path
33
+ - ambiguous_ownership
34
+ plan_actions:
35
+ - create
36
+ - update
37
+ - remove
38
+ - finalize_ownership
39
+ - noop
40
+ - blocked_unowned
41
+ - action_required
42
+ apply_results:
43
+ - applied
44
+ - noop
45
+ - failed
46
+ - blocked_unowned
47
+ - skipped_dependency
48
+ - action_required
49
+ aggregate_rule: Required results other than applied or noop make the aggregate non_success.
50
+ dependency_rule: Independent operations continue after failure. Dependents skip with their failed dependency IDs.
51
+ retry_rule: Successful work replans to noop; pending and failed work retries from observed filesystem and ledger state.
52
+ preview_policy:
53
+ mode: strictly_read_only
54
+ forbidden:
55
+ - filesystem mutation
56
+ - directory creation
57
+ - locks
58
+ - temporary target files
59
+ - ownership record writes
60
+ - caches
61
+ - telemetry
62
+ - native commands
63
+ - package managers
64
+ - authentication
65
+ - trust changes
66
+ path_safety:
67
+ - Destinations must be absolute and contained by an explicit existing allowed root.
68
+ - Apply pins the allowed root and every parent through Linux /proc/self/fd, then revalidates directory identities at the final publication boundary.
69
+ - 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.
70
+ publication_policy:
71
+ supported_platform: linux_proc_self_fd
72
+ unsupported_platform_result: action_required
73
+ 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.
74
+ 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.
75
+ 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.
76
+ create_protocol: directory-relative exclusive no-follow creation with no sibling temporary path
77
+ 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
78
+ destructive_path_mutations: owned_removal_only
79
+ 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.
80
+ 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.
81
+ 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.
82
+ native_policy:
83
+ install_update_auth_trust_operations: forbidden
84
+ 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
- Current known runtime caveats are extraction caveats, not CLI behavior evidence:
87
- `claude-code` is degraded by `schema_divergent` with 4836 candidates, 0 records,
88
- and 2 errors; `github-copilot` is degraded by `schema_divergent` with 1
89
- candidate, 0 records, and 1 error; `opencode` currently contributes records;
90
- `codex` can validly report `ok` with zero records and zero errors for an empty
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-v2-corpus-1
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, claude-code, opencode, and github-copilot.
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
- - github-copilot
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: claude-code
102
+ - runtime: cursor
98
103
  file_count: 4836
99
104
  record_count: 0
100
105
  error_count: 2
101
- - runtime: github-copilot
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
- supported_runtimes:
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 Codex,
69
- OpenCode, Claude, or GitHub plugin metadata.
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 (Claude, Cursor, Codex, Copilot, OpenCode); the CLI owns routing, memory, capability prose, and the worker-spec contract
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
@@ -51,9 +51,9 @@ examples. Diagnostics should state object, state, cause, and fix.
51
51
 
52
52
  | Term | Definition | Common sources |
53
53
  | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
54
- | Agentera | The agent. One persistent identity that thinks through every step and keeps working when you walk away — the colleague, not the team. The CLI is the brain and spine: it owns routing, memory, capability prose, and the worker-spec contract. Host coding agents (Claude, Cursor, Codex, Copilot, OpenCode) are harnesses that provide the model and tool runtime; Agentera provides the identity, memory, discipline, and routing. Identity is per-project: same personality, same capabilities, different memory, no bleed. Headline: one agent, one CLI, many capabilities. | `README.md`, `.agentera/vision.yaml`, `.agentera/decisions.yaml` (D74), `skills/agentera/SKILL.md` |
55
- | Host runtime (harness) | A host coding agent — Claude, Cursor, Codex, Copilot, or OpenCode — that provides the model, the tool runtime, and the spawn capacity. Agentera is the agent; the host is the harness. The host learns one contract: the JSON the CLI returns from `agentera prime`. Editor runtime installs are transport (the `skills/` directory, `plugin.json`), not an extension surface. | `.agentera/vision.yaml`, `.agentera/decisions.yaml` (D74), `skills/agentera/SKILL.md` |
56
- | Product surface | Where the same fixed Agentera workflow ships: `@agentera/cli` (the agent runtime and narrow waist — owns routing, memory, capability prose, and the worker-spec contract), `@agentera/mobile` (primary app, a client of the CLI), `@agentera/web` (site and docs), and host runtimes (Claude, Cursor, Codex, Copilot, OpenCode). Host runtimes are harnesses — clients of the CLI, not extension hosts or peers. | `README.md`, `AGENTS.md`, `packages/*/README.md`, `.agentera/decisions.yaml` (D74) |
54
+ | Agentera | The agent. One persistent identity that thinks through every step and keeps working when you walk away — the colleague, not the team. The CLI is the brain and spine: it owns routing, memory, capability prose, and the worker-spec contract. Active host coding agents (OpenCode, Codex, Cursor, Copilot) are harnesses that provide the model and tool runtime; Agentera provides the identity, memory, discipline, and routing. Identity is per-project: same personality, same capabilities, different memory, no bleed. Headline: one agent, one CLI, many capabilities. | `README.md`, `.agentera/vision.yaml`, `.agentera/decisions.yaml` (D74), `skills/agentera/SKILL.md` |
55
+ | Host runtime (harness) | An active host coding agent — OpenCode, Codex, Cursor, or Copilot — that provides the model, the tool runtime, and the spawn capacity. Agentera is the agent; the host is the harness. The host learns one contract: the JSON the CLI returns from `agentera prime`. Editor runtime installs are transport (the `skills/` directory, `plugin.json`), not an extension surface. | `.agentera/vision.yaml`, `.agentera/decisions.yaml` (D74), `skills/agentera/SKILL.md` |
56
+ | Product surface | Where the same fixed Agentera workflow ships: `@agentera/cli` (the agent runtime and narrow waist — owns routing, memory, capability prose, and the worker-spec contract), `@agentera/mobile` (primary app, a client of the CLI), `@agentera/web` (site and docs), and active host runtimes (OpenCode, Codex, Cursor, Copilot). Host runtimes are harnesses — clients of the CLI, not extension hosts or peers. | `README.md`, `AGENTS.md`, `packages/*/README.md`, `.agentera/decisions.yaml` (D74) |
57
57
  | @agentera/mobile | The flagship mobile/web app package at `packages/mobile`. SvelteKit, Cursor SDK, Cloudflare Worker. | `packages/mobile/README.md`, `packages/mobile/DESIGN.md` |
58
58
  | Agentera skill | Internal transport, not a product word. The bundle at `skills/agentera/` packages Agentera's routing entry and capability prose for host editor runtimes — the `skills/` directory and `plugin.json` manifests host editors require. It is the same fixed workflow, not user extensibility. Per Decision 74, "skill" is retired from product vocabulary and survives only as internal transport; the product word is capabilities. | `skills/agentera/SKILL.md`, `README.md` Internals, `.agentera/decisions.yaml` (D74) |
59
59
  | Capability | A routed behavioral unit of the single Agentera agent, driven through the CLI. Eleven top-level capabilities (status, vision, discuss, research, plan, build, optimize, audit, document, design, orchestrate) plus profile, which surfaces through existing capabilities but appears as a peer row in user-facing docs. Each capability has a prose module at `packages/cli/src/capabilities/<name>/instructions.ts` plus `triggers.yaml`, `artifacts.yaml`, `validation.yaml`, and `exit.yaml`. English names are canonical per Decision 70; the Swedish `-era` names are legacy v2 stable only (see Legacy Swedish capability names). | `AGENTS.md`, `skills/agentera/capabilities/*`, `packages/cli/src/capabilities/*`, `.agentera/decisions.yaml` (D70, D74) |
@@ -117,7 +117,7 @@ the prose module directly.
117
117
  | Term | Definition |
118
118
  | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
119
119
  | CLI-first state access | Read project state through `agentera` top-level commands before raw artifact reads. |
120
- | Top-level state commands | The canonical namespace command is `state` followed by a subcommand (`plan`, `progress`, `health`, `todo`, `decisions`, `docs`, `objective`, `experiments`, `query`). Legacy top-level aliases remain during migration; see [audience-namespace-cli-migration.yaml](references/cli/audience-namespace-cli-migration.yaml). |
120
+ | Top-level state commands | The canonical namespace command is `state` followed by a subcommand (`plan`, `progress`, `health`, `todo`, `decisions`, `docs`, `objective`, `experiments`, `query`). Legacy top-level aliases remain during migration; see [audience-namespace-cli-migration.yaml](audience-namespace-cli-migration.yaml). |
121
121
  | Artifact-backed briefing | Any briefing or routing decision backed by Agentera project artifacts. It must use CLI-first state access. |
122
122
  | Bare `/agentera` | Invocation without a specific request. It delegates to `status` and renders the status dashboard from one composite source command. |
123
123
  | Status dashboard | User-facing project briefing with logo, status metrics, a narrative read inside `status`, attention, next action, and `⌂ status · <status>`. Issues summary uses `critical · degraded · annoying` only. |
@@ -135,14 +135,14 @@ the prose module directly.
135
135
  | Suggest, don't force | Status recommends the next capability but waits for user confirmation. |
136
136
  | Capability handoff label | A recommendation from one capability to another. Use glyph plus canonical name, such as `⧉ build` or `≡ plan`, not standalone slash-capability names. SG priority codes are internal protocol references and are not user-facing handoff labels. |
137
137
  | Explicit route documentation | User-facing examples that teach the actual entry route. Use `/agentera <alias>` such as `/agentera build`; do not present aliases as CLI commands. |
138
- | Runtime question tool | Host-native bounded-choice prompt. Current examples: Claude Code `AskUserQuestion`, Copilot `ask_user`, Codex `request_user_input`, and OpenCode `question`. These are guidance examples, not schema authority. |
138
+ | Runtime question tool | Host-native bounded-choice prompt. Concrete tool availability belongs to the active host runtime, not this vocabulary. |
139
139
  | Question-tool gating | Use a native question tool only for at least two meaningful non-terminal next actions or consequential Proceed/Cancel; `Done` and custom/free-form answers do not count as alternatives. Initial Agentera/status briefs stay free-form unless bounded choices were requested or the suggested next step is a state-changing Proceed/Cancel handoff. A single non-mutating suggested handoff may use a free-form prompt, but a single state-changing handoff uses native Proceed/Cancel confirmation. State-changing means the proposed next step may write artifacts, edit code, run optimization or orchestration cycles, apply migrations, refresh app/runtime state, or otherwise mutate project/runtime state. Apply the behavior rule first, with examples such as ⧉ build, ≡ plan when creating or updating plans, ▤ document when writing docs, ⎘ optimize when running or applying optimization cycles, and ⎈ orchestrate when dispatching cycles. This dispatcher rule governs status and capability handoff prompts; invoked capability prose can impose stricter question-tool requirements. |
140
140
  | Handoff confirmation | Clear free-form acceptance of the named single suggestion confirms invocation. Selecting a downstream capability option in a bounded prompt also confirms invocation; selecting `Done` stops without routing. Ambiguous replies get one clarifying question. |
141
141
  | Route | Direct user invocation by canonical capability name, primary alias, or slash route. A route is already consent to invoke the capability and does not need an extra handoff confirmation. |
142
142
  | Suggest | Recommend a downstream capability and wait for confirmation. |
143
143
  | Delegate | Orchestrate assigns approved plan work to a worker capability during an explicitly orchestrated flow. |
144
144
  | Spawn | Build or Optimize launches an isolated runtime worker through the host subagent mechanism. |
145
- | Subagent mechanism | Runtime support for worker execution through Claude Code, OpenCode, Codex CLI, Copilot CLI, Cursor IDE, or another host-native worker surface. |
145
+ | Subagent mechanism | Runtime support for worker execution through OpenCode, Codex CLI, Cursor IDE, Copilot CLI, or another active host-native worker surface. |
146
146
  | Legacy bridge | Temporary v1 entry points, especially `/hej`, that guide users to `/agentera` and the v2 upgrade path. |
147
147
 
148
148
  CLI-visible `agentera prime` labels are source labels. Preserve them in CLI tests
@@ -372,7 +372,7 @@ not add precision:
372
372
  | Hook lifecycle | Runtime callbacks such as `SessionStart`, `Stop`, `PreToolUse`, and `PostToolUse`. |
373
373
  | Setup doctor | Diagnostic command surface for install/runtime health. |
374
374
 
375
- Canonical runtime names are Claude Code, OpenCode, Copilot CLI, Codex CLI, Cursor IDE, and Cursor Agent CLI.
375
+ Canonical active runtime names are OpenCode, Codex, Cursor, and GitHub Copilot. Cursor Agent CLI and Cursor IDE are surfaces of the single Cursor identity; `cursor-agent` is an inactive Cursor alias and source-product name. Claude Code is a retired migration and consent-gated historical-import source, not an active runtime.
376
376
 
377
377
  ### App lifecycle status vocabulary
378
378
 
@@ -740,9 +740,16 @@ Realisera holds the primary enforcement contract because it is the skill that ac
740
740
 
741
741
  ## 22. Session Corpus Contract
742
742
 
743
- Profilera mines decision patterns from host session data to produce PROFILE.md. The extraction currently depends on Claude Code's internal storage layout (JSONL files, memory directories, project-scoped configs). This section defines the normalized data model that any host adapter can produce, decoupling profilera's behavioral contract from a specific runtime's file layout.
744
-
745
- The contract is a data model, not a path model. It specifies what profilera needs to observe, not where the host stores it. Claude Code continues to derive this corpus from its native paths; other runtimes produce the same normalized records from their own storage.
743
+ Profilera mines decision patterns from host session data to produce PROFILE.md.
744
+ Claude-specific entries in this legacy section describe the retired,
745
+ consent-gated historical importer only. They are inactive, excluded from default
746
+ analytics, and do not define runtime support. This section defines the normalized
747
+ data model that any active host adapter or explicit historical importer can produce.
748
+
749
+ The contract is a data model, not a path model. It specifies what profilera needs
750
+ to observe, not where the host stores it. Active runtimes produce normalized
751
+ records from their own storage; the retired Claude parser runs only after explicit
752
+ historical-import consent.
746
753
 
747
754
  ### Record types
748
755
 
@@ -134,7 +134,7 @@ HEADER:
134
134
  type: string
135
135
  required: true
136
136
  description: >-
137
- Short plan title. Used in archive naming and plan listing.
137
+ Short plan title. Used in archive naming and active/archived plan listing.
138
138
  Format: 'Plan: <descriptive name>'.
139
139
  validation:
140
140
  - "Non-empty string"
@@ -19,7 +19,7 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
19
19
  cursorProjectsDir: null,
20
20
  cursorChatsDir: null,
21
21
  noCodex: false,
22
- noClaude: false,
22
+ importSources: [],
23
23
  noOpencode: false,
24
24
  noCopilot: false,
25
25
  noCursor: false,
@@ -27,6 +27,7 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
27
27
  coverageAuditOnly: false,
28
28
  format: "text",
29
29
  };
30
+ let claudeProjectsDirExplicit = false;
30
31
  for (let i = 0; i < argv.length; i++) {
31
32
  const a = argv[i];
32
33
  const val = (name) => {
@@ -43,8 +44,16 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
43
44
  args.projectRoot.push(v);
44
45
  else if ((v = val("--codex-sessions-dir")) !== null)
45
46
  args.codexSessionsDir = v;
46
- else if ((v = val("--claude-projects-dir")) !== null)
47
+ else if ((v = val("--claude-projects-dir")) !== null) {
47
48
  args.claudeProjectsDir = v;
49
+ claudeProjectsDirExplicit = true;
50
+ }
51
+ else if ((v = val("--import-source")) !== null) {
52
+ if (v !== "claude")
53
+ throw new Error(`extract-corpus: unsupported historical import source '${v}'; valid source: claude`);
54
+ if (!args.importSources.includes(v))
55
+ args.importSources.push(v);
56
+ }
48
57
  else if ((v = val("--opencode-conversations-dir")) !== null)
49
58
  args.opencodeConversationsDir = v;
50
59
  else if ((v = val("--copilot-conversations-dir")) !== null)
@@ -55,8 +64,6 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
55
64
  args.cursorChatsDir = v;
56
65
  else if (a === "--no-codex")
57
66
  args.noCodex = true;
58
- else if (a === "--no-claude")
59
- args.noClaude = true;
60
67
  else if (a === "--no-opencode")
61
68
  args.noOpencode = true;
62
69
  else if (a === "--no-copilot")
@@ -87,6 +94,9 @@ export function parseExtractArgs(argv, env = process.env, platform = process.pla
87
94
  else
88
95
  throw new Error(`extract-corpus: unrecognized argument: ${a}`);
89
96
  }
97
+ if (claudeProjectsDirExplicit && !args.importSources.includes("claude")) {
98
+ throw new Error("extract-corpus: --claude-projects-dir requires explicit --import-source claude");
99
+ }
90
100
  return args;
91
101
  }
92
102
  /** Engine entry point mirroring scripts/extract_corpus.py main(). */
@@ -105,6 +115,10 @@ export function extractCorpusMain(argv, io = {}) {
105
115
  return 2;
106
116
  }
107
117
  const projectRoots = args.projectRoot.length > 0 ? args.projectRoot : [cwd];
118
+ if (args.importSources.includes("claude")) {
119
+ err("Historical import warning: Claude transcripts can contain secrets, file contents, and command output. " +
120
+ "Import is local and read-only; records are labeled historical_import and excluded from active-runtime analytics.");
121
+ }
108
122
  const audit = runCoverageAudit(args, env, platform, args.acceptCoverageGap);
109
123
  if (args.format === "json") {
110
124
  out(JSON.stringify({ coverage_audit: audit }, null, 2));
@@ -126,7 +140,7 @@ export function extractCorpusMain(argv, io = {}) {
126
140
  const corpus = buildCorpus({
127
141
  projectRoots,
128
142
  codexSessionsDir: args.noCodex ? null : args.codexSessionsDir,
129
- claudeProjectsDir: args.noClaude ? null : args.claudeProjectsDir,
143
+ claudeProjectsDir: args.importSources.includes("claude") ? args.claudeProjectsDir : null,
130
144
  opencodeConversationsDir: args.noOpencode ? null : args.opencodeConversationsDir || resolveOpencodeDbPath(env),
131
145
  copilotConversationsDir: args.noCopilot ? null : args.copilotConversationsDir || resolveCopilotStorePath(env),
132
146
  cursorProjectsDir: skipCursor ? null : args.cursorProjectsDir || resolveCursorProjectsPath(env),
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/analytics/extractCorpus/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/analytics/extractCorpus/cli.ts"],"names":[],"mappings":"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"}
@@ -233,7 +233,8 @@ export function extractCopilotSessions(storePath, errors, ctx) {
233
233
  sourceKind: "conversation_turn",
234
234
  timestamp,
235
235
  projectPath,
236
- runtime: "github-copilot",
236
+ runtime: "copilot",
237
+ sourceProduct: "github-copilot",
237
238
  sourceParts: [resolvePath(dbPath), index, role, content.slice(0, 80)],
238
239
  sessionId: String(row.session_id),
239
240
  data,
@@ -246,7 +247,8 @@ export function extractCopilotSessions(storePath, errors, ctx) {
246
247
  sourceKind: "tool_call",
247
248
  timestamp,
248
249
  projectPath,
249
- runtime: "github-copilot",
250
+ runtime: "copilot",
251
+ sourceProduct: "github-copilot",
250
252
  sourceParts: [resolvePath(dbPath), index, toolIndex, "tool", toolItem.tool_name, row.turn_id],
251
253
  sessionId: String(row.session_id),
252
254
  data: { tool_name: String(toolItem.tool_name), arguments: toolItem.arguments || {} },
@@ -259,7 +261,8 @@ export function extractCopilotSessions(storePath, errors, ctx) {
259
261
  sourceKind: "history_prompt",
260
262
  timestamp,
261
263
  projectPath,
262
- runtime: "github-copilot",
264
+ runtime: "copilot",
265
+ sourceProduct: "github-copilot",
263
266
  sourceParts: [resolvePath(dbPath), index, "history", content.slice(0, 120)],
264
267
  sessionId: String(row.session_id),
265
268
  data: { prompt: content, signal_type: sig },