ukagaka-doc-mcp 0.2.7 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/data/index.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-08-24T04:08:57.881Z",
3
+ "generatedAt": "2026-08-31T09:48:51.964Z",
4
4
  "entries": [
5
5
  {
6
6
  "id": "ukadoc:descript_balloon:charset_2c_6587_5b57_30b3_30fc_30c9:1",
@@ -191,7 +191,7 @@
191
191
  "title": "vertical,0/1",
192
192
  "source": "ukadoc",
193
193
  "category": "descript",
194
- "content": "vertical,0/1\n1を指定すると、このバルーンのテキストを日本語縦書き(上から下へ字を送り、右から左へ行を送る)で表示する。\n\t\t\t\t\t縦書きにすると、descript.txtの座標指定の意味が以下のように変わる。座標自体は今までどおりバルーン画像の左上を原点として書けばよい。\n\t\t\t\t\t\n\t\t\t\t\t\torigin.x … 1列目の右端。ここから左へ向かって列が進む。通常は指定せずvalidrectの定義に任せる場合が多い。\n\t\t\t\t\t\torigin.y … 字送りの開始位置(1文字目の上端)。通常は指定せずvalidrectの定義に任せる場合が多い。\n\t\t\t\t\t\tvalidrect … 変更なし。テキストを描画してよい範囲。\n\t\t\t\t\t\t折り返しはwordwrappoint.yで指定する。wordwrappoint.xは無視される。\n\t\t\t\t\t\n\t\t\t\t\tフォントは指定されたフォント名の縦書き用異体(フォント名の頭に@が付いたもの)が自動的に使われる。\n\t\t\t\t\t指定されたフォントに縦書き用異体が存在しない場合(バルーンフォルダに置いたフォントファイルや欧文フォントなど)は、環境の標準ゴシックの縦書き用異体に自動的に差し替わる。\n\t\t\t\t\tまた、以下の項目は「画面上の向き」ではなく「文字の送り方向を基準にした向き」で働くようになるので注意すること。\n\t\t\t\t\t\n\t\t\t\t\t\t\\f[align,~]は列内での字寄せ(left=上寄せ、right=下寄せ)、\\f[valign,~]は行の厚み方向の寄せ(top=右寄せ、bottom=左寄せ)になる。\n\t\t\t\t\t\tarrow0(スクロール上)・arrow1(スクロール下)は、意味としてはそれぞれ右・左へのスクロールになる。画像と位置はバルーン側で用意すること。\n\t\t\t\t\t\t下線(font.underlineや\\f[underline,true]、アンカーの下線)は列の右側に引かれる。\n\t\t\t\t\t\n\t\t\t\t\t制限として、SSTPマーカーの送信元表示とネットワーク更新の進捗表示も縦書きで描画される。入力ボックス(communicatebox)は横書きのまま。\n\t\t\t\t\tバルーンの各サーフェスごとのballoon(s/k)*s.txtでも指定できるが、同一バルーン内でサーフェスごとに縦書き・横書きを切り替えると、切り替え前に表示していた文章のレイアウトが崩れる。\n\t\t\t\t\t0(横書き)\n\t\t\t\t\t\n\t\t\t\t\t\t 2.8.80",
194
+ "content": "vertical,0/1\n1を指定すると、このバルーンのテキストを日本語縦書き(上から下へ字を送り、右から左へ行を送る)で表示する。\n\t\t\t\t\t縦書きにすると、descript.txtの座標指定の意味が以下のように変わる。座標自体は今までどおりバルーン画像の左上を原点として書けばよい。\n\t\t\t\t\t\n\t\t\t\t\t\torigin.x … 1列目の右端。ここから左へ向かって列が進む。通常は指定せずvalidrectの定義に任せる場合が多い。\n\t\t\t\t\t\torigin.y … 字送りの開始位置(1文字目の上端)。通常は指定せずvalidrectの定義に任せる場合が多い。\n\t\t\t\t\t\tvalidrect … 変更なし。テキストを描画してよい範囲。\n\t\t\t\t\t\t折り返しはwordwrappoint.yで指定する。wordwrappoint.xは無視される。\n\t\t\t\t\t\tSSTPメッセージの表示終了位置はsstpmessage.ybで指定する。sstpmessage.xrは無視される。\n\t\t\t\t\t\tnumber.y(=number.yb) … カウンタ数値の下端。ここから上へ向かって数値が伸びる。number.x(=number.xr)は数値が置かれる列の位置になる。\n\t\t\t\t\t\n\t\t\t\t\torigin.xやnumber.xのように右端を基準にしたい座標は、*1のルールどおりマイナス値で書ける(例:origin.x,-14 ならバルーン画像の右端から14ピクセル)。\n\t\t\t\t\tフォントは指定されたフォント名の縦書き用異体(フォント名の頭に@が付いたもの)が自動的に使われる。\n\t\t\t\t\t指定されたフォントに縦書き用異体が存在しない場合(バルーンフォルダに置いたフォントファイルや欧文フォントなど)は、環境の標準ゴシックの縦書き用異体に自動的に差し替わる。\n\t\t\t\t\tまた、以下の項目は「画面上の向き」ではなく「文字の送り方向を基準にした向き」で働くようになるので注意すること。\n\t\t\t\t\t\n\t\t\t\t\t\t\\f[align,~]は列内での字寄せ(left=上寄せ、right=下寄せ)、\\f[valign,~]は行の厚み方向の寄せ(top=右寄せ、bottom=左寄せ)になる。\n\t\t\t\t\t\tarrow0(スクロール上)・arrow1(スクロール下)は、意味としてはそれぞれ右・左へのスクロールになる。画像と位置はバルーン側で用意すること。\n\t\t\t\t\t\t下線(font.underlineや\\f[underline,true]、アンカーの下線)は列の右側に引かれる。\n\t\t\t\t\t\n\t\t\t\t\t制限として、SSTPマーカーの送信元表示とネットワーク更新の進捗表示も縦書きで描画される。入力ボックス(communicatebox)は横書きのまま。\n\t\t\t\t\tバルーンの各サーフェスごとのballoon(s/k)*s.txtでも指定できるが、同一バルーン内でサーフェスごとに縦書き・横書きを切り替えると、切り替え前に表示していた文章のレイアウトが崩れる。\n\t\t\t\t\t0(横書き)\n\t\t\t\t\t\n\t\t\t\t\t\t 2.8.80",
195
195
  "url": "https://ssp.shillest.net/ukadoc/manual/descript_balloon.html#vertical_2c0_2f1:1"
196
196
  },
197
197
  {
@@ -943,9 +943,17 @@
943
943
  "title": "sstpmessage.xr,座標 *1",
944
944
  "source": "ukadoc",
945
945
  "category": "descript",
946
- "content": "sstpmessage.xr,座標 *1\nSSTPメッセージの表示終了位置X座標。左起点。(※負値を指定すると右起点)\n\t\t\t\t\t不明",
946
+ "content": "sstpmessage.xr,座標 *1\nSSTPメッセージの表示終了位置X座標。左起点。(※負値を指定すると右起点)\n\t\t\t\t\t横書き(verticalが0)のときのみ使用される。縦書きではsstpmessage.ybを使うこと。\n\t\t\t\t\t不明",
947
947
  "url": "https://ssp.shillest.net/ukadoc/manual/descript_balloon.html#sstpmessage.xr_2c_5ea7_6a19_20_2a1:1"
948
948
  },
949
+ {
950
+ "id": "ukadoc:descript_balloon:sstpmessage.yb_2c_5ea7_6a19_20_2a1:1",
951
+ "title": "sstpmessage.yb,座標 *1",
952
+ "source": "ukadoc",
953
+ "category": "descript",
954
+ "content": "sstpmessage.yb,座標 *1\nSSTPメッセージの表示終了位置Y座標。上起点。(※負値を指定すると下起点)\n\t\t\t\t\t縦書き(verticalが1)のときのみ使用され、横書きでは無視される。縦書きでは文字が上から下へ送られるため、表示終了位置はsstpmessage.xrのX座標ではなくY座標で指定する。\n\t\t\t\t\t不明\n\t\t\t\t\t\n\t\t\t\t\t\t 2.8.83",
955
+ "url": "https://ssp.shillest.net/ukadoc/manual/descript_balloon.html#sstpmessage.yb_2c_5ea7_6a19_20_2a1:1"
956
+ },
949
957
  {
950
958
  "id": "ukadoc:descript_balloon:onlinemarker.interval_2c_5f85_6a5f_6642_9593:1",
951
959
  "title": "onlinemarker.interval,待機時間",
@@ -1050,12 +1058,20 @@
1050
1058
  "content": "number.font.color.b,数値\nカウンタ数値のフォント色青(0~255)\n\t\t\t\t\t0",
1051
1059
  "url": "https://ssp.shillest.net/ukadoc/manual/descript_balloon.html#number.font.color.b_2c_6570_5024:1"
1052
1060
  },
1061
+ {
1062
+ "id": "ukadoc:descript_balloon:number.x_2c_5ea7_6a19_20_2a1:1",
1063
+ "title": "number.x,座標 *1",
1064
+ "source": "ukadoc",
1065
+ "category": "descript",
1066
+ "content": "number.x,座標 *1\nカウンタ数値のX座標。number.xrと同じもので、左起点で書きたい場合のための別名。\n\t\t\t\t\t横書き(verticalが0)では数値の右端(=数値が伸びていく先の端)を指す。縦書きでは数値が置かれる列の位置になり、数値が伸びていく先の端を決めるのはnumber.ybのほうになる。\n\t\t\t\t\t不明\n\t\t\t\t\t\n\t\t\t\t\t\t 2.8.83",
1067
+ "url": "https://ssp.shillest.net/ukadoc/manual/descript_balloon.html#number.x_2c_5ea7_6a19_20_2a1:1"
1068
+ },
1053
1069
  {
1054
1070
  "id": "ukadoc:descript_balloon:number.xr_2c_5ea7_6a19_20_2a1:1",
1055
1071
  "title": "number.xr,座標 *1",
1056
1072
  "source": "ukadoc",
1057
1073
  "category": "descript",
1058
- "content": "number.xr,座標 *1\nカウンタ数値のX座標。右起点。\n\t\t\t\t\t不明",
1074
+ "content": "number.xr,座標 *1\nカウンタ数値のX座標。右起点。number.xと同じもの。\n\t\t\t\t\t不明",
1059
1075
  "url": "https://ssp.shillest.net/ukadoc/manual/descript_balloon.html#number.xr_2c_5ea7_6a19_20_2a1:1"
1060
1076
  },
1061
1077
  {
@@ -1063,9 +1079,17 @@
1063
1079
  "title": "number.y,座標 *1",
1064
1080
  "source": "ukadoc",
1065
1081
  "category": "descript",
1066
- "content": "number.y,座標 *1\nカウンタ数値のY座標。\n\t\t\t\t\t不明",
1082
+ "content": "number.y,座標 *1\nカウンタ数値のY座標。\n\t\t\t\t\t横書き(verticalが0)では数値の上端を指す。縦書きでは数値の下端になる(縦書きの数値は下端を基準に上へ向かって伸びる)。\n\t\t\t\t\t不明",
1067
1083
  "url": "https://ssp.shillest.net/ukadoc/manual/descript_balloon.html#number.y_2c_5ea7_6a19_20_2a1:1"
1068
1084
  },
1085
+ {
1086
+ "id": "ukadoc:descript_balloon:number.yb_2c_5ea7_6a19_20_2a1:1",
1087
+ "title": "number.yb,座標 *1",
1088
+ "source": "ukadoc",
1089
+ "category": "descript",
1090
+ "content": "number.yb,座標 *1\nカウンタ数値のY座標。下起点。number.yと同じもので、縦書きで下端が基準になることを明示したい場合のための別名。\n\t\t\t\t\t不明\n\t\t\t\t\t\n\t\t\t\t\t\t 2.8.83",
1091
+ "url": "https://ssp.shillest.net/ukadoc/manual/descript_balloon.html#number.yb_2c_5ea7_6a19_20_2a1:1"
1092
+ },
1069
1093
  {
1070
1094
  "id": "ukadoc:descript_balloon:arrow0.x_2c_5ea7_6a19_20_2a1:1",
1071
1095
  "title": "arrow0.x,座標 *1",
@@ -5079,7 +5103,7 @@
5079
5103
  "title": "currentghost.balloon.scope(ID).validwidth",
5080
5104
  "source": "ukadoc",
5081
5105
  "category": "protocol",
5082
- "content": "currentghost.balloon.scope(ID).validwidth\n現在のバルーンの文字描画に使える幅。baseposに関係なく描画範囲全てを示す。",
5106
+ "content": "currentghost.balloon.scope(ID).validwidth\n現在のバルーンの文字描画に使える幅。baseposに関係なく描画範囲全てを示す。\n\t\t\t\t\t縦書きの場合は列が並ぶ方向(右から左)に使える幅で、スクロール後の描画幅と一致する。",
5083
5107
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.validwidth:1"
5084
5108
  },
5085
5109
  {
@@ -5087,7 +5111,7 @@
5087
5111
  "title": "currentghost.balloon.scope(ID).validwidth.initial",
5088
5112
  "source": "ukadoc",
5089
5113
  "category": "protocol",
5090
- "content": "currentghost.balloon.scope(ID).validwidth.initial\n現在のバルーンの文字描画に使える幅(basepos.x=文字開始点を考慮したもの)\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5114
+ "content": "currentghost.balloon.scope(ID).validwidth.initial\n現在のバルーンの文字描画に使える幅(basepos.x=文字開始点を考慮したもの)\n\t\t\t\t\t縦書きの場合は列が並ぶ方向に使える幅で、1列目の開始位置(basepos)を考慮したもの。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5091
5115
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.validwidth.initial:1"
5092
5116
  },
5093
5117
  {
@@ -5095,7 +5119,7 @@
5095
5119
  "title": "currentghost.balloon.scope(ID).validheight",
5096
5120
  "source": "ukadoc",
5097
5121
  "category": "protocol",
5098
- "content": "currentghost.balloon.scope(ID).validheight\n現在のバルーンの文字描画に使える高さ。baseposに関係なく描画範囲全てを示す。スクロール後の描画高さと一致。",
5122
+ "content": "currentghost.balloon.scope(ID).validheight\n現在のバルーンの文字描画に使える高さ。baseposに関係なく描画範囲全てを示す。スクロール後の描画高さと一致。\n\t\t\t\t\t縦書きの場合は1列の長さ(=1列に書ける字送りの長さ)で、スクロールしても変化しない。",
5099
5123
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.validheight:1"
5100
5124
  },
5101
5125
  {
@@ -5103,7 +5127,7 @@
5103
5127
  "title": "currentghost.balloon.scope(ID).validheight.initial",
5104
5128
  "source": "ukadoc",
5105
5129
  "category": "protocol",
5106
- "content": "currentghost.balloon.scope(ID).validheight.initial\n現在のバルーンの文字描画に使える高さ。basepos.y=文字開始点を考慮したもの。スクロール前の描画高さと一致。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5130
+ "content": "currentghost.balloon.scope(ID).validheight.initial\n現在のバルーンの文字描画に使える高さ。basepos.y=文字開始点を考慮したもの。スクロール前の描画高さと一致。\n\t\t\t\t\t縦書きの場合は1列の長さで、字送りの開始位置(basepos)を考慮したもの。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5107
5131
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.validheight.initial:1"
5108
5132
  },
5109
5133
  {
@@ -5111,7 +5135,7 @@
5111
5135
  "title": "currentghost.balloon.scope(ID).lines",
5112
5136
  "source": "ukadoc",
5113
5137
  "category": "protocol",
5114
- "content": "currentghost.balloon.scope(ID).lines\n現在のバルーンのおさまる行数の最大値。baseposに関係なく描画範囲全てを示す。スクロール後の表示行数と一致。",
5138
+ "content": "currentghost.balloon.scope(ID).lines\n現在のバルーンのおさまる行数の最大値。baseposに関係なく描画範囲全てを示す。スクロール後の表示行数と一致。\n\t\t\t\t\t縦書きの場合は「行」が「列」に読み替わり、おさまる列数になる。",
5115
5139
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.lines:1"
5116
5140
  },
5117
5141
  {
@@ -5119,7 +5143,7 @@
5119
5143
  "title": "currentghost.balloon.scope(ID).lines.initial",
5120
5144
  "source": "ukadoc",
5121
5145
  "category": "protocol",
5122
- "content": "currentghost.balloon.scope(ID).lines.initial\n現在のバルーンのおさまる行数の最大値。basepos.y=文字開始点を考慮したもの。スクロール前の表示行数と一致。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5146
+ "content": "currentghost.balloon.scope(ID).lines.initial\n現在のバルーンのおさまる行数の最大値。basepos.y=文字開始点を考慮したもの。スクロール前の表示行数と一致。\n\t\t\t\t\t縦書きの場合は「行」が「列」に読み替わり、おさまる列数になる。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5123
5147
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.lines.initial:1"
5124
5148
  },
5125
5149
  {
@@ -5127,7 +5151,7 @@
5127
5151
  "title": "currentghost.balloon.scope(ID).basepos.x",
5128
5152
  "source": "ukadoc",
5129
5153
  "category": "protocol",
5130
- "content": "currentghost.balloon.scope(ID).basepos.x\n現在のバルーンの文字描画開始点(X座標)。描画範囲の左端とは限らない。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5154
+ "content": "currentghost.balloon.scope(ID).basepos.x\n現在のバルーンの文字描画開始点(X座標)。描画範囲の左端とは限らない。バルーン画像の左上を原点とした座標。\n\t\t\t\t\t縦書きの場合は1列目の右端(=origin.x)を指す。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5131
5155
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.basepos.x:1"
5132
5156
  },
5133
5157
  {
@@ -5135,7 +5159,7 @@
5135
5159
  "title": "currentghost.balloon.scope(ID).basepos.y",
5136
5160
  "source": "ukadoc",
5137
5161
  "category": "protocol",
5138
- "content": "currentghost.balloon.scope(ID).basepos.y\n現在のバルーンの文字描画開始点(Y座標)。描画範囲の上端とは限らない。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5162
+ "content": "currentghost.balloon.scope(ID).basepos.y\n現在のバルーンの文字描画開始点(Y座標)。描画範囲の上端とは限らない。バルーン画像の左上を原点とした座標。\n\t\t\t\t\t縦書きの場合は字送りの開始位置(1文字目の上端。=origin.y)を指す。\n\t\t\t\t\t\n\t\t\t\t\t\t(2.3.72)",
5139
5163
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.basepos.y:1"
5140
5164
  },
5141
5165
  {
@@ -5167,7 +5191,7 @@
5167
5191
  "title": "currentghost.balloon.scope(ID).vertical",
5168
5192
  "source": "ukadoc",
5169
5193
  "category": "protocol",
5170
- "content": "currentghost.balloon.scope(ID).vertical\n現在のバルーンが縦書きかどうか。縦書きなら1、横書きなら0。\n\t\t\t\t\t縦書きの場合、validwidth・validheightlinesは「画面上の向き」ではなく「文字の送り方向を基準にした向き」の値になり、それぞれ「1列の長さ」「列が進む方向に使える幅」「収まる列数」を示す。\n\t\t\t\t\t文字数の計算などで縦書きと横書きを区別する必要がある場合に使う。\n\t\t\t\t\t\n\t\t\t\t\t\t 2.8.80",
5194
+ "content": "currentghost.balloon.scope(ID).vertical\n現在のバルーンが縦書きかどうか。縦書きなら1、横書きなら0。\n\t\t\t\t\tvalidwidth・validheightは縦書きでも名前どおり「画面上の向き」の値で、縦書きではvalidwidthが「列が進む方向に使える幅」、validheightが「1列の長さ」になる。linesは縦横どちらでも「収まる行数」(縦書きでは列数)を示す。\n\t\t\t\t\t1行(1列)に何文字入るかを計算したい場合は、縦書きならvalidheight、横書きならvalidwidthを見ること。この判別のためにこのプロパティを使う。\n\t\t\t\t\t※SSP 2.8.83で仕様変更。2.8.80では縦書き時のvalidwidth・validheightが「文字の送り方向を基準にした向き」の値だった。\n\t\t\t\t\t\n\t\t\t\t\t\t 2.8.80",
5171
5195
  "url": "https://ssp.shillest.net/ukadoc/manual/list_propertysystem.html#currentghost.balloon.scope_28ID_29.vertical:1"
5172
5196
  },
5173
5197
  {
@@ -6327,7 +6351,7 @@
6327
6351
  "title": "\\_l[x,y]",
6328
6352
  "source": "ukadoc",
6329
6353
  "category": "sakurascript",
6330
- "content": "\\_l[x,y]\n現スコープ側のカーソル位置をXYの座標に移動する。X,Yについては、以下の定義方法が可能である。\n\t\t\t\t\t\\_l実行直後には、トラブル防止のため行揃えが左揃えにリセットされる点に注意。必要に応じて再度指定しなおすこと。\n\t\t\t\t\t\n\t\t\t\t\t\t数値\n\t\t\t\t\t\tバルーンの文字描画範囲左上からのピクセル単位座標\n\t\t\t\t\t\t(省略)\n\t\t\t\t\t\t移動しない。X,Y両方ともに省略すると無効果。\n\t\t\t\t\t\tXXem\n\t\t\t\t\t\t後ろにemとつけると、文字高さを基準とした座標指定となる。1em=タグを書いた時点での文字高さ。小数点指定可能。\n\t\t\t\t\t\tXXlh\n\t\t\t\t\t\t後ろにlhとつけると、行高さを基準とした座標指定となる。1lh=1em+行間 小数点指定可能。\n\t\t\t\t\t\tXX%\n\t\t\t\t\t\t後ろに%とつけると、文字高さを基準とした座標指定となる。100%=タグを書いた時点での文字高さ。小数点指定可能。\n\t\t\t\t\t\t@XX\n\t\t\t\t\t\t現在の文字描画位置からの相対座標となる。Xがマイナス値だと左、Yがマイナス値だと上。emや%指定との共存可能。\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t記述例\n\t\t\t\t\t\t\t\\_l[30,5em]「座標X=30pixel、座標Y=5文字分高さ」に表示。\\_l[@-1650%,100]「座標X=最後の文字から文字高さ1650%分左、座標Y=100pixel」に表示。\\_l[,@-100]「座標X=変更なし、座標Y=最後の文字から100pixel上」に表示。",
6354
+ "content": "\\_l[x,y]\n現スコープ側のカーソル位置をXYの座標に移動する。X,Yについては、以下の定義方法が可能である。\n\t\t\t\t\t\\_l実行直後には、トラブル防止のため行揃えが左揃えにリセットされる点に注意。必要に応じて再度指定しなおすこと。\n\t\t\t\t\t\n\t\t\t\t\t\t数値\n\t\t\t\t\t\tバルーンの文字描画開始点(originの位置。横書きでは文字描画範囲の左上)からのピクセル単位座標\n\t\t\t\t\t\t(省略)\n\t\t\t\t\t\t移動しない。X,Y両方ともに省略すると無効果。\n\t\t\t\t\t\tcenterx / centery\n\t\t\t\t\t\tXにcenterx、Yにcenteryと書くと、バルーン画像の中央(幅/高さの半分)に移動する。これだけは文字描画開始点ではなくバルーン画像そのものが基準。\n\t\t\t\t\t\tXXem\n\t\t\t\t\t\t後ろにemとつけると、文字高さを基準とした座標指定となる。1em=タグを書いた時点での文字高さ。小数点指定可能。\n\t\t\t\t\t\tXXlh\n\t\t\t\t\t\t後ろにlhとつけると、行高さを基準とした座標指定となる。1lh=1em+行間 小数点指定可能。\n\t\t\t\t\t\tXX%\n\t\t\t\t\t\t後ろに%とつけると、文字高さを基準とした座標指定となる。100%=タグを書いた時点での文字高さ。小数点指定可能。\n\t\t\t\t\t\t@XX\n\t\t\t\t\t\t現在の文字描画位置からの相対座標となる。Xがマイナス値だと左、Yがマイナス値だと上。emや%指定との共存可能。\n\t\t\t\t\t\n\t\t\t\t\t縦書きバルーンでも座標軸はバルーン画像そのままで、Xは右方向・Yは下方向が正。\n\t\t\t\t\tただし文字描画開始点が文字描画範囲の右上になり、そこから左へ向かって列が進むため、次の列へ移るにはXにマイナス値を指定することになる。Yは字送り方向(上から下)なので横書きと同じ感覚で使える。\n\t\t\t\t\t例えば\\_l[@-1lh,0]で「1列ぶん左の列の先頭へ」(横書きの\\_l[0,@1lh]にあたる)、\\_l[,@1em]で「字送りを1文字ぶん進める」となる。\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t記述例\n\t\t\t\t\t\t\t\\_l[30,5em]「座標X=30pixel、座標Y=5文字分高さ」に表示。\\_l[@-1650%,100]「座標X=最後の文字から文字高さ1650%分左、座標Y=100pixel」に表示。\\_l[,@-100]「座標X=変更なし、座標Y=最後の文字から100pixel上」に表示。",
6331
6355
  "url": "https://ssp.shillest.net/ukadoc/manual/list_sakura_script.html#_5c_l_5bx_2cy_5d:1"
6332
6356
  },
6333
6357
  {
@@ -20314,6 +20338,86 @@
20314
20338
  "content": "更新履歴\n↑\nRポストと狛犬†\n2026/04/09\nMc172-2に差し替え\n2024/10/15\nMc170-1に差し替え\n2024/01/08\nMc169-3に差し替え\n2023/11/10\nMc168-2に差し替え\nリンク修正\n2023/05/06\nMc168-1に差し替え\nKillDangerousTag関数が消えていた問題を修正\n2022/05/18\nMc165-1に差し替え\nsatori_license.txtは名残で同梱されています。\n2022/01/07\nMc163-3に差し替え\n2021/10/19\nMc161-3に差し替え\n2018/12/31\nMc160-1に差し替え\n2018/04/24\nMc159-6に差し替え\n全体構成改修\n2014/10/26\ndeveloper_options.txt追加\nssu.dll用の記述追加\nrefrsh,1の削除\nセキュリティ強化:SP THX レゴキチ氏",
20315
20339
  "url": "https://soliton.sub.jp/satori/?%E3%83%9D%E3%82%B9%E3%83%88%E3%81%A8%E7%8B%9B%E7%8A%AC#qb3d230d"
20316
20340
  },
20341
+ {
20342
+ "id": "satori:ゴースト3分クッキング#cf95671f",
20343
+ "title": "ゴースト3分クッキング - ゴースト名・キャラクター名・インストールフォルダ名を考えておく",
20344
+ "source": "satori_wiki",
20345
+ "category": "satori_tips",
20346
+ "content": "ゴースト名・キャラクター名・インストールフォルダ名を考えておく\nフォルダ名はキャラの名前とかでOK、半角英数推奨です。\n他のゴーストが既にその名前を使用しているかチェックするにはここのサイトが便利。\n被り負けチェッカー\n↑",
20347
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#cf95671f"
20348
+ },
20349
+ {
20350
+ "id": "satori:ゴースト3分クッキング#de3c705b",
20351
+ "title": "ゴースト3分クッキング - キャラの絵(サーフェス)を用意する",
20352
+ "source": "satori_wiki",
20353
+ "category": "satori_tips",
20354
+ "content": "キャラの絵(サーフェス)を用意する\n最低2枚です、1キャラ構成でもサブキャラ側に1ドットの画像を用意します。\n絵を描いたらpngフォーマットで保存して下さい。\nファイル名はデフォルトでメインキャラがsurface0.pngとサブキャラがsurface10.pngです。\n(surface0000.png、surface0010.pngのように桁数を揃えても可)\nUKADOC シェルの作成 詳しい作成手順。公式仕様書。\n自分で絵を描く人は、↑の仕様書を読みながら作って下さい。一応クッキング法もあります。\n簡単なシェルの揚げ方\n自前で絵を用意できない人は、「フリーシェル」と呼ばれるキャラクターの絵を配布しているサイトを探す方法もあります。\nfreeshell Wiki* 配布しているサイトをまとめたwiki。\n↑",
20355
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#de3c705b"
20356
+ },
20357
+ {
20358
+ "id": "satori:ゴースト3分クッキング#s5da751c",
20359
+ "title": "ゴースト3分クッキング - テンプレゴーストをインストール",
20360
+ "source": "satori_wiki",
20361
+ "category": "satori_tips",
20362
+ "content": "テンプレゴーストをインストール\nテンプレゴーストとは、0からゴースト作るの面倒なので使えるとこはそのまま使っていいよって感じで改変自由って事で配布してるゴーストです。\nここではRポストと狛犬をインストールします。\nポストと狛犬\n↑",
20363
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#s5da751c"
20364
+ },
20365
+ {
20366
+ "id": "satori:ゴースト3分クッキング#ucccdf3b",
20367
+ "title": "ゴースト3分クッキング - テンプレゴーストを変更する",
20368
+ "source": "satori_wiki",
20369
+ "category": "satori_tips",
20370
+ "content": "テンプレゴーストを変更する\n↑",
20371
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#ucccdf3b"
20372
+ },
20373
+ {
20374
+ "id": "satori:ゴースト3分クッキング#jb0834ff",
20375
+ "title": "ゴースト3分クッキング - フォルダ名の変更",
20376
+ "source": "satori_wiki",
20377
+ "category": "satori_tips",
20378
+ "content": "フォルダ名の変更\nフォルダ名を考えておいた名前にエクスプローラ等で変更します。\nC:\\Program Files\\ssp\\ghost\\R_POST_and_KOMAINU\n↓\nC:\\Program Files\\ssp\\ghost\\HogeHode\n↑",
20379
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#jb0834ff"
20380
+ },
20381
+ {
20382
+ "id": "satori:ゴースト3分クッキング#qfbc9675",
20383
+ "title": "ゴースト3分クッキング - 不要ファイルの削除",
20384
+ "source": "satori_wiki",
20385
+ "category": "satori_tips",
20386
+ "content": "不要ファイルの削除\n不要って訳じゃないけど無くても動作するのは消しときます、あとで必要になればまたコピーすればよいです。下記のファイルを残しさくっと消します。\nC:\\Program Files\\ssp\\ghost\\HogeHode\n├─ghost\n│ └─master\n│ │ descript.txt\n│ │ replace.txt\n│ │ replace_after.txt\n│ │ satori.dll\n│ │ satori_conf.txt\n│ │ satori_license.txt\n│ └─saori\n│ fill_desktop.dll\n└─shell\n └─master\n surface0000.png\n surface0010.png\n↑",
20387
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#qfbc9675"
20388
+ },
20389
+ {
20390
+ "id": "satori:ゴースト3分クッキング#h59e689f",
20391
+ "title": "ゴースト3分クッキング - サーフェスをコピー",
20392
+ "source": "satori_wiki",
20393
+ "category": "satori_tips",
20394
+ "content": "サーフェスをコピー\n用意して置いた surface0000.png と surface0010.png を shell¥masterフォルダにコピーします。\n本当はshell¥master¥descript.txtを作らないといけませんが割愛します。\n↑",
20395
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#h59e689f"
20396
+ },
20397
+ {
20398
+ "id": "satori:ゴースト3分クッキング#c4068b03",
20399
+ "title": "ゴースト3分クッキング - ファイルの編集",
20400
+ "source": "satori_wiki",
20401
+ "category": "satori_tips",
20402
+ "content": "ファイルの編集\ndescript.txt\n名前とか変更します、詳しく→UKADOC Ghost設定\ncharset,Shift_JIS\n\ncraftman,Hogeo\ncraftmanw,ほげ男\ncraftmanurl,\n\nname,ほげほげ\ntype,ghost\n\nsakura.name,ほげほげ\nkero.name,はげはげ\n\nshiori,satori.dll\n↑",
20403
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#c4068b03"
20404
+ },
20405
+ {
20406
+ "id": "satori:ゴースト3分クッキング#z86c59f7",
20407
+ "title": "ゴースト3分クッキング - フリートーク辞書の作成",
20408
+ "source": "satori_wiki",
20409
+ "category": "satori_tips",
20410
+ "content": "フリートーク辞書の作成\n辞書ファイル名は dic<任意の名前>.txt で作成します、とりあえず dic_freetalk.txt とかとにします。\n中身はこんな感じで*はトークの始まりを表し、:は喋るキャラの切り替えを表します。\n*\n:隣の家に囲いが出来たってね\n:へー\n\n*\n:隣の客は良く柿食う客だ\n:ほー\n↑",
20411
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#z86c59f7"
20412
+ },
20413
+ {
20414
+ "id": "satori:ゴースト3分クッキング#k011d0aa",
20415
+ "title": "ゴースト3分クッキング - ゴースト作成完了",
20416
+ "source": "satori_wiki",
20417
+ "category": "satori_tips",
20418
+ "content": "ゴースト作成完了\nSSPを再起動して変更した設定を読み込ませます。ゴーストを起動すればオリジナルゴーストの完成~~~って言うにはさびしすぎますがw\n後はトークやイベント対応などを追加して完成度を高めていきます。頑張れ~\nここからどうすればいいんだよ!→少し詳しい調理方法",
20419
+ "url": "https://soliton.sub.jp/satori/?%E3%82%B4%E3%83%BC%E3%82%B9%E3%83%88%EF%BC%93%E5%88%86%E3%82%AF%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0#k011d0aa"
20420
+ },
20317
20421
  {
20318
20422
  "id": "satori:少し詳しい調理方法#gf7dd113",
20319
20423
  "title": "少し詳しい調理方法 - トーク",
@@ -23679,7 +23783,7 @@
23679
23783
  "title": "TalkTimer",
23680
23784
  "source": "aosora_wiki",
23681
23785
  "category": "aosora_builtin",
23682
- "content": "TalkTimer\n\nトーク起動用のタイマー。SHIORI Eventとして直接定義されてない なでられ反応とランダムトークを起動するために使います。\n// セーブデータ読み込み後に実行されるイベント\n// 特段理由がなければこのタイミングでTalkTimerを設定するのがおすすめ\nfunction OnAosoraLoad {\n TalkTimer.RandomTalk = RandomTalk;\n TalkTimer.KeyRandomTalkIntervalSeconds = 120;\n\n TalkTimer.NadenadeTalk = OnNadenade;\n}\n \ntalk RandomTalk {\n ランダムトークだよ。\n}\n \ntalk OnNadenade {\n なでられたー。\n}\n\nTalkTimer.RandomTalk\nランダムトークとして呼び出す関数を設定できます。\n\nTalkTimer.RandomTalkHandler\nランダムトークを発生させるときに呼び出す関数を設定できます。 \n設定してないか null の場合は、TalkTimer.CallRandomTalk() を使用してランダムトークを発生させます。\n\nこれは通常設定する必要はありませんが、TalkTimer がランダムトークを発生させるタイミングで任意の処理を行いたいときに使うことができます。 \n戻り値がランダムトークになるので、たとえば下記のように、何か任意の処理を行った後でランダムトークを行うといった処理ができます。\nTalkTimer.RandomTalkHandler = function {\n\n // 何らかの処理....\n\n return TalkTimer.CallRandomTalk();\n};\nTalkTimer.CallRandomTalk() を使用せずに、任意の内容を喋らせることもできます。 \nただし、TalkTimer.CallRandomTalk() には TalkTimer.RandomTalkElapsedSeconds をリセットする作用もあるので、使用しない場合は自分でリセットしてください。そうしないと連続で RandomTalkHandler が呼び出されてしまいます。\n\nTalkTimer.KeyRandomTalkIntervalSeconds\n\nランダムトーク間隔秒。 \n0を指定するとランダムトークなし。\n\nTalkTimer.RandomTalkElapsedSeconds\n\n前回ランダムトークしてからの経過秒。 \nこれがKeyRandomTalkIntervalSeconds を超えるとランダムトークを発生させます。\n\nKeyRandomTalkIntervalSeconds を更新するときなど、任意で0を設定してリセットするなども可能です。 \n\nTalkTimer.NadenadeTalk\n\nなでられトークとして呼び出す関数。\n\nTalkTimer.NadenadeMoveThreshold\n\n同じ触り反応に対して OnMouseMove イベントが発生し続けたとき、その回数がこの値を超えるとなでられトークが発生します。 \n\n要するになでられの敏感度合い。デフォルトは50。 \n\nOnMouseLeave, OnMouseHover, 他の判定のOnMouseMoveが来ると0から数え直します。 \n\nTalkTimer.NadenadeActiveCollision\n\nなでられ反応を呼び出す判定中の判定識別子。\n\nスクリプトから書き込むのは非推奨。\n\nTalkTimer.NadenadeMoveCount \n\nNadenadeMoveThreshold に対して比較する、OnMouseMoveの発生回数。\n\nスクリプトから書き込むのは非推奨。\n\nTalkTimer.RandomTalkQueue\n配列になっていて、要素がある場合はランダムトーク時、RandomTalkの代わりに最初の要素を取り除いて喋る。 \n次以降のトークを予約したい場合に使う。\ntalk FirstTalk{\n %{ TalkTimer.RandomTalkQueue = [SecondTalk, ThirdTalk]; }\n 1st talk\n}\n\ntalk SecondTalk {\n 2nd talk\n}\n\ntalk ThirdTalk {\n 3rd talk\n}\n\nTalkTimer.CallRandomTalk()\nランダムトークを呼び出して結果を返します。 \nタイマーによるトーク発生時と同じようにRandomTalkQueueがあれば使用し、ランダムトークタイマーをリセットします。 \nメニューなどからランダムトークをさせるときに、時間経過で発生するランダムトークと同じことをしたい場合に使えます。",
23786
+ "content": "TalkTimer\n\nトーク起動用のタイマー。SHIORI Eventとして直接定義されてない なでられ反応とランダムトークを起動するために使います。\n// セーブデータ読み込み後に実行されるイベント\n// 特段理由がなければこのタイミングでTalkTimerを設定するのがおすすめ\nfunction OnAosoraLoad {\n TalkTimer.RandomTalk = RandomTalk;\n TalkTimer.KeyRandomTalkIntervalSeconds = 120;\n\n TalkTimer.NadenadeTalk = OnNadenade;\n}\n \ntalk RandomTalk {\n ランダムトークだよ。\n}\n \ntalk OnNadenade {\n なでられたー。\n}\n\nTalkTimer.RandomTalk\nランダムトークとして呼び出す関数を設定できます。\n\nTalkTimer.RandomTalkHandler\nランダムトークを発生させるときに呼び出す関数を設定できます。 \n設定してないか null の場合は、TalkTimer.CallRandomTalk() を使用してランダムトークを発生させます。\n\nこれは通常設定する必要はありませんが、TalkTimer がランダムトークを発生させるタイミングで任意の処理を行いたいときに使うことができます。 \n戻り値がランダムトークになるので、たとえば下記のように、何か任意の処理を行った後でランダムトークを行うといった処理ができます。\nTalkTimer.RandomTalkHandler = function {\n\n // 何らかの処理....\n\n return TalkTimer.CallRandomTalk();\n};\nTalkTimer.CallRandomTalk() を使用せずに、任意の内容を喋らせることもできます。 \nただし、TalkTimer.CallRandomTalk() には TalkTimer.RandomTalkElapsedSeconds をリセットする作用もあるので、使用しない場合は自分でリセットしてください。そうしないと連続で RandomTalkHandler が呼び出されてしまいます。\n\nTalkTimer.RandomTalkIntervalSeconds\n\nランダムトーク間隔秒。 \n0を指定するとランダムトークなし。\n\nTalkTimer.RandomTalkElapsedSeconds\n\n前回ランダムトークしてからの経過秒。 \nこれがKeyRandomTalkIntervalSeconds を超えるとランダムトークを発生させます。\n\nKeyRandomTalkIntervalSeconds を更新するときなど、任意で0を設定してリセットするなども可能です。 \n\nTalkTimer.NadenadeTalk\n\nなでられトークとして呼び出す関数。\n\nTalkTimer.NadenadeMoveThreshold\n\n同じ触り反応に対して OnMouseMove イベントが発生し続けたとき、その回数がこの値を超えるとなでられトークが発生します。 \n\n要するになでられの敏感度合い。デフォルトは50。 \n\nOnMouseLeave, OnMouseHover, 他の判定のOnMouseMoveが来ると0から数え直します。 \n\nTalkTimer.NadenadeActiveCollision\n\nなでられ反応を呼び出す判定中の判定識別子。\n\nスクリプトから書き込むのは非推奨。\n\nTalkTimer.NadenadeMoveCount \n\nNadenadeMoveThreshold に対して比較する、OnMouseMoveの発生回数。\n\nスクリプトから書き込むのは非推奨。\n\nTalkTimer.RandomTalkQueue\n配列になっていて、要素がある場合はランダムトーク時、RandomTalkの代わりに最初の要素を取り除いて喋る。 \n次以降のトークを予約したい場合に使う。\ntalk FirstTalk{\n %{ TalkTimer.RandomTalkQueue = [SecondTalk, ThirdTalk]; }\n 1st talk\n}\n\ntalk SecondTalk {\n 2nd talk\n}\n\ntalk ThirdTalk {\n 3rd talk\n}\n\nTalkTimer.CallRandomTalk()\nランダムトークを呼び出して結果を返します。 \nタイマーによるトーク発生時と同じようにRandomTalkQueueがあれば使用し、ランダムトークタイマーをリセットします。 \nメニューなどからランダムトークをさせるときに、時間経過で発生するランダムトークと同じことをしたい場合に使えます。",
23683
23787
  "url": "https://github.com/kanadelab/aosora-shiori/wiki/07_04_TalkTimer"
23684
23788
  },
23685
23789
  {
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAsBvD,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAW/D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAyBvD,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAW/D"}
package/dist/server.js CHANGED
@@ -13,10 +13,11 @@ import { registerSearchDocsTool } from './tools/search-docs.js';
13
13
  const SERVER_INSTRUCTIONS = `\
14
14
  このサーバーは伺か(Ukagaka)の技術ドキュメントを検索します。
15
15
 
16
- 3つのソースからドキュメントを提供します:
16
+ 4つのソースからドキュメントを提供します:
17
17
  - UKADOC: SSP公式仕様書(さくらスクリプト、SHIORIイベント、設定ファイル仕様、プロトコル規格)
18
18
  - YAYA Wiki: YAYA SHIORIの文法、組み込み関数、実践Tips
19
19
  - 里々Wiki: 里々SHIORIの構文、変数、関数、独自イベント、Tips
20
+ - 蒼空(Aosora) Wiki: 蒼空スクリプトの文法、組み込み機能、発展的トピック
20
21
 
21
22
  推奨ワークフロー:
22
23
  1. list_categories でカテゴリ一覧を確認
@@ -25,6 +26,8 @@ const SERVER_INSTRUCTIONS = `\
25
26
 
26
27
  注意事項:
27
28
  - ビルド時点のドキュメントスナップショットを検索します
29
+ - インデックスはページ/セクション単位。タイトルは "OnBoot" "\\q[タイトル,ID]" "charset,文字コード" のような原文の見出しがそのまま入っています
30
+ - search_docs の query は単語1つだけ(空白区切りの複数語・自然文は0件になる)。絞り込みは category / source で行ってください
28
31
  - さくらスクリプトのタグ検索: \\s0 のように入力(バックスラッシュはそのまま)`;
29
32
  export function createMcpServer(engine) {
30
33
  const server = new McpServer({ name: 'ukagaka-doc-mcp', version: '0.1.0' }, { instructions: SERVER_INSTRUCTIONS });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;4CAegB,CAAC;AAE7C,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC7C,EAAE,YAAY,EAAE,mBAAmB,EAAE,CACtC,CAAC;IAEF,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;4CAkBgB,CAAC;AAE7C,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC7C,EAAE,YAAY,EAAE,mBAAmB,EAAE,CACtC,CAAC;IAEF,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-docs.d.ts","sourceRoot":"","sources":["../../src/tools/search-docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMxD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CA8CpF"}
1
+ {"version":3,"file":"search-docs.d.ts","sourceRoot":"","sources":["../../src/tools/search-docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMxD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAwDpF"}
@@ -2,8 +2,16 @@ import { z } from 'zod';
2
2
  import { CATEGORIES, SOURCE_VALUES } from '../constants.js';
3
3
  const CATEGORY_KEYS = Object.keys(CATEGORIES);
4
4
  export function registerSearchDocsTool(server, engine) {
5
- server.tool('search_docs', '伺か・YAYA・里々・蒼空の技術ドキュメントをキーワード検索する。要約(500文字)を返す。詳細は get_doc で取得。', {
6
- query: z.string().min(1).describe('検索キーワード'),
5
+ // NOTE: ツール description は OpenAI 系クライアント(MCP→function calling ブリッジ)で
6
+ // 1024文字を超えると 400 で弾かれる。詳しい指定スタイルは query describe 側に置くこと
7
+ // (パラメータの description には同様の上限が観測されていない)。
8
+ server.tool('search_docs', '伺か・YAYA・里々・蒼空の技術ドキュメントをキーワード検索する。要約(500文字)を返す。詳細は get_doc で取得。'
9
+ + 'query は単語1つのみ(空白区切りや自然文は0件になる)。', {
10
+ query: z.string().min(1).describe(`検索語。クエリ全体を1個の部分文字列として照合する単純検索(部分一致/大小無視)。分かち書き・AND/OR無し。
11
+ OK: "OnBoot" "選択肢" "REPLACE" "\\q" "surfaces.txt" / NG: "文字列 置換" "さくらスクリプトで選択肢を出す方法" "choice"
12
+ - 識別子・タグは原文表記のまま(さくらスクリプトは "\\q" のようにバックスラッシュ付き)
13
+ - 日本語で引き、助詞や修飾は落として名詞の核だけにする("変数のスコープ"→"スコープ")
14
+ - 絞り込みは語を足さず category / source を使う。0件なら短い語に分解して引き直す`),
7
15
  category: z.enum(CATEGORY_KEYS).optional()
8
16
  .describe('カテゴリで絞り込み(list_categories で確認可能)'),
9
17
  source: z.enum(SOURCE_VALUES).optional()
@@ -1 +1 @@
1
- {"version":3,"file":"search-docs.js","sourceRoot":"","sources":["../../src/tools/search-docs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG5D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAe,CAAC;AAE5D,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAoB;IAC5E,MAAM,CAAC,IAAI,CACT,aAAa,EACb,gEAAgE,EAChE;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAA0C,CAAC,CAAC,QAAQ,EAAE;aACpE,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;aACrC,QAAQ,CAAC,0DAA0D,CAAC;QACvE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aAC/C,QAAQ,CAAC,uBAAuB,CAAC;KACrC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YAC9C,QAAQ,EAAE,QAAgC;YAC1C,MAAM,EAAE,MAA4B;YACpC,KAAK;SACN,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,MAAM,EAAE,WAAW;4BACnB,OAAO,EAAE,IAAI,KAAK,0BAA0B;4BAC5C,KAAK,EAAE,CAAC;yBACT,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,IAAI;wBACZ,KAAK;wBACL,OAAO,EAAE,OAAO,CAAC,MAAM;wBACvB,IAAI,EAAE,OAAO;qBACd,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"search-docs.js","sourceRoot":"","sources":["../../src/tools/search-docs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG5D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAe,CAAC;AAE5D,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAoB;IAC5E,qEAAqE;IACrE,2DAA2D;IAC3D,yCAAyC;IACzC,MAAM,CAAC,IAAI,CACT,aAAa,EACb,gEAAgE;UAC5D,iCAAiC,EACrC;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/B;;;;oDAI4C,CAC7C;QACD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,aAA0C,CAAC,CAAC,QAAQ,EAAE;aACpE,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;aACrC,QAAQ,CAAC,0DAA0D,CAAC;QACvE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aAC/C,QAAQ,CAAC,uBAAuB,CAAC;KACrC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YAC9C,QAAQ,EAAE,QAAgC;YAC1C,MAAM,EAAE,MAA4B;YACpC,KAAK;SACN,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,MAAM,EAAE,WAAW;4BACnB,OAAO,EAAE,IAAI,KAAK,0BAA0B;4BAC5C,KAAK,EAAE,CAAC;yBACT,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,IAAI;wBACZ,KAAK;wBACL,OAAO,EAAE,OAAO,CAAC,MAAM;wBACvB,IAAI,EAAE,OAAO;qBACd,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ukagaka-doc-mcp",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "MCP server for searching Ukagaka (伺か) technical documentation: UKADOC, YAYA Wiki, 里々Wiki, and 蒼空(aosora) Wiki",
5
5
  "keywords": [
6
6
  "mcp",