外部連携・パッケージ

PLUGIN Event — 2.0M(macOS) 仕様書(UKADOC準拠・完全版)

開発版の資料です。仕様・設計の記述には実装予定や過去の記述を含みます。現在の対応範囲は対応状況・既知の問題と合わせて確認してください。配布中のアプリへの収録状況はリリースノートをご確認ください。 対応状況 · 既知の問題

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

ライセンス · 出典一覧 · 資料一覧に戻る