Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
c6ec1be
docs(sdk): remove Python compat REST reference
hey-august Sep 6, 2026
9929d29
docs(sdk): add Messages and Projects REST resources
hey-august Sep 6, 2026
4105dae
docs(sdk): document RequestOptions, paginate, and transport errors
hey-august Sep 6, 2026
d5f31eb
docs(sdk): FunctionResult response is a prompt; add hold routing and …
hey-august Sep 6, 2026
26a6806
docs(sdk): add HandoffRouter and client capabilities
hey-august Sep 6, 2026
e072d2f
docs(sdk): add post-prompt normalization and on_call_end
hey-august Sep 6, 2026
188704f
docs(sdk): add mount, add_per_call_config, handle_request, set_multil…
hey-august Sep 6, 2026
40b841a
docs(sdk): contexts set_history, gather isolated, and validate checks
hey-august Sep 6, 2026
e2b71ba
docs(sdk): add typed Relay Call convenience methods
hey-august Sep 6, 2026
fae91ef
docs(sdk): sync env vars, CLI flags, and helpers with SDK 3.3.0
hey-august Sep 6, 2026
2753b95
docs(sdk): redirect compat URLs and drop compat from the REST overview
hey-august Sep 6, 2026
b431f17
docs(sdk): authenticate handle_request examples
hey-august Sep 8, 2026
e9a10a3
docs(sdk): correct paginate coverage and Projects.create return type
hey-august Sep 8, 2026
6844a77
docs(sdk): derive handoff conversation ID from chat_handle
hey-august Sep 8, 2026
a431230
docs(sdk): fix FunctionResult and AgentBase claims against 3.3.0 source
hey-august Sep 8, 2026
9b931af
docs(sdk): source Relay detect and ringtone parameter descriptions
hey-august Sep 8, 2026
b86e999
docs(sdk): detect_fax omitted tone matches either tone
hey-august Sep 8, 2026
3fa2cdc
docs(sdk): normalize Python reference types, defaults, and headings
hey-august Sep 8, 2026
1e546c3
Merge branch 'main' into august-20260904-update-python
hey-august Sep 8, 2026
e867cca
docs(sdk): resync Python reference to signalwire-python v3.4.1
hey-august Sep 9, 2026
001da8c
Merge remote-tracking branch 'origin/main' into august-20260904-updat…
hey-august Sep 9, 2026
a8e45a5
Merge remote-tracking branch 'origin/main' into august-20260904-updat…
hey-august Sep 9, 2026
35dd575
docs(sdk): qualify spacy backend caveats on index_nlp_backend
hey-august Sep 9, 2026
2e1ced6
docs(sdk): use max_results and areacode in phone number search examples
hey-august Sep 10, 2026
62e68b3
docs(sdk): show what wait_for_ringing and wait_for_answered actually …
hey-august Sep 10, 2026
27935ce
docs(sdk): document projects.get and projects.delete parameters and r…
hey-august Sep 10, 2026
a65ffdf
docs(sdk): fix highlight ranges, card order, and datasphere env var name
hey-august Sep 10, 2026
40f687f
docs(rules): drop bold from reference section headings
hey-august Sep 10, 2026
aba5039
docs(sdk): plain section headings on new Python reference pages
hey-august Sep 10, 2026
83ac2b9
docs(sdk): fix routing callback shape and Relay action claims
hey-august Sep 10, 2026
60c048a
docs(sdk): fix Python kwargs in manage-resources guide
hey-august Sep 10, 2026
4fec968
docs(sdk): reference-page structure fixes
hey-august Sep 10, 2026
e2d21e0
docs(sdk): fix control_id return claims in REST calling reference
hey-august Sep 10, 2026
68386f0
Merge branch 'main' into august-20260904-update-python
hey-august Sep 10, 2026
cff0f3b
docs(sdk): add CollectAction pause and resume reference pages
hey-august Sep 10, 2026
6152453
docs(sdk): document SIGNALWIRE_SPACE behavior across Python clients
hey-august Sep 11, 2026
8e7b229
docs(sdk): use plain section headings on CollectAction pause and resume
hey-august Sep 11, 2026
e2503ff
Merge branch 'main' into august-20260904-update-python
hey-august Sep 11, 2026
63c62a4
Merge branch 'main' into august-20260904-update-python
hey-august Sep 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .claude/rules/mdx-reference-pages.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ paths:
Applies wherever an interface is documented: SWML methods, SDK reference, Call Flow Builder nodes, cXML verbs, param-bearing snippets.

- One page per symbol, terse and lookup-oriented (~50–80 lines): intro sentence → optional `Note`/`Warning` → params → returns/variables → examples.
- Section names are bolded verbatim: `## **Parameters**` (functions/methods), `## **Properties**` (data objects), `## **Returns**`, `## **Variables**` (SWML methods that set any), `## **Examples**`.
- Section names are plain headings, verbatim: `## Parameters` (functions/methods), `## Properties` (data objects), `## Returns`, `## Variables` (SWML methods that set any), `## Examples`. Don't bold them — Fern renders headings identically either way, and most existing pages still carry the old `## **Parameters**` form; leave those as they are unless you're already rewriting the page.
- One `<ParamField>` per element, in source order. `path` = bare name for function args, dot-notation for object keys (`answer.max_duration`); nest children in `<Indent>` (blank lines inside). Types in the language's own terms (`str` for Python, `string` for SWML/JSON).
- XML elements (cXML verbs): the heading is `## Attributes` — unbolded, the one exception — with the bare attribute name as `path`. Callbacks/events: `## **Parameters**` with the handler as the param, its payload fields documented inline beneath it.
- XML elements (cXML verbs): the heading is `## Attributes`, with the bare attribute name as `path`. Callbacks/events: `## Parameters` with the handler as the param, its payload fields documented inline beneath it.
- `required={true}` only on required params — never `required={false}`. `default` only when the source defines one. `toc={true}` on reference params.
- SWML method pages: every example in both YAML and JSON inside `<CodeBlocks>`.
- Server SDK reference: mirror the SDK's own naming and types per language — verify against source, and sync any edit across every language variant of the page.
Expand Down
8 changes: 8 additions & 0 deletions fern/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,14 @@ redirects:
- source: /docs/server-sdks/reference/typescript/agents/swml-service/on-request
destination: /docs/server-sdks/reference/typescript/agents/swml-service/set-on-request-callback

# The Python SDK removed its Twilio-compatibility REST namespace
# (`client.compat`, signalwire-python 3d08c96); the pages that documented it
# are gone. Send old URLs to the Python REST overview.
- source: /docs/server-sdks/reference/python/rest/compat
destination: /docs/server-sdks/reference/python/rest
- source: /docs/server-sdks/reference/python/rest/compat/:slug*
destination: /docs/server-sdks/reference/python/rest

# The prompt writing techniques guide duplicated the prompt engineering
# overview; the additive parts were merged into it and the page removed.
- source: /docs/platform/ai/prompt-engineering/best-practices
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -418,8 +418,8 @@ Search SignalWire DataSphere documents.
| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `space_name` | string | DataSphere space name | Required |
| `project_id` | string | Project ID (falls back to `SIGNALWIRE_PROJECT_ID`) | Required |
| `token` | string | API token (falls back to `SIGNALWIRE_TOKEN`) | Required |
| `project_id` | string | Project ID | Required |
| `token` | string | API token | Required |
| `document_id` | string | Document ID to search within | Required |
| `tool_name` | string | Custom function name | "search_knowledge" |
| `count` | integer | Results to return (1-10) | 1 |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ FunctionResult CheckOrder(Dictionary<string, object> args, Dictionary<string, ob

| Component | Description |
|-----------|-------------|
| `response` | Text the AI will speak to the caller |
| `response` | A prompt injected into the model's context. Write it as an instruction ("Tell the caller..."); the model decides what to say |
| `action` | List of actions to execute (transfers, SMS, context changes, etc.) |
| `post_process` | If `True`, AI speaks once more before actions execute (useful for confirmations) |

Expand All @@ -129,7 +129,7 @@ def transfer_to_support(self, args, raw_data):
department = args.get("department", "support")

return (
FunctionResult("I'll transfer you now")
FunctionResult("Tell the caller you're transferring them now.")
.connect("+15551234567", final=True)
)
```
Expand Down Expand Up @@ -893,15 +893,15 @@ Some actions end the call or AI session. Once a terminal action executes, subseq
```python
# Good - data saved before transfer
return (
FunctionResult("Transferring you now")
FunctionResult("Tell the caller you're transferring them now.")
.update_global_data({"transferred": True}) # Executes
.send_sms(to_number=phone, body="...") # Executes
.connect("+15551234567", final=True) # Terminal
)

# Risky - SMS might not send
return (
FunctionResult("Transferring you now")
FunctionResult("Tell the caller you're transferring them now.")
.connect("+15551234567", final=True) # Terminal - call leaves
.send_sms(to_number=phone, body="...") # May not execute
)
Expand All @@ -926,7 +926,7 @@ When `post_process=True`, the AI speaks the response and can respond to follow-u
```python
return (
FunctionResult(
"I'll transfer you. Anything else first?",
"Tell the caller you'll transfer them, and ask if there's anything else first.",
post_process=True # AI waits for response
)
.connect("+15551234567", final=True) # Executes after AI finishes
Expand Down
Loading
Loading