Skip to main content
Glama

AgentStack execute

agentstack.execute

AgentStack MCP = Work Graph control plane. After session + context.project_id: agents.work_next (mcp_work_loop_v1) -> plan_claim -> plan_execute (CAS/leases). Follow packet.next_action; catalog/discovery.search only if no packet. One-shot CRM/upload may call domain actions directly. Spine: agents.plan_get -> agents.work_next -> agents.plan_claim -> agents.plan_execute. Auth: Connect (G-A174) or Device Code, then auth.get_profile (bootstrap: include_settings false, include_subscriptions false; recipe mcp_session_setup), then context.project_id on every batch. Prompts: agentstack_session_setup, agentstack_execute_budget.

Input Schema

NameRequiredDescriptionDefault
stepsYesSteps; one heavy LLM per sync execute.
contextNosession.v1; project_id required.
optionsNobatch.v1 controls.

Output Schema

NameRequiredDescriptionDefault
okNoFalse on total failure.
job_idNoPoll id.
agent_osNoFollow next_step.
recoveryNoNext action when blocked.
trace_idNoSupport trace.
error_codeNoStable failure code.
execution_modeNoasync when queued.
partial_successNoSome steps failed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedInput schema / properties / context / additionalProperties
      Removed value: -true
    • removedInput schema / properties / options / additionalProperties
      Removed value: -true
    • removedInput schema / properties / steps / items / properties / params / additionalProperties
      Removed value: -true
    • removedOutput schema / additionalProperties
      Removed value: -true
    • removedOutput schema / properties / agent_os / additionalProperties
      Removed value: -true
    • removedOutput schema / properties / recovery / additionalProperties
      Removed value: -true
  2. Changed3 schema fields changed
    • addedInput schema / properties / options / properties / execution_intent
      Added value: +{
      +  "description": "Batch lane: direct, workflow, or validate.",
      +  "enum": [
      +    "direct",
      +    "workflow",
      +    "validate"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / options / properties / goal / description
      Previous value: -"Batch NL anchor; required when any step is not audit_batch_allowed or plain_read."New value: +"NL anchor; required for mutating or non-plain_read steps."
    • changedInput schema / properties / options / properties / semantic_strict / description
      Previous value: -"When true (default if anchor set), reject batch_semantic_anchor_conflict."New value: +"Reject batch_semantic_anchor_conflict when anchor set."
  3. Changed4 schema fields changed
    • addedInput schema / properties / options / properties / focus_node_id
      Added value: +{
      +  "description": "Work graph node id from agents.work_next packet.",
      +  "type": "string"
      +}
    • changedInput schema / properties / options / properties / goal / description
      Previous value: -"Goal text for playbook."New value: +"Batch NL anchor; required when any step is not audit_batch_allowed or plain_read."
    • addedInput schema / properties / options / properties / plan_execute_mode
      Added value: +{
      +  "description": "Bind plan_execute lane for graph mutations.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / options / properties / semantic_strict
      Added value: +{
      +  "description": "When true (default if anchor set), reject batch_semantic_anchor_conflict.",
      +  "type": "boolean"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / options / properties / envelope
      Added value: +{
      +  "description": "compact (default) | full — ADR MCP_EXECUTE_ENVELOPE_COMPACT_V2",
      +  "enum": [
      +    "compact",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  5. Changed18 schema fields changed
    • removedInput schema / properties / context / properties / generation_env_uuid
      Removed value: -{
      -  "description": "Sandbox env_uuid.",
      -  "type": "string"
      -}
    • removedInput schema / properties / options / properties / density
      Removed value: -{
      -  "description": "strict|guided|autonomous",
      -  "enum": [
      -    "strict",
      -    "guided",
      -    "autonomous"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / options / properties / enforce_approval
      Removed value: -{
      -  "description": "Pause risky steps.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / options / properties / envelope
      Removed value: -{
      -  "description": "compact|expand",
      -  "enum": [
      -    "compact",
      -    "expand"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / options / properties / executionMode
      Removed value: -{
      -  "description": "sequential|dag|smart",
      -  "enum": [
      -    "sequential",
      -    "dag",
      -    "smart"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / options / properties / focus_node_id
      Removed value: -{
      -  "description": "Graph node from work_next.",
      -  "type": "string"
      -}
    • removedInput schema / properties / options / properties / goal_text
      Removed value: -{
      -  "description": "Alias for goal.",
      -  "type": "string"
      -}
    • removedInput schema / properties / options / properties / instruction_hash
      Removed value: -{
      -  "description": "Batch instruction_packet hash from prior response; omit duplicate instruction tail when unchanged.",
      -  "type": "string"
      -}
    • removedInput schema / properties / options / properties / observed
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "workflow_runtime.observed echo.",
      -  "properties": {
      -    "completed_steps": {
      -      "description": "Done step ids.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "current_step_id": {
      -      "description": "Active step id.",
      -      "type": "string"
      -    },
      -    "evidence": {
      -      "additionalProperties": true,
      -      "description": "Playbook evidence.",
      -      "type": "object"
      -    },
      -    "goal_verification": {
      -      "additionalProperties": true,
      -      "description": "Release criteria.",
      -      "type": "object"
      -    },
      -    "succeeded": {
      -      "description": "Succeeded actions.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "workflow_revision": {
      -      "description": "Cursor revision.",
      -      "type": "integer"
      -    },
      -    "workflow_state_key": {
      -      "additionalProperties": true,
      -      "description": "Guidance binding key.",
      -      "properties": {
      -        "graph_home": {
      -          "description": "project|user.",
      -          "type": "string"
      -        },
      -        "principal_id": {
      -          "description": "User.",
      -          "type": "integer"
      -        },
      -        "project_id": {
      -          "description": "Project.",
      -          "type": "integer"
      -        },
      -        "workflow_run_id": {
      -          "description": "Run id.",
      -          "type": "string"
      -        }
      -      },
      -      "type": "object"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedInput schema / properties / options / properties / plan_execute_mode
      Removed value: -{
      -  "description": "Bind plan_execute lane.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / options / properties / recipe_params
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Recipe params.",
      -  "type": "object"
      -}
    • removedInput schema / properties / options / properties / routed_goal
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Routed goal snapshot.",
      -  "properties": {
      -    "goal_text": {
      -      "description": "Goal text.",
      -      "type": "string"
      -    },
      -    "intent_id": {
      -      "description": "Intent id.",
      -      "type": "string"
      -    },
      -    "response_mode": {
      -      "description": "tools|workflow.",
      -      "type": "string"
      -    },
      -    "semantic_contract": {
      -      "additionalProperties": true,
      -      "description": "Effect constraints.",
      -      "type": "object"
      -    },
      -    "step_actions": {
      -      "description": "Suggested actions.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "type": "object"
      -}
    • removedInput schema / properties / options / properties / semantic_strict
      Removed value: -{
      -  "description": "Enforce goal anchor match.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / options / properties / workflow_run_id
      Removed value: -{
      -  "description": "Inverse workflow run id.",
      -  "type": "string"
      -}
    • removedInput schema / properties / steps / items / properties / dependsOn
      Removed value: -{
      -  "description": "Prior step ids (DAG).",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / steps / items / properties / depends_on
      Removed value: -{
      -  "description": "Alias of dependsOn.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / steps / items / properties / if
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Run when predicate matches.",
      -  "type": "object"
      -}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "result.v1 batch envelope.",
      +  "properties": {
      +    "agent_os": {
      +      "additionalProperties": true,
      +      "description": "Follow next_step.",
      +      "type": "object"
      +    },
      +    "error_code": {
      +      "description": "Stable failure code.",
      +      "type": "string"
      +    },
      +    "execution_mode": {
      +      "description": "async when queued.",
      +      "type": "string"
      +    },
      +    "job_id": {
      +      "description": "Poll id.",
      +      "type": "string"
      +    },
      +    "ok": {
      +      "description": "False on total failure.",
      +      "type": "boolean"
      +    },
      +    "partial_success": {
      +      "description": "Some steps failed.",
      +      "type": "boolean"
      +    },
      +    "recovery": {
      +      "additionalProperties": true,
      +      "description": "Next action when blocked.",
      +      "type": "object"
      +    },
      +    "trace_id": {
      +      "description": "Support trace.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  6. Changed1 schema field changed
    • addedInput schema / properties / options / properties / instruction_hash
      Added value: +{
      +  "description": "Batch instruction_packet hash from prior response; omit duplicate instruction tail when unchanged.",
      +  "type": "string"
      +}
  7. Changed41 schema fields changed
    • changedInput schema / description
      Previous value: -"batch.v1 execute. Packs: GET /mcp/actions execute_budget.packs. One dotted action per step; discovery.describe for params."New value: +"batch.v1 execute; packs on /mcp/actions; discovery.describe per action."
    • changedInput schema / properties / context / description
      Previous value: -"session.v1 scope. Other context keys accepted via additionalProperties."New value: +"session.v1; project_id required."
    • changedInput schema / properties / context / properties / generation_env_uuid / description
      Previous value: -"Sandbox env_uuid anchor when not using prod head."New value: +"Sandbox env_uuid."
    • changedInput schema / properties / context / properties / project_id / description
      Previous value: -"session.v1. Required tenant project id."New value: +"Tenant project id."
    • changedInput schema / properties / options / description
      Previous value: -"batch.v1 controls. Extra keys in execute_budget.packs wire_only_in_catalog."New value: +"batch.v1 controls."
    • changedInput schema / properties / options / properties / async / description
      Previous value: -"Queue batch; poll discovery.job_status."New value: +"Queue; poll discovery.job_status."
    • changedInput schema / properties / options / properties / continueOnError / description
      Previous value: -"When true, run remaining steps after a failure (pairs with stopOnError)."New value: +"Continue after failure."
    • changedInput schema / properties / options / properties / density / description
      Previous value: -"Step wording strictness."New value: +"strict|guided|autonomous"
    • changedInput schema / properties / options / properties / enforce_approval / description
      Previous value: -"Pause financial or destructive steps for approval."New value: +"Pause risky steps."
    • addedInput schema / properties / options / properties / envelope
      Added value: +{
      +  "description": "compact|expand",
      +  "enum": [
      +    "compact",
      +    "expand"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / options / properties / executionMode / description
      Previous value: -"sequential | dag | smart. Omit or smart: plain_read batches may continue on error."New value: +"sequential|dag|smart"
    • addedInput schema / properties / options / properties / focus_node_id
      Added value: +{
      +  "description": "Graph node from work_next.",
      +  "type": "string"
      +}
    • changedInput schema / properties / options / properties / goal / description
      Previous value: -"User goal text for inverse playbook stamping."New value: +"Goal text for playbook."
    • changedInput schema / properties / options / properties / goal_text / description
      Previous value: -"Alias for goal — inverse playbook stamping."New value: +"Alias for goal."
    • changedInput schema / properties / options / properties / idempotency_key / description
      Previous value: -"Client retry key. The same key returns the same receipt."New value: +"Retry receipt key."
    • changedInput schema / properties / options / properties / observed / description
      Previous value: -"Echo server workflow_runtime.observed after execute (client resume)."New value: +"workflow_runtime.observed echo."
    • changedInput schema / properties / options / properties / observed / properties / completed_steps / description
      Previous value: -"Playbook step ids finished."New value: +"Done step ids."
    • changedInput schema / properties / options / properties / observed / properties / current_step_id / description
      Previous value: -"Active playbook step after last advance."New value: +"Active step id."
    • changedInput schema / properties / options / properties / observed / properties / evidence / description
      Previous value: -"Playbook evidence slots merged on advance."New value: +"Playbook evidence."
    • changedInput schema / properties / options / properties / observed / properties / goal_verification / description
      Previous value: -"Release criteria lane (verified, pending, satisfied)."New value: +"Release criteria."
    • changedInput schema / properties / options / properties / observed / properties / succeeded / description
      Previous value: -"Canonical MCP action ids succeeded this run."New value: +"Succeeded actions."
    • changedInput schema / properties / options / properties / observed / properties / workflow_revision / description
      Previous value: -"Monotonic cursor revision."New value: +"Cursor revision."
    • changedInput schema / properties / options / properties / observed / properties / workflow_state_key / description
      Previous value: -"Binding key for guidance + receipts."New value: +"Guidance binding key."
    • changedInput schema / properties / options / properties / observed / properties / workflow_state_key / properties / graph_home / description
      Previous value: -"project | user."New value: +"project|user."
    • changedInput schema / properties / options / properties / observed / properties / workflow_state_key / properties / principal_id / description
      Previous value: -"User id."New value: +"User."
    • changedInput schema / properties / options / properties / observed / properties / workflow_state_key / properties / project_id / description
      Previous value: -"Tenant project."New value: +"Project."
    • addedInput schema / properties / options / properties / plan_execute_mode
      Added value: +{
      +  "description": "Bind plan_execute lane.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / options / properties / recipe_id / description
      Previous value: -"Expand MCP recipe from GET /mcp/recipes."New value: +"MCP recipe id."
    • changedInput schema / properties / options / properties / recipe_params / description
      Previous value: -"Recipe placeholder values."New value: +"Recipe params."
    • addedInput schema / properties / options / properties / routed_goal
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Routed goal snapshot.",
      +  "properties": {
      +    "goal_text": {
      +      "description": "Goal text.",
      +      "type": "string"
      +    },
      +    "intent_id": {
      +      "description": "Intent id.",
      +      "type": "string"
      +    },
      +    "response_mode": {
      +      "description": "tools|workflow.",
      +      "type": "string"
      +    },
      +    "semantic_contract": {
      +      "additionalProperties": true,
      +      "description": "Effect constraints.",
      +      "type": "object"
      +    },
      +    "step_actions": {
      +      "description": "Suggested actions.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / options / properties / semantic_strict
      Added value: +{
      +  "description": "Enforce goal anchor match.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / options / properties / stopOnError / description
      Previous value: -"Stop at first failed step. Default true (session.v1). Omitted with all plain_read steps → smart continue (see executionMode)."New value: +"Stop on first failure."
    • changedInput schema / properties / options / properties / workflow_run_id / description
      Previous value: -"Inverse workflow run id; echo prior execute. Binds receipts to instruction_packet.step_id."New value: +"Inverse workflow run id."
    • changedInput schema / properties / steps / description
      Previous value: -"Ordered steps. One heavy LLM step per sync execute."New value: +"Steps; one heavy LLM per sync execute."
    • changedInput schema / properties / steps / items / description
      Previous value: -"One catalog action invocation."New value: +"One catalog action."
    • changedInput schema / properties / steps / items / properties / action / description
      Previous value: -"Dotted action from GET /mcp/actions."New value: +"Dotted action from /mcp/actions."
    • changedInput schema / properties / steps / items / properties / dependsOn / description
      Previous value: -"Step ids that must succeed before this step (batch DAG)."New value: +"Prior step ids (DAG)."
    • changedInput schema / properties / steps / items / properties / depends_on / description
      Previous value: -"Snake_case alias of dependsOn (executor accepts both)."New value: +"Alias of dependsOn."
    • changedInput schema / properties / steps / items / properties / id / description
      Previous value: -"Unique step id within this batch."New value: +"Step id in batch."
    • changedInput schema / properties / steps / items / properties / if / description
      Previous value: -"Optional predicate; step runs when it matches."New value: +"Run when predicate matches."
    • changedInput schema / properties / steps / items / properties / params / description
      Previous value: -"Args per discovery.describe for this action."New value: +"Action params."
  8. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "description": "result.v1 batch envelope. ok=false uses error_code and recovery. partial_success=true when some batch steps succeeded and others failed (ok may still be true). Async uses execution_mode and poll.",
      -  "properties": {
      -    "agent_os": {
      -      "additionalProperties": true,
      -      "description": "result.v1 pointer. Follow next_step when follow is set.",
      -      "type": "object"
      -    },
      -    "async_job_handoff": {
      -      "description": "True when the batch was enqueued for async execution.",
      -      "type": "boolean"
      -    },
      -    "completion": {
      -      "additionalProperties": true,
      -      "description": "Completion receipt (workflow_run_id, completed/pending actions).",
      -      "type": "object"
      -    },
      -    "data": {
      -      "additionalProperties": true,
      -      "description": "Payload when the call succeeded.",
      -      "type": "object"
      -    },
      -    "error": {
      -      "additionalProperties": true,
      -      "description": "Structured error object on domain failures.",
      -      "type": "object"
      -    },
      -    "error_code": {
      -      "description": "Stable failure code when ok is false, or when partial_success is true (failed lane; ok may remain true). Warning-only workflow_diagnostics do not hoist error_code.",
      -      "type": "string"
      -    },
      -    "execution_mode": {
      -      "description": "async when the batch was enqueued.",
      -      "type": "string"
      -    },
      -    "failed_step_ids": {
      -      "description": "Step ids that failed in a partial batch.",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "failure_kind": {
      -      "description": "Stable classifier when ok is false (domain vs transport).",
      -      "type": "string"
      -    },
      -    "goal_verification": {
      -      "additionalProperties": true,
      -      "description": "Release criteria rollup (may hoist from workflow_completion).",
      -      "type": "object"
      -    },
      -    "instruction_packet": {
      -      "additionalProperties": true,
      -      "description": "Current step contract (allowed_actions, step_id).",
      -      "properties": {
      -        "allowed_actions": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "completion_predicates": {
      -          "description": "Completion tokens for evidence merge.",
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "constraints": {
      -          "additionalProperties": true,
      -          "description": "effect_constraints and compiled effect_policy summary.",
      -          "type": "object"
      -        },
      -        "forbidden_actions": {
      -          "description": "Explicitly blocked MCP action ids.",
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "goal_contract": {
      -          "additionalProperties": true,
      -          "description": "Success criteria and constraint slices.",
      -          "type": "object"
      -        },
      -        "goal_verification": {
      -          "description": "Release criteria — independent of step advance.",
      -          "properties": {
      -            "pending": {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "satisfied": {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "verified": {
      -              "type": "boolean"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "intent_id": {
      -          "description": "Playbook intent id for this step.",
      -          "type": "string"
      -        },
      -        "objective": {
      -          "description": "Step objective from router or plan node.",
      -          "type": "string"
      -        },
      -        "observation_policy": {
      -          "properties": {
      -            "allowed_plain_reads": {
      -              "type": "boolean"
      -            },
      -            "observations_advance_step": {
      -              "type": "boolean"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "semantic_contract": {
      -          "additionalProperties": true,
      -          "description": "Slim facet contract for preflight filtering.",
      -          "properties": {
      -            "fingerprint": {
      -              "type": "string"
      -            },
      -            "primary_intent": {
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "skills_disclosure": {
      -          "additionalProperties": true,
      -          "description": "Skills authority disclosure for the step.",
      -          "type": "object"
      -        },
      -        "step_id": {
      -          "type": "string"
      -        },
      -        "text": {
      -          "description": "Density-localized instruction line.",
      -          "type": "string"
      -        },
      -        "writes_allowed": {
      -          "description": "When false, mutate actions are blocked.",
      -          "type": "boolean"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "instruction_slice": {
      -      "additionalProperties": true,
      -      "description": "Hoisted self-desc slice for the failing or current step.",
      -      "type": "object"
      -    },
      -    "inverse_resume": {
      -      "additionalProperties": true,
      -      "description": "Inverse workflow resume pointer.",
      -      "type": "object"
      -    },
      -    "job_id": {
      -      "description": "Async job id.",
      -      "type": "string"
      -    },
      -    "message": {
      -      "description": "Human-readable failure text.",
      -      "type": "string"
      -    },
      -    "next_step": {
      -      "additionalProperties": true,
      -      "description": "Suggested follow-up step for agent_os flows.",
      -      "type": "object"
      -    },
      -    "observed": {
      -      "additionalProperties": true,
      -      "description": "Workflow runtime observed state — echo on next execute via options.observed (succeeded, completed_steps, goal_verification, evidence, workflow_revision).",
      -      "type": "object"
      -    },
      -    "ok": {
      -      "description": "False on total domain failure; may stay true when partial_success.",
      -      "type": "boolean"
      -    },
      -    "partial_success": {
      -      "description": "True when a multi-step batch continued after a step failure. Inspect steps or error_code for the failed lane.",
      -      "type": "boolean"
      -    },
      -    "poll": {
      -      "additionalProperties": true,
      -      "description": "Poll via discovery.job_status.",
      -      "properties": {
      -        "action": {
      -          "description": "discovery.job_status",
      -          "type": "string"
      -        },
      -        "params": {
      -          "additionalProperties": true,
      -          "description": "Includes job_id.",
      -          "type": "object"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "recovery": {
      -      "additionalProperties": true,
      -      "description": "Suggested next action when ok is false. On partial_success, retry failed steps with the same options.idempotency_key when safe.",
      -      "type": "object"
      -    },
      -    "retryable": {
      -      "description": "Whether the client may retry the same batch.",
      -      "type": "boolean"
      -    },
      -    "status": {
      -      "description": "Batch status, e.g. partial_success, error, success.",
      -      "type": "string"
      -    },
      -    "steps": {
      -      "description": "Batch step results (hoisted alias of data.steps).",
      -      "items": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "succeeded_count": {
      -      "description": "Succeeded steps in a multi-step batch.",
      -      "type": "integer"
      -    },
      -    "summary": {
      -      "additionalProperties": true,
      -      "description": "Batch counters (total, succeeded, failed).",
      -      "type": "object"
      -    },
      -    "task": {
      -      "additionalProperties": true,
      -      "description": "MCP tasks/taskId mirror of job_id for 2026 clients.",
      -      "type": "object"
      -    },
      -    "trace_id": {
      -      "description": "Request trace for support and logs.",
      -      "type": "string"
      -    },
      -    "version": {
      -      "description": "Envelope version; 2 for multi-step structuredContent batches.",
      -      "type": "integer"
      -    },
      -    "workflow_completion": {
      -      "additionalProperties": true,
      -      "description": "Receipt transition summary (advanced, workflow_revision, goal_verification). Multi-step batches merge per-step meta via mcp.batch_envelope.merge_workflow_completion (shallow-copy goal_verification/evidence).",
      -      "properties": {
      -        "advanced": {
      -          "type": "boolean"
      -        },
      -        "goal_verification": {
      -          "properties": {
      -            "pending": {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "satisfied": {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "verified": {
      -              "type": "boolean"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "receipt_recorded": {
      -          "type": "boolean"
      -        },
      -        "workflow_diagnostics": {
      -          "items": {
      -            "additionalProperties": true,
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        "workflow_revision": {
      -          "type": "integer"
      -        },
      -        "workflow_run_id": {
      -          "type": "string"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "workflow_diagnostics": {
      -      "description": "Non-fatal workflow warnings (e.g. workflow_step_not_advancing).",
      -      "items": {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "workflow_run_id": {
      -      "description": "Active inverse run id for the next batch.",
      -      "type": "string"
      -    },
      -    "workflow_state_key": {
      -      "additionalProperties": true,
      -      "description": "Binding key for guidance + receipts.",
      -      "type": "object"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  9. Changed2 schema fields changed
    • changedOutput schema / properties / error_code / description
      Previous value: -"Stable failure code when ok is false."New value: +"Stable failure code when ok is false, or when partial_success is true (failed lane; ok may remain true). Warning-only workflow_diagnostics do not hoist error_code."
    • changedOutput schema / properties / recovery / description
      Previous value: -"Suggested next action when ok is false."New value: +"Suggested next action when ok is false. On partial_success, retry failed steps with the same options.idempotency_key when safe."
  10. Changed3 schema fields changed
    • addedOutput schema / properties / instruction_packet / properties / constraints
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "effect_constraints and compiled effect_policy summary.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / instruction_packet / properties / skills_disclosure
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Skills authority disclosure for the step.",
      +  "type": "object"
      +}
    • changedOutput schema / properties / workflow_completion / description
      Previous value: -"Receipt transition summary (advanced, workflow_revision, goal_verification)."New value: +"Receipt transition summary (advanced, workflow_revision, goal_verification). Multi-step batches merge per-step meta via mcp.batch_envelope.merge_workflow_completion (shallow-copy goal_verification/evidence)."
  11. Changed35 schema fields changed
    • addedInput schema / properties / options / properties / idempotency_key
      Added value: +{
      +  "description": "Client retry key. The same key returns the same receipt.",
      +  "type": "string"
      +}
    • addedInput schema / properties / options / properties / observed / properties / current_step_id
      Added value: +{
      +  "description": "Active playbook step after last advance.",
      +  "type": "string"
      +}
    • addedInput schema / properties / options / properties / observed / properties / evidence
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Playbook evidence slots merged on advance.",
      +  "type": "object"
      +}
    • addedInput schema / properties / options / properties / observed / properties / goal_verification
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Release criteria lane (verified, pending, satisfied).",
      +  "type": "object"
      +}
    • addedInput schema / properties / steps / items / properties / depends_on
      Added value: +{
      +  "description": "Snake_case alias of dependsOn (executor accepts both).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / description
      Previous value: -"result.v1 batch envelope. ok=false uses error_code and recovery. Async uses execution_mode and poll."New value: +"result.v1 batch envelope. ok=false uses error_code and recovery. partial_success=true when some batch steps succeeded and others failed (ok may still be true). Async uses execution_mode and poll."
    • addedOutput schema / properties / async_job_handoff
      Added value: +{
      +  "description": "True when the batch was enqueued for async execution.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / completion
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Completion receipt (workflow_run_id, completed/pending actions).",
      +  "type": "object"
      +}
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Structured error object on domain failures.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / failed_step_ids
      Added value: +{
      +  "description": "Step ids that failed in a partial batch.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / failure_kind
      Added value: +{
      +  "description": "Stable classifier when ok is false (domain vs transport).",
      +  "type": "string"
      +}
    • addedOutput schema / properties / goal_verification
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Release criteria rollup (may hoist from workflow_completion).",
      +  "type": "object"
      +}
    • addedOutput schema / properties / instruction_packet / properties / completion_predicates
      Added value: +{
      +  "description": "Completion tokens for evidence merge.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / instruction_packet / properties / forbidden_actions
      Added value: +{
      +  "description": "Explicitly blocked MCP action ids.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / instruction_packet / properties / goal_contract
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Success criteria and constraint slices.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / instruction_packet / properties / intent_id
      Added value: +{
      +  "description": "Playbook intent id for this step.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / instruction_packet / properties / objective
      Added value: +{
      +  "description": "Step objective from router or plan node.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / instruction_packet / properties / semantic_contract
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Slim facet contract for preflight filtering.",
      +  "properties": {
      +    "fingerprint": {
      +      "type": "string"
      +    },
      +    "primary_intent": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / instruction_packet / properties / text
      Added value: +{
      +  "description": "Density-localized instruction line.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / instruction_packet / properties / writes_allowed
      Added value: +{
      +  "description": "When false, mutate actions are blocked.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / instruction_slice
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Hoisted self-desc slice for the failing or current step.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / inverse_resume
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Inverse workflow resume pointer.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / next_step
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Suggested follow-up step for agent_os flows.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / observed
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Workflow runtime observed state — echo on next execute via options.observed (succeeded, completed_steps, goal_verification, evidence, workflow_revision).",
      +  "type": "object"
      +}
    • changedOutput schema / properties / ok / description
      Previous value: -"False on domain failure."New value: +"False on total domain failure; may stay true when partial_success."
    • addedOutput schema / properties / partial_success
      Added value: +{
      +  "description": "True when a multi-step batch continued after a step failure. Inspect steps or error_code for the failed lane.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / retryable
      Added value: +{
      +  "description": "Whether the client may retry the same batch.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "description": "Batch status, e.g. partial_success, error, success.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / steps
      Added value: +{
      +  "description": "Batch step results (hoisted alias of data.steps).",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / succeeded_count
      Added value: +{
      +  "description": "Succeeded steps in a multi-step batch.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / summary
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Batch counters (total, succeeded, failed).",
      +  "type": "object"
      +}
    • addedOutput schema / properties / task
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "MCP tasks/taskId mirror of job_id for 2026 clients.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / trace_id
      Added value: +{
      +  "description": "Request trace for support and logs.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / version
      Added value: +{
      +  "description": "Envelope version; 2 for multi-step structuredContent batches.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / workflow_state_key
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Binding key for guidance + receipts.",
      +  "type": "object"
      +}
  12. Changed12 schema fields changed
    • addedInput schema / properties / options / properties / continueOnError
      Added value: +{
      +  "description": "When true, run remaining steps after a failure (pairs with stopOnError).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / options / properties / executionMode
      Added value: +{
      +  "description": "sequential | dag | smart. Omit or smart: plain_read batches may continue on error.",
      +  "enum": [
      +    "sequential",
      +    "dag",
      +    "smart"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / options / properties / goal_text
      Added value: +{
      +  "description": "Alias for goal — inverse playbook stamping.",
      +  "type": "string"
      +}
    • changedInput schema / properties / options / properties / observed / description
      Previous value: -"Playbook progress slots (completed_steps are step ids)."New value: +"Echo server workflow_runtime.observed after execute (client resume)."
    • addedInput schema / properties / options / properties / observed / properties
      Added value: +{
      +  "completed_steps": {
      +    "description": "Playbook step ids finished.",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "succeeded": {
      +    "description": "Canonical MCP action ids succeeded this run.",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "workflow_revision": {
      +    "description": "Monotonic cursor revision.",
      +    "type": "integer"
      +  },
      +  "workflow_state_key": {
      +    "additionalProperties": true,
      +    "description": "Binding key for guidance + receipts.",
      +    "properties": {
      +      "graph_home": {
      +        "description": "project | user.",
      +        "type": "string"
      +      },
      +      "principal_id": {
      +        "description": "User id.",
      +        "type": "integer"
      +      },
      +      "project_id": {
      +        "description": "Tenant project.",
      +        "type": "integer"
      +      },
      +      "workflow_run_id": {
      +        "description": "Run id.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +}
    • changedInput schema / properties / options / properties / stopOnError / description
      Previous value: -"Stop at first failed step. Default true (session.v1)."New value: +"Stop at first failed step. Default true (session.v1). Omitted with all plain_read steps → smart continue (see executionMode)."
    • changedInput schema / properties / options / properties / workflow_run_id / description
      Previous value: -"Inverse workflow run id for session continuity."New value: +"Inverse workflow run id; echo prior execute. Binds receipts to instruction_packet.step_id."
    • addedInput schema / properties / steps / items / properties / dependsOn
      Added value: +{
      +  "description": "Step ids that must succeed before this step (batch DAG).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / instruction_packet
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Current step contract (allowed_actions, step_id).",
      +  "properties": {
      +    "allowed_actions": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "goal_verification": {
      +      "description": "Release criteria — independent of step advance.",
      +      "properties": {
      +        "pending": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "satisfied": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "verified": {
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "observation_policy": {
      +      "properties": {
      +        "allowed_plain_reads": {
      +          "type": "boolean"
      +        },
      +        "observations_advance_step": {
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "step_id": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / workflow_completion
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Receipt transition summary (advanced, workflow_revision, goal_verification).",
      +  "properties": {
      +    "advanced": {
      +      "type": "boolean"
      +    },
      +    "goal_verification": {
      +      "properties": {
      +        "pending": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "satisfied": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "verified": {
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "receipt_recorded": {
      +      "type": "boolean"
      +    },
      +    "workflow_diagnostics": {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "workflow_revision": {
      +      "type": "integer"
      +    },
      +    "workflow_run_id": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / workflow_diagnostics
      Added value: +{
      +  "description": "Non-fatal workflow warnings (e.g. workflow_step_not_advancing).",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / workflow_run_id
      Added value: +{
      +  "description": "Active inverse run id for the next batch.",
      +  "type": "string"
      +}
  13. Changed55 schema fields changed
    • changedInput schema / description
      Previous value: -"Batch execute. One tool; each step names a dotted action. Structured result fields: see tools/list outputSchema on agentstack.execute."New value: +"batch.v1 execute. Packs: GET /mcp/actions execute_budget.packs. One dotted action per step; discovery.describe for params."
    • changedInput schema / properties / context / description
      Previous value: -"Execute scope: set project_id on every batch; optional locale (en, ru, pt, or BCP-47) overrides this request and is not saved."New value: +"session.v1 scope. Other context keys accepted via additionalProperties."
    • changedInput schema / properties / context / properties / generation_env_uuid / description
      Previous value: -"Sandbox generation anchor (env_uuid). Not a recipe input."New value: +"Sandbox env_uuid anchor when not using prod head."
    • removedInput schema / properties / context / properties / locale
      Removed value: -{
      -  "description": "Optional. en, ru, pt, or BCP-47. Overrides this request and is not saved.",
      -  "type": "string"
      -}
    • changedInput schema / properties / context / properties / project_id / description
      Previous value: -"Tenant project id. Required for project-scoped actions."New value: +"session.v1. Required tenant project id."
    • removedInput schema / properties / context / properties / user_id
      Removed value: -{
      -  "description": "Caller user id. Usually taken from the session; do not invent it.",
      -  "type": "integer"
      -}
    • changedInput schema / properties / options / description
      Previous value: -"Batch controls: async jobs, recipes, playbook progress, and error policy."New value: +"batch.v1 controls. Extra keys in execute_budget.packs wire_only_in_catalog."
    • changedInput schema / properties / options / properties / async / description
      Previous value: -"Queue the batch (durable job). Required for more than one heavy LLM step. Poll discovery.job_status or GET /mcp/jobs/{job_id}."New value: +"Queue batch; poll discovery.job_status."
    • removedInput schema / properties / options / properties / continueOnError
      Removed value: -{
      -  "description": "Keep later steps running after a failure. Opposite of stopOnError.",
      -  "type": "boolean"
      -}
    • changedInput schema / properties / options / properties / density / description
      Previous value: -"Wording of the current step. The allowed action set stays the same."New value: +"Step wording strictness."
    • changedInput schema / properties / options / properties / enforce_approval / description
      Previous value: -"When true, financial, destructive, and access-control steps pause for approval."New value: +"Pause financial or destructive steps for approval."
    • removedInput schema / properties / options / properties / envelope
      Removed value: -{
      -  "description": "Batch step payload shape. compact omits duplicate data/capability_result.",
      -  "enum": [
      -    "compact",
      -    "full"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / options / properties / goal / description
      Previous value: -"The same user goal. When set, the envelope names the next playbook step."New value: +"User goal text for inverse playbook stamping."
    • removedInput schema / properties / options / properties / idempotency_key
      Removed value: -{
      -  "description": "Client retry key. The same key returns the same receipt.",
      -  "type": "string"
      -}
    • changedInput schema / properties / options / properties / observed / description
      Previous value: -"Playbook progress. completed_steps holds step ids, not action names."New value: +"Playbook progress slots (completed_steps are step ids)."
    • removedInput schema / properties / options / properties / publish_asked
      Removed value: -{
      -  "description": "The user already asked to publish. Skips a second confirm.",
      -  "type": "boolean"
      -}
    • changedInput schema / properties / options / properties / recipe_id / description
      Previous value: -"Expand a registered MCP recipe into steps before execute (see GET /mcp/recipes)."New value: +"Expand MCP recipe from GET /mcp/recipes."
    • changedInput schema / properties / options / properties / recipe_params / description
      Previous value: -"Values for {{placeholders}} in the recipe."New value: +"Recipe placeholder values."
    • removedInput schema / properties / options / properties / semantic_contract
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Fingerprinted GoalSemanticContract — discovery/search parity for inverse batches.",
      -  "type": "object"
      -}
    • changedInput schema / properties / options / properties / stopOnError / description
      Previous value: -"Stop the batch at the first failed step. Default true."New value: +"Stop at first failed step. Default true (session.v1)."
    • changedInput schema / properties / options / properties / workflow_run_id / description
      Previous value: -"Goal run id. Separate from trace_id. Returned on the completion receipt."New value: +"Inverse workflow run id for session continuity."
    • changedInput schema / properties / steps / description
      Previous value: -"Ordered steps. Cheap list/get may batch. At most one heavy LLM action (bots.simulate, knowledge.playground, …) per sync execute."New value: +"Ordered steps. One heavy LLM step per sync execute."
    • changedInput schema / properties / steps / items / description
      Previous value: -"One action invocation inside the batch."New value: +"One catalog action invocation."
    • changedInput schema / properties / steps / items / properties / action / description
      Previous value: -"Canonical dotted action id from GET /mcp/actions (example: auth.get_profile)."New value: +"Dotted action from GET /mcp/actions."
    • changedInput schema / properties / steps / items / properties / id / description
      Previous value: -"Step id unique within this batch. Referenced by options.observed."New value: +"Unique step id within this batch."
    • changedInput schema / properties / steps / items / properties / if / description
      Previous value: -"Optional predicate. The step runs only when this condition matches."New value: +"Optional predicate; step runs when it matches."
    • changedInput schema / properties / steps / items / properties / params / description
      Previous value: -"Action arguments. Shape comes from discovery.describe for that action."New value: +"Args per discovery.describe for this action."
    • changedOutput schema / description
      Previous value: -"Batch result. ok=true carries data; ok=false is a domain error (error_code, message, recovery); execution_mode=async is a job handoff (job_id, poll.action=discovery.job_status). tools/list readOnlyHint/destructiveHint describe the execute envelope; individual steps may still be read-only."New value: +"result.v1 batch envelope. ok=false uses error_code and recovery. Async uses execution_mode and poll."
    • addedOutput schema / properties / agent_os
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "result.v1 pointer. Follow next_step when follow is set.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / async_job_handoff
      Removed value: -{
      -  "description": "True when the client must poll instead of reading data.",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / capability_result
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "CapabilityResult envelope when the step is a single action.",
      -  "type": "object"
      -}
    • removedOutput schema / properties / completion
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Workflow completion receipt when workflow_run_id is set.",
      -  "type": "object"
      -}
    • changedOutput schema / properties / data / description
      Previous value: -"Step or batch payload when the call succeeded."New value: +"Payload when the call succeeded."
    • removedOutput schema / properties / diagnostics
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Includes workflow_step_not_advancing when predicates block.",
      -  "type": "object"
      -}
    • changedOutput schema / properties / error_code / description
      Previous value: -"Stable code when ok is false (example: invalid_parameters)."New value: +"Stable failure code when ok is false."
    • changedOutput schema / properties / execution_mode / description
      Previous value: -"async when the batch was enqueued instead of run inline."New value: +"async when the batch was enqueued."
    • removedOutput schema / properties / failure_kind
      Removed value: -{
      -  "description": "domain stays isError=false; transport is a protocol failure.",
      -  "enum": [
      -    "domain",
      -    "transport"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / instruction_packet
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Next-step packet after inverse stamp.",
      -  "type": "object"
      -}
    • removedOutput schema / properties / instruction_slice
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Operator recovery slice for first failed step.",
      -  "type": "object"
      -}
    • removedOutput schema / properties / inverse_resume
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Inverse handoff on orchestration_step_violation or partial_success.",
      -  "type": "object"
      -}
    • changedOutput schema / properties / job_id / description
      Previous value: -"Async job id. Poll with discovery.job_status."New value: +"Async job id."
    • changedOutput schema / properties / message / description
      Previous value: -"Human-readable failure text when ok is false."New value: +"Human-readable failure text."
    • removedOutput schema / properties / next_step
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Playbook cursor after inverse stamp.",
      -  "type": "object"
      -}
    • removedOutput schema / properties / observed
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Inverse orchestration slots after stamp (evidence, succeeded, completed_steps).",
      -  "type": "object"
      -}
    • changedOutput schema / properties / ok / description
      Previous value: -"False on domain failure. Omitted on async handoff."New value: +"False on domain failure."
    • removedOutput schema / properties / partial_success
      Removed value: -{
      -  "description": "True when some batch steps succeeded and some failed.",
      -  "type": "boolean"
      -}
    • changedOutput schema / properties / poll / description
      Previous value: -"How to resume an async job (action discovery.job_status)."New value: +"Poll via discovery.job_status."
    • changedOutput schema / properties / poll / properties / action / description
      Previous value: -"Poll action. Always discovery.job_status."New value: +"discovery.job_status"
    • changedOutput schema / properties / poll / properties / params / description
      Previous value: -"Poll params, including job_id."New value: +"Includes job_id."
    • changedOutput schema / properties / recovery / description
      Previous value: -"Next step when ok is false (action + params)."New value: +"Suggested next action when ok is false."
    • removedOutput schema / properties / semantic_contract
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Goal facets when batch carries goal / routed_goal compile.",
      -  "type": "object"
      -}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "description": "Async job status at enqueue time.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / trace_id
      Removed value: -{
      -  "description": "Request trace id for logs and support.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / workflow_run_id
      Removed value: -{
      -  "description": "Client-supplied inverse run id for session continuity.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / workflow_state_key
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "ECS scope key echoed from observed.workflow_state_key.",
      -  "type": "object"
      -}
  14. Changed7 schema fields changed
    • addedOutput schema / properties / completion
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Workflow completion receipt when workflow_run_id is set.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / diagnostics
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Includes workflow_step_not_advancing when predicates block.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / instruction_packet
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Next-step packet after inverse stamp.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / instruction_slice
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Operator recovery slice for first failed step.",
      +  "type": "object"
      +}
    • changedOutput schema / properties / inverse_resume / description
      Previous value: -"On orchestration_step_violation — goal + agents.work_next handoff."New value: +"Inverse handoff on orchestration_step_violation or partial_success."
    • addedOutput schema / properties / next_step
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Playbook cursor after inverse stamp.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / partial_success
      Added value: +{
      +  "description": "True when some batch steps succeeded and some failed.",
      +  "type": "boolean"
      +}
  15. Changed6 schema fields changed
    • addedInput schema / properties / options / properties / semantic_contract
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Fingerprinted GoalSemanticContract — discovery/search parity for inverse batches.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / inverse_resume
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "On orchestration_step_violation — goal + agents.work_next handoff.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / observed
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Inverse orchestration slots after stamp (evidence, succeeded, completed_steps).",
      +  "type": "object"
      +}
    • addedOutput schema / properties / semantic_contract
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Goal facets when batch carries goal / routed_goal compile.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / workflow_run_id
      Added value: +{
      +  "description": "Client-supplied inverse run id for session continuity.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workflow_state_key
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "ECS scope key echoed from observed.workflow_state_key.",
      +  "type": "object"
      +}
  16. Changed2 schema fields changed
    • changedInput schema / description
      Previous value: -"Batch execute. One tool; each step names a dotted action."New value: +"Batch execute. One tool; each step names a dotted action. Structured result fields: see tools/list outputSchema on agentstack.execute."
    • changedOutput schema / description
      Previous value: -"Batch result. ok=true carries data; ok=false is a domain error (error_code, message, recovery); execution_mode=async is a job handoff (job_id, poll.action=discovery.job_status)."New value: +"Batch result. ok=true carries data; ok=false is a domain error (error_code, message, recovery); execution_mode=async is a job handoff (job_id, poll.action=discovery.job_status). tools/list readOnlyHint/destructiveHint describe the execute envelope; individual steps may still be read-only."
  17. Changed5 schema fields changed
    • removedOutput schema / $defs
      Removed value: -{
      -  "async_handoff": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "async_job_handoff": {
      -        "const": true
      -      },
      -      "execution_mode": {
      -        "const": "async"
      -      },
      -      "job_id": {
      -        "type": "string"
      -      },
      -      "poll": {
      -        "properties": {
      -          "action": {
      -            "const": "discovery.job_status"
      -          },
      -          "params": {
      -            "type": "object"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "status": {
      -        "type": "string"
      -      },
      -      "trace_id": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "execution_mode",
      -      "job_id"
      -    ],
      -    "type": "object"
      -  },
      -  "error": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "error_code": {
      -        "type": "string"
      -      },
      -      "failure_kind": {
      -        "enum": [
      -          "domain",
      -          "transport"
      -        ],
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "ok": {
      -        "const": false
      -      },
      -      "recovery": {
      -        "type": "object"
      -      },
      -      "trace_id": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "ok",
      -      "error_code",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  "success": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "capability_result": {
      -        "type": "object"
      -      },
      -      "data": {
      -        "additionalProperties": true,
      -        "description": "Step or batch payload",
      -        "type": "object"
      -      },
      -      "ok": {
      -        "type": "boolean"
      -      },
      -      "trace_id": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "ok"
      -    ],
      -    "type": "object"
      -  }
      -}
    • addedOutput schema / additionalProperties
      Added value: +true
    • addedOutput schema / description
      Added value: +"Batch result. ok=true carries data; ok=false is a domain error (error_code, message, recovery); execution_mode=async is a job handoff (job_id, poll.action=discovery.job_status)."
    • removedOutput schema / oneOf
      Removed value: -[
      -  {
      -    "$ref": "#/$defs/success"
      -  },
      -  {
      -    "$ref": "#/$defs/error"
      -  },
      -  {
      -    "$ref": "#/$defs/async_handoff"
      -  }
      -]
    • addedOutput schema / properties
      Added value: +{
      +  "async_job_handoff": {
      +    "description": "True when the client must poll instead of reading data.",
      +    "type": "boolean"
      +  },
      +  "capability_result": {
      +    "additionalProperties": true,
      +    "description": "CapabilityResult envelope when the step is a single action.",
      +    "type": "object"
      +  },
      +  "data": {
      +    "additionalProperties": true,
      +    "description": "Step or batch payload when the call succeeded.",
      +    "type": "object"
      +  },
      +  "error_code": {
      +    "description": "Stable code when ok is false (example: invalid_parameters).",
      +    "type": "string"
      +  },
      +  "execution_mode": {
      +    "description": "async when the batch was enqueued instead of run inline.",
      +    "type": "string"
      +  },
      +  "failure_kind": {
      +    "description": "domain stays isError=false; transport is a protocol failure.",
      +    "enum": [
      +      "domain",
      +      "transport"
      +    ],
      +    "type": "string"
      +  },
      +  "job_id": {
      +    "description": "Async job id. Poll with discovery.job_status.",
      +    "type": "string"
      +  },
      +  "message": {
      +    "description": "Human-readable failure text when ok is false.",
      +    "type": "string"
      +  },
      +  "ok": {
      +    "description": "False on domain failure. Omitted on async handoff.",
      +    "type": "boolean"
      +  },
      +  "poll": {
      +    "additionalProperties": true,
      +    "description": "How to resume an async job (action discovery.job_status).",
      +    "properties": {
      +      "action": {
      +        "description": "Poll action. Always discovery.job_status.",
      +        "type": "string"
      +      },
      +      "params": {
      +        "additionalProperties": true,
      +        "description": "Poll params, including job_id.",
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "recovery": {
      +    "additionalProperties": true,
      +    "description": "Next step when ok is false (action + params).",
      +    "type": "object"
      +  },
      +  "status": {
      +    "description": "Async job status at enqueue time.",
      +    "type": "string"
      +  },
      +  "trace_id": {
      +    "description": "Request trace id for logs and support.",
      +    "type": "string"
      +  }
      +}
  18. Changed6 schema fields changed
    • changedInput schema / properties / context / description
      Previous value: -"Execute scope. Set project_id on every batch after the session probe."New value: +"Execute scope: set project_id on every batch; optional locale (en, ru, pt, or BCP-47) overrides this request and is not saved."
    • addedInput schema / properties / context / properties / locale
      Added value: +{
      +  "description": "Optional. en, ru, pt, or BCP-47. Overrides this request and is not saved.",
      +  "type": "string"
      +}
    • addedOutput schema / $defs
      Added value: +{
      +  "async_handoff": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "async_job_handoff": {
      +        "const": true
      +      },
      +      "execution_mode": {
      +        "const": "async"
      +      },
      +      "job_id": {
      +        "type": "string"
      +      },
      +      "poll": {
      +        "properties": {
      +          "action": {
      +            "const": "discovery.job_status"
      +          },
      +          "params": {
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "status": {
      +        "type": "string"
      +      },
      +      "trace_id": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "execution_mode",
      +      "job_id"
      +    ],
      +    "type": "object"
      +  },
      +  "error": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "error_code": {
      +        "type": "string"
      +      },
      +      "failure_kind": {
      +        "enum": [
      +          "domain",
      +          "transport"
      +        ],
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "ok": {
      +        "const": false
      +      },
      +      "recovery": {
      +        "type": "object"
      +      },
      +      "trace_id": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "ok",
      +      "error_code",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  "success": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "capability_result": {
      +        "type": "object"
      +      },
      +      "data": {
      +        "additionalProperties": true,
      +        "description": "Step or batch payload",
      +        "type": "object"
      +      },
      +      "ok": {
      +        "type": "boolean"
      +      },
      +      "trace_id": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "ok"
      +    ],
      +    "type": "object"
      +  }
      +}
    • removedOutput schema / description
      Removed value: -"CapabilityResult envelope; see structuredContent on tools/call when present."
    • addedOutput schema / oneOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/success"
      +  },
      +  {
      +    "$ref": "#/$defs/error"
      +  },
      +  {
      +    "$ref": "#/$defs/async_handoff"
      +  }
      +]
    • removedOutput schema / properties
      Removed value: -{
      -  "data": {
      -    "additionalProperties": true,
      -    "description": "Step payload or batch receipt.",
      -    "type": "object"
      -  },
      -  "error_code": {
      -    "description": "Stable machine code when success is false.",
      -    "type": "string"
      -  },
      -  "success": {
      -    "description": "True when every step succeeded.",
      -    "type": "boolean"
      -  },
      -  "trace_id": {
      -    "description": "Request trace id for logs and support.",
      -    "type": "string"
      -  }
      -}
  19. Changed22 schema fields changed
    • addedInput schema / description
      Added value: +"Batch execute. One tool; each step names a dotted action."
    • addedInput schema / properties / context / description
      Added value: +"Execute scope. Set project_id on every batch after the session probe."
    • addedInput schema / properties / context / properties / generation_env_uuid / description
      Added value: +"Sandbox generation anchor (env_uuid). Not a recipe input."
    • addedInput schema / properties / context / properties / project_id / description
      Added value: +"Tenant project id. Required for project-scoped actions."
    • addedInput schema / properties / context / properties / user_id / description
      Added value: +"Caller user id. Usually taken from the session; do not invent it."
    • addedInput schema / properties / options / description
      Added value: +"Batch controls: async jobs, recipes, playbook progress, and error policy."
    • addedInput schema / properties / options / properties / continueOnError / description
      Added value: +"Keep later steps running after a failure. Opposite of stopOnError."
    • changedInput schema / properties / options / properties / envelope / description
      Previous value: -"Batch step payload shape — compact omits duplicate data/capability_result."New value: +"Batch step payload shape. compact omits duplicate data/capability_result."
    • addedInput schema / properties / options / properties / idempotency_key / description
      Added value: +"Client retry key. The same key returns the same receipt."
    • addedInput schema / properties / options / properties / stopOnError / description
      Added value: +"Stop the batch at the first failed step. Default true."
    • addedInput schema / properties / steps / items / description
      Added value: +"One action invocation inside the batch."
    • addedInput schema / properties / steps / items / properties / action / description
      Added value: +"Canonical dotted action id from GET /mcp/actions (example: auth.get_profile)."
    • addedInput schema / properties / steps / items / properties / id / description
      Added value: +"Step id unique within this batch. Referenced by options.observed."
    • addedInput schema / properties / steps / items / properties / if / additionalProperties
      Added value: +true
    • addedInput schema / properties / steps / items / properties / if / description
      Added value: +"Optional predicate. The step runs only when this condition matches."
    • addedInput schema / properties / steps / items / properties / params / additionalProperties
      Added value: +true
    • addedInput schema / properties / steps / items / properties / params / description
      Added value: +"Action arguments. Shape comes from discovery.describe for that action."
    • addedOutput schema / properties / data / additionalProperties
      Added value: +true
    • addedOutput schema / properties / data / description
      Added value: +"Step payload or batch receipt."
    • addedOutput schema / properties / error_code / description
      Added value: +"Stable machine code when success is false."
    • addedOutput schema / properties / success / description
      Added value: +"True when every step succeeded."
    • addedOutput schema / properties / trace_id / description
      Added value: +"Request trace id for logs and support."
  20. First observed

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, openWorld=true, idempotent=false, destructive=false; the description adds required auth via Connect/Device Code, project_id on every batch, CAS/leases, and async polling. It does not contradict annotations and adds meaningful operational constraints, though it omits some mutation impact details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact but packed with internal jargon and repeated spine/agent sequences, and it does not front-load the tool's own purpose. Some auth/prompt details are useful context, but the structure is hard to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex nested batch executor with an output schema and annotations, it supplies auth prerequisites, project_id scoping, work-loop routing, and async behavior. Missing a plain-language statement of the tool's core action keeps it from full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents steps/context/options. The description adds only limited semantic guidance (project_id required, sync vs async, packet usage), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description frames the tool as the AgentStack work-graph control plane and names related planning/execution calls, but it never directly states that agentstack.execute runs a batch of catalog actions. The purpose is inferable from the tool name and schema, yet the description itself remains jargon-heavy and indirect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It prescribes an explicit sequence after session/project_id and says to follow packet.next_action, with discovery.search only when no packet and direct domain actions for one-shot CRM/upload. Alternatives are named, though the routing remains terse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources