@lapxo/head 0.1.7 → 0.2.1
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 +39 -14
- package/TARGET.bound +237 -31
- package/dist/src/adopt/adopt.d.ts +2 -2
- package/dist/src/adopt/adopt.js +20 -6
- package/dist/src/ahead/read.d.ts +2 -2
- package/dist/src/ahead/read.js +2 -4
- package/dist/src/answers/answered.js +1 -1
- package/dist/src/compile/pin.d.ts +1 -1
- package/dist/src/compile/pin.js +5 -3
- package/dist/src/core/answer.d.ts +12 -0
- package/dist/src/core/answer.js +1 -1
- package/dist/src/core/association.d.ts +16 -0
- package/dist/src/core/association.js +34 -0
- package/dist/src/core/composition.d.ts +32 -0
- package/dist/src/core/composition.js +28 -0
- package/dist/src/core/package.d.ts +1 -0
- package/dist/src/core/package.js +17 -4
- package/dist/src/core/read.d.ts +2 -1
- package/dist/src/core/read.js +2 -1
- package/dist/src/core/receiver.d.ts +11 -0
- package/dist/src/core/receiver.js +122 -0
- package/dist/src/core/share-bundle.d.ts +9 -0
- package/dist/src/core/share-bundle.js +56 -0
- package/dist/src/doors/head.d.ts +1 -0
- package/dist/src/doors/head.js +11 -3
- package/dist/src/flows/answer.js +7 -3
- package/dist/src/flows/call.d.ts +1 -1
- package/dist/src/flows/call.js +28 -4
- package/dist/src/flows/device.d.ts +14 -5
- package/dist/src/flows/device.js +15 -7
- package/dist/src/flows/plan.d.ts +2 -0
- package/dist/src/flows/plan.js +16 -2
- package/dist/src/index.js +3 -31
- package/dist/src/links/birth.d.ts +6 -0
- package/dist/src/links/birth.js +48 -0
- package/dist/src/links/inspect.d.ts +1 -1
- package/dist/src/links/inspect.js +23 -12
- package/dist/src/links/link.d.ts +2 -2
- package/dist/src/links/link.js +7 -10
- package/dist/src/onboard/first.js +1 -1
- package/dist/src/onboard/owed.js +1 -1
- package/dist/src/places/admit.js +1 -1
- package/dist/src/places/found.js +3 -1
- package/dist/src/ports/adapters/bundle.d.ts +44 -0
- package/dist/src/ports/adapters/bundle.js +173 -0
- package/dist/src/ports/adapters/configured.d.ts +35 -0
- package/dist/src/ports/adapters/configured.js +67 -0
- package/dist/src/ports/adapters/mcp.d.ts +59 -0
- package/dist/src/ports/adapters/mcp.js +122 -0
- package/dist/src/ports/adapters/network.d.ts +12 -0
- package/dist/src/ports/adapters/network.js +67 -0
- package/dist/src/ports/adapters/protocol.d.ts +6 -0
- package/dist/src/ports/adapters/protocol.js +51 -0
- package/dist/src/ports/adapters/remote.d.ts +13 -0
- package/dist/src/ports/adapters/remote.js +33 -0
- package/dist/src/ports/bound.d.ts +0 -1
- package/dist/src/ports/bound.js +14 -15
- package/dist/src/ports/host.d.ts +18 -0
- package/dist/src/ports/host.js +58 -9
- package/dist/src/sources/connect.d.ts +1 -0
- package/dist/src/sources/connect.js +15 -11
- package/dist/src/tools/card.js +3 -2
- package/dist/src/use/named.js +3 -3
- package/dist/src/verbs/ask.js +7 -1
- package/dist/src/verbs/card.js +2 -2
- package/dist/src/verbs/do.js +2 -1
- package/package.json +6 -5
- package/runtime.bundle.json +24026 -0
- package/dist/src/ports/reading.d.ts +0 -8
- package/dist/src/ports/reading.js +0 -14
package/TARGET.bound
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
bound-lock/1 about= at=policy:head/doors/0.1.7-guard by=target form=alphabet measure=id role=writes scope=device/head/coverage value=read/**|kept/**|act/**|access/**|use/**|refused/**
|
|
2
|
+
bound-lock/1 about="# A typed answer from a local API\n\nThis checkout example needs macOS and Node 22.18 or later. From the repository root, install its pinned dependencies with `npm ci --ignore-scripts`.\n\nThe existing test client speaks MCP, follows cards and handles the catalogue actions through the three public tools. This demo creates a temporary home, simulated keychain and loopback API. Its automatic yes applies only to this fixture. In normal use, you approve the connection yourself. The first run may fetch pinned public world artifacts; the API itself is local.\n\nRun this from the repository root:\n\n```sh\nnode --input-type=module <<'JS'\nimport { readFileSync, mkdtempSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { tmpdir } from 'node:os';\nimport { strict as assert } from 'node:assert';\nimport { api } from './test/two-sources.ts';\nimport { ask } from './test/client.ts';\nimport { fakeKeychain } from './test/fake-keychain.ts';\nimport { parse } from '@lapxo/topos/wire';\nconst demo = JSON.parse(readFileSync('docs/examples/first-minute.json', 'utf8'));\nconst fixture = await api(() => JSON.stringify(demo.response));\nconst home = mkdtempSync(join(tmpdir(), 'head-example-'));\nconst env = { ...fakeKeychain({}).env, HEAD_HOME: join(home, 'home'), HOME: home, USERPROFILE: home };\nconst call = (name, arguments_) => ({ method: 'tools/call', params: { name, arguments: arguments_ } });\ntry {\n const results = await ask([\n call('connect', { source: demo.source, document: fixture.document }),\n call('ask', { place: join(home, 'place'), source: demo.source, operation: demo.operation, args: demo.args })\n ], [], env, () => ({ action: 'accept', content: { yes: true } }));\n const output = results.at(-1).result.content[0].text;\n const lines = output.split('\\n').map(parse).filter(p => p.kind === 'fact').map(p => p.value.fields);\n for (const [field, value] of Object.entries(demo.expectedTypedValues))\n assert(lines.some(line => line.scope?.endsWith('/' + field) && line.value === value));\n assert(lines.some(line => line.scope?.startsWith('read/forecast/') && line.measure === 'digest' && line.sig));\n console.log(JSON.stringify({ source: demo.source, values: Object.fromEntries(Object.keys(demo.expectedTypedValues).map(field => [field, lines.find(line => line.scope?.endsWith('/' + field)).value])), receipt: lines.find(line => line.scope?.startsWith('read/forecast/') && line.measure === 'digest').value }, null, 2));\n} finally { fixture.close(); }\nJS\n```\n\nThe returned fields include `temperature = 21` and `sky = clear`, plus the read's signed digest receipt. Paths and signatures vary; those are observations, not fixed demo bytes. The fixture schema supplies the types. Another API with no usable schema is named untyped instead of receiving invented types.\n\nTo ask a real source, supply its document in your assistant, choose a source name, and approve its connection. An overlay can fill in what the provider declares separately. Access is anonymous only when permitted, or obtained by the declared flow or secret-input path. Never enter a secret in the model conversation. See [access options](connect-any-api.md).\n\nThe separate timing acceptance is `HEAD_ONBOARDING=1 HEAD_FIRST_CELL_STRICT=1 node --test test/onboarding.test.ts`. Running this demo is not a timing or platform certification.\n" at=policy:head/documentation/0.2.0 by=target form=alphabet measure=text role=writes scope=prose/en/page/first-minute shape=docs/first-minute.md value=lock
|
|
3
|
+
bound-lock/1 about="# Agreement keeps its sources\n\nTwo matching answers need not be two independent observations. head compares typed fields, keeps each source and its read receipt, and displays declared lineage rather than inventing a confidence score.\n\n| Marks | What the view says |\n|---|---|\n| `●○` | A later source shares declared lineage or a recognized source identity with an earlier one. |\n| `●●` | Separate source marks in this view. Unknown or undeclared lineage is not proof of independence. |\n\nIf values differ, head shows each source's value and time. It does not pick a winner or manufacture a numeric loss. A field missing from one source is partial evidence, not disagreement with an assertion nobody made.\n\nThis checkout example uses the existing two-source fixture and declaration/withdrawal mechanism. The fixture sources return the same two fields; these are not measurements or an independence experiment. Run `npm ci --ignore-scripts` first, then:\n\n```sh\nnode --input-type=module <<'JS'\nimport { readFileSync } from 'node:fs';\nimport { strict as assert } from 'node:assert';\nimport { api, person } from './test/two-sources.ts';\nconst demo = JSON.parse(readFileSync('docs/examples/lineage.json', 'utf8'));\nconst a = await api(() => JSON.stringify(demo.response));\nconst b = await api(() => JSON.stringify(demo.response));\ntry {\n const p = await person(a.document, b.document);\n p.rooted([demo.declare]);\n const grouped = await p.asked();\n assert(grouped.length > 0 && grouped.every(c => c.code === demo.before.code && c.fields.marks === demo.before.marks));\n const receipts = new Set(grouped.flatMap(c => c.fields.receipts.split('|')));\n assert(grouped.every(c => c.fields.sources === 'forecast, mirror' && c.fields.receipts.split('|').length === 2));\n assert([...receipts].every(receipt => p.receipts().has(receipt)));\n p.rooted([demo.withdraw]);\n const after = await p.asked();\n assert(after.length > 0 && after.every(c => c.code === demo.after.code && c.fields.marks === demo.after.marks));\n assert(after.every(c => c.fields.sources === 'forecast, mirror'));\n assert([...receipts].every(receipt => p.receipts().has(receipt)));\n console.log(JSON.stringify({ before: demo.before, after: demo.after, oldReceiptsRetained: true, independenceProved: false }, null, 2));\n} finally { a.close(); b.close(); }\nJS\n```\n\nThe declaration says that `mirror` shares `forecast`'s lineage. Its withdrawal removes that current claim, not the sources or old receipts. The later `●●` is reported as **unknown lineage**, not newfound independence. Each mark still points to a source-specific read; grouping does not merge receipt identities.\n" at=policy:head/documentation/0.2.0 by=target form=alphabet measure=text role=writes scope=prose/en/page/lineage shape=docs/lineage.md value=lock
|
|
2
4
|
bound-lock/1 about="# Connect any API\n\nhead reads an API by the document its provider already publishes, at the address you give it. head names no provider and connects none of its own: what is connected is what you hand it. Here is one way for each level of access, with an API of each kind.\n\n### No access: a document that says nothing about it\n\nTake an API whose document lists its operations and states nothing about access. head does not guess what that means: it tries a read once with nothing attached, and keeps what it saw (`access/<source>/<operation>/observed anonymous`) as a receipt its own key signs. Nothing but a read is ever tried this way.\n\nConnect the document by its address, `https://<provider>/openapi.yaml`, by the site that publishes it, or by a folder holding it, as `forecast`, then read one of its operations. With no place yet, one yes founds your place in `~/place`, connects the document there and lets head read `forecast` for the next 90 days. A document that names several servers asks once which one. The answer comes back typed by what the document declares, one value a line, with a signed receipt of the read (abridged):\n\n```text\nanswer/<request>/current/temperature number …\nanswer/<request>/current_units/temperature text …\nread/forecast/<operation>/<request> digest sha256:… signed by head\n```\n\nAn overlay can still say what the provider says on its own site, so the place states it rather than observes it:\n\n```yaml\noverlay: 1.0.0\ninfo: { title: the forecast, read without a key, version: '1' }\nactions:\n - target: \"$.paths['/forecast'].get\"\n description: the provider says this read needs no key\n update: { security: [] }\n```\n\nWhatever API you connect, its terms are the provider's: read them before you connect it, and say where an answer came from when they ask you to.\n\n### A declared flow: OAuth 2.0\n\nTake an API whose document declares OAuth 2.0 with an authorization code. head compiles it into the two steps it takes, the provider's page with PKCE and then the token exchange, and nobody writes a line of it. What it needs is yours: the client id of an app you registered with the provider, signed into the place as `keys/access/<source>/<flow> client <id>`. Until then head says so and calls nothing.\n\n### A secret entered by hand\n\nWhen a document declares a bearer token or an API key and no way to obtain one, the key is a secret input. head asks for it on its own one-time page, never through the model, and only when the place's root allows a secret with `access/secret-inputs`. It is kept in the keychain, never in a file.\n\n### When the document says too little\n\nA login of its own (an email, a one-time code, a choice of account) is written once as an `x-access` flow, an Arazzo profile in an overlay, and every API of the same issuer refers to it with one `$ref`. The profile and its vectors are on topos-openapi's own page, `docs/x-access.md` in `@lapxo/topos-openapi`. Every API connected this way is read the same way afterwards: one access per issuer, each answer typed and kept.\n" at=policy:head/connect/0.1.4 by=target form=alphabet measure=text role=writes scope=prose/en/page/connect-any-api shape=docs/connect-any-api.md value=lock
|
|
3
|
-
bound-lock/1 about="# Security\n\nReport vulnerabilities privately to hello@lapxo.com
|
|
4
|
-
bound-lock/1 about="#
|
|
5
|
+
bound-lock/1 about="# Security\n\nReport vulnerabilities privately to hello@lapxo.com. Do not open public issues for security reports.\n\nWe acknowledge reports within 7 days. There is no bug bounty or reward. We will credit you in a fix if you want.\n\n## What is trusted\n\nThe owner chooses the place, its admitted keys and permissions, the installed instrument, the source descriptions and the transport policy. The operating system, keychain and code running with the user's privileges are part of the trusted computing base. The model, remote source content, received packages and suggested actions are not authority. The MCP client is trusted to display consent requests and report the person's response accurately; a compromised or auto-approving client can misrepresent that response, and head cannot prove a person clicked yes.\n\nA source document describes an operation. Its accuracy and the source's data remain the provider's responsibility. A misclassified read can have server-side effects; head does not prove the provider's implementation. A signature proves the statement checked under its admitted key and context; it does not prove that an API answer is true.\n\n## Signing and access secrets\n\nSigning keys are handled by the short-lived signer. Its supported interface returns public keys or signatures, and the long process refuses a signing key requested by name. API credentials are different: the access and transport adapters must handle them to authenticate the request to the declared provider. Supported paths keep them out of model arguments, normal answers, command arguments and ordinary receipts.\n\nThis is a code boundary, not OS isolation. The signer and head run as the same user. A compromised same-user process can invoke the keychain, replace code or read data that user can access. This release does not claim protection from it, nor guaranteed secret removal from arbitrary malicious source bodies, crash dumps or external programs. Do not put secrets in API descriptions or model messages.\n\n## Network and doors\n\nA digest is not network permission. Retrieval still requires the receiver's origin and transport policy. The declared host checks destinations and redirect policy; a matching hash does not authorize a private-network request, a downgrade or forwarding credentials to another origin.\n\nThe network doors bind to loopback and validate their Host and Origin boundaries. Loopback alone is not authentication. A client can suggest an action, but the place's permissions and consent rules still apply. Cancellation and request scratch cleanup have their existing bounds; they do not make an arbitrary process safe to run.\n\n## Configuration is not general execution authority\n\nThe native authority preflight checks exact configuration records and their admission context. It authenticates the selected place, instrument, key, records, epoch and explicit clock. A card is an observation of that context, not permission to sign or land a changed future action. The actual act independently checks current authority.\n\nAPI execution, aggregates, access negotiation, secret consent and personal-attestation admission are not all covered by that preflight. Their existing domain checks remain. An old card can become stale after any Root epoch change even when a particular key's eligibility remains unchanged. A local coverage declaration is not revocation of the original Root anchor.\n\n## Sharing and lineage\n\nA content reference, source package and portable public birth declaration are different objects. Inspection does not connect a source, import grants or install an owner. A holder address is not authenticated sender identity. Hash equality establishes the named bytes only under the selected contract.\n\nSource descriptions can themselves contain sensitive information. Review them before sharing. The selected portable birth profile excludes authority material; it does not make every file in a place public. Keep the local birth journal, credentials, keychain, admission history and derived stores out of a shared package.\n\nLineage marks report declared relationships and recognized source identity. They do not establish statistical independence, a confidence score or a count of independent causes. Withdrawing a declaration changes the current view; it does not erase earlier receipts.\n\n## Supported environment and useful reports\n\nmacOS desktop is the supported environment. Other platform adapters and tests are not evidence of a real Linux secret service, browser flow or unattended deployment. Multiple local processes do not establish distributed coordination over a shared object store.\n\nUseful reports include a reproducible action that obtains a key without coverage, lands without an admitted signer, bypasses a door or network policy, changes a refusal through a supported door, or treats received bytes or a stale card as permission. Include the version, expected boundary and a minimal reproducer. Redact credentials and personal paths; never send a signing key.\n\nThe model's behavior, third-party API correctness and programs outside the supported boundaries are not security guarantees of head. A vulnerability in how head handles those inputs is still relevant. Related algebra, contract and instrument bugs can be reported through the same private channel.\n" at=policy:head/documentation/0.2.0 by=target form=alphabet measure=text role=writes scope=prose/en/security shape=SECURITY.md value=lock
|
|
6
|
+
bound-lock/1 about="# Share public declarations, then inspect them\n\nA place has several different things you can share:\n\n- A source package names its documents, overlays and compiled pins by digest. Receiving it still needs local permission.\n- A content reference names bytes. A separate holder location says where to obtain them; no location means no invented address. A viewer address is not a holder.\n- `birth.topos` is a separate unsigned public declaration artifact. It does not carry the local `birth.bound`, keys, grants or admission history.\n\nThis executable checkout example shares only a public language declaration. It creates independent fixture places and simulated keys. It does not contact an external API or change your real keychain. Run `npm ci --ignore-scripts` first; Node 22.18 or later is required.\n\n```sh\nnode --input-type=module <<'JS'\nimport { readFileSync, mkdtempSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { tmpdir } from 'node:os';\nimport { strict as assert } from 'node:assert';\nimport { born, line } from './test/place.ts';\nimport { ask } from './test/client.ts';\nconst demo = JSON.parse(readFileSync('docs/examples/sharing.json', 'utf8'));\nconst shared = mkdtempSync(join(tmpdir(), 'head-public-example-'));\nconst sender = born(undefined, [line(demo.sender.scope, 'id', demo.sender.value)], null, false, 'catalog', false);\nconst receiver = born(undefined, [line(demo.receiver.scope, 'id', demo.receiver.value)], null, false, 'route-notes', false);\nconst env = p => ({ ...p.keychain.env, HEAD_HOME: join(mkdtempSync(join(tmpdir(), 'head-example-home-')), 'home') });\nconst call = (name, arguments_) => ({ method: 'tools/call', params: { name, arguments: arguments_ } });\nconst [packed] = await ask([call('share', { place: sender.place, to: join(shared, 'public') })], [shared], env(sender));\nconst birth = packed.result.structuredContent.cells.find(c => c.code === 'head/birth-shared');\nassert(birth);\nconst before = readFileSync(join(receiver.place, 'TARGET.bound'));\nconst [inspected, altered] = await ask([\n call('connect', { place: receiver.place, document: birth.fields.document, digest: birth.fields.digest }),\n call('connect', { place: receiver.place, document: birth.fields.record + ' ', digest: birth.fields.digest })\n], [shared], env(receiver));\nconst observation = inspected.result.structuredContent.cells.find(c => c.code === demo.expectedCode);\nassert(observation && observation.fields.collisions === demo.expectedCollision);\nassert(altered.result.structuredContent.cells.some(c => c.code === demo.negativeCode));\nassert.deepEqual(readFileSync(join(receiver.place, 'TARGET.bound')), before);\nconsole.log(JSON.stringify({ inspection: observation.code, collision: observation.fields.collisions, alteredBytes: demo.negativeCode, authorityTransferred: false }, null, 2));\nJS\n```\n\nThe receiver names the occupied `lang` coordinate and keeps its own value. One changed byte with the expected digest is refused. Inspection does not import permission or identify an authenticated sender. To adopt a declaration, the receiver uses its ordinary local admission process; this example intentionally does not do that.\n\nA standing reference follows the same separation: compare the expected content identity and apply the receiver's network policy before fetching. A holder URL is not authority. The existing located-reference vector is `node --test test/link-url.test.ts`; it also covers missing locations, altered bytes and denied transport. Review source documents for sensitive information before sharing them.\n" at=policy:head/documentation/0.2.0 by=target form=alphabet measure=text role=writes scope=prose/en/page/sharing shape=docs/sharing.md value=lock
|
|
7
|
+
bound-lock/1 about="# head\n\nAsk your APIs through an assistant. Keep who answered, what was read, and what you allowed.\n\nhead is an MCP server. Give it an API document, approve the connection, and ask a question. It reads operations the document declares, returns typed fields when a schema is available, and keeps signed receipts of its reads. Without a usable schema, the answer is named as untyped.\n\n```text\nYou: Connect this API as forecast.\n [give its OpenAPI document; approve the connection]\nYou: What is the forecast in Lima?\n\nforecast: temperature 21, sky clear\nreceipt: sha256:…\n```\n\nThis is an illustrative fixture, not a live forecast. [Run the local example](docs/first-minute.md) without an account or a real secret.\n\n## Start\n\nFor an assistant that starts MCP servers by command:\n\n```sh\nnpx -y @lapxo/head@0.2.1 run\n```\n\nThe pin above names this release; the executable examples in this tree use the checkout. A client can also open a desktop extension from [releases](https://github.com/Lapxo/head/releases); check the artifact digests supplied with the release. Starting head alone prints help; `head run` starts the MCP server.\n\nmacOS is the supported desktop environment. Node 22.18 or later is required. Linux, Windows and unattended cloud execution are not validated as supported environments here. A successful mock or CI job does not establish working system-keychain and browser integration.\n\n## What you do\n\n- **Connect** a document, optionally with an overlay. head pins the compiled description by digest. With no place yet, the first approved connection creates `~/place`.\n- **Ask** for one operation or compare the same question across sources. Receipts keep the source and time. A missing answer stays owed; an empty answer is not a missing answer.\n- **Act** within the place's permissions and consent rules. A suggested next step is not authorization. Writes do not become allowed because a model asked for them.\n- **Share and inspect** public material. A reference identifies content; a separate holder location says where to obtain it. Inspection checks the selected contract and grants nothing. [Try sharing and verification](docs/sharing.md).\n\nYour place keeps its declarations as text. `birth.bound` separates your local declarations from head's profile. Keep it private unless you have reviewed what you are sharing: it is not the portable public `birth.topos` artifact.\n\n## Two names are not two independent sources\n\nIf `mirror` shares `forecast`'s declared lineage, agreement is shown as `●○`. Both sources and their receipts remain visible. `●●` does not prove independence; it only reports what the declared lineage and source identity establish. Disagreement keeps each source's value instead of choosing a winner.\n\n[Run the lineage example](docs/lineage.md), including withdrawal of the lineage declaration without erasing earlier receipts.\n\n## Boundaries you can check\n\nSigning keys stay behind a short-lived signer port in the supported flow. Tokens go to the declared transport, not into model arguments. A compromised process running as your user is outside that code boundary: it can invoke the keychain itself.\n\nA digest is not network permission or proof that an answer is true. Received bytes install no authority. Configuration preflight does not replace API permission, access or secret-consent checks. See the [threat model and reporting policy](SECURITY.md), and [connect an API](docs/connect-any-api.md) for access options.\n\nThe three public MCP tools are `ask`, `connect` and `do`. Examples reuse the existing client and fixtures; they add no provider-specific behavior to head.\n" at=policy:head/release/0.2.1 by=target form=alphabet measure=text role=writes scope=prose/en/readme shape=README.md value=lock
|
|
5
8
|
bound-lock/1 about="*.mts\n*changelog*\n!node_modules/@lapxo/bound/**/*.d.ts\n" at=policy:head/bundle-pin/0.1.7 by=target form=alphabet measure=text role=writes scope=prose/en/bundle/exclusions shape=.mcpbignore value=lock
|
|
6
9
|
bound-lock/1 about="A call through this door carries the card of its place ({place}): ask for it first. Nothing was asked or called." at=policy:head/doors/0.1.7-guard by=target form=alphabet measure=id role=writes scope=said/door-uncarded value=lock
|
|
7
10
|
bound-lock/1 about="A place is founded in an absolute folder: nothing was made." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/place-absolute value=lock
|
|
8
11
|
bound-lock/1 about="A sign or land uses its own host and an injected signer port for one call. Unknown admitted-key selection and missing signer binding are distinct negatives; no key is read before these refusals. The host closes and its own scratch is removed when the call finishes." at=policy:head/host/0.1.7-repin-027 by=target form=alphabet measure=id role=writes scope=bound/signing-host value=one-call@1
|
|
12
|
+
bound-lock/1 about="A source document, a historical or located standing reference, or a public birth record supplied inline or as a client-shared local birth.topos file. Birth records are inspected only." at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=tool/connect/document value=string
|
|
9
13
|
bound-lock/1 about="A source the place compiles, by the name the place gives it: alone, its region, what of it was used and how much more it offers; with an operation, one read of it." at=policy:head/verbs/0.1.6 by=target form=alphabet measure=id role=writes scope=tool/ask/source value=string
|
|
10
14
|
bound-lock/1 about="A source the place compiles." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/access/source value=string
|
|
11
15
|
bound-lock/1 about="A source the place compiles." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/act/source value=string
|
|
@@ -26,7 +30,7 @@ bound-lock/1 about="Answer the person in their words. Never show them a coordina
|
|
|
26
30
|
bound-lock/1 about="Answered from the receipt {scope} ({digest}), as the source answered it at {at}, within the reuse the place allows: nothing was called; nothing typed was kept of it, so it was typed again." at=policy:head/words/0.1.7-forbidden by=target form=alphabet measure=id role=writes scope=said/reread value=lock
|
|
27
31
|
bound-lock/1 about="Answered from what was kept for {scope} ({digest}), as the source answered it at {at}, within the reuse the place allows: nothing was called and nothing typed again." at=policy:head/words/0.1.7-forbidden by=target form=alphabet measure=id role=writes scope=said/reused value=lock
|
|
28
32
|
bound-lock/1 about="Any API, read by its document" at=policy:head/docs by=target form=alphabet measure=text role=writes scope=docs/tagline value=lock
|
|
29
|
-
bound-lock/1 about="Ask head, and nothing changes but the receipts of what was read. With nothing: what this device has connected. A source: its region, what it offers; with an operation and its parameters, one read of an offer of class read, answered with the receipt the device key landed for it, or, while the place allows reuse, the answer kept for it and nothing called. A view: as bound folds it. card: what is open, and the card do needs. lines: a lot for the person to sign. Nothing that is not a read is ever called. An answer about one place ends with its card, valid from it." at=policy:head/
|
|
33
|
+
bound-lock/1 about="Ask head, and nothing changes but the receipts of what was read. With nothing: what this device has connected. A source: its region, what it offers; with an operation and its parameters, one read of an offer of class read, answered with the receipt the device key landed for it, or, while the place allows reuse, the answer kept for it and nothing called. A view: as bound folds it. card: what is open, and the card do needs. lines: a lot for the person to sign. Nothing that is not a read is ever called. An answer about one place ends with its card, valid from it." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=tool/ask value=place|source|operation|args|view|card|key|lines|why|history|closes|sources|preflight|authority
|
|
30
34
|
bound-lock/1 about="Ask me before {operation} on {source} is called, every time. Plan this line for me to sign:" at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/ask/text value=lock
|
|
31
35
|
bound-lock/1 about="Ask the person before an offer is called, every time." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/ask value=source|operation
|
|
32
36
|
bound-lock/1 about="Asked of a link, the transport it is read by: the lines of head's profile the place was born with, and who laid them." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/connect/why value=boolean
|
|
@@ -35,16 +39,30 @@ bound-lock/1 about="At most three digest-bound HTTPS redirects under the existin
|
|
|
35
39
|
bound-lock/1 about="Call one offer that is not of class read, only as far as the person allowed it and after their yes when they asked to be asked. The intent lands before the call and the receipt after; a call that never answered stays open until a look closes it." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/act value=place|source|operation|args
|
|
36
40
|
bound-lock/1 about="Clone, `npm ci && npm test`. A vector that gives you a different answer is the contribution: send it with what it printed. Lines land through the fold, never by hand; when a page and the lock disagree, the lock is right." at=policy:head/docs by=target form=alphabet measure=text role=writes scope=prose/en/contributing value=lock
|
|
37
41
|
bound-lock/1 about="Closed {intent} by this read ({digest}). It counts as done: act runs again only within what is still allowed." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/closed value=lock
|
|
42
|
+
bound-lock/1 about="Configuration preflight for {key}: {decision}; kind {kind}; needs {needs}. This is an observation at one supplied instant, not permission to execute APIs or a later changed action. Q4 domain checks remain separate." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-card value=lock
|
|
43
|
+
bound-lock/1 about="Configuration preflight needs {needs} for {key}. Nothing is signed or admitted." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-needed value=lock
|
|
44
|
+
bound-lock/1 about="Configuration preflight refused for {key}: {why}. No configuration signature or admission was requested." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-refused value=lock
|
|
38
45
|
bound-lock/1 about="Connect a source to a place from its document." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/connect value=place|source|document
|
|
39
|
-
bound-lock/1 about="Connect a source to a place, once the person says yes: its document, and an overlay beside it, laid whatever its kind and compiled once by whichever world reads it — or open, with the line that pays it — into what the source offers and how access is proven, pinned by digest. Nothing is called. A document at an address may be read as a source the place connected, with the access it holds, and checked against its digest. A package another place shared is connected whole: its lock as the document, named by its digest. A site alone or a folder is looked for its document first, before anything is founded. With no place yet, the first connect founds the person's place on one yes that also lets head read the source." at=policy:head/
|
|
46
|
+
bound-lock/1 about="Connect a source to a place, once the person says yes: its document, and an overlay beside it, laid whatever its kind and compiled once by whichever world reads it — or open, with the line that pays it — into what the source offers and how access is proven, pinned by digest. Nothing is called. A document at an address may be read as a source the place connected, with the access it holds, and checked against its digest. A package another place shared is connected whole: its lock as the document, named by its digest. A site alone or a folder is looked for its document first, before anything is founded. With no place yet, the first connect founds the person's place on one yes that also lets head read the source." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=tool/connect value=protocol|place|source|document|overlay|digest|via|accept|operation|args
|
|
40
47
|
bound-lock/1 about="Connect any API" at=policy:head/docs by=target form=alphabet measure=text role=writes scope=prose/en/page/connect-any-api/heading value=lock
|
|
48
|
+
bound-lock/1 about="Connect the selected public document {document} as {source}, then repeat share. Nothing was fetched by export." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-source-needed value=lock
|
|
41
49
|
bound-lock/1 about="Connect {source} to the place {place} from {document} with the connect tool, then show me what it offers." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/connect/text value=lock
|
|
42
50
|
bound-lock/1 about="Connected to {place} from the package {package}: {sources} — every document and every pin as it names them. Nothing was granted with them: access is asked here, issuer by issuer." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=said/received value=lock
|
|
51
|
+
bound-lock/1 about="Current physical reading sha256:a89dd0f85117745631734c6bfa612a18c5aacc79f5c328295f7a247d9da0601f; the lines of all of head's source, together, read by head's suite; widened by the ports region removing what each bound run read once it ends, 4, as the owner ruled; widened by the signing key leaving head-s long process and its refusal written by every door, 7, as the owner ruled; B measured capacity: 2779 lines; witness sha256:30dbaabd472e14a868bbf3a5abe0ff1919232e33668de67fac07d57b572da3a0; C measured capacity: 2826 lines; witness sha256:5b13f1d6e99c3898a11a849d89608f6b92ec968e32b307ed8ae9e4a5242e1622; B1-B3 measured capacity: 2828 lines; witness sha256:d5cd8a69c52aac6de6c39c2a3380b86d84ef1b10b0e3e959927cb382da0a6ae4; composition preparation measured capacity: 2902 lines; witness sha256:352052b687589a55fbd333dab46db39306117f4861e82ebb335e794986b5ef87; share assembly measured capacity: 3024 lines; witness sha256:e4fdec6a3605976ebbd1a38d97958b9da4a5bdcd680cb5ca587a7eedefe76a17; measured 3107 lines; witness sha256:971e89508c79a57a115f0d510f512ec7289d1ec43159ff87df9fce1eae0591d5; single SDK binding and configured ports: 3118 physical lines; witness sha256:57aeee51f2ae0f23b8068c8ff190047361deec6232e386bbec192edcb0902c0e; receiver runtime measured capacity: 3252 lines; witness sha256:fefc88b1c0699aae34af20bc593a85194650bf2ab8f41f4bfab5dfdcf9d82480" at=witness:head/mcp-answer/capacity by=target form=interval measure=source-lines role=writes scope=source/lines value=0..3421
|
|
52
|
+
bound-lock/1 about="Current physical reading sha256:a89dd0f85117745631734c6bfa612a18c5aacc79f5c328295f7a247d9da0601f; the lines of the core region, together; B1-B3 measured capacity: 804 lines; witness sha256:376da26ce87d9b34fe44bd1b1cdd8a54663b96a1009bdacbf8a72c09d3367463; composition preparation measured capacity: 830 lines; witness sha256:d69a7a46e4bfb232dfdca4c29866588b9a88b0d9bf7b08132d9181deafad32d2; share assembly measured capacity: 883 lines; witness sha256:2de050b66a257fe61553b993a22f0c258dba06161db105c6e2013b73bd9dd2af; measured 912 lines; witness sha256:f5546111121539910dd698f64746ea1aa89f7a9d97ad42139d75d758409404f2; receiver runtime measured capacity: 1003 lines; witness sha256:4dd0ff82bd9a481058ed29623325c6aee418636145beba2bbfe1fbf0938060ab" at=witness:head/mcp-answer/capacity by=target form=interval measure=core-lines role=reads scope=core/lines value=0..1071
|
|
53
|
+
bound-lock/1 about="Current physical reading sha256:a89dd0f85117745631734c6bfa612a18c5aacc79f5c328295f7a247d9da0601f; the lines of the doors region, together, read by head's suite; widened by each door reading its ceiling of refusals from its own line; widened by head writing what it refuses, so MCP writes it as lines and http do, 6, as the owner ruled; C measured capacity: 205 lines; witness sha256:8fbd5a22177e9c61fb62fd7af605548d02b2cc425f7326b3c826cd23f333f658; share assembly measured capacity: 206 lines; witness sha256:561a8d0454ca2f3f112455054d0c64452e530d6c09fc6e7678ed319a756813a1; receiver runtime measured capacity: 207 lines; witness sha256:19501574950e156b89a1dc48e3ac82823a6deca0ed7595252a269510d9529987" at=witness:head/mcp-answer/capacity by=target form=interval measure=doors-lines role=writes scope=doors/lines value=0..208
|
|
54
|
+
bound-lock/1 about="Current selected package metadata consumed by the installed acceptance release checks." at=policy:head/release-gates/0.2.0 by=target form=alphabet measure=coordinates role=reads scope=region/release-metadata value=package.json|package-lock.json
|
|
43
55
|
bound-lock/1 about="Desktop Extension exclusions applied by the native packager without changing installed dependencies" at=policy:head/bundle-exclusions/0.1.6 by=target form=alphabet measure=id needs=.mcpbignore role=demands scope=view/bundle-exclusions shape=.mcpbignore value=text
|
|
44
56
|
bound-lock/1 about="Do one action in a place, on the card ask answered for it: found a place, admit a device, land a lot ask planned, share a place, make this device's key, prove access to a source, call an offer that is not a read, or keep what the person states as theirs. An action on a place that moved since its card was asked is refused, with nothing done; one the place does not allow is said not to be in the card. The answer ends with the card valid from this act." at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=tool/do value=action|card|place|dir|name|key|coverage|lot|to|urls|who|source|operation|args|said|withdraw|origin
|
|
45
57
|
bound-lock/1 about="Drafted lines, one a line, each by=target and unsigned: shown to the person and, on their yes to exactly those, signed by their key and folded as if landed. Nothing lands; the answer names the lot do lands." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/ask/lines value=string
|
|
46
58
|
bound-lock/1 about="Earlier, {source} answered the same request at {at}, under receipt {digest}." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/history-earlier value=lock
|
|
59
|
+
bound-lock/1 about="Exact configuration records, one per line. Presence requests native configuration preflight instead of the existing cells view." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=tool/card/lines value=string
|
|
60
|
+
bound-lock/1 about="Exact current producer inputs required by this regional evidence; compiled members are consumed inputs, not ignored maintenance." at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=digest needs=src/|dist/|test/|vectors/|docs/contracts/|package.json|package-lock.json|samples/composition/yes/ role=writes scope=dep/composition-inputs value=sha256:ff823082358cf7d8b83f91e76a6396b8dee0acdff1e07b2a1dcef609807e7ab4
|
|
61
|
+
bound-lock/1 about="Exact selected manifest and lock agree with the reviewed installed artifact. Existing world-pin semantics remain in their current consumer vectors; no generic profile-composition integration is claimed." at=policy:head/release-gates/0.2.0 by=target form=alphabet measure=id role=writes scope=release/category/pins value=release/installed-pins|release/metadata/*
|
|
62
|
+
bound-lock/1 about="Explicit document protocol: mcp discovers only the named HTTPS endpoint after recipient consent; omitted retains ordinary source documents." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=tool/connect/protocol value=string
|
|
47
63
|
bound-lock/1 about="Explicit recipient origins for the pinned content sources and their declared release-asset destination. The content digest grants no network permission; Bound validates each connection and redirect." at=policy:head/receiver/0.1.7 by=target form=alphabet measure=id role=writes scope=bound/receiver/origins value=https://github.com|https://registry.npmjs.org|https://release-assets.githubusercontent.com
|
|
64
|
+
bound-lock/1 about="Export the existing public source package to a folder, or assemble an .mcpb from a host-provisioned verified runtime and a JSON recipe in args. Unconnected OpenAPI URLs require the existing consented connect flow first. Missing MCP execution integration stays open; export grants nothing." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=tool/share value=place|to|urls|args
|
|
65
|
+
bound-lock/1 about="First connect the MCP endpoint {document} as {source} with protocol=mcp. Export never discovers or invokes a server implicitly." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-mcp-needed value=lock
|
|
48
66
|
bound-lock/1 about="For access and act: a source the place compiles." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/do/source value=string
|
|
49
67
|
bound-lock/1 about="For act, the operation, by its name or in the person's words; for access, the read whose access is proven, without one the first read the source offers." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/do/operation value=string
|
|
50
68
|
bound-lock/1 about="For act: the parameters by name, and body for what the operation is sent." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/do/args value=object
|
|
@@ -57,8 +75,9 @@ bound-lock/1 about="For key: head, for the key that signs what head read and did
|
|
|
57
75
|
bound-lock/1 about="For land: the lot ask answered for the drafted lines." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/do/lot value=string
|
|
58
76
|
bound-lock/1 about="For place, the name it is known by, without one the folder's; for admit, the name the place knows that device by." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/do/name value=string
|
|
59
77
|
bound-lock/1 about="For place: the folder of the new place, absolute." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/do/dir value=string
|
|
60
|
-
bound-lock/1 about="For share: The folder the package is written into, absolute, inside the place or a folder the client shares: never the place itself, its connected documents, a folder head or bound keeps, or a folder holding a lock that is no package." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/do/to value=string
|
|
61
78
|
bound-lock/1 about="For share: Where the package's bytes are also published, as a JSON object from each path the package names to an encrypted address, signed or expiring as it may be; optional. A receiver then connects the lock from its own address, by its digest." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/do/urls value=string
|
|
79
|
+
bound-lock/1 about="For share: an absolute destination in a client-shared root or inside the place. A folder exports the public package; a new .mcpb file requests standard bundle assembly. Existing files and private place directories are never overwritten." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=tool/do/to value=string
|
|
80
|
+
bound-lock/1 about="For share: an absolute destination in a client-shared root or inside the place. A folder exports the public package; a new .mcpb file requests standard bundle assembly. Existing files and private place directories are never overwritten." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=tool/share/to value=string
|
|
62
81
|
bound-lock/1 about="Found a place for my sources in a folder." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/place value=dir|name
|
|
63
82
|
bound-lock/1 about="Found a place in a folder, once the person says yes: its root key made in the keychain, the lines it is born with — reads bounded, read-only — and its name in head's index of places." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/place value=dir|name
|
|
64
83
|
bound-lock/1 about="Found the place {name} in {dir} with the do tool, as its place action. Ask me before you do." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=prompt/place/text value=lock
|
|
@@ -67,8 +86,10 @@ bound-lock/1 about="History, not a current answer: what {source} answered to {op
|
|
|
67
86
|
bound-lock/1 about="How many times, at most." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/can/times value=string
|
|
68
87
|
bound-lock/1 about="How {source} proves access, the most trusted first: {flows}. A flow that asks a secret runs only as far as this place allows: {allowed} on head's page (access/secret-inputs)." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=said/trust value=lock
|
|
69
88
|
bound-lock/1 about="I allow {operation} on {source} up to {times} times. Plan this line for me to sign:" at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/can/text value=lock
|
|
89
|
+
bound-lock/1 about="Import the public sources {sources} from package {name} {revision} into {place}, founding it if needed, and remember this choice on this device? No sender keys, credentials or permissions are imported." at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/elicit-bundle-receive value=lock
|
|
90
|
+
bound-lock/1 about="Inspect the named refusal before preparing another request; no permission is granted." at=policy:head/ci-contract-repair/0.2.1 by=target form=alphabet measure=id role=writes scope=said/mcp-refused/next value=none
|
|
91
|
+
bound-lock/1 about="Invoke the selected MCP tool {source}/{operation} at {endpoint}, request {request}? A read-only hint is a declaration, not proof of an effect." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=said/elicit-mcp-call value=lock
|
|
70
92
|
bound-lock/1 about="Its document: an https address or a file." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/connect/document value=string
|
|
71
|
-
bound-lock/1 about="Its document: an https address, read with nothing attached and, named by its digest, followed wherever it moves to the bytes that digest names; or an absolute file inside the place or a folder the client shares; or a package's lock, from either, with its digest. Or a site alone, such as api.example.com, its document found where the site publishes its catalog or at the paths head's lock names; or a folder the client shares, its document found inside it at those names. A site or folder names the source when none is given." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/connect/document value=string
|
|
72
93
|
bound-lock/1 about="Its link is {link}. Publish {document} at {at} exactly as it is: the link names that document's bytes, never the package's files, which still go apart with its digest." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=said/shared-link value=lock
|
|
73
94
|
bound-lock/1 about="Keep a source read-only: whatever it offers beyond reads is never called, whatever else is allowed." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/readonly value=source
|
|
74
95
|
bound-lock/1 about="Keep what the person states in this conversation as theirs, signed by their own key: their words exactly as they said them, never what you concluded from them. The first time in a conversation they are asked once; each statement is said back as it goes in. With withdraw, the same words are taken back. With origin agent, what you yourself state is kept as an agent's, never as theirs, where the place admits an agent." at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=tool/claim value=place|said|withdraw|origin
|
|
@@ -77,10 +98,20 @@ bound-lock/1 about="Kept as yours in {place}: {said}" at=policy:head/claims/0.1.
|
|
|
77
98
|
bound-lock/1 about="Kept in {place} as an agent stated it, never as the person's: {said}" at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=said/agent-claimed value=lock
|
|
78
99
|
bound-lock/1 about="Land a lot plan signed, by its digest, while the place still stands on the base it was planned against." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/land value=lot
|
|
79
100
|
bound-lock/1 about="Lines to sign come drafted, one a line, each by=target and unsigned: nothing was asked." at=policy:head/words/0.1.7-forbidden by=target form=alphabet measure=id role=writes scope=said/bad-lot value=lock
|
|
101
|
+
bound-lock/1 about="MCP endpoint {document} requires the client transport integration before it can be packaged as a working source. Nothing was invoked." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-protocol-pending value=lock
|
|
102
|
+
bound-lock/1 about="MCP refused: {why}. No permission follows from a catalogue or a package." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=said/mcp-refused value=lock
|
|
103
|
+
bound-lock/1 about="Maximum history and request records in the native authority-card query; the existing bound/printed byte budget applies independently." at=policy:head/configuration-preflight/0.2.0 by=target form=interval measure=count role=writes scope=bound/authority/items value=0..65536
|
|
104
|
+
bound-lock/1 about="Measured response budget; witness sha256:c44e6ae5f10f3ee938f6d846f6c0a704688f5bbb9b15f261212fd73ccc45e922" at=witness:head/0.2.1/response-budget by=target form=interval measure=milliseconds needs=samples/mcp-receiver/yes/ role=demands scope=composition/mcp-receiver-latency value=0..6000
|
|
105
|
+
bound-lock/1 about="Measured response budget; witness sha256:c44e6ae5f10f3ee938f6d846f6c0a704688f5bbb9b15f261212fd73ccc45e922" at=witness:head/0.2.1/response-budget by=target form=interval measure=seconds role=reads scope=answer/seconds value=0..6
|
|
80
106
|
bound-lock/1 about="More than one of what {source} offers fits \"{asked}\": the person chooses the one they meant, in head's form, which lists them to the person alone." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=said/pick-offer value=lock
|
|
107
|
+
bound-lock/1 about="Native projection of the existing exact installed first-minute acceptance, checked against the current manifest and lock. Not CI or independent-machine evidence." at=policy:head/release-gates/0.2.0 by=target form=interval measure=defects needs=samples/first-minute/yes/ role=demands scope=release/cli-startup value=0..0
|
|
108
|
+
bound-lock/1 about="Native projection of the existing exact installed first-minute acceptance, checked against the current manifest and lock. Not CI or independent-machine evidence." at=policy:head/release-gates/0.2.0 by=target form=interval measure=defects needs=samples/first-minute/yes/ role=demands scope=release/installed-pins value=0..0
|
|
109
|
+
bound-lock/1 about="No action is authorized by this result." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-protocol-pending/next value=none
|
|
110
|
+
bound-lock/1 about="No action is authorized by this result." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-refused/next value=none
|
|
111
|
+
bound-lock/1 about="No action is authorized by this result." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-shared/next value=none
|
|
81
112
|
bound-lock/1 about="No answer of {operation} on {source} is held for this request: there is no line to say why. A read of it, at 8, lands the receipt that would." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=said/why-none value=lock
|
|
113
|
+
bound-lock/1 about="No bundle was written: {why}." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-refused value=lock
|
|
82
114
|
bound-lock/1 about="No intent {intent} stands open for this source: nothing was closed." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/nothing-open value=lock
|
|
83
|
-
bound-lock/1 about="No link: a link needs the address where its bytes are published. {document} is ready to publish as it is; share again with that address, or send the package's digest apart as before." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=said/shared-unlinked value=lock
|
|
84
115
|
bound-lock/1 about="No place stands yet, and head connects no API of its own: connecting {source} by the address of its document founds your place at {dir}, on one yes, and {operation} is asked again with {args}." at=policy:head/birth/0.1.4 by=target form=alphabet measure=id role=writes scope=said/unborn value=lock
|
|
85
116
|
bound-lock/1 about="No place was named and the client shares no root: name the folder of a place." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/no-place value=lock
|
|
86
117
|
bound-lock/1 about="No place {place} is in head's index on this device: a place is founded with the place tool, and then it is listed here." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=said/places-none value=lock
|
|
@@ -91,19 +122,44 @@ bound-lock/1 about="Nothing kept in {place} is {said}: nothing was taken back."
|
|
|
91
122
|
bound-lock/1 about="Nothing was admitted: hand the lines the other device's key tool answered, and a name." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=said/no-key value=lock
|
|
92
123
|
bound-lock/1 about="One place by its folder, absolute; without one, every place." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=tool/places/place value=string
|
|
93
124
|
bound-lock/1 about="One view of a place as bound folds it, for a client to hold beside the conversation." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=resource/view value=bound://view/{view}{?place,at}
|
|
125
|
+
bound-lock/1 about="Only exact record-coverage and Root configuration admission are mapped. The receiver supplies canonical place, installed instrument and an explicit instant clock horizon; Bound selects and authenticates its current local admission epoch. Foreign evidence clocks never select receiver authority. API execution, aggregate actions, access negotiation, secret consent and personal attestation admission remain outside Q4 coverage. A snapshot card grants no later act; actual signing and admission independently validate current authority." at=policy:head/bound-repin/0.2.8 by=target form=alphabet measure=id role=writes scope=bound/authority/scope value=configuration
|
|
94
126
|
bound-lock/1 about="Open this page on this device to answer: {title}. What you enter goes to head on this device, never through the model." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/answer value=lock
|
|
95
127
|
bound-lock/1 about="Open this page on this device to enter what {title} asks for. Nothing you type passes through the model; only the secret it yields is kept, in your keychain." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/enter value=lock
|
|
96
|
-
bound-lock/1 about="
|
|
128
|
+
bound-lock/1 about="Operation {source}/{operation} is outside the package selection for {place}." at=policy:head/ci-contract-repair/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-not-selected value=lock
|
|
129
|
+
bound-lock/1 about="Optional composition recipe JSON: id, revision, title, description and sources with source, namespace and offers. A missing document source may name its public HTTPS document to request consented connect; an MCP endpoint remains pending until its client transport is integrated. No executable or secret configuration is accepted." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=tool/share/args value=string
|
|
130
|
+
bound-lock/1 about="Optional native configuration card for receiver-context rechecking; separate from the legacy do.card digest." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=tool/ask/authority value=string
|
|
131
|
+
bound-lock/1 about="Optional previously observed native authority card to recheck at the supplied receiver instant. It is separate from do.card and never chooses Root, instrument, key, clock or records." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=tool/card/authority value=string
|
|
132
|
+
bound-lock/1 about="Package {name} {revision} is associated with your place {place}." at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-associated value=lock
|
|
97
133
|
bound-lock/1 about="Packed from {place} into {to}: {sources}. Its lock names each by digest, beside the bytes it names. The package is {digest}: send it apart from the folder, over a private channel, and the receiver connects the lock by it. It carries no key and no answer, and grants nothing." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=said/shared value=lock
|
|
134
|
+
bound-lock/1 about="Physical bytes of each world standing selected by world/adopts; one reading per world, verified by its declared digest; excludes Root storage and sums across worlds" at=policy:head/world-standing/0.2.1 by=target form=interval measure=world-standing-bytes role=reads scope=world/standing-bytes value=0..1048576
|
|
98
135
|
bound-lock/1 about="Pick the origin head reaches {source} at in this place, once. None is a default." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/pick value=lock
|
|
136
|
+
bound-lock/1 about="Project reviewed local installed-client measurements; project the conservative recorded values in whole milliseconds and an explicit completeness reading. The existing strict client test enforces the six unchanged gates; receipt closure alone is not a latency verdict. No CI or independent-machine claim." at=policy:head/acceptance-successors/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|test/|samples/first-minute/yes/|package.json|package-lock.json|dist/test/ role=writes scope=reader/first-minute shape=run value=dist/test/first-minute.js
|
|
137
|
+
bound-lock/1 about="Project reviewed regional source-client runs in Node 22 and 24, bound to exact current sources and contract. This is not a source-budget, Q4-completeness, installed-acceptance or CI verdict." at=policy:head/acceptance-successors/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|test/|docs/contracts/|samples/authority-preflight/yes/|dist/test/ role=writes scope=reader/authority-preflight shape=run value=dist/test/authority-preflight-reader.js
|
|
138
|
+
bound-lock/1 about="Project the two existing consumer walk vectors in Node 22 and 24, bound to fresh sources, producer inputs and the unchanged declared birth/walk/host/instrument contract. Preserve the birth/view/walk demand; do not implement the walk or transfer authority. Independent observer files are excluded from other observer inventories to avoid self-reference." at=policy:head/acceptance-successors/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|test/|samples/walk-reading/yes/|TARGET.bound|dist/test/ role=writes scope=reader/walk-reading shape=run value=dist/test/walk-reading.js
|
|
99
139
|
bound-lock/1 about="Propose lines for the person to sign: they are shown to the person with the place and the base they are made against; on a yes to exactly those, the person's key signs them and they are folded as if landed. Nothing lands; the lot is kept by its digest." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/plan value=place|lines
|
|
140
|
+
bound-lock/1 about="Proposed exact protocol-owned response model; its standing, executable blob and source are pinned separately. Admission and publication are not inferred." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=digest role=writes scope=world/topos-mcp/blob value=sha256:1c3c9326e89aabe3a43bf074d0e06b5bbebd1fdb6e06423b957dc03914de051d
|
|
141
|
+
bound-lock/1 about="Proposed exact protocol-owned response model; its standing, executable blob and source are pinned separately. Admission and publication are not inferred." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=digest role=writes scope=world/topos-mcp/standing value=sha256:c472ae2856813c7e8cbc3dbd7e96884aa2e769dd5fa277fcb21d7061a81dda3e
|
|
142
|
+
bound-lock/1 about="Proposed exact protocol-owned response model; its standing, executable blob and source are pinned separately. Admission and publication are not inferred." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=sources/topos-mcp value=https://github.com/Lapxo/topos-mcp/releases/download/v0.1.2/standing.bound
|
|
143
|
+
bound-lock/1 about="Proposed exact protocol-owned response model; its standing, executable blob and source are pinned separately. Admission and publication are not inferred." at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=sources/topos-mcp-blob value=https://github.com/Lapxo/topos-mcp/releases/download/v0.1.2/1c3c9326e89aabe3a43bf074d0e06b5bbebd1fdb6e06423b957dc03914de051d.tar.gz
|
|
100
144
|
bound-lock/1 about="Prove access to a source ahead of any call, the way its document declares: the person's own page, or its provider with a client registered for the visit; the secret is kept in this keychain and a receipt lands without it. Nothing is called." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/access value=place|source|operation
|
|
101
145
|
bound-lock/1 about="Prove access to a source the way it declares, ahead of any call: entered on head's page or at its provider, never here." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=prompt/access value=place|source
|
|
102
146
|
bound-lock/1 about="Prove access to {source} in {place} with the do tool, as its access action. I will enter what it asks on head's own page or at its provider, never here." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=prompt/access/text value=lock
|
|
147
|
+
bound-lock/1 about="Public place settings are ready in {document}. They are separate from the source package and grant nothing." at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-shared value=lock
|
|
148
|
+
bound-lock/1 about="Public place settings inspected: {inspection}. Already occupied here: {collisions}. No settings or authority were installed; changes require ordinary local review and admission." at=policy:head/release-gates/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-inspected value=lock
|
|
149
|
+
bound-lock/1 about="Q4 remains partial. Bound checks exact configuration records; Head keeps API permissions, access negotiation and secret consent, plus device attestation admission, under its existing domain card. Native configuration failures are named without converting observations into grants." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=do/not-in-card/head value=not-covered|not-allowed|secret-unallowed|access-unstated|authority-refused|authority-needed
|
|
103
150
|
bound-lock/1 about="Read one view of a place as bound folds it, at the resolution ask reads it at; or what a source offers, as typed lines: at 0 where it is reached and the class of each offer, past it their forms and how access is proven; or, with an operation of class read, that operation once: the response comes back with the receipt the device key landed for it, or, while the place allows reuse, the answer kept for it and nothing called. Nothing else is ever called." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/look value=place|view|source|operation|args|closes|history|why
|
|
104
151
|
bound-lock/1 about="Read the current bytes of every declared TypeScript source through the shared surface classifier. Emit the number of source files owning scheduling primitives; refuse any such source except src/ports/host.ts. Bound combines the readings and judges the admitted ceiling." at=policy:head/scheduled-native/0.1.7 by=target form=alphabet kind=js measure=reader needs=src/ role=writes scope=reader/surface-scheduled shape=*.ts value=dist/test/scheduled.js
|
|
152
|
+
bound-lock/1 about="Read the existing cells, or observe Bound configuration preflight for explicit records and key. This observation never installs authority and does not replace Head domain permissions." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=tool/card value=place|key|lines|preflight|authority
|
|
105
153
|
bound-lock/1 about="Receive a package another place shared: from a file or an address, by the digest its sender sent apart from it." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=prompt/receive value=package|digest|place
|
|
106
154
|
bound-lock/1 about="Receive the package {package} into the place {place} with the connect tool: its lock as the document, named by the digest {digest}. Ask me before you do, and tell me which sources it connected and that access is asked here again." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=prompt/receive/text value=lock
|
|
155
|
+
bound-lock/1 about="Rendered from the admitted prose. Verbatim native output selected by shape. Verification compares the rendered bytes; a retained seal is not a guarantee of later file presence." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=role role=reads scope=leaf-role/docs/examples/first-minute.json value=derived
|
|
156
|
+
bound-lock/1 about="Rendered from the admitted prose. Verbatim native output selected by shape. Verification compares the rendered bytes; a retained seal is not a guarantee of later file presence." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=role role=reads scope=leaf-role/docs/examples/lineage.json value=derived
|
|
157
|
+
bound-lock/1 about="Rendered from the admitted prose. Verbatim native output selected by shape. Verification compares the rendered bytes; a retained seal is not a guarantee of later file presence." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=role role=reads scope=leaf-role/docs/examples/sharing.json value=derived
|
|
158
|
+
bound-lock/1 about="Rendered from the admitted prose. Verbatim native output selected by shape. Verification compares the rendered bytes; a retained seal is not a guarantee of later file presence." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=role role=reads scope=leaf-role/docs/first-minute.md value=derived
|
|
159
|
+
bound-lock/1 about="Rendered from the admitted prose. Verbatim native output selected by shape. Verification compares the rendered bytes; a retained seal is not a guarantee of later file presence." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=role role=reads scope=leaf-role/docs/lineage.md value=derived
|
|
160
|
+
bound-lock/1 about="Rendered from the admitted prose. Verbatim native output selected by shape. Verification compares the rendered bytes; a retained seal is not a guarantee of later file presence." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=role role=reads scope=leaf-role/docs/sharing.md value=derived
|
|
161
|
+
bound-lock/1 about="Reviewed local capture for the preserved regional archive, before admission changes the public lock. Final release acceptance remains separate." at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/first-minute-capture shape=samples/first-minute/yes/installed.json value=sha256:c415a3dd92eb6dfe893fd72a607526a359b9acd499c72e9838db86b8d05d8edb
|
|
162
|
+
bound-lock/1 about="Reviewed selection, SDK port and standard packager-format vectors only; not integrated composition, runtime closure, recipient lifecycle, Desktop acceptance or global closure." at=policy:head/composition-preparation/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|dist/|test/|vectors/|docs/contracts/|package.json|package-lock.json|samples/composition/yes/ role=writes scope=reader/composition-vectors shape=run value=dist/test/composition-reading.js
|
|
107
163
|
bound-lock/1 about="Several sources, joined by |, asked the same operation with the same arguments: what they agree on is marked by who says it, and what they differ on is shown from each." at=policy:head/marks/0.1.5 by=target form=alphabet measure=id role=writes scope=tool/ask/sources value=string
|
|
108
164
|
bound-lock/1 about="Share a place with someone: its sources, as a package they connect by its digest." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=prompt/share value=place|who
|
|
109
165
|
bound-lock/1 about="Share the place {place} with {who}: pack it with the do tool, as its share action, into a folder I share, show me the package's digest, and tell me to send {who} the folder — or the addresses it is published at — and the digest apart from it, over a private channel." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=prompt/share/text value=lock
|
|
@@ -115,6 +171,14 @@ bound-lock/1 about="Taken back from {place}: {said}" at=policy:head/claims/0.1.5
|
|
|
115
171
|
bound-lock/1 about="The bytes the link names did not arrive from {source}: {place} owes them until they do, by this link or another channel." at=policy:head/link/0.1.5 by=target form=alphabet measure=id role=writes scope=said/link-owed value=lock
|
|
116
172
|
bound-lock/1 about="The card of {place} is {card}, valid from this {from}: do acts there on it while nothing else lands." at=policy:head/card/0.1.4 by=target form=alphabet measure=id role=writes scope=said/card value=lock
|
|
117
173
|
bound-lock/1 about="The card the last answer about the place ended with, or the one ask answers asked with card: an action on a place that moved since is refused, and nothing is done." at=policy:head/card/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/do/card value=string
|
|
174
|
+
bound-lock/1 about="The content reference has no holder location: {needs}. No bytes were fetched or authority admitted." at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/reference-needs value=lock
|
|
175
|
+
bound-lock/1 about="The content reference is {link}. No holder location is declared; {document} is ready to publish. Inspecting the reference grants nothing." at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/shared-unlinked value=lock
|
|
176
|
+
bound-lock/1 about="The declared documentation or executable example data, rendered by the existing pinned prose capsule." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=id needs=docs/examples/first-minute.json role=demands scope=view/example-first-minute shape=docs/examples/first-minute.json value=text
|
|
177
|
+
bound-lock/1 about="The declared documentation or executable example data, rendered by the existing pinned prose capsule." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=id needs=docs/examples/lineage.json role=demands scope=view/example-lineage shape=docs/examples/lineage.json value=text
|
|
178
|
+
bound-lock/1 about="The declared documentation or executable example data, rendered by the existing pinned prose capsule." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=id needs=docs/examples/sharing.json role=demands scope=view/example-sharing shape=docs/examples/sharing.json value=text
|
|
179
|
+
bound-lock/1 about="The declared documentation or executable example data, rendered by the existing pinned prose capsule." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=id needs=docs/first-minute.md role=demands scope=view/first-minute shape=docs/first-minute.md value=text
|
|
180
|
+
bound-lock/1 about="The declared documentation or executable example data, rendered by the existing pinned prose capsule." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=id needs=docs/lineage.md role=demands scope=view/lineage shape=docs/lineage.md value=text
|
|
181
|
+
bound-lock/1 about="The declared documentation or executable example data, rendered by the existing pinned prose capsule." at=policy:head/documentation/0.2.0 by=target form=alphabet measure=id needs=docs/sharing.md role=demands scope=view/sharing shape=docs/sharing.md value=text
|
|
118
182
|
bound-lock/1 about="The digest its sender sent apart from it, exactly as they sent it." at=policy:head/words/0.1.7-forbidden by=target form=alphabet measure=id role=writes scope=prompt/receive/digest value=string
|
|
119
183
|
bound-lock/1 about="The digest plan answered for the lot." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/land/lot value=string
|
|
120
184
|
bound-lock/1 about="The document's digest, sha256 and its hex: a document that hashes otherwise is refused, and a document that moved to another address is followed only when named by it; a package is received only by the digest its sender sent apart from it. Optional otherwise." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/connect/digest value=string
|
|
@@ -136,10 +200,10 @@ bound-lock/1 about="The folder of the place, absolute; without one, the first ro
|
|
|
136
200
|
bound-lock/1 about="The folder of the place, absolute; without one, the person's place." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/claim/place value=string
|
|
137
201
|
bound-lock/1 about="The folder of the place." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/access/place value=string
|
|
138
202
|
bound-lock/1 about="The folder of the place." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/connect/place value=string
|
|
139
|
-
bound-lock/1 about="The folder the package is written into, absolute, inside the place or a folder the client shares: never the place itself, its connected documents, a folder head or bound keeps, or a folder holding a lock that is no package." at=policy:head/surface/0.1.1 by=target form=alphabet measure=id role=writes scope=tool/share/to value=string
|
|
140
203
|
bound-lock/1 about="The folder, absolute." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/place/dir value=string
|
|
141
204
|
bound-lock/1 about="The grant under which {operation} on {source} was read at {at} had to be given again, so what was kept of it stands no longer: it was read again." at=policy:head/kept/0.1.5 by=target form=alphabet measure=id role=writes scope=said/kept-withdrawn value=lock
|
|
142
205
|
bound-lock/1 about="The host passes only an explicitly supplied public receiver policy to Bound; production defaults remain unchanged. Tests use declared HTTPS trust and internal destinations, never NODE_OPTIONS or ambient TLS settings." at=policy:head/host/0.1.7-repin-027 by=target form=alphabet measure=id role=writes scope=bound/host/receiver value=explicit-receiver-policy@1
|
|
206
|
+
bound-lock/1 about="The installed CLI starts and completes the six declared MCP client cells; the current native act retains its unchanged cost ceiling. Other door parity remains in the existing suite." at=policy:head/release-gates/0.2.0 by=target form=alphabet measure=id role=writes scope=release/category/cli value=release/cli-startup|cost/act
|
|
143
207
|
bound-lock/1 about="The key whose cells are asked; without one, every open cell." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/card/key value=string
|
|
144
208
|
bound-lock/1 about="The key {key} names is a signing key, and only head's signer reads it: this door was refused it by name before the keychain was asked, and nothing was read. The refusal is written in {place}." at=policy:head/docs/0.1.7-signing-key by=target form=alphabet measure=id role=writes scope=said/signing-key-refused value=lock
|
|
145
209
|
bound-lock/1 about="The keychain keeps a root for a place named {name} already: name this one otherwise." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/place-taken value=lock
|
|
@@ -161,6 +225,7 @@ bound-lock/1 about="The operation, by the id the source offers it under." at=pol
|
|
|
161
225
|
bound-lock/1 about="The operation, by the id the source offers it under." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/can/operation value=string
|
|
162
226
|
bound-lock/1 about="The operation, by the id the source offers it under." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/act/operation value=string
|
|
163
227
|
bound-lock/1 about="The operation, by the id the source offers it under." at=policy:head/surface/0.1.4 by=target form=alphabet measure=id role=writes scope=prompt/why/operation value=string
|
|
228
|
+
bound-lock/1 about="The package is ready in {document}: {digest}. Selected sources: {sources}. It carries no sender authority." at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-shared value=lock
|
|
164
229
|
bound-lock/1 about="The package's lock: an absolute file, or an encrypted address." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=prompt/receive/package value=string
|
|
165
230
|
bound-lock/1 about="The parameters by name, and body for what the operation is sent." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/act/args value=object
|
|
166
231
|
bound-lock/1 about="The parameters of that operation, by name; optional." at=policy:head/birth/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/connect/args value=object
|
|
@@ -168,9 +233,13 @@ bound-lock/1 about="The parameters of the operation, by name." at=policy:head/su
|
|
|
168
233
|
bound-lock/1 about="The parameters of the operation, by name." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/ask/args value=object
|
|
169
234
|
bound-lock/1 about="The person did not finish entering what {source} asks for, or no page could be offered: nothing was called. Asking again, with the person there, pays it." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=said/entry-unfinished value=lock
|
|
170
235
|
bound-lock/1 about="The person did not say yes: nothing was signed and nothing was called." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/no-yes value=lock
|
|
236
|
+
bound-lock/1 about="The person must approve or refuse the exact pending request; no invocation follows from this question." at=policy:head/ci-contract-repair/0.2.1 by=target form=alphabet measure=id role=writes scope=said/elicit-mcp-call/next value=none
|
|
171
237
|
bound-lock/1 about="The place holds nothing read of {source}: no line says where it is or what it offers." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/unread value=lock
|
|
172
238
|
bound-lock/1 about="The place moved since base {base}: nothing landed. Plan again." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/base-moved value=lock
|
|
239
|
+
bound-lock/1 about="The public birth record has not arrived: {document}. Nothing was admitted." at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-needs value=lock
|
|
240
|
+
bound-lock/1 about="The public birth record was refused: {why}. Nothing was admitted." at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-refused value=lock
|
|
173
241
|
bound-lock/1 about="The read whose access is proven; without one, the first read the source offers." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/access/operation value=string
|
|
242
|
+
bound-lock/1 about="The recipient must approve or refuse the pending import; a package grants no authority." at=policy:head/ci-contract-repair/0.2.1 by=target form=alphabet measure=id role=writes scope=said/elicit-bundle-receive/next value=none
|
|
174
243
|
bound-lock/1 about="The resolution that explains, in place of the one a person reads. With a source: its region with each offer's forms and how access is proven. With an operation: its region the same way and, once it was read, why its newest answer stands, who said it and when, its receipt digest and the pins it rests on. With a view: the view as it explains itself. Nothing is called." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/ask/why value=boolean
|
|
175
244
|
bound-lock/1 about="The resolution: of a view, the one it is read at; of a source, 0, 1 or 8 to read one offer." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/look/at value=integer
|
|
176
245
|
bound-lock/1 about="The response came back but its receipt did not land: {why}" at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/not-landed value=lock
|
|
@@ -185,21 +254,24 @@ bound-lock/1 about="The way {source} proves access asks its host for {input}, wh
|
|
|
185
254
|
bound-lock/1 about="The world compiled nothing {source} offers: nothing was pinned. A document that offers at least one operation pays it." at=policy:head/surface/0.1.1g by=target form=alphabet measure=id role=writes scope=said/nothing-offered value=lock
|
|
186
255
|
bound-lock/1 about="The {origin} stated, carried by {carrier}: {said}. Nobody backed it." at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=said/claim-alone value=lock
|
|
187
256
|
bound-lock/1 about="The {origin} stated, carried by {carrier}: {said}. The {backers} backed it." at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=said/claim-backed value=lock
|
|
257
|
+
bound-lock/1 about="There are no selected public place settings to share." at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-empty value=lock
|
|
188
258
|
bound-lock/1 about="This client cannot ask you: sign these lines yourself in {place} with your key, then land them." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/sign-yourself value=lock
|
|
189
259
|
bound-lock/1 about="This device keeps keys for two roles only: head and person." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/no-role value=lock
|
|
190
260
|
bound-lock/1 about="This device keeps no keychain head can reach: no key was made." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/no-keychain value=lock
|
|
191
261
|
bound-lock/1 about="This device's person key already states {scope} in {place}, or the place states it itself: a second line of it can only be read from all of this key's lines together, which bound does not publish. Nothing was signed; the place's root can sign it." at=policy:head/words/0.1.7-forbidden by=target form=alphabet measure=id role=writes scope=said/attested-again value=lock
|
|
262
|
+
bound-lock/1 about="This installed package names {name} {revision}. Connect its public sources from {document}, pinned by {digest}, into {place}; no authority has been imported." at=policy:head/ci-contract-repair/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-receiver-ready value=lock
|
|
192
263
|
bound-lock/1 about="This keychain keeps no root of {place}: whoever holds it connects sources and admits devices there. Nothing was asked." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/no-root value=lock
|
|
193
264
|
bound-lock/1 about="This place signs no view of cells: nothing is open to ask." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/no-cells value=lock
|
|
194
265
|
bound-lock/1 about="Through this door nothing is kept as the person's: a statement here is an agent's, and says so with origin agent. Nothing was asked or kept." at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=said/door-unoriginated value=lock
|
|
195
266
|
bound-lock/1 about="Total header-byte budget for the chain, preserving Bound default 16384-byte header limit." at=policy:head/receiver/0.1.7 by=target form=interval measure=bytes role=writes scope=bound/receiver/header-bytes value=0..16384
|
|
267
|
+
bound-lock/1 about="Use the published native identity-and-text projection in the actual caller context; group only views the operation needs. Check every installed member current bytes and the declared instrument pin on every call. Cached parsed views and one descriptor are reused only by the observed digests. Signing remains in its existing one-call host." at=policy:head/first-minute/0.2.0 by=target form=alphabet measure=id role=writes scope=bound/native-read-snapshots value=native-view-batch@1
|
|
196
268
|
bound-lock/1 about="Validate every completed cached lines/evidence view with the public identity returned by Bound, and bind new result text to that expected identity. A missing or refused identity never validates an older result. Head keeps no filesystem fingerprint or maintenance exclusion as a substitute." at=policy:head/verified-delivery/0.1.6 by=target form=alphabet measure=id role=writes scope=reading/use value=bound-view-identity
|
|
269
|
+
bound-lock/1 about="Verify exact current inputs of reviewed regional source client runs in Node 22 and 24. Inspection does not install authority. This reader does not pay source-size limits, installed first-minute acceptance, release acceptance or CI." at=policy:head/acceptance-successors/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|test/|samples/share-inspect/yes/|dist/test/ role=writes scope=reader/share-inspect shape=run value=dist/test/share-inspect.js
|
|
197
270
|
bound-lock/1 about="What do I have in head? List my places and the sources each one holds." at=policy:head/surface/0.1.4 by=target form=alphabet measure=id role=writes scope=prompt/what-i-have/text value=lock
|
|
198
271
|
bound-lock/1 about="What do I have: my places and the sources each one holds." at=policy:head/surface/0.1.4 by=target form=alphabet measure=id role=writes scope=prompt/what-i-have value=
|
|
199
272
|
bound-lock/1 about="What happened: what head read and did in my place." at=policy:head/surface/0.1.4 by=target form=alphabet measure=id role=writes scope=prompt/what-happened value=
|
|
200
273
|
bound-lock/1 about="What has head read and done in my place? List each read and each act, newest first, with when it happened." at=policy:head/surface/0.1.4 by=target form=alphabet measure=id role=writes scope=prompt/what-happened/text value=lock
|
|
201
274
|
bound-lock/1 about="What is done: place founds one, admit lets another device in, land lands a lot ask planned, share packs a place, key makes this device's key, access proves access to a source, act calls an offer that is not a read, claim keeps what the person states as theirs, in their words, or takes it back." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/do/action value=string
|
|
202
|
-
bound-lock/1 about="What is open for a key: each cell no reading has answered, its ceiling, its origins and the states it may take, in the order bound ranks them." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/card value=place|key
|
|
203
275
|
bound-lock/1 about="What is open in the place, and the card do needs to act there." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/ask/card value=boolean
|
|
204
276
|
bound-lock/1 about="What it may sign there, as scopes joined by |; without it, what a member may." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/admit/coverage value=string
|
|
205
277
|
bound-lock/1 about="What next: the next step my place names." at=policy:head/surface/0.1.4 by=target form=alphabet measure=id role=writes scope=prompt/what-next value=
|
|
@@ -220,6 +292,7 @@ bound-lock/1 about="Why head" at=policy:head/docs by=target form=alphabet measur
|
|
|
220
292
|
bound-lock/1 about="With an operation and its parameters: what was retained of that read, as of when it was made, instead of a current answer. Nothing is called; the place must allow it." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/look/history value=boolean
|
|
221
293
|
bound-lock/1 about="With an operation and its parameters: what was retained of that read, as of when it was made, instead of a current answer. Nothing is called; the place must allow it." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/ask/history value=boolean
|
|
222
294
|
bound-lock/1 about="With an operation and its parameters: why its newest answer stands — who said it and when, its receipt digest, and the pins it rests on, read off the place's evidence and lines. Nothing is called." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=tool/look/why value=boolean
|
|
295
|
+
bound-lock/1 about="With card true, observe the exact configuration intent named by tool/card/preflight; it grants no API action." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=tool/ask/preflight value=string
|
|
223
296
|
bound-lock/1 about="With card: the key whose cells are asked; without one, every open cell." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/ask/key value=string
|
|
224
297
|
bound-lock/1 about="You would have {operation} on {source} called, {call}, if you admit it for this call alone, your yes signed for it and nothing else. Yes?" at=policy:head/surface/0.1.6-suggest by=target form=alphabet measure=id role=writes scope=said/elicit-act value=lock
|
|
225
298
|
bound-lock/1 about="You would have {sources} read in {place} until {until} if you admit it: no read asks again before then, writes still do. Yes?" at=policy:head/surface/0.1.6-suggest by=target form=alphabet measure=id role=writes scope=said/grant value=lock
|
|
@@ -279,7 +352,6 @@ bound-lock/1 about="a view is lines of text" at=policy:head/surface by=target fo
|
|
|
279
352
|
bound-lock/1 about="a view of cells the place signs" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/no-cells/next value=none
|
|
280
353
|
bound-lock/1 about="a wider allowance the person signs" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/not-allowed/next value=none
|
|
281
354
|
bound-lock/1 about="a wider read/response-bytes the root signs" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/too-large/next value=none
|
|
282
|
-
bound-lock/1 about="a world head carries and adopts in every place it connects, pinned by its standing and its blob where its release publishes them; what it reads is said by its standing, never here" at=policy:head/worlds/0.2.0 by=target form=alphabet measure=digest role=writes scope=world/topos-mcp/standing value=sha256:bb3fe7c5e79fc72e6dd6548cfdcb33dcfea62344f1d4c629ebdc828c7c865899
|
|
283
355
|
bound-lock/1 about="a world head carries and adopts in every place it connects, pinned by its standing and its blob where its release publishes them; what it reads is said by its standing, never here" at=policy:head/worlds/0.2.0 by=target form=alphabet measure=digest role=writes scope=world/topos-openapi/standing value=sha256:24e6ad5fd58afce93964cdf1079a353046b09b5a075906b3dad225bfe21cda74
|
|
284
356
|
bound-lock/1 about="access the document accepts" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/fetch-status/next value=none
|
|
285
357
|
bound-lock/1 about="access/<source>/<operation>/observed value=anonymous, a receipt head-s key signs: the read whose access its document leaves unstated answered once with nothing attached, so it is read so from then on" at=policy:head/access/0.1.1g by=target form=alphabet measure=id role=writes scope=access/observed value=observed
|
|
@@ -303,7 +375,6 @@ bound-lock/1 about="and reading it from an https address, by the mechanism bound
|
|
|
303
375
|
bound-lock/1 about="and taking at most this many bytes of it" at=policy:head/link/0.1.5 by=target form=interval measure=bytes role=writes scope=birth/transport/response-bytes value=0..1048576
|
|
304
376
|
bound-lock/1 about="another name" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/place-taken/next value=none
|
|
305
377
|
bound-lock/1 about="another name, or the old admission withdrawn" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/key-taken/next value=none
|
|
306
|
-
bound-lock/1 about="answering a question takes at most this; slower reads red with its coordinate" at=policy:head/ceilings by=target form=interval measure=seconds role=reads scope=answer/seconds value=0..2
|
|
307
378
|
bound-lock/1 about="ask reads and never writes but the receipts of what it read; asked twice it answers the same" at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=tool/ask/hints value=readOnly|idempotent
|
|
308
379
|
bound-lock/1 about="asked again, key answers the same lines; the first ask makes the key" at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/key/hints value=idempotent
|
|
309
380
|
bound-lock/1 about="asked twice of the same place, share writes the same bytes" at=policy:head/surface/0.1.1 by=target form=alphabet measure=id role=writes scope=tool/share/hints value=idempotent
|
|
@@ -374,9 +445,9 @@ bound-lock/1 about="how to report a vulnerability, privately, what is in scope a
|
|
|
374
445
|
bound-lock/1 about="how to report a vulnerability, privately, what is in scope and what is not, and that there is no reward" at=policy:head/docs/0.1.7-security-text by=target form=alphabet measure=text role=writes scope=region/security value=lock
|
|
375
446
|
bound-lock/1 about="its encrypted address" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/insecure-origin/next value=none
|
|
376
447
|
bound-lock/1 about="look reads and never writes; asked twice of the same place it answers the same" at=policy:head/surface by=target form=alphabet measure=id role=writes scope=tool/look/hints value=readOnly|idempotent
|
|
377
|
-
bound-lock/1 about="name: check\non:\n push:\n branches: [main, 'measure/**']\n pull_request:\npermissions:\n contents: read\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}\n cancel-in-progress: true\njobs:\n test:\n strategy:\n fail-fast: false\n matrix:\n shard: [1, 2, 3, 4, 5, 6]\n runs-on: ubuntu-latest\n env:\n SHARD_1: test/doors.test.ts test/share.test.ts test/verbs.test.ts test/reuse.test.ts test/born-closed.test.ts test/reading-identity.test.ts test/numbers.test.ts test/transport.test.ts\n SHARD_2: test/act.test.ts test/channels.test.ts test/consent.test.ts test/gestures.test.ts test/claims.test.ts test/fold-ahead.test.ts test/trust.test.ts\n SHARD_3: test/marks.test.ts test/share-receive.test.ts test/authorizer.test.ts test/link-url.test.ts test/read.test.ts test/shape.test.ts test/release.test.ts test/device.test.ts test/surface.test.ts test/refusal-record.test.ts test/welcome.test.ts test/bound.test.ts test/warm-compact.test.ts test/pack.test.ts test/pending-document.test.ts test/keys.test.ts test/acts.test.ts test/bundle.test.ts test/onboarding.test.ts\n SHARD_4: test/issuer.test.ts test/fetch.test.ts test/connect.test.ts test/first-minute.test.ts test/use.test.ts test/places.test.ts test/warm.test.ts test/session.test.ts test/process.test.ts test/stores.test.ts test/signer.test.ts\n SHARD_5: test/org.test.ts test/ahead-read.test.ts test/access.test.ts test/answered.test.ts test/world.test.ts test/named.test.ts test/first-run.test.ts test/place-neutral.test.ts\n SHARD_6: test/marks-lineage.test.ts test/share-refused.test.ts test/kept-zero-moved.test.ts test/observed.test.ts test/walk.test.ts test/kept-zero.test.ts test/adopt.test.ts test/asking.test.ts\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: 22\n - name: Require every test file in exactly one shard\n run: diff <(printf '%s\\n' $SHARD_1 $SHARD_2 $SHARD_3 $SHARD_4 $SHARD_5 $SHARD_6 | sort) <(ls test/*.test.ts | sort)\n - run: npm ci\n - run: npm run build\n - name: Run tests, shard ${{ matrix.shard }} of 6, the files listed for it\n run: |\n set -euo pipefail\n files=\"SHARD_${{ matrix.shard }}\"\n node --test --test-reporter=spec --test-reporter-destination=stdout --test-reporter=junit --test-reporter-destination=\"$RUNNER_TEMP/head-junit.xml\" ${!files} 2>&1 | tee \"$RUNNER_TEMP/head-tests.log\"\n - name: Preserve test logs\n if: always()\n uses: actions/upload-artifact@v4\n with:\n name: head-node-22-shard-${{ matrix.shard }}\n path: |\n ${{ runner.temp }}/head-tests.log\n ${{ runner.temp }}/head-junit.xml\n if-no-files-found: ignore\n walk:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: 22\n - run: npm ci\n - run: npm run build\n - name: Check the committed receipts on a clean checkout\n run: npx --no-install bound fold --check\n bundle:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: 22\n - run: npm ci\n - name: Pack the archive npm would publish\n run: mkdir -p \"$RUNNER_TEMP/release\" && npm pack --pack-destination \"$RUNNER_TEMP/release\"\n - name: Make the Desktop Extension from that archive, twice, repacked with fixed times and order, and require one digest\n run: |\n set -euo pipefail\n test \"$(node -p \"require('./manifest.json').version\")\" = \"$(node -p \"require('./package.json').version\")\"\n archive=\"$(ls \"$RUNNER_TEMP\"/release/*.tgz)\"\n export SOURCE_DATE_EPOCH=\"$(git log -1 --format=%ct)\"\n for n in 1 2; do\n stage=\"$RUNNER_TEMP/stage-$n\"\n mkdir -p \"$stage\"\n tar -xzf \"$archive\" -C \"$stage\" --strip-components 1\n cp package-lock.json manifest.json .mcpbignore \"$stage/\"\n (cd \"$stage\" && npm ci --omit=dev --ignore-scripts --no-audit --no-fund --loglevel=error)\n npx --no-install mcpb pack \"$stage\" \"$RUNNER_TEMP/packed-$n.mcpb\"\n unpacked=\"$RUNNER_TEMP/unpacked-$n\"\n mkdir -p \"$unpacked\"\n unzip -q \"$RUNNER_TEMP/packed-$n.mcpb\" -d \"$unpacked\"\n chmod -R u=rwX,go=rX \"$unpacked\"\n TZ=UTC find \"$unpacked\" -exec touch -h -t 198001020000 {} +\n (cd \"$unpacked\" && find . -type f | LC_ALL=C sort | TZ=UTC zip -X -9 -q -@ \"$RUNNER_TEMP/head-$n.mcpb\")\n done\n one=\"$(shasum -a 256 \"$RUNNER_TEMP/head-1.mcpb\" | cut -d' ' -f1)\"\n two=\"$(shasum -a 256 \"$RUNNER_TEMP/head-2.mcpb\" | cut -d' ' -f1)\"\n for n in 1 2; do printf 'CONTENT %s · %s\\n' \"$n\" \"$(cd \"$RUNNER_TEMP/unpacked-$n\" && find . -type f | LC_ALL=C sort | xargs shasum -a 256 | shasum -a 256 | cut -d' ' -f1)\"; done\n printf 'BUNDLE sha256:%s · made again sha256:%s · from %s\\n' \"$one\" \"$two\" \"$(shasum -a 256 \"$archive\" | cut -d' ' -f1)\"\n test \"$one\" = \"$two\"\n - name: Run it as a host would, from the unpacked bundle in a fresh home\n run: HEAD_BUNDLE=\"$RUNNER_TEMP/head-1.mcpb\" node --test test/bundle.test.ts\n - uses: actions/upload-artifact@v4\n if: always()\n with:\n name: head-bundle\n path: |\n ${{ runner.temp }}/release/\n ${{ runner.temp }}/head-1.mcpb\n if-no-files-found: error\n tree:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - name: Keep the tree this run tests, so a tag can rest on it once the pull request is merged\n run: git rev-parse \"HEAD^{tree}\" | tee \"$RUNNER_TEMP/tested-tree\"\n - uses: actions/upload-artifact@v4\n with:\n name: tested-tree\n path: ${{ runner.temp }}/tested-tree\n if-no-files-found: error\n" at=policy:head/
|
|
378
|
-
bound-lock/1 about="name: measure\non:\n workflow_dispatch:\n push:\n tags: ['epoch/*']\npermissions:\n contents: read\njobs:\n test:\n strategy:\n fail-fast: false\n matrix:\n node: [22, 24]\n shard: [1, 2, 3, 4, 5, 6]\n runs-on: ubuntu-latest\n env:\n SHARD_1: test/doors.test.ts test/share.test.ts test/verbs.test.ts test/reuse.test.ts test/born-closed.test.ts test/reading-identity.test.ts test/numbers.test.ts test/transport.test.ts\n SHARD_2: test/act.test.ts test/channels.test.ts test/consent.test.ts test/gestures.test.ts test/claims.test.ts test/fold-ahead.test.ts test/trust.test.ts\n SHARD_3: test/marks.test.ts test/share-receive.test.ts test/authorizer.test.ts test/link-url.test.ts test/read.test.ts test/shape.test.ts test/release.test.ts test/device.test.ts test/surface.test.ts test/refusal-record.test.ts test/welcome.test.ts test/bound.test.ts test/warm-compact.test.ts test/pack.test.ts test/pending-document.test.ts test/keys.test.ts test/acts.test.ts test/bundle.test.ts test/onboarding.test.ts\n SHARD_4: test/issuer.test.ts test/fetch.test.ts test/connect.test.ts test/first-minute.test.ts test/use.test.ts test/places.test.ts test/warm.test.ts test/session.test.ts test/process.test.ts test/stores.test.ts test/signer.test.ts\n SHARD_5: test/org.test.ts test/ahead-read.test.ts test/access.test.ts test/answered.test.ts test/world.test.ts test/named.test.ts test/first-run.test.ts test/place-neutral.test.ts\n SHARD_6: test/marks-lineage.test.ts test/share-refused.test.ts test/kept-zero-moved.test.ts test/observed.test.ts test/walk.test.ts test/kept-zero.test.ts test/adopt.test.ts test/asking.test.ts\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: ${{ matrix.node }}\n - name: Require every test file in exactly one shard\n run: diff <(printf '%s\\n' $SHARD_1 $SHARD_2 $SHARD_3 $SHARD_4 $SHARD_5 $SHARD_6 | sort) <(ls test/*.test.ts | sort)\n - run: npm ci\n - run: npm run build\n - name: Run tests, shard ${{ matrix.shard }} of 6, the files listed for it\n run: |\n set -euo pipefail\n files=\"SHARD_${{ matrix.shard }}\"\n node --test --test-reporter=spec --test-reporter-destination=stdout --test-reporter=junit --test-reporter-destination=\"$RUNNER_TEMP/head-junit.xml\" ${!files} 2>&1 | tee \"$RUNNER_TEMP/head-tests.log\"\n - name: Preserve test logs\n if: always()\n uses: actions/upload-artifact@v4\n with:\n name: head-node-${{ matrix.node }}-shard-${{ matrix.shard }}\n path: |\n ${{ runner.temp }}/head-tests.log\n ${{ runner.temp }}/head-junit.xml\n if-no-files-found: ignore\n time:\n strategy:\n fail-fast: false\n matrix:\n node: [22, 24]\n runs-on: macos-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: ${{ matrix.node }}\n - run: npm ci\n - run: npm run build\n - name: Run the timed tests alone on this machine, one at a time\n run: |\n set -euo pipefail\n node --test --test-concurrency=1 test/time/*.test.ts 2>&1 | tee \"$RUNNER_TEMP/head-time.log\"\n - name: Measure a new person's first minute against an API on this machine\n run: |\n set -euo pipefail\n HEAD_ONBOARDING=1 node --test test/onboarding.test.ts 2>&1 | tee -a \"$RUNNER_TEMP/head-time.log\"\n - name: Check the committed receipts on a clean checkout\n if: ${{ !cancelled() }}\n run: npx --no-install bound fold --check\n - name: Preserve the timed log\n if: always()\n uses: actions/upload-artifact@v4\n with:\n name: head-time-node-${{ matrix.node }}\n path: ${{ runner.temp }}/head-time.log\n if-no-files-found: ignore\n" at=policy:head/
|
|
379
|
-
bound-lock/1 about="name: release\non:\n workflow_run:\n workflows: [tag]\n types: [completed]\n workflow_dispatch:\nconcurrency: release-delivery\njobs:\n approve:\n if: github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'main')\n runs-on: ubuntu-latest\n permissions:\n contents: write\n outputs:\n tag: ${{ steps.judge.outputs.tag }}\n digest: ${{ steps.judge.outputs.digest }}\n archive: ${{ steps.judge.outputs.archive }}\n steps:\n - uses: actions/checkout@v4\n with:\n ref: ${{ github.event.workflow_run.head_sha || github.sha }}\n - uses: actions/setup-node@v4\n with:\n node-version: 24\n - run: npm install --prefix .instrument --no-save --ignore-scripts @lapxo/bound@0.2.
|
|
448
|
+
bound-lock/1 about="name: check\non:\n push:\n branches: [main, 'measure/**']\n pull_request:\npermissions:\n contents: read\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}\n cancel-in-progress: true\njobs:\n test:\n strategy:\n fail-fast: false\n matrix:\n shard: [1, 2, 3, 4, 5, 6]\n runs-on: ubuntu-latest\n env:\n SHARD_1: test/authority-preflight.test.ts test/portable-birth.test.ts test/doors.test.ts test/share.test.ts test/verbs.test.ts test/reuse.test.ts test/born-closed.test.ts test/reading-identity.test.ts test/numbers.test.ts test/transport.test.ts test/adopt-model.test.ts test/answer-model.test.ts\n SHARD_2: test/act.test.ts test/channels.test.ts test/consent.test.ts test/gestures.test.ts test/claims.test.ts test/fold-ahead.test.ts test/trust.test.ts test/configured-receiver.test.ts test/receiver.test.ts\n SHARD_3: test/marks.test.ts test/share-receive.test.ts test/authorizer.test.ts test/link-url.test.ts test/read.test.ts test/shape.test.ts test/release.test.ts test/device.test.ts test/surface.test.ts test/refusal-record.test.ts test/welcome.test.ts test/bound.test.ts test/warm-compact.test.ts test/pack.test.ts test/pending-document.test.ts test/keys.test.ts test/acts.test.ts test/bundle.test.ts test/onboarding.test.ts\n SHARD_4: test/issuer.test.ts test/fetch.test.ts test/connect.test.ts test/first-minute.test.ts test/use.test.ts test/places.test.ts test/warm.test.ts test/session.test.ts test/process.test.ts test/stores.test.ts test/signer.test.ts\n SHARD_5: test/org.test.ts test/ahead-read.test.ts test/access.test.ts test/answered.test.ts test/world.test.ts test/named.test.ts test/first-run.test.ts test/place-neutral.test.ts test/composition.test.ts test/kind-boundary.test.ts test/protocol-surface.test.ts\n SHARD_6: test/marks-lineage.test.ts test/share-refused.test.ts test/kept-zero-moved.test.ts test/observed.test.ts test/walk.test.ts test/kept-zero.test.ts test/adopt.test.ts test/asking.test.ts test/mcp-transport.test.ts test/runtime-resolution.test.ts test/share-bundle.test.ts test/source-policy.test.ts test/world-standing.test.ts\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: 22\n - name: Require every test file in exactly one shard\n run: diff <(printf '%s\\n' $SHARD_1 $SHARD_2 $SHARD_3 $SHARD_4 $SHARD_5 $SHARD_6 | sort) <(ls test/*.test.ts | sort)\n - run: npm ci\n - run: npm run build\n - name: Verify pinned compiler test fixtures without claiming producer publication\n run: |\n set -euo pipefail\n (cd test/fixtures/content && shasum -a 256 -c SHA256SUMS)\n worlds=\"$(node -p \"require('path').join(require('os').tmpdir(), 'head-worlds')\")\"\n mkdir -p \"$worlds\"\n while read -r digest file; do\n cp \"test/fixtures/content/$file\" \"$worlds/$digest\"\n done < test/fixtures/content/SHA256SUMS\n - name: Run tests, shard ${{ matrix.shard }} of 6, the files listed for it\n run: |\n set -euo pipefail\n files=\"SHARD_${{ matrix.shard }}\"\n node --test --test-reporter=spec --test-reporter-destination=stdout --test-reporter=junit --test-reporter-destination=\"$RUNNER_TEMP/head-junit.xml\" ${!files} 2>&1 | tee \"$RUNNER_TEMP/head-tests.log\"\n - name: Preserve test logs\n if: always()\n uses: actions/upload-artifact@v4\n with:\n name: head-node-22-shard-${{ matrix.shard }}\n path: |\n ${{ runner.temp }}/head-tests.log\n ${{ runner.temp }}/head-junit.xml\n if-no-files-found: ignore\n walk:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: 22\n - run: npm ci\n - run: npm run build\n - name: Verify pinned compiler test fixtures without claiming producer publication\n run: |\n set -euo pipefail\n (cd test/fixtures/content && shasum -a 256 -c SHA256SUMS)\n worlds=\"$(node -p \"require('path').join(require('os').tmpdir(), 'head-worlds')\")\"\n mkdir -p \"$worlds\"\n while read -r digest file; do\n cp \"test/fixtures/content/$file\" \"$worlds/$digest\"\n done < test/fixtures/content/SHA256SUMS\n - name: Check the committed receipts on a clean checkout\n run: npx --no-install bound fold --check\n bundle:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: 22\n - run: npm ci\n - name: Verify pinned compiler test fixtures without claiming producer publication\n run: |\n set -euo pipefail\n (cd test/fixtures/content && shasum -a 256 -c SHA256SUMS)\n worlds=\"$(node -p \"require('path').join(require('os').tmpdir(), 'head-worlds')\")\"\n mkdir -p \"$worlds\"\n while read -r digest file; do\n cp \"test/fixtures/content/$file\" \"$worlds/$digest\"\n done < test/fixtures/content/SHA256SUMS\n - name: Pack the archive npm would publish\n run: mkdir -p \"$RUNNER_TEMP/release\" && npm pack --pack-destination \"$RUNNER_TEMP/release\"\n - name: Make the Desktop Extension from that archive, twice, repacked with fixed times and order, and require one digest\n run: |\n set -euo pipefail\n test \"$(node -p \"require('./manifest.json').version\")\" = \"$(node -p \"require('./package.json').version\")\"\n archive=\"$(ls \"$RUNNER_TEMP\"/release/*.tgz)\"\n export SOURCE_DATE_EPOCH=\"$(git log -1 --format=%ct)\"\n for n in 1 2; do\n stage=\"$RUNNER_TEMP/stage-$n\"\n mkdir -p \"$stage\"\n tar -xzf \"$archive\" -C \"$stage\" --strip-components 1\n cp package-lock.json manifest.json .mcpbignore \"$stage/\"\n (cd \"$stage\" && npm ci --omit=dev --ignore-scripts --no-audit --no-fund --loglevel=error)\n npx --no-install mcpb pack \"$stage\" \"$RUNNER_TEMP/packed-$n.mcpb\"\n unpacked=\"$RUNNER_TEMP/unpacked-$n\"\n mkdir -p \"$unpacked\"\n unzip -q \"$RUNNER_TEMP/packed-$n.mcpb\" -d \"$unpacked\"\n chmod -R u=rwX,go=rX \"$unpacked\"\n TZ=UTC find \"$unpacked\" -exec touch -h -t 198001020000 {} +\n (cd \"$unpacked\" && find . -type f | LC_ALL=C sort | TZ=UTC zip -X -9 -q -@ \"$RUNNER_TEMP/head-$n.mcpb\")\n done\n one=\"$(shasum -a 256 \"$RUNNER_TEMP/head-1.mcpb\" | cut -d' ' -f1)\"\n two=\"$(shasum -a 256 \"$RUNNER_TEMP/head-2.mcpb\" | cut -d' ' -f1)\"\n for n in 1 2; do printf 'CONTENT %s · %s\\n' \"$n\" \"$(cd \"$RUNNER_TEMP/unpacked-$n\" && find . -type f | LC_ALL=C sort | xargs shasum -a 256 | shasum -a 256 | cut -d' ' -f1)\"; done\n printf 'BUNDLE sha256:%s · made again sha256:%s · from %s\\n' \"$one\" \"$two\" \"$(shasum -a 256 \"$archive\" | cut -d' ' -f1)\"\n test \"$one\" = \"$two\"\n - name: Run it as a host would, from the unpacked bundle in a fresh home\n run: HEAD_BUNDLE=\"$RUNNER_TEMP/head-1.mcpb\" node --test test/bundle.test.ts\n - uses: actions/upload-artifact@v4\n if: always()\n with:\n name: head-bundle\n path: |\n ${{ runner.temp }}/release/\n ${{ runner.temp }}/head-1.mcpb\n if-no-files-found: error\n tree:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - name: Keep the tree this run tests, so a tag can rest on it once the pull request is merged\n run: git rev-parse \"HEAD^{tree}\" | tee \"$RUNNER_TEMP/tested-tree\"\n - uses: actions/upload-artifact@v4\n with:\n name: tested-tree\n path: ${{ runner.temp }}/tested-tree\n if-no-files-found: error\n" at=policy:head/ci-suites/0.2.1 by=target form=alphabet measure=text role=writes scope=prose/en/pipeline/test shape=.github/workflows/test.yml value=lock
|
|
449
|
+
bound-lock/1 about="name: measure\non:\n workflow_dispatch:\n push:\n tags: ['epoch/*']\npermissions:\n contents: read\njobs:\n test:\n strategy:\n fail-fast: false\n matrix:\n node: [22, 24]\n shard: [1, 2, 3, 4, 5, 6]\n runs-on: ubuntu-latest\n env:\n SHARD_1: test/authority-preflight.test.ts test/portable-birth.test.ts test/doors.test.ts test/share.test.ts test/verbs.test.ts test/reuse.test.ts test/born-closed.test.ts test/reading-identity.test.ts test/numbers.test.ts test/transport.test.ts test/adopt-model.test.ts test/answer-model.test.ts\n SHARD_2: test/act.test.ts test/channels.test.ts test/consent.test.ts test/gestures.test.ts test/claims.test.ts test/fold-ahead.test.ts test/trust.test.ts test/configured-receiver.test.ts test/receiver.test.ts\n SHARD_3: test/marks.test.ts test/share-receive.test.ts test/authorizer.test.ts test/link-url.test.ts test/read.test.ts test/shape.test.ts test/release.test.ts test/device.test.ts test/surface.test.ts test/refusal-record.test.ts test/welcome.test.ts test/bound.test.ts test/warm-compact.test.ts test/pack.test.ts test/pending-document.test.ts test/keys.test.ts test/acts.test.ts test/bundle.test.ts test/onboarding.test.ts\n SHARD_4: test/issuer.test.ts test/fetch.test.ts test/connect.test.ts test/first-minute.test.ts test/use.test.ts test/places.test.ts test/warm.test.ts test/session.test.ts test/process.test.ts test/stores.test.ts test/signer.test.ts\n SHARD_5: test/org.test.ts test/ahead-read.test.ts test/access.test.ts test/answered.test.ts test/world.test.ts test/named.test.ts test/first-run.test.ts test/place-neutral.test.ts test/composition.test.ts test/kind-boundary.test.ts test/protocol-surface.test.ts\n SHARD_6: test/marks-lineage.test.ts test/share-refused.test.ts test/kept-zero-moved.test.ts test/observed.test.ts test/walk.test.ts test/kept-zero.test.ts test/adopt.test.ts test/asking.test.ts test/mcp-transport.test.ts test/runtime-resolution.test.ts test/share-bundle.test.ts test/source-policy.test.ts test/world-standing.test.ts\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: ${{ matrix.node }}\n - name: Require every test file in exactly one shard\n run: diff <(printf '%s\\n' $SHARD_1 $SHARD_2 $SHARD_3 $SHARD_4 $SHARD_5 $SHARD_6 | sort) <(ls test/*.test.ts | sort)\n - run: npm ci\n - run: npm run build\n - name: Verify pinned compiler test fixtures without claiming producer publication\n run: |\n set -euo pipefail\n (cd test/fixtures/content && shasum -a 256 -c SHA256SUMS)\n worlds=\"$(node -p \"require('path').join(require('os').tmpdir(), 'head-worlds')\")\"\n mkdir -p \"$worlds\"\n while read -r digest file; do\n cp \"test/fixtures/content/$file\" \"$worlds/$digest\"\n done < test/fixtures/content/SHA256SUMS\n - name: Run tests, shard ${{ matrix.shard }} of 6, the files listed for it\n run: |\n set -euo pipefail\n files=\"SHARD_${{ matrix.shard }}\"\n node --test --test-reporter=spec --test-reporter-destination=stdout --test-reporter=junit --test-reporter-destination=\"$RUNNER_TEMP/head-junit.xml\" ${!files} 2>&1 | tee \"$RUNNER_TEMP/head-tests.log\"\n - name: Preserve test logs\n if: always()\n uses: actions/upload-artifact@v4\n with:\n name: head-node-${{ matrix.node }}-shard-${{ matrix.shard }}\n path: |\n ${{ runner.temp }}/head-tests.log\n ${{ runner.temp }}/head-junit.xml\n if-no-files-found: ignore\n time:\n strategy:\n fail-fast: false\n matrix:\n node: [22, 24]\n runs-on: macos-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: ${{ matrix.node }}\n - run: npm ci\n - run: npm run build\n - name: Verify pinned compiler test fixtures without claiming producer publication\n run: |\n set -euo pipefail\n (cd test/fixtures/content && shasum -a 256 -c SHA256SUMS)\n worlds=\"$(node -p \"require('path').join(require('os').tmpdir(), 'head-worlds')\")\"\n mkdir -p \"$worlds\"\n while read -r digest file; do\n cp \"test/fixtures/content/$file\" \"$worlds/$digest\"\n done < test/fixtures/content/SHA256SUMS\n - name: Run the timed tests alone on this machine, one at a time\n run: |\n set -euo pipefail\n node --test --test-concurrency=1 test/time/*.test.ts 2>&1 | tee \"$RUNNER_TEMP/head-time.log\"\n - name: Measure a new person's first minute against an API on this machine\n run: |\n set -euo pipefail\n HEAD_ONBOARDING=1 HEAD_FIRST_CELL_STRICT=1 node --test test/onboarding.test.ts 2>&1 | tee -a \"$RUNNER_TEMP/head-time.log\"\n - name: Check the committed receipts on a clean checkout\n if: ${{ !cancelled() }}\n run: npx --no-install bound fold --check\n - name: Preserve the timed log\n if: always()\n uses: actions/upload-artifact@v4\n with:\n name: head-time-node-${{ matrix.node }}\n path: ${{ runner.temp }}/head-time.log\n if-no-files-found: ignore\n" at=policy:head/ci-suites/0.2.1 by=target form=alphabet measure=text role=writes scope=prose/en/pipeline/measure shape=.github/workflows/measure.yml value=lock
|
|
450
|
+
bound-lock/1 about="name: release\non:\n workflow_run:\n workflows: [tag]\n types: [completed]\n workflow_dispatch:\nconcurrency: release-delivery\njobs:\n approve:\n if: github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'main')\n runs-on: ubuntu-latest\n permissions:\n contents: write\n outputs:\n tag: ${{ steps.judge.outputs.tag }}\n digest: ${{ steps.judge.outputs.digest }}\n archive: ${{ steps.judge.outputs.archive }}\n steps:\n - uses: actions/checkout@v4\n with:\n ref: ${{ github.event.workflow_run.head_sha || github.sha }}\n - uses: actions/setup-node@v4\n with:\n node-version: 24\n - run: npm install --prefix .instrument --no-save --ignore-scripts @lapxo/bound@0.2.8\n - name: Prepare release\n env:\n GH_TOKEN: ${{ github.token }}\n run: |\n set -euo pipefail\n TAG=\"v$(node -p \"require('./package.json').version\")\"\n printf 'TAG=%s\\n' \"$TAG\" >> \"$GITHUB_ENV\"\n git fetch origin \"refs/tags/$TAG:refs/tags/$TAG\"\n gh api --paginate \"repos/$GITHUB_REPOSITORY/releases\" --jq '.[].tag_name' > \"$RUNNER_TEMP/release-tags\"\n if grep -Fxq \"$TAG\" \"$RUNNER_TEMP/release-tags\"; then\n printf 'RELEASE %s · exists\\n' \"$TAG\"\n else\n gh release create \"$TAG\" --verify-tag --draft --title \"$TAG\" --generate-notes\n printf 'RELEASE %s · draft created · awaiting signed assets\\n' \"$TAG\"\n fi\n - name: Read owner approval\n env:\n GH_TOKEN: ${{ github.token }}\n run: |\n set -euo pipefail\n mkdir .release\n gh release download \"$TAG\" --pattern approval-signed --dir .release\n node .instrument/node_modules/@lapxo/bound/dist/cli/verb.js fold --as release .release/approval-signed > .release/verdict\n cat .release/verdict\n - name: Judge the approved release archive\n id: judge\n env:\n GH_TOKEN: ${{ github.token }}\n run: |\n set -euo pipefail\n read -r status digest archive source extra < .release/verdict\n test \"$status\" = READY\n test -z \"$extra\"\n gh release download \"$TAG\" --pattern \"$archive\" --dir .release\n printf '%s %s\\n' \"${digest#sha256:}\" \".release/$archive\" | sha256sum -c -\n expected=\"$(node -p \"require('./package.json').name+'@'+require('./package.json').version\")\"\n actual=\"$(tar -xOf \".release/$archive\" package/package.json | node -p \"const p=JSON.parse(require('fs').readFileSync(0,'utf8'));p.name+'@'+p.version\")\"\n test \"$actual\" = \"$expected\"\n printf 'SOURCE release/%s/%s · %s · declared %s\\n' \"$TAG\" \"$archive\" \"$digest\" \"$source\"\n printf 'tag=%s\\ndigest=%s\\narchive=%s\\n' \"$TAG\" \"$digest\" \"$archive\" >> \"$GITHUB_OUTPUT\"\n bundle:\n needs: approve\n runs-on: macos-latest\n permissions:\n contents: write\n env:\n GH_TOKEN: ${{ github.token }}\n TAG: ${{ needs.approve.outputs.tag }}\n DIGEST: ${{ needs.approve.outputs.digest }}\n ARCHIVE: ${{ needs.approve.outputs.archive }}\n steps:\n - uses: actions/checkout@v4\n with:\n ref: ${{ github.event.workflow_run.head_sha || github.sha }}\n - uses: actions/setup-node@v4\n with:\n node-version: 24\n - run: npm ci\n - name: Make the Desktop Extension from the approved archive, twice, repacked with fixed times and order, and require one digest\n run: |\n set -euo pipefail\n mkdir -p \"$RUNNER_TEMP/release\"\n gh release download \"$TAG\" --pattern \"$ARCHIVE\" --dir \"$RUNNER_TEMP/release\"\n printf '%s %s\\n' \"${DIGEST#sha256:}\" \"$RUNNER_TEMP/release/$ARCHIVE\" | shasum -a 256 -c -\n test \"v$(node -p \"require('./manifest.json').version\")\" = \"$TAG\"\n export SOURCE_DATE_EPOCH=\"$(git log -1 --format=%ct)\"\n for n in 1 2; do\n stage=\"$RUNNER_TEMP/stage-$n\"\n mkdir -p \"$stage\"\n tar -xzf \"$RUNNER_TEMP/release/$ARCHIVE\" -C \"$stage\" --strip-components 1\n cp package-lock.json manifest.json .mcpbignore \"$stage/\"\n (cd \"$stage\" && npm ci --omit=dev --ignore-scripts --no-audit --no-fund --loglevel=error)\n npx --no-install mcpb pack \"$stage\" \"$RUNNER_TEMP/packed-$n.mcpb\"\n unpacked=\"$RUNNER_TEMP/unpacked-$n\"\n mkdir -p \"$unpacked\"\n unzip -q \"$RUNNER_TEMP/packed-$n.mcpb\" -d \"$unpacked\"\n chmod -R u=rwX,go=rX \"$unpacked\"\n TZ=UTC find \"$unpacked\" -exec touch -h -t 198001020000 {} +\n (cd \"$unpacked\" && find . -type f | LC_ALL=C sort | TZ=UTC zip -X -9 -q -@ \"$RUNNER_TEMP/head-$n.mcpb\")\n done\n one=\"$(shasum -a 256 \"$RUNNER_TEMP/head-1.mcpb\" | cut -d' ' -f1)\"\n two=\"$(shasum -a 256 \"$RUNNER_TEMP/head-2.mcpb\" | cut -d' ' -f1)\"\n for n in 1 2; do printf 'CONTENT %s · %s\\n' \"$n\" \"$(cd \"$RUNNER_TEMP/unpacked-$n\" && find . -type f | LC_ALL=C sort | xargs shasum -a 256 | shasum -a 256 | cut -d' ' -f1)\"; done\n test \"$one\" = \"$two\"\n bundle=\"head-${TAG#v}-${one:0:16}.mcpb\"\n cp \"$RUNNER_TEMP/head-1.mcpb\" \"$RUNNER_TEMP/$bundle\"\n printf 'BUNDLE=%s\\nMADE=sha256:%s\\n' \"$bundle\" \"$one\" >> \"$GITHUB_ENV\"\n printf 'BUNDLE %s · sha256:%s · made twice · from %s\\n' \"$bundle\" \"$one\" \"$DIGEST\"\n - name: Run it as a host would, from the unpacked bundle in a fresh home\n run: HEAD_BUNDLE=\"$RUNNER_TEMP/$BUNDLE\" node --test test/bundle.test.ts\n - name: Attach it to the release, its digest in the notes\n run: |\n set -euo pipefail\n gh release view \"$TAG\" --json body --jq .body > \"$RUNNER_TEMP/notes.md\"\n if grep -q 'The Desktop Extension `head-' \"$RUNNER_TEMP/notes.md\"; then\n grep -Fq \"$MADE\" \"$RUNNER_TEMP/notes.md\" || { printf 'REFUSE·bundle the release names another digest than %s\\n' \"$MADE\"; exit 1; }\n else\n printf '\\n\\nThe signature covers `%s` (`%s`). The Desktop Extension `%s` (`%s`) is made by this workflow from that archive, packed by mcpb and repacked with fixed times, modes and order; made again, it gives the same digest.\\n' \"$ARCHIVE\" \"$DIGEST\" \"$BUNDLE\" \"$MADE\" >> \"$RUNNER_TEMP/notes.md\"\n gh release edit \"$TAG\" --notes-file \"$RUNNER_TEMP/notes.md\"\n fi\n gh release upload \"$TAG\" \"$RUNNER_TEMP/$BUNDLE\" --clobber\n mkdir -p \"$RUNNER_TEMP/back\"\n gh release download \"$TAG\" --pattern \"$BUNDLE\" --dir \"$RUNNER_TEMP/back\"\n printf '%s %s\\n' \"${MADE#sha256:}\" \"$RUNNER_TEMP/back/$BUNDLE\" | shasum -a 256 -c -\n publish:\n needs: [approve, bundle]\n environment: release\n runs-on: ubuntu-latest\n permissions:\n contents: write\n id-token: write\n env:\n GH_TOKEN: ${{ github.token }}\n TAG: ${{ needs.approve.outputs.tag }}\n DIGEST: ${{ needs.approve.outputs.digest }}\n ARCHIVE: ${{ needs.approve.outputs.archive }}\n steps:\n - uses: actions/setup-node@v4\n with:\n node-version: 24\n - run: npm install --global npm@'12.1.0' --ignore-scripts\n - name: Stage the approved release archive\n run: |\n set -euo pipefail\n mkdir .release\n gh release download \"$TAG\" --repo \"$GITHUB_REPOSITORY\" --pattern \"$ARCHIVE\" --dir .release\n printf '%s %s\\n' \"${DIGEST#sha256:}\" \".release/$ARCHIVE\" | sha256sum -c -\n gh release edit \"$TAG\" --repo \"$GITHUB_REPOSITORY\" --draft=false\n printf 'RELEASE %s · published · %s\\n' \"$TAG\" \"$DIGEST\"\n npm stage publish \".release/$ARCHIVE\" --access public --ignore-scripts\n printf 'STAGED %s · %s · owner approval pending\\n' \"$ARCHIVE\" \"$DIGEST\"\n" at=policy:head/bound-repin/0.2.8 by=target form=alphabet measure=text role=writes scope=prose/en/pipeline/release shape=.github/workflows/release.yml value=lock
|
|
380
451
|
bound-lock/1 about="name: suite-map\non:\n push:\n branches: ['suite-map/**']\npermissions:\n contents: read\njobs:\n map:\n strategy:\n fail-fast: false\n matrix:\n shard: [1, 2, 3, 4, 5, 6]\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n persist-credentials: false\n fetch-depth: 0\n - uses: actions/setup-node@v4\n with:\n node-version: 24\n - run: npm ci\n - name: Run each test file of this shard alone, three at a time, its processes measured, keeping only what of head they ran\n run: |\n set -uo pipefail\n map=\"$RUNNER_TEMP/suite-map\"\n mkdir -p \"$map\"\n measure() {\n out=\"$1/$(basename \"$2\")\"\n mkdir -p \"$out\"\n NODE_V8_COVERAGE=\"$out\" node --test \"$2\" > \"$out.log\" 2>&1 || echo \"FAILED $2\" >> \"$out.log\"\n grep -L -F \"$GITHUB_WORKSPACE/src/\" \"$out\"/*.json 2>/dev/null | xargs rm -f\n }\n export -f measure\n ls test/*.test.ts | awk -v s=\"${{ matrix.shard }}\" 'NR % 6 == s % 6' | xargs -P 3 -I{} bash -c 'measure \"$0\" \"$1\"' \"$map\" {}\n git log --format='%H %s' origin/main..HEAD > \"$map/commits.txt\"\n cat \"$map\"/*.log | grep -E '^(FAILED|ℹ (pass|fail))' || true\n - uses: actions/upload-artifact@v4\n if: always()\n with:\n name: suite-map-${{ matrix.shard }}\n path: ${{ runner.temp }}/suite-map/\n if-no-files-found: error\n" at=policy:head/forge/suite-map/0.1.6 by=target form=alphabet measure=text role=writes scope=prose/en/pipeline/suite-map shape=.github/workflows/suite-map.yml value=lock
|
|
381
452
|
bound-lock/1 about="name: tag\non:\n push:\n branches: [main]\njobs:\n tag:\n runs-on: ubuntu-latest\n permissions:\n contents: write\n actions: read\n pull-requests: read\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - name: Tag the version once the pull request that merged it was checked green on this very tree\n env:\n GH_TOKEN: ${{ github.token }}\n run: |\n set -euo pipefail\n version=\"v$(node -p \"require('./package.json').version\")\"\n git tag --list \"$version\" | grep -q . && { printf 'TAG %s · exists\\n' \"$version\"; exit 0; }\n tree=\"$(git rev-parse \"HEAD^{tree}\")\"\n pr=\"$(gh api \"repos/$GITHUB_REPOSITORY/commits/$GITHUB_SHA/pulls\" --jq '.[0].number // empty')\"\n test -n \"$pr\" || { printf 'REFUSE %s · no pull request merged %s\\n' \"$version\" \"$GITHUB_SHA\"; exit 1; }\n head=\"$(gh api \"repos/$GITHUB_REPOSITORY/pulls/$pr\" --jq .head.sha)\"\n run=\"$(gh api \"repos/$GITHUB_REPOSITORY/actions/workflows/test.yml/runs?event=pull_request&head_sha=$head&status=success\" --jq '.workflow_runs[0].id // empty')\"\n test -n \"$run\" || { printf 'REFUSE %s · pull request #%s has no green test run at %s\\n' \"$version\" \"$pr\" \"$head\"; exit 1; }\n gh run download \"$run\" -R \"$GITHUB_REPOSITORY\" --name tested-tree --dir \"$RUNNER_TEMP/tested\"\n tested=\"$(cat \"$RUNNER_TEMP/tested/tested-tree\")\"\n test \"$tested\" = \"$tree\" || { printf 'REFUSE %s · run %s of pull request #%s tested tree %s; main holds %s\\n' \"$version\" \"$run\" \"$pr\" \"$tested\" \"$tree\"; exit 1; }\n printf 'TAG %s · tree %s · tested by run %s of pull request #%s\\n' \"$version\" \"$tree\" \"$run\" \"$pr\"\n git tag \"$version\" && git push origin \"$version\"\n" at=policy:head/forge/tag/0.1.6 by=target form=alphabet measure=text role=writes scope=prose/en/pipeline/tag shape=.github/workflows/tag.yml value=lock
|
|
382
453
|
bound-lock/1 about="no answer of head carries a secret: only public halves and lines leave" at=policy:head/ceilings by=target form=interval measure=count role=reads scope=surface/secrets-out value=0..0
|
|
@@ -398,10 +469,10 @@ bound-lock/1 about="plan again" at=policy:head/shape/0.1.2 by=target form=alphab
|
|
|
398
469
|
bound-lock/1 about="plan, as a person reads it: at its own resolution" at=policy:head/surface/0.1.6-answered by=target form=alphabet measure=id role=writes scope=resolution/plan/person value=own
|
|
399
470
|
bound-lock/1 about="questions the person answers before it: the place, the origin, reads — a new person and head 0.1.3 as published (the .mcpb of its release), Open-Meteo-s real document and API, on a client with forms and on one with none; harness baseline-013.mts" at=witness:baseline-013-open-meteo by=target form=interval measure=count role=writes scope=baseline/onboarding/questions value=3..3
|
|
400
471
|
bound-lock/1 about="read/rate is spent for {source} this hour: nothing was called. The next hour pays it, or a wider read/rate the place's root signs." at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=said/rate value=lock
|
|
472
|
+
bound-lock/1 about="record-coverage for drafts or admission for signed Root configuration records. Other intents are not in the native card; default record-coverage." at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=tool/card/preflight value=string
|
|
401
473
|
bound-lock/1 about="red: {coordinate} took {seconds} s, over {scope} {ceiling}." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/red value=lock
|
|
402
474
|
bound-lock/1 about="steps to the first real answer: install, connect, ask — a new person and head 0.1.3 as published (the .mcpb of its release), Open-Meteo-s real document and API, on a client with forms and on one with none; harness baseline-013.mts" at=witness:baseline-013-open-meteo by=target form=interval measure=count role=writes scope=baseline/onboarding/steps value=3..3
|
|
403
475
|
bound-lock/1 about="structural numbers shown only where why is asked: a ledger epoch anywhere else is red" at=policy:head/numbers/0.1.5 by=target form=alphabet measure=id role=writes scope=numbers/structural/why value=epoch|pinned
|
|
404
|
-
bound-lock/1 about="temporary: head-s own checks said as not in the card, until topos and bound publish the authority-card view that folds what a key may do (demand-authority-card.md)" at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=do/not-in-card/head value=not-covered|not-allowed|secret-unallowed|access-unstated
|
|
405
476
|
bound-lock/1 about="the APIs head-s own lock names for a person to connect: none; head connects only what a person hands it, by the address of its document" at=policy:head/ceilings/0.1.4 by=target form=interval measure=count role=writes scope=first-minute/connects value=0..0
|
|
406
477
|
bound-lock/1 about="the SDK head reads lines through, as published" at=policy:head/pins/topos/0.2.4 by=target form=alphabet measure=digest needs=node_modules/@lapxo/topos role=reads scope=dep/topos shape=package value=sha256:7aca161279d14bc0e054dcc281cd110aeb95be2e026b42fdf527a260e58b2aae
|
|
407
478
|
bound-lock/1 about="the Secret Service of a Linux session, through libsecret-s secret-tool" at=policy:head/platform by=target form=alphabet measure=id role=writes scope=platform/linux/store value=secret-tool
|
|
@@ -473,8 +544,8 @@ bound-lock/1 about="the forms its values are read through (value read from Lapxo
|
|
|
473
544
|
bound-lock/1 about="the heap a place's fold host is started with, Node's old-generation limit and not the process's whole memory" at=policy:head/host/0.1.7 by=target form=interval measure=mebibytes role=writes scope=bound/host/heap value=512..512
|
|
474
545
|
bound-lock/1 about="the hosts head keeps keys on, each in its own secret store and opening its one-time page with its own opener; on any other host every call is refused by name" at=policy:head/platform by=target form=alphabet measure=id role=writes scope=platform/supported value=darwin|linux|win32
|
|
475
546
|
bound-lock/1 about="the identity of a reading of a place, given without folding it, so what head folded before is kept under bound-s own identity and not a superset of it; until then head keys it by every file the place holds" at=policy:head/ahead/0.1.5 by=target form=alphabet measure=id role=demands scope=bound/reading-identity value=reading-identity@1
|
|
476
|
-
bound-lock/1 about="the installed bound's identity, as bound computes it from the installed bytes with head's selection (export ./engine, entry dist/cli/verb.js): a place's fold host is started on this instrument alone, and refused by name on any other; said again at every repin, beside dep/bound, which pins the archive" at=policy:head/
|
|
477
|
-
bound-lock/1 about="the instrument head runs, as published" at=policy:head/
|
|
547
|
+
bound-lock/1 about="the installed bound's identity, as bound computes it from the installed bytes with head's selection (export ./engine, entry dist/cli/verb.js): a place's fold host is started on this instrument alone, and refused by name on any other; said again at every repin, beside dep/bound, which pins the archive" at=policy:head/bound-repin/0.2.8 by=target form=alphabet measure=digest role=writes scope=dep/bound/installed value=sha256:b097566fcb246614d9ebe55642c2b5b2f8f0ca81b073efc9edef76a1de075008
|
|
548
|
+
bound-lock/1 about="the instrument head runs, as published" at=policy:head/bound-repin/0.2.8 by=target form=alphabet measure=digest needs=node_modules/@lapxo/bound role=reads scope=dep/bound shape=package value=sha256:2d024747c2d2eca6b20c32e6dc7e963b0133caac36db3c380626482944ec0a1b
|
|
478
549
|
bound-lock/1 about="the instrument head starts as a process for every fold, sign and land; nothing of it is imported" at=policy:project by=target form=alphabet measure=id role=writes scope=runs value=@lapxo/bound
|
|
479
550
|
bound-lock/1 about="the key a place head founds is rooted in: made in the keychain under the place-s name, never a file, never the owner-s" at=policy:head/founding by=target form=alphabet measure=id role=writes scope=founding/root value=keys/root
|
|
480
551
|
bound-lock/1 about="the keychain entry a source-s secret is kept under, one per place and source; a line names it, never holds it" at=policy:head/access by=target form=alphabet measure=id role=writes scope=access/account value=place/{place}/api/{source}
|
|
@@ -486,7 +557,6 @@ bound-lock/1 about="the ledger a place-s history is said to come from, named by
|
|
|
486
557
|
bound-lock/1 about="the line a place declares its act result by; head lands nothing where land would print none" at=policy:head/bound by=target form=alphabet measure=id role=writes scope=bound/profile value=wire/act-result
|
|
487
558
|
bound-lock/1 about="the line that follows" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/no-world/next value=none
|
|
488
559
|
bound-lock/1 about="the lines a place admits a content transport by, the first the one a link is inspected only where it stands" at=policy:head/link/0.1.5 by=target form=alphabet measure=id role=writes scope=link/transport value=wire/transport|transport/https|transport/timeout|transport/response-bytes
|
|
489
|
-
bound-lock/1 about="the lines of all of head's source, together, read by head's suite; widened by the ports region removing what each bound run read once it ends, 4, as the owner ruled; widened by the signing key leaving head-s long process and its refusal written by every door, 7, as the owner ruled" at=witness:signing-key-refused-by-every-door by=target form=interval measure=source-lines role=writes scope=source/lines value=0..2733
|
|
490
560
|
bound-lock/1 about="the lines of each file of the onboard region, read by head-s suite: split from the sources that connect, never raised; a region ceiling landed after founding has no reading of bound-s, so bound holds it as data" at=policy:head/ceilings/0.1.2 by=target form=interval measure=file-lines role=writes scope=onboard/lines value=0..40
|
|
491
561
|
bound-lock/1 about="the lines of each file of the ports region, alone" at=policy:head/ceilings by=target form=interval measure=file-lines role=reads scope=ports/lines value=0..120
|
|
492
562
|
bound-lock/1 about="the lines of the access region, together" at=policy:head/ceilings by=target form=interval measure=access-lines role=reads scope=access/lines value=0..100
|
|
@@ -495,10 +565,8 @@ bound-lock/1 about="the lines of the ahead region, together, read by head-s suit
|
|
|
495
565
|
bound-lock/1 about="the lines of the answers region, together, read by head-s suite; paid from the ceiling of the whole source" at=policy:head/ceilings/0.1.6 by=target form=interval measure=answers-lines role=writes scope=answers/lines value=0..29
|
|
496
566
|
bound-lock/1 about="the lines of the claims region, together, read by head's suite; widened by an agent as an origin and the view of what was stated" at=witness:an-agent-as-an-origin by=target form=interval measure=claims-lines role=writes scope=claims/lines value=0..48
|
|
497
567
|
bound-lock/1 about="the lines of the compile region, together" at=policy:head/ceilings by=target form=interval measure=compile-lines role=reads scope=compile/lines value=0..80
|
|
498
|
-
bound-lock/1 about="the lines of the core region, together" at=policy:head/ceilings by=target form=interval measure=core-lines role=reads scope=core/lines value=0..800
|
|
499
|
-
bound-lock/1 about="the lines of the doors region, together, read by head's suite; widened by each door reading its ceiling of refusals from its own line; widened by head writing what it refuses, so MCP writes it as lines and http do, 6, as the owner ruled" at=witness:signing-key-refused-by-every-door by=target form=interval measure=doors-lines role=writes scope=doors/lines value=0..201
|
|
500
568
|
bound-lock/1 about="the lines of the kept region, together, read by head-s suite; paid from the ceiling of the whole source" at=policy:head/ceilings/0.1.5 by=target form=interval measure=kept-lines role=writes scope=kept/lines value=0..40
|
|
501
|
-
bound-lock/1 about="the lines of the links region, together, read by head-s suite; paid from the ceiling of the whole source" at=
|
|
569
|
+
bound-lock/1 about="the lines of the links region, together, read by head-s suite; paid from the ceiling of the whole source; B measured capacity: 102 lines; witness sha256:2198bc9abd86e5f63c2fcf77409755d806eb8c579d4e05cac4baebe186a45806" at=witness:head/share-inspect/links-lines by=target form=interval measure=links-lines role=writes scope=links/lines value=0..102
|
|
502
570
|
bound-lock/1 about="the lines of the marks region, together, read by head-s suite; paid from the ceiling of the whole source" at=policy:head/ceilings/0.1.5 by=target form=interval measure=marks-lines role=writes scope=marks/lines value=0..60
|
|
503
571
|
bound-lock/1 about="the lines of the places region, together: split from the places that also connected, never raised" at=policy:head/ceilings by=target form=interval measure=places-lines role=reads scope=places/lines value=0..90
|
|
504
572
|
bound-lock/1 about="the lines of the sources region, together: split from the places that also founded, never raised" at=policy:head/ceilings by=target form=interval measure=sources-lines role=reads scope=sources/lines value=0..150
|
|
@@ -523,7 +591,6 @@ bound-lock/1 about="the measure a source-s region names its document by, by dige
|
|
|
523
591
|
bound-lock/1 about="the measure that names what kinds of input an access flow asks" at=policy:head/vocabulary/0.1.1 by=target form=alphabet measure=id role=writes scope=vocab/asks value=asks
|
|
524
592
|
bound-lock/1 about="the most bytes head reads of a document it connects from an address" at=policy:head/transport/0.1.1 by=target form=interval measure=bytes role=writes scope=adapter/request/document-bytes value=0..16777216
|
|
525
593
|
bound-lock/1 about="the most bytes head reads of what bound prints, a process's output or a fold host's answer, and the most a fold host may hold queued; past it the process is stopped or the host closed, and what was printed is no reading" at=policy:head/host/0.1.7 by=target form=interval measure=bytes role=writes scope=bound/printed value=0..16777216
|
|
526
|
-
bound-lock/1 about="the most head reads of a world-s standing to learn its readers" at=policy:head/ceilings by=target form=interval measure=bytes role=reads scope=world/standing-bytes value=0..1048576
|
|
527
594
|
bound-lock/1 about="the next hour, or a wider read/rate the root signs" at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/rate/next value=none
|
|
528
595
|
bound-lock/1 about="the next window, or a wider read/calls the root signs" at=policy:head/calls/0.1.7 by=target form=alphabet measure=id role=writes scope=said/calls-owed/next value=none
|
|
529
596
|
bound-lock/1 about="the numbers a cell shows that are exact by construction — epochs, counts and caps, pins, digests, the times lines carry: no model, kind structural" at=policy:head/numbers/0.1.6 by=target form=alphabet measure=id role=writes scope=numbers/structural value=ceiling|offers|reads|count|allowed|done|epoch|pinned|digest|card|pin|at|until|more
|
|
@@ -663,14 +730,16 @@ bound-lock/1 about="where a place keeps its own walk context, laid beside its lo
|
|
|
663
730
|
bound-lock/1 about="where a place keeps the standing of each world it adopts, laid beside its lock as fetched and checked against the pin, so bound admits the pin on bytes the place holds: a folder named for what it holds" at=policy:head/vocabulary/0.2.0 by=target form=alphabet measure=id role=writes scope=place/worlds value=worlds
|
|
664
731
|
bound-lock/1 about="where an agent's statement is kept: an at whose class says an agent is its origin; head's own key signs it, since an agent has no key of its own" at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=claim/agent/at value=origin:agent
|
|
665
732
|
bound-lock/1 about="where an origin publishes the catalog of its documents (RFC 9727), read with nothing attached" at=policy:head/use/0.1.1g by=target form=alphabet measure=id role=writes scope=use/catalog value=/.well-known/api-catalog
|
|
666
|
-
bound-lock/1 about="where the bound package head pins is fetched from, verified by its digest" at=policy:head/
|
|
733
|
+
bound-lock/1 about="where the bound package head pins is fetched from, verified by its digest" at=policy:head/bound-repin/0.2.8 by=target form=alphabet measure=id role=writes scope=sources/bound value=https://registry.npmjs.org/@lapxo/bound/-/bound-0.2.8.tgz
|
|
667
734
|
bound-lock/1 about="where the sdk package head pins is fetched from, verified by its digest" at=policy:head/pins by=target form=alphabet measure=id role=writes scope=sources/sdk value=https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.32.1.tgz
|
|
668
735
|
bound-lock/1 about="where the topos package head pins is fetched from, verified by its digest" at=policy:head/pins/topos/0.2.4 by=target form=alphabet measure=id role=writes scope=sources/topos value=https://registry.npmjs.org/@lapxo/topos/-/topos-0.2.4.tgz
|
|
669
|
-
bound-lock/1 about="where topos-mcp 0.1.0 publishes its standing: bound fetches it there for every place that pins it, and head reads its readers from it, both by its digest" at=policy:head/worlds/0.2.0 by=target form=alphabet measure=id role=writes scope=sources/topos-mcp value=https://github.com/Lapxo/topos-mcp/releases/download/v0.1.1/standing.bound
|
|
670
736
|
bound-lock/1 about="where topos-openapi 0.1.0 publishes its standing: bound fetches it there for every place that pins it, and head reads its readers from it, both by its digest" at=policy:head/worlds/0.2.0 by=target form=alphabet measure=id role=writes scope=sources/topos-openapi value=https://github.com/Lapxo/topos-openapi/releases/download/v0.1.1/standing.bound
|
|
671
737
|
bound-lock/1 about="who is in a place: founding it with its root, admitting another device" at=policy:project by=target form=alphabet measure=coordinates role=reads scope=region/places value=src/places/**
|
|
672
738
|
bound-lock/1 about="whoever holds the place's root" at=policy:head/words/0.1.7 by=target form=alphabet measure=id role=writes scope=said/no-root/next value=none
|
|
673
|
-
bound-lock/1 about="{\n \"
|
|
739
|
+
bound-lock/1 about="{\n \"example\": \"declared-lineage-retirement@1\",\n \"response\": {\n \"temperature\": 21,\n \"sky\": \"clear\"\n },\n \"sources\": [\n \"forecast\",\n \"mirror\"\n ],\n \"declare\": \"bound-lock/1 at=policy:person/lineage by=target form=alphabet measure=id role=writes scope=shares/mirror value=forecast\",\n \"withdraw\": \"bound-lock/1 at=policy:person/lineage by=target form=alphabet measure=id role=writes scope=shares/mirror value=withdraw\",\n \"before\": {\n \"code\": \"head/agreed-lineage\",\n \"marks\": \"●○\"\n },\n \"after\": {\n \"code\": \"head/agreed-unknown\",\n \"marks\": \"●●\"\n },\n \"interpretation\": \"No declaration after withdrawal is unknown lineage, never proof of independence; old per-source receipts remain.\"\n}\n" at=policy:head/documentation/0.2.0 by=target form=alphabet measure=text role=writes scope=prose/en/page/example-lineage shape=docs/examples/lineage.json value=lock
|
|
740
|
+
bound-lock/1 about="{\n \"example\": \"public-birth-inspection@1\",\n \"sender\": {\n \"scope\": \"lang\",\n \"value\": \"en\"\n },\n \"receiver\": {\n \"scope\": \"lang\",\n \"value\": \"fr\"\n },\n \"expectedCode\": \"head/birth-inspected\",\n \"expectedCollision\": \"lang\",\n \"negativeCode\": \"head/document-digest\",\n \"authorityTransferred\": false\n}\n" at=policy:head/documentation/0.2.0 by=target form=alphabet measure=text role=writes scope=prose/en/page/example-sharing shape=docs/examples/sharing.json value=lock
|
|
741
|
+
bound-lock/1 about="{\n \"example\": \"typed-local-api@1\",\n \"fixture\": \"Two-field OpenAPI forecast, not real weather\",\n \"source\": \"forecast\",\n \"operation\": \"get-forecast\",\n \"args\": {\n \"city\": \"lima\"\n },\n \"response\": {\n \"temperature\": 21,\n \"sky\": \"clear\"\n },\n \"expectedTypedValues\": {\n \"temperature\": \"21\",\n \"sky\": \"clear\"\n },\n \"secrets\": \"Simulated keychain and temporary home; no real credential\"\n}\n" at=policy:head/documentation/0.2.0 by=target form=alphabet measure=text role=writes scope=prose/en/page/example-first-minute shape=docs/examples/first-minute.json value=lock
|
|
742
|
+
bound-lock/1 about="{\n \"manifest_version\": \"0.3\",\n \"name\": \"head\",\n \"display_name\": \"head\",\n \"version\": \"0.2.1\",\n \"description\": \"An MCP server that answers by its lines: it runs bound as a process, hands a model what bound printed, and lands what it read as receipts.\",\n \"author\": {\n \"name\": \"Lapxo\"\n },\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/Lapxo/head\"\n },\n \"homepage\": \"https://github.com/Lapxo/head\",\n \"server\": {\n \"type\": \"node\",\n \"entry_point\": \"dist/src/index.js\",\n \"mcp_config\": {\n \"command\": \"node\",\n \"args\": [\n \"${__dirname}/dist/src/index.js\",\n \"run\"\n ],\n \"env\": {}\n }\n },\n \"tools\": [\n {\n \"name\": \"ask\",\n \"description\": \"Ask head, and nothing changes but the receipts of what was read. With nothing: what this device has connected. A source: its region, what it offers; with an operation and its parameters, one read of an offer of class read, answered with the receipt the device key landed for it, or, while the place allows reuse, the answer kept for it and nothing called. A view: as bound folds it. card: what is open, and the card do needs. lines: a lot for the person to sign. Nothing that is not a read is ever called. An answer about one place ends with its card, valid from it.\"\n },\n {\n \"name\": \"connect\",\n \"description\": \"Connect a source to a place, once the person says yes: its document, and an overlay beside it, laid whatever its kind and compiled once by whichever world reads it — or open, with the line that pays it — into what the source offers and how access is proven, pinned by digest. Nothing is called. A document at an address may be read as a source the place connected, with the access it holds, and checked against its digest. A package another place shared is connected whole: its lock as the document, named by its digest. A site alone or a folder is looked for its document first, before anything is founded. With no place yet, the first connect founds the person's place on one yes that also lets head read the source.\"\n },\n {\n \"name\": \"do\",\n \"description\": \"Do one action in a place, on the card ask answered for it: found a place, admit a device, land a lot ask planned, share a place, make this device's key, prove access to a source, call an offer that is not a read, or keep what the person states as theirs. An action on a place that moved since its card was asked is refused, with nothing done; one the place does not allow is said not to be in the card. The answer ends with the card valid from this act.\"\n }\n ],\n \"tools_generated\": false,\n \"keywords\": [\n \"bound\",\n \"openapi\",\n \"mcp\"\n ],\n \"compatibility\": {\n \"platforms\": [\n \"darwin\"\n ],\n \"runtimes\": {\n \"node\": \">=22.18\"\n }\n }\n}\n" at=policy:head/release/0.2.1 by=target form=alphabet measure=text role=writes scope=prose/en/bundle/manifest shape=manifest.json value=lock
|
|
674
743
|
bound-lock/1 about="{action} is not in the card of {place}: {why}. Nothing was done." at=policy:head/verbs/0.1.4 by=target form=alphabet measure=id role=writes scope=said/not-in-card value=lock
|
|
675
744
|
bound-lock/1 about="{count} lines landed." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/landed value=lock
|
|
676
745
|
bound-lock/1 about="{dir} is a place already: nothing was made." at=policy:head/surface by=target form=alphabet measure=id role=writes scope=said/place-exists value=lock
|
|
@@ -801,6 +870,12 @@ bound-lock/1 at=policy:head/access/0.1.4 by=target form=alphabet measure=id role
|
|
|
801
870
|
bound-lock/1 at=policy:head/access/0.1.4 by=target form=alphabet measure=id role=writes scope=said/access-refused/next/args value=action:access|source:$source|place:$place
|
|
802
871
|
bound-lock/1 at=policy:head/access/0.1.4 by=target form=alphabet measure=id role=writes scope=said/access-refused/state value=refused
|
|
803
872
|
bound-lock/1 at=policy:head/acts by=target form=alphabet measure=id role=writes scope=act/done value=done
|
|
873
|
+
bound-lock/1 at=policy:head/api-mcp-foundation/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|dist/test/|TARGET.bound role=writes scope=reader/source-lines shape=run value=dist/test/source-lines.js
|
|
874
|
+
bound-lock/1 at=policy:head/api-mcp-foundation/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|test/|dist/test/|samples/foundation/yes/|TARGET.bound role=writes scope=reader/foundation shape=run value=dist/test/foundation-reading.js
|
|
875
|
+
bound-lock/1 at=policy:head/api-mcp-foundation/0.2.1 by=target form=alphabet measure=coordinates role=reads scope=region/foundation value=samples/foundation/**
|
|
876
|
+
bound-lock/1 at=policy:head/api-mcp-foundation/0.2.1 by=target form=interval measure=defects needs=samples/foundation/yes/ role=demands scope=foundation/B1 value=0..0
|
|
877
|
+
bound-lock/1 at=policy:head/api-mcp-foundation/0.2.1 by=target form=interval measure=defects needs=samples/foundation/yes/ role=demands scope=foundation/B2 value=0..0
|
|
878
|
+
bound-lock/1 at=policy:head/api-mcp-foundation/0.2.1 by=target form=interval measure=defects needs=samples/foundation/yes/ role=demands scope=foundation/B3 value=0..0
|
|
804
879
|
bound-lock/1 at=policy:head/authority by=owner epoch=1 form=alphabet measure=public-key role=writes scope=keys/owner sig="ed25519:era1:HIVD8P4NcWjPd0Fec8d1Ff52oPI+PMa6U+w8WHKAbj8sJtUWvG5Epmt/44DGRkGB455ByTtcMTK2jMGPN3EPBQ==" value="MCowBQYDK2VwAyEAIYI0be8OWhf3HcVceKpibjgZ+hbYJKYO5ayX8Kk16LE="
|
|
805
880
|
bound-lock/1 at=policy:head/authority by=target form=alphabet measure=class role=writes scope=keys/owner value=authorize
|
|
806
881
|
bound-lock/1 at=policy:head/authority by=target form=alphabet measure=coverage role=writes scope=keys/owner value=*
|
|
@@ -858,6 +933,17 @@ bound-lock/1 at=policy:head/bound by=target form=alphabet measure=id role=writes
|
|
|
858
933
|
bound-lock/1 at=policy:head/bound by=target form=alphabet measure=id role=writes scope=bound/view value=--as
|
|
859
934
|
bound-lock/1 at=policy:head/calls/0.1.7 by=target form=alphabet measure=id role=writes scope=said/calls-owed/state value=open
|
|
860
935
|
bound-lock/1 at=policy:head/calls/0.1.7 by=target form=alphabet measure=id role=writes scope=said/calls-unwindowed/state value=refused
|
|
936
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet kind=js measure=reader needs=runtime.bundle.json|package.json|package-lock.json|TARGET.bound role=writes scope=reader/share-runtime-metadata shape=runtime.bundle.json|package.json|package-lock.json|TARGET.bound value=dist/test/share-runtime.js
|
|
937
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/authority-preflight-capture shape=samples/authority-preflight/yes/client.json value=sha256:1ff9d628ca14e1db144da9659565c0e9c9bdad6aef5093557fc2f6b9361464ad
|
|
938
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/foundation-capture shape=samples/foundation/yes/client.json value=sha256:9e92b75e05f0193b64394acc0f271097ea8e2638ed49858bfcb552f5eb5f506f
|
|
939
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/share-inspect-capture shape=samples/share-inspect/yes/client.json value=sha256:ab37d9ab5a7a2572f455e59a2d4ac884b65b5c6e949a7aff6e1dbf267b347fa9
|
|
940
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/walk-reading-capture shape=samples/walk-reading/yes/client.json value=sha256:c6cca891c755ebdc06279e37bb9cb924a281cfff9ef181595f89a8af6cc3d1a3
|
|
941
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-authority-preflight shape=dist/test/authority-preflight-reader.js value=sha256:bcc2825b0d8e9f0a325ec2ec7a90809b9621b95f54dcaac57bc19c81338afb28
|
|
942
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-foundation shape=dist/test/foundation-reading.js value=sha256:11d42f19030b5235cd69f6b27f571c55b30379a92cf48947f3018a6ef490164e
|
|
943
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-share-inspect shape=dist/test/share-inspect.js value=sha256:dbae11f97f8487c045a7b12e3c4c0b7f2ec4f2dfbb7cbc3bf08da1f637e98410
|
|
944
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-share-runtime shape=dist/test/share-runtime.js value=sha256:2234d5609ebc6a44f0b6af54775f5a7f63e4c28dd8d371de9c8f080ec20e1d77
|
|
945
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-walk-reading shape=dist/test/walk-reading.js value=sha256:16a8a0ace5fe3165768233aa8dd32d296f00a0e5c4d8d0309383d987c3141d35
|
|
946
|
+
bound-lock/1 at=policy:head/catalogue-share-successor/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/share-runtime-capture shape=samples/share-runtime/yes/client.json value=sha256:a1ead8412105b6da05acbb86163b213d8235c0109ce0543df4bc089a2e8de380
|
|
861
947
|
bound-lock/1 at=policy:head/ceilings by=target form=interval measure=count role=reads scope=literal/host value=0..0
|
|
862
948
|
bound-lock/1 at=policy:head/ceilings by=target form=interval measure=count role=reads scope=literal/key value=0..0
|
|
863
949
|
bound-lock/1 at=policy:head/ceilings by=target form=interval measure=count role=reads scope=literal/org value=0..0
|
|
@@ -882,6 +968,25 @@ bound-lock/1 at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=i
|
|
|
882
968
|
bound-lock/1 at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=said/claim-backed/state value=done
|
|
883
969
|
bound-lock/1 at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=said/claims-none/state value=done
|
|
884
970
|
bound-lock/1 at=policy:head/claims/0.1.7-agent by=target form=alphabet measure=id role=writes scope=said/door-unoriginated/state value=refused
|
|
971
|
+
bound-lock/1 at=policy:head/composition-preparation/0.2.1 by=target form=alphabet measure=coordinates role=reads scope=region/composition-vectors value=samples/composition/**
|
|
972
|
+
bound-lock/1 at=policy:head/composition-preparation/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/composition-contract shape=docs/contracts/composition.json value=sha256:73ceb593ee1e891449dde2a62e8bbf03a5e2dd8d9afe80960b320ddca5d90f8f
|
|
973
|
+
bound-lock/1 at=policy:head/composition-preparation/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/composition-vectors shape=vectors/composition.json value=sha256:76465e408b34018eba9dabe3ea25db680410f8dfa57d69a5b447a60e18923939
|
|
974
|
+
bound-lock/1 at=policy:head/composition-preparation/0.2.1 by=target form=interval measure=defects needs=samples/composition/yes/ role=demands scope=composition/mcp-port-vector value=0..0
|
|
975
|
+
bound-lock/1 at=policy:head/composition-preparation/0.2.1 by=target form=interval measure=defects needs=samples/composition/yes/ role=demands scope=composition/mcpb-format-vector value=0..0
|
|
976
|
+
bound-lock/1 at=policy:head/composition-preparation/0.2.1 by=target form=interval measure=defects needs=samples/composition/yes/ role=demands scope=composition/selection-vector value=0..0
|
|
977
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=coordinates role=reads scope=region/authority-preflight value=samples/authority-preflight/**
|
|
978
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=coordinates role=reads scope=region/authority-preflight-fixtures value=test/**|docs/contracts/**
|
|
979
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=bound/authority/clock value=unix
|
|
980
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=bound/authority/unit value=milliseconds
|
|
981
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-card/next value=none
|
|
982
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-card/state value=done
|
|
983
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-needed/next value=none
|
|
984
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-needed/state value=open
|
|
985
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-refused/next value=none
|
|
986
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=alphabet measure=id role=writes scope=said/authority-refused/state value=refused
|
|
987
|
+
bound-lock/1 at=policy:head/configuration-preflight/0.2.0 by=target form=interval measure=defects needs=samples/authority-preflight/yes/ role=demands scope=authority-preflight/configuration value=0..0
|
|
988
|
+
bound-lock/1 at=policy:head/configured-policy-input/0.2.1 by=target form=alphabet kind=js measure=reader needs=TARGET.bound role=writes scope=reader/configured-ports-policy shape=*.bound value=dist/test/configured-ports.js
|
|
989
|
+
bound-lock/1 at=policy:head/configured-policy-input/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|dist/src/|test/|dist/test/|docs/contracts/|vectors/|samples/configured-ports/yes/|TARGET.bound role=writes scope=reader/configured-ports shape=run value=dist/test/configured-ports.js
|
|
885
990
|
bound-lock/1 at=policy:head/cryptography by=target form=alphabet measure=id role=reads scope=wire/digest-algorithms value=sha256
|
|
886
991
|
bound-lock/1 at=policy:head/cryptography by=target form=alphabet measure=id role=reads scope=wire/era value=era1
|
|
887
992
|
bound-lock/1 at=policy:head/cryptography by=target form=alphabet measure=id role=reads scope=wire/signature-algorithms value=ed25519:era1
|
|
@@ -895,6 +1000,8 @@ bound-lock/1 at=policy:head/doors/0.1.7-http by=target form=alphabet measure=id
|
|
|
895
1000
|
bound-lock/1 at=policy:head/doors/0.1.7-http by=target form=alphabet measure=id role=writes scope=said/door-origin/state value=refused
|
|
896
1001
|
bound-lock/1 at=policy:head/doors/0.1.7-http by=target form=alphabet measure=id role=writes scope=said/door-unasked/state value=refused
|
|
897
1002
|
bound-lock/1 at=policy:head/doors/0.1.7-lines by=target form=alphabet measure=id role=writes scope=said/door-unread/state value=refused
|
|
1003
|
+
bound-lock/1 at=policy:head/first-minute/0.2.0 by=target form=alphabet measure=coordinates role=reads scope=region/first-minute value=samples/first-minute/**
|
|
1004
|
+
bound-lock/1 at=policy:head/first-minute/0.2.0 by=target form=interval measure=defects needs=samples/first-minute/yes/ role=demands scope=first-minute/installed value=0..0
|
|
898
1005
|
bound-lock/1 at=policy:head/forge by=target form=alphabet measure=id role=writes scope=dep/runtime-prose-render shape=dist/regions/text.js value=sha256:67c56505dc51e1f7c0e9926df43d0e05d19a158edd4b1be1db95666d0bac8951
|
|
899
1006
|
bound-lock/1 at=policy:head/forge by=target form=alphabet measure=id role=writes scope=sources/prose-render value=https://github.com/Lapxo/topos/releases/download/v0.1.13/907115916d64425dd23305fc74d91ea937f933de4949fb0c4dc94fb1106bd33e
|
|
900
1007
|
bound-lock/1 at=policy:head/forge by=target form=alphabet measure=id role=writes scope=sources/runtime-prose-render value=https://github.com/Lapxo/topos/releases/download/v0.1.13/67c56505dc51e1f7c0e9926df43d0e05d19a158edd4b1be1db95666d0bac8951
|
|
@@ -908,6 +1015,9 @@ bound-lock/1 at=policy:head/kept/0.1.5 by=target form=alphabet measure=id role=w
|
|
|
908
1015
|
bound-lock/1 at=policy:head/kept/0.1.5 by=target form=alphabet measure=id role=writes scope=said/kept-expired/state value=done
|
|
909
1016
|
bound-lock/1 at=policy:head/kept/0.1.5 by=target form=alphabet measure=id role=writes scope=said/kept-withdrawn/state value=done
|
|
910
1017
|
bound-lock/1 at=policy:head/kept/0.1.5 by=target form=alphabet measure=id role=writes scope=said/kept/state value=done
|
|
1018
|
+
bound-lock/1 at=policy:head/kind-boundary/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/protocol-surface-contract shape=docs/contracts/protocol-surface.json value=sha256:4780879d1ad578dc093a46bb20dbab580f909e3e84e2b8de2e87f3f884e0c206
|
|
1019
|
+
bound-lock/1 at=policy:head/kind-boundary/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-protocol-surface shape=dist/test/protocol-surface.js value=sha256:d15fbd9a058a4d33bb5dc00b557af3af5c69c7eff567b6e6f8d75494fc00e1aa
|
|
1020
|
+
bound-lock/1 at=policy:head/kind-boundary/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-protocol-surface-reading shape=dist/test/protocol-surface-reading.js value=sha256:9eda478073df605cdbcdf9414609e91a3d9631185b6376a80f26dde3f5bbb793
|
|
911
1021
|
bound-lock/1 at=policy:head/link/0.1.5 by=target form=alphabet measure=id role=writes scope=said/inspected/state value=done
|
|
912
1022
|
bound-lock/1 at=policy:head/link/0.1.5 by=target form=alphabet measure=id role=writes scope=said/link-owed/state value=open
|
|
913
1023
|
bound-lock/1 at=policy:head/link/0.1.5 by=target form=alphabet measure=id role=writes scope=said/link-refused/state value=refused
|
|
@@ -921,13 +1031,68 @@ bound-lock/1 at=policy:head/marks/0.1.5 by=target form=alphabet measure=id role=
|
|
|
921
1031
|
bound-lock/1 at=policy:head/marks/0.1.5 by=target form=alphabet measure=id role=writes scope=said/agreed-undeclared/state value=done
|
|
922
1032
|
bound-lock/1 at=policy:head/marks/0.1.5 by=target form=alphabet measure=id role=writes scope=said/agreed-unknown/state value=done
|
|
923
1033
|
bound-lock/1 at=policy:head/marks/0.1.5 by=target form=alphabet measure=id role=writes scope=said/forked/state value=done
|
|
1034
|
+
bound-lock/1 at=policy:head/mcp-physical-counter/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-source-lines shape=dist/test/source-lines.js value=sha256:2f8006981ee9f9c40b342feb1b6214be10bb5b40a8beab959d8fe481237f7e43
|
|
1035
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet kind=js measure=reader needs=TARGET.bound role=writes scope=reader/mcp-receiver-policy shape=*.bound value=dist/test/mcp-receiver-reading.js
|
|
1036
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet kind=js measure=reader needs=runtime.bundle.json|package.json|package-lock.json|vectors/mcp-receiver-flow.json|docs/contracts/|samples/mcp-receiver/yes/ role=writes scope=reader/mcp-receiver-json shape=*.json value=dist/test/mcp-receiver-reading.js
|
|
1037
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet kind=js measure=reader needs=test/mcp-fixture.ts|test/mcp-transport.test.ts|test/mcp-flow-native.ts|test/answer-model.test.ts|test/adopt-model.test.ts role=writes scope=reader/mcp-receiver-tests shape=*.ts value=dist/test/mcp-receiver-reading.js
|
|
1038
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|dist/src/|docs/contracts/|vectors/mcp-receiver-flow.json|test/mcp-fixture.ts|test/mcp-transport.test.ts|test/mcp-flow-native.ts|test/answer-model.test.ts|test/adopt-model.test.ts|dist/test/mcp-receiver-reading.js|samples/mcp-receiver/yes/|runtime.bundle.json|package.json|package-lock.json|TARGET.bound role=writes scope=reader/mcp-receiver shape=run value=dist/test/mcp-receiver-reading.js
|
|
1039
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=coordinates role=reads scope=region/mcp-receiver value=samples/mcp-receiver/**
|
|
1040
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/composition-mcpb-contract shape=docs/contracts/composition-mcpb.json value=sha256:90fd486f82c50e4500e09d8673bb0b38e408131a32fb24d2968263b775b5719e
|
|
1041
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/mcp-receiver-vectors shape=vectors/mcp-receiver-flow.json value=sha256:335b2f28f4537cd1bf3dcf267d773eff7bf9e5366dc640889175da11f0a56565
|
|
1042
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/configured-ports-contract shape=docs/contracts/configured-receiver.json value=sha256:a18f55e36739ec65c9a3677756ea70b954e6c04c9515d06cce8f4d4641070921
|
|
1043
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/receiver-contract shape=docs/contracts/bundle-receiver.json value=sha256:4782fb3d7d11f5041589fc077f0cb51510ae8ead1a6be731e1efdef44a06a5db
|
|
1044
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/share-runtime-assembly-contract shape=docs/contracts/share-bundle.json value=sha256:ea46eed91ee5b954d7742b1652f66ed6e027bebea791558ad8100938c48745a5
|
|
1045
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-mcp-needed/next value=connect
|
|
1046
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-mcp-needed/next/args value=document:$document|source:$source|protocol:mcp
|
|
1047
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-mcp-needed/state value=open
|
|
1048
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=said/elicit-mcp-call/state value=asked
|
|
1049
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=alphabet measure=id role=writes scope=said/mcp-refused/state value=refused
|
|
1050
|
+
bound-lock/1 at=policy:head/mcp-receiver/0.2.1 by=target form=interval measure=defects needs=samples/mcp-receiver/yes/ role=demands scope=composition/mcp-receiver-transport value=0..0
|
|
924
1051
|
bound-lock/1 at=policy:head/numbers/0.1.5 by=target form=alphabet measure=id role=writes scope=said/unmeasured/state value=open
|
|
1052
|
+
bound-lock/1 at=policy:head/post-kind-acceptances/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/configured-ports-capture shape=samples/configured-ports/yes/client.json value=sha256:097426cc2a0a3b6923baf1e0461687bdb094880e2906afd8c73285359b85de85
|
|
1053
|
+
bound-lock/1 at=policy:head/post-kind-acceptances/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-configured-ports shape=dist/test/configured-ports.js value=sha256:0485b1fd07b8446b3cfa127f5f630eda3f8405e24c086c61d59dd152f1128694
|
|
1054
|
+
bound-lock/1 at=policy:head/protocol-parser-inputs/0.2.1 by=target form=alphabet kind=js measure=reader needs=TARGET.bound|node_modules/typescript/ role=writes scope=reader/protocol-surface-policy shape=*.bound value=dist/test/protocol-surface-reading.js
|
|
1055
|
+
bound-lock/1 at=policy:head/protocol-parser-inputs/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|dist/test/|docs/contracts/|node_modules/typescript/ role=writes scope=reader/protocol-surface shape=run value=dist/test/protocol-surface-reading.js
|
|
1056
|
+
bound-lock/1 at=policy:head/protocol-parser-inputs/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/protocol-surface-parser shape=node_modules/typescript/lib/typescript.js value=sha256:3ae902c92cc44dace175c0e69e13a4b0899f6983c6121d76b9ab8dd5795e7675
|
|
1057
|
+
bound-lock/1 at=policy:head/protocol-parser-inputs/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/protocol-surface-parser-manifest shape=node_modules/typescript/package.json value=sha256:822ef7ca6452205657b6288b066481ecf508bfbf43455d715cf7d3ec457561e6
|
|
1058
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=bundle/association-family value=packages
|
|
1059
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=bundle/receiver-folder value=head-packages
|
|
1060
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-associated/next value=ask
|
|
1061
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-associated/next/args value=place:$place
|
|
1062
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-associated/state value=done
|
|
1063
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-not-selected/next value=ask
|
|
1064
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-not-selected/next/args value=place:$place
|
|
1065
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-not-selected/state value=refused
|
|
1066
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-receiver-ready/next value=connect
|
|
1067
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-receiver-ready/next/args value=document:$document|digest:$digest|place:$place
|
|
1068
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-receiver-ready/state value=open
|
|
1069
|
+
bound-lock/1 at=policy:head/receiver-flow/0.2.1 by=target form=alphabet measure=id role=writes scope=said/elicit-bundle-receive/state value=asked
|
|
1070
|
+
bound-lock/1 at=policy:head/receiver-runtime/0.2.1 by=target form=alphabet kind=js measure=reader needs=TARGET.bound role=writes scope=reader/receiver-runtime-policy shape=*.bound value=dist/test/receiver-runtime.js
|
|
1071
|
+
bound-lock/1 at=policy:head/receiver-runtime/0.2.1 by=target form=alphabet kind=js measure=reader needs=runtime.bundle.json|package-lock.json|docs/contracts/bundle-receiver.json|vectors/bundle-receiver.json|samples/receiver-runtime/yes/client.json role=writes scope=reader/receiver-runtime-json shape=*.json value=dist/test/receiver-runtime.js
|
|
1072
|
+
bound-lock/1 at=policy:head/receiver-runtime/0.2.1 by=target form=alphabet kind=js measure=reader needs=test/receiver.test.ts|test/source-policy.test.ts|test/share-bundle.test.ts|test/runtime-resolution.test.ts role=writes scope=reader/receiver-runtime-tests shape=*.ts value=dist/test/receiver-runtime.js
|
|
1073
|
+
bound-lock/1 at=policy:head/receiver-runtime/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|dist/src/|test/receiver.test.ts|test/source-policy.test.ts|test/share-bundle.test.ts|test/runtime-resolution.test.ts|dist/test/receiver-runtime.js|docs/contracts/bundle-receiver.json|vectors/bundle-receiver.json|samples/receiver-runtime/yes/|runtime.bundle.json|package-lock.json|TARGET.bound role=writes scope=reader/receiver-runtime shape=run value=dist/test/receiver-runtime.js
|
|
1074
|
+
bound-lock/1 at=policy:head/receiver-runtime/0.2.1 by=target form=alphabet measure=coordinates role=reads scope=region/receiver-runtime value=samples/receiver-runtime/**
|
|
1075
|
+
bound-lock/1 at=policy:head/receiver-runtime/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/receiver-vectors shape=vectors/bundle-receiver.json value=sha256:bc3d8cb077542d54d2f2666ccb3603ed5af8e5c598007e53115815c3c6df0fac
|
|
1076
|
+
bound-lock/1 at=policy:head/receiver-runtime/0.2.1 by=target form=interval measure=defects needs=samples/receiver-runtime/yes/ role=demands scope=composition/receiver-runtime value=0..0
|
|
925
1077
|
bound-lock/1 at=policy:head/release by=target form=alphabet measure=id role=writes scope=release/blocks value=integrity|pins|cli|surface
|
|
926
|
-
bound-lock/1 at=policy:head/release by=target form=alphabet measure=id role=writes scope=release/category/cli value=cli/**|cost/act
|
|
927
1078
|
bound-lock/1 at=policy:head/release by=target form=alphabet measure=id role=writes scope=release/category/integrity value=literal/host|literal/key|literal/org|literal/path|duplicate/src|door/unreceipted
|
|
928
|
-
bound-lock/1 at=policy:head/release by=target form=alphabet measure=id role=writes scope=release/category/pins value=resolve-by-url|offline|the-stranger
|
|
929
1079
|
bound-lock/1 at=policy:head/release by=target form=alphabet measure=id role=writes scope=release/category/surface value=surface/**|tools/config|core/lines|access/lines|places/lines|sources/lines|compile/lines|adopt/lines|walk/lines|ports/lines
|
|
930
|
-
bound-lock/1 at=policy:head/release/0.1
|
|
1080
|
+
bound-lock/1 at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/composition-capture shape=samples/composition/yes/client.json value=sha256:ff823082358cf7d8b83f91e76a6396b8dee0acdff1e07b2a1dcef609807e7ab4
|
|
1081
|
+
bound-lock/1 at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/mcp-receiver-capture shape=samples/mcp-receiver/yes/client.json value=sha256:32c21ca4a06694b78c998a86fdc33a06c1b1a29a620b5f648a491536621ced82
|
|
1082
|
+
bound-lock/1 at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/receiver-capture shape=samples/receiver-runtime/yes/client.json value=sha256:20cd9d32b193e0c801f571ee6238b81bea19adf5410f984b2cb756ab5608d76f
|
|
1083
|
+
bound-lock/1 at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-composition-vectors shape=dist/test/composition-reading.js value=sha256:51d97f1ab12337b44ba2a5730e5f6d801cec5b99d976cd6511eb1a3a06b4a714
|
|
1084
|
+
bound-lock/1 at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-first-minute shape=dist/test/first-minute.js value=sha256:267bfbd081d60fcb4b6ee5b66972c86aa7c69905394e46d876f0f0290a132f84
|
|
1085
|
+
bound-lock/1 at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-mcp-receiver shape=dist/test/mcp-receiver-reading.js value=sha256:43e7081b56197d559249eb0a440304de9fcd98b5f72d8f0f8e2cd9be67ef3cdc
|
|
1086
|
+
bound-lock/1 at=policy:head/release-acceptance/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-receiver shape=dist/test/receiver-runtime.js value=sha256:c4b29227035b4fc5d12728537037ec76cb3b4d411d6d6be291b047f036fb017d
|
|
1087
|
+
bound-lock/1 at=policy:head/release-gates/0.2.0 by=target form=alphabet measure=digest role=writes scope=dep/authority-preflight-contract shape=docs/contracts/authority-preflight.json value=sha256:7fced2a3721f0857fb78fbcf72c5b0225c8c1e80c10fc192869928014b748b35
|
|
1088
|
+
bound-lock/1 at=policy:head/release-gates/0.2.0 by=target form=alphabet measure=status needs=package-lock.json role=demands scope=release/metadata/lock shape=decision value=present
|
|
1089
|
+
bound-lock/1 at=policy:head/release-gates/0.2.0 by=target form=alphabet measure=status needs=package.json role=demands scope=release/metadata/manifest shape=decision value=present
|
|
1090
|
+
bound-lock/1 at=policy:head/release-metadata/0.2.1 by=target form=alphabet measure=digest role=writes scope=dep/runtime-release-metadata shape=entry.js value=sha256:c0569d3c32decf3c064094ec9562e1e31b8aac456e07504871922d8fc5e342f0
|
|
1091
|
+
bound-lock/1 at=policy:head/release-metadata/0.2.1 by=target form=alphabet measure=digest role=writes scope=uses/release-metadata value=sha256:c09d3744bcd410b4634ffb78cc7cd787f4c029298f8ce60fe36f230461bb4885
|
|
1092
|
+
bound-lock/1 at=policy:head/release-metadata/0.2.1 by=target form=alphabet measure=id role=writes scope=sources/release-metadata value=https://github.com/Lapxo/head/releases/download/v0.2.1/c09d3744bcd410b4634ffb78cc7cd787f4c029298f8ce60fe36f230461bb4885.bound
|
|
1093
|
+
bound-lock/1 at=policy:head/release-metadata/0.2.1 by=target form=alphabet measure=id role=writes scope=sources/runtime-release-metadata value=https://github.com/Lapxo/head/releases/download/v0.2.1/c0569d3c32decf3c064094ec9562e1e31b8aac456e07504871922d8fc5e342f0.tgz
|
|
1094
|
+
bound-lock/1 at=policy:head/release/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-bundle shape=runtime.bundle.json value=sha256:f20d82a86d78a47086e5d043def1be3799d9132922c6227cfbc6186fdd6233cc
|
|
1095
|
+
bound-lock/1 at=policy:head/release/0.2.1 by=target form=alphabet measure=id role=writes scope=version value=0.2.1
|
|
931
1096
|
bound-lock/1 at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/access-anonymous/state value=done
|
|
932
1097
|
bound-lock/1 at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/access-kept/state value=done
|
|
933
1098
|
bound-lock/1 at=policy:head/shape/0.1.2 by=target form=alphabet measure=id role=writes scope=said/access-unstated/state value=refused
|
|
@@ -1057,8 +1222,44 @@ bound-lock/1 at=policy:head/shape/0.1.6 by=target form=alphabet measure=id role=
|
|
|
1057
1222
|
bound-lock/1 at=policy:head/shape/0.1.6 by=target form=alphabet measure=id role=writes scope=said/pick-offer/state value=asked
|
|
1058
1223
|
bound-lock/1 at=policy:head/shape/0.1.6 by=target form=alphabet measure=id role=writes scope=said/why-transport/state value=done
|
|
1059
1224
|
bound-lock/1 at=policy:head/shape/0.1.6-answered by=target form=alphabet measure=id role=writes scope=said/answered-nothing/state value=done
|
|
1225
|
+
bound-lock/1 at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-protocol-pending/state value=open
|
|
1226
|
+
bound-lock/1 at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-refused/state value=refused
|
|
1227
|
+
bound-lock/1 at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-shared/state value=done
|
|
1228
|
+
bound-lock/1 at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-source-needed/next value=connect
|
|
1229
|
+
bound-lock/1 at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-source-needed/next/args value=source:$source|document:$document
|
|
1230
|
+
bound-lock/1 at=policy:head/share-assembly/0.2.1 by=target form=alphabet measure=id role=writes scope=said/bundle-source-needed/state value=open
|
|
1231
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=coordinates role=reads scope=region/share-inspect value=samples/share-inspect/**
|
|
1232
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=coordinates role=reads scope=region/share-inspect-fixtures value=test/**
|
|
1233
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=link/prefixes value=#bound:|#topos-reference:
|
|
1234
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-empty/next value=none
|
|
1235
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-empty/state value=open
|
|
1236
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-inspected/next value=none
|
|
1237
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-inspected/state value=done
|
|
1238
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-needs/next value=none
|
|
1239
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-needs/state value=open
|
|
1240
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-refused/next value=none
|
|
1241
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-refused/state value=refused
|
|
1242
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-shared/next value=none
|
|
1243
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/birth-shared/state value=done
|
|
1244
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/reference-needs/next value=none
|
|
1245
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=said/reference-needs/state value=open
|
|
1246
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=share/birth-file value=birth.topos
|
|
1247
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=alphabet measure=id role=writes scope=share/birth-scopes value=lang
|
|
1248
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=interval measure=count role=writes scope=share/birth-items value=0..64
|
|
1249
|
+
bound-lock/1 at=policy:head/share-inspect/0.2.0 by=target form=interval measure=defects needs=samples/share-inspect/yes/ role=demands scope=share-inspect/verified value=0..0
|
|
1250
|
+
bound-lock/1 at=policy:head/share-runtime/0.2.1 by=target form=alphabet kind=js measure=reader needs=package.json|package-lock.json|runtime.bundle.json role=writes scope=reader/share-runtime-metadata shape=*.json value=dist/test/share-runtime.js
|
|
1251
|
+
bound-lock/1 at=policy:head/share-runtime/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/|test/|dist/src/|dist/test/|samples/share-runtime/yes/|docs/contracts/|vectors/|runtime.bundle*.json|package*.json|TARGET.bound role=writes scope=reader/share-runtime shape=run value=dist/test/share-runtime.js
|
|
1252
|
+
bound-lock/1 at=policy:head/share-runtime/0.2.1 by=target form=alphabet measure=coordinates role=reads scope=region/share-runtime value=samples/share-runtime/**
|
|
1253
|
+
bound-lock/1 at=policy:head/share-runtime/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/share-runtime-contract shape=docs/contracts/share-runtime.json value=sha256:028c37964e7f02519204203aac5e861458ef62af3b3fcb1b7d83ebbc3f58da60
|
|
1254
|
+
bound-lock/1 at=policy:head/share-runtime/0.2.1 by=target form=alphabet measure=id role=writes scope=share/bundle-suffix value=.mcpb
|
|
1255
|
+
bound-lock/1 at=policy:head/share-runtime/0.2.1 by=target form=interval measure=defects needs=samples/share-runtime/yes/ role=demands scope=composition/share-runtime value=0..0
|
|
1256
|
+
bound-lock/1 at=policy:head/share-runtime/0.2.1 by=target form=interval measure=share-public-bytes role=writes scope=share/bundle-bytes value=0..16777216
|
|
1257
|
+
bound-lock/1 at=policy:head/share-runtime/0.2.1 by=target form=interval measure=share-selections role=writes scope=share/bundle-selections value=0..64
|
|
1060
1258
|
bound-lock/1 at=policy:head/signer by=target form=interval measure=bytes role=writes scope=signer/response-bytes value=1048576..1048576
|
|
1061
1259
|
bound-lock/1 at=policy:head/signer by=target form=interval measure=milliseconds role=writes scope=signer/timeout value=30000..30000
|
|
1260
|
+
bound-lock/1 at=policy:head/single-sdk-prerequisites/0.2.1 by=target form=alphabet measure=coordinates role=reads scope=region/configured-ports value=samples/configured-ports/**
|
|
1261
|
+
bound-lock/1 at=policy:head/single-sdk-prerequisites/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/configured-ports-vectors shape=vectors/configured-receiver.json value=sha256:964b8698039b397e3c52f77bc1dda669ca7a639535c722752c03964134a59ace
|
|
1262
|
+
bound-lock/1 at=policy:head/single-sdk-prerequisites/0.2.1 by=target form=interval measure=defects needs=samples/configured-ports/yes/ role=demands scope=configured/prerequisite-ports value=0..0
|
|
1062
1263
|
bound-lock/1 at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/access/required value=source
|
|
1063
1264
|
bound-lock/1 at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/ask/required value=source|operation
|
|
1064
1265
|
bound-lock/1 at=policy:head/surface by=target form=alphabet measure=id role=writes scope=prompt/can/required value=source|operation|times
|
|
@@ -1149,6 +1350,7 @@ bound-lock/1 at=policy:head/vocabulary by=target form=alphabet measure=id role=w
|
|
|
1149
1350
|
bound-lock/1 at=policy:head/walk by=target form=alphabet measure=id role=writes scope=birth/wire/walk/metadata-fields value=at|by|condition|epoch|form|measure|role|scope|sig|value
|
|
1150
1351
|
bound-lock/1 at=policy:head/walk by=target form=alphabet measure=id role=writes scope=birth/wire/walk/projections value=0:inventory|1:summary|8:history
|
|
1151
1352
|
bound-lock/1 at=policy:head/walk by=target form=alphabet measure=id role=writes scope=birth/wire/walk/resolutions value=0|1|8
|
|
1353
|
+
bound-lock/1 at=policy:head/walk-reading/0.2.0 by=target form=alphabet measure=coordinates role=reads scope=region/walk-reading value=samples/walk-reading/**
|
|
1152
1354
|
bound-lock/1 at=policy:head/wire by=target form=alphabet measure=id role=reads scope=wire/at-classes value=origin|place|receipt|witness|policy
|
|
1153
1355
|
bound-lock/1 at=policy:head/wire by=target form=alphabet measure=id role=reads scope=wire/families value=audit|beat|block|cites|comments|concept|cost|dep|effect|fold|hazard|keys|law|license|lines|literal|offers|question|reader|region|release|render|roles|sample|session|take|test|tree|vector|view|write
|
|
1154
1356
|
bound-lock/1 at=policy:head/wire by=target form=alphabet measure=id role=reads scope=wire/fields value=scope|role|form|measure|value|by|at|needs|sig|epoch|shape|restsOn|condition|about|kind|view
|
|
@@ -1162,10 +1364,14 @@ bound-lock/1 at=policy:head/wire by=target form=alphabet measure=id role=reads s
|
|
|
1162
1364
|
bound-lock/1 at=policy:head/wire by=target form=alphabet measure=id role=reads scope=wire/shapes value=decision|lock|package|reader|render|run|vector|view
|
|
1163
1365
|
bound-lock/1 at=policy:head/wire by=target form=alphabet measure=id role=reads scope=wire/states value=absent|present|unread|withdraw
|
|
1164
1366
|
bound-lock/1 at=policy:head/wire by=target form=alphabet measure=id role=reads scope=wire/templates value={cone}|{roots}
|
|
1367
|
+
bound-lock/1 at=policy:head/world-standing/0.2.1 by=target form=alphabet kind=process measure=reader needs=src/core/|dist/src/core/|test/|dist/test/|samples/world-standing/yes/|docs/contracts/|TARGET.bound role=writes scope=reader/world-standing shape=run value=dist/test/world-standing.js
|
|
1368
|
+
bound-lock/1 at=policy:head/world-standing/0.2.1 by=target form=alphabet measure=coordinates role=reads scope=region/world-standing value=samples/world-standing/**
|
|
1369
|
+
bound-lock/1 at=policy:head/world-standing/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/runtime-world-standing shape=dist/test/world-standing.js value=sha256:105dbf80dfca6572c7a3af5799b1e083943cd957fb47de3615a2f89169d115d5
|
|
1370
|
+
bound-lock/1 at=policy:head/world-standing/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/world-standing-contract shape=docs/contracts/world-standing-size.json value=sha256:25b0bfe9c37a169367ce0152ca1379623f3585e7111b3b3807bb45e64bcbd737
|
|
1371
|
+
bound-lock/1 at=policy:head/world-standing/0.2.1 by=target form=alphabet measure=id role=writes scope=dep/world-standing-helper shape=dist/src/core/worlds.js value=sha256:5987da9b517c1b4229eda2c2bc7871d64b610e267ed0f8817bf05ad864d3bf92
|
|
1372
|
+
bound-lock/1 at=policy:head/world-standing/0.2.1 by=target form=interval measure=defects needs=samples/world-standing/yes/ role=demands scope=world/standing-integrity value=0..0
|
|
1165
1373
|
bound-lock/1 at=policy:head/worlds by=target form=alphabet measure=id role=writes scope=world/shape value=dist/index.js
|
|
1166
|
-
bound-lock/1 at=policy:head/worlds/0.2.0 by=target form=alphabet measure=digest role=writes scope=world/topos-mcp/blob value=sha256:d2a4eaa804501a8425498499727954f3328a9bdda19651bc4757959f67cb0a6d
|
|
1167
1374
|
bound-lock/1 at=policy:head/worlds/0.2.0 by=target form=alphabet measure=digest role=writes scope=world/topos-openapi/blob value=sha256:13a79fc41f1b837a0527fbe4c5aed3cec190fae7d28215a36ec25e54f7d67274
|
|
1168
|
-
bound-lock/1 at=policy:head/worlds/0.2.0 by=target form=alphabet measure=id role=writes scope=sources/topos-mcp-blob value=https://github.com/Lapxo/topos-mcp/releases/download/v0.1.1/d2a4eaa804501a8425498499727954f3328a9bdda19651bc4757959f67cb0a6d.tar.gz
|
|
1169
1375
|
bound-lock/1 at=policy:head/worlds/0.2.0 by=target form=alphabet measure=id role=writes scope=sources/topos-openapi-blob value=https://github.com/Lapxo/topos-openapi/releases/download/v0.1.1/13a79fc41f1b837a0527fbe4c5aed3cec190fae7d28215a36ec25e54f7d67274.tar.gz
|
|
1170
1376
|
bound-lock/1 at=policy:project by=target form=alphabet measure=coordinates role=reads scope=region/checks value=test/**|vectors/**|samples/**
|
|
1171
1377
|
bound-lock/1 at=policy:project by=target form=alphabet measure=coordinates role=reads scope=region/project value=package.json|LICENSE
|