Agents

Decide whether the inspection may proceed

BOTIE

Read the proposed asset, check its membership in allowed assets, and require the application’s approval flag.
Ready to test
0 passed · 0 failed · 3 not run

An empty floor. Start with the information your machine needs.

Received result

Your answer will arrive here.

Examples, experiments and workspace controls
Live values

Connect a tool's inputs to see what it produces. You can try a branch before connecting it to Result.

Try your own inputs

Use a copy of the example to try your own data. Keep the problem's assumptions in mind, and predict the effect of a change before checking the output. You can also add another branch to compare two ways of doing the calculation.

Start at an output arrow, then click or drag to an input. Drag empty space to pan. Delete removes a selection. Ctrl/Cmd+Z undoes a change.
Context for this challenge

Read the proposed asset, check its membership in allowed assets, and require the application’s approval flag.

Botie has a validated proposal. The application must check permission and approval before considering a stored receipt.

Inspect the component calculation
Require both checks(
  First check: Check membership(
    Value: Read a record field(
      Record: Already validated inspection proposal
      Field name: asset
    )
    Allowed values: Authoritative allowed assets
  )
  Second check: Application approval for this exact request
)
Examples and results
Already validated inspection proposal
{
  "request_id": "r7",
  "asset": "P-2",
  "minutes": 20
}
Authoritative allowed assets
  1. 0P-2
Application approval for this exact request
true
Required result
true
Already validated inspection proposal
{
  "request_id": "r7",
  "asset": "P-2",
  "minutes": 20
}
Authoritative allowed assets
  1. 0P-2
Application approval for this exact request
true
Required result
true
Already validated inspection proposal
{
  "request_id": "r7",
  "asset": "P-2",
  "minutes": 20
}
Authoritative allowed assets
  1. 0P-1
Application approval for this exact request
true
Required result
false
Try a fresh construction

This clears this draft, including its undo history. Earlier successful attempts stay recorded. Build again without opening hints to record an independent attempt.

Stuck? Inspect a worked construction

The tools below form one possible solution. You can assemble it, follow its signals, and undo that change to return to your own construction.

Assumptions and test precision

This circuit returns a decision label only. Production execution requires bound approval and atomic, durable idempotency storage. Numerical tests allow a difference of 0.001. Lists and structures must also have the right shape.

Your last tested pieces can start the full construction. An existing draft there keeps its own pieces.

A permitted asset still needs approval

This check uses the pieces from “Choose an action from checked request state”.

BOTIE

The caller may access P-4 and the request has no previous receipt. The exact inspection has not been approved. Decide whether the service may create it.
Already validated inspection proposal
{
  "request_id": "new-4",
  "asset": "P-4",
  "minutes": 15
}
Authoritative allowed assets
  1. 0P-4
Application approval for this exact request
false
Earlier request stored under this ID
null
No earlier record (null)
null

Use a number, text, or an array matching the requested result. For a matrix, put each row in brackets. Saving your prediction runs your current construction on these inputs and checks the earlier examples too.

Build a construction in the workspace above first. This case will test those pieces.

Why would two parallel workers still need an atomic store after agreeing on create?

The decision table explains the policy; durable service operations must enforce it under concurrency and failure.

This circuit returns a decision label only. Production execution requires bound approval and atomic, durable idempotency storage.

Work through the Python challenges →
Continue the courseWhich Records Should Botie Bring into the Conversation? →
← Can Another Program Use Botie’s Answer?