v0.2.64 - Skip ppq.ai balance check (not supported); fix ppq.ai base URL to /v1 for model discovery

This commit is contained in:
Didactyl User
2026-08-07 12:28:18 -04:00
parent a48c08f7c4
commit d0515933f4
3 changed files with 12 additions and 10 deletions
+2 -2
View File
@@ -54,11 +54,11 @@ Skills compose by adoption-list order (`10123`) and trigger tags carry runtime e
Didactyl will support local inference, which is very privacy preserving. Remote inference does however have it's advantages, and in those cases Didactyl supports using Bitcoin Lightning and eCash inference providers.
## Current Status — v0.2.63
## Current Status — v0.2.64
**Active build — this project is barely working. Experiment at your own risk.**
> Last release update: v0.2.63 — Fix Dockerfile: add missing tool_signer_crypto.c to static build source list
> Last release update: v0.2.64 — Skip ppq.ai balance check (not supported); fix ppq.ai base URL to /v1 for model discovery
- Connects to configured relays with auto-reconnect and relay state transition logging
- Publishes configured startup events per relay as each relay becomes connected
+2 -2
View File
@@ -12,8 +12,8 @@
// Using DIDACTYL_ prefix to avoid conflicts with nostr_core_lib VERSION macros
#define DIDACTYL_VERSION_MAJOR 0
#define DIDACTYL_VERSION_MINOR 2
#define DIDACTYL_VERSION_PATCH 63
#define DIDACTYL_VERSION "v0.2.63"
#define DIDACTYL_VERSION_PATCH 64
#define DIDACTYL_VERSION "v0.2.64"
// Agent metadata
#define DIDACTYL_NAME "Didactyl"
+8 -6
View File
@@ -1740,15 +1740,17 @@ static int extract_balance_value(const cJSON* root, double* out_balance) {
static void wizard_check_provider_balance(const llm_config_t* llm_cfg) {
if (!llm_cfg || llm_cfg->base_url[0] == '\0') return;
const char* paths_ppq[] = {"/credits", "/credit", "/balance", "/v1/credits"};
/* ppq.ai does not expose a balance/credits endpoint via API key alone. */
if (strcmp(llm_cfg->provider, "ppq") == 0) {
fprintf(stderr, " Balance check: skipped for ppq.ai\n");
return;
}
const char* paths_routstr[] = {"/balance", "/credits", "/v1/balance"};
const char** paths = NULL;
size_t path_count = 0;
if (strcmp(llm_cfg->provider, "ppq") == 0) {
paths = paths_ppq;
path_count = sizeof(paths_ppq) / sizeof(paths_ppq[0]);
} else if (strcmp(llm_cfg->provider, "routstr") == 0) {
if (strcmp(llm_cfg->provider, "routstr") == 0) {
paths = paths_routstr;
path_count = sizeof(paths_routstr) / sizeof(paths_routstr[0]);
} else {
@@ -1923,7 +1925,7 @@ static int prompt_llm_config_with_header(didactyl_config_t* cfg,
char base_url[OW_MAX_URL_LEN] = {0};
if (provider_choice == '1') {
snprintf(provider, sizeof(provider), "%s", "ppq");
snprintf(base_url, sizeof(base_url), "%s", "https://api.ppq.ai");
snprintf(base_url, sizeof(base_url), "%s", "https://api.ppq.ai/v1");
} else if (provider_choice == '2') {
snprintf(provider, sizeof(provider), "%s", "routstr");
snprintf(base_url, sizeof(base_url), "%s", "https://api.routstr.com");