@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 +29 -42
- package/dist/generated.js +1 -1
- package/dist/generated_wire.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +11 -9
package/README.md
CHANGED
|
@@ -1,58 +1,45 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @ziffer-io/types
|
|
2
2
|
|
|
3
|
-
The
|
|
4
|
-
|
|
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
|
-
|
|
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
|
-
|
|
21
|
-
package does not have is a field the specification does not state.
|
|
14
|
+
## Usage
|
|
22
15
|
|
|
23
|
-
|
|
16
|
+
```ts
|
|
17
|
+
import type { wire } from '@ziffer-io/types';
|
|
24
18
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
function store(receipt: wire.DecisionReceipt): void {
|
|
20
|
+
// your code
|
|
21
|
+
}
|
|
22
|
+
```
|
|
29
23
|
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
pnpm --filter @ziffer-io/types test # vendor from the pin, tsc -b, assert the entry resolves
|
|
45
|
-
```
|
|
36
|
+
## Support
|
|
46
37
|
|
|
47
|
-
|
|
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
|
-
##
|
|
40
|
+
## License
|
|
53
41
|
|
|
54
|
-
Proprietary. Copyright (c) 2026 code75 SASU, Paris, France. ZIFFER is a registered trademark of
|
|
55
|
-
SASU. This package is
|
|
56
|
-
|
|
57
|
-
|
|
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 @
|
|
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
|
package/dist/generated_wire.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_wire.ts @
|
|
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 @
|
|
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.
|
|
4
|
-
"description": "
|
|
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": "
|
|
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
|
},
|