deepclause-sdk 0.0.1

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 (111) hide show
  1. package/README.md +446 -0
  2. package/dist/agent.d.ts +44 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +518 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/cli/commands.d.ts +37 -0
  7. package/dist/cli/commands.d.ts.map +1 -0
  8. package/dist/cli/commands.js +105 -0
  9. package/dist/cli/commands.js.map +1 -0
  10. package/dist/cli/compile.d.ts +88 -0
  11. package/dist/cli/compile.d.ts.map +1 -0
  12. package/dist/cli/compile.js +362 -0
  13. package/dist/cli/compile.js.map +1 -0
  14. package/dist/cli/config.d.ts +265 -0
  15. package/dist/cli/config.d.ts.map +1 -0
  16. package/dist/cli/config.js +272 -0
  17. package/dist/cli/config.js.map +1 -0
  18. package/dist/cli/index.d.ts +8 -0
  19. package/dist/cli/index.d.ts.map +1 -0
  20. package/dist/cli/index.js +287 -0
  21. package/dist/cli/index.js.map +1 -0
  22. package/dist/cli/mcp.d.ts +56 -0
  23. package/dist/cli/mcp.d.ts.map +1 -0
  24. package/dist/cli/mcp.js +138 -0
  25. package/dist/cli/mcp.js.map +1 -0
  26. package/dist/cli/prompt.d.ts +20 -0
  27. package/dist/cli/prompt.d.ts.map +1 -0
  28. package/dist/cli/prompt.js +669 -0
  29. package/dist/cli/prompt.js.map +1 -0
  30. package/dist/cli/run.d.ts +33 -0
  31. package/dist/cli/run.d.ts.map +1 -0
  32. package/dist/cli/run.js +429 -0
  33. package/dist/cli/run.js.map +1 -0
  34. package/dist/cli/search.d.ts +25 -0
  35. package/dist/cli/search.d.ts.map +1 -0
  36. package/dist/cli/search.js +125 -0
  37. package/dist/cli/search.js.map +1 -0
  38. package/dist/cli/tools.d.ts +36 -0
  39. package/dist/cli/tools.d.ts.map +1 -0
  40. package/dist/cli/tools.js +204 -0
  41. package/dist/cli/tools.js.map +1 -0
  42. package/dist/cli/tui/index.d.ts +22 -0
  43. package/dist/cli/tui/index.d.ts.map +1 -0
  44. package/dist/cli/tui/index.js +29 -0
  45. package/dist/cli/tui/index.js.map +1 -0
  46. package/dist/index.d.ts +9 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +8 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/prolog/bridge.d.ts +21 -0
  51. package/dist/prolog/bridge.d.ts.map +1 -0
  52. package/dist/prolog/bridge.js +226 -0
  53. package/dist/prolog/bridge.js.map +1 -0
  54. package/dist/prolog/loader.d.ts +40 -0
  55. package/dist/prolog/loader.d.ts.map +1 -0
  56. package/dist/prolog/loader.js +133 -0
  57. package/dist/prolog/loader.js.map +1 -0
  58. package/dist/prolog-src/deepclause_memory.pl +45 -0
  59. package/dist/prolog-src/deepclause_mi.pl +1978 -0
  60. package/dist/prolog-src/deepclause_mi.pl.bak +570 -0
  61. package/dist/prolog-src/deepclause_strings.pl +89 -0
  62. package/dist/runner.d.ts +143 -0
  63. package/dist/runner.d.ts.map +1 -0
  64. package/dist/runner.js +1095 -0
  65. package/dist/runner.js.map +1 -0
  66. package/dist/sdk.d.ts +9 -0
  67. package/dist/sdk.d.ts.map +1 -0
  68. package/dist/sdk.js +131 -0
  69. package/dist/sdk.js.map +1 -0
  70. package/dist/tools.d.ts +22 -0
  71. package/dist/tools.d.ts.map +1 -0
  72. package/dist/tools.js +138 -0
  73. package/dist/tools.js.map +1 -0
  74. package/dist/types.d.ts +186 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +5 -0
  77. package/dist/types.js.map +1 -0
  78. package/package.json +79 -0
  79. package/src/prolog-src/deepclause_memory.pl +45 -0
  80. package/src/prolog-src/deepclause_mi.pl +1978 -0
  81. package/src/prolog-src/deepclause_mi.pl.bak +570 -0
  82. package/src/prolog-src/deepclause_strings.pl +89 -0
  83. package/vendor/swipl-wasm/LICENSE.txt +41 -0
  84. package/vendor/swipl-wasm/dist/bin/index.js +25 -0
  85. package/vendor/swipl-wasm/dist/common.d.ts +88 -0
  86. package/vendor/swipl-wasm/dist/generateImage.d.ts +6 -0
  87. package/vendor/swipl-wasm/dist/generateImage.js +76 -0
  88. package/vendor/swipl-wasm/dist/index.d.ts +2 -0
  89. package/vendor/swipl-wasm/dist/index.js +1 -0
  90. package/vendor/swipl-wasm/dist/loadImage.d.ts +2 -0
  91. package/vendor/swipl-wasm/dist/loadImage.js +10 -0
  92. package/vendor/swipl-wasm/dist/loadImageDefault.d.ts +2 -0
  93. package/vendor/swipl-wasm/dist/loadImageDefault.js +11 -0
  94. package/vendor/swipl-wasm/dist/strToBuffer.d.ts +8 -0
  95. package/vendor/swipl-wasm/dist/strToBuffer.js +41 -0
  96. package/vendor/swipl-wasm/dist/swipl/swipl-bundle-no-data.d.ts +2 -0
  97. package/vendor/swipl-wasm/dist/swipl/swipl-bundle-no-data.js +2 -0
  98. package/vendor/swipl-wasm/dist/swipl/swipl-bundle.d.ts +2 -0
  99. package/vendor/swipl-wasm/dist/swipl/swipl-bundle.js +2 -0
  100. package/vendor/swipl-wasm/dist/swipl/swipl-web.d.ts +2 -0
  101. package/vendor/swipl-wasm/dist/swipl/swipl-web.data +0 -0
  102. package/vendor/swipl-wasm/dist/swipl/swipl-web.js +2 -0
  103. package/vendor/swipl-wasm/dist/swipl/swipl-web.wasm +0 -0
  104. package/vendor/swipl-wasm/dist/swipl/swipl-win.js +1 -0
  105. package/vendor/swipl-wasm/dist/swipl/swipl-win.wasm +0 -0
  106. package/vendor/swipl-wasm/dist/swipl/swipl.d.ts +2 -0
  107. package/vendor/swipl-wasm/dist/swipl/swipl.js +1 -0
  108. package/vendor/swipl-wasm/dist/swipl/swipl.wasm +0 -0
  109. package/vendor/swipl-wasm/dist/swipl-node.d.ts +2 -0
  110. package/vendor/swipl-wasm/dist/swipl-node.js +17 -0
  111. package/vendor/swipl-wasm/package.json +129 -0
package/dist/agent.js ADDED
@@ -0,0 +1,518 @@
1
+ /**
2
+ * Agent Loop Implementation
3
+ * Runs an LLM agent loop for task() predicate execution
4
+ *
5
+ * Based on AI SDK v6 agent patterns:
6
+ * - Uses Zod schemas for tool definitions
7
+ * - Uses result.response.messages for message history management
8
+ */
9
+ import { generateText, streamText, tool as aiTool } from 'ai';
10
+ import { z } from 'zod';
11
+ import { createModelProvider } from './prolog/bridge.js';
12
+ /** Maximum number of retries for LLM error finish reasons */
13
+ const MAX_ERROR_RETRIES = 3;
14
+ /**
15
+ * Clean Prolog dict markers ($tag, $t) from tool results
16
+ * This makes the data more readable for the LLM
17
+ */
18
+ function cleanPrologMarkers(data) {
19
+ if (data === null || data === undefined) {
20
+ return data;
21
+ }
22
+ if (Array.isArray(data)) {
23
+ return data.map(cleanPrologMarkers);
24
+ }
25
+ if (typeof data === 'object') {
26
+ const obj = data;
27
+ const cleaned = {};
28
+ for (const [key, value] of Object.entries(obj)) {
29
+ // Skip Prolog-specific markers
30
+ if (key === '$tag' || key === '$t') {
31
+ continue;
32
+ }
33
+ cleaned[key] = cleanPrologMarkers(value);
34
+ }
35
+ return cleaned;
36
+ }
37
+ return data;
38
+ }
39
+ /**
40
+ * Convert JSON Schema to Zod schema
41
+ * Handles basic JSON Schema types used in tool definitions
42
+ */
43
+ function jsonSchemaToZod(schema) {
44
+ const type = schema.type;
45
+ const description = schema.description;
46
+ let zodType;
47
+ switch (type) {
48
+ case 'string':
49
+ zodType = z.string();
50
+ break;
51
+ case 'number':
52
+ zodType = z.number();
53
+ break;
54
+ case 'integer':
55
+ zodType = z.number().int();
56
+ break;
57
+ case 'boolean':
58
+ zodType = z.boolean();
59
+ break;
60
+ case 'array': {
61
+ const items = schema.items;
62
+ zodType = z.array(items ? jsonSchemaToZod(items) : z.unknown());
63
+ break;
64
+ }
65
+ case 'object': {
66
+ const properties = schema.properties;
67
+ const required = schema.required || [];
68
+ if (properties) {
69
+ const shape = {};
70
+ for (const [key, propSchema] of Object.entries(properties)) {
71
+ let propZod = jsonSchemaToZod(propSchema);
72
+ if (!required.includes(key)) {
73
+ propZod = propZod.optional();
74
+ }
75
+ shape[key] = propZod;
76
+ }
77
+ zodType = z.object(shape);
78
+ }
79
+ else {
80
+ zodType = z.record(z.unknown());
81
+ }
82
+ break;
83
+ }
84
+ default:
85
+ zodType = z.unknown();
86
+ }
87
+ if (description) {
88
+ zodType = zodType.describe(description);
89
+ }
90
+ return zodType;
91
+ }
92
+ /**
93
+ * Run an agent loop for a task
94
+ */
95
+ export async function runAgentLoop(options) {
96
+ const { taskDescription, outputVars, memory, tools, modelOptions, onOutput, onStream, onToolCall, signal, streaming = false, debug = false, } = options;
97
+ // Debug helper - logs if debug is enabled or DEBUG_AGENT env var is set
98
+ const debugLog = (...args) => {
99
+ if (debug || process.env.DEBUG_AGENT) {
100
+ console.log('[AGENT]', ...args);
101
+ }
102
+ };
103
+ debugLog('Output vars:', outputVars);
104
+ const outputs = [];
105
+ const variables = {};
106
+ let finished = false;
107
+ let success = false;
108
+ let errorRetryCount = 0;
109
+ // Build the AI SDK tools using Zod schemas
110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
+ const aiTools = {};
112
+ // Add finish tool with Zod schema
113
+ aiTools['finish'] = aiTool({
114
+ description: 'Signals that the task has been completed and sets the success status. Call with true for success, false for failure. You MUST always use this tool as the last step to indicate whether the task could be completed or not!',
115
+ inputSchema: z.object({
116
+ success: z.boolean().describe('Whether the task was completed successfully')
117
+ }),
118
+ execute: async ({ success: s }) => {
119
+ finished = true;
120
+ success = s;
121
+ return { finished: true, success: s };
122
+ },
123
+ });
124
+ // Add set_result tool for output variables
125
+ if (outputVars.length > 0) {
126
+ const varList = outputVars.map((v, i) => `"${v}"${i < outputVars.length - 1 ? ',' : ''}`).join(' ');
127
+ aiTools['set_result'] = aiTool({
128
+ description: `Set a result value for an output variable. You MUST call this tool to return results from the task. Use the exact variable name as specified.`,
129
+ inputSchema: z.object({
130
+ variable: z.string().describe(`The variable name to set. Must be exactly one of: ${varList}`),
131
+ value: z.string().describe('The value to set (must be a string)')
132
+ }),
133
+ execute: async ({ variable, value }) => {
134
+ if (outputVars.includes(variable)) {
135
+ variables[variable] = value;
136
+ return { success: true, variable, value };
137
+ }
138
+ return { success: false, error: `Unknown variable: ${variable}. Must be one of: ${varList}` };
139
+ },
140
+ });
141
+ }
142
+ // Reserved internal tool names that cannot be overwritten by user-defined tools
143
+ const reservedToolNames = ['finish', 'set_result'];
144
+ // Add user-defined tools - convert JSON Schema to Zod
145
+ for (const [name, tool] of tools) {
146
+ if (reservedToolNames.includes(name)) {
147
+ continue;
148
+ }
149
+ // Convert JSON Schema parameters to Zod schema
150
+ const zodSchema = jsonSchemaToZod(tool.parameters);
151
+ aiTools[name] = aiTool({
152
+ description: tool.description,
153
+ inputSchema: zodSchema,
154
+ execute: async (input) => {
155
+ try {
156
+ const result = await tool.execute(input);
157
+ return cleanPrologMarkers(result);
158
+ }
159
+ catch (error) {
160
+ const message = error instanceof Error ? error.message : String(error);
161
+ return { error: message };
162
+ }
163
+ },
164
+ });
165
+ }
166
+ // Build the base system prompt with task instructions and tools
167
+ const baseSystemPrompt = buildSystemPrompt(taskDescription, outputVars, tools);
168
+ // Extract system context from memory (user-defined system() calls)
169
+ const systemContext = memory
170
+ .filter(m => m.role === 'system' && typeof m.content === 'string')
171
+ .map(m => m.content)
172
+ .join('\n\n');
173
+ // Combine into a single system message
174
+ const combinedSystemPrompt = systemContext
175
+ ? `${systemContext}\n\n---\n\n${baseSystemPrompt}`
176
+ : baseSystemPrompt;
177
+ // Filter non-system messages from memory for conversation history
178
+ const conversationHistory = memory.filter(m => m.role !== 'system' &&
179
+ typeof m.content === 'string' &&
180
+ ['user', 'assistant'].includes(m.role));
181
+ // Build initial messages - AI SDK v6 uses ModelMessage[]
182
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
183
+ let messages = [
184
+ { role: 'system', content: combinedSystemPrompt },
185
+ ...conversationHistory.map(m => ({
186
+ role: m.role,
187
+ content: m.content
188
+ })),
189
+ { role: 'user', content: `Subtask: ${taskDescription}` },
190
+ ];
191
+ debugLog('System prompt:', combinedSystemPrompt);
192
+ debugLog('Conversation history:', conversationHistory);
193
+ debugLog('Subtask:', taskDescription);
194
+ // Create model provider
195
+ const model = createModelProvider(modelOptions.provider, modelOptions.model, modelOptions.baseUrl);
196
+ // Agent loop
197
+ const maxIterations = 50;
198
+ let iteration = 0;
199
+ // Helper to allow event loop to breathe
200
+ const tick = () => new Promise(resolve => setTimeout(resolve, 0));
201
+ while (!finished && iteration < maxIterations) {
202
+ iteration++;
203
+ debugLog(`Iteration ${iteration}`);
204
+ if (signal?.aborted) {
205
+ break;
206
+ }
207
+ try {
208
+ await tick();
209
+ if (streaming && onStream) {
210
+ // Streaming mode
211
+ const result = streamText({
212
+ model,
213
+ messages,
214
+ tools: aiTools,
215
+ toolChoice: 'auto',
216
+ temperature: modelOptions.temperature,
217
+ maxOutputTokens: modelOptions.maxOutputTokens,
218
+ abortSignal: signal,
219
+ });
220
+ // Collect streamed text
221
+ let fullText = '';
222
+ for await (const chunk of result.textStream) {
223
+ fullText += chunk;
224
+ onStream(chunk, false);
225
+ }
226
+ if (fullText) {
227
+ onStream('', true);
228
+ }
229
+ // Get results
230
+ const finishReason = await result.finishReason;
231
+ const toolCalls = await result.toolCalls;
232
+ const toolResults = await result.toolResults;
233
+ const responseObj = await result.response;
234
+ // Check if finish was called during tool execution
235
+ if (finished) {
236
+ debugLog('Finish tool was called, exiting loop');
237
+ break;
238
+ }
239
+ debugLog(`Response text: ${fullText || '(empty)'}`);
240
+ debugLog(`Tool calls: ${toolCalls?.length ?? 0}`);
241
+ debugLog(`Finish reason: ${finishReason}`);
242
+ // Handle errors
243
+ if (finishReason === 'error') {
244
+ errorRetryCount++;
245
+ if (errorRetryCount <= MAX_ERROR_RETRIES) {
246
+ debugLog(`ERROR: LLM returned error (attempt ${errorRetryCount}/${MAX_ERROR_RETRIES}). Retrying...`);
247
+ await new Promise(resolve => setTimeout(resolve, 1000 * errorRetryCount));
248
+ continue;
249
+ }
250
+ outputs.push('Error: LLM API returned an error. Check API key and rate limits.');
251
+ break;
252
+ }
253
+ // Process text output
254
+ if (fullText) {
255
+ outputs.push(fullText);
256
+ onOutput(fullText);
257
+ }
258
+ // Emit tool call events
259
+ if (toolCalls && toolCalls.length > 0) {
260
+ for (const tc of toolCalls) {
261
+ debugLog(`Tool call: ${tc.toolName}`, JSON.stringify(tc.input));
262
+ if (onToolCall) {
263
+ onToolCall(tc.toolName, tc.input);
264
+ }
265
+ }
266
+ // Log tool results
267
+ if (toolResults) {
268
+ for (const tr of toolResults) {
269
+ debugLog(`Tool result for ${tr.toolName}:`, JSON.stringify(tr.output).substring(0, 500));
270
+ }
271
+ }
272
+ }
273
+ // Use response.messages to update message history (AI SDK v6 pattern)
274
+ if (responseObj?.messages) {
275
+ messages = [...messages, ...responseObj.messages];
276
+ }
277
+ else {
278
+ // Fallback: manually add messages if response.messages not available
279
+ if (fullText) {
280
+ messages.push({ role: 'assistant', content: fullText });
281
+ }
282
+ if (toolCalls && toolCalls.length > 0 && toolResults) {
283
+ // Add tool calls as assistant message
284
+ messages.push({
285
+ role: 'assistant',
286
+ content: toolCalls.map(tc => ({
287
+ type: 'tool-call',
288
+ toolCallId: tc.toolCallId,
289
+ toolName: tc.toolName,
290
+ input: tc.input,
291
+ })),
292
+ });
293
+ // Add tool results
294
+ messages.push({
295
+ role: 'tool',
296
+ content: toolResults.map(tr => ({
297
+ type: 'tool-result',
298
+ toolCallId: tr.toolCallId,
299
+ toolName: tr.toolName,
300
+ output: tr.output,
301
+ })),
302
+ });
303
+ }
304
+ }
305
+ // If no tool calls and model stopped, prompt to continue or we're done
306
+ if (finishReason === 'stop' && (!toolCalls || toolCalls.length === 0)) {
307
+ if (!finished) {
308
+ messages.push({
309
+ role: 'user',
310
+ content: 'Please take action using the available tools, or call finish() when done.',
311
+ });
312
+ }
313
+ }
314
+ }
315
+ else {
316
+ // Non-streaming mode
317
+ const result = await generateText({
318
+ model,
319
+ messages,
320
+ tools: aiTools,
321
+ toolChoice: 'auto',
322
+ temperature: modelOptions.temperature,
323
+ maxOutputTokens: modelOptions.maxOutputTokens,
324
+ abortSignal: signal,
325
+ });
326
+ // Check if finish was called during tool execution
327
+ if (finished) {
328
+ debugLog('Finish tool was called, exiting loop');
329
+ break;
330
+ }
331
+ debugLog(`Response text: ${result.text || '(empty)'}`);
332
+ debugLog(`Tool calls: ${result.toolCalls?.length ?? 0}`);
333
+ debugLog(`Finish reason: ${result.finishReason}`);
334
+ // Handle errors
335
+ if (result.finishReason === 'error') {
336
+ errorRetryCount++;
337
+ if (errorRetryCount <= MAX_ERROR_RETRIES) {
338
+ debugLog(`ERROR: LLM returned error (attempt ${errorRetryCount}/${MAX_ERROR_RETRIES}). Retrying...`);
339
+ await new Promise(resolve => setTimeout(resolve, 1000 * errorRetryCount));
340
+ continue;
341
+ }
342
+ outputs.push('Error: LLM API returned an error. Check API key and rate limits.');
343
+ break;
344
+ }
345
+ // Process text output
346
+ if (result.text) {
347
+ outputs.push(result.text);
348
+ onOutput(result.text);
349
+ }
350
+ // Emit tool call events
351
+ if (result.toolCalls && result.toolCalls.length > 0) {
352
+ for (const tc of result.toolCalls) {
353
+ debugLog(`Tool call: ${tc.toolName}`, JSON.stringify(tc.input));
354
+ if (onToolCall) {
355
+ onToolCall(tc.toolName, tc.input);
356
+ }
357
+ }
358
+ // Log tool results
359
+ if (result.toolResults) {
360
+ for (const tr of result.toolResults) {
361
+ debugLog(`Tool result for ${tr.toolName}:`, JSON.stringify(tr.output).substring(0, 500));
362
+ }
363
+ }
364
+ }
365
+ // Use response.messages to update message history (AI SDK v6 pattern)
366
+ // This is the key change - let the SDK handle message formatting
367
+ messages = [...messages, ...result.response.messages];
368
+ // If no tool calls and model stopped, prompt to continue or we're done
369
+ if (result.finishReason === 'stop' && (!result.toolCalls || result.toolCalls.length === 0)) {
370
+ if (!finished) {
371
+ messages.push({
372
+ role: 'user',
373
+ content: 'Please take action using the available tools, or call finish() when done.',
374
+ });
375
+ }
376
+ }
377
+ }
378
+ }
379
+ catch (error) {
380
+ const message = error instanceof Error ? error.message : String(error);
381
+ debugLog(`ERROR in agent loop: ${message}`);
382
+ if (error instanceof Error && error.stack) {
383
+ debugLog(`Stack trace: ${error.stack}`);
384
+ }
385
+ outputs.push(`Error: ${message}`);
386
+ break;
387
+ }
388
+ }
389
+ debugLog(`Loop ended: finished=${finished}, success=${success}, iterations=${iteration}`);
390
+ // If we hit max iterations without finishing, fail
391
+ if (!finished) {
392
+ success = false;
393
+ outputs.push('Agent loop reached maximum iterations without completing');
394
+ }
395
+ // Build persistent messages for memory
396
+ const persistentMessages = [];
397
+ // Keep previous conversation history
398
+ for (const m of conversationHistory) {
399
+ if (m.role === 'user' || m.role === 'assistant') {
400
+ persistentMessages.push({
401
+ role: m.role,
402
+ content: typeof m.content === 'string' ? m.content : JSON.stringify(m.content),
403
+ });
404
+ }
405
+ }
406
+ // Add the current subtask
407
+ persistentMessages.push({
408
+ role: 'user',
409
+ content: `Subtask: ${taskDescription}`,
410
+ });
411
+ // Extract assistant text responses from the conversation
412
+ const assistantTextResponses = [];
413
+ for (const m of messages) {
414
+ if (m.role === 'assistant' && typeof m.content === 'string' && m.content.trim()) {
415
+ assistantTextResponses.push(m.content);
416
+ }
417
+ }
418
+ // Add result to persistent messages
419
+ if (success && Object.keys(variables).length > 0) {
420
+ const varSummary = Object.entries(variables)
421
+ .map(([k, v]) => `${k}: ${v}`)
422
+ .join(', ');
423
+ persistentMessages.push({
424
+ role: 'assistant',
425
+ content: `Task completed. Results: ${varSummary}`,
426
+ });
427
+ }
428
+ else if (assistantTextResponses.length > 0) {
429
+ persistentMessages.push({
430
+ role: 'assistant',
431
+ content: assistantTextResponses[assistantTextResponses.length - 1],
432
+ });
433
+ }
434
+ else if (success) {
435
+ persistentMessages.push({
436
+ role: 'assistant',
437
+ content: 'Task completed successfully.',
438
+ });
439
+ }
440
+ debugLog('Persistent messages for next task:', persistentMessages.length, 'messages');
441
+ return {
442
+ success,
443
+ outputs,
444
+ variables,
445
+ messages: persistentMessages,
446
+ };
447
+ }
448
+ /**
449
+ * Build the system prompt for the agent
450
+ */
451
+ function buildSystemPrompt(taskDescription, outputVars, tools) {
452
+ const toolDescriptions = [];
453
+ // Add finish tool description
454
+ toolDescriptions.push('- finish(success: boolean): Signal task completion. Call finish(true) when done successfully, or finish(false) if the task cannot be completed.');
455
+ // Add set_result tool if we have output variables
456
+ if (outputVars.length > 0) {
457
+ const varList = outputVars.map(v => `"${v}"`).join(', ');
458
+ toolDescriptions.push(`- set_result(variable: string, value: string): Store a result value. Variable must be one of: ${varList}`);
459
+ }
460
+ // Add user-defined tools
461
+ for (const [name, tool] of tools) {
462
+ if (name === 'finish' || name === 'set_result')
463
+ continue;
464
+ // Build parameter signature from schema
465
+ const params = tool.parameters;
466
+ const props = (params.properties || {});
467
+ const required = (params.required || []);
468
+ const paramList = Object.entries(props)
469
+ .map(([pname, pschema]) => {
470
+ const opt = required.includes(pname) ? '' : '?';
471
+ return `${pname}${opt}: ${pschema.type || 'any'}`;
472
+ })
473
+ .join(', ');
474
+ toolDescriptions.push(`- ${name}(${paramList}): ${tool.description}`);
475
+ }
476
+ let prompt = `You are an AI agent executing a subtask within a larger workflow. Your job is to complete the following subtask:
477
+
478
+ Subtask: ${taskDescription}
479
+
480
+ Available tools:
481
+
482
+ ${toolDescriptions.join('\n')}
483
+
484
+ Workflow:
485
+ 1. Analyze the task and gather any needed information using available tools.
486
+ 2. Once the task is complete, call finish(true).
487
+
488
+ If you determine the task cannot be completed, call finish(false) immediately.`;
489
+ if (outputVars.length > 0) {
490
+ const varList = outputVars.map(v => `"${v}"`).join(', ');
491
+ prompt += `
492
+
493
+ IMPORTANT: You MUST use set_result() to store values for: ${varList}
494
+ Call set_result for each variable before calling finish.`;
495
+ }
496
+ prompt += `
497
+
498
+ CRITICAL INSTRUCTIONS:
499
+ - You MUST use the structured tool-calling interface to invoke tools.
500
+ - NEVER write code syntax like print(), default_api.X(), or function_name() in your text response.
501
+ - NEVER describe tool calls in text - actually invoke them using the tool interface.
502
+ - Each tool call should be a separate structured function call, not embedded in text.
503
+ - When storing values, pass simple strings without code formatting or escaping.
504
+
505
+ EXAMPLES OF CORRECT TOOL USAGE:
506
+
507
+ To complete a task successfully, invoke the finish tool with:
508
+ Tool: finish
509
+ Arguments: { "success": true }
510
+
511
+ WRONG (do NOT do this):
512
+ - print(finish(success=true))
513
+ - default_api.set_result(variable="X", value="Y")
514
+ - I will now call finish(true)
515
+ - \`\`\`finish(success=true)\`\`\``;
516
+ return prompt;
517
+ }
518
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * DeepClause CLI - Command Listing Module
3
+ *
4
+ * Lists compiled DML commands and their metadata.
5
+ */
6
+ export interface Parameter {
7
+ name: string;
8
+ description?: string;
9
+ required?: boolean;
10
+ default?: string;
11
+ }
12
+ export interface CommandInfo {
13
+ name: string;
14
+ path: string;
15
+ description: string;
16
+ parameters?: Parameter[];
17
+ tools?: string[];
18
+ compiledAt?: string;
19
+ model?: string;
20
+ }
21
+ export interface ListCommandsOptions {
22
+ json?: boolean;
23
+ detailed?: boolean;
24
+ }
25
+ /**
26
+ * List all compiled DML commands
27
+ */
28
+ export declare function listCommands(workspaceRoot: string, options?: ListCommandsOptions): Promise<CommandInfo[]>;
29
+ /**
30
+ * Get information about a specific command
31
+ */
32
+ export declare function getCommand(workspaceRoot: string, name: string): Promise<CommandInfo | null>;
33
+ /**
34
+ * Check if a command exists
35
+ */
36
+ export declare function commandExists(workspaceRoot: string, name: string): Promise<boolean>;
37
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuBD;;GAEG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,WAAW,EAAE,CAAC,CAmDxB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA6B7B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAUlB"}