diff options
Diffstat (limited to 'libpanto-c/include')
| -rw-r--r-- | libpanto-c/include/panto.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libpanto-c/include/panto.h b/libpanto-c/include/panto.h index 4f69465..0772e6e 100644 --- a/libpanto-c/include/panto.h +++ b/libpanto-c/include/panto.h @@ -51,6 +51,7 @@ typedef struct { size_t index; PantoSlice id, name; } PantoToolDetails; typedef struct { size_t index; PantoSlice delta; } PantoContentDelta; typedef struct { size_t index; PantoContentBlockTag block_type; } PantoBlockComplete; typedef struct { bool has_usage; PantoUsage usage; } PantoMessageComplete; +typedef struct { bool compacted; size_t kept_turns; size_t summarized_messages; } PantoCompactionResult; typedef struct { size_t attempt, max_attempts; uint64_t delay_ms; PantoSlice error_name; bool has_status_code; uint16_t status_code; bool has_retry_after_ms; uint64_t retry_after_ms; PantoSlice message; bool compaction; } PantoProviderRetry; typedef struct { size_t count; } PantoToolDispatchStart; typedef struct { size_t message_index; } PantoToolDispatchComplete; @@ -76,6 +77,22 @@ PANTO_EXPORT PantoSlice panto_last_error(void); PANTO_EXPORT void panto_error_free(PantoSlice s); PANTO_EXPORT PantoStatus panto_conversation_create(PantoConversation **out); PANTO_EXPORT void panto_conversation_destroy(PantoConversation *conversation); +PANTO_EXPORT size_t panto_conversation_message_count(PantoConversation *conversation); +PANTO_EXPORT PantoMessageRole panto_conversation_message_role(PantoConversation *conversation, size_t index); +PANTO_EXPORT bool panto_conversation_message_has_usage(PantoConversation *conversation, size_t index); +PANTO_EXPORT PantoUsage panto_conversation_message_usage(PantoConversation *conversation, size_t index); +PANTO_EXPORT size_t panto_conversation_message_block_count(PantoConversation *conversation, size_t message_index); +PANTO_EXPORT PantoContentBlockTag panto_conversation_block_tag(PantoConversation *conversation, size_t message_index, size_t block_index); +PANTO_EXPORT PantoSlice panto_conversation_block_text(PantoConversation *conversation, size_t message_index, size_t block_index); +PANTO_EXPORT PantoSlice panto_conversation_block_tool_id(PantoConversation *conversation, size_t message_index, size_t block_index); +PANTO_EXPORT PantoSlice panto_conversation_block_tool_name(PantoConversation *conversation, size_t message_index, size_t block_index); +PANTO_EXPORT bool panto_conversation_block_tool_result_is_error(PantoConversation *conversation, size_t message_index, size_t block_index); +PANTO_EXPORT PantoSystemMode panto_conversation_block_system_mode(PantoConversation *conversation, size_t message_index, size_t block_index); +PANTO_EXPORT PantoStatus panto_conversation_add_system_message(PantoConversation *conversation, const char *text); +PANTO_EXPORT PantoStatus panto_conversation_replace_system_message(PantoConversation *conversation, const char *text); +PANTO_EXPORT PantoStatus panto_conversation_add_user_text(PantoConversation *conversation, const char *text); +PANTO_EXPORT PantoStatus panto_conversation_add_assistant_text(PantoConversation *conversation, const char *text, bool has_usage, PantoUsage usage); +PANTO_EXPORT PantoStatus panto_conversation_add_compaction_summary(PantoConversation *conversation, const char *text); PANTO_EXPORT PantoStatus panto_session_create_null(PantoSession **out); PANTO_EXPORT PantoStatus panto_session_create(PantoSessionStore *store, PantoSessionInfo info, PantoSession **out); PANTO_EXPORT void panto_session_destroy(PantoSession *session); @@ -90,11 +107,13 @@ PANTO_EXPORT PantoStatus panto_session_store_resolve(PantoSessionStore *store, c 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 PantoConversation *panto_agent_conversation(PantoAgent *agent); 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, const char *text); PANTO_EXPORT PantoStatus panto_agent_set_system_prompt(PantoAgent *agent, const char *text); +PANTO_EXPORT PantoStatus panto_agent_compact(PantoAgent *agent, const char *override_system_prompt, const char *extra_instructions, PantoCompactionResult *out); 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); |
