@ziffer-io/types 0.1.0 → 0.1.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 CHANGED
@@ -1,58 +1,45 @@
1
- # `@ziffer-io/types`
1
+ # @ziffer-io/types
2
2
 
3
- The ACP wire format as TypeScript types, generated from `spec/schemas/` in the engine repository
4
- and published at the commit this workspace pins.
3
+ The ZIFFER wire format as TypeScript types.
4
+
5
+ ## Install
5
6
 
6
7
  ```bash
7
8
  npm install @ziffer-io/types
8
9
  ```
9
10
 
10
- You do not usually install this directly. `@ziffer-io/client` depends on it, so a client install
11
- brings the wire types with it.
12
-
13
- ## What it is
14
-
15
- `spec/schemas/wire/` and `spec/schemas/bundle/` are the only normative definition of every ACP
16
- message. The engine's `tools/codegen.sh` turns them into Rust and TypeScript; this package is that
17
- TypeScript output, compiled, with the engine commit it came from recorded in its own
18
- `package.json` under `ziffer.enginePin`.
11
+ Most integrations never install this directly. `@ziffer-io/client` depends on it, so installing
12
+ the client brings the wire types with it.
19
13
 
20
- So the types are not a transcription of the schemas. They are the schemas' output, and a field this
21
- package does not have is a field the specification does not state.
14
+ ## Usage
22
15
 
23
- ## What is in the tarball
16
+ ```ts
17
+ import type { wire } from '@ziffer-io/types';
24
18
 
25
- `dist/` only — compiled JavaScript and `.d.ts`. There is no build step on your machine and no
26
- dependency to fetch: the previous arrangement had `@ziffer-io/client` naming the engine repository
27
- as a `git+` dependency, which a consumer could not resolve at all, and which would have compiled
28
- our wire types on their machine if they could.
19
+ function store(receipt: wire.DecisionReceipt): void {
20
+ // your code
21
+ }
22
+ ```
29
23
 
30
- ## What it does not do
24
+ These types are generated from the ZIFFER specification. The specification is public at
25
+ https://github.com/ziffer-hq/ziffer-spec. A field this package does not carry is a field the
26
+ specification does not state. The package holds types only, so nothing here calls an API or
27
+ checks a signature.
31
28
 
32
- - **It carries no behaviour.** These are types and the fail-safe accessors the generator emits for
33
- signed-policy tables. Nothing here verifies a receipt, canonicalises bytes or talks to an API —
34
- `@ziffer-io/verify` and `@ziffer-io/client` do those, each in one place.
35
- - **It is not a validator.** A value typed as a `Proposal` has satisfied `tsc`, not the schema.
36
- Nothing in this repository validates a document against `spec/schemas/` yet; that gap is
37
- ACP-52, and it is disclosed rather than closed.
38
- - **A version of this package does not pin the specification.** It pins an engine *commit*. Read
39
- `ziffer.enginePin` for which one.
29
+ ## Documentation
40
30
 
41
- ## Development
31
+ - The specification: https://ziffer.io/docs/specification
32
+ - Integrating the SDK: https://ziffer.io/docs/developers/sdk
33
+ - Quickstart: https://ziffer.io/docs/quickstart
34
+ - Glossary: https://ziffer.io/docs/glossary
42
35
 
43
- ```sh
44
- pnpm --filter @ziffer-io/types test # vendor from the pin, tsc -b, assert the entry resolves
45
- ```
36
+ ## Support
46
37
 
47
- `src/` is gitignored: it is a build-time copy of the engine's `packages/acp-types/src`, taken from
48
- the pinned commit and regenerated on every build, so there is no committed second copy of the wire
49
- format to drift. `scripts/vendor-engine-types.mjs` refuses — by name — a pin it cannot read, a
50
- lockfile that resolved a different commit, an absent checkout, and two checkouts at once.
38
+ Write to hello@ziffer.io.
51
39
 
52
- ## Licence
40
+ ## License
53
41
 
54
- Proprietary. Copyright (c) 2026 code75 SASU, Paris, France. ZIFFER is a registered trademark of code75
55
- SASU. This package is **not open source**: it is licensed for use with the ZIFFER service under
56
- your agreement with code75, on the terms in `LICENSE` beside this file. The third-party
57
- open-source components it redistributes are listed in `THIRD-PARTY-NOTICES` and are governed by
58
- their own licences.
42
+ Proprietary. Copyright (c) 2026 code75 SASU, Paris, France. ZIFFER is a registered trademark of
43
+ code75 SASU. This package is not open source. Its use is governed by your agreement with code75
44
+ and by `LICENSE` beside this file. The open-source components it redistributes are listed in
45
+ `THIRD-PARTY-NOTICES`, under their own licences.
package/dist/generated.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // @ziffer-io/types build-time copy — DO NOT EDIT.
2
2
  // Regenerated by packages/types/scripts/vendor-engine-types.mjs on every build.
3
- // source: packages/acp-types/src/generated.ts @ fed43d10b427e0a4435a8f04e474334d88a5aa6e (the engine pin in Cargo.toml)
3
+ // source: packages/acp-types/src/generated.ts @ 8ae262196dbe75210a975a456785df5d9f0524a3 (the engine pin in Cargo.toml)
4
4
  // @generated by tools/codegen.sh from spec/schemas/bundle/ — DO NOT EDIT.
5
5
  //
6
6
  // Regenerate with `./tools/codegen.sh`. `./tools/codegen.sh --check` asserts
@@ -1,6 +1,6 @@
1
1
  // @ziffer-io/types build-time copy — DO NOT EDIT.
2
2
  // Regenerated by packages/types/scripts/vendor-engine-types.mjs on every build.
3
- // source: packages/acp-types/src/generated_wire.ts @ fed43d10b427e0a4435a8f04e474334d88a5aa6e (the engine pin in Cargo.toml)
3
+ // source: packages/acp-types/src/generated_wire.ts @ 8ae262196dbe75210a975a456785df5d9f0524a3 (the engine pin in Cargo.toml)
4
4
  // @generated by tools/codegen.sh from spec/schemas/wire/ — DO NOT EDIT.
5
5
  //
6
6
  // Regenerate with `./tools/codegen.sh`. `./tools/codegen.sh --check` asserts
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // @ziffer-io/types build-time copy — DO NOT EDIT.
2
2
  // Regenerated by packages/types/scripts/vendor-engine-types.mjs on every build.
3
- // source: packages/acp-types/src/index.ts @ fed43d10b427e0a4435a8f04e474334d88a5aa6e (the engine pin in Cargo.toml)
3
+ // source: packages/acp-types/src/index.ts @ 8ae262196dbe75210a975a456785df5d9f0524a3 (the engine pin in Cargo.toml)
4
4
  /**
5
5
  * Wire types for ACP.
6
6
  *
package/package.json CHANGED
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "name": "@ziffer-io/types",
3
- "version": "0.1.0",
4
- "description": "The ZIFFER wire format as TypeScript types, generated from the ACP schemas at the engine pin.",
3
+ "version": "0.1.1",
4
+ "description": "TypeScript types for the ZIFFER wire format, generated from the public ZIFFER specification.",
5
+ "keywords": [
6
+ "ziffer",
7
+ "agent",
8
+ "ai-agent",
9
+ "guardrail",
10
+ "approval",
11
+ "receipt"
12
+ ],
5
13
  "author": "code75 SASU",
6
14
  "license": "SEE LICENSE IN LICENSE",
7
- "comment-license": "The SDK is proprietary (code75 SASU). \"license\" is the SPDX escape hatch for exactly this case: there is no SPDX identifier for these terms, so the field points at the file that states them, and LICENSE ships in the tarball beside THIRD-PARTY-NOTICES. Do not put an OSI identifier here -- Apache-2.0 stood in these four files until ACP-214 and was wrong the whole time.",
8
15
  "type": "module",
9
16
  "main": "./dist/index.js",
10
17
  "types": "./dist/index.d.ts",
@@ -32,14 +39,9 @@
32
39
  "publishConfig": {
33
40
  "access": "public"
34
41
  },
35
- "comment-no-provenance": "There is deliberately no \"provenance\": true here, and it was removed rather than never added. npm generates a provenance attestation only from a recognised CI runner, and its documentation states plainly that provenance is NOT SUPPORTED for private repositories (docs.npmjs.com/trusted-publishers, read 2026-09-03) -- ziffer-hq/ziffer is private (`gh api` says so). Setting the flag does not degrade to a warning: npm attempts the attestation and the publish FAILS, so the field would have broken the operator's very first publish from a laptop and every CI publish after it. tools/release-npm.sh asserts the field stays absent, and that assertion is the thing to delete on the day this repository becomes public -- at which point trusted publishing generates provenance on its own, with no flag at all.",
36
42
  "ziffer": {
37
- "enginePin": "fed43d10b427e0a4435a8f04e474334d88a5aa6e"
43
+ "enginePin": "8ae262196dbe75210a975a456785df5d9f0524a3"
38
44
  },
39
- "comment-enginePin": "The engine commit this package wraps, so a published artifact states it rather than leaving a reader to ask. It is a COPY of the rev in Cargo.toml, which is the one authority guard.sh reads. tools/release-npm.sh refuses to release when the two differ, by name. DISCLOSED: tools/bump-pin.sh does NOT move this field -- its three patterns are the Cargo `rev =` syntax, the package.json git+ URL syntax and a bare-sha schemas/PIN file, and none of them matches `\"enginePin\": \"<sha>\"`. So a pin bump leaves this stale and the release refuses until the four package.json files are brought forward by hand. That refusal is real and falsified in --selfcheck; it is still one hand step, and closing it is a fourth pattern in bump-pin.sh (ACP-208's shape, one more time).",
40
- "comment-why-this-package-exists": "ACP-214. @ziffer-io/client used to declare the engine's @acp/types as a GIT dependency on ziffer-hq/agent-control-plane. That repository is PRIVATE (gh api says private:true, 2026-09-03), so a developer who installed the published client could not resolve it at all -- not 'has to build it', cannot fetch it. A published package may not depend on a private git URL, and it may not depend on a public one either: pnpm runs `prepare` for a git dependency and a consumer would be compiling our wire types on their machine. So the wire format is published, from the pinned engine commit, as compiled dist/ that a consumer just installs.",
41
- "comment-no-engine-dependency-here": "There is deliberately NO @acp/types dependency in this file, and the absence is load-bearing rather than an oversight. `pnpm pack` keeps devDependencies in the published package.json -- measured, not assumed -- so a git+ URL declared here would ship to the registry, publishing the private engine repository's address and tripping the no-git+ assertion in tools/release-npm.sh over our own tarball. scripts/vendor-engine-types.mjs finds the engine sources through the pin instead, and refuses every way of not finding them.",
42
- "comment-vendored-not-forked": "src/ is BUILD OUTPUT and gitignored, exactly as sdk/python/src/ziffer/_engine is (sdk/python/build.sh carries the argument at length): committed source here is the packaging only, the engine's generated types are copied in verbatim from the pin at build time, and the copy is regenerated on every build so there is no divergent lineage to drift. A committed copy would be a second definition of the wire format, which is the encoding-split defect this whole repository is organised against.",
43
45
  "devDependencies": {
44
46
  "typescript": "^5.9.2"
45
47
  },