@spfunctions/sdk@1.0.1 and @spfunctions/agent@1.0.2.
The packages are now published. This page remains as release evidence and rollback guidance.
Current package status
The CLI is not the Agent SDK.
sf agent --tool is the command-line wrapper around direct canonical tool semantics.
Release boundary
The 1.0 release means publishing the stable TypeScript package surfaces after approval. Live execution remains policy-gated and opt-in.@spfunctions/sdk release scope:
- typed client over stable SimpleFunctions object and contract surfaces
- API-key-first identity
- strict manifest access through
GET /api/contracts/tools - read, research, authenticated read, explicit thesis-write surfaces, and governed Kalshi/Polymarket execution
- typed errors and contract preflight
@spfunctions/agent release scope:
- governed direct tool runner
describe(),call(), andstream()- strict canonical tool names only
- policy gates for permissions,
sideEffect, andcostEffect - trace record/replay
- policy-gated live execution through an API-keyed
SimpleFunctionsclient - v1 model loop with provider adapter, sessions, hooks, watch primitives, and Cursor-style compatibility
- MCP runtime
- browser runtime with long-lived keys
- hosted sessions, hosted traces, or human approval services
events.*market.relatedauth.statusinvestigations.createintents.proposewebhooks.create- unguarded live trading
Required gates
Verification commands
Run these commands as package verification. They do not publish by themselves. Full local readiness gate:- SDK and Agent build must clean stale
dist/before compiling. - SDK and Agent packages must not publish
src/, examples, scripts, tests,.env, source maps, declaration maps, orsourceMappingURL. - SDK and Agent should not use CLI-style single-file bundling unless the package API, declarations, subpath exports, and consumer tree-shaking are revalidated.
Manual publish procedure
The following commands are the manual stable publish shape used by the release operator. Preconditions:- approval explicitly says which package to publish
private:truehas been intentionally removed in a reviewed release PR- version has been chosen and committed in git
- tarball smoke has passed from a clean worktree
- production smoke has passed
- npm account is logged in and 2FA OTP is available
Rollback and deprecate plan
If a bad stable package is published:- Publish a fixed patch version from latest
origin/main. - Fresh-install smoke the fixed version.
- Deprecate the bad version with an npm 2FA OTP.
- Update docs and release notes to point at the fixed version.
API key policy
SDK and Agent packages are API-key-first.- SDK constructor may accept
apiKey?: string - SDK no-key access is limited to strict manifest inspection and explicitly allowlisted free public reads
- current no-key SDK live data calls such as
sf.world.get()must throwMissingApiKeyError - Agent live execution requires an API-keyed
SimpleFunctionsclient - Agent
inspectOnlyandreplayOnlymay run without a key - replay miss must never fall through to live execution
- browser examples must not expose long-lived API keys
v0 and v1 Agent boundary
@spfunctions/agent v0 is the governed direct tool runner. It is not a model-backed runtime.
v0 includes:
- strict tool registry loading
- direct canonical calls
- stream events
- policy gates
- trace and replay
- typed errors
@spfunctions/agent/v1.
v1 includes:
query()andstartup()APIs- model provider interfaces
- OpenRouter provider
- local sessions and resume/fork behavior
- hooks
- subagents
- watch primitives
Decision checklist
Before approving stable publish, answer these questions:
If any answer is not “Yes”, do not publish.