agentera 3.0.0-dev.72 → 3.0.0-dev.74
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 +111 -0
- package/bundle/.agentera-build-source.json +8 -0
- package/bundle/CHANGELOG.md +17 -17
- package/bundle/extract-corpus-parity.json +1 -1
- package/bundle/references/adapters/package-publication.json +49 -53
- package/bundle/references/adapters/package-registry.yaml +5 -1
- package/bundle/references/adapters/package-surface-characterization.md +6 -4
- package/bundle/references/analysis/evidence-tier-authority.yaml +45 -4
- package/bundle/references/analysis/personal-glossary-evaluation-authority.yaml +175 -0
- package/bundle/references/analysis/personal-glossary-evaluation-corpus.yaml +291 -0
- package/bundle/references/analysis/personal-glossary-holdout.yaml +192 -0
- package/bundle/references/artifacts/glossary-entry-contract.yaml +1533 -35
- package/bundle/references/cli/update-channels.yaml +2 -2
- package/bundle/references/cli/vocabulary.md +1 -1
- package/bundle/references/meta/retained-reference-authority.yaml +15 -0
- package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +11 -7
- package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +6 -3
- package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +13 -7
- package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +5 -0
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +7 -0
- package/dist/.agentera-build-source.json +8 -0
- package/dist/analytics/extractCorpus/copilotSessions.js +13 -4
- package/dist/analytics/extractCorpus/core.js +223 -3
- package/dist/analytics/extractCorpus/corpus.js +18 -1
- package/dist/analytics/extractCorpus/cursorSessions.js +22 -4
- package/dist/analytics/extractCorpus/evidenceTiers.js +123 -17
- package/dist/analytics/extractCorpus/filesystemSources.js +4 -0
- package/dist/analytics/extractCorpus/index.js +2 -2
- package/dist/analytics/extractCorpus/jsonlSessions.js +52 -3
- package/dist/analytics/extractCorpus/sqliteSessions.js +12 -3
- package/dist/analytics/personalGlossaryAdmission.js +26 -46
- package/dist/analytics/personalGlossaryCandidateProjection.js +692 -0
- package/dist/analytics/personalGlossaryCandidateProjectionExcerpts.js +144 -0
- package/dist/analytics/personalGlossaryCandidateReadView.js +23 -0
- package/dist/analytics/personalGlossaryCurrentGeneration.js +25 -0
- package/dist/analytics/personalGlossaryDecision.js +203 -0
- package/dist/analytics/personalGlossaryExplicit.js +788 -0
- package/dist/analytics/personalGlossaryExplicitMining.js +285 -0
- package/dist/analytics/personalGlossaryExplicitScope.js +41 -0
- package/dist/analytics/personalGlossaryExplicitSegments.js +418 -0
- package/dist/analytics/personalGlossaryExplicitTypes.js +26 -0
- package/dist/analytics/personalGlossaryLexicalClassifier.js +175 -0
- package/dist/analytics/personalGlossaryProfile.js +13 -3
- package/dist/analytics/personalGlossaryRecurrence.js +618 -0
- package/dist/analytics/personalGlossaryReviewRecordStorage.js +428 -0
- package/dist/analytics/personalGlossaryReviewRecords.js +332 -0
- package/dist/capabilities/index.js +5 -1
- package/dist/capabilities/profile/instructions.js +50 -15
- package/dist/cli/commands/personalGlossaryCandidateReads.js +744 -0
- package/dist/cli/commands/personalGlossaryDecision.js +349 -0
- package/dist/cli/commands/personalGlossaryPublish.js +484 -0
- package/dist/cli/commands/personalGlossaryReviewRecordReads.js +209 -0
- package/dist/cli/commands/personalGlossaryReviewRecords.js +623 -0
- package/dist/cli/commands/prime/briefOrientation.js +118 -19
- package/dist/cli/commands/report.js +18 -2
- package/dist/cli/commands/schema.js +179 -0
- package/dist/cli/commands/verify.js +51 -9
- package/dist/cli/dispatch/lifecycle.js +51 -6
- package/dist/cli/help.js +48 -2
- package/dist/cli/migrationRequired.js +4 -1
- package/dist/core/atomicWriter.js +4 -1
- package/dist/core/developmentInvocation.js +4 -1
- package/dist/core/yaml.js +53 -1
- package/dist/eval/glossaryEvaluation.js +751 -0
- package/dist/eval/glossaryEvaluationProcess.js +29 -0
- package/dist/eval/glossaryEvaluationRunner.js +571 -0
- package/dist/eval/glossaryEvaluationSuccessReport.js +297 -0
- package/dist/registries/activationTuples.js +31 -3
- package/dist/registries/evidenceTierContract.js +4 -0
- package/dist/registries/explicitSegmentGrammarContract.js +619 -0
- package/dist/registries/glossaryCandidateContractPaths.js +6 -0
- package/dist/registries/glossaryCandidateContracts.js +820 -0
- package/dist/registries/glossaryCandidateDecisionAuthority.js +119 -0
- package/dist/registries/glossaryCandidateDecisionContract.js +62 -0
- package/dist/registries/glossaryCandidateProjectionAuthority.js +197 -0
- package/dist/registries/glossaryCandidateProjectionContract.js +104 -0
- package/dist/registries/glossaryEntryContract.js +105 -103
- package/dist/registries/glossaryEntryTemporal.js +12 -0
- package/dist/registries/glossaryMiningAuthority.js +764 -0
- package/dist/registries/glossaryProfileFullContract.js +24 -0
- package/dist/registries/glossaryReviewRecordsAuthority.js +426 -0
- package/dist/registries/glossaryReviewRecordsContract.js +129 -0
- package/dist/registries/glossaryTermIdentity.js +122 -0
- package/dist/registries/packagePublication.js +3 -3
- package/dist/registries/personalGlossaryContracts.js +1 -0
- package/dist/release/releaseMetadata.js +14 -7
- package/dist/upgrade/npxPlatformStatus.js +2 -1
- package/dist/upgrade/projectIntegration.js +7 -1
- package/dist/validate/activationArtifactEvidence.js +18 -4
- package/dist/validate/activationEvidenceManifest.js +101 -22
- package/package.json +2 -4
- package/dist/cli/commands/personalGlossary.js +0 -176
package/README.md
CHANGED
|
@@ -112,6 +112,117 @@ reports full, summary-only, or unavailable detail without fabricating archives.
|
|
|
112
112
|
See [UPGRADE.md](../../UPGRADE.md) for ownership, recovery, and migration
|
|
113
113
|
details.
|
|
114
114
|
|
|
115
|
+
## Private personal glossary candidate reads
|
|
116
|
+
|
|
117
|
+
The user-local candidate projection has a separate read-only surface. It does
|
|
118
|
+
not need a project checkout and never reads a project glossary.
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
npx -y agentera@next report personal-glossary-candidates list --limit 20 --format json
|
|
122
|
+
npx -y agentera@next report personal-glossary-candidates get \
|
|
123
|
+
--candidate-id ID --candidate-revision REVISION \
|
|
124
|
+
--generation GENERATION --policy-version POLICY --format json
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
List cursors bind the current generation, policy, filters, limit, order, and
|
|
128
|
+
expiry-aware safe-context availability snapshot. Safe context becomes
|
|
129
|
+
unavailable at its 30-day expiry without changing persisted projection bytes;
|
|
130
|
+
a cursor from an earlier availability view cannot resume. Exact reads return
|
|
131
|
+
opaque validated occurrence identities and a currently available safe context,
|
|
132
|
+
not raw source, anchor, session, project, or filesystem values. Both commands
|
|
133
|
+
are non-interactive and mutation-free.
|
|
134
|
+
|
|
135
|
+
## Personal glossary decisions
|
|
136
|
+
|
|
137
|
+
Submit one host semantic classification receipt through the private, read-only
|
|
138
|
+
decision boundary. Copy the current `candidate_projection_sha256` from the
|
|
139
|
+
candidate read into the receipt. The CLI validates the receipt against the
|
|
140
|
+
current projection and evidence, then returns an admission outcome without
|
|
141
|
+
writing a review, profile entry, or project state.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
npx -y agentera@next report personal-glossary-decision --input receipt.json --format json
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Only a current explicit personal definition with a complete resolved
|
|
148
|
+
user-authored anchor can return `automatic_admission`. Inferred candidates stay
|
|
149
|
+
`review_required` or `abstain`, regardless of host confidence. The command does
|
|
150
|
+
not read a project glossary. File and stdin requests are limited to 16,384 UTF-8
|
|
151
|
+
bytes. The machine schema lists the only allowed reason codes for each outcome.
|
|
152
|
+
|
|
153
|
+
## Personal glossary publication
|
|
154
|
+
|
|
155
|
+
Publish one current explicit automatic admission through the separate,
|
|
156
|
+
user-local mutation boundary:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
npx -y agentera@next report personal-glossary-publish --input publication.json --format json
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
The bounded request contains `schema_version`, `receipt`, `decision`, and
|
|
163
|
+
`as_of`. It can additionally carry an opaque `review_authorization` with a
|
|
164
|
+
review ID and canonical review-record digest. It never accepts a profile or
|
|
165
|
+
project path. Immediately before an atomic replacement, Agentera revalidates the
|
|
166
|
+
current projection, candidate, receipt, CLI decision, evidence, scope, meaning,
|
|
167
|
+
revision, policy, and quality gate. An automatic publication still requires
|
|
168
|
+
`explicit_current_authorized`. A review-required publication additionally needs a
|
|
169
|
+
current stored `accept` or `correct` authorization. The command changes only the
|
|
170
|
+
owned `PROFILE.md` Glossary section and returns opaque bindings, not terms,
|
|
171
|
+
meanings, anchors, paths, or source content. Exact replay with the same date is
|
|
172
|
+
an `unchanged_replay`; malformed, stale, unavailable, or conflicting input leaves
|
|
173
|
+
profile bytes unchanged.
|
|
174
|
+
|
|
175
|
+
## Personal glossary review records
|
|
176
|
+
|
|
177
|
+
Queue a current `review_required` decision when no question channel is available.
|
|
178
|
+
The queue takes the same bounded host receipt shape as the decision command and
|
|
179
|
+
revalidates it before writing private metadata.
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
npx -y agentera@next report personal-glossary-reviews queue --input receipt.json --format json
|
|
183
|
+
npx -y agentera@next report personal-glossary-reviews disposition --input disposition.json --format json
|
|
184
|
+
npx -y agentera@next report personal-glossary-reviews list --status pending --limit 20 --format json
|
|
185
|
+
npx -y agentera@next report personal-glossary-reviews get \
|
|
186
|
+
--review-id ID --candidate-id ID --candidate-revision REVISION \
|
|
187
|
+
--generation GENERATION --policy-version POLICY --format json
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Records live only under the configured user profile. Queue metadata retains opaque
|
|
191
|
+
candidate, receipt, decision, semantic-fingerprint, scope, policy, reason, and
|
|
192
|
+
lifecycle bindings. A `correct` action can retain only its authority-approved
|
|
193
|
+
corrected meaning in the canonical user-local review record. Records never retain
|
|
194
|
+
a term, excerpt, raw evidence, source, session, project, path, tool content,
|
|
195
|
+
signature, nonce, or host proof.
|
|
196
|
+
|
|
197
|
+
The local host writes one canonical `trusted-local-host.json` document beside the
|
|
198
|
+
review store. It contains the current-user subject and an Ed25519 SPKI public key.
|
|
199
|
+
Only a fresh `agentera.personalGlossaryReviewApproval.v1` action from
|
|
200
|
+
`agentera-local-host` over `agentera-local-host-ipc`, signed by that key, can
|
|
201
|
+
disposition a queued review. The signed receipt binds the review ID, stable term,
|
|
202
|
+
revision, projection, semantic fingerprint, generation, policy, disposition,
|
|
203
|
+
correction fields, timestamps, and nonce. Exact receipt replay is idempotent;
|
|
204
|
+
reusing a nonce with changed signed content fails before effects.
|
|
205
|
+
|
|
206
|
+
Canonical v1 pending review stores remain readable through `list` and `get`
|
|
207
|
+
without changing their bytes. Only `disposition` can migrate one valid v1 record.
|
|
208
|
+
It revalidates the current receipt and projection, derives the missing scope from
|
|
209
|
+
that receipt, preserves immutable review bindings, and atomically writes the v2
|
|
210
|
+
lifecycle and replay state. Invalid or ambiguous v1 input leaves the store
|
|
211
|
+
unchanged.
|
|
212
|
+
|
|
213
|
+
Rejected and deferred records suppress a recurrence with the same stable identity,
|
|
214
|
+
semantic fingerprint, scope, and policy even when only corroborating evidence,
|
|
215
|
+
revision, or generation changes. A meaning, scope, or policy change creates a
|
|
216
|
+
bounded reopened record with a visible reason. Accepted or corrected records return
|
|
217
|
+
an opaque authorization for the separate publish command. They do not publish
|
|
218
|
+
directly. List and exact reads are noninteractive, owner-restricted,
|
|
219
|
+
cursor-bounded, and mutation-free.
|
|
220
|
+
|
|
221
|
+
Terminal metadata expires after 90 days. The bounded receipt replay index expires
|
|
222
|
+
with each approval receipt. Separate authenticated owner maintenance affects only
|
|
223
|
+
review metadata and replay digests. It does not modify a profile entry, project
|
|
224
|
+
state, candidate projection, or publication result.
|
|
225
|
+
|
|
115
226
|
## Contributors
|
|
116
227
|
|
|
117
228
|
Requires Node.js 22+ and pnpm 10.30.3.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "agentera.generatedBuildSource.v1",
|
|
3
|
+
"commit": "15c2b8d04ef350ff9e09bc5f40a0d079aeedc399",
|
|
4
|
+
"tree": "0e0c77c6fc7da5b3da9b6b92eaa6117e669658ef",
|
|
5
|
+
"files": 6724,
|
|
6
|
+
"workingTreeSha256": "634b717f526f20689aa5fa08cf3c268675617f59e56d77e1555b9e49cab07606",
|
|
7
|
+
"identitySha256": "b94b49cdad8c10a7f99ee0189b1981a8d8f3217b345b7e18e29e1f9a8de3c7ed"
|
|
8
|
+
}
|
package/bundle/CHANGELOG.md
CHANGED
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
|
|
19
19
|
### Changed
|
|
20
20
|
|
|
21
|
-
-
|
|
22
|
-
`3.0.0-dev.N
|
|
23
|
-
|
|
24
|
-
by review.
|
|
21
|
+
- Every passing `feat/v3` push now publishes one CI-allocated rolling
|
|
22
|
+
`3.0.0-dev.N` package to npm `@next` without a metadata-only commit. The
|
|
23
|
+
bounded workflow builds one isolated tarball, validates and smokes those exact
|
|
24
|
+
bytes, then publishes them directly. Stable publication remains protected by review.
|
|
25
25
|
- Local staged verification now gives ordinary source changes targeted tests
|
|
26
26
|
and typecheck with two workers in at most 60 seconds. State and documentation
|
|
27
27
|
checks stay under 10 seconds, while specialized and global owners defer to
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
--help` expose the exact `agentera.route_receipt.v1` schema, valid outcomes,
|
|
40
40
|
nullability, compound and UTF-8 span rules, plus a runnable stdin round trip.
|
|
41
41
|
- Development releases now run source checks once before explicit metadata review,
|
|
42
|
-
reuse valid evidence on resume, and construct or reuse one
|
|
42
|
+
reuse valid evidence on resume, and construct or reuse one package artifact before
|
|
43
43
|
separate approval, staged exact-version publication, and forward-only tag
|
|
44
44
|
promotion. Invalid or stale evidence fails before release effects, while the
|
|
45
45
|
review pause performs no metadata, approval, rebuild, or registry action.
|
|
@@ -113,32 +113,32 @@
|
|
|
113
113
|
- Fixed native resource cleanup to replay historical Codex descriptor ownership
|
|
114
114
|
IDs, preserve identity collisions and unowned files, and expose the complete
|
|
115
115
|
retired native-resource vocabulary for v2-only upgrade discovery.
|
|
116
|
-
- Fixed release
|
|
117
|
-
the contracted
|
|
116
|
+
- Fixed release verification provenance and isolation. CI approvals now bind
|
|
117
|
+
the contracted source verification repository, workflow, full branch ref, run, and
|
|
118
118
|
API-backed head SHA before environment approval or artifact mutation;
|
|
119
119
|
stable shim releases require packaged-input source provenance; retained
|
|
120
120
|
artifacts keep and revalidate mode `0444`; and npm/pnpm probes and mutation
|
|
121
121
|
validation use fresh sanitized state. Added a three-run non-mutating
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
replay evidence, and first-failure reporting. Source
|
|
122
|
+
package verification benchmark plus a content-bound, monotonic publication envelope
|
|
123
|
+
with a strict two-minute budget, reconciled timing,
|
|
124
|
+
replay evidence, and first-failure reporting. Source verification now runs a
|
|
125
125
|
bounded evidence DAG: one generated-overlap execution supplies source,
|
|
126
126
|
package, build, and overlap proof beside isolated stress and typecheck owners,
|
|
127
127
|
followed by a solo performance barrier and concurrent compact and
|
|
128
128
|
capability-contract readers. The solo phase prevents CPU contention from
|
|
129
129
|
invalidating machine-sensitive performance evidence. Failures preserve the
|
|
130
|
-
first owner, settle overlap safely, block
|
|
130
|
+
first owner, settle overlap safely, block package construction, and issue no
|
|
131
131
|
receipt. Generated-overlap now receives the
|
|
132
132
|
actual source deadline, reserves bounded cleanup and parent-reconciliation
|
|
133
133
|
time, and removes its generated state after failure. Source receipts now mark
|
|
134
134
|
and validate all nine successful gate outcomes and reject semantic tampering.
|
|
135
135
|
The read-only `source-check` command validates matching source evidence for
|
|
136
|
-
development preparation and direct diagnosis without running
|
|
137
|
-
gates or changing repository,
|
|
138
|
-
|
|
136
|
+
development preparation and direct diagnosis without running verification
|
|
137
|
+
gates or changing repository, package artifact, receipt, or registry state.
|
|
138
|
+
Package verification timing now closes construction before exact-artifact
|
|
139
139
|
smoke and reconciles non-overlapping gate intervals with explicit overhead.
|
|
140
140
|
Staging now rejects an absent exact version when the public tag already names
|
|
141
|
-
that target, before
|
|
141
|
+
that target, before artifact inspection, credentials, or publication.
|
|
142
142
|
|
|
143
143
|
- Fixed bare `agentera prime` briefs to compact absolute path diagnostics before
|
|
144
144
|
routing and history evidence, preserving executable plan selection, next-action
|
|
@@ -177,8 +177,8 @@
|
|
|
177
177
|
|
|
178
178
|
### Added
|
|
179
179
|
|
|
180
|
-
- Added `agentera report
|
|
181
|
-
personal glossary
|
|
180
|
+
- Added `npx -y agentera@next report personal-glossary-publish --input <file|-> [--dry-run] --format json`
|
|
181
|
+
for authorized personal glossary publication in `PROFILE.md`, with bounded
|
|
182
182
|
personal provenance, byte-preserving section replacement, deterministic
|
|
183
183
|
confidence decay and refresh, retained permanence, and no project-glossary
|
|
184
184
|
reads. Discuss, Plan, and Build consume it only through bounded glossary
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"schemaVersion": "agentera.packagePublication.v2",
|
|
3
3
|
"owner": "repository/package scripts",
|
|
4
4
|
"invariants": {
|
|
5
|
-
"preparation": "Preparation is pure and registry-independent.
|
|
6
|
-
"sourceQualification": "Source
|
|
7
|
-
"candidateQualification": "
|
|
8
|
-
"publication": "Registry publication consumes the retained
|
|
9
|
-
"approval": "
|
|
5
|
+
"preparation": "Preparation is pure and registry-independent. CI allocates rolling development package metadata in an isolated construction tree without changing the checkout. The manual readiness preparation path first validates a current normalized source receipt, then accepts an explicit target version and source commit. Stable preparation retains its separate source-provenance contract.",
|
|
6
|
+
"sourceQualification": "Source verification never repairs source. It issues a content-addressed receipt only after every declared source gate succeeds against a clean committed tree. A matching receipt is a deterministic local cache, not an authorization boundary.",
|
|
7
|
+
"candidateQualification": "Package verification validates a current source receipt, constructs one retained immutable tarball with the contract-required retained mode, proves dry-pack observation equivalence, and runs a local exact-artifact smoke in an empty isolated npm state before any registry effect.",
|
|
8
|
+
"publication": "Registry publication consumes the retained package artifact through one measured stage, independent staged package migration smoke, and promote envelope. Stage and promotion include their required registry convergence and observational checks. The envelope never reconstructs an artifact, reruns source verification, or rolls a tag back.",
|
|
9
|
+
"approval": "Manual development and stable release machinery requires artifact-bound approval. The routine feat/v3 push path instead derives its immutable version and git ref from the GitHub run and push SHA, validates and smokes the exact isolated tarball, and publishes those bytes directly to next. Stable publication retains explicit protected-environment review on main after the stable workflows land on the default branch.",
|
|
10
10
|
"replay": "A matching exact version, integrity, and required tag state is a successful no-upload replay. Conflicting integrity, an escaped artifact, a stale tag, or any unrecognized registry state fails before mutation.",
|
|
11
11
|
"credentials": "Registry inspection runs before credentials are required. Only the npm mutation child receives a mode-0600 temporary user config. Tool probes and every npm, pnpm, and npx child, including receipt validation during stage and promotion, use isolated user/global config, home, cache, and sanitized npm/pnpm environments.",
|
|
12
|
-
"output": "Every transaction phase emits a bounded start and end result with package, version, phase, outcome, elapsedMs, executed, reused, and nextAction. The
|
|
12
|
+
"output": "Every transaction phase emits a bounded start and end result with package, version, phase, outcome, elapsedMs, executed, reused, and nextAction. The publication coordinator emits one content-bound timing receipt in JSON or equivalent human output with measured component and total durations, strict budget status, first failure, reconciliation, and replay state. Diagnostics redact credentials and private absolute paths."
|
|
13
13
|
},
|
|
14
14
|
"packages": {
|
|
15
15
|
"development": {
|
|
@@ -46,26 +46,30 @@
|
|
|
46
46
|
"ci": {
|
|
47
47
|
"repository": "jgabor/agentera",
|
|
48
48
|
"qualificationWorkflow": {
|
|
49
|
-
"name": "
|
|
50
|
-
"path": ".github/workflows/qualify
|
|
49
|
+
"name": "Publish development package",
|
|
50
|
+
"path": ".github/workflows/qualify.yml",
|
|
51
51
|
"ref": "refs/heads/feat/v3"
|
|
52
52
|
},
|
|
53
53
|
"developmentPush": {
|
|
54
54
|
"trigger": "push to refs/heads/feat/v3",
|
|
55
|
-
"versionAuthority": "
|
|
56
|
-
"
|
|
57
|
-
"validationCommand": "pnpm cli:validate:dev-push -- --before-commit BEFORE --metadata-commit HEAD --json",
|
|
55
|
+
"versionAuthority": "GitHub Actions workflow run number plus the fixed migration offset",
|
|
56
|
+
"runNumberOffset": 72,
|
|
58
57
|
"rules": [
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
58
|
+
"version is 3.0.0-dev.(GITHUB_RUN_NUMBER + 72)",
|
|
59
|
+
"agentera.gitRef equals GITHUB_SHA",
|
|
60
|
+
"the checkout manifest is not modified",
|
|
61
|
+
"one isolated tarball is built, validated for version and git ref, and executable-smoked before those exact bytes are published to next",
|
|
62
|
+
"reruns reuse the same run number, SHA, and version; identical already-published bytes succeed without another upload",
|
|
63
|
+
"failed runs can create version gaps",
|
|
64
|
+
"before the first push, confirm qualify.yml is still unregistered at run 0 and npm 3.0.0-dev.73 is absent"
|
|
66
65
|
],
|
|
67
|
-
"approval": "
|
|
68
|
-
"concurrency": "The
|
|
66
|
+
"approval": "The routine push workflow publishes the locally validated exact tarball to next without the manual qualification, receipt, attestation, benchmark, approval, or artifact-handoff framework.",
|
|
67
|
+
"concurrency": "The publish-next-${{ github.ref }} group uses queue: max, which keeps up to 100 pending runs and does not cancel an active or pending push."
|
|
68
|
+
},
|
|
69
|
+
"stableVerificationWorkflow": {
|
|
70
|
+
"name": "Verify stable package",
|
|
71
|
+
"path": ".github/workflows/verify-stable.yml",
|
|
72
|
+
"ref": "refs/heads/main"
|
|
69
73
|
},
|
|
70
74
|
"publicationRunBinding": {
|
|
71
75
|
"beforeArtifactDownload": [
|
|
@@ -80,13 +84,13 @@
|
|
|
80
84
|
"run.conclusion"
|
|
81
85
|
],
|
|
82
86
|
"refRule": "qualificationWorkflow.ref is a full refs/heads branch ref; run.head_branch must equal its exact branch name",
|
|
83
|
-
"beforeEnvironmentApproval": "The content-validated
|
|
87
|
+
"beforeEnvironmentApproval": "The content-validated package artifact receipt metadataCommit must equal the API-backed run.head_sha; development sourceCommit must also equal run.head_sha"
|
|
84
88
|
}
|
|
85
89
|
},
|
|
86
90
|
"qualification": {
|
|
87
91
|
"source": {
|
|
88
92
|
"component": "release-source",
|
|
89
|
-
"issuanceAuthority": "A new source receipt can be issued only by the contracted GitHub Actions
|
|
93
|
+
"issuanceAuthority": "A new source receipt can be issued only by the contracted GitHub Actions source verification workflow at the committed checkout SHA. Existing valid receipts remain reusable through the read-only source check.",
|
|
90
94
|
"inputs": [
|
|
91
95
|
"tracked_tree_except_package_version_gitRef",
|
|
92
96
|
"verification_policy",
|
|
@@ -304,16 +308,16 @@
|
|
|
304
308
|
"sha256": "03fe600a3a27f05daf0d1b59c16b00bedc354a13c70ea60be0b457175fdf743c"
|
|
305
309
|
},
|
|
306
310
|
"reference": {
|
|
307
|
-
"count":
|
|
308
|
-
"sha256": "
|
|
311
|
+
"count": 25,
|
|
312
|
+
"sha256": "2094946cd6e189c6ab3db16dd0725596cec759abcea88d8335b05215b65ccfc2"
|
|
309
313
|
},
|
|
310
314
|
"state": {
|
|
311
315
|
"count": 38,
|
|
312
316
|
"sha256": "7ab0dd6ef1b1b1ce66bd9ea94d1de3d542528233e928a44102e289bf12416681"
|
|
313
317
|
},
|
|
314
318
|
"package": {
|
|
315
|
-
"count":
|
|
316
|
-
"sha256": "
|
|
319
|
+
"count": 67,
|
|
320
|
+
"sha256": "d73cd86fed39057cf9ae73e462a59e842372392b1e88846f2b220378a2ff75cc"
|
|
317
321
|
},
|
|
318
322
|
"bootstrap": {
|
|
319
323
|
"count": 34,
|
|
@@ -321,17 +325,17 @@
|
|
|
321
325
|
}
|
|
322
326
|
},
|
|
323
327
|
"total": {
|
|
324
|
-
"count":
|
|
325
|
-
"sha256": "
|
|
328
|
+
"count": 284,
|
|
329
|
+
"sha256": "3f30b26839aec47639f2197c9efda5caf2a73d5afca9fb38ff9a341e18a72b98"
|
|
326
330
|
}
|
|
327
331
|
}
|
|
328
332
|
},
|
|
329
333
|
"reuseCheck": {
|
|
330
334
|
"command": "node packages/cli/scripts/release-qualification.mjs source-check --candidate-dir DIR [--json]",
|
|
331
|
-
"authority": "The external path is input only. Reuse requires digest, full receipt semantics, exact governed gates, current toolchain, and matching current staged and working tracked-tree identities under the same package version and agentera.gitRef normalization used at source
|
|
332
|
-
"effects": "Runs no
|
|
333
|
-
"fallback": "A missing, invalid, ambiguous, or stale receipt fails before manual readiness metadata effects. Serialized integration preparation and the local staged
|
|
334
|
-
"scope": "Manual readiness preparation uses the check as a source-readiness prerequisite. Direct diagnostics may inspect reuse without executing a gate. Build, compact, parity,
|
|
335
|
+
"authority": "The external path is input only. Reuse requires digest, full receipt semantics, exact governed gates, current toolchain, and matching current staged and working tracked-tree identities under the same package version and agentera.gitRef normalization used at source verification.",
|
|
336
|
+
"effects": "Runs no verification gate and writes no repository, package artifact, receipt, or registry state. Success emits executed none and reused true without receipt content or private paths.",
|
|
337
|
+
"fallback": "A missing, invalid, ambiguous, or stale receipt fails before manual readiness metadata effects. Serialized integration preparation and the local staged verification lane do not consume release receipts.",
|
|
338
|
+
"scope": "Manual readiness preparation uses the check as a source-readiness prerequisite. Direct diagnostics may inspect reuse without executing a gate. Build, compact, parity, package verification, release metadata, approval, and publication remain mandatory at their owning stages."
|
|
335
339
|
},
|
|
336
340
|
"dag": {
|
|
337
341
|
"batchA": ["generated-overlap", "stress", "typecheck"],
|
|
@@ -362,8 +366,8 @@
|
|
|
362
366
|
"source": "source-receipt.json",
|
|
363
367
|
"candidate": "candidate-receipt.json"
|
|
364
368
|
},
|
|
365
|
-
"reuse": "A present source receipt is validated with the source reuse check instead of invoking source
|
|
366
|
-
"metadataReview": "A successful source
|
|
369
|
+
"reuse": "A present source receipt is validated with the source reuse check instead of invoking source verification. A present package artifact receipt and retained artifact are validated instead of invoking package verification. Invalid, stale, incomplete, or mismatched evidence rejects the run before an issuance owner starts.",
|
|
370
|
+
"metadataReview": "A successful source verification or source-receipt reuse pauses before package artifact construction until the caller supplies the explicit reviewed metadata commit. The coordinator never prepares metadata, changes a version, commits, approves, rebuilds a valid package artifact, stages bytes, or mutates registry state.",
|
|
367
371
|
"outcomes": ["paused", "ready", "rejected"],
|
|
368
372
|
"exitCodes": {
|
|
369
373
|
"paused": 0,
|
|
@@ -386,7 +390,7 @@
|
|
|
386
390
|
"artifact_mode"
|
|
387
391
|
],
|
|
388
392
|
"retainedArtifactMode": "0444",
|
|
389
|
-
"timing": "
|
|
393
|
+
"timing": "Package verification records monotonic, non-overlapping release-metadata, construction/equivalence, and exact-artifact-smoke intervals at their true boundaries. Their sum cannot exceed measured package verification time; explicit unattributed overhead completes an exact reconciliation.",
|
|
390
394
|
"gates": [
|
|
391
395
|
"release-metadata",
|
|
392
396
|
"dry-pack-observation-equivalence",
|
|
@@ -402,7 +406,7 @@
|
|
|
402
406
|
},
|
|
403
407
|
"trust": {
|
|
404
408
|
"local": "A same-principal source receipt is a deterministic cache only. It cannot authorize registry mutation.",
|
|
405
|
-
"ci": "CI
|
|
409
|
+
"ci": "Manual CI publication requires transferred artifacts, receipts, attestation, and artifact-bound approval. The routine feat/v3 push workflow is separate: it validates, smokes, and publishes one local isolated tarball directly. Stable main publication requires protected-environment review. OIDC provenance is deferred."
|
|
406
410
|
},
|
|
407
411
|
"registryStateTable": [
|
|
408
412
|
{
|
|
@@ -419,7 +423,7 @@
|
|
|
419
423
|
"candidateTag": "target version",
|
|
420
424
|
"expectedTag": "older",
|
|
421
425
|
"stage": "replay without upload and run observational smoke",
|
|
422
|
-
"promote": "move expected tag forward after
|
|
426
|
+
"promote": "move expected tag forward after staged package migration smoke"
|
|
423
427
|
},
|
|
424
428
|
{
|
|
425
429
|
"state": "promoted",
|
|
@@ -440,16 +444,16 @@
|
|
|
440
444
|
],
|
|
441
445
|
"benchmark": {
|
|
442
446
|
"environment": "Ubuntu runner or clean local Node 22, npm 10, and pnpm 10.30.3; record exact tool versions in receipts.",
|
|
443
|
-
"fixture": "clean committed checkout and an external
|
|
444
|
-
"cacheNetwork": "Preflight uses no registry call. Every
|
|
447
|
+
"fixture": "clean committed checkout and an empty external artifact directory; no tracked or checkout-local generated package artifacts.",
|
|
448
|
+
"cacheNetwork": "Preflight uses no registry call. Every verification DAG child and each smoke use a distinct empty HOME, npm cache, user config, global config, and report output; public npm dependency network access is allowed and recorded as cold-cache. Publication reads the registry before credentials.",
|
|
445
449
|
"repetitions": 3,
|
|
446
|
-
"statistic": "
|
|
447
|
-
"coordinator": "packages/cli/scripts/release-benchmark.mjs has separate
|
|
450
|
+
"statistic": "Package verification reports median wall milliseconds over exactly three cold-cache repetitions. Concurrent owner-duration totals are reported separately; only owners in the same parallel phase overlap, while the solo performance and serial capacity barriers contribute ordered wall time. Phase timing reconciles through measured DAG wall time rather than by summing nested owner durations. Publication reports one actual approved transaction because registry mutation is not a benchmark repetition; replays run the same measured envelope and report reused registry phases.",
|
|
451
|
+
"coordinator": "packages/cli/scripts/release-benchmark.mjs has separate verification and publication commands. verification runs only preflight and source-plus-package verification and never receives npm credentials. publication runs only the approved stage, independent staged package migration smoke, and promote commands, measures them with one monotonic deadline, and never runs source verification.",
|
|
448
452
|
"qualifiedPublication": {
|
|
449
453
|
"command": "node packages/cli/scripts/release-benchmark.mjs publication --adapter ADAPTER --candidate-dir DIR --receipt-file FILE",
|
|
450
454
|
"sequence": [
|
|
451
|
-
"stage retained
|
|
452
|
-
"run an independent
|
|
455
|
+
"stage the retained package artifact on the staging tag, wait for exact integrity convergence, and observe an isolated exact-version registry smoke",
|
|
456
|
+
"run an independent staged package migration smoke while the public tag is unchanged",
|
|
453
457
|
"promote the expected tag forward, wait for tag and integrity convergence, and observe the final exact-version registry smoke"
|
|
454
458
|
],
|
|
455
459
|
"receiptBindings": [
|
|
@@ -462,22 +466,14 @@
|
|
|
462
466
|
"source_run_id"
|
|
463
467
|
],
|
|
464
468
|
"timing": "The coordinator measures commands with a monotonic clock. Caller-supplied elapsed data is not accepted. Component floors plus unattributed elapsed time must equal the measured total, and total elapsed time must be strictly less than qualifiedPublicationMs.",
|
|
465
|
-
"failure": "The first child failure label or timeout owner is retained, later phases do not start, and no rollback is attempted. A retry uses the same exact
|
|
469
|
+
"failure": "The first child failure label or timeout owner is retained, later phases do not start, and no rollback is attempted. A retry uses the same exact package artifact; stage and promote replay matching registry state without upload or backward tag movement."
|
|
466
470
|
},
|
|
467
471
|
"timeouts": {
|
|
468
472
|
"preflightMs": 30000,
|
|
469
473
|
"sourceQualificationMs": 2400000,
|
|
470
474
|
"qualifiedPublicationMs": 120000
|
|
471
475
|
},
|
|
472
|
-
"failureRule": "The first observed failing owner remains the reported label. Cancellable peers are stopped, generated-overlap is allowed to settle without forced termination, barrier B and receipt issuance are blocked, and completed/cancelled failures are reported. No timeout or failure authorizes repair,
|
|
473
|
-
"workflow": {
|
|
474
|
-
"path": ".github/workflows/qualification-benchmark.yml",
|
|
475
|
-
"trigger": "workflow_dispatch only until default-branch scheduling is explicitly authorized",
|
|
476
|
-
"checkoutRef": "refs/heads/feat/v3",
|
|
477
|
-
"command": "pnpm cli:benchmark:qualification -- --adapter development --candidate-root DIR --json",
|
|
478
|
-
"retainedReport": "qualification-benchmark-${{ github.run_id }}",
|
|
479
|
-
"credentials": "No npm token, approval, publication, stage, promote, or registry mutation path is present."
|
|
480
|
-
}
|
|
476
|
+
"failureRule": "The first observed failing owner remains the reported label. Cancellable peers are stopped, generated-overlap is allowed to settle without forced termination, barrier B and receipt issuance are blocked, and completed/cancelled failures are reported. No timeout or failure authorizes repair, package construction, or registry mutation."
|
|
481
477
|
},
|
|
482
478
|
"bounds": {
|
|
483
479
|
"registryAttempts": 6,
|
|
@@ -48,6 +48,11 @@ records:
|
|
|
48
48
|
- id: routing-evaluation-corpus
|
|
49
49
|
path: fixtures/routing/hybrid-corpus.yaml
|
|
50
50
|
generated_files:
|
|
51
|
+
- id: build-source-identity
|
|
52
|
+
path: .agentera-build-source.json
|
|
53
|
+
format: json
|
|
54
|
+
classification: active
|
|
55
|
+
command_authority_reason: Build-generated source identity binds constructed dist and bundle output to one Git commit, tree, and exact working-tree digest; no source copy exists.
|
|
51
56
|
- id: npx-bundle-marker
|
|
52
57
|
path: .agentera-npx-bundle.json
|
|
53
58
|
format: json
|
|
@@ -123,7 +128,6 @@ records:
|
|
|
123
128
|
- {"path":"CHANGELOG.md","region":"line:160","category":"argument_bearing","classification":"exact_exemption","normalized_sha256":"273d7dae87662352c49e5723aaa528efa89c9a7dbc7d43d3cbc54c1a1b9771da","reason":"Changelog line:160 records exact release history for that scalar; it does not direct current execution."}
|
|
124
129
|
- {"path":"CHANGELOG.md","region":"line:162","category":"argument_bearing","classification":"exact_exemption","normalized_sha256":"6d02d187f8e271cc6acc4b6966344a841615326891969dbec67815e40a51fe81","reason":"Changelog line:162 records exact release history for that scalar; it does not direct current execution."}
|
|
125
130
|
- {"path":"CHANGELOG.md","region":"line:164","category":"argument_bearing","classification":"exact_exemption","normalized_sha256":"a5dd4c79ebfefc03bd1c6e3d159f362fd2c5f584d6ff8de7928edf88414133a9","reason":"Changelog line:164 records exact release history for that scalar; it does not direct current execution."}
|
|
126
|
-
- {"path":"CHANGELOG.md","region":"line:180","category":"argument_bearing","classification":"exact_exemption","normalized_sha256":"7da30a1e06efa386074b418e5d9e935df15398b60c2558c11718c6d7f72453b5","reason":"Changelog line:180 records exact release history for that scalar; it does not direct current execution."}
|
|
127
131
|
- {"path":"CHANGELOG.md","region":"line:190","category":"argument_bearing","classification":"exact_exemption","normalized_sha256":"df8119585a79f11d42187fd6f57375401442e761ce94e30dd5a4b280c7a6f9e9","reason":"Changelog line:190 records exact release history for that scalar; it does not direct current execution."}
|
|
128
132
|
- {"path":"CHANGELOG.md","region":"line:198","category":"argument_bearing","classification":"exact_exemption","normalized_sha256":"0d5ca59bac58c2171d89e48ba4b9068ff7a8681a852272a09b3a4b28c6edf0a0","reason":"Changelog line:198 records exact release history for that scalar; it does not direct current execution."}
|
|
129
133
|
- {"path":"CHANGELOG.md","region":"line:202","category":"argument_bearing","classification":"exact_exemption","normalized_sha256":"b5dc0e45378318464e595a7ccdbb15acc31ce67a2d55b2a9f8c3f8531c8e6ec7","reason":"Changelog line:202 records exact release history for that scalar; it does not direct current execution."}
|
|
@@ -56,11 +56,13 @@ checking generated behavior.
|
|
|
56
56
|
|
|
57
57
|
[`package-publication.json`](./package-publication.json) owns the shared
|
|
58
58
|
repository publication transaction and distinguishes the development
|
|
59
|
-
TypeScript package from the transitional stable shim.
|
|
60
|
-
|
|
59
|
+
TypeScript package from the transitional stable shim. Normal development CI
|
|
60
|
+
derives version and `gitRef` metadata in isolated construction without changing
|
|
61
|
+
the checkout. Manual development recovery and stable publication retain their
|
|
62
|
+
separate prepared metadata paths. Both adapters require explicit publication
|
|
61
63
|
authority, a clean tree, exact registry convergence, safe exact-version replay,
|
|
62
|
-
and bounded phase results. Development
|
|
63
|
-
|
|
64
|
+
and bounded phase results. Development uses the `next` tag; stable retains shim
|
|
65
|
+
tests/construction and the `latest` tag. Each
|
|
64
66
|
adapter's only publication smoke is its non-mutating, no-project exact-version
|
|
65
67
|
`--version` invocation, so publication does not absorb migration coverage.
|
|
66
68
|
|
|
@@ -72,7 +72,10 @@ tiers:
|
|
|
72
72
|
optional:
|
|
73
73
|
- project_path
|
|
74
74
|
- session_id
|
|
75
|
-
|
|
75
|
+
- conversation_key
|
|
76
|
+
- origin_id
|
|
77
|
+
- content_fingerprint
|
|
78
|
+
- author_class
|
|
76
79
|
source_identity_rule: >-
|
|
77
80
|
`source_id` is the stable, content-addressable identity of one full
|
|
78
81
|
record. It is derived deterministically from source kind and source parts
|
|
@@ -99,11 +102,16 @@ tiers:
|
|
|
99
102
|
- timestamp
|
|
100
103
|
- project_id
|
|
101
104
|
- runtime
|
|
105
|
+
- source_class
|
|
102
106
|
- source_product
|
|
107
|
+
- active_runtime
|
|
103
108
|
- evidence_anchor
|
|
104
109
|
optional:
|
|
105
110
|
- conversation_key
|
|
106
111
|
- session_id
|
|
112
|
+
- origin_id
|
|
113
|
+
- content_fingerprint
|
|
114
|
+
- author_class
|
|
107
115
|
derivation_rule: >-
|
|
108
116
|
The signal tier is a pure function of the full-evidence tier: identical
|
|
109
117
|
inputs produce identical signal membership and ordering. It never stores
|
|
@@ -228,6 +236,35 @@ signal_semantics:
|
|
|
228
236
|
severs the citation chain.
|
|
229
237
|
derivable_from: signal record evidence_anchor -> full_evidence source_id
|
|
230
238
|
consumer: glossary
|
|
239
|
+
session_id:
|
|
240
|
+
meaning: >-
|
|
241
|
+
The stable session identity needed to distinguish independent
|
|
242
|
+
conversation origins without exposing a raw session transcript.
|
|
243
|
+
derivable_from: conversation_turn session_id
|
|
244
|
+
consumer: glossary
|
|
245
|
+
origin_id:
|
|
246
|
+
meaning: >-
|
|
247
|
+
The stable, content-addressed identity of the source that originally
|
|
248
|
+
supplied transported content. It distinguishes one original
|
|
249
|
+
instruction origin from transcript copies without retaining the raw
|
|
250
|
+
source label.
|
|
251
|
+
derivable_from: explicit adapter transport provenance or session origin
|
|
252
|
+
consumer: glossary
|
|
253
|
+
content_fingerprint:
|
|
254
|
+
meaning: >-
|
|
255
|
+
A lowercase SHA-256 fingerprint of the source content used to prevent
|
|
256
|
+
copied or repeated conversation text from counting as independent.
|
|
257
|
+
derivable_from: source record content
|
|
258
|
+
consumer: glossary
|
|
259
|
+
author_class:
|
|
260
|
+
meaning: >-
|
|
261
|
+
The source author class, such as user, agent, or injected instruction,
|
|
262
|
+
used to keep agent-authored text from establishing personal terminology.
|
|
263
|
+
derivable_from: >-
|
|
264
|
+
explicit original author provenance when origin_id is transported;
|
|
265
|
+
otherwise conversation_turn actor metadata when no transported origin
|
|
266
|
+
is claimed
|
|
267
|
+
consumer: glossary
|
|
231
268
|
preservation_rule: >-
|
|
232
269
|
Fixing the contract must not remove the required meaning of any kind above
|
|
233
270
|
from current consumers. Personal glossary synthesis is named here because it
|
|
@@ -313,6 +350,10 @@ consumer_map:
|
|
|
313
350
|
- record_identity
|
|
314
351
|
- date
|
|
315
352
|
- evidence_anchor
|
|
353
|
+
- session_id
|
|
354
|
+
- origin_id
|
|
355
|
+
- content_fingerprint
|
|
356
|
+
- author_class
|
|
316
357
|
rule: >-
|
|
317
358
|
Personal glossary synthesis actively consumes bounded personal-history
|
|
318
359
|
signals. Project-file provenance remains repository evidence under the
|
|
@@ -440,7 +481,7 @@ compatibility_states:
|
|
|
440
481
|
reason: oversized
|
|
441
482
|
outcome: degrade
|
|
442
483
|
recovery: >-
|
|
443
|
-
Refresh bounded tiers with `npx -y agentera@next
|
|
484
|
+
Refresh bounded tiers with `npx -y agentera@next report refresh --consent
|
|
444
485
|
local-history` or read the signal tier, which is bounded to fit. Do not
|
|
445
486
|
attempt to load the oversized artifact whole.
|
|
446
487
|
determinism: >-
|
|
@@ -454,7 +495,7 @@ compatibility_states:
|
|
|
454
495
|
reason: legacy_monolithic_state
|
|
455
496
|
outcome: degrade
|
|
456
497
|
recovery: >-
|
|
457
|
-
Emit deterministic refresh guidance: run `npx -y agentera@next
|
|
498
|
+
Emit deterministic refresh guidance: run `npx -y agentera@next report refresh
|
|
458
499
|
--consent local-history` to publish bounded tiers. Legacy monolithic
|
|
459
500
|
state receives refresh guidance rather than indefinite read
|
|
460
501
|
compatibility.
|
|
@@ -467,7 +508,7 @@ compatibility_states:
|
|
|
467
508
|
reason: no_evidence
|
|
468
509
|
outcome: degrade
|
|
469
510
|
recovery: >-
|
|
470
|
-
Report `npx -y agentera@next
|
|
511
|
+
Report `npx -y agentera@next report refresh --consent local-history` and the
|
|
471
512
|
`--corpus PATH` override. Must not auto-build, scan home directories, or
|
|
472
513
|
run live extraction without consent.
|
|
473
514
|
determinism: >-
|