Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
A
aisbf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexlab
aisbf
Commits
74331dbb
Commit
74331dbb
authored
Apr 21, 2026
by
Your Name
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bump version to 0.99.43
parent
42cdb535
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
22 additions
and
4 deletions
+22
-4
__init__.py
aisbf/__init__.py
+1
-1
claude.py
aisbf/providers/claude.py
+12
-0
main.py
main.py
+3
-1
pyproject.toml
pyproject.toml
+1
-1
setup.py
setup.py
+1
-1
providers.html
templates/dashboard/providers.html
+2
-0
user_providers.html
templates/dashboard/user_providers.html
+2
-0
No files found.
aisbf/__init__.py
View file @
74331dbb
...
@@ -54,7 +54,7 @@ from .auth.qwen import QwenOAuth2
...
@@ -54,7 +54,7 @@ from .auth.qwen import QwenOAuth2
from
.handlers
import
RequestHandler
,
RotationHandler
,
AutoselectHandler
from
.handlers
import
RequestHandler
,
RotationHandler
,
AutoselectHandler
from
.utils
import
count_messages_tokens
,
split_messages_into_chunks
,
get_max_request_tokens_for_model
from
.utils
import
count_messages_tokens
,
split_messages_into_chunks
,
get_max_request_tokens_for_model
__version__
=
"0.99.4
2
"
__version__
=
"0.99.4
3
"
__all__
=
[
__all__
=
[
# Config
# Config
"config"
,
"config"
,
...
...
aisbf/providers/claude.py
View file @
74331dbb
...
@@ -837,6 +837,18 @@ class ClaudeProviderHandler(BaseProviderHandler):
...
@@ -837,6 +837,18 @@ class ClaudeProviderHandler(BaseProviderHandler):
system_message
,
anthropic_messages
=
self
.
_convert_messages_to_anthropic
(
validated_messages
)
system_message
,
anthropic_messages
=
self
.
_convert_messages_to_anthropic
(
validated_messages
)
# Sanitize system message to avoid Claude's unofficial client detection
# Replace "You are Kilo," or "You are Kiro," with "You are" to prevent
# contradiction with "You are Claude Code" that triggers detection
if
system_message
:
import
re
system_message
=
re
.
sub
(
r'\bYou are (Kilo|Kiro),'
,
'You are'
,
system_message
,
flags
=
re
.
IGNORECASE
)
payload
=
{
payload
=
{
'model'
:
model
,
'model'
:
model
,
'messages'
:
anthropic_messages
,
'messages'
:
anthropic_messages
,
...
...
main.py
View file @
74331dbb
...
@@ -8058,7 +8058,9 @@ async def dashboard_add_payment_method_paypal_oauth(request: Request):
...
@@ -8058,7 +8058,9 @@ async def dashboard_add_payment_method_paypal_oauth(request: Request):
paypal_auth_url
=
f
"{auth_base_url}?{urlencode(params)}"
paypal_auth_url
=
f
"{auth_base_url}?{urlencode(params)}"
logger
.
info
(
f
"Initiating PayPal OAuth for user {user_id}, sandbox={is_sandbox}"
)
logger
.
info
(
f
"Initiating PayPal OAuth for user {user_id}, sandbox={is_sandbox}"
)
logger
.
debug
(
f
"PayPal OAuth redirect_uri: {redirect_uri}"
)
logger
.
info
(
f
"PayPal OAuth client_id: {client_id}"
)
logger
.
info
(
f
"PayPal OAuth redirect_uri: {redirect_uri}"
)
logger
.
info
(
f
"PayPal OAuth full URL: {paypal_auth_url}"
)
return
RedirectResponse
(
url
=
paypal_auth_url
,
status_code
=
302
)
return
RedirectResponse
(
url
=
paypal_auth_url
,
status_code
=
302
)
...
...
pyproject.toml
View file @
74331dbb
...
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
...
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
[project]
name
=
"aisbf"
name
=
"aisbf"
version
=
"0.99.4
2
"
version
=
"0.99.4
3
"
description
=
"AISBF - AI Service Broker Framework || AI Should Be Free - A modular proxy server for managing multiple AI provider integrations"
description
=
"AISBF - AI Service Broker Framework || AI Should Be Free - A modular proxy server for managing multiple AI provider integrations"
readme
=
"README.md"
readme
=
"README.md"
license
=
"GPL-3.0-or-later"
license
=
"GPL-3.0-or-later"
...
...
setup.py
View file @
74331dbb
...
@@ -49,7 +49,7 @@ class InstallCommand(_install):
...
@@ -49,7 +49,7 @@ class InstallCommand(_install):
setup
(
setup
(
name
=
"aisbf"
,
name
=
"aisbf"
,
version
=
"0.99.4
2
"
,
version
=
"0.99.4
3
"
,
author
=
"AISBF Contributors"
,
author
=
"AISBF Contributors"
,
author_email
=
"stefy@nexlab.net"
,
author_email
=
"stefy@nexlab.net"
,
description
=
"AISBF - AI Service Broker Framework || AI Should Be Free - A modular proxy server for managing multiple AI provider integrations"
,
description
=
"AISBF - AI Service Broker Framework || AI Should Be Free - A modular proxy server for managing multiple AI provider integrations"
,
...
...
templates/dashboard/providers.html
View file @
74331dbb
...
@@ -66,6 +66,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
...
@@ -66,6 +66,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
<p
style=
"margin: 0; color: #2d3436;"
>
<p
style=
"margin: 0; color: #2d3436;"
>
Claude.ai policies state that unofficial clients are not allowed. By using AISBF as a client, you acknowledge that:
Claude.ai policies state that unofficial clients are not allowed. By using AISBF as a client, you acknowledge that:
<br><br>
• While we do our best to mimic the claude-code CLI, using an unofficial client can lead to account suspension or cancellation
<br><br>
• While we do our best to mimic the claude-code CLI, using an unofficial client can lead to account suspension or cancellation
<br>
• Claude.ai detects prompt patterns to identify unofficial client usage, so it may not work with complex agents and prompts
<br>
• You use this software at your own risk and responsibility
<br>
• You use this software at your own risk and responsibility
<br>
• We are not affiliated with Anthropic and cannot guarantee compatibility or continued functionality
<br>
• We are not affiliated with Anthropic and cannot guarantee compatibility or continued functionality
</p>
</p>
...
@@ -516,6 +517,7 @@ function renderProviderDetails(key) {
...
@@ -516,6 +517,7 @@ function renderProviderDetails(key) {
<p style="margin: 0; color: #2d3436;">
<p style="margin: 0; color: #2d3436;">
Claude.ai policies state that unofficial clients are not allowed. By using AISBF as a client, you acknowledge that:
Claude.ai policies state that unofficial clients are not allowed. By using AISBF as a client, you acknowledge that:
<br><br>• While we do our best to mimic the claude-code CLI, using an unofficial client can lead to account suspension or cancellation
<br><br>• While we do our best to mimic the claude-code CLI, using an unofficial client can lead to account suspension or cancellation
<br>• Claude.ai detects prompt patterns to identify unofficial client usage, so it may not work with complex agents and prompts
<br>• You use this software at your own risk and responsibility
<br>• You use this software at your own risk and responsibility
<br>• We are not affiliated with Anthropic and cannot guarantee compatibility or continued functionality
<br>• We are not affiliated with Anthropic and cannot guarantee compatibility or continued functionality
</p>
</p>
...
...
templates/dashboard/user_providers.html
View file @
74331dbb
...
@@ -66,6 +66,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
...
@@ -66,6 +66,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
<p
style=
"margin: 0; color: #2d3436;"
>
<p
style=
"margin: 0; color: #2d3436;"
>
Claude.ai policies state that unofficial clients are not allowed. By using AISBF as a client, you acknowledge that:
Claude.ai policies state that unofficial clients are not allowed. By using AISBF as a client, you acknowledge that:
<br><br>
• While we do our best to mimic the claude-code CLI, using an unofficial client can lead to account suspension or cancellation
<br><br>
• While we do our best to mimic the claude-code CLI, using an unofficial client can lead to account suspension or cancellation
<br>
• Claude.ai detects prompt patterns to identify unofficial client usage, so it may not work with complex agents and prompts
<br>
• You use this software at your own risk and responsibility
<br>
• You use this software at your own risk and responsibility
<br>
• We are not affiliated with Anthropic and cannot guarantee compatibility or continued functionality
<br>
• We are not affiliated with Anthropic and cannot guarantee compatibility or continued functionality
</p>
</p>
...
@@ -489,6 +490,7 @@ function renderProviderDetails(key) {
...
@@ -489,6 +490,7 @@ function renderProviderDetails(key) {
<p style="margin: 0; color: #2d3436;">
<p style="margin: 0; color: #2d3436;">
Claude.ai policies state that unofficial clients are not allowed. By using AISBF as a client, you acknowledge that:
Claude.ai policies state that unofficial clients are not allowed. By using AISBF as a client, you acknowledge that:
<br><br>• While we do our best to mimic the claude-code CLI, using an unofficial client can lead to account suspension or cancellation
<br><br>• While we do our best to mimic the claude-code CLI, using an unofficial client can lead to account suspension or cancellation
<br>• Claude.ai detects prompt patterns to identify unofficial client usage, so it may not work with complex agents and prompts
<br>• You use this software at your own risk and responsibility
<br>• You use this software at your own risk and responsibility
<br>• We are not affiliated with Anthropic and cannot guarantee compatibility or continued functionality
<br>• We are not affiliated with Anthropic and cannot guarantee compatibility or continued functionality
</p>
</p>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment