Status: Draft / Ourin (macOS 10.15+ / Universal 2: arm64+x86_64)
Updated: 2025-07-27 (JST)
互換方針: UKADOC「PLUGIN Eventリスト」のイベントID/意味/Reference順を踏襲。OS依存値のみ macOS ネイティブへ置換。
文字コード: 既定 UTF‑8(互換で CP932/SJIS 受理→内部 UTF‑8 正規化)。version 応答の Charset: 指定があれば切り替え。
改行: CRLF を厳守(受理)。内部処理は LF 正規化可。
用語: 「バイト値1区切り」= 0x01 (SOH) 区切り。
1. 本仕様の目的
- Windows 固有の要素(
HWND/パス表現)を macOS ネイティブに差し替えつつ、語彙と意味は互換のままプラグインにイベントを通知する。
2. 通信・符号化・改行(PLUGIN/2.0 準拠)
- リクエスト/レスポンスは PLUGIN/2.0 のヘッダ書式に準拠(
GET/NOTIFY PLUGIN/2.0、ID:、ReferenceN:、Charset:等)。 - 改行は CR+LF。
Charset:指定があればそれに従う(既定: 2.0M では UTF‑8)。
3. macOS置換(M‑Diff)
- ウィンドウ識別:
HWND(Windows固有)はCGWindowIDの列に置換。Ourin の NSWindow からはwindowNumberを参照し Window Server 番号として扱い、外部照会や検証はCGWindowListCopyWindowInfoのkCGWindowNumberを用いる。 - パス:Windows パスは POSIX 絶対パスまたは
file://URL に置換(相対はプラグイン/ゴースト基点から解決)。 - 区切り:リストは 0x01 区切り(原典の「バイト値1区切り」)。
4. イベント一覧(完全)
4.1 version
- 時期: プラグインのロード直後。
- 応答:
Value:にプラグインのバージョン文字列。任意でCharset: <enc>を付けると以後のリクエストに適用。 - 備考: 本イベントのみ応答様式が他と異なる。
4.2 installedplugin [NOTIFY]
- 意味: インストール済プラグインの列挙。
- Ref*: 0x01 区切り
プラグイン名,プラグインID。
4.3 installedghostname [NOTIFY]
- Ref0: 0x01 区切りのゴースト名リスト。
- Ref1: 0x01 区切りの
\0名リスト。 - Ref2: 0x01 区切りの
\1名リスト。
4.4 installedballoonname [NOTIFY]
- Ref0: 0x01 区切りのバルーン名リスト。
4.5 ghostpathlist [NOTIFY]
- Ref: 読み込んでいる ゴーストフォルダのフルパス(POSIX/
file://*)。複数ある場合はReference1..。
4.6 balloonpathlist [NOTIFY]
- Ref0: 読み込んでいる バルーンフォルダのフルパス(POSIX/
file://)。
4.7 headlinepathlist [NOTIFY]
- Ref: 読み込んでいる ヘッドラインフォルダのフルパス*(POSIX/
file://)。
4.8 pluginpathlist [NOTIFY]
- Ref: 読み込んでいる プラグインフォルダのフルパス*(POSIX/
file://)。
4.9 OnSecondChange
- 意味: 秒間隔の通知。
- 間隔:
descript.txtのsecondchangeintervalに従う(秒)。
4.10 OnOtherGhostTalk
- Ref0: ゴースト名。
- Ref1: 本体側名。
- Ref2: 原因列挙(
break,communicate,sstp-send,owned,remote,notranslate,plugin-script,plugin-eventの カンマ区切り)。 - Ref3: 発話イベント ID。
- Ref4: 発話スクリプト。
- Ref5: 0x01 区切りで、ゴーストに渡された Reference 群。
4.11 OnGhostBoot
- Ref0: 起動したゴーストの各キャラクタウィンドウの
CGWindowID列(未構築は0)。 - Ref1: ゴースト名。
- Ref2: 現在のシェル名。
- Ref3: ゴースト ID(Owned SSTP と同等)。
- Ref4: ゴーストのフルパス(POSIX/
file://)。
4.12 OnGhostExit [NOTIFY]
- Ref0: 終了したゴーストの
CGWindowID列(未構築は0)。 - Ref1..4: 名称/シェル名/ID/フルパス(POSIX/
file://)。
4.13 OnGhostInfoUpdate [NOTIFY]
- Ref0: 変更があったゴーストの
CGWindowID列(未構築は0)。 - Ref1..4: 名称/シェル名/ID/フルパス(POSIX/
file://)。
4.14 OnMenuExec
- 意味: オーナードローメニューからプラグインが実行された。
- Ref0: 呼び出し元ゴーストの
CGWindowID列。 - Ref1..4: 名称/シェル名/ID/フルパス(POSIX/
file://)。
4.15 OnInstallComplete
- Ref0: 0x01 区切りの インストールタイプ。
- Ref1: 0x01 区切りの 名前。
- Ref2: 0x01 区切りの フルパス(POSIX/
file://)。
4.16 OnChoiceSelect(Ex) / OnAnchorSelect(Ex) / \q 任意名
- 意味: 選択肢/アンカー選択時の SHIORI Event 横流し。
- Ref*: 発生した SHIORI Event の Reference 群(そのまま)。
4.17 \![raiseplugin] / \![notifyplugin] 任意名
- 意味: さくらスクリプトの実行でプラグインに通知(
notifypluginは [NOTIFY])。 - Ref*: 指定された任意引数。
5. 応答・戻り値ポリシー
- [NOTIFY]: スクリプト返却は 無視。
PLUGIN/2.0 204 No Contentでよい。 - 無印:
GETの場合はPLUGIN/2.0 200 OKでScript:等を返せる(Target/Event/Reference可)。
6. 例: フレーミング
GET PLUGIN/2.0
ID: OnGhostBoot
Charset: UTF-8
Sender: Ourin
Reference0: 12345,67890
Reference1: 里々さん
Reference2: default.shell
Reference3: ourin-ghost-uuid
Reference4: [local-path] Support/Ourin/Ghosts/Satori
###
PLUGIN/2.0 200 OK
Script: \0\s[0]OK\e
7. 変更履歴
- 2025-07-27: 初版(完全版、macOS置換つき)。
出典と編集について
Ourin / Furin Lab・contributors。文書はCC BY-SA 4.0(第三者の個別表記を除く)。Web版は見出し・リンクの整備とローカルパスの一般化を行っています。更新基準日: 2026-10-30。
元資料: docs/PLUGIN_EVENT_2.0M_SPEC_FULL_ja-jp.md
ソース SHA-256: ad93662e548ff552dd304d5c6219d69b6d497929f041333010e157d129b75499