Skip to content

Commit 437a7f2

Browse files
authored
Merge pull request #23 from HumanAssisted/user/hendler/0.3.3
User/hendler/0.3.3
2 parents 44bef70 + 0ad51a7 commit 437a7f2

File tree

606 files changed

+3735
-724
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

606 files changed

+3735
-724
lines changed

CHANGELOG.md

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,44 @@
88

99
## 0.4.0
1010
- WASM
11+
- [] machine fingerprinting v2
1112

1213
## 0.3.4
13-
- upgrade pqcrypto https://github.com/rustpq/pqcrypto/issues/79
14+
- [] upgrade pqcrypto https://github.com/rustpq/pqcrypto/issues/79
15+
- [] RBAC integration with header
16+
- [] RBAC enforcement from server. If shared, new version is pinned.
17+
- [] diff versions
18+
- [] bucket integration
19+
- [] task review
20+
- [] make sure config directory is in isolated location, like with key
21+
- [] don't store "jacs_private_key_password": in config, don't display
22+
- [] domain to header, and related verification
23+
- [] refactor API so easier to use from higher level libraries - create agent, load agent, save document, create document, update document, sign
24+
- more complete python implementation
25+
- pass document string or document id - with optional version instead of string
26+
- load document whatever storage config is
27+
- function test output metadata about current config and current agent
28+
29+
## jacspy cleanup
30+
31+
## jacs-mcp 0.1.0
32+
33+
- [] integrate with server
34+
- [] integration test with client
35+
- [] https://github.com/modelcontextprotocol/specification/discussions
36+
37+
# COMPLETED
38+
39+
## jacs 0.3.3
40+
- [x] change project to workspace
41+
- [x] basic python integration
42+
- [x] upgraded to edition = "2024" rust-version = "1.85"
43+
- [x] separate public key location from private key location
44+
- [x] cli review and tests
45+
- [x] TEST init agent without needing configs in filesystem by checking that needed ENV variables are set
1446

15-
## 0.3.3
16-
- [] MCP integration
17-
- [] TEST init agent without needing configs in filesystem by checking that needed ENV variables are set
18-
- [] separate public key location from private key location
19-
- [] refactor API so easier to use from higher level libraries - create agent, load agent, save document, create document, update document
2047

2148

22-
# COMPLETED
2349

2450
## 0.3.2
2551
- [x] add common clause to Apache 2.0

Cargo.toml

Lines changed: 10 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,18 @@
1-
[package]
2-
name = "jacs"
3-
version = "0.3.2"
4-
edition = "2021"
5-
include = [
6-
"src/**/*",
7-
"schemas/agent/v1/agent.schema.json",
8-
"schemas/header/v1/header.schema.json",
9-
"schemas/components/files/v1/files.schema.json",
10-
"schemas/components/signature/v1/signature.schema.json",
11-
"schemas/components/agreement/v1/agreement.schema.json",
12-
"schemas/components/unit/v1/unit.schema.json",
13-
"schemas/components/action/v1/action.schema.json",
14-
"schemas/components/service/v1/service.schema.json",
15-
"schemas/components/tool/v1/tool.schema.json",
16-
"schemas/components/contact/v1/contact.schema.json",
17-
"schemas/components/component/v1/component.schema.json",
18-
"schemas/message/v1/message.schema.json",
19-
"schemas/node/v1/node.schema.json",
20-
"schemas/program/v1/program.schema.json",
21-
"schemas/eval/v1/eval.schema.json",
22-
"schemas/task/v1/task.schema.json",
23-
"jacs.config.schema.json",
24-
"examples/*.json",
25-
"Cargo.toml",
26-
"README.md",
27-
"LICENSE",
28-
"build.rs",
29-
"CHANGELOG.md",
30-
"basic-schemas.png",
31-
"benches/sign_and_check_sig.rs",
32-
"schemas/components/embedding/v1/embedding.schema.json",
1+
[workspace]
2+
members = [
3+
"jacs",
4+
# "mcp-server",
5+
"jacspy"
336
]
34-
description = "JACS JSON AI Communication Standard"
7+
resolver = "3"
8+
rust-version = "1.85"
9+
10+
3511
readme = "README.md"
3612
authors = ["HAI.AI <[email protected]>"]
37-
license = "Apache-2.0"
13+
license = "Apache-2.0 with Common Clause v1.0"
3814
homepage = "https://humanassisted.github.io/JACS"
3915
repository = "https://github.com/HumanAssisted/JACS"
4016
keywords = ["cryptography", "json", "ai", "data", "ml-ops"]
4117
categories = ["cryptography", "text-processing", "data-structures" ]
4218
build = "build.rs"
43-
44-
45-
[dependencies]
46-
base64 = "0.22.1"
47-
chrono = "0.4.40"
48-
jsonschema = { version = "0.29", features = ["resolve-http", "resolve-file"] }
49-
log = "0.4.27"
50-
pem = "3.0.5"
51-
rand = "0.9.0"
52-
rsa = { version= "0.9.8", features= ["sha2", "pem"]}
53-
serde = { version = "1.0", features = ["derive"] }
54-
serde_json = "1.0"
55-
signature = "2.2.0"
56-
url = "2.5.4"
57-
sha2 = "0.10.8"
58-
phf = { version = "0.11.3", features = ["macros"] }
59-
strum = "0.27.1"
60-
strum_macros = "0.27.0"
61-
secrecy = "0.10.3"
62-
aes-gcm = "0.10.3"
63-
clap = "4.5.35"
64-
regex = "1.11.1"
65-
mime_guess = "2.0.5"
66-
flate2 = "1.1.1"
67-
encoding_rs = "0.8.35"
68-
difference = "2.0.0"
69-
rpassword = "7.3.1"
70-
validator = "0.20.0"
71-
uuid = { version = "1.16.0", features = ["v4", "v7", "js"] }
72-
env_logger = "0.11.8"
73-
futures-util = "0.3.31"
74-
referencing = "0.29.1"
75-
futures-executor = "0.3.31"
76-
# libp2p = "0.55.0"
77-
# [target.'cfg(target_os = "macos")'.dependencies]
78-
# pqcrypto-mldsa = { version = "0.1", default-features = false, features = ["serialization"] }
79-
80-
# [target.'cfg(not(target_os = "macos"))'.dependencies]
81-
# pqcrypto-mldsa = { version = "0.1", features = ["serialization"] }
82-
83-
84-
[dev-dependencies]
85-
color-eyre = "0.6"
86-
criterion = "0.5.1"
87-
mdbook = "0.4.48"
88-
89-
90-
[lib]
91-
crate-type = ["cdylib", "rlib"]
92-
93-
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
94-
pqcrypto = "0.17.0"
95-
pqcrypto-dilithium = {version = "0.5.0", features=["serialization"] }
96-
pqcrypto-traits = "0.3.5"
97-
ring = "0.17.9"
98-
reqwest = { version ="0.12.12", features = ["blocking", "json"] }
99-
walkdir = "2.5.0"
100-
object_store = { version ="0.12.0", features = ["serde","serde_json", "aws", "http"] }
101-
102-
[target.'cfg(target_arch = "wasm32")'.dependencies]
103-
wasm-bindgen = "0.2.100"
104-
web-sys = { version = "0.3", features = ["Storage", "Window"] }
105-
106-
[[bin]]
107-
name = "jacs"
108-
path = "src/bin/cli.rs"
109-
110-
[[bench]]
111-
name = "sign_and_check_sig"
112-
harness = false
113-
114-
[package.metadata.cargo-install]
115-
bin = ["jacs"]

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
“Commons Clause” License Condition v1.0
22

33
Software: JACS
4-
License: Apache 2.0
4+
License: Apache 2.0 with Common Clause v1.0
55
Licensor: Human Assisted Intelligence, LLC
66
Link: https://commonsclause.com/
77

Makefile

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
.PHONY: build-jacspy build-jacspy-mac build-jacspy-linux build-jacs test
2+
3+
build-jacspy: build-jacspy-mac build-jacspy-linux
4+
5+
build-jacspy-mac:
6+
$(info PYTHON_INCLUDE: $(PYTHON_INCLUDE))
7+
$(info PYTHON_LIB: $(PYTHON_LIB))
8+
echo $(PYTHON_INCLUDE)
9+
echo $(PYTHON_LIB)
10+
cd jacspy && env PYTHON_INCLUDE=$(PYTHON_INCLUDE) PYTHON_LIB=$(PYTHON_LIB) cargo build --release
11+
cp target/release/libjacspy.dylib jacspy/jacspy.so
12+
13+
build-jacspy-linux:
14+
docker pull python:3.11-bookworm
15+
docker buildx build --tag "jacs-build" -f ./jacspy/Dockerfile . ;\
16+
docker run --rm -v "$(PWD)/jacspy/linux:/output" jacs-build cp /usr/src/jacspy/target/release/libjacspy.so /output/jacspy.so;
17+
18+
build-jacs:
19+
cd jacs && cargo install --path . --force
20+
/Users/jonathan.hendler/.cargo/bin/jacs --help
21+
/Users/jonathan.hendler/.cargo/bin/jacs version
22+
23+
test-jacs:
24+
cd jacs && RUST_BACKTRACE=1 cargo test -- --nocapture
25+
26+
test-jacspy:
27+
cd jacspy && cargo test -- --nocapture
28+
29+
test: test-jacs test-jacspy
30+
# --test agent_tests --test document_tests --test key_tests --test task_tests --test agreement_test --test create_agent_test
31+
32+

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,18 @@
22

33
Welcome to JACS (JSON Agent Communication Standard), a verifiable document format for AI agents.
44

5-
JACS documents enable more trusted data sharing between AI agents and Human UIs.
5+
JACS documents enable more trusted data sharing between AI agents and Human UIs.
66

7-
** NOTE: Current version 0.3.2 *ALPHA* .
7+
Usage modes are:
8+
9+
1. cli tool to bootstrap an agent or documents
10+
2. Rust integration
11+
3. Python integration
12+
4. MCP server
13+
5. TODO: npm module (typescript)
14+
15+
16+
** NOTE: Current version 0.3.3 *ALPHA* .
817

918
JACS is a JSON document format for creating secure, verifiable documents that AI agents, ML pipelines, SaaS services, and UIs can exchange and process. The goal of JACS is to ensure that these documents remain unchanged (immutable), produce the same verification result every time (idempotent), and can be used flexibly by software.
1019

@@ -75,4 +84,4 @@ For development you may want `cargo install cargo-outdated` and `cargo instal
7584
Then start reading the [usage docs](https://humanassisted.github.io/JACS/)
7685

7786
------
78-
2024 https://hai.ai
87+
2024, 2025 https://hai.ai

docs/jacsbook/book/searchindex.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/jacsbook/book/searchindex.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

jacs-mcp/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[package]
2+
name = "jacs-mcp"
3+
version = "0.1.0"
4+
edition = "2024"
5+
6+
[dependencies]

jacs-mcp/src/main.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
fn main() {
2+
println!("Hello, world!");
3+
}

jacs/.gitignore

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Cargo
2+
# will have compiled files and executables
3+
debug/
4+
target/
5+
.idea
6+
7+
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
8+
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
9+
Cargo.lock
10+
11+
# These are backup files generated by rustfmt
12+
**/*.rs.bk
13+
14+
# MSVC Windows builds of rustc generate these, which store debugging information
15+
*.pdb
16+
17+
jacs.config.json
18+
.DS_Store
19+
tests/fixtures/documents/*

0 commit comments

Comments
 (0)