GraalJS スクリプト
明示的に呼び出す制限付き GraalJS script をパッケージ化して実行する。
GraalJS script は Java plugin ではありません。Java plugin が明示的に呼び出した場合にのみ実行され、Java SDK ではなく制限付きの bridge を受け取ります。
script をパッケージ化する
script package は、schema version 2 の script.json descriptor を使用し、language を js に設定します。descriptor は entry で script entry を、sourceSha256 で source を特定し、要求する permissions を宣言します。descriptor と source は、それを使用する Java plugin が期待する組み合わせのままにしてください。
{
"schemaVersion": 2,
"id": "dev.example.script.hello",
"name": "Hello Script",
"version": "0.1.0",
"language": "js",
"entry": "main.js",
"sourceSha256": "<SHA-256 of the source>",
"permissions": []
}受け入れられる schemaVersion は 2 のみで、script 言語として現在サポートされるのは js だけです。
これは field-level の概要であり、完全な permission catalog ではありません。対象 build がサポートする permission だけを使用してください。availability と正確な意味は引き続き capability-sensitive です。
検出は実行ではない
script を検出可能にしても実行されません。Java plugin は PluginContext.scripts() を通じて script を明示的に取得し、ScriptService.run で明示的に呼び出す必要があります。自動の discovery-and-execution lifecycle はなく、script は Java plugin の manifest、lifecycle、permission、service の代わりにはなりません。
実行の境界
script は制限付き JavaScript environment で実行され、Java caller が提供する value と operation だけを受け取ります。完全な Java SDK ではなく、制限された Cubism bridge を受け取ります。bridge operation、execution limit、利用可能な permission は build 固有として扱ってください。これらは script が read、change、request できるものを制限する場合があります。ambient な host access を仮定せず、unavailable operation と execution failure を処理できるように script を設計してください。
SDK lifecycle と service を持つプロセス常駐 plugin には Java のパスを使用してください。外部 client に authenticated loopback Streamable HTTP が必要な場合はMCPを使用します。ACP は fx とともに内部でのみ使用され、scripting または拡張パスではありません。
現在の状態
script の実行は capability-sensitive です。公開される bridge operation、resource limit、正確な permission set は build ごとに異なる場合があります。ambient な host access を仮定せず、利用できない operation や失敗した実行を処理できるように script を設計してください。