govon 1.2.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/bin/govon.js +2 -41
  2. package/dist/App.d.ts +22 -0
  3. package/dist/App.d.ts.map +1 -0
  4. package/dist/App.js +307 -0
  5. package/dist/App.js.map +1 -0
  6. package/dist/client.d.ts +102 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +332 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/components/ApprovalPrompt.d.ts +15 -0
  11. package/dist/components/ApprovalPrompt.d.ts.map +1 -0
  12. package/dist/components/ApprovalPrompt.js +35 -0
  13. package/dist/components/ApprovalPrompt.js.map +1 -0
  14. package/dist/components/Banner.d.ts +6 -0
  15. package/dist/components/Banner.d.ts.map +1 -0
  16. package/dist/components/Banner.js +27 -0
  17. package/dist/components/Banner.js.map +1 -0
  18. package/dist/components/InputBar.d.ts +8 -0
  19. package/dist/components/InputBar.d.ts.map +1 -0
  20. package/dist/components/InputBar.js +26 -0
  21. package/dist/components/InputBar.js.map +1 -0
  22. package/dist/components/MarkdownView.d.ts +9 -0
  23. package/dist/components/MarkdownView.d.ts.map +1 -0
  24. package/dist/components/MarkdownView.js +38 -0
  25. package/dist/components/MarkdownView.js.map +1 -0
  26. package/dist/components/MessageBubble.d.ts +14 -0
  27. package/dist/components/MessageBubble.d.ts.map +1 -0
  28. package/dist/components/MessageBubble.js +15 -0
  29. package/dist/components/MessageBubble.js.map +1 -0
  30. package/dist/components/MetadataBar.d.ts +7 -0
  31. package/dist/components/MetadataBar.d.ts.map +1 -0
  32. package/dist/components/MetadataBar.js +19 -0
  33. package/dist/components/MetadataBar.js.map +1 -0
  34. package/dist/components/Spinner.d.ts +7 -0
  35. package/dist/components/Spinner.d.ts.map +1 -0
  36. package/dist/components/Spinner.js +51 -0
  37. package/dist/components/Spinner.js.map +1 -0
  38. package/dist/components/ThinkingBlock.d.ts +9 -0
  39. package/dist/components/ThinkingBlock.d.ts.map +1 -0
  40. package/dist/components/ThinkingBlock.js +9 -0
  41. package/dist/components/ThinkingBlock.js.map +1 -0
  42. package/dist/components/ToolPanel.d.ts +7 -0
  43. package/dist/components/ToolPanel.d.ts.map +1 -0
  44. package/dist/components/ToolPanel.js +19 -0
  45. package/dist/components/ToolPanel.js.map +1 -0
  46. package/dist/config.d.ts +32 -0
  47. package/dist/config.d.ts.map +1 -0
  48. package/dist/config.js +64 -0
  49. package/dist/config.js.map +1 -0
  50. package/dist/data/spinnerVerbs.d.ts +7 -0
  51. package/dist/data/spinnerVerbs.d.ts.map +1 -0
  52. package/dist/data/spinnerVerbs.js +58 -0
  53. package/dist/data/spinnerVerbs.js.map +1 -0
  54. package/dist/hooks/useDaemon.d.ts +16 -0
  55. package/dist/hooks/useDaemon.d.ts.map +1 -0
  56. package/dist/hooks/useDaemon.js +55 -0
  57. package/dist/hooks/useDaemon.js.map +1 -0
  58. package/dist/hooks/useHistory.d.ts +13 -0
  59. package/dist/hooks/useHistory.d.ts.map +1 -0
  60. package/dist/hooks/useHistory.js +170 -0
  61. package/dist/hooks/useHistory.js.map +1 -0
  62. package/dist/hooks/useSSE.d.ts +29 -0
  63. package/dist/hooks/useSSE.d.ts.map +1 -0
  64. package/dist/hooks/useSSE.js +341 -0
  65. package/dist/hooks/useSSE.js.map +1 -0
  66. package/dist/hooks/useTheme.d.ts +39 -0
  67. package/dist/hooks/useTheme.d.ts.map +1 -0
  68. package/dist/hooks/useTheme.js +36 -0
  69. package/dist/hooks/useTheme.js.map +1 -0
  70. package/dist/index.d.ts +7 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +1496 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/types.d.ts +356 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +67 -0
  77. package/dist/types.js.map +1 -0
  78. package/package.json +45 -19
  79. package/README.md +0 -45
  80. package/lib/python-check.js +0 -223
package/bin/govon.js CHANGED
@@ -1,44 +1,5 @@
1
1
  #!/usr/bin/env node
2
- 'use strict';
3
-
4
- const { spawn } = require('child_process');
5
- const { printEnvironmentStatus, isGovonInstalled } = require('../lib/python-check');
6
-
7
- const args = process.argv.slice(2);
8
-
9
- // On postinstall or direct invocation with --check-install, only run environment check and exit
10
- if (args[0] === '--check-install') {
11
- const ok = printEnvironmentStatus();
12
- process.exit(ok ? 0 : 1);
13
- }
14
-
15
- // Actual CLI execution path: if environment is not valid, print guidance and exit
16
- if (!printEnvironmentStatus()) {
2
+ import('../dist/index.js').catch((err) => {
3
+ console.error('Failed to start govon:', err.message);
17
4
  process.exit(1);
18
- }
19
-
20
- // Launch the govon CLI
21
- const child = spawn('govon', args, {
22
- stdio: 'inherit',
23
- shell: false,
24
- });
25
-
26
- child.on('error', (err) => {
27
- if (err.code === 'ENOENT') {
28
- console.error(
29
- [
30
- '',
31
- ' [govon] Unable to execute the govon command.',
32
- ' Please verify it is installed via: pip install govon',
33
- '',
34
- ].join('\n')
35
- );
36
- } else {
37
- console.error(`[govon] Execution error: ${err.message}`);
38
- }
39
- process.exit(1);
40
- });
41
-
42
- child.on('close', (code) => {
43
- process.exit(code ?? 0);
44
5
  });
package/dist/App.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * App.tsx — main application component.
3
+ *
4
+ * Port of src/cli/tui/app.py GovOnApp class.
5
+ * Composes all UI widgets into a full-screen Ink layout and wires state
6
+ * management, server polling, SSE streaming, and input history together.
7
+ *
8
+ * Layout (top → bottom):
9
+ * 1. Banner (welcome screen, rendered once into scrollback)
10
+ * 2. Message history (Ink <Static> — completed messages go to scrollback)
11
+ * 3. Streaming area (current thinking + tools + streaming content)
12
+ * 4. Approval prompt (shown when pendingApproval is set)
13
+ * 5. Separator line
14
+ * 6. InputBar
15
+ * 7. Status footer
16
+ */
17
+ export interface AppProps {
18
+ version: string;
19
+ initialQuery?: string;
20
+ }
21
+ export declare function App({ version, initialQuery }: AppProps): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAiCH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAiMD,wBAAgB,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,QAAQ,2CA2NtD"}
package/dist/App.js ADDED
@@ -0,0 +1,307 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * App.tsx — main application component.
4
+ *
5
+ * Port of src/cli/tui/app.py GovOnApp class.
6
+ * Composes all UI widgets into a full-screen Ink layout and wires state
7
+ * management, server polling, SSE streaming, and input history together.
8
+ *
9
+ * Layout (top → bottom):
10
+ * 1. Banner (welcome screen, rendered once into scrollback)
11
+ * 2. Message history (Ink <Static> — completed messages go to scrollback)
12
+ * 3. Streaming area (current thinking + tools + streaming content)
13
+ * 4. Approval prompt (shown when pendingApproval is set)
14
+ * 5. Separator line
15
+ * 6. InputBar
16
+ * 7. Status footer
17
+ */
18
+ import React, { useReducer, useCallback, useMemo } from 'react';
19
+ import { Box, Text, Static, useApp, useInput, useStdout } from 'ink';
20
+ import { GovOnClient } from './client.js';
21
+ import { getBaseUrl, THEME_COLORS } from './config.js';
22
+ import { useDaemon } from './hooks/useDaemon.js';
23
+ import { useSSE } from './hooks/useSSE.js';
24
+ import { useHistory } from './hooks/useHistory.js';
25
+ import { Banner } from './components/Banner.js';
26
+ import { InputBar } from './components/InputBar.js';
27
+ import { Spinner } from './components/Spinner.js';
28
+ import { ThinkingBlock } from './components/ThinkingBlock.js';
29
+ import { MarkdownView } from './components/MarkdownView.js';
30
+ import { MessageBubble } from './components/MessageBubble.js';
31
+ import { ToolPanel } from './components/ToolPanel.js';
32
+ import { ApprovalPrompt } from './components/ApprovalPrompt.js';
33
+ // ---------------------------------------------------------------------------
34
+ // Module-level constants
35
+ // ---------------------------------------------------------------------------
36
+ /** Sentinel object placed first in the Static items array to render the banner
37
+ * exactly once into the terminal scrollback. Hoisted to module level so that
38
+ * its reference is stable across renders and Static never re-prints it. */
39
+ const BANNER_ITEM = { _banner: true };
40
+ // ---------------------------------------------------------------------------
41
+ // Initial state
42
+ // ---------------------------------------------------------------------------
43
+ const initialState = {
44
+ messages: [],
45
+ isLoading: false,
46
+ streamingContent: '',
47
+ streamingThinking: '',
48
+ pendingThinking: [],
49
+ activeTools: [],
50
+ sessionId: null,
51
+ threadId: null,
52
+ pendingApproval: null,
53
+ statusLabel: null,
54
+ error: null,
55
+ theme: 'dark',
56
+ apiBase: getBaseUrl(),
57
+ apiVersion: 'v3',
58
+ };
59
+ // ---------------------------------------------------------------------------
60
+ // Reducer
61
+ // ---------------------------------------------------------------------------
62
+ function reducer(state, action) {
63
+ switch (action.type) {
64
+ case 'SET_LOADING':
65
+ return { ...state, isLoading: action.payload };
66
+ case 'ADD_USER_MESSAGE': {
67
+ const msg = {
68
+ ...action.payload,
69
+ role: 'user',
70
+ content: action.payload.content,
71
+ };
72
+ return { ...state, messages: [...state.messages, msg] };
73
+ }
74
+ case 'START_ASSISTANT_MESSAGE': {
75
+ const msg = {
76
+ id: action.payload.id,
77
+ role: 'assistant',
78
+ content: '',
79
+ timestamp: action.payload.timestamp,
80
+ streaming: true,
81
+ };
82
+ return {
83
+ ...state,
84
+ messages: [...state.messages, msg],
85
+ streamingContent: '',
86
+ streamingThinking: '',
87
+ pendingThinking: [],
88
+ activeTools: [],
89
+ };
90
+ }
91
+ case 'APPEND_STREAMING_CONTENT':
92
+ return {
93
+ ...state,
94
+ streamingContent: state.streamingContent + action.payload,
95
+ };
96
+ case 'APPEND_STREAMING_THINKING':
97
+ return {
98
+ ...state,
99
+ streamingThinking: state.streamingThinking + action.payload,
100
+ };
101
+ case 'START_THINKING_STEP': {
102
+ const { iteration } = action.payload;
103
+ // Only add if we don't already have an entry for this iteration
104
+ const already = state.pendingThinking.some((s) => s.iteration === iteration);
105
+ if (already)
106
+ return state;
107
+ // Initialize with empty content — the stale streamingThinking buffer
108
+ // must not be snapshotted here because END_THINKING_STEP will append
109
+ // whatever the stream emits between start and end into this slot.
110
+ return {
111
+ ...state,
112
+ pendingThinking: [
113
+ ...state.pendingThinking,
114
+ { iteration, content: '' },
115
+ ],
116
+ streamingThinking: '',
117
+ };
118
+ }
119
+ case 'END_THINKING_STEP': {
120
+ const { iteration, tool_calls } = action.payload;
121
+ const updated = state.pendingThinking.map((step) => step.iteration === iteration
122
+ ? { ...step, content: step.content + state.streamingThinking, tool_calls }
123
+ : step);
124
+ return {
125
+ ...state,
126
+ pendingThinking: updated,
127
+ streamingThinking: '',
128
+ };
129
+ }
130
+ case 'MARK_TOOL_START':
131
+ return {
132
+ ...state,
133
+ activeTools: [
134
+ ...state.activeTools,
135
+ { tool: action.payload.tool, pending: true },
136
+ ],
137
+ };
138
+ case 'MARK_TOOL_END': {
139
+ const { tool, success } = action.payload;
140
+ // Use findIndex + targeted update so only the first pending entry for
141
+ // this tool name is mutated — prevents clobbering later runs of the
142
+ // same tool if it appears more than once in a single iteration.
143
+ const idx = state.activeTools.findIndex((t) => t.tool === tool && t.pending);
144
+ if (idx === -1)
145
+ return state;
146
+ const updated = [...state.activeTools];
147
+ updated[idx] = { ...updated[idx], pending: false, success };
148
+ return { ...state, activeTools: updated };
149
+ }
150
+ case 'FINALIZE_ASSISTANT_MESSAGE': {
151
+ const { messageId, content, evidence, metadata, sessionId, threadId, } = action.payload;
152
+ const messages = state.messages.map((msg) => msg.id === messageId
153
+ ? {
154
+ ...msg,
155
+ content,
156
+ streaming: false,
157
+ thinking: state.pendingThinking,
158
+ tools: state.activeTools,
159
+ evidence,
160
+ metadata,
161
+ }
162
+ : msg);
163
+ return {
164
+ ...state,
165
+ messages,
166
+ streamingContent: '',
167
+ streamingThinking: '',
168
+ pendingThinking: [],
169
+ activeTools: [],
170
+ sessionId,
171
+ threadId,
172
+ isLoading: false,
173
+ statusLabel: null,
174
+ error: null,
175
+ };
176
+ }
177
+ case 'SET_PENDING_APPROVAL':
178
+ return { ...state, pendingApproval: action.payload };
179
+ case 'SET_STATUS_LABEL':
180
+ return { ...state, statusLabel: action.payload };
181
+ case 'SET_ERROR':
182
+ return { ...state, error: action.payload, isLoading: false };
183
+ case 'SET_THEME':
184
+ return { ...state, theme: action.payload };
185
+ case 'SET_API_BASE':
186
+ return { ...state, apiBase: action.payload };
187
+ case 'SET_API_VERSION':
188
+ return { ...state, apiVersion: action.payload };
189
+ case 'RESET_SESSION':
190
+ return { ...initialState, apiBase: state.apiBase, theme: state.theme };
191
+ default:
192
+ return state;
193
+ }
194
+ }
195
+ // ---------------------------------------------------------------------------
196
+ // App component
197
+ // ---------------------------------------------------------------------------
198
+ export function App({ version, initialQuery }) {
199
+ const { exit } = useApp();
200
+ const { stdout } = useStdout();
201
+ const [state, dispatch] = useReducer(reducer, initialState);
202
+ // GovOnClient is stable for the lifetime of the app
203
+ const client = useMemo(() => new GovOnClient(state.apiBase), [state.apiBase]);
204
+ // Wait for server readiness
205
+ const daemon = useDaemon(client);
206
+ // SSE streaming
207
+ const { submit, cancel } = useSSE({
208
+ client,
209
+ dispatch,
210
+ sessionId: state.sessionId,
211
+ });
212
+ // Input history (up/down arrow navigation)
213
+ const { push: pushHistory } = useHistory();
214
+ // Handle query submission from InputBar
215
+ const handleSubmit = useCallback((query) => {
216
+ // Guard: do not allow submission while a request is in flight
217
+ if (state.isLoading)
218
+ return;
219
+ const userMsgId = crypto.randomUUID();
220
+ const timestamp = new Date().toISOString();
221
+ dispatch({
222
+ type: 'ADD_USER_MESSAGE',
223
+ payload: { id: userMsgId, content: query, timestamp },
224
+ });
225
+ pushHistory(query);
226
+ submit(query);
227
+ }, [state.isLoading, dispatch, pushHistory, submit]);
228
+ // Approval handling
229
+ const handleApproval = useCallback(async (approved) => {
230
+ if (!state.threadId || !state.pendingApproval)
231
+ return;
232
+ dispatch({ type: 'SET_PENDING_APPROVAL', payload: null });
233
+ try {
234
+ const result = await client.approve(state.threadId, approved);
235
+ if (approved && result.text) {
236
+ // The approve endpoint returns the final answer when the agent
237
+ // completes after approval. Finalize the current assistant message
238
+ // with that result rather than leaving streaming dangling.
239
+ const streamingMsg = state.messages.find((m) => m.streaming);
240
+ if (streamingMsg) {
241
+ dispatch({
242
+ type: 'FINALIZE_ASSISTANT_MESSAGE',
243
+ payload: {
244
+ messageId: streamingMsg.id,
245
+ content: result.text,
246
+ evidence: result.evidence_items ?? [],
247
+ metadata: {},
248
+ sessionId: result.session_id,
249
+ threadId: result.thread_id,
250
+ },
251
+ });
252
+ }
253
+ }
254
+ dispatch({ type: 'SET_LOADING', payload: false });
255
+ }
256
+ catch (err) {
257
+ const msg = err instanceof Error ? err.message : String(err);
258
+ dispatch({ type: 'SET_ERROR', payload: msg });
259
+ dispatch({ type: 'SET_LOADING', payload: false });
260
+ }
261
+ }, [client, state.threadId, state.pendingApproval, state.messages, dispatch]);
262
+ // Submit initial query on first render once daemon is ready
263
+ const initialSubmittedRef = React.useRef(false);
264
+ React.useEffect(() => {
265
+ if (daemon.ready && initialQuery && !initialSubmittedRef.current) {
266
+ initialSubmittedRef.current = true;
267
+ handleSubmit(initialQuery);
268
+ }
269
+ }, [daemon.ready, initialQuery, handleSubmit]);
270
+ // Keyboard shortcuts: Ctrl+D/Ctrl+C exits, Esc cancels in-flight request
271
+ useInput((input, key) => {
272
+ if (key.ctrl && input === 'd')
273
+ exit();
274
+ if (key.ctrl && input === 'c')
275
+ exit();
276
+ if (key.escape && state.isLoading)
277
+ cancel();
278
+ });
279
+ // ---------------------------------------------------------------------------
280
+ // Render
281
+ // ---------------------------------------------------------------------------
282
+ // Server not yet ready
283
+ if (daemon.waiting) {
284
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Banner, { version: version }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: THEME_COLORS.muted, children: '서버 연결 중…' }) })] }));
285
+ }
286
+ if (daemon.error) {
287
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Banner, { version: version }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: THEME_COLORS.error, children: ['서버 오류: ', daemon.error] }) })] }));
288
+ }
289
+ // Completed messages (go to terminal scrollback via <Static>)
290
+ // Banner is the first "static" element, followed by the message history.
291
+ const completedMessages = state.messages.filter((m) => !m.streaming);
292
+ // Memoize the items array so that the reference only changes when
293
+ // completedMessages changes. Using a stable module-level BANNER_ITEM object
294
+ // prevents Static from detecting a new array on every render and
295
+ // re-printing the banner into the scrollback.
296
+ const staticItems = useMemo(() => [BANNER_ITEM, ...completedMessages], [completedMessages]);
297
+ // Terminal column width for the separator line (Fix 5).
298
+ const cols = stdout?.columns ?? 80;
299
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: staticItems, children: (item) => {
300
+ if ('_banner' in item && item._banner) {
301
+ return _jsx(Banner, { version: version }, "__banner__");
302
+ }
303
+ const msg = item;
304
+ return _jsx(MessageBubble, { message: msg }, msg.id);
305
+ } }), state.isLoading && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [state.streamingThinking.length > 0 && (_jsx(ThinkingBlock, { content: state.streamingThinking, streaming: true })), state.activeTools.length > 0 && (_jsx(ToolPanel, { tools: state.activeTools })), state.streamingContent.length > 0 ? (_jsx(Box, { marginLeft: 2, children: _jsx(MarkdownView, { content: state.streamingContent, streaming: true }) })) : (_jsx(Box, { marginLeft: 2, children: _jsx(Spinner, {}) })), state.statusLabel && (_jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: THEME_COLORS.muted, dimColor: true, children: state.statusLabel }) }))] })), state.error && !state.isLoading && (_jsx(Box, { marginTop: 1, marginLeft: 2, children: _jsxs(Text, { color: THEME_COLORS.error, children: ['오류: ', state.error] }) })), state.pendingApproval && (_jsx(ApprovalPrompt, { request: state.pendingApproval, onApprove: handleApproval })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: THEME_COLORS.muted, dimColor: true, children: '─'.repeat(Math.max(1, cols - 1)) }) }), !state.pendingApproval && (_jsx(InputBar, { onSubmit: handleSubmit, disabled: state.isLoading })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, color: THEME_COLORS.dimmed, children: 'esc 취소 · Ctrl+D 종료 · /help 도움말' }) })] }));
306
+ }
307
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * GovOn local daemon API HTTP client.
3
+ *
4
+ * TypeScript port of src/cli/http_client.py.
5
+ * Wraps the REST/SSE API of the local daemon (uvicorn).
6
+ * Core endpoints: health / run / stream / approve / cancel.
7
+ */
8
+ import type { V3SSEEvent, V2SSEEvent, AgentRunResponse, ApprovalResponse } from './types.js';
9
+ export declare class GovOnClient {
10
+ private readonly _baseUrl;
11
+ /** Cold-start polling timeout in ms (from config). */
12
+ private static readonly _COLD_START_TIMEOUT_MS;
13
+ /** Cold-start polling interval in ms (from config). */
14
+ private static readonly _COLD_START_INTERVAL_MS;
15
+ /**
16
+ * @param baseUrl - Daemon base URL (e.g. "http://127.0.0.1:8000").
17
+ * Trailing slash is stripped automatically.
18
+ */
19
+ constructor(baseUrl?: string);
20
+ /**
21
+ * GET /health — check daemon status.
22
+ *
23
+ * @returns Health response from the server.
24
+ * @throws Error when daemon is unreachable.
25
+ */
26
+ health(): Promise<Record<string, unknown>>;
27
+ /**
28
+ * Poll GET /health until the server responds with HTTP 200.
29
+ *
30
+ * Handles cold-start / sleeping remote servers (e.g. HF Space) by
31
+ * printing Korean status messages to stderr and waiting patiently.
32
+ *
33
+ * @returns true when server is ready, false on timeout.
34
+ */
35
+ waitForReady(): Promise<boolean>;
36
+ /**
37
+ * POST /v3/agent/stream — v3 ReAct fine-grained SSE streaming.
38
+ *
39
+ * @param query - User input query.
40
+ * @param sessionId - Session ID to resume an existing session.
41
+ * @param maxIterations - Maximum ReAct loop iterations.
42
+ * @param signal - Optional external AbortSignal; composed with the internal timeout.
43
+ * @yields Parsed SSE event objects. Use the `type` key to distinguish them.
44
+ */
45
+ streamV3(query: string, sessionId?: string, maxIterations?: number, signal?: AbortSignal): AsyncGenerator<V3SSEEvent>;
46
+ /**
47
+ * POST /v2/agent/stream — per-node SSE streaming.
48
+ *
49
+ * @param query - User input query.
50
+ * @param sessionId - Session ID to resume an existing session.
51
+ * @param signal - Optional external AbortSignal; composed with the internal timeout.
52
+ * @yields Parsed SSE event objects. Contains at least `node` and `status` keys.
53
+ */
54
+ stream(query: string, sessionId?: string, signal?: AbortSignal): AsyncGenerator<V2SSEEvent>;
55
+ /**
56
+ * POST /v2/agent/run — blocking agent execution.
57
+ *
58
+ * @param query - User input query.
59
+ * @param sessionId - Session ID to resume an existing session.
60
+ * @param signal - Optional external AbortSignal; composed with the internal timeout.
61
+ * @returns Server response including thread_id, status, etc.
62
+ */
63
+ run(query: string, sessionId?: string, signal?: AbortSignal): Promise<AgentRunResponse>;
64
+ /**
65
+ * POST /v3/agent/run — v3 ReAct blocking execution.
66
+ *
67
+ * @param query - User input query.
68
+ * @param sessionId - Session ID to resume an existing session.
69
+ * @param maxIterations - Maximum ReAct loop iterations.
70
+ * @param signal - Optional external AbortSignal; composed with the internal timeout.
71
+ * @returns Server response including metadata.
72
+ */
73
+ runV3(query: string, sessionId?: string, maxIterations?: number, signal?: AbortSignal): Promise<Record<string, unknown>>;
74
+ /**
75
+ * POST /v2/agent/approve — approve or reject a pending tool call.
76
+ *
77
+ * Note: uses QUERY PARAMETERS (thread_id, approved), not request body.
78
+ *
79
+ * @param threadId - Graph thread ID to approve or reject.
80
+ * @param approved - true to approve, false to reject.
81
+ * @returns Server response.
82
+ */
83
+ approve(threadId: string, approved: boolean): Promise<ApprovalResponse>;
84
+ /**
85
+ * POST /v2/agent/cancel — cancel a running session.
86
+ *
87
+ * Note: uses QUERY PARAMETER (thread_id), not request body.
88
+ *
89
+ * @param threadId - Graph thread ID to cancel.
90
+ * @returns Server response.
91
+ */
92
+ cancel(threadId: string): Promise<Record<string, unknown>>;
93
+ /** Shared SSE streaming implementation used by stream() and streamV3(). */
94
+ private _sseStream;
95
+ /** GET helper with connection-error normalisation. */
96
+ private _get;
97
+ /** POST with JSON body helper. */
98
+ private _post;
99
+ /** POST with query-parameter helper (used by /approve and /cancel). */
100
+ private _postParams;
101
+ }
102
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgB7F,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;IAEpE,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAA8B;IAE7E;;;OAGG;gBACS,OAAO,GAAE,MAAqB;IAQ1C;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIhD;;;;;;;OAOG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IA0DtC;;;;;;;;OAQG;IACI,QAAQ,CACb,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,UAAU,CAAC;IAU7B;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;IASlG;;;;;;;OAOG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO7F;;;;;;;;OAQG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQnC;;;;;;;;OAQG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQ7E;;;;;;;OAOG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAShE,2EAA2E;YAC5D,UAAU;IA2DzB,sDAAsD;YACxC,IAAI;IAyBlB,kCAAkC;YACpB,KAAK;IAuCnB,uEAAuE;YACzD,WAAW;CA+B1B"}