docs: update planning docs with source decisions

This commit is contained in:
lda
2026-06-14 14:36:51 +07:00 Verified
parent d6ec4b0070
commit 35e1c169c0
3 changed files with 92 additions and 1 deletions
+28 -1
View File
@@ -115,6 +115,12 @@ The runtime does not know whether a node came from MCP, Python, OpenAPI, or a
built-in package. It resolves a `NodeSpec`, validates payloads, executes, records
trace, and commits reducer-aware state changes.
Platform sources such as `wf.std` and `wf.source` are process-provided sources.
They can appear in artifacts and runs without deployment self-bindings like
`wf.std=wf.std`; configured sources such as `local.ops` or `everything.default`
still use deployment bindings when a workflow needs portability across accounts
or workspaces.
## Source Model
The common provider output is `CapabilitySource`.
@@ -146,6 +152,17 @@ This seam is for static source inventory. MCP also has runtime pools,
auth/catalog stores, admin/apply behavior, and live checks, so it should not be
forced into a tiny static interface too early.
Source inventory is broader than workflow-callable nodes. Sources may own tools,
workflow capabilities, resources, and prompts. Current CLI smoke paths can list
resource and prompt names with `wf source resources` and `wf source prompts`
without fetching resource bodies or rendering prompt templates.
Resource refs are pass-by-value data using a logical source plus provider URI.
`wf.source.read_resource` is the explicit helper that dereferences such refs
through runtime/platform context and bounded output policy. Prompt rendering is
intentionally not a workflow helper yet; keep it at inventory/inspection level
until there is a concrete graph use case and bounded output contract.
## Demo: Python Source End To End
Write `ops.py`:
@@ -260,10 +277,17 @@ Expected run result:
- `wf status` summarizes target, sources, capabilities, runs, admin surfaces,
and registry availability.
- Capabilities can be listed, inspected, and called directly.
- `cap call` has compact/text output options for human and agent smoke checks
without dumping large raw provider payloads by default.
- Source resource/prompt inventories can be listed safely without reading or
rendering upstream content.
- Drafts can be created from capabilities and saved as immutable artifacts.
- Deployments bind logical sources to concrete sources.
- Deployments bind configured logical sources to concrete sources; platform
sources such as `wf.std` do not need self-bindings.
- Runs are persisted at stopped boundaries and can be inspected/listed.
- MCP upstream sessions are stateful through `McpRuntimePool`.
- Local/dev auth records support typed OAuth refresh-token credentials and
source-owned MCP auth binding; production secret storage remains future work.
- Python sources can run through the full draft -> artifact -> deployment -> run
lifecycle.
@@ -278,6 +302,9 @@ Expected run result:
- File-backed stores are the proven storage backend; SQL/secret-manager stores
are future work.
- MCP app/widget passthrough is not a durable workflow product feature yet.
- Prompt rendering is not exposed as a workflow helper source yet.
- Google Drive MCP is useful as manual OAuth/MCP smoke coverage, but not a
reliable regression fixture because provider quotas/permissions are unstable.
## Next Direction