@spfunctions/sdk is published as a stable npm package.
The SDK is a typed wrapper over existing SimpleFunctions HTTP/Data API objects. It does not create a second object model and it does not shell out to the CLI.
SF_API_KEY values in browser bundles.
Read-first surfaces
sideEffect: none in the draft contract map.
The market-intelligence resource exposes the existing screening and analytics surfaces:
sf.manifest.* reads the strict SDK/Agent contract manifest from /api/contracts/tools. It uses canonical dotted names such as world.read; broad hosted tool names from /api/tools, such as get_world_state, are compatibility inventory names and are not SDK contract truth.
The SDK is API-key-first. Manifest inspection is the no-key bootstrap path. Data and research calls are preflighted against the strict contract metadata; if a tool has costEffect or access.anonymousAllowed: false, the SDK throws MissingApiKeyError before the live request when no API key is configured.
Authenticated reads
SF_API_KEY or an explicit apiKey.
Not included
The SDK now exposes Kalshi and Polymarket runtime-backed execution through policy-visible contract tools. It still does not implement daemon mode, hosted long-running agents, MCP expansion, or a Python SDK rewrite. The SDK is also not the Agent SDK.@spfunctions/agent is published as a stable package with a Cursor-style Agent.create().send().stream() surface for market-intelligence agents. The current sf agent --tool CLI path is a command-line wrapper around direct-tool semantics, not the Agent SDK itself.
Agent consumers can let the Agent SDK create the SDK client from an API key:
/api/tools as truth and does not shell out to the CLI.
Alpha boundaries
The package exposes the governed strict subset first.runtime.status, runtime.ensure, execution.place, intents.create, intents.get, and intents.cancel are explicit contract tools for Kalshi and Polymarket execution and intent management. execution.place uses daemon-aware SDK runtime orchestration before creating an executable intent, without depending on the CLI package. Deferred or hallucination-risk surfaces such as events.*, market.related, auth.status, investigations.create, intents.propose, and webhooks.create stay out of the SDK/Agent default surface until they have explicit contract, auth, side-effect, cost, and policy decisions. The legacy live_trade name remains only as a compatibility alias for execution.place.