No discovery contract for exo interfaces: agents enumerate methods by triggering TypeErrors #19
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
There is no supported way to ask a capability what it can do. The fastest
reliable technique — used repeatedly in session
mt82q1ns-l8nrge, andreproduced within five minutes by a later session analysing it — is to call a
method that does not exist and read the error:
That gives names only. Arity, argument shapes and return shapes still have to
be reverse-engineered from source. Measured over that session:
endo-srcfor an interface(
interfaces.js,host.js,caplet.js,deploy-charts.js).__getMethodNames__.try {}because the agentcannot predict which method exists.
help().help()exists on most exos but is not mentioned in the agent prompt andevidently does not return enough to displace source-reading.
Wanted: make
help()the contract. Every exo returns method names witharity, argument shape, return shape and a one-line example, derived from the
existing
M.interfaceguard, which already carries most of this. Then say soin the agent prompt.