summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Cargo.toml46
-rw-r--r--actions/Cargo.toml (renamed from crates/vcs_actions/Cargo.toml)4
-rw-r--r--actions/src/actions.rs (renamed from crates/vcs_actions/src/actions.rs)0
-rw-r--r--actions/src/actions/local_actions.rs (renamed from crates/vcs_actions/src/actions/local_actions.rs)0
-rw-r--r--actions/src/actions/sheet_actions.rs (renamed from crates/vcs_actions/src/actions/sheet_actions.rs)0
-rw-r--r--actions/src/actions/track_action.rs (renamed from crates/vcs_actions/src/actions/track_action.rs)0
-rw-r--r--actions/src/actions/user_actions.rs (renamed from crates/vcs_actions/src/actions/user_actions.rs)0
-rw-r--r--actions/src/actions/vault_actions.rs (renamed from crates/vcs_actions/src/actions/vault_actions.rs)0
-rw-r--r--actions/src/connection.rs (renamed from crates/vcs_actions/src/connection.rs)0
-rw-r--r--actions/src/connection/action_service.rs (renamed from crates/vcs_actions/src/connection/action_service.rs)0
-rw-r--r--actions/src/connection/error.rs (renamed from crates/vcs_actions/src/connection/error.rs)0
-rw-r--r--actions/src/connection/protocol.rs (renamed from crates/vcs_actions/src/connection/protocol.rs)0
-rw-r--r--actions/src/lib.rs (renamed from crates/vcs_actions/src/lib.rs)0
-rw-r--r--actions/src/registry.rs (renamed from crates/vcs_actions/src/registry.rs)0
-rw-r--r--actions/src/registry/client_registry.rs (renamed from crates/vcs_actions/src/registry/client_registry.rs)0
-rw-r--r--actions/src/registry/server_registry.rs (renamed from crates/vcs_actions/src/registry/server_registry.rs)0
-rw-r--r--crates/vcs_data/todo.md31
-rw-r--r--crates/vcs_data/vcs_data_test/lib.rs11
-rw-r--r--data/Cargo.toml (renamed from crates/vcs_data/Cargo.toml)4
-rw-r--r--data/src/constants.rs (renamed from crates/vcs_data/src/constants.rs)0
-rw-r--r--data/src/current.rs (renamed from crates/vcs_data/src/current.rs)0
-rw-r--r--data/src/data.rs (renamed from crates/vcs_data/src/data.rs)0
-rw-r--r--data/src/data/local.rs (renamed from crates/vcs_data/src/data/local.rs)0
-rw-r--r--data/src/data/local/align.rs (renamed from crates/vcs_data/src/data/local/align.rs)0
-rw-r--r--data/src/data/local/cached_sheet.rs (renamed from crates/vcs_data/src/data/local/cached_sheet.rs)0
-rw-r--r--data/src/data/local/config.rs (renamed from crates/vcs_data/src/data/local/config.rs)0
-rw-r--r--data/src/data/local/latest_file_data.rs (renamed from crates/vcs_data/src/data/local/latest_file_data.rs)0
-rw-r--r--data/src/data/local/latest_info.rs (renamed from crates/vcs_data/src/data/local/latest_info.rs)0
-rw-r--r--data/src/data/local/local_files.rs (renamed from crates/vcs_data/src/data/local/local_files.rs)0
-rw-r--r--data/src/data/local/local_sheet.rs (renamed from crates/vcs_data/src/data/local/local_sheet.rs)0
-rw-r--r--data/src/data/local/vault_modified.rs (renamed from crates/vcs_data/src/data/local/vault_modified.rs)0
-rw-r--r--data/src/data/local/workspace_analyzer.rs (renamed from crates/vcs_data/src/data/local/workspace_analyzer.rs)0
-rw-r--r--data/src/data/member.rs (renamed from crates/vcs_data/src/data/member.rs)0
-rw-r--r--data/src/data/sheet.rs (renamed from crates/vcs_data/src/data/sheet.rs)0
-rw-r--r--data/src/data/user.rs (renamed from crates/vcs_data/src/data/user.rs)0
-rw-r--r--data/src/data/user/accounts.rs (renamed from crates/vcs_data/src/data/user/accounts.rs)0
-rw-r--r--data/src/data/vault.rs (renamed from crates/vcs_data/src/data/vault.rs)0
-rw-r--r--data/src/data/vault/config.rs (renamed from crates/vcs_data/src/data/vault/config.rs)0
-rw-r--r--data/src/data/vault/member.rs (renamed from crates/vcs_data/src/data/vault/member.rs)0
-rw-r--r--data/src/data/vault/service.rs (renamed from crates/vcs_data/src/data/vault/service.rs)0
-rw-r--r--data/src/data/vault/sheet_share.rs (renamed from crates/vcs_data/src/data/vault/sheet_share.rs)0
-rw-r--r--data/src/data/vault/sheets.rs (renamed from crates/vcs_data/src/data/vault/sheets.rs)0
-rw-r--r--data/src/data/vault/virtual_file.rs (renamed from crates/vcs_data/src/data/vault/virtual_file.rs)0
-rw-r--r--data/src/lib.rs (renamed from crates/vcs_data/src/lib.rs)0
-rw-r--r--data/tests/Cargo.toml (renamed from crates/vcs_data/vcs_data_test/Cargo.toml)2
-rw-r--r--data/tests/src/lib.rs (renamed from crates/vcs_data/vcs_data_test/src/lib.rs)0
-rw-r--r--data/tests/src/test_local_workspace_setup_and_account_management.rs (renamed from crates/vcs_data/vcs_data_test/src/test_local_workspace_setup_and_account_management.rs)0
-rw-r--r--data/tests/src/test_sheet_creation_management_and_persistence.rs (renamed from crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs)0
-rw-r--r--data/tests/src/test_sheet_share_creation_and_management.rs (renamed from crates/vcs_data/vcs_data_test/src/test_sheet_share_creation_and_management.rs)0
-rw-r--r--data/tests/src/test_vault_setup_and_member_register.rs (renamed from crates/vcs_data/vcs_data_test/src/test_vault_setup_and_member_register.rs)0
-rw-r--r--data/tests/src/test_virtual_file_creation_and_update.rs (renamed from crates/vcs_data/vcs_data_test/src/test_virtual_file_creation_and_update.rs)0
-rw-r--r--docs/Cargo.toml (renamed from crates/vcs_docs/Cargo.toml)0
-rw-r--r--docs/build.rs (renamed from crates/vcs_docs/build.rs)6
-rw-r--r--docs/src/docs.rs387
-rw-r--r--docs/src/docs.rs.template (renamed from crates/vcs_docs/src/docs.rs.template)0
-rw-r--r--docs/src/lib.rs (renamed from crates/vcs_docs/src/lib.rs)0
-rw-r--r--examples/Cargo.toml8
-rw-r--r--systems/action/Cargo.toml (renamed from crates/system_action/Cargo.toml)2
-rw-r--r--systems/action/action_macros/Cargo.toml (renamed from crates/system_action/action_macros/Cargo.toml)4
-rw-r--r--systems/action/action_macros/src/lib.rs (renamed from crates/system_action/action_macros/src/lib.rs)0
-rw-r--r--systems/action/src/action.rs (renamed from crates/system_action/src/action.rs)0
-rw-r--r--systems/action/src/action_pool.rs (renamed from crates/system_action/src/action_pool.rs)0
-rw-r--r--systems/action/src/lib.rs (renamed from crates/system_action/src/lib.rs)0
-rw-r--r--utils/cfg_file/Cargo.toml (renamed from crates/utils/cfg_file/Cargo.toml)0
-rw-r--r--utils/cfg_file/cfg_file_derive/Cargo.toml (renamed from crates/utils/cfg_file/cfg_file_derive/Cargo.toml)0
-rw-r--r--utils/cfg_file/cfg_file_derive/src/lib.rs (renamed from crates/utils/cfg_file/cfg_file_derive/src/lib.rs)0
-rw-r--r--utils/cfg_file/cfg_file_test/Cargo.toml (renamed from crates/utils/cfg_file/cfg_file_test/Cargo.toml)0
-rw-r--r--utils/cfg_file/cfg_file_test/src/lib.rs (renamed from crates/utils/cfg_file/cfg_file_test/src/lib.rs)0
-rw-r--r--utils/cfg_file/src/config.rs (renamed from crates/utils/cfg_file/src/config.rs)0
-rw-r--r--utils/cfg_file/src/lib.rs (renamed from crates/utils/cfg_file/src/lib.rs)0
-rw-r--r--utils/data_struct/Cargo.toml (renamed from crates/utils/data_struct/Cargo.toml)0
-rw-r--r--utils/data_struct/src/bi_map.rs (renamed from crates/utils/data_struct/src/bi_map.rs)0
-rw-r--r--utils/data_struct/src/data_sort.rs (renamed from crates/utils/data_struct/src/data_sort.rs)0
-rw-r--r--utils/data_struct/src/lib.rs (renamed from crates/utils/data_struct/src/lib.rs)0
-rw-r--r--utils/sha1_hash/Cargo.toml (renamed from crates/utils/sha1_hash/Cargo.toml)0
-rw-r--r--utils/sha1_hash/res/story.txt (renamed from crates/utils/sha1_hash/res/story.txt)0
-rw-r--r--utils/sha1_hash/res/story_crlf.sha1 (renamed from crates/utils/sha1_hash/res/story_crlf.sha1)0
-rw-r--r--utils/sha1_hash/res/story_lf.sha1 (renamed from crates/utils/sha1_hash/res/story_lf.sha1)0
-rw-r--r--utils/sha1_hash/src/lib.rs (renamed from crates/utils/sha1_hash/src/lib.rs)0
-rw-r--r--utils/string_proc/Cargo.toml (renamed from crates/utils/string_proc/Cargo.toml)0
-rw-r--r--utils/string_proc/src/format_path.rs (renamed from crates/utils/string_proc/src/format_path.rs)0
-rw-r--r--utils/string_proc/src/format_processer.rs (renamed from crates/utils/string_proc/src/format_processer.rs)0
-rw-r--r--utils/string_proc/src/lib.rs (renamed from crates/utils/string_proc/src/lib.rs)0
-rw-r--r--utils/string_proc/src/macros.rs (renamed from crates/utils/string_proc/src/macros.rs)0
-rw-r--r--utils/string_proc/src/simple_processer.rs (renamed from crates/utils/string_proc/src/simple_processer.rs)0
-rw-r--r--utils/tcp_connection/Cargo.toml (renamed from crates/utils/tcp_connection/Cargo.toml)0
-rw-r--r--utils/tcp_connection/src/error.rs (renamed from crates/utils/tcp_connection/src/error.rs)0
-rw-r--r--utils/tcp_connection/src/instance.rs (renamed from crates/utils/tcp_connection/src/instance.rs)0
-rw-r--r--utils/tcp_connection/src/instance_challenge.rs (renamed from crates/utils/tcp_connection/src/instance_challenge.rs)0
-rw-r--r--utils/tcp_connection/src/lib.rs (renamed from crates/utils/tcp_connection/src/lib.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/Cargo.toml (renamed from crates/utils/tcp_connection/tcp_connection_test/Cargo.toml)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/res/image/test_transfer.png (renamed from crates/utils/tcp_connection/tcp_connection_test/res/image/test_transfer.png)bin1001369 -> 1001369 bytes
-rw-r--r--utils/tcp_connection/tcp_connection_test/res/key/test_key.pem (renamed from crates/utils/tcp_connection/tcp_connection_test/res/key/test_key.pem)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/res/key/test_key_private.pem (renamed from crates/utils/tcp_connection/tcp_connection_test/res/key/test_key_private.pem)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/res/key/wrong_key_private.pem (renamed from crates/utils/tcp_connection/tcp_connection_test/res/key/wrong_key_private.pem)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/lib.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/lib.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_challenge.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_challenge.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_connection.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_connection.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_file_transfer.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_file_transfer.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_msgpack.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_msgpack.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_tcp_target_build.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_tcp_target_build.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_utils.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_utils.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_utils/handle.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_utils/handle.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_utils/target.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_utils/target_configure.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target_configure.rs)0
-rw-r--r--utils/tcp_connection/tcp_connection_test/src/test_utils/target_connection.rs (renamed from crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target_connection.rs)0
107 files changed, 426 insertions, 81 deletions
diff --git a/.gitignore b/.gitignore
index 0ff49e8..aa7aaa7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,4 +34,4 @@
### BUILT-IN DOCUMENTS ###
##########################
/src/data/compile_info.rs
-/crates/vcs_docs/src/docs.rs
+/docs/src/docs.rs
diff --git a/Cargo.toml b/Cargo.toml
index 41e2bae..be67728 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,28 +24,28 @@ vcs = []
members = [
"examples",
- "crates/utils/cfg_file",
- "crates/utils/cfg_file/cfg_file_derive",
- "crates/utils/cfg_file/cfg_file_test",
+ "utils/cfg_file",
+ "utils/cfg_file/cfg_file_derive",
+ "utils/cfg_file/cfg_file_test",
- "crates/utils/data_struct",
+ "utils/data_struct",
- "crates/utils/sha1_hash",
+ "utils/sha1_hash",
- "crates/utils/tcp_connection",
- "crates/utils/tcp_connection/tcp_connection_test",
+ "utils/tcp_connection",
+ "utils/tcp_connection/tcp_connection_test",
- "crates/utils/string_proc",
+ "utils/string_proc",
- "crates/system_action",
- "crates/system_action/action_macros",
+ "systems/action",
+ "systems/action/action_macros",
- "crates/vcs_data",
- "crates/vcs_data/vcs_data_test",
+ "data",
+ "data/tests",
- "crates/vcs_actions",
+ "actions",
- "crates/vcs_docs",
+ "docs",
]
[workspace.package]
@@ -75,14 +75,14 @@ chrono = "0.4"
toml = "0.9"
[dependencies]
-cfg_file = { path = "crates/utils/cfg_file" }
-data_struct = { path = "crates/utils/data_struct" }
-sha1_hash = { path = "crates/utils/sha1_hash" }
-tcp_connection = { path = "crates/utils/tcp_connection" }
-string_proc = { path = "crates/utils/string_proc" }
+cfg_file = { path = "utils/cfg_file" }
+data_struct = { path = "utils/data_struct" }
+sha1_hash = { path = "utils/sha1_hash" }
+tcp_connection = { path = "utils/tcp_connection" }
+string_proc = { path = "utils/string_proc" }
-action_system = { path = "crates/system_action" }
+action_system = { path = "systems/action" }
-vcs_docs = { path = "crates/vcs_docs" }
-vcs_data = { path = "crates/vcs_data" }
-vcs_actions = { path = "crates/vcs_actions" }
+vcs_docs = { path = "docs" }
+vcs_data = { path = "data" }
+vcs_actions = { path = "actions" }
diff --git a/crates/vcs_actions/Cargo.toml b/actions/Cargo.toml
index dd288e8..615d3af 100644
--- a/crates/vcs_actions/Cargo.toml
+++ b/actions/Cargo.toml
@@ -12,8 +12,8 @@ sha1_hash = { path = "../utils/sha1_hash" }
string_proc = { path = "../utils/string_proc" }
# Core dependencies
-action_system = { path = "../system_action" }
-vcs_data = { path = "../vcs_data" }
+action_system = { path = "../systems/action" }
+vcs_data = { path = "../data" }
# Error handling
thiserror = "2.0.17"
diff --git a/crates/vcs_actions/src/actions.rs b/actions/src/actions.rs
index 3019327..3019327 100644
--- a/crates/vcs_actions/src/actions.rs
+++ b/actions/src/actions.rs
diff --git a/crates/vcs_actions/src/actions/local_actions.rs b/actions/src/actions/local_actions.rs
index 53a1ff8..53a1ff8 100644
--- a/crates/vcs_actions/src/actions/local_actions.rs
+++ b/actions/src/actions/local_actions.rs
diff --git a/crates/vcs_actions/src/actions/sheet_actions.rs b/actions/src/actions/sheet_actions.rs
index 4c9977e..4c9977e 100644
--- a/crates/vcs_actions/src/actions/sheet_actions.rs
+++ b/actions/src/actions/sheet_actions.rs
diff --git a/crates/vcs_actions/src/actions/track_action.rs b/actions/src/actions/track_action.rs
index e5f96b3..e5f96b3 100644
--- a/crates/vcs_actions/src/actions/track_action.rs
+++ b/actions/src/actions/track_action.rs
diff --git a/crates/vcs_actions/src/actions/user_actions.rs b/actions/src/actions/user_actions.rs
index dc0f71a..dc0f71a 100644
--- a/crates/vcs_actions/src/actions/user_actions.rs
+++ b/actions/src/actions/user_actions.rs
diff --git a/crates/vcs_actions/src/actions/vault_actions.rs b/actions/src/actions/vault_actions.rs
index 8b13789..8b13789 100644
--- a/crates/vcs_actions/src/actions/vault_actions.rs
+++ b/actions/src/actions/vault_actions.rs
diff --git a/crates/vcs_actions/src/connection.rs b/actions/src/connection.rs
index 918f93c..918f93c 100644
--- a/crates/vcs_actions/src/connection.rs
+++ b/actions/src/connection.rs
diff --git a/crates/vcs_actions/src/connection/action_service.rs b/actions/src/connection/action_service.rs
index f137126..f137126 100644
--- a/crates/vcs_actions/src/connection/action_service.rs
+++ b/actions/src/connection/action_service.rs
diff --git a/crates/vcs_actions/src/connection/error.rs b/actions/src/connection/error.rs
index 241c16e..241c16e 100644
--- a/crates/vcs_actions/src/connection/error.rs
+++ b/actions/src/connection/error.rs
diff --git a/crates/vcs_actions/src/connection/protocol.rs b/actions/src/connection/protocol.rs
index 2cebe79..2cebe79 100644
--- a/crates/vcs_actions/src/connection/protocol.rs
+++ b/actions/src/connection/protocol.rs
diff --git a/crates/vcs_actions/src/lib.rs b/actions/src/lib.rs
index 2f7cbe4..2f7cbe4 100644
--- a/crates/vcs_actions/src/lib.rs
+++ b/actions/src/lib.rs
diff --git a/crates/vcs_actions/src/registry.rs b/actions/src/registry.rs
index ceec1a1..ceec1a1 100644
--- a/crates/vcs_actions/src/registry.rs
+++ b/actions/src/registry.rs
diff --git a/crates/vcs_actions/src/registry/client_registry.rs b/actions/src/registry/client_registry.rs
index 05cb7f1..05cb7f1 100644
--- a/crates/vcs_actions/src/registry/client_registry.rs
+++ b/actions/src/registry/client_registry.rs
diff --git a/crates/vcs_actions/src/registry/server_registry.rs b/actions/src/registry/server_registry.rs
index 356e640..356e640 100644
--- a/crates/vcs_actions/src/registry/server_registry.rs
+++ b/actions/src/registry/server_registry.rs
diff --git a/crates/vcs_data/todo.md b/crates/vcs_data/todo.md
deleted file mode 100644
index 3c7e0c0..0000000
--- a/crates/vcs_data/todo.md
+++ /dev/null
@@ -1,31 +0,0 @@
-| 类别 | 项 | 可完成性 | 已完成 |
-|----------|----|----------|--------|
-| 本地文件 | 设置上游服务器(仅设置,不会连接和修改染色标识) | y | |
-| 本地文件 | 验证连接、权限,并为当前工作区染色(若已染色,则无法连接不同标识的服务器) | y | |
-| 本地文件 | 进入表 (否则无法做任何操作) | | |
-| 本地文件 | 退出表 (文件将会从当前目录移出,等待下次进入时还原) | | |
-| 本地文件 | 去色 - 断开与上游服务器的关联 | y | |
-| 本地文件 | 跟踪本地文件的移动、重命名,立刻同步至表 | | |
-| 本地文件 | 扫描本地文件结构,标记变化 | | |
-| 本地文件 | 通过本地暂存的表索引搜索文件 | | |
-| 本地文件 | 查询本地某个文件的状态 | | |
-| 本地文件 | 查询当前目录的状态 | | |
-| 本地文件 | 查询工作区状态 | | |
-| 本地文件 | 将本地所有文件更新到最新状态 | | |
-| 本地文件 | 提交所有产生变化的自身所属文件 | | |
-| 表 | 表查看 - 指定表并查看结构 | | |
-| 表 | 从参照表拉入文件项目 | | |
-| 表 | 将文件项目(或多个)导出到指定表 | | |
-| 表 | 查看导入请求 | | |
-| 表 | 在某个本地地址同意并导入文件 | | |
-| 表 | 拒绝某个、某些或所有导入请求 | | |
-| 表 | 删除表中的映射,但要确保实际文件已被移除 (忽略文件) | | |
-| 表 | 放弃表,所有者消失,下一个切换至表的人获得(放弃需要确保表中没有任何文件是所有者持有的)(替代目前的安全删除) | | |
-| 虚拟文件 | 跟踪本地某些文件,并将其创建为虚拟文件,然后添加到自己的表 | | |
-| 虚拟文件 | 根据本地文件的目录查找虚拟文件,并为自己获得所有权(需要确保版本和上游同步才可) | | |
-| 虚拟文件 | 根据本地文件的目录查找虚拟文件,并放弃所有权(需要确保和上游同步才可) | | |
-| 虚拟文件 | 根据本地文件的目录查找虚拟文件,并定向到指定的存在的老版本 | | |
-
-
-?为什么虚拟文件不能删除:虚拟文件的唯一删除方式就是,没有人再用他
-?为什么没有删除表:同理,表权限可以转移,但是删除只能等待定期清除无主人的表
diff --git a/crates/vcs_data/vcs_data_test/lib.rs b/crates/vcs_data/vcs_data_test/lib.rs
deleted file mode 100644
index 5b65941..0000000
--- a/crates/vcs_data/vcs_data_test/lib.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-use vcs_service::{action::Action, action_pool::ActionPool};
-
-use crate::actions::test::FindMemberInServer;
-
-pub mod constants;
-pub mod current;
-
-#[allow(dead_code)]
-pub mod data;
-
-pub mod actions;
diff --git a/crates/vcs_data/Cargo.toml b/data/Cargo.toml
index 1971b6a..7506814 100644
--- a/crates/vcs_data/Cargo.toml
+++ b/data/Cargo.toml
@@ -13,8 +13,8 @@ tcp_connection = { path = "../utils/tcp_connection" }
string_proc = { path = "../utils/string_proc" }
# Core
-action_system = { path = "../system_action" }
-vcs_docs = { path = "../vcs_docs" }
+action_system = { path = "../systems/action" }
+vcs_docs = { path = "../docs" }
# Random
rand = "0.9.2"
diff --git a/crates/vcs_data/src/constants.rs b/data/src/constants.rs
index 3d839a6..3d839a6 100644
--- a/crates/vcs_data/src/constants.rs
+++ b/data/src/constants.rs
diff --git a/crates/vcs_data/src/current.rs b/data/src/current.rs
index 209c0cc..209c0cc 100644
--- a/crates/vcs_data/src/current.rs
+++ b/data/src/current.rs
diff --git a/crates/vcs_data/src/data.rs b/data/src/data.rs
index ed9383a..ed9383a 100644
--- a/crates/vcs_data/src/data.rs
+++ b/data/src/data.rs
diff --git a/crates/vcs_data/src/data/local.rs b/data/src/data/local.rs
index 67f3943..67f3943 100644
--- a/crates/vcs_data/src/data/local.rs
+++ b/data/src/data/local.rs
diff --git a/crates/vcs_data/src/data/local/align.rs b/data/src/data/local/align.rs
index b72804c..b72804c 100644
--- a/crates/vcs_data/src/data/local/align.rs
+++ b/data/src/data/local/align.rs
diff --git a/crates/vcs_data/src/data/local/cached_sheet.rs b/data/src/data/local/cached_sheet.rs
index 39f9814..39f9814 100644
--- a/crates/vcs_data/src/data/local/cached_sheet.rs
+++ b/data/src/data/local/cached_sheet.rs
diff --git a/crates/vcs_data/src/data/local/config.rs b/data/src/data/local/config.rs
index 8a89c20..8a89c20 100644
--- a/crates/vcs_data/src/data/local/config.rs
+++ b/data/src/data/local/config.rs
diff --git a/crates/vcs_data/src/data/local/latest_file_data.rs b/data/src/data/local/latest_file_data.rs
index 21c647c..21c647c 100644
--- a/crates/vcs_data/src/data/local/latest_file_data.rs
+++ b/data/src/data/local/latest_file_data.rs
diff --git a/crates/vcs_data/src/data/local/latest_info.rs b/data/src/data/local/latest_info.rs
index e11836b..e11836b 100644
--- a/crates/vcs_data/src/data/local/latest_info.rs
+++ b/data/src/data/local/latest_info.rs
diff --git a/crates/vcs_data/src/data/local/local_files.rs b/data/src/data/local/local_files.rs
index 9cc244f..9cc244f 100644
--- a/crates/vcs_data/src/data/local/local_files.rs
+++ b/data/src/data/local/local_files.rs
diff --git a/crates/vcs_data/src/data/local/local_sheet.rs b/data/src/data/local/local_sheet.rs
index 6f9924c..6f9924c 100644
--- a/crates/vcs_data/src/data/local/local_sheet.rs
+++ b/data/src/data/local/local_sheet.rs
diff --git a/crates/vcs_data/src/data/local/vault_modified.rs b/data/src/data/local/vault_modified.rs
index 563d11f..563d11f 100644
--- a/crates/vcs_data/src/data/local/vault_modified.rs
+++ b/data/src/data/local/vault_modified.rs
diff --git a/crates/vcs_data/src/data/local/workspace_analyzer.rs b/data/src/data/local/workspace_analyzer.rs
index f2d83ff..f2d83ff 100644
--- a/crates/vcs_data/src/data/local/workspace_analyzer.rs
+++ b/data/src/data/local/workspace_analyzer.rs
diff --git a/crates/vcs_data/src/data/member.rs b/data/src/data/member.rs
index 7e99488..7e99488 100644
--- a/crates/vcs_data/src/data/member.rs
+++ b/data/src/data/member.rs
diff --git a/crates/vcs_data/src/data/sheet.rs b/data/src/data/sheet.rs
index 64b1985..64b1985 100644
--- a/crates/vcs_data/src/data/sheet.rs
+++ b/data/src/data/sheet.rs
diff --git a/crates/vcs_data/src/data/user.rs b/data/src/data/user.rs
index 9f52fdc..9f52fdc 100644
--- a/crates/vcs_data/src/data/user.rs
+++ b/data/src/data/user.rs
diff --git a/crates/vcs_data/src/data/user/accounts.rs b/data/src/data/user/accounts.rs
index d77bc02..d77bc02 100644
--- a/crates/vcs_data/src/data/user/accounts.rs
+++ b/data/src/data/user/accounts.rs
diff --git a/crates/vcs_data/src/data/vault.rs b/data/src/data/vault.rs
index 595997a..595997a 100644
--- a/crates/vcs_data/src/data/vault.rs
+++ b/data/src/data/vault.rs
diff --git a/crates/vcs_data/src/data/vault/config.rs b/data/src/data/vault/config.rs
index caa8552..caa8552 100644
--- a/crates/vcs_data/src/data/vault/config.rs
+++ b/data/src/data/vault/config.rs
diff --git a/crates/vcs_data/src/data/vault/member.rs b/data/src/data/vault/member.rs
index 9d22d09..9d22d09 100644
--- a/crates/vcs_data/src/data/vault/member.rs
+++ b/data/src/data/vault/member.rs
diff --git a/crates/vcs_data/src/data/vault/service.rs b/data/src/data/vault/service.rs
index 3f59c30..3f59c30 100644
--- a/crates/vcs_data/src/data/vault/service.rs
+++ b/data/src/data/vault/service.rs
diff --git a/crates/vcs_data/src/data/vault/sheet_share.rs b/data/src/data/vault/sheet_share.rs
index 1e692f1..1e692f1 100644
--- a/crates/vcs_data/src/data/vault/sheet_share.rs
+++ b/data/src/data/vault/sheet_share.rs
diff --git a/crates/vcs_data/src/data/vault/sheets.rs b/data/src/data/vault/sheets.rs
index c22c849..c22c849 100644
--- a/crates/vcs_data/src/data/vault/sheets.rs
+++ b/data/src/data/vault/sheets.rs
diff --git a/crates/vcs_data/src/data/vault/virtual_file.rs b/data/src/data/vault/virtual_file.rs
index 8dbcb5d..8dbcb5d 100644
--- a/crates/vcs_data/src/data/vault/virtual_file.rs
+++ b/data/src/data/vault/virtual_file.rs
diff --git a/crates/vcs_data/src/lib.rs b/data/src/lib.rs
index 1b41391..1b41391 100644
--- a/crates/vcs_data/src/lib.rs
+++ b/data/src/lib.rs
diff --git a/crates/vcs_data/vcs_data_test/Cargo.toml b/data/tests/Cargo.toml
index f6caa07..e7a0fcc 100644
--- a/crates/vcs_data/vcs_data_test/Cargo.toml
+++ b/data/tests/Cargo.toml
@@ -7,7 +7,7 @@ version.workspace = true
tcp_connection = { path = "../../utils/tcp_connection" }
tcp_connection_test = { path = "../../utils/tcp_connection/tcp_connection_test" }
cfg_file = { path = "../../utils/cfg_file", features = ["default"] }
-vcs_data = { path = "../../vcs_data" }
+vcs_data = { path = "../../data" }
# Async & Networking
tokio = { version = "1.48.0", features = ["full"] }
diff --git a/crates/vcs_data/vcs_data_test/src/lib.rs b/data/tests/src/lib.rs
index ced2d3d..ced2d3d 100644
--- a/crates/vcs_data/vcs_data_test/src/lib.rs
+++ b/data/tests/src/lib.rs
diff --git a/crates/vcs_data/vcs_data_test/src/test_local_workspace_setup_and_account_management.rs b/data/tests/src/test_local_workspace_setup_and_account_management.rs
index 8fa2676..8fa2676 100644
--- a/crates/vcs_data/vcs_data_test/src/test_local_workspace_setup_and_account_management.rs
+++ b/data/tests/src/test_local_workspace_setup_and_account_management.rs
diff --git a/crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs b/data/tests/src/test_sheet_creation_management_and_persistence.rs
index 6683d06..6683d06 100644
--- a/crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs
+++ b/data/tests/src/test_sheet_creation_management_and_persistence.rs
diff --git a/crates/vcs_data/vcs_data_test/src/test_sheet_share_creation_and_management.rs b/data/tests/src/test_sheet_share_creation_and_management.rs
index 89891d6..89891d6 100644
--- a/crates/vcs_data/vcs_data_test/src/test_sheet_share_creation_and_management.rs
+++ b/data/tests/src/test_sheet_share_creation_and_management.rs
diff --git a/crates/vcs_data/vcs_data_test/src/test_vault_setup_and_member_register.rs b/data/tests/src/test_vault_setup_and_member_register.rs
index 286a4a2..286a4a2 100644
--- a/crates/vcs_data/vcs_data_test/src/test_vault_setup_and_member_register.rs
+++ b/data/tests/src/test_vault_setup_and_member_register.rs
diff --git a/crates/vcs_data/vcs_data_test/src/test_virtual_file_creation_and_update.rs b/data/tests/src/test_virtual_file_creation_and_update.rs
index 2d9d393..2d9d393 100644
--- a/crates/vcs_data/vcs_data_test/src/test_virtual_file_creation_and_update.rs
+++ b/data/tests/src/test_virtual_file_creation_and_update.rs
diff --git a/crates/vcs_docs/Cargo.toml b/docs/Cargo.toml
index 285b83d..285b83d 100644
--- a/crates/vcs_docs/Cargo.toml
+++ b/docs/Cargo.toml
diff --git a/crates/vcs_docs/build.rs b/docs/build.rs
index d1e878f..53679db 100644
--- a/crates/vcs_docs/build.rs
+++ b/docs/build.rs
@@ -19,13 +19,13 @@ const PARAM_DOCUMENT_PATH_SNAKE_CASE: &str = "{{DOCUMENT_PATH_SNAKE_CASE}}";
fn main() -> io::Result<()> {
println!("cargo:rerun-if-changed=src/docs.rs.template");
- println!("cargo:rerun-if-changed=../../docs/Documents");
+ println!("cargo:rerun-if-changed=Documents");
let out_dir = env::var("OUT_DIR").unwrap();
let dest_path = Path::new(&out_dir).join("docs.rs");
// Read all markdown files from docs directory recursively
- let docs_dir = Path::new("../../docs/Documents");
+ let docs_dir = Path::new("./Documents");
let mut documents = Vec::new();
if docs_dir.exists() {
@@ -182,7 +182,7 @@ fn collect_text_files(dir: &Path, documents: &mut Vec<(String, String)>) -> io::
|| ext == "yml"
|| ext == "json"
|| ext == "rs"
- }) && let Ok(relative_path) = path.strip_prefix("../../docs/Documents")
+ }) && let Ok(relative_path) = path.strip_prefix("./Documents")
&& let Some(relative_path_str) = relative_path.to_str()
{
let content = fs::read_to_string(&path)?;
diff --git a/docs/src/docs.rs b/docs/src/docs.rs
new file mode 100644
index 0000000..c12b737
--- /dev/null
+++ b/docs/src/docs.rs
@@ -0,0 +1,387 @@
+// Auto-generated code.
+
+
+/// From ./docs/Documents/ASCII_YIZI.txt
+pub const ASCII_YIZI: &str = "#BANNER START#
+ ████████ ████████
+██▒▒▒▒▒▒▒▒██ ██▒▒▒▒▒▒▒▒██
+██ ▒▒██ ██▒▒ ██ █████ ██ ██ ██████ █████
+██ ▒▒████████▒▒ ██ ▒▒▒██ ██ ██ ██████ ██████
+██ ▒▒▒▒▒▒▒▒ ██ ██ ██ ██ ███▒▒▒█ █▒▒▒▒█
+██ ██ ██ ██ ██ ███ ▒ ████ ▒
+██ ██ ██ ██ ██ ███ ▒████
+██ ████ ████ ██ ██ ▒██ ██▒ ███ ▒▒▒██
+██ ████ ████ ██ █ ██ ██ ██ ███ █ ██ ██
+██ ████ ████ ██ █ ██ ▒████▒ ▒██████ ██████
+██ ▒▒▒▒ ▒▒▒▒ █ ██ ▒████ ▒██▒ ██████ ▒████▒
+██ ██ ██ ▒▒▒▒ ▒▒ ▒▒▒▒▒▒ ▒▒▒▒
+██ ██████████ ██
+██ ██ {banner_line_1}
+ ████████████████████████████████ {banner_line_2}
+ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ {banner_line_3}
+#BANNER END#";
+
+
+
+/// From ./docs/Documents/docs\collaboration.txt
+pub const DOCS_COLLABORATION: &str = "NO CONTENT YET :(";
+
+
+
+/// From ./docs/Documents/docs\get_started.txt
+pub const DOCS_GET_STARTED: &str = "NO CONTENT YET :(";
+
+
+
+/// From ./docs/Documents/profiles\vault.toml
+pub const PROFILES_VAULT: &str = "#
+#
+# ████████ ████████
+# ██▒▒▒▒▒▒▒▒██ ██▒▒▒▒▒▒▒▒██
+# ██ ▒▒██ ██▒▒ ██ █████ ██ ██ ██ ██
+# ██ ▒▒████████▒▒ ██ ▒▒▒██ ██ ██ ██ ██
+# ██ ▒▒▒▒▒▒▒▒ ██ ██ ██ ██ ██ ██
+# ██ ██ ██ ██ ██ ██ ██
+# ██ ██ ██ ██ ██ ██ ██
+# ██ ████ ████ ██ ██ ▒██ ██▒ ▒██ ██▒
+# ██ ████ ████ ██ █ ██ ██ ██ ██ ██
+# ██ ████ ████ ██ █ ██ ▒████▒ ▒████▒
+# ██ ▒▒▒▒ ▒▒▒▒ █ ██ ▒████ ▒██▒ ▒██▒
+# ██ ██ ██ ▒▒▒▒ ▒▒ ▒▒
+# ██ ██████████ ██
+# ██ ██
+# ████████████████████████████████ JustEnoughVCS Vault Profile
+# ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ===========================
+#
+#
+
+# Vault \"{vault_name}\" created by {user_name} ({date_format})
+
+#########################
+### Base Informations ###
+#########################
+name = \"{vault_name}\"
+uuid = \"{vault_uuid}\" # Don't touch it!
+
+# Administrator list, indicating members who can switch identity to 'host'
+hosts = []
+
+[profile]
+
+####################
+### Connectivity ###
+####################
+
+# Bind address: 127.0.0.1 for localhost only, 0.0.0.0 to allow remote access
+bind = \"127.0.0.1\" # (fallback: \"127.0.0.1\")
+
+# Bind port
+port = 25331 # (fallback: 25331)
+
+# Enable LAN discovery: clients can discover this service on the local network
+# TIP: Not yet supported
+lan_discovery = \"disable\" # (enable, disable, fallback: disable)
+
+#############
+### Debug ###
+#############
+
+# Enable logger
+logger = \"yes\" # (yes, no, fallback: no)
+
+# Logger output level
+logger_level = \"info\" # (debug, trace, info, fallback: info)
+
+#################################
+### Authentication & Security ###
+#################################
+
+# Authentication mode
+# TIP: Currently only \"key\" is supported
+auth_mode = \"key\" # (key, password, noauth, fallback: password)";
+
+
+
+/// From ./docs/Documents/README.md
+pub const README: &str = "# JustEnoughVCS";
+
+
+
+/// From ./docs/Documents/readmes\local_workspace_todolist.md
+pub const READMES_LOCAL_WORKSPACE_TODOLIST: &str = "# Setup a Workspace
+
+You have created an empty local **Workspace** using `jv create` or `jv init`.
+
+At this point, the workspace exists only as a local structure.
+It is **not yet associated with any identity or upstream Vault**.
+
+Follow the steps below to complete the initial setup.
+
+## Account Setup
+
+> [!TIP]
+> If you have already registered an account on this machine, you can skip this section.
+
+An account represents **this machine acting on your behalf**.
+You can create an account and generate a private key using the following commands.
+
+```bash
+# Make sure OpenSSL is installed on your system.
+# Create an account and automatically generate a private key using OpenSSL.
+jv account add pan --keygen
+
+# If you already have a private key, you can associate it with an account.
+jv account movekey pan ./your_private_key.pem
+```
+
+After creating the private key, generate the corresponding public key.
+This also requires `OpenSSL` support.
+
+```bash
+# Generate the public key in the current directory.
+jv account genpub pan ./
+```
+
+**Send the generated public key file to a Host of the upstream Vault.**
+Only after the key is registered by the Vault can this workspace authenticate.
+
+## Login
+
+> In the following example, we assume:
+>
+> * the account name is `pan`
+> * the upstream Vault address is `127.0.0.1`
+
+Navigate to the workspace directory (the directory containing this file), then run:
+
+```bash
+# Log in as pan to the upstream Vault at 127.0.0.1
+# -C skips confirmation prompts
+jv login pan 127.0.0.1 -C
+```
+
+This command performs the following steps internally:
+
+```bash
+jv account as pan # Bind the workspace to account pan
+jv direct 127.0.0.1 -C # Set the upstream Vault address
+jv update # Fetch initial structure and metadata from upstream
+rm SETUP.md # Remove this setup document
+```
+
+After login, the workspace becomes a **live participant** connected to the upstream Vault.
+
+## Completion
+
+At this point, the workspace is fully set up:
+
+* An account identity is bound locally
+* An upstream Vault is configured
+* Initial data has been synchronized
+
+Normally, `jv login` removes this file automatically.
+If the file still exists due to a deletion failure, please remove it manually to keep the workspace clean.
+
+Once this file is gone, the workspace is considered **ready for daily use**.
+
+## Why does this file delete itself?
+
+A freshly created JVCS workspace is considered **clean** only when no sheets are in use and no unexplained files exist.
+
+During the initial setup phase, this `SETUP.md` file is the only allowed exception.
+It exists solely to guide the workspace into a connected and explainable state.
+
+Once the workspace is connected to an upstream Vault and enters normal operation,
+every file in the workspace is expected to be **explainable by structure**.
+
+If this setup file remains:
+
+* it becomes an unexplained local file
+* `JustEnoughVCS` cannot determine which sheet it belongs to
+* and any subsequent `jv use` operation would be ambiguous
+
+To prevent this ambiguity, JVCS enforces a strict rule:
+
+**A workspace with unexplained files is not allowed to enter active use.**
+
+Deleting `SETUP.md` marks the end of the setup phase and confirms that:
+
+* all remaining files are intentional
+* their placement can be explained
+* and the workspace is ready to participate in structure-driven operations
+
+This is why the setup document removes itself.
+It is not cleanup — it is a boundary.";
+
+
+
+/// From ./docs/Documents/readmes\vault_readme.md
+pub const READMES_VAULT_README: &str = "# Setup an Upstream Vault
+
+Thank you for using `JustEnoughVCS`.
+
+This document guides you through setting up an **Upstream Vault** — a shared source of structure and content that other workspaces may depend on.
+
+## Configuration File
+
+Before starting the Vault service with `jvv listen`, you need to configure `vault.toml`.
+
+This file defines the identity, connectivity, and responsibility boundaries of the Vault.
+
+### Adding Hosts
+
+Set the `hosts` parameter to specify which members are allowed to switch into the **Host** role for this Vault.
+
+```toml
+# Pan and Alice are allowed to operate this Vault as hosts
+hosts = [ \"pan\", \"alice\" ]
+```
+
+Members listed here can switch their identity as follows:
+
+```bash
+jv as host/pan
+```
+
+> Becoming a Host means operating from a position that may affect other members.
+> This role is not a permanent identity, but a responsibility-bearing context.
+
+### Configuring Connection
+
+Modify the `bind` parameter to `0.0.0.0` to allow access from other devices on the local network.
+
+```toml
+bind = \"0.0.0.0\"
+```
+
+> [!TIP]
+> `JustEnoughVCS` uses port **25331** by default.
+> You can change the listening port by modifying the `port` parameter if needed.
+
+### Disabling Logger (Optional)
+
+If you prefer a cleaner console output, you can disable logging:
+
+```toml
+logger = \"no\"
+```
+
+## Member Account Setup
+
+Run the following command in the root directory of the **Vault** to register a member:
+
+```bash
+jvv member register pan
+```
+
+Registering a member only creates its identity record in the Vault.
+It does **not** automatically make the member login-ready.
+
+An authentication method must be registered separately.
+
+> [!NOTE]
+> Currently, `JustEnoughVCS` supports **key-based authentication** only.
+
+Place the public key file provided by the member (`name.pem`) into the Vault’s `./key` directory.
+
+For example, after registering a member named `pan`, the Vault directory structure should look like this:
+
+```
+.
+├── key
+│ └── pan.pem <- Public key file
+├── members
+│ ├── pan.bcfg <- Member registration info
+│ └── host.bcfg
+├── README.md
+├── sheets
+│ └── ref.bcfg
+├── storage
+└── vault.toml
+```
+
+## Completion
+
+At this point, the Vault is fully configured:
+
+* Member identities are registered
+* Host roles are defined
+* Authentication materials are in place
+
+You can now start the Vault service using:
+
+```bash
+jvv listen
+```
+
+Other workspaces may connect to this Vault once it is listening.";
+
+
+
+/// From ./docs/Documents/web_docs\guide.md
+pub const WEB_DOCS_GUIDE: &str = "# FIRST
+
+ok";
+
+
+
+/// From ./docs/Documents/_navbar.md
+pub const _NAVBAR: &str = "* [Home](/)
+* [GitHub](https://github.com/JustEnoughVCS/)
+* [Main Repo](https://github.com/JustEnoughVCS/VersionControl)";
+
+
+
+/// From ./docs/Documents/_sidebar.md
+pub const _SIDEBAR: &str = "* Getting Started
+ * [Introduction](README.md)
+
+* USER
+ * [Workspace Setup](web_docs/workspace_setup.md)
+
+* ADMIN
+ * [Vault Setup](web_docs/vault_setup.md)";
+
+
+// Get document content by name
+pub fn document(name: impl AsRef<str>) -> Option<String> {
+ match name.as_ref() {
+
+ "ascii_yizi" => Some(ASCII_YIZI.to_string()),
+
+ "docs_collaboration" => Some(DOCS_COLLABORATION.to_string()),
+
+ "docs_get_started" => Some(DOCS_GET_STARTED.to_string()),
+
+ "profiles_vault" => Some(PROFILES_VAULT.to_string()),
+
+ "readme" => Some(README.to_string()),
+
+ "readmes_local_workspace_todolist" => Some(READMES_LOCAL_WORKSPACE_TODOLIST.to_string()),
+
+ "readmes_vault_readme" => Some(READMES_VAULT_README.to_string()),
+
+ "web_docs_guide" => Some(WEB_DOCS_GUIDE.to_string()),
+
+ "_navbar" => Some(_NAVBAR.to_string()),
+
+ "_sidebar" => Some(_SIDEBAR.to_string()),
+_ => None,
+ }
+}
+
+// Get list of all available document names
+pub fn documents() -> Vec<String> {
+ vec![
+ "ascii_yizi".to_string(),
+ "docs_collaboration".to_string(),
+ "docs_get_started".to_string(),
+ "profiles_vault".to_string(),
+ "readme".to_string(),
+ "readmes_local_workspace_todolist".to_string(),
+ "readmes_vault_readme".to_string(),
+ "web_docs_guide".to_string(),
+ "_navbar".to_string(),
+ "_sidebar".to_string(),
+ ]
+}
diff --git a/crates/vcs_docs/src/docs.rs.template b/docs/src/docs.rs.template
index c6787d9..c6787d9 100644
--- a/crates/vcs_docs/src/docs.rs.template
+++ b/docs/src/docs.rs.template
diff --git a/crates/vcs_docs/src/lib.rs b/docs/src/lib.rs
index ca422a9..ca422a9 100644
--- a/crates/vcs_docs/src/lib.rs
+++ b/docs/src/lib.rs
diff --git a/examples/Cargo.toml b/examples/Cargo.toml
index fb4820f..12c52c1 100644
--- a/examples/Cargo.toml
+++ b/examples/Cargo.toml
@@ -10,12 +10,12 @@ path = "src/bin/example_action_system.rs"
[dependencies]
# Utils
-tcp_connection = { path = "../crates/utils/tcp_connection" }
-cfg_file = { path = "../crates/utils/cfg_file", features = ["default"] }
-string_proc = { path = "../crates/utils/string_proc" }
+tcp_connection = { path = "../utils/tcp_connection" }
+cfg_file = { path = "../utils/cfg_file", features = ["default"] }
+string_proc = { path = "../utils/string_proc" }
# Core
-action_system = { path = "../crates/system_action" }
+action_system = { path = "../systems/action" }
# Async & Networking
tokio = { version = "1.48.0", features = ["full"] }
diff --git a/crates/system_action/Cargo.toml b/systems/action/Cargo.toml
index b4b98aa..5317975 100644
--- a/crates/system_action/Cargo.toml
+++ b/systems/action/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2024"
version.workspace = true
[dependencies]
-tcp_connection = { path = "../utils/tcp_connection" }
+tcp_connection = { path = "../../utils/tcp_connection" }
action_system_macros = { path = "action_macros" }
# Serialization
diff --git a/crates/system_action/action_macros/Cargo.toml b/systems/action/action_macros/Cargo.toml
index ee7d93b..8b23191 100644
--- a/crates/system_action/action_macros/Cargo.toml
+++ b/systems/action/action_macros/Cargo.toml
@@ -7,8 +7,8 @@ version.workspace = true
proc-macro = true
[dependencies]
-tcp_connection = { path = "../../utils/tcp_connection" }
-string_proc = { path = "../../utils/string_proc" }
+tcp_connection = { path = "../../../utils/tcp_connection" }
+string_proc = { path = "../../../utils/string_proc" }
syn = { version = "2.0", features = ["full", "extra-traits"] }
quote = "1.0"
diff --git a/crates/system_action/action_macros/src/lib.rs b/systems/action/action_macros/src/lib.rs
index e6616b4..e6616b4 100644
--- a/crates/system_action/action_macros/src/lib.rs
+++ b/systems/action/action_macros/src/lib.rs
diff --git a/crates/system_action/src/action.rs b/systems/action/src/action.rs
index 62425ff..62425ff 100644
--- a/crates/system_action/src/action.rs
+++ b/systems/action/src/action.rs
diff --git a/crates/system_action/src/action_pool.rs b/systems/action/src/action_pool.rs
index 019fa6d..019fa6d 100644
--- a/crates/system_action/src/action_pool.rs
+++ b/systems/action/src/action_pool.rs
diff --git a/crates/system_action/src/lib.rs b/systems/action/src/lib.rs
index 12ae999..12ae999 100644
--- a/crates/system_action/src/lib.rs
+++ b/systems/action/src/lib.rs
diff --git a/crates/utils/cfg_file/Cargo.toml b/utils/cfg_file/Cargo.toml
index 0685329..0685329 100644
--- a/crates/utils/cfg_file/Cargo.toml
+++ b/utils/cfg_file/Cargo.toml
diff --git a/crates/utils/cfg_file/cfg_file_derive/Cargo.toml b/utils/cfg_file/cfg_file_derive/Cargo.toml
index ce5e77f..ce5e77f 100644
--- a/crates/utils/cfg_file/cfg_file_derive/Cargo.toml
+++ b/utils/cfg_file/cfg_file_derive/Cargo.toml
diff --git a/crates/utils/cfg_file/cfg_file_derive/src/lib.rs b/utils/cfg_file/cfg_file_derive/src/lib.rs
index e916311..e916311 100644
--- a/crates/utils/cfg_file/cfg_file_derive/src/lib.rs
+++ b/utils/cfg_file/cfg_file_derive/src/lib.rs
diff --git a/crates/utils/cfg_file/cfg_file_test/Cargo.toml b/utils/cfg_file/cfg_file_test/Cargo.toml
index 5db1010..5db1010 100644
--- a/crates/utils/cfg_file/cfg_file_test/Cargo.toml
+++ b/utils/cfg_file/cfg_file_test/Cargo.toml
diff --git a/crates/utils/cfg_file/cfg_file_test/src/lib.rs b/utils/cfg_file/cfg_file_test/src/lib.rs
index f70d00d..f70d00d 100644
--- a/crates/utils/cfg_file/cfg_file_test/src/lib.rs
+++ b/utils/cfg_file/cfg_file_test/src/lib.rs
diff --git a/crates/utils/cfg_file/src/config.rs b/utils/cfg_file/src/config.rs
index d3f5477..d3f5477 100644
--- a/crates/utils/cfg_file/src/config.rs
+++ b/utils/cfg_file/src/config.rs
diff --git a/crates/utils/cfg_file/src/lib.rs b/utils/cfg_file/src/lib.rs
index 72246e7..72246e7 100644
--- a/crates/utils/cfg_file/src/lib.rs
+++ b/utils/cfg_file/src/lib.rs
diff --git a/crates/utils/data_struct/Cargo.toml b/utils/data_struct/Cargo.toml
index e8caa6e..e8caa6e 100644
--- a/crates/utils/data_struct/Cargo.toml
+++ b/utils/data_struct/Cargo.toml
diff --git a/crates/utils/data_struct/src/bi_map.rs b/utils/data_struct/src/bi_map.rs
index c21a9c8..c21a9c8 100644
--- a/crates/utils/data_struct/src/bi_map.rs
+++ b/utils/data_struct/src/bi_map.rs
diff --git a/crates/utils/data_struct/src/data_sort.rs b/utils/data_struct/src/data_sort.rs
index 2c7a452..2c7a452 100644
--- a/crates/utils/data_struct/src/data_sort.rs
+++ b/utils/data_struct/src/data_sort.rs
diff --git a/crates/utils/data_struct/src/lib.rs b/utils/data_struct/src/lib.rs
index 47cc03c..47cc03c 100644
--- a/crates/utils/data_struct/src/lib.rs
+++ b/utils/data_struct/src/lib.rs
diff --git a/crates/utils/sha1_hash/Cargo.toml b/utils/sha1_hash/Cargo.toml
index e206efd..e206efd 100644
--- a/crates/utils/sha1_hash/Cargo.toml
+++ b/utils/sha1_hash/Cargo.toml
diff --git a/crates/utils/sha1_hash/res/story.txt b/utils/sha1_hash/res/story.txt
index a91f467..a91f467 100644
--- a/crates/utils/sha1_hash/res/story.txt
+++ b/utils/sha1_hash/res/story.txt
diff --git a/crates/utils/sha1_hash/res/story_crlf.sha1 b/utils/sha1_hash/res/story_crlf.sha1
index bc8ad25..bc8ad25 100644
--- a/crates/utils/sha1_hash/res/story_crlf.sha1
+++ b/utils/sha1_hash/res/story_crlf.sha1
diff --git a/crates/utils/sha1_hash/res/story_lf.sha1 b/utils/sha1_hash/res/story_lf.sha1
index c2e3213..c2e3213 100644
--- a/crates/utils/sha1_hash/res/story_lf.sha1
+++ b/utils/sha1_hash/res/story_lf.sha1
diff --git a/crates/utils/sha1_hash/src/lib.rs b/utils/sha1_hash/src/lib.rs
index 96a7897..96a7897 100644
--- a/crates/utils/sha1_hash/src/lib.rs
+++ b/utils/sha1_hash/src/lib.rs
diff --git a/crates/utils/string_proc/Cargo.toml b/utils/string_proc/Cargo.toml
index 5292339..5292339 100644
--- a/crates/utils/string_proc/Cargo.toml
+++ b/utils/string_proc/Cargo.toml
diff --git a/crates/utils/string_proc/src/format_path.rs b/utils/string_proc/src/format_path.rs
index 35689b8..35689b8 100644
--- a/crates/utils/string_proc/src/format_path.rs
+++ b/utils/string_proc/src/format_path.rs
diff --git a/crates/utils/string_proc/src/format_processer.rs b/utils/string_proc/src/format_processer.rs
index 8d0a770..8d0a770 100644
--- a/crates/utils/string_proc/src/format_processer.rs
+++ b/utils/string_proc/src/format_processer.rs
diff --git a/crates/utils/string_proc/src/lib.rs b/utils/string_proc/src/lib.rs
index 76588c1..76588c1 100644
--- a/crates/utils/string_proc/src/lib.rs
+++ b/utils/string_proc/src/lib.rs
diff --git a/crates/utils/string_proc/src/macros.rs b/utils/string_proc/src/macros.rs
index 135268e..135268e 100644
--- a/crates/utils/string_proc/src/macros.rs
+++ b/utils/string_proc/src/macros.rs
diff --git a/crates/utils/string_proc/src/simple_processer.rs b/utils/string_proc/src/simple_processer.rs
index 2de5dfc..2de5dfc 100644
--- a/crates/utils/string_proc/src/simple_processer.rs
+++ b/utils/string_proc/src/simple_processer.rs
diff --git a/crates/utils/tcp_connection/Cargo.toml b/utils/tcp_connection/Cargo.toml
index da258be..da258be 100644
--- a/crates/utils/tcp_connection/Cargo.toml
+++ b/utils/tcp_connection/Cargo.toml
diff --git a/crates/utils/tcp_connection/src/error.rs b/utils/tcp_connection/src/error.rs
index 32d06cc..32d06cc 100644
--- a/crates/utils/tcp_connection/src/error.rs
+++ b/utils/tcp_connection/src/error.rs
diff --git a/crates/utils/tcp_connection/src/instance.rs b/utils/tcp_connection/src/instance.rs
index 8e6886c..8e6886c 100644
--- a/crates/utils/tcp_connection/src/instance.rs
+++ b/utils/tcp_connection/src/instance.rs
diff --git a/crates/utils/tcp_connection/src/instance_challenge.rs b/utils/tcp_connection/src/instance_challenge.rs
index 3a7f6a3..3a7f6a3 100644
--- a/crates/utils/tcp_connection/src/instance_challenge.rs
+++ b/utils/tcp_connection/src/instance_challenge.rs
diff --git a/crates/utils/tcp_connection/src/lib.rs b/utils/tcp_connection/src/lib.rs
index 6a2e599..6a2e599 100644
--- a/crates/utils/tcp_connection/src/lib.rs
+++ b/utils/tcp_connection/src/lib.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/Cargo.toml b/utils/tcp_connection/tcp_connection_test/Cargo.toml
index 19a6e9b..19a6e9b 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/Cargo.toml
+++ b/utils/tcp_connection/tcp_connection_test/Cargo.toml
diff --git a/crates/utils/tcp_connection/tcp_connection_test/res/image/test_transfer.png b/utils/tcp_connection/tcp_connection_test/res/image/test_transfer.png
index 5fa94f0..5fa94f0 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/res/image/test_transfer.png
+++ b/utils/tcp_connection/tcp_connection_test/res/image/test_transfer.png
Binary files differ
diff --git a/crates/utils/tcp_connection/tcp_connection_test/res/key/test_key.pem b/utils/tcp_connection/tcp_connection_test/res/key/test_key.pem
index e155876..e155876 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/res/key/test_key.pem
+++ b/utils/tcp_connection/tcp_connection_test/res/key/test_key.pem
diff --git a/crates/utils/tcp_connection/tcp_connection_test/res/key/test_key_private.pem b/utils/tcp_connection/tcp_connection_test/res/key/test_key_private.pem
index 183d2d9..183d2d9 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/res/key/test_key_private.pem
+++ b/utils/tcp_connection/tcp_connection_test/res/key/test_key_private.pem
diff --git a/crates/utils/tcp_connection/tcp_connection_test/res/key/wrong_key_private.pem b/utils/tcp_connection/tcp_connection_test/res/key/wrong_key_private.pem
index 4b77eea..4b77eea 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/res/key/wrong_key_private.pem
+++ b/utils/tcp_connection/tcp_connection_test/res/key/wrong_key_private.pem
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/lib.rs b/utils/tcp_connection/tcp_connection_test/src/lib.rs
index c9372d4..c9372d4 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/lib.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/lib.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_challenge.rs b/utils/tcp_connection/tcp_connection_test/src/test_challenge.rs
index 9327b3e..9327b3e 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_challenge.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_challenge.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_connection.rs b/utils/tcp_connection/tcp_connection_test/src/test_connection.rs
index 8c3ab01..8c3ab01 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_connection.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_connection.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_file_transfer.rs b/utils/tcp_connection/tcp_connection_test/src/test_file_transfer.rs
index 4237ea7..4237ea7 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_file_transfer.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_file_transfer.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_msgpack.rs b/utils/tcp_connection/tcp_connection_test/src/test_msgpack.rs
index 4c9c870..4c9c870 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_msgpack.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_msgpack.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_tcp_target_build.rs b/utils/tcp_connection/tcp_connection_test/src/test_tcp_target_build.rs
index aa1ec74..aa1ec74 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_tcp_target_build.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_tcp_target_build.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils.rs b/utils/tcp_connection/tcp_connection_test/src/test_utils.rs
index badf27d..badf27d 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_utils.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils/handle.rs b/utils/tcp_connection/tcp_connection_test/src/test_utils/handle.rs
index 4f9bdbb..4f9bdbb 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils/handle.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_utils/handle.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target.rs b/utils/tcp_connection/tcp_connection_test/src/test_utils/target.rs
index 8972b2a..8972b2a 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_utils/target.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target_configure.rs b/utils/tcp_connection/tcp_connection_test/src/test_utils/target_configure.rs
index d739ac9..d739ac9 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target_configure.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_utils/target_configure.rs
diff --git a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target_connection.rs b/utils/tcp_connection/tcp_connection_test/src/test_utils/target_connection.rs
index d5bf2c3..d5bf2c3 100644
--- a/crates/utils/tcp_connection/tcp_connection_test/src/test_utils/target_connection.rs
+++ b/utils/tcp_connection/tcp_connection_test/src/test_utils/target_connection.rs