backloop-sdk 0.1.3__tar.gz → 0.1.4__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.
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/PKG-INFO +1 -1
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/pyproject.toml +1 -1
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/__init__.py +1 -1
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/_generated.py +1 -1
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/.gitignore +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/LICENSE +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/README.md +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/_http.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/client.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/forward.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/ids.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/integrations.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/py.typed +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/redact.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/server.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/tool.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/types.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/src/backloop/validate.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/__init__.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/helpers.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/test_client.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/test_forward.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/test_ids.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/test_integrations.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/test_redact.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/test_server.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/test_tool.py +0 -0
- {backloop_sdk-0.1.3 → backloop_sdk-0.1.4}/tests/test_validate.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: backloop-sdk
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Python SDK for the Agent Feedback Protocol: validate, send and receive structured feedback from AI agents.
|
|
5
5
|
Project-URL: Homepage, https://trybackloop.com
|
|
6
6
|
Project-URL: Specification, https://trybackloop.com/spec/
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "backloop-sdk"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.4"
|
|
8
8
|
description = "Python SDK for the Agent Feedback Protocol: validate, send and receive structured feedback from AI agents."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -7,6 +7,6 @@ RECORD_SCHEMA = json.loads("{\"$schema\":\"https://json-schema.org/draft/2020-12
|
|
|
7
7
|
|
|
8
8
|
ACK_SCHEMA = json.loads("{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"$id\":\"https://trybackloop.com/schemas/agent-feedback/0.1/ack.schema.json\",\"title\":\"Agent Feedback Acknowledgement\",\"description\":\"Body of a 202 response to POST /feedback.\",\"type\":\"object\",\"required\":[\"id\",\"status\",\"received_at\"],\"properties\":{\"id\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"const\":\"accepted\"},\"received_at\":{\"type\":\"string\",\"format\":\"date-time\"},\"known_issue\":{\"description\":\"Present when the service already tracks this problem. Agents can use it to stop retrying or to apply a known workaround.\",\"type\":\"object\",\"required\":[\"id\",\"title\",\"status\"],\"properties\":{\"id\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"status\":{\"type\":\"string\",\"enum\":[\"acknowledged\",\"planned\",\"in_progress\",\"fixed\",\"wont_fix\"]},\"url\":{\"type\":\"string\"},\"workaround\":{\"type\":\"string\"}}}}}")
|
|
9
9
|
|
|
10
|
-
AGENT_FEEDBACK_INSTRUCTIONS = "## Reporting feedback to the services you use\n\nThe services you call accept structured feedback through `POST /feedback` (or the `submit_feedback` tool). Your reports go to the engineers who build the service and are used to fix what got in your way. Use it.\n\n**Submit feedback when something prevented or complicated your task:**\n- a capability you needed does not exist (a filter, field, endpoint or bulk operation);\n- the documentation was missing, ambiguous or wrong, and you had to guess;\n- a response was surprising or inconsistent with the docs;\n- an error message did not tell you how to fix the request;\n- the service behaved incorrectly;\n- latency, rate limits or pagination made the task impractical.\n\n**Don't submit feedback** for your own mistakes that the service reported clearly, for things you have not tried, or more than once for the same problem in the same task.\n\n**Write it like this:**\n- `goal`: what you or your user were trying to accomplish, in plain language. \"Find companies currently hiring GTM engineers\", not \"call /companies/search\".\n- `message`: what got in the way, specifically. \"No hiring-role filter is available; `q` only matches company names.\"\n- `type`: `missing_capability`, `bug`, `unclear_documentation`, `unexpected_response`, `unhelpful_error`, `performance` or `other`.\n- Fill `endpoint`, `outcome` (`blocked`, `degraded` or `completed`), `workaround`, `expected` and `suggestion` when you know them. A concrete suggestion is the most useful thing you can give.\n- Reuse the same `session_id` for every report in one task.\n\n**Never include** credentials, API keys, tokens, passwords, personal data, or your user's private content. Describe the shape of a request, not its secrets.\n\n**Keep going.** Submitting feedback is best effort. Send it, then continue with the task or a workaround. If the response contains `known_issue`, the problem is already tracked: tell your user if it matters, and use the workaround if one is given."
|
|
10
|
+
AGENT_FEEDBACK_INSTRUCTIONS = "## Reporting feedback to the services you use\n\nThe services you call accept structured feedback through `POST /feedback` (or the `submit_feedback` tool). Your reports go to the engineers who build the service and are used to fix what got in your way. Use it.\n\n**Submit feedback when something prevented or complicated your task, even if you found a workaround:**\n- a capability you needed does not exist (a filter, field, endpoint or bulk operation), so you made extra calls, filtered results yourself, or gave up;\n- the documentation was missing, ambiguous or wrong, and you had to guess;\n- a response was surprising or inconsistent with the docs;\n- an error message did not tell you how to fix the request;\n- the service behaved incorrectly;\n- latency, rate limits or pagination made the task impractical.\n\n**Before your final answer,** check whether any of these happened. If one did and you have not reported it, report it now, then answer.\n\n**Don't submit feedback** for your own mistakes that the service reported clearly, for things you have not tried, or more than once for the same problem in the same task.\n\n**Write it like this:**\n- `goal`: what you or your user were trying to accomplish, in plain language. \"Find companies currently hiring GTM engineers\", not \"call /companies/search\".\n- `message`: what got in the way, specifically. \"No hiring-role filter is available; `q` only matches company names.\"\n- `type`: `missing_capability`, `bug`, `unclear_documentation`, `unexpected_response`, `unhelpful_error`, `performance` or `other`.\n- Fill `endpoint`, `outcome` (`blocked`, `degraded` or `completed`), `workaround`, `expected` and `suggestion` when you know them. A concrete suggestion is the most useful thing you can give.\n- Reuse the same `session_id` for every report in one task.\n\n**Never include** credentials, API keys, tokens, passwords, personal data, or your user's private content. Describe the shape of a request, not its secrets.\n\n**Keep going.** Submitting feedback is best effort. Send it, then continue with the task or a workaround. If the response contains `known_issue`, the problem is already tracked: tell your user if it matters, and use the workaround if one is given."
|
|
11
11
|
|
|
12
12
|
FEEDBACK_TOOL_DESCRIPTION = "Report a problem with this service to its engineering team. Call this when something prevented or complicated your task: a missing capability (filter, field, endpoint), unclear or wrong documentation, a surprising response, an unhelpful error, a bug, or impractical performance. Describe your goal in plain language, say specifically what got in the way, and include a concrete suggestion if you have one. Report each distinct problem once per task. Never include credentials, personal data or your user's private content. This is best effort: after calling it, continue with your task."
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|