canis は,計算機上でのユーザのファイル操作を監視し,ファイル操作を契機として決められた処理を行うためのシステムです.利用例として,ハッシュを作成・保存することで研究データの存在を証明する証拠とします.
Windows, MacOS, Linux で動作するシステムで,それぞれのOSでは以下のような監視システムを利用しています.
- Windows: ReadDirectoryChangesExW
- MacOS: FSEvents
- Linux: inotify Filesystem in Userspace (FUSE) を利用することで,より高度な監視ができます. FUSE による監視を利用する方法や取得できる情報は以下のFUSEを利用した監視機能の利用に示しています.
また,canis は以下の機能を提供しています.
- ユーザのファイル操作を監視して証跡を保存する
- 指定したファイルの証跡について検索する
- 指定したファイルについて履歴を表示する (TODO)
- 1日に1回その日に作成した証跡からハッシュを作成し,公開する
- 論文中の図の情報をまとめた説明を作成する
canis は,バックグラウンドで動作してユーザのファイル操作を監視し,以下の項目からなる証跡をデータベースに保存します.
- ファイルがいつから存在したかの証拠となる情報
- エントリ追加時刻
- ハッシュ値
- ファイルパス
- ファイル操作に関する情報
- 操作時刻
- 操作の種別
- ファイルパス
- 移動元のファイルパス(ファイル移動時のみ)
以下にシステムを利用して監視し,証跡を保存する動作の例を示します. 以下で示すコマンドの詳細については,以降の Usage に記載しています.
- まずは,ユーザの操作監視を開始するためにシステムを起動します.
$ canis start --watcher notify --targets /watching/path/1/ --dbfile /path/to/dbfile
上記のコマンドは,システムを起動するためのコマンド start です.
それぞれの引数は以下の項目を設定しています.
watcher: 監視に利用するシステムtargets: 監視対象のパスdbfile: 証跡を保存するデータベースのファイルのパス
- システムを起動した状態で,監視パス配下でファイル操作を行います.
- 操作したファイルについての証跡が保存されます. 保存される証跡の形式は以下のようになっています.
2026-02-01T02:03:04.230445,ad56fcd90f67e70ba2f6d35779a856e70d32310cffdf61eda9885298bb83e595,/watching/path/1/test.txt
上記は簡単な操作例です. これらに加えて複数のパス配下の監視やデーモンとしての起動も可能となっています.詳細については以下を確認してください
-
Releases から各 OS に対応したバイナリをダウンロードしてください
-
ダウンロードしたバイナリを任意のパスに移動して利用することができます.各 OS について移動先の例を以下に示します.
- Linux: ~/bin/
- Windows: C:\Users<username>\bin\
- MacOS: ~/bin/
MacOSの場合は,実行するためには以下の操作が必要になります.
- 実行権限の付与
- ダウンロードしたファイルが安全な開発元によるものか検証し,マルウェアの実行を防止するセキュリティ機能を無効にする
これらの操作を行うためには,以下のコマンドを実行してください.
$ chmod +x canis
$ xattr -d com.apple.quarantine canis
システムが利用する監視システムや監視対象のパス,証跡の保存先などを指定するために設定ファイルを利用できます. 設定ファイルは任意の場所に配置できます.例として,各 OS について以下の場所をデフォルトとして設定しています.
- Linux:
/home/<user>/.config/canis/config.toml - Windows:
C:\Users\<user>\AppData\Roaming\canis\config\config.toml - MacOS:
/Users/<user>/Library/Application/canis/config.toml
設定ファイルには以下の情報を記載できます.
- watcher: 監視に利用するシステムを指定します. notify または fuse を指定できます. ただし,fuse を指定したい場合は以降に示す FUSE による監視を利用するための手順を実行してください.
- targets: 監視したいディレクトリのパスを指定します.notify を利用する場合は複数指定可能です.FUSE を利用する場合は 1つ目の要素を監視対象パスとして選択します.
- dbfile: 証跡を保存するデータベースファイルの配置場所を指定します.引数および設定ファイルで指定されていない場合は各 OS ごとに以下の場所に作成されます.
- Linux:
/home/<user>/.local/share/canis/canis.db - Windows:
C:\Users\<user>\AppData\Roaming\canis\data\canis.db - MacOS:
/Users/<user>/Library/Application/canis/canis.db
- Linux:
- dailyhash_repository: 日次ハッシュを公開するGitリポジトリをクローンしたローカルリポジトリのパスを指定します.
以下に設定ファイルの例を示します.
[basic_settings]
# Select the watcher implementation: notify or fuse
watcher = "notify"
# Specify the paths of files or directories to monitor
# When using FUSE, only the first path in this list will be monitored
targets = ["/watching/path/1/","/watching/path/2/"]
# Specify the path to the log file where digest will be stored
# Do not place the log file under any monitored path to avoid infinite loops
dbfile = "/path/to/dbfile"
# Specify the path to a local clone of the Git repository
# This repository is used to publish daily hash values
hashdir = "/path/to/local/gitrepository/"
1日の証跡全体から作成したハッシュ (日次ハッシュ) を外部に公開する機能を提供しています. この公開先として利用するための Git リポジトリを作成してください.
- 日次ハッシュ公開先として利用する Git リポジトリを作成します.
- 作成した Git リポジトリをローカルに Clone してください.ここでは,daily-hashというリポジトリを例に示しています.
$ git clone https://github.com/User/daily-hash.git
canis が保存した証跡などの情報から,AI を利用して論文中の図の情報をまとめた説明を作成できます. この機能を利用するための Model Context Protocol (MCP) の設定を以下に記載します. より詳細な利用方法は mcp/README.md に示しています.
- Configuration for Claude.app
{
"mcpServers": {
"canis": {
"command": "uv",
"args": [
"--directory",
"/path/of/canis_mcp",
"run",
"main.py",
"/path/to/canis/database"
]
}
}
}- Configuration for VS code
{
"servers": {
"canis": {
"command": "uv",
"args": [
"--directory",
"/path/of/canis_mcp",
"run",
"main.py",
"/path/to/canis/database"
],
}
}
}/path/of/canis_mcp:canis_mcpディレクトリのパス/path/to/canis/database: canisが証跡のログを保存しているデータベースのパス
- canis -h
Timestamping System for Research Data Management
Usage: canis <COMMAND>
Commands:
init Generate template files for configuration
start Start canis system
stop Stop canis system
info Display digest about file
publish Publish daily hash
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
- canis init -h
Generate template files for configuration
Usage: canis init [OPTIONS]
Options:
-c, --config <CONFIG> Path to configuration file
--watcher <WATCHER> File system watcher backend to use
--targets <TARGETS> Paths to watch for operation
--dbfile <DBFILE> Path to database file for digest
--ignore <IGNORE> Paths to ignore by the file system watcher
--hashdir <HASHDIR> Directory to store daily hash files
--token <TOKEN> GitHub Personal Access Token
--repo <REPO> GitHub repository name to store daily hash files
-s, --start <START> Generate service file for monitoring (canis start)
-b, --binary <BINARY> Path to canis binary file
-p, --publish <PUBLISH> Generate service file for daily publishing (canis publish)
--date <DATE> Date to create daily hash
--schedule <SCHEDULE> Time to run the publish command daily (e.g. 09:00)
-h, --help Print help
- canis start -h
Start canis system
Usage: canis start [OPTIONS]
Options:
-c, --config <CONFIG> Specify config file
--watcher <WATCHER> File system watcher backend to use
--targets <TARGETS> Paths to watch for operation
--dbfile <DBFILE> Path to database file for digest
--ignore <IGNORE> Paths to ignore by the file system watcher
-d, --daemon Start background
-h, --help Print help
- canis stop -h
Stop canis system
Usage: canis stop
Options:
-h, --help Print help
- canis info -h
Display information for digest
Usage: canis info [OPTIONS]
Options:
-p, --path <PATH> Path to target file or directory
-H, --hash <HASH> Hash of target file
-t, --trace Generate tracing log about file
-m, --heatmap Generate heatmap
-c, --config <CONFIG> Specify config file
--dbfile <DBFILE> Path to database file for digest
--since <SINCE> Start of the period to search
--until <UNTIL> End of the period to search
-h, --help Print help
Heatmap Options:
-y, --yes Skip confirmation prompt for large date ranges
--explain <EXPLAIN> Path to a JSON file containing directory descriptions to attach to the heatmap
- canis publish -h
Publish daily hash
Usage: canis publish [OPTIONS]
Options:
-c, --config <CONFIG> Specify config file
--dbfile <DBFILE> Path to database file for digest
--date <DATE> Date to create daily hash [default: today]
--hashdir <HASHDIR> Directory to store daily hash files
--token <TOKEN> GitHub Personal Access Token
--repo <REPO> GitHub repository name to store daily hash files
-h, --help Print help
canis init
canis の設定を記載できる設定ファイルや自動起動のための設定ファイルを生成します.
ファイルの配置場所や設定項目の内容は,引数で指定できます.
また,引数で指定しない場合は init コマンド実行後に対話的に設定できます.
本コマンドで作成されるファイルは以下の3種類です.
- システム起動に必要な項目を記載する設定ファイル
- canis start を自動実行するための設定ファイル
- canis publish を自動で定期実行するための設定ファイル
以下ではそれぞれのファイルについて,OSごとのデフォルトの配置場所やファイル内容を示します.
- システムの起動に必要な項目を記載する設定ファイル
それぞれの OS について,デフォルトの配置場所は以下に設定しています.
- Linux:
/home/<user>/.config/canis/config.toml - Windows:
C:\Users\<user>\AppData\Roaming\canis\config\config.toml - MacOS:
/Users/<user>/Library/Application/canis/config.toml
ファイルの内容の例を以下に示します.
[basic_settings]
# Select the watcher implementation: notify or fuse
watcher = "notify"
# Specify the paths of files or directories to monitor
# When using FUSE, only the first path in this list will be monitored
targets = ["/watching/path/1/","/watching/path/2/"]
# Specify the path to the log file where digest will be stored
# Do not place the log file under any monitored path to avoid infinite loops
dbfile = "/path/to/dbfile"
# Specify the path to a local clone of the Git repository
# This repository is used to publish daily hash values
hashdir = "/path/to/local/gitrepository/"
- canis start を自動起動するための設定ファイル
Linux
デフォルトの配置場所は
/home/<user>/.config/systemd/user/canis.service
に設定しています.
ファイルの内容の例を以下に示します.
[Unit]
Description=canis
[Service]
Type=simple
ExecStart = /home/user/bin/canis start --config /home/user/.config/canis/config.toml
Restart=always
[Install]
WantedBy=default.target
Windows
デフォルトの配置場所は
C:\Users\<user>\AppData\Roaming\canis\config\canis.xml
に設定しています.
ファイルの内容の例を以下に示します.
<service>
<id>canis</id>
<name>canis</name>
<description>canis</description>
<executable>C:\Users\user\bin\canis.exe</executable>
<arguments>start --config C:\Users\user\AppData\Roaming\canis\config\config.toml</arguments>
<serviceaccount>
<username>{domain}\{username}</username>
<password>passwd</password>
<allowservicelogon>true</allowservicelogon>
</serviceaccount>
</service>
MacOS
デフォルトの配置場所は
~/Library/LaunchAgents/com.canis.start.plist
に設定しています.
ファイルの内容の例を以下に示します.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.{username}.canis</string>
<key>ProgramArguments</key>
<array>
<string>/Users/user/bin/canis</string>
<string>start</string>
<string>--config</string>
<string>/Users/user/Library/Application/canis/config.toml</string>
</array>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/user/Library/Logs/canis.log</string>
<key>StandardErrorPath</key>
<string>/Users/user/Library/Logs/canis.err</string>
</dict>
</plist>
- canis publish を定期実行するための設定ファイル
Linux
canis publish を自動公開するためには,service ファイルと timer ファイルの 2ファイルを使用します. service ファイルでは起動処理を定義し,timer ファイルはその実行タイミングを定義します.
各ファイルのデフォルトの配置場所は
- timer:
/home/<user>/.config/systemd/user/canis-publish.timer - service:
/home/<user>/.config/systemd/user/canis-publish.service
に設定しています.
まず,timer ファイルの内容の例を以下に示します.
[Unit]
Description=Exec canis publish daily
[Timer]
OnCalendar=*-*-* {schedule}
Persistent=true
Unit=/home/user/.config/systemd/user/canis-publish.service
[Install]
WantedBy=timers.target
また,service ファイルの内容の例を以下に示します.
[Unit]
Description=canis publish
[Service]
Type=oneshot
ExecStart=/home/user/bin/canis publish --date {date} --config /home/user/.config/canis/config.toml
Windows
デフォルトの配置場所は
C:\Users\<user>\AppData\Roaming\canis\config\canis-publish.xml
に設定しています.
ファイルの内容の例を以下に示します.
<service>
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<Triggers>
<CalendarTrigger>
<StartBoundary>{today}T{schedule}:00</StartBoundary>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Actions>
<Exec>
<Command>C:\Users\user\bin\canis.exe</Command>
<Arguments>publish --date {date} --config C:\Users\user\AppData\Roaming\canis\config\config.toml</Arguments>
</Exec>
</Actions>
<Settings>
<Enabled>true</Enabled>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
</Settings>
</Task>
MacOS
デフォルトの配置場所は
~/Library/LaunchAgents/com.canis.publish.plist
に設定しています.
ファイルの内容の例を以下に示します.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.{username}.canis.publish</string>
<!-- 実行コマンド -->
<key>ProgramArguments</key>
<array>
<string>/Users/user/bin/canis</string>
<string>publish</string>
<string>--date</string>
<string>{date}</string>
<string>--config</string>
<string>/Users/user/Library/Application/canis/config.toml</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key> <integer>{hour}</integer>
<key>Minute</key> <integer>{minute}</integer>
</dict>
<key>StandardOutPath</key>
<string>/Users/user/Library/Logs/canis.log</string>
<key>StandardErrorPath</key>
<string>/Users/user/Library/Logs/canis.err</string>
</dict>
</plist>
canis によって保存した証跡の検索や証跡を活用した機能を実行します.
証跡を保存しているデータベースの配置場所や検索,表示のための設定項目は引数で指定できます.
本コマンドでは,オプションによって以下の3種類の情報の検索,出力ができます.
- 証跡に関する情報の検索機能
- ハッシュ値を軸にしたファイルの操作履歴の出力機能
- ディレクトリやファイルの操作頻度を示すヒートマップ出力機能
以下では,それぞれの機能について,コマンド例および出力例を示します.
- 証跡に関する情報の検索機能
ファイルパスまたはハッシュ値を指定し,対応する証跡情報を検索・表示します. ファイルパスを指定した場合は,ファイルの内容から算出したハッシュ値を用いて検索します.
コマンドの形式を以下に示します.
canis info {-p <PATH> | -H <HASH>}
ファイルパスを指定する場合のコマンド例を以下に示します.
canis info -p /home/user/research/paper.tex
検索結果の出力例を以下に示します.
検索結果:
存在した日時: 2026-10-20 10:50:30
ファイルパス: file:///home/user/research/paper.tex
ハッシュ値: b1c4be21020f95e22f45f4c8aca489a0efe4fd1ab8203af7d1b2cd88b9f168dc
- ハッシュ値を軸にしたファイルの操作履歴の出力機能
ファイルパスまたはハッシュ値を指定し,ハッシュ値に対応するファイルについての操作履歴を出力します. ファイルパスを指定した場合は,ファイルの内容から算出したハッシュ値を用いて検索します. 移動などによって所在がわからなくなったファイルについて,現在の配置場所を探す際に役立ちます.
コマンドの形式を以下に示します.
canis info --trace {-p <PATH> | -H <HASH>}
ファイルパスを指定する場合のコマンド例を以下に示します.
canis info --trace -p /home/user/research/paper.tex
操作履歴の出力例を以下に示します.
W 2026-04-15T10:00:00.000000 file:///home/user/paper/ipsj/data.log
M 2026-05-20T14:30:00.000000 file:///home/user/submitted/ipsj/data.log (from: file:///home/user/paper/ipsj/data.log)
M 2026-07-10T09:15:00.000000 file:///home/user/old/ipsj/data.log (from: file:///home/user/submitted/ipsj/data.log)
操作種別は以下の通りです.
- 作成 : C
- 更新 : W
- 移動 : M
- ディレクトリやファイルの操作頻度を示すヒートマップ出力機能
ディレクトリのパスを指定し,ディレクトリやファイルの操作頻度を期間ごとにヒートマップとして出力します. 作成や利用から時間が経ち,所在がわからなくなったファイルについて配置場所を探す際に役立ちます.
コマンドの形式を以下に示します.
canis info --heatmap -p <PATH> [--explain <EXPLAIN>]
explain オプションで説明情報を記述した JSON ファイルを指定すると,その情報をヒートマップに付加できます.
この JSON ファイルは,LLM を利用して生成できます.
実際のコマンド例を以下に示します.
canis info --heatmap -p /home/user/research --explain /home/user/explain.json
ファイル操作監視システムとして FUSE を利用することで,より詳細な操作を取得できるようになります. FUSE による監視機能を利用できるようにするために手元でビルドする必要があります.
- Linux
- MacOS
ビルドの手順を以下に示します.
- 本リポジトリを clone します
$ git clone git@github.com:nomlab/canis-rs.git
- FUSE に関する機能を含めてビルドします
以下のコマンドで FUSE に関わる機能を含めてビルドを実行できます.
$ cargo build --release --features fuse
canis を計算機起動時に自動で起動するように設定することで,ユーザが毎回起動せずともファイルアクセス監視が開始できます.
-
Linux
- systemd
-
Windows
- WinSW 3.x
- Windows はバックグラウンドで常に動かすプログラムを「サービス」という形で管理します. しかし, canis は元々サービス化される仕様になっていないため,WinSW を利用して Windows サービスとして登録・起動・停止・監視できるようにします.
- WinSW 3.x
-
macOS
- launchd
Linux
- 自動起動設定用のファイルを作成します
以下のコマンドでユニットファイルが作成できます.
canis init --start /path/to/unitfile --binary /path/to/canis/binary
それぞれの引数は以下の項目を設定しています.
start: ユニットファイルのパスbinary: canis のバイナリの配置場所
- systemd の設定を再読み込みしてください
1 で作成した自動起動用の設定ファイルを読み込む必要があるため,以下のコマンドを実行します.
systemctl --user daemon-reload
- canis start が自動起動するよう設定します
以下のコマンドでシステム起動時に canis が自動起動するようになります.
systemctl --user enable canis.service
systemctl --user start canis.service
Windows
- WinSW 3.x をインストールしてください
以下のサイトからインストールできます.
https://github.com/winsw/winsw
以下のコマンドでヘルプが表示されればインストールできています.
$ WinSW-x64.exe -h
- 自動起動設定用のファイルを作成します.
以下のコマンドによって WinSW 用の設定ファイルが作成できます.
$ canis.exe init --start /path/to/unitfile --binary /path/to/canis/binary
それぞれの引数は以下の項目を設定しています.
start: WinSW 用の設定ファイルの配置場所binary: canis のバイナリの配置場所
- 作成された xml ファイルの password 欄にパスワードを入力します
ユーザのサービスとして起動するためには,ユーザ名およびパスワードを記載する必要があります. そのため,作成された xml ファイルにパスワードを記入してください.以下にパスワードを記載する例を示します.
<password>passwd</password>
- canis をサービスとして登録します
作成した設定ファイルを利用して, canis をユーザのサービスとして登録します. 以下に登録するためのコマンド例を示します.ここでは,設定ファイルがデフォルトの配置場所にある例を示しています.
$ WinSW-x64.exe install C:\Users\<user>\AppData\Roaming\canis\config\canis.xml
- canis のサービスを実行します
登録したサービスを実行し, canis を起動します. 以下にサービスを実行するためのコマンド例を示します.3と同様に設定ファイルがデフォルトの配置場所にある例を示しています.
$ WinSW-x64.exe start C:\Users\<user>\AppData\Roaming\canis\config\canis.xml
MacOS
- 自動起動設定用のファイルを作成します
以下のコマンドで自動起動用の設定ファイルが作成できます.
canis init --start /path/to/unitfile --binary /path/to/canis/binary --daemon_out /path/to/stdout/logfile --daemon_err /path/to/stderr/logfile
それぞれの引数は以下の項目を設定しています.
start: ユニットファイルの配置場所binary: canis のバイナリの配置場所daemon_out: 標準出力用のログファイルの配置場所daemon_err: 標準エラー出力用のログファイルの配置場所
- canis start が自動起動するよう設定します
以下のコマンドで自動起動用の設定を読み込み,自動起動を有効化します.
launchctl load ~/Library/LaunchAgents/com.canis.start.plist
Linux
- 定期実行設定用のファイルを作成します
以下のコマンドでユニットファイルが作成できます.
canis init --publish /path/to/unitfile --binary /path/to/canis/binary
それぞれの引数は以下の項目を設定しています.
publish: timer ファイルのパスbinary: canis のバイナリの配置場所
- systemd の設定を再読み込みしてください
1 で作成した定期実行用の設定ファイルを読み込む必要があるため,以下のコマンドを実行します.
systemctl --user daemon-reload
- canis publish が定期実行されるよう設定します
以下のコマンドで指定した時刻に証跡公開が自動で実行されるようになります.
systemctl --user enable canis-publish.service
systemctl --user start canis-publish.service
Windows
- 証跡公開の自動定期実行用のファイルを作成します.
以下のコマンドによって定期実行用の設定 xml ファイルが作成できます.
canis init --publish /path/to/unitfile --binary /path/to/canis/binary
それぞれの引数は以下の項目を設定しています.
publish: 定期実行設定ファイルのパスbinary: canis のバイナリの配置場所
- 定期実行のためのタスク定義をスケジューラに登録します
作成した設定ファイルを利用して,自動定期実行をスケジューラに登録します. 以下に登録するためのコマンド例を示します.ここでは,設定ファイルがデフォルトの配置場所にある例を示しています.
$ schtasks /create /tn "CanisDailyPublish" /xml "C:\Users\<user>\AppData\Roaming\canis\config\canis-publish.xml"
以下のコマンドで登録したタスクの情報が表示されれば完了しています.
$ schtasks /query /tn "CanisDailyPublish"
MacOS
- 証跡公開の自動定期実行用のファイルを作成します.
以下のコマンドで自動起動用の設定ファイルが作成できます.
canis init --publish /path/to/unitfile --binary /path/to/canis/binary --daemon_out /path/to/stdout/logfile --daemon_err /path/to/stderr/logfile
それぞれの引数は以下の項目を設定しています.
publish: 定期実行設定ファイルのパスbinary: canis のバイナリの配置場所daemon_out: 標準出力用のログファイルの配置場所daemon_err: 標準エラー出力用のログファイルの配置場所
- 証跡公開が自動で定期実行されるよう設定します
以下のコマンドで自動起動用の設定を読み込み,自動起動を有効化します.
launchctl load ~/Library/LaunchAgents/com.canis.publish.plist
- 本システムの証跡を収集する機能は,以下の要素から構成されている.
- File Access Monitor: ユーザのファイル操作を監視し,証跡を作成するべき操作を取得した場合はレベル変換部にファイル操作情報を通知する
- Level Converter: ファイルアクセス監視部と証跡作成部間のアダプタ.取得したファイル操作情報を証跡作成部が対応している操作の情報に変換し,通知する
- Digest Generator: 取得したファイル操作情報に基づいて証跡を作成し,証跡保存データベースに保存する
- Digest Database: システムが作成した証跡を保存するデータベース
- Hash Generator: ユーザが指定したファイルのハッシュ値を作成する
- Hash Searcher: ユーザが指定したファイルのハッシュ値が保存されているか検索し,結果を表示する
- Daily Hash Generator: 1日に1回その日の証跡一覧から日時ハッシュを取得し,外部に公開する
- MCP Host: ユーザからの説明作成依頼を LLM に送信する.また,LLM から tool 利用に必要な情報を取得し,MCP クライアントから tool の実行結果を取得する.
- MCP Client: MCP ホストから tool 利用に必要な情報を取得し,情報に基づいて必要な tool を呼び出す.呼び出した tool の動作結果を取得し,MCP ホストに送信する.
- MCP Server: MCP クライアントから取得した tool 利用情報をもとに対応した tool を実行する.実行結果は MCP クライアントに送信する.
- LLM: MCP ホストから説明作成依頼を取得し,説明を作成する.また,説明作成に必要な情報を取得するために tool に必要な情報を MCP ホストに送信する.
File Access Monitor から Level Converter および, Level Converter から Digest Generator のインタフェースとして,以下の2種類の情報を1イベントとしています.
- ファイル操作に関する情報
- ファイル操作時のプロセスに関する情報
このうち,ファイル操作に関しては以下のようなレベルに区別しています.
- レベル1
- create(uri, time)
- modify(uri, time)
- レベル2
- move(src_uri, dst_uri, time)
- レベル3
- open(uri, pid, time)
- write(uri, content, time)
- append(uri, content, time) また,プロセス情報については FUSE を利用して監視している際は取得できますが,notify で監視している場合は取得できません.
