Module Manifest API Reference
The module manifest defines the contract between your module and the Istari Platform. This file communicates essential information about your module, including:
- How the platform should run it
- Which operating systems and agent versions are supported
- What functions and schemas are defined
- What dependencies or scripts are required
Some fields are required, while others are optional. For optional fields, note that specifying them may introduce additional required subkeys.
At a minimum, the manifest must tell Istari:
- What this module is
- How to run it
- Which dependencies it has
There are also sections for development dependencies (helpful for module authors) and runtime dependencies (needed when the module runs inside an agent).
Module Properties
| Property | Type | Required | Description |
|---|---|---|---|
module_type | ModuleTypes | Yes | Type of module (e.g., function, authentication). |
module_version | string | Yes | Module version (must follow SemVer 2.0.0). |
module_checksum | string | Yes | SHA256 checksum of the module. |
internal | boolean | Yes | Indicates if the module is confined to the authoring group. |
operating_systems | [OS] | Yes | Supported OS (must align with function-level OS support). |
agent_version | string | Yes | Supported agent version range (accepts semver syntax: ^, ~, >=, etc.). |
authors | [ContributorInfo] | Yes | Authors of the module. |
functions | object | Yes | Declares module functions (see Function Info). |
dependencies | [Dependency] | null | No | Runtime dependencies not bundled with the module. |
dev_dependencies | [Dependency] | null | No | Dependencies needed for build/test. |
scripts | [ScriptInfo] | null | No | Build/test/clean/install scripts. |
module_key | string | See notes. | Unique key in format @scope:module. |
module_name | string | No | Deprecated; use module_key. |
tool_key | string | No | Unique key of software tool used. |
tool_versions | [string] | No | Required if tool_key present. |
additional_configuration_required | boolean | No | Indicates if further configuration is needed. |
module_display_name | string | null | No | Optional user-facing display name. |
tool_display_name | string | null | No | Display name for the referenced tool. |
Contributor Info
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Contributor’s full name. |
email | string | Yes | Contributor’s email. |
group | string | null | No | Org namespace + group (e.g., @edison:innovation_team). |
Dependencies
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique dependency identifier. |
version | string | Yes | Dependency version. |
tool_type | ToolType | Yes | auxiliary_tool, istari_module, or auth. |
display_name | string | null | No | Human-readable name. |
command | string | null | No | Command to run/install. |
reason | string | null | No | Why this dependency is required. |
url | string | null | No | Documentation or download URL. |
Function Info
Represents a function inside the module.
| Property | Type | Required | Description |
|---|---|---|---|
entrypoint | string | Yes | Path/module/class for function execution (relative to module folder). |
run_command | string | Yes | CLI command to run. Must include placeholders like {entrypoint}, {input_file}, {output_file}, {temp_dir}. |
function_schema | string | FunctionSchema | Yes | Schema definition (inline JSON or file path). |
display_name | string | null | No | Human-readable name. |
operating_systems | [OS] | null | No | OS support (must align with module-level). |
tool_versions | [string] | null | No | Tool versions required. |
Function Schemas
Functions define their inputs and outputs using schemas.
Input Schema
| Property | Type | Required | Description |
|---|---|---|---|
type | InputType | Yes | One of: parameter, user_model, auth_info, user_link. |
validation_types | [string] | Yes | Validators (e.g., @extension:txt, @mime_type:json, @oauth2:google-accounts). |
display_name | string | null | No | Friendly name for UI. |
optional | boolean | null | No | Defaults to false. |
Output Schema
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Output identifier. |
type | OutputType | Yes | Either directory or file. |
required | boolean | Yes | Whether this output must be produced. |
display_name | string | null | No | Friendly display name. |
upload_as | UploadAs | null | No | Defaults to artifact. |
version_of | string | null | No | If output is a new version of an input. |
Script Info (Optional)
| Property | Type | Required | Description |
|---|---|---|---|
operating_systems | [OS] | Yes | OS compatibility. |
build | BuildScript | null | No | Build script with output path. |
install | string | null | No | Install dependencies. |
clean | string | null | No | Cleanup script. |
test_unit | string | null | No | Run unit tests. |
test_integration | string | null | No | Run integration tests. |
Enums
- ModuleTypes:
function,authentication - ToolType:
istari_module,auxiliary_tool,auth - UploadAs:
artifact,model - InputType:
parameter,user_model,auth_info,user_link - OutputType:
directory,file - OS: Windows 10/11/Server 2019/2022, Ubuntu 20.04/22.04/24.04, RHEL 8/9
Entrypoint, Run Command, and Schema
The entrypoint, run_command, and function_schema combine to define how the agent invokes a function.
- Entrypoint: path to the executable (relative to module folder)
- Run Command: full command to execute, with placeholders like
{entrypoint},{input_file},{output_file},{temp_dir} - Schema: defines the expected inputs and outputs
Examples of input file, output file, and config file JSON are provided the next section