diff options
| author | t <t@tjp.lol> | 2026-06-11 09:08:42 -0600 |
|---|---|---|
| committer | t <t@tjp.lol> | 2026-06-11 09:23:28 -0600 |
| commit | e2477f7d2d2a4eab870a2bd61534cfd146907915 (patch) | |
| tree | 197dae8b7476558d7f105d3129778f30b91503e1 /libpanto-c/include/panto.h | |
| parent | 813ebd014a7614fdcdf4df5570b50944f2626076 (diff) | |
libpanto API fixes
- FSJSONLStore: don't require `cwd`, instead panto CLI provides it in
the session metadata
- Lua: expose the `SessionStore` interface and the `FSJSONLStore` and
`NullStore` implementations
- C: use idiomatic `const char *` for incoming strings
- C: expose the `FSJSONLStore` and `NullStore` implementations
Diffstat (limited to 'libpanto-c/include/panto.h')
| -rw-r--r-- | libpanto-c/include/panto.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/libpanto-c/include/panto.h b/libpanto-c/include/panto.h index 4430810..4f69465 100644 --- a/libpanto-c/include/panto.h +++ b/libpanto-c/include/panto.h @@ -39,10 +39,10 @@ typedef struct { PantoAPIStyle api_style; PantoSlice base_url; PantoSlice model; typedef struct { PantoSlice id, created, modified, last_user_message, base_url, model; size_t message_count; PantoAPIStyle api_style; PantoReasoningEffort reasoning; } PantoSessionInfo; typedef struct { PantoSessionInfo *ptr; size_t len; } PantoSessionInfoList; typedef struct { bool found; PantoSession *session; } PantoSessionResult; -typedef struct { PantoSlice api_key, base_url, model; PantoReasoningEffort reasoning; uint32_t max_tokens; } PantoOpenAIChatConfig; -typedef struct { PantoSlice api_key, base_url, model, api_version; uint32_t max_tokens; PantoThinking thinking; PantoEffort effort; bool has_thinking_budget_tokens; uint32_t thinking_budget_tokens; bool thinking_interleaved; } PantoAnthropicMessagesConfig; +typedef struct { const char *api_key, *base_url, *model; PantoReasoningEffort reasoning; uint32_t max_tokens; } PantoOpenAIChatConfig; +typedef struct { const char *api_key, *base_url, *model, *api_version; uint32_t max_tokens; PantoThinking thinking; PantoEffort effort; bool has_thinking_budget_tokens; uint32_t thinking_budget_tokens; bool thinking_interleaved; } PantoAnthropicMessagesConfig; typedef struct { PantoAPIStyle tag; union { PantoOpenAIChatConfig openai_chat; PantoAnthropicMessagesConfig anthropic_messages; } data; } PantoProviderConfig; -typedef struct { uint32_t keep_verbatim; bool has_model; PantoProviderConfig model; bool has_compaction_prompt; PantoSlice compaction_prompt; } PantoCompactionConfig; +typedef struct { uint32_t keep_verbatim; bool has_model; PantoProviderConfig model; bool has_compaction_prompt; const char *compaction_prompt; } PantoCompactionConfig; typedef struct { size_t max_attempts; uint64_t initial_delay_ms, max_delay_ms; double multiplier; bool jitter; } PantoRetryConfig; typedef struct { PantoProviderConfig provider; PantoCompactionConfig compaction; PantoRetryConfig retry; } PantoConfig; @@ -81,19 +81,21 @@ PANTO_EXPORT PantoStatus panto_session_create(PantoSessionStore *store, PantoSes PANTO_EXPORT void panto_session_destroy(PantoSession *session); PANTO_EXPORT PantoStatus panto_session_store_create(void *ctx, const PantoSessionStoreVTable *vtable, PantoSessionStore **out); PANTO_EXPORT void panto_session_store_destroy(PantoSessionStore *store); +PANTO_EXPORT PantoStatus panto_null_store_create(PantoSessionStore **out); +PANTO_EXPORT PantoStatus panto_file_system_jsonl_store_create(const char *dir, const char *metadata, PantoSessionStore **out); PANTO_EXPORT PantoStatus panto_session_store_create_session(PantoSessionStore *store, PantoSession **out); PANTO_EXPORT PantoStatus panto_session_store_list(PantoSessionStore *store, PantoSessionInfoList *out); PANTO_EXPORT void panto_session_info_list_destroy(PantoSessionInfoList infos); -PANTO_EXPORT PantoStatus panto_session_store_resolve(PantoSessionStore *store, PantoSlice id, PantoSessionResult *out); +PANTO_EXPORT PantoStatus panto_session_store_resolve(PantoSessionStore *store, const char *id, PantoSessionResult *out); PANTO_EXPORT PantoStatus panto_session_store_latest(PantoSessionStore *store, PantoSessionResult *out); PANTO_EXPORT PantoStatus panto_session_load(PantoSession *session, PantoConversation **out); PANTO_EXPORT PantoStatus panto_agent_create(const PantoConfig *config, PantoSession *session, PantoConversation *conversation, PantoAgent **out); PANTO_EXPORT void panto_agent_destroy(PantoAgent *agent); PANTO_EXPORT PantoSlice panto_agent_session_id(PantoAgent *agent); PANTO_EXPORT PantoStatus panto_agent_set_config(PantoAgent *agent, const PantoConfig *config); -PANTO_EXPORT PantoStatus panto_agent_add_system_message(PantoAgent *agent, PantoSlice text); -PANTO_EXPORT PantoStatus panto_agent_set_system_prompt(PantoAgent *agent, PantoSlice text); -PANTO_EXPORT PantoStatus panto_agent_run(PantoAgent *agent, PantoSlice user_text, PantoStream **out); +PANTO_EXPORT PantoStatus panto_agent_add_system_message(PantoAgent *agent, const char *text); +PANTO_EXPORT PantoStatus panto_agent_set_system_prompt(PantoAgent *agent, const char *text); +PANTO_EXPORT PantoStatus panto_agent_run(PantoAgent *agent, const char *user_text, PantoStream **out); PANTO_EXPORT void panto_stream_destroy(PantoStream *stream); PANTO_EXPORT PantoNextStatus panto_stream_next(PantoStream *stream, PantoEvent *out); PANTO_EXPORT void panto_event_free(PantoEvent *event); |
