Skip to content

Commit 626e66c

Browse files
authored
Merge pull request #20 from HumanAssisted/0.3.0
0.3.1 is mostly upgrading libs see changelog for other changes
2 parents fc105fe + c55189e commit 626e66c

File tree

222 files changed

+5149
-1314
lines changed

Some content is hidden

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

222 files changed

+5149
-1314
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# will have compiled files and executables
33
debug/
44
target/
5+
.idea
56

67
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
78
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
@@ -16,4 +17,4 @@ Cargo.lock
1617
grant.md
1718
scratch.md
1819
jacs.config.json
19-
.DS_Store
20+
.DS_Store

CHANGELOG.md

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,34 @@
1-
PLANNED
2-
1+
# PLANNED
2+
- encrypt files at rest
33
- refine schema usage
44
- more getters and setters for documents recognized by schemas
5-
- gzip local files
6-
- update libs based on devin work
7-
- store files by type (eval, program, node, task, actor, message)
8-
- WASM option
5+
- WASM builds
6+
7+
# COMPLETED
8+
9+
10+
## 0.3.1
11+
- upgraded many dependencies using
12+
cargo install cargo-edit
13+
cargo upgrade
14+
15+
## 0.3.0
16+
- added jacsType - free naming, but required field for end-user naming of file type, with defaults to "document"
17+
- TODO update jsonschema library
18+
- updated strum, criterion
19+
- updated reqwest library
20+
- fixed bug EmbeddedSchemaResolver not used for custom schemas
21+
- added load_all() for booting up
22+
- WIP move all fileio to object_store
23+
- WIP way to mark documents as not active - separate folder, or just reference them from other docs
24+
- fixed issue with filepaths for agents and keys
25+
- added jacsType to to jacs document as required
26+
- added archive old version, to move older versions of docs to different folder
27+
- added jacsEmbedding to headers, which allow persistance of vector embeddings iwth jacs docs.
28+
- default to only loading most recent version of document in load_all
29+
- fixed bug with naming file on update
30+
- changes to message schema to always include header
31+
- add jacsLevel to track general type of document and its mutability
932

1033
## 0.2.13
1134
- save public key to local fs

Cargo.toml

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "jacs"
3-
version = "0.2.13"
3+
version = "0.3.1"
44
edition = "2021"
55
include = [
66
"src/**/*",
@@ -14,6 +14,7 @@ include = [
1414
"schemas/components/service/v1/service.schema.json",
1515
"schemas/components/tool/v1/tool.schema.json",
1616
"schemas/components/contact/v1/contact.schema.json",
17+
"schemas/components/component/v1/component.schema.json",
1718
"schemas/message/v1/message.schema.json",
1819
"schemas/node/v1/node.schema.json",
1920
"schemas/program/v1/program.schema.json",
@@ -41,39 +42,46 @@ build = "build.rs"
4142

4243

4344
[dependencies]
44-
base64 = "0.22.0"
45-
chrono = "0.4.35"
46-
jsonschema = "0.17.1"
47-
log = "0.4.21"
48-
pem = "3.0.3"
49-
rand = "0.8.5"
50-
rsa = { version= "0.9.6", features= ["sha2", "pem"]}
45+
base64 = "0.22.1"
46+
chrono = "0.4.39"
47+
jsonschema = { version = "0.29", features = ["resolve-http", "resolve-file"] }
48+
log = "0.4.25"
49+
pem = "3.0.4"
50+
rand = "0.9.0"
51+
rsa = { version= "0.9.7", features= ["sha2", "pem"]}
5152
serde = { version = "1.0", features = ["derive"] }
52-
serde_json = "1.0 "
53+
serde_json = "1.0"
5354
signature = "2.2.0"
54-
url = "2.5.0"
55-
sha2 = "0.10.6"
56-
phf = { version = "0.11.1", features = ["macros"] }
57-
strum = "0.24.1"
58-
strum_macros = "0.24.3"
59-
secrecy = "0.8.0"
55+
url = "2.5.4"
56+
sha2 = "0.10.8"
57+
phf = { version = "0.11.3", features = ["macros"] }
58+
strum = "0.27.0"
59+
strum_macros = "0.27.0"
60+
secrecy = "0.10.3"
6061
aes-gcm = "0.10.3"
61-
clap = "4.5.4"
62-
regex = "1.10.4"
63-
mime_guess = "2.0.4"
64-
flate2 = "1.0.28"
65-
encoding_rs = "0.8.34"
62+
clap = "4.5.29"
63+
regex = "1.11.1"
64+
mime_guess = "2.0.5"
65+
flate2 = "1.0.35"
66+
encoding_rs = "0.8.35"
6667
difference = "2.0.0"
6768
rpassword = "7.3.1"
68-
validator = "0.18.1"
69-
uuid = { version = "1.7.0", features = ["v4", "v7", "js"] }
70-
env_logger = "0.9.0"
69+
validator = "0.20.0"
70+
uuid = { version = "1.13.1", features = ["v4", "v7", "js"] }
71+
env_logger = "0.11.6"
72+
futures-util = "0.3.31"
73+
referencing = "0.29.0"
74+
# [target.'cfg(target_os = "macos")'.dependencies]
75+
# pqcrypto-mldsa = { version = "0.1", default-features = false, features = ["serialization"] }
76+
77+
# [target.'cfg(not(target_os = "macos"))'.dependencies]
78+
# pqcrypto-mldsa = { version = "0.1", features = ["serialization"] }
79+
7180

7281
[dev-dependencies]
73-
rusqlite = "0.31.0"
7482
color-eyre = "0.6"
75-
criterion = "0.3"
76-
mdbook = "0.4.37"
83+
criterion = "0.5.1"
84+
mdbook = "0.4.44"
7785

7886

7987
[lib]
@@ -83,9 +91,13 @@ crate-type = ["cdylib", "rlib"]
8391
pqcrypto = "0.17.0"
8492
pqcrypto-dilithium = {version = "0.5.0", features=["serialization"] }
8593
pqcrypto-traits = "0.3.5"
86-
ring = "0.17.8"
87-
reqwest = { version ="0.11.26", features = ["blocking", "json"] }
94+
ring = "0.17.9"
95+
reqwest = { version ="0.12.12", features = ["blocking", "json"] }
8896
walkdir = "2.5.0"
97+
object_store = { version ="0.11.2", features = ["serde","serde_json", "aws", "http"] }
98+
99+
[target.'cfg(target_arch = "wasm32")'.dependencies]
100+
wasm-bindgen = "0.2.100"
89101

90102
[[bin]]
91103
name = "jacs"

README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# JACS
1+
# JACS
22

3-
Welcome to JACS, a source of truth document.
3+
Welcome to JACS (JSON Agent Communication Standard), a verifiable document format for AI agents.
44

5-
JACS is JSON Agent Communication Standard. 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.2.12 *ALPHA* .
7+
** NOTE: Current version 0.3.0 *ALPHA* .
88

99
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.
1010

@@ -22,12 +22,14 @@ Use JACS as is, embed in other projects or libraries, commercial or otherwise.
2222
4. create agreements between human and ai agents
2323
5. create agents and describe what they can do
2424
6. create tasks manage their state
25+
7. Use with [OpenAI structured ouput](https://openai.com/index/introducing-structured-outputs-in-the-api/)
26+
2527

2628
## Documentation
2729

2830
- [Usage Docs](https://humanassisted.github.io/JACS/)
2931
- [API docs](https://docs.rs/jacs/latest/jacs/)
30-
- [pypy]( )
32+
- [pypy]( #)
3133
- [Rust Crate](https://crates.io/crates/jacs)
3234
- [Schema docs](./schemas)
3335
- [example files](./examples)
@@ -65,6 +67,9 @@ If you are working in Rust, add the rust lib to your project
6567

6668
cargo add jacs
6769

70+
For development you may want `cargo install cargo-outdated` and `cargo install cargo-edit`
71+
72+
6873
Then start reading the [usage docs](https://humanassisted.github.io/JACS/)
6974

7075
------

benches/sign_and_check_sig.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use criterion::{black_box, criterion_group, criterion_main, Criterion};
22
use jacs::agent::boilerplate::BoilerPlate;
3-
use jacs::agent::document::Document;
3+
use jacs::agent::document::DocumentTraits;
44
use jacs::agent::loaders::FileLoader;
55
use jacs::agent::Agent;
66
use log::debug;

docs/jacsbook/book/404.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989

9090
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
9191
<div class="sidebar-scrollbox">
92-
<ol class="chapter"><li class="chapter-item expanded affix "><a href="index.html">Introduction</a></li><li class="chapter-item expanded affix "><li class="part-title">User Guide</li><li class="chapter-item expanded "><a href="cli/installation.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="cli/agent.html"><strong aria-hidden="true">2.</strong> Creating an Agent</a></li><li class="chapter-item expanded "><a href="cli/documents.html"><strong aria-hidden="true">3.</strong> Working with documents</a></li><li class="chapter-item expanded "><a href="cli/agreements.html"><strong aria-hidden="true">4.</strong> Creating and using agreements</a></li><li class="chapter-item expanded affix "><li class="part-title">Design</li><li class="chapter-item expanded "><a href="design/schemas.html"><strong aria-hidden="true">5.</strong> JSON schemas</a></li><li class="chapter-item expanded "><a href="design/security.html"><strong aria-hidden="true">6.</strong> Security</a></li><li class="chapter-item expanded "><a href="design/schemas.html"><strong aria-hidden="true">7.</strong> JSON schemas</a></li><li class="spacer"></li></ol>
92+
<ol class="chapter"><li class="chapter-item expanded affix "><a href="index.html">Introduction</a></li><li class="chapter-item expanded affix "><li class="part-title">User Guide</li><li class="chapter-item expanded "><a href="cli/installation.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="cli/agent.html"><strong aria-hidden="true">2.</strong> Creating an Agent</a></li><li class="chapter-item expanded "><a href="cli/documents.html"><strong aria-hidden="true">3.</strong> Working with documents</a></li><li class="chapter-item expanded "><a href="cli/agreements.html"><strong aria-hidden="true">4.</strong> Creating and using agreements</a></li><li class="chapter-item expanded "><a href="wasm/building.html"><strong aria-hidden="true">5.</strong> building</a></li><li class="chapter-item expanded affix "><li class="part-title">Design</li><li class="chapter-item expanded "><a href="design/schemas.html"><strong aria-hidden="true">6.</strong> JSON schemas</a></li><li class="chapter-item expanded "><a href="design/security.html"><strong aria-hidden="true">7.</strong> Security</a></li><li class="chapter-item expanded "><a href="design/schemas.html"><strong aria-hidden="true">8.</strong> JSON schemas</a></li><li class="spacer"></li></ol>
9393
</div>
9494
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
9595
<div class="sidebar-resize-indicator"></div>

docs/jacsbook/book/cli/agent.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888

8989
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
9090
<div class="sidebar-scrollbox">
91-
<ol class="chapter"><li class="chapter-item expanded affix "><a href="../index.html">Introduction</a></li><li class="chapter-item expanded affix "><li class="part-title">User Guide</li><li class="chapter-item expanded "><a href="../cli/installation.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="../cli/agent.html" class="active"><strong aria-hidden="true">2.</strong> Creating an Agent</a></li><li class="chapter-item expanded "><a href="../cli/documents.html"><strong aria-hidden="true">3.</strong> Working with documents</a></li><li class="chapter-item expanded "><a href="../cli/agreements.html"><strong aria-hidden="true">4.</strong> Creating and using agreements</a></li><li class="chapter-item expanded affix "><li class="part-title">Design</li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">5.</strong> JSON schemas</a></li><li class="chapter-item expanded "><a href="../design/security.html"><strong aria-hidden="true">6.</strong> Security</a></li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">7.</strong> JSON schemas</a></li><li class="spacer"></li></ol>
91+
<ol class="chapter"><li class="chapter-item expanded affix "><a href="../index.html">Introduction</a></li><li class="chapter-item expanded affix "><li class="part-title">User Guide</li><li class="chapter-item expanded "><a href="../cli/installation.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="../cli/agent.html" class="active"><strong aria-hidden="true">2.</strong> Creating an Agent</a></li><li class="chapter-item expanded "><a href="../cli/documents.html"><strong aria-hidden="true">3.</strong> Working with documents</a></li><li class="chapter-item expanded "><a href="../cli/agreements.html"><strong aria-hidden="true">4.</strong> Creating and using agreements</a></li><li class="chapter-item expanded "><a href="../wasm/building.html"><strong aria-hidden="true">5.</strong> building</a></li><li class="chapter-item expanded affix "><li class="part-title">Design</li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">6.</strong> JSON schemas</a></li><li class="chapter-item expanded "><a href="../design/security.html"><strong aria-hidden="true">7.</strong> Security</a></li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">8.</strong> JSON schemas</a></li><li class="spacer"></li></ol>
9292
</div>
9393
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
9494
<div class="sidebar-resize-indicator"></div>

docs/jacsbook/book/cli/agreements.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888

8989
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
9090
<div class="sidebar-scrollbox">
91-
<ol class="chapter"><li class="chapter-item expanded affix "><a href="../index.html">Introduction</a></li><li class="chapter-item expanded affix "><li class="part-title">User Guide</li><li class="chapter-item expanded "><a href="../cli/installation.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="../cli/agent.html"><strong aria-hidden="true">2.</strong> Creating an Agent</a></li><li class="chapter-item expanded "><a href="../cli/documents.html"><strong aria-hidden="true">3.</strong> Working with documents</a></li><li class="chapter-item expanded "><a href="../cli/agreements.html" class="active"><strong aria-hidden="true">4.</strong> Creating and using agreements</a></li><li class="chapter-item expanded affix "><li class="part-title">Design</li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">5.</strong> JSON schemas</a></li><li class="chapter-item expanded "><a href="../design/security.html"><strong aria-hidden="true">6.</strong> Security</a></li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">7.</strong> JSON schemas</a></li><li class="spacer"></li></ol>
91+
<ol class="chapter"><li class="chapter-item expanded affix "><a href="../index.html">Introduction</a></li><li class="chapter-item expanded affix "><li class="part-title">User Guide</li><li class="chapter-item expanded "><a href="../cli/installation.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="../cli/agent.html"><strong aria-hidden="true">2.</strong> Creating an Agent</a></li><li class="chapter-item expanded "><a href="../cli/documents.html"><strong aria-hidden="true">3.</strong> Working with documents</a></li><li class="chapter-item expanded "><a href="../cli/agreements.html" class="active"><strong aria-hidden="true">4.</strong> Creating and using agreements</a></li><li class="chapter-item expanded "><a href="../wasm/building.html"><strong aria-hidden="true">5.</strong> building</a></li><li class="chapter-item expanded affix "><li class="part-title">Design</li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">6.</strong> JSON schemas</a></li><li class="chapter-item expanded "><a href="../design/security.html"><strong aria-hidden="true">7.</strong> Security</a></li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">8.</strong> JSON schemas</a></li><li class="spacer"></li></ol>
9292
</div>
9393
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
9494
<div class="sidebar-resize-indicator"></div>
@@ -198,7 +198,7 @@ <h1 id="agreements"><a class="header" href="#agreements">Agreements</a></h1>
198198
<i class="fa fa-angle-left"></i>
199199
</a>
200200

201-
<a rel="next prefetch" href="../design/schemas.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
201+
<a rel="next prefetch" href="../wasm/building.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
202202
<i class="fa fa-angle-right"></i>
203203
</a>
204204

@@ -212,7 +212,7 @@ <h1 id="agreements"><a class="header" href="#agreements">Agreements</a></h1>
212212
<i class="fa fa-angle-left"></i>
213213
</a>
214214

215-
<a rel="next prefetch" href="../design/schemas.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
215+
<a rel="next prefetch" href="../wasm/building.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
216216
<i class="fa fa-angle-right"></i>
217217
</a>
218218
</nav>

docs/jacsbook/book/cli/documents.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888

8989
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
9090
<div class="sidebar-scrollbox">
91-
<ol class="chapter"><li class="chapter-item expanded affix "><a href="../index.html">Introduction</a></li><li class="chapter-item expanded affix "><li class="part-title">User Guide</li><li class="chapter-item expanded "><a href="../cli/installation.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="../cli/agent.html"><strong aria-hidden="true">2.</strong> Creating an Agent</a></li><li class="chapter-item expanded "><a href="../cli/documents.html" class="active"><strong aria-hidden="true">3.</strong> Working with documents</a></li><li class="chapter-item expanded "><a href="../cli/agreements.html"><strong aria-hidden="true">4.</strong> Creating and using agreements</a></li><li class="chapter-item expanded affix "><li class="part-title">Design</li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">5.</strong> JSON schemas</a></li><li class="chapter-item expanded "><a href="../design/security.html"><strong aria-hidden="true">6.</strong> Security</a></li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">7.</strong> JSON schemas</a></li><li class="spacer"></li></ol>
91+
<ol class="chapter"><li class="chapter-item expanded affix "><a href="../index.html">Introduction</a></li><li class="chapter-item expanded affix "><li class="part-title">User Guide</li><li class="chapter-item expanded "><a href="../cli/installation.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="../cli/agent.html"><strong aria-hidden="true">2.</strong> Creating an Agent</a></li><li class="chapter-item expanded "><a href="../cli/documents.html" class="active"><strong aria-hidden="true">3.</strong> Working with documents</a></li><li class="chapter-item expanded "><a href="../cli/agreements.html"><strong aria-hidden="true">4.</strong> Creating and using agreements</a></li><li class="chapter-item expanded "><a href="../wasm/building.html"><strong aria-hidden="true">5.</strong> building</a></li><li class="chapter-item expanded affix "><li class="part-title">Design</li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">6.</strong> JSON schemas</a></li><li class="chapter-item expanded "><a href="../design/security.html"><strong aria-hidden="true">7.</strong> Security</a></li><li class="chapter-item expanded "><a href="../design/schemas.html"><strong aria-hidden="true">8.</strong> JSON schemas</a></li><li class="spacer"></li></ol>
9292
</div>
9393
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
9494
<div class="sidebar-resize-indicator"></div>

0 commit comments

Comments
 (0)