Initial CST-Agent: portable Linux/Termux/Windows coding agent.
Vendored sashidown, OpenAI-compatible env (OPENAI_*), and bootstrap scripts. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
#ifndef MM_TOOL_H
|
||||
#define MM_TOOL_H
|
||||
|
||||
#include "ctl.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Streaming CST scanner for MiniMax native tool XML:
|
||||
*
|
||||
* <minimax:tool_call>
|
||||
* <invoke name="read_file">
|
||||
* <parameter name="path">README.md</parameter>
|
||||
* </invoke>
|
||||
* </minimax:tool_call>
|
||||
*
|
||||
* Also accepts the dialect seen in the wild:
|
||||
* <minimax:tool_call>
|
||||
* invoke read_file
|
||||
* <arg name="path">./README.md</arg>
|
||||
* </minimax:tool_call>
|
||||
*
|
||||
* Confirmation: nothing executes until </minimax:tool_call>.
|
||||
*/
|
||||
|
||||
typedef void (*mm_on_event_fn)(const ctl_event_t *ev, void *userdata);
|
||||
|
||||
typedef struct mm_scan mm_scan_t;
|
||||
|
||||
mm_scan_t *mm_scan_create(mm_on_event_fn on_event, void *userdata);
|
||||
void mm_scan_destroy(mm_scan_t *s);
|
||||
void mm_scan_reset(mm_scan_t *s);
|
||||
|
||||
/* Feed bytes. Emits TEXT for confirmed non-tool regions and CALL_* for
|
||||
* completed tool blocks. Incomplete tool blocks stay pending. */
|
||||
int mm_scan_feed(mm_scan_t *s, const char *data, size_t len);
|
||||
|
||||
/* Flush: incomplete open tool block => emit remaining as TEXT (no execute). */
|
||||
int mm_scan_finish(mm_scan_t *s);
|
||||
|
||||
size_t mm_scan_pending(const mm_scan_t *s);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user