dv-pipecat-flows 0.0.0.dev1644__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dv_pipecat_flows-0.0.0.dev1644/.claude/skills/loki-logs/SKILL.md +121 -0
- dv_pipecat_flows-0.0.0.dev1644/.claude/skills/loki-logs/query-reference.md +113 -0
- dv_pipecat_flows-0.0.0.dev1644/.gitattributes +2 -0
- dv_pipecat_flows-0.0.0.dev1644/.gitignore +184 -0
- dv_pipecat_flows-0.0.0.dev1644/.pre-commit-config.yaml +8 -0
- dv_pipecat_flows-0.0.0.dev1644/.python-version +1 -0
- dv_pipecat_flows-0.0.0.dev1644/.readthedocs.yaml +14 -0
- dv_pipecat_flows-0.0.0.dev1644/AGENTS.md +386 -0
- dv_pipecat_flows-0.0.0.dev1644/CHANGELOG.md +690 -0
- dv_pipecat_flows-0.0.0.dev1644/CLAUDE.md +8 -0
- dv_pipecat_flows-0.0.0.dev1644/CONTRIBUTING.md +320 -0
- dv_pipecat_flows-0.0.0.dev1644/LICENSE +24 -0
- dv_pipecat_flows-0.0.0.dev1644/MANIFEST.in +31 -0
- dv_pipecat_flows-0.0.0.dev1644/PKG-INFO +308 -0
- dv_pipecat_flows-0.0.0.dev1644/README.md +286 -0
- dv_pipecat_flows-0.0.0.dev1644/dev-requirements.txt +9 -0
- dv_pipecat_flows-0.0.0.dev1644/docker-compose.dev.yml +18 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/.eslintrc.json +20 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/.prettierrc +6 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/css/tailwind.css +17 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/examples/food_ordering.json +174 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/examples/movie_explorer.json +143 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/examples/patient_intake.json +266 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/examples/restaurant_reservation.json +107 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/examples/travel_planner.json +250 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/favicon.png +0 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/favicon.svg +7 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/index.html +152 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/editor/canvas.js +47 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/editor/editorState.js +45 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/editor/sidePanel.js +478 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/editor/toolbar.js +159 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/main.js +57 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/nodes/baseNode.js +202 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/nodes/endNode.js +82 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/nodes/flowNode.js +34 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/nodes/functionNode.js +237 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/nodes/index.js +32 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/nodes/mergeNode.js +69 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/nodes/startNode.js +40 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/types.js +48 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/utils/export.js +186 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/utils/helpers.js +22 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/utils/import.js +204 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/js/utils/validation.js +255 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/jsdoc.json +24 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/package-lock.json +5680 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/package.json +37 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/postcss.config.cjs +6 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/public/favicon.png +0 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/public/favicon.svg +7 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/tailwind.config.cjs +34 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/vercel.json +6 -0
- dv_pipecat_flows-0.0.0.dev1644/editor/vite.config.js +13 -0
- dv_pipecat_flows-0.0.0.dev1644/env.example +20 -0
- dv_pipecat_flows-0.0.0.dev1644/images/food-ordering-flow.png +0 -0
- dv_pipecat_flows-0.0.0.dev1644/pipecat-flows.png +0 -0
- dv_pipecat_flows-0.0.0.dev1644/pipecat_upgrade.md +138 -0
- dv_pipecat_flows-0.0.0.dev1644/pyproject.toml +80 -0
- dv_pipecat_flows-0.0.0.dev1644/remote-asterisk-code/README.md +307 -0
- dv_pipecat_flows-0.0.0.dev1644/remote-asterisk-code/extensions.conf +427 -0
- dv_pipecat_flows-0.0.0.dev1644/remote-asterisk-code/rtp.conf +163 -0
- dv_pipecat_flows-0.0.0.dev1644/requirements.txt +1 -0
- dv_pipecat_flows-0.0.0.dev1644/scripts/check-pypi-package.py +27 -0
- dv_pipecat_flows-0.0.0.dev1644/scripts/fix-ruff.sh +9 -0
- dv_pipecat_flows-0.0.0.dev1644/scripts/pre-commit.sh +27 -0
- dv_pipecat_flows-0.0.0.dev1644/setup.cfg +4 -0
- dv_pipecat_flows-0.0.0.dev1644/src/dv_pipecat_flows.egg-info/PKG-INFO +308 -0
- dv_pipecat_flows-0.0.0.dev1644/src/dv_pipecat_flows.egg-info/SOURCES.txt +78 -0
- dv_pipecat_flows-0.0.0.dev1644/src/dv_pipecat_flows.egg-info/dependency_links.txt +1 -0
- dv_pipecat_flows-0.0.0.dev1644/src/dv_pipecat_flows.egg-info/requires.txt +3 -0
- dv_pipecat_flows-0.0.0.dev1644/src/dv_pipecat_flows.egg-info/top_level.txt +1 -0
- dv_pipecat_flows-0.0.0.dev1644/src/pipecat_flows/__init__.py +60 -0
- dv_pipecat_flows-0.0.0.dev1644/src/pipecat_flows/actions.py +402 -0
- dv_pipecat_flows-0.0.0.dev1644/src/pipecat_flows/adapters.py +719 -0
- dv_pipecat_flows-0.0.0.dev1644/src/pipecat_flows/data_extractor.py +249 -0
- dv_pipecat_flows-0.0.0.dev1644/src/pipecat_flows/exceptions.py +62 -0
- dv_pipecat_flows-0.0.0.dev1644/src/pipecat_flows/manager.py +1374 -0
- dv_pipecat_flows-0.0.0.dev1644/src/pipecat_flows/types.py +453 -0
- dv_pipecat_flows-0.0.0.dev1644/uv.lock +3502 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: loki-logs
|
|
3
|
+
description: Fetch and analyze pipecat application logs from Loki by call ID or call SID. Use when debugging call issues, investigating errors, or analyzing bot behavior for a specific call. Accepts a call_id (UUID) or call_sid (numeric string like 3341710001) and optional environment (staging/production).
|
|
4
|
+
argument-hint: <call_id|call_sid> [staging|production]
|
|
5
|
+
allowed-tools: Bash(curl *), Bash(jq *)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Loki Logs Fetcher
|
|
9
|
+
|
|
10
|
+
Fetch logs from Loki for a specific pipecat call and analyze them.
|
|
11
|
+
|
|
12
|
+
## Parameters
|
|
13
|
+
|
|
14
|
+
- `$0` — **call_id or call_sid** (required): Either a UUID (e.g. `f3df923e-d535-4eff-a3c8-fefbae0e73bf`) or a numeric call SID string (e.g. `3341710001`)
|
|
15
|
+
- `$1` — **environment** (optional): `production` (default) or `staging`
|
|
16
|
+
|
|
17
|
+
## Instructions
|
|
18
|
+
|
|
19
|
+
When invoked, follow these steps:
|
|
20
|
+
|
|
21
|
+
### 1. Parse arguments
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
IDENTIFIER = $0
|
|
25
|
+
ENV = $1 (default: "production")
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If `ENV` is `prod`, normalize it to `production`.
|
|
29
|
+
If `IDENTIFIER` is missing, ask the user for it.
|
|
30
|
+
|
|
31
|
+
Detect the identifier type:
|
|
32
|
+
- **UUID format** (contains hyphens, hex chars, e.g. `f3df923e-d535-...`): This is a `call_id`
|
|
33
|
+
- **Numeric string** (digits only, e.g. `3341710001`): This is a `call_sid`
|
|
34
|
+
|
|
35
|
+
Both work the same way in the Loki query — they are used as a substring match (`|=`) against the log lines.
|
|
36
|
+
|
|
37
|
+
### 2. Fetch logs from Loki
|
|
38
|
+
|
|
39
|
+
Use the Loki HTTP API at `http://35.154.72.110:3100` to query logs.
|
|
40
|
+
|
|
41
|
+
The LogQL query to use:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
{application="pipecat", environment="<ENV>"} |= `<IDENTIFIER>` | json | level=~"(?i)DEBUG|INFO|WARNING|ERROR|FATAL" | line_format `{{.message}}`
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Execute this curl command (default time range: last 24 hours):
|
|
48
|
+
|
|
49
|
+
**Timezone note:** If the user provides a specific time or time range, treat it as **IST (Asia/Kolkata, UTC+5:30)**. Convert to UTC epoch before querying Loki.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Calculate timestamps (nanoseconds) — default: last 24 hours
|
|
53
|
+
END=$(date +%s)000000000
|
|
54
|
+
START=$(( $(date +%s) - 86400 ))000000000
|
|
55
|
+
|
|
56
|
+
curl -s "http://35.154.72.110:3100/loki/api/v1/query_range" \
|
|
57
|
+
--data-urlencode "query={application=\"pipecat\", environment=\"<ENV>\"} |= \`<IDENTIFIER>\` | json | level=~\"(?i)DEBUG|INFO|WARNING|ERROR|FATAL\" | line_format \`{{.message}}\`" \
|
|
58
|
+
--data-urlencode "start=$START" \
|
|
59
|
+
--data-urlencode "end=$END" \
|
|
60
|
+
--data-urlencode "limit=5000" \
|
|
61
|
+
--data-urlencode "direction=forward" | jq .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
If the result set is empty and the environment was `production`, suggest trying `staging` (and vice versa).
|
|
65
|
+
|
|
66
|
+
If the result set is empty for both, try expanding the time range to 48 hours.
|
|
67
|
+
|
|
68
|
+
### 3. Parse and display the logs
|
|
69
|
+
|
|
70
|
+
Extract the log lines from the Loki JSON response. The response structure is:
|
|
71
|
+
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"data": {
|
|
75
|
+
"result": [
|
|
76
|
+
{
|
|
77
|
+
"values": [
|
|
78
|
+
["<timestamp_ns>", "<log_line>"]
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Display the logs in chronological order (earliest first). Show:
|
|
87
|
+
- Timestamp (human-readable)
|
|
88
|
+
- Log level (if parseable)
|
|
89
|
+
- Message content
|
|
90
|
+
|
|
91
|
+
### 4. Analyze the logs
|
|
92
|
+
|
|
93
|
+
After displaying the logs, provide a brief analysis:
|
|
94
|
+
|
|
95
|
+
1. **Call timeline**: What happened during this call? (connected, greeted, conversation flow, ended)
|
|
96
|
+
2. **Errors/warnings**: Highlight any ERROR or WARNING level logs
|
|
97
|
+
3. **Tool calls**: List any function/tool calls made during the call
|
|
98
|
+
4. **TTS/STT activity**: Note any speech-related events
|
|
99
|
+
5. **Call outcome**: How did the call end? (normal hangup, error, transfer, timeout)
|
|
100
|
+
6. **Anomalies**: Flag anything unusual (long silences, repeated errors, unexpected state transitions)
|
|
101
|
+
|
|
102
|
+
### 5. Grafana link
|
|
103
|
+
|
|
104
|
+
Always provide a clickable Grafana Explore link for the user to view the logs in the browser:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
http://35.154.72.110:3000/explore?schemaVersion=1&panes=%7B%221f1%22%3A%7B%22datasource%22%3A%22eeey6hiactdz4c%22%2C%22queries%22%3A%5B%7B%22datasource%22%3A%7B%22type%22%3A%22loki%22%2C%22uid%22%3A%22eeey6hiactdz4c%22%7D%2C%22direction%22%3A%22backward%22%2C%22editorMode%22%3A%22code%22%2C%22expr%22%3A%22%7Bapplication%3D%5C%22pipecat%5C%22%2C+environment%3D%5C%22<ENV>%5C%22%7D+%7C%3D+%60<IDENTIFIER>%60+%7C+json+%7C+level%3D%7E%5C%22%28%3Fi%29DEBUG%7CINFO%7CWARNING%7CERROR%7C+FATAL%5C%22+%7C+line_format+%60%7B%7B.message%7D%7D%60%22%2C%22queryType%22%3A%22range%22%2C%22refId%22%3A%22A%22%7D%5D%2C%22range%22%3A%7B%22from%22%3A%22now-6h%22%2C%22to%22%3A%22now%22%7D%2C%22compact%22%3Afalse%7D%7D&orgId=1
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Replace `<ENV>` and `<IDENTIFIER>` in the URL with the actual values (URL-encoded where needed).
|
|
111
|
+
|
|
112
|
+
## Troubleshooting
|
|
113
|
+
|
|
114
|
+
- If curl times out, the Loki instance may be under heavy load — retry with a shorter time range or lower limit.
|
|
115
|
+
- If you get no results, confirm the call_id is correct and try the other environment.
|
|
116
|
+
- For very old calls (>48h), increase the time range or ask the user for an approximate time window.
|
|
117
|
+
- All user-provided times are in **IST (UTC+5:30)** — convert to UTC epoch before querying.
|
|
118
|
+
|
|
119
|
+
## Reference
|
|
120
|
+
|
|
121
|
+
For LogQL query syntax and more filtering options, see [query-reference.md](query-reference.md).
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# LogQL Query Reference for Pipecat Logs
|
|
2
|
+
|
|
3
|
+
## Base Query Pattern
|
|
4
|
+
|
|
5
|
+
```logql
|
|
6
|
+
{application="pipecat", environment="<env>"} |= `<call_id>` | json | level=~"(?i)DEBUG|INFO|WARNING|ERROR|FATAL" | line_format `{{.message}}`
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Common Variations
|
|
10
|
+
|
|
11
|
+
### Filter by log level
|
|
12
|
+
|
|
13
|
+
**Errors only:**
|
|
14
|
+
```logql
|
|
15
|
+
{application="pipecat", environment="staging"} |= `<call_id>` | json | level=~"(?i)ERROR|FATAL" | line_format `{{.message}}`
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Warnings and above:**
|
|
19
|
+
```logql
|
|
20
|
+
{application="pipecat", environment="staging"} |= `<call_id>` | json | level=~"(?i)WARNING|ERROR|FATAL" | line_format `{{.message}}`
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Filter by keyword
|
|
24
|
+
|
|
25
|
+
**LLM-related logs:**
|
|
26
|
+
```logql
|
|
27
|
+
{application="pipecat", environment="staging"} |= `<call_id>` | json | level=~"(?i)DEBUG|INFO|WARNING|ERROR|FATAL" | line_format `{{.message}}` |= "LLM"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**TTS-related logs:**
|
|
31
|
+
```logql
|
|
32
|
+
{application="pipecat", environment="staging"} |= `<call_id>` | json | line_format `{{.message}}` |= "TTS"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Tool/function call logs:**
|
|
36
|
+
```logql
|
|
37
|
+
{application="pipecat", environment="staging"} |= `<call_id>` | json | line_format `{{.message}}` |~ "function|tool_call|generic_function"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**VAD/speech detection:**
|
|
41
|
+
```logql
|
|
42
|
+
{application="pipecat", environment="staging"} |= `<call_id>` | json | line_format `{{.message}}` |~ "VAD|speaking|speech|silence|idle"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Search across all calls in an environment
|
|
46
|
+
|
|
47
|
+
**Recent errors (no call_id filter):**
|
|
48
|
+
```logql
|
|
49
|
+
{application="pipecat", environment="staging"} | json | level=~"(?i)ERROR|FATAL" | line_format `{{.message}}`
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**By pod name:**
|
|
53
|
+
```logql
|
|
54
|
+
{application="pipecat", environment="staging", pod=~"pipecat-.*"} | json | line_format `{{.message}}`
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Loki API Endpoints
|
|
58
|
+
|
|
59
|
+
| Endpoint | Purpose |
|
|
60
|
+
|----------|---------|
|
|
61
|
+
| `GET /loki/api/v1/query_range` | Query logs over a time range |
|
|
62
|
+
| `GET /loki/api/v1/query` | Query logs at a single point in time |
|
|
63
|
+
| `GET /loki/api/v1/labels` | List all label names |
|
|
64
|
+
| `GET /loki/api/v1/label/<name>/values` | List values for a label |
|
|
65
|
+
| `GET /loki/api/v1/tail` | Stream logs via WebSocket |
|
|
66
|
+
|
|
67
|
+
### API Parameters for query_range
|
|
68
|
+
|
|
69
|
+
| Parameter | Description | Example |
|
|
70
|
+
|-----------|-------------|---------|
|
|
71
|
+
| `query` | LogQL query string | `{application="pipecat"}` |
|
|
72
|
+
| `start` | Start timestamp (nanoseconds or RFC3339) | `1609459200000000000` |
|
|
73
|
+
| `end` | End timestamp (nanoseconds or RFC3339) | `1609545600000000000` |
|
|
74
|
+
| `limit` | Max entries to return | `5000` |
|
|
75
|
+
| `direction` | Sort order: `forward` or `backward` | `forward` |
|
|
76
|
+
| `step` | Query resolution step (for metrics) | `60s` |
|
|
77
|
+
|
|
78
|
+
## Response Structure
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"status": "success",
|
|
83
|
+
"data": {
|
|
84
|
+
"resultType": "streams",
|
|
85
|
+
"result": [
|
|
86
|
+
{
|
|
87
|
+
"stream": {
|
|
88
|
+
"application": "pipecat",
|
|
89
|
+
"environment": "staging",
|
|
90
|
+
"level": "INFO"
|
|
91
|
+
},
|
|
92
|
+
"values": [
|
|
93
|
+
["1700000000000000000", "log message here"],
|
|
94
|
+
["1700000001000000000", "another log message"]
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Environment Values
|
|
103
|
+
|
|
104
|
+
| Environment | Label Value | Description |
|
|
105
|
+
|-------------|-------------|-------------|
|
|
106
|
+
| Staging | `staging` | Test/staging environment |
|
|
107
|
+
| Production | `production` | Live production environment |
|
|
108
|
+
|
|
109
|
+
## Infrastructure
|
|
110
|
+
|
|
111
|
+
- **Loki endpoint**: `http://35.154.72.110:3100`
|
|
112
|
+
- **Grafana UI**: `http://35.154.72.110:3000`
|
|
113
|
+
- **Loki datasource UID**: `eeey6hiactdz4c`
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
.vscode
|
|
2
|
+
env/
|
|
3
|
+
__pycache__/
|
|
4
|
+
*~
|
|
5
|
+
venv
|
|
6
|
+
.venv
|
|
7
|
+
/.idea
|
|
8
|
+
#*#
|
|
9
|
+
data/
|
|
10
|
+
# Dependencies
|
|
11
|
+
node_modules/
|
|
12
|
+
npm-debug.log*
|
|
13
|
+
yarn-debug.log*
|
|
14
|
+
yarn-error.log*
|
|
15
|
+
.pnpm-debug.log*
|
|
16
|
+
|
|
17
|
+
# Production build
|
|
18
|
+
dist/
|
|
19
|
+
build/
|
|
20
|
+
|
|
21
|
+
# IDE - VSCode
|
|
22
|
+
.vscode/
|
|
23
|
+
*.code-workspace
|
|
24
|
+
.history
|
|
25
|
+
|
|
26
|
+
# IDE - WebStorm/IntelliJ
|
|
27
|
+
.idea/
|
|
28
|
+
*.iml
|
|
29
|
+
*.iws
|
|
30
|
+
*.ipr
|
|
31
|
+
|
|
32
|
+
# IDE - Sublime Text
|
|
33
|
+
*.sublime-workspace
|
|
34
|
+
*.sublime-project
|
|
35
|
+
|
|
36
|
+
# macOS
|
|
37
|
+
.DS_Store
|
|
38
|
+
.AppleDouble
|
|
39
|
+
.LSOverride
|
|
40
|
+
._*
|
|
41
|
+
|
|
42
|
+
# Windows
|
|
43
|
+
Thumbs.db
|
|
44
|
+
Thumbs.db:encryptable
|
|
45
|
+
ehthumbs.db
|
|
46
|
+
ehthumbs_vista.db
|
|
47
|
+
*.lnk
|
|
48
|
+
|
|
49
|
+
# Local development settings
|
|
50
|
+
.env
|
|
51
|
+
.env.local
|
|
52
|
+
.env.development.local
|
|
53
|
+
.env.test.local
|
|
54
|
+
.env.production.local
|
|
55
|
+
|
|
56
|
+
# Debug logs
|
|
57
|
+
logs/
|
|
58
|
+
*.log
|
|
59
|
+
npm-debug.log*
|
|
60
|
+
|
|
61
|
+
# Optional: Cache directories
|
|
62
|
+
.cache/
|
|
63
|
+
.npm/
|
|
64
|
+
.eslintcache
|
|
65
|
+
|
|
66
|
+
# Optional: Editor directories and files
|
|
67
|
+
.project
|
|
68
|
+
.settings/
|
|
69
|
+
*.suo
|
|
70
|
+
*.ntvs*
|
|
71
|
+
*.njsproj
|
|
72
|
+
*.sln
|
|
73
|
+
*.sw?
|
|
74
|
+
|
|
75
|
+
# Auto-generated docs
|
|
76
|
+
docs/api
|
|
77
|
+
docs/_build/
|
|
78
|
+
|
|
79
|
+
# Python
|
|
80
|
+
__pycache__/
|
|
81
|
+
*.py[cod]
|
|
82
|
+
*$py.class
|
|
83
|
+
*.so
|
|
84
|
+
.Python
|
|
85
|
+
develop-eggs/
|
|
86
|
+
downloads/
|
|
87
|
+
eggs/
|
|
88
|
+
.eggs/
|
|
89
|
+
lib/
|
|
90
|
+
lib64/
|
|
91
|
+
parts/
|
|
92
|
+
sdist/
|
|
93
|
+
var/
|
|
94
|
+
wheels/
|
|
95
|
+
*.egg-info/
|
|
96
|
+
.installed.cfg
|
|
97
|
+
*.egg
|
|
98
|
+
MANIFEST
|
|
99
|
+
.python-version
|
|
100
|
+
*.pyc
|
|
101
|
+
|
|
102
|
+
# Virtual Environment
|
|
103
|
+
venv/
|
|
104
|
+
ENV/
|
|
105
|
+
env/
|
|
106
|
+
.env/
|
|
107
|
+
.venv/
|
|
108
|
+
env.bak/
|
|
109
|
+
venv.bak/
|
|
110
|
+
|
|
111
|
+
# Testing
|
|
112
|
+
.tox/
|
|
113
|
+
.coverage
|
|
114
|
+
.coverage.*
|
|
115
|
+
.cache
|
|
116
|
+
nosetests.xml
|
|
117
|
+
coverage.xml
|
|
118
|
+
*.cover
|
|
119
|
+
.hypothesis/
|
|
120
|
+
.pytest_cache/
|
|
121
|
+
htmlcov/
|
|
122
|
+
|
|
123
|
+
# mypy
|
|
124
|
+
.mypy_cache/
|
|
125
|
+
.dmypy.json
|
|
126
|
+
dmypy.json
|
|
127
|
+
|
|
128
|
+
# Jupyter Notebook
|
|
129
|
+
.ipynb_checkpoints
|
|
130
|
+
|
|
131
|
+
# IPython
|
|
132
|
+
profile_default/
|
|
133
|
+
ipython_config.py
|
|
134
|
+
|
|
135
|
+
# Spyder project settings
|
|
136
|
+
.spyderproject
|
|
137
|
+
.spyproject
|
|
138
|
+
|
|
139
|
+
# Rope project settings
|
|
140
|
+
.ropeproject
|
|
141
|
+
|
|
142
|
+
# Distribution / packaging
|
|
143
|
+
.Python
|
|
144
|
+
build/
|
|
145
|
+
develop-eggs/
|
|
146
|
+
pipecat_dist/
|
|
147
|
+
dist/
|
|
148
|
+
downloads/
|
|
149
|
+
eggs/
|
|
150
|
+
.eggs/
|
|
151
|
+
lib/
|
|
152
|
+
lib64/
|
|
153
|
+
parts/
|
|
154
|
+
sdist/
|
|
155
|
+
var/
|
|
156
|
+
wheels/
|
|
157
|
+
share/python-wheels/
|
|
158
|
+
*.egg-info/
|
|
159
|
+
.installed.cfg
|
|
160
|
+
*.egg
|
|
161
|
+
MANIFEST
|
|
162
|
+
.DS_Store
|
|
163
|
+
.env
|
|
164
|
+
fly.toml
|
|
165
|
+
|
|
166
|
+
# macOS
|
|
167
|
+
.DS_Store
|
|
168
|
+
|
|
169
|
+
# Documentation
|
|
170
|
+
docs/api/_build/
|
|
171
|
+
docs/api/api
|
|
172
|
+
memory-bank/
|
|
173
|
+
|
|
174
|
+
# Logs
|
|
175
|
+
logs/*
|
|
176
|
+
|
|
177
|
+
# Repomix
|
|
178
|
+
repomix*
|
|
179
|
+
|
|
180
|
+
creds.json
|
|
181
|
+
MANIFEST
|
|
182
|
+
|
|
183
|
+
# Asterisk configs
|
|
184
|
+
remote-asterisk-code/pjsip.conf
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12.0
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
build:
|
|
4
|
+
os: ubuntu-22.04
|
|
5
|
+
tools:
|
|
6
|
+
python: '3.12'
|
|
7
|
+
jobs:
|
|
8
|
+
post_install:
|
|
9
|
+
- pip install uv
|
|
10
|
+
- UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH uv sync --group docs
|
|
11
|
+
|
|
12
|
+
sphinx:
|
|
13
|
+
configuration: docs/conf.py
|
|
14
|
+
fail_on_warning: false
|