Global ObjectCore FlowSingleton Global

Api

Queries available API names and missing requirements for portable libraries.

Documented for app version 1.0.50Updated:

Detailed Explanation

This section explains when to use the API, how to call it, and which structures it works best with in production flow.

How To Call It

Api is a singleton global table: call its functions with a dot (Api.<method>(...)). Requires Macro Handler 1.0.51 or later.

When To Use It

Checks a library requirement list, returning ok and a deduplicated missing array.

Parameters and Return

required is a dense array of up to 2048 API names, each 1–192 characters. missing preserves first-seen order. An empty list is valid; empty names and sparse arrays are errors. API names are case-sensitive, for example Workflow.retry, Agent.run or click. Availability describes published catalog names that are not directly policy-blocked; it is not a permission, saved-asset, approved-plan, network or provider readiness check.

Best Combined With

Check requirements at the start of a portable library and provide a clear error or supported fallback when a feature is missing. Catalog checks neither create permissions nor replace runtime error handling.

Example Usage

The snippet below is a starter pattern that can be applied directly in runtime flow.

local capabilities = Api.check({"Form.show", "Workflow.retry", "Module.use"})
if not capabilities.ok then
  error("Missing: " .. table.concat(capabilities.missing, ", "))
end
print("Library APIs are available")

Copyable Progressive Examples

From foundation to combined usage, each level is provided as a separate code block so you can copy the level you need and adapt it directly.

Foundation

Shows the shortest direct way to call the API.

Foundation
local capabilities = Api.check({"Form.show", "Workflow.retry", "Module.use"})
if not capabilities.ok then
  error("Missing: " .. table.concat(capabilities.missing, ", "))
end
print("Library APIs are available")

Simple

Wraps the base call with minimal flow control.

Simple
local capabilities = Api.check({"Form.show", "Workflow.retry", "Module.use"})
if not capabilities.ok then
  error("Missing: " .. table.concat(capabilities.missing, ", "))
end
print("Library APIs are available")

-- Continue with one focused method on the object.

Practical Flow

A practical pattern for real macros with pcall, logging, and guards.

Practical Flow
local capabilities = Api.check({"Form.show", "Workflow.retry", "Module.use"})
if not capabilities.ok then
  error("Missing: " .. table.concat(capabilities.missing, ", "))
end
print("Library APIs are available")
local note = "Api overview loaded"
print(note)

Detailed

This level packages the API into a reusable helper with error reporting.

Detailed
-- Api.check(required)
local function run_api_step()
  local capabilities = Api.check({"Form.show", "Workflow.retry", "Module.use"})
  if not capabilities.ok then
    error("Missing: " .. table.concat(capabilities.missing, ", "))
  end
  print("Library APIs are available")
end

local ok, err = pcall(run_api_step)
if not ok then
  toast("Step failed")
  print(err)
end

Combined

Combines the API with related structures to form a more realistic workflow.

Combined
local capabilities = Api.check({"Form.show", "Workflow.retry", "Module.use"})
if not capabilities.ok then
  error("Missing: " .. table.concat(capabilities.missing, ", "))
end
print("Library APIs are available")