VibeVM
Contents
On this page
en
Publisher
org.vibevm.core
Version
1.0.0latest
Audiences
Reading time
5 min
Rendered
Read aloud
never

NEXT temporary contract 3.2 — Exact source query: selection, representation, proof

01Temporary normative staging unit. Its body is the accepted architecture from refined plan revision 4, section 3.2. Before production code cites this law, promote the relevant clauses into permanent specifications. This file is consumed only after semantic coverage, implemented behavior and retained evidence are accepted. The task/retirement checker cannot perform semantic acceptance.

02Предлагаемый public contract:

03Requirement: vibe spec resolve spec://address --path <selected-node> --json [--expect-resolution <digest>] [--expect-source-hash <recipe:hash>] [--expect-document-hash <sha256>] [--require-source-proof] [--max-bytes <bound>]

04    vibe spec resolve <spec://address> --path <selected-node> --json
        [--expect-resolution <digest>]
        [--expect-source-hash <recipe:hash>]
        [--expect-document-hash <sha256>]
        [--require-source-proof]
        [--max-bytes <bound>]

05MCP spec_resolve принимает address/expectations/response bounds, но не arbitrary path; server context предоставляет selected node. M-06-A source descriptor обязателен до discovery/parsing. Paging/chunking ограничивает ответ, не допустимый общий размер бутлейна. Текстовый default печатает readable unit, JSON возвращает один typed result. Path-only authoritative mode не вводится.

06Address grammar e1:

07Requirement: - Scheme exact spec://. Canonical public authority — manifest-valid qualified group/name. Legacy host form поддерживается только существующим internal compatibility adapter, не guessed public alias. - Optional @version — exact canonical SemVer, не version range. Для dependency должно совпасть с выбранным capture; для self возвращать явное unsupported-version-on-self, сохраняя existing отказ до отдельного решения. - Для declared Vibe specs logical doc path extensionless и relative; URI grammar и physical portable components раздельны. Whole-resource/ordinary-section references разрешаются по explicit resource/export IDs из descriptor; наличие spec:// address не делает содержимое fact. Existing PROP/FEAT abbreviated stem применяется только к declared spec candidates при полной enumeration и ровно одном match. - E1 отвергает percent-encoded forms; будущий decode — один strict pass до validation. Запрещены dot/dotdot, empty components, backslash, colon/ADS, control/NUL, drive/UNC/device roots, Windows reserved names, trailing dots/spaces. Используется общий portable/NFC/case identity seam, не copy blacklist. - Не вводить молчаливую normalization разных logical addresses. Physical case/NFC aliases, ambiguous exports/stems и duplicate spec anchors дают error. Same-stem md/xml pair — collision лишь если оба declared representations одного logical spec; ordinary data/resource рядом разрешены. - Anchor reuse existing hierarchical grammar. Whole document без fragment допустим. Pattern — не point query. ~rN до реализации revision observer → revision-unsupported, не silently ignored. - Extension suffixes и legacy spellings имеют отдельную validated compatibility conversion; upgrade не удаляет реальные references без inventory и migration.

08- Scheme exact spec://. Canonical public authority — manifest-valid qualified group/name. Legacy host form поддерживается только существующим internal compatibility adapter, не guessed public alias.
- Optional @version — exact canonical SemVer, не version range. Для dependency должно совпасть с выбранным capture; для self возвращать явное unsupported-version-on-self, сохраняя existing отказ до отдельного решения.
- Для declared Vibe specs logical doc path extensionless и relative; URI grammar и physical portable components раздельны. Whole-resource/ordinary-section references разрешаются по explicit resource/export IDs из descriptor; наличие spec:// address не делает содержимое fact. Existing PROP/FEAT abbreviated stem применяется только к declared spec candidates при полной enumeration и ровно одном match.
- E1 отвергает percent-encoded forms; будущий decode — один strict pass до validation. Запрещены dot/dotdot, empty components, backslash, colon/ADS, control/NUL, drive/UNC/device roots, Windows reserved names, trailing dots/spaces. Используется общий portable/NFC/case identity seam, не copy blacklist.
- Не вводить молчаливую normalization разных logical addresses. Physical case/NFC aliases, ambiguous exports/stems и duplicate spec anchors дают error. Same-stem md/xml pair — collision лишь если оба declared representations одного logical spec; ordinary data/resource рядом разрешены.
- Anchor reuse existing hierarchical grammar. Whole document без fragment допустим. Pattern — не point query. ~rN до реализации revision observer → revision-unsupported, не silently ignored.
- Extension suffixes и legacy spellings имеют отдельную validated compatibility conversion; upgrade не удаляет реальные references без inventory и migration.

09Authority: trusted constructor предоставляет opaque SelectedSourceWorld: selected workspace identity, source roots/captures, effective visible closure, exact resolution digest, format metadata. Existing owner-view semantics переиспользуются. Все lock rows нельзя объявить видимыми. World builder не invokes providers. Зафиксировать availability boundary: unrelated broken member slot не должен читаться ради выбранного point, если это можно сделать по тому же authoritative closure; при невозможности вернуть world-unavailable, не «package missing».

10Observation: удержать root/parent/file capabilities, прочитать один retained raw snapshot; проверочные passes могут быть двумя. Из этого же buffer получить raw digest, parse, projection, fragment. Pre/post checks доказывают отсутствие наблюдённого изменения в stated window, не невозможность hostile ABA. Query не создаёт .vibe или locks.

11Integrity ladder:

12Requirement: | Level | Что доказано | Что требуется | |---|---|---| | observed | Returned bytes и их digest | Safe retained observation; self и development source допустимы | | record-consistent | Bytes совпали с local slot footprint | Valid bounded record + same observation; не provenance | | source-proven | Document является членом captured source, соответствующего trusted expected root hash | Независимо проверенный исходный archive/tree с known hash recipe и membership map/proof | | derivation-proven | Materialized bytes получены из source-proven bytes указанным transform | Exact trusted converter + authorized overlay + source→output mapping + сравнение returned bytes |

13| Level | Что доказано | Что требуется |
|---|---|---|
| observed | Returned bytes и их digest | Safe retained observation; self и development source допустимы |
| record-consistent | Bytes совпали с local slot footprint | Valid bounded record + same observation; не provenance |
| source-proven | Document является членом captured source, соответствующего trusted expected root hash | Независимо проверенный исходный archive/tree с known hash recipe и membership map/proof |
| derivation-proven | Materialized bytes получены из source-proven bytes указанным transform | Exact trusted converter + authorized overlay + source→output mapping + сравнение returned bytes |

14Record.source_hash, recipe label или ещё один local record digest не повышают proof level. Existing flat tree hash не даёт бесплатный Merkle proof. V1 может проверить весь bounded captured source один раз и построить immutable in-memory file index. Query не fetch-ит отсутствующий original; строгий offline запрос отказывает. Для materialized transforms допустим pure builtin conversion verified capture в памяти; native conversion внутри query запрещена.

15Hardlink slot не проходит существующий single-link reader. Default e1 возвращает typed unavailable для такого observation, не делает COW. Read-only shared-file support — отдельная проверяемая policy, не ослабление single-link writer ownership. In-place source может быть observed; source-proven — только если весь нужный capture действительно совпал с expected source, не по mode label.

16Representation: declared Vibe XML использует existing XML→Markdown pivot и named recipe; это source unit, не compiled closure. Ordinary Markdown получает CommonMark section view без Vibe facts, XML-data — raw bytes и optional safe structural view, opaque — raw resource. Binary/non-UTF8 response имеет explicit encoding, не lossy replacement. Raw document, representation и fragment digests раздельны; semantic-equivalence hash не обещается. Return: logical address/resource ID, descriptor identity, capture/proof, recipe/content/encoding, fragment extent и span basis; facts только для declared Vibe source. Physical XML-data positions, если parser их доказал, относятся к raw encoding; Vibe XML projection spans не выдаются за original map. Unparseable data fixture остаётся retrievable bytes; structured view returns diagnostic. Custom executing frontend extraction требует separate capability. M-10 позднее использует эти же proof carriers для local derivative без создания второго resolver.

17Errors различают invalid-request, not-found, ambiguous, unavailable, stale, invalid, unstable, internal. Closed reasons покрывают grammar, unselected source, version/expectation mismatch, unsafe/unreadable path, incomplete enumeration, size/depth, duplicate anchor, revision, unsupported format, record/source/derivation mismatch. CLI/MCP сохраняют один reason; ошибки не печатают credential-bearing paths/content.

For an agent

This page has a machine mirror. The citation carries the version rather than latest, so what an agent quotes does not move under it.

spec://org.vibevm.core/vibevm@1.0.0/terraforms/next/contracts/NEXT-A02

.md.xmlllms.txt