@tanstack/ai 0.37.0 → 0.39.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.
- package/dist/esm/activities/chat/index.js +28 -0
- package/dist/esm/activities/chat/index.js.map +1 -1
- package/dist/esm/activities/chat/mcp/manager.js +10 -1
- package/dist/esm/activities/chat/mcp/manager.js.map +1 -1
- package/dist/esm/activities/chat/mcp/types.d.ts +22 -0
- package/dist/esm/activities/chat/messages.js.map +1 -1
- package/dist/esm/activities/chat/middleware/compose.d.ts +7 -1
- package/dist/esm/activities/chat/middleware/compose.js +27 -0
- package/dist/esm/activities/chat/middleware/compose.js.map +1 -1
- package/dist/esm/activities/chat/middleware/index.d.ts +1 -1
- package/dist/esm/activities/chat/middleware/sandbox-runtime.d.ts +8 -0
- package/dist/esm/activities/chat/middleware/sandbox-runtime.js +9 -0
- package/dist/esm/activities/chat/middleware/sandbox-runtime.js.map +1 -0
- package/dist/esm/activities/chat/middleware/types.d.ts +22 -0
- package/dist/esm/activities/chat/stream/processor.js +23 -0
- package/dist/esm/activities/chat/stream/processor.js.map +1 -1
- package/dist/esm/activities/chat/tools/tool-calls.d.ts +6 -1
- package/dist/esm/activities/chat/tools/tool-calls.js +36 -0
- package/dist/esm/activities/chat/tools/tool-calls.js.map +1 -1
- package/dist/esm/adapter-internals.d.ts +2 -0
- package/dist/esm/adapter-internals.js +4 -0
- package/dist/esm/adapter-internals.js.map +1 -1
- package/dist/esm/client.d.ts +1 -1
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/logger/internal-logger.d.ts +2 -0
- package/dist/esm/logger/internal-logger.js +6 -1
- package/dist/esm/logger/internal-logger.js.map +1 -1
- package/dist/esm/logger/resolve.js +6 -3
- package/dist/esm/logger/resolve.js.map +1 -1
- package/dist/esm/logger/types.d.ts +5 -0
- package/dist/esm/types.d.ts +52 -1
- package/package.json +1 -1
- package/skills/ai-core/adapter-configuration/SKILL.md +25 -12
- package/skills/ai-core/chat-experience/SKILL.md +30 -2
- package/skills/ai-core/media-generation/SKILL.md +13 -0
- package/skills/ai-core/tool-calling/SKILL.md +10 -3
- package/src/activities/chat/index.ts +39 -0
- package/src/activities/chat/mcp/manager.ts +31 -1
- package/src/activities/chat/mcp/types.ts +23 -0
- package/src/activities/chat/messages.ts +5 -0
- package/src/activities/chat/middleware/compose.ts +34 -0
- package/src/activities/chat/middleware/index.ts +2 -0
- package/src/activities/chat/middleware/sandbox-runtime.ts +21 -0
- package/src/activities/chat/middleware/types.ts +37 -0
- package/src/activities/chat/stream/processor.ts +42 -0
- package/src/activities/chat/tools/tool-calls.ts +96 -2
- package/src/adapter-internals.ts +6 -0
- package/src/client.ts +1 -0
- package/src/index.ts +4 -0
- package/src/logger/internal-logger.ts +6 -0
- package/src/logger/resolve.ts +3 -0
- package/src/logger/types.ts +5 -0
- package/src/types.ts +51 -0
|
@@ -10,6 +10,7 @@ import { convertSchemaForStructuredOutput, isStandardSchema, parseWithStandardSc
|
|
|
10
10
|
import { maxIterations } from "./agent-loop-strategies.js";
|
|
11
11
|
import { convertMessagesToModelMessages, generateMessageId } from "./messages.js";
|
|
12
12
|
import { MiddlewareRunner } from "./middleware/compose.js";
|
|
13
|
+
import { provideSandboxRuntime } from "./middleware/sandbox-runtime.js";
|
|
13
14
|
import { CapabilityRegistry } from "./middleware/capabilities.js";
|
|
14
15
|
import { validateCapabilities } from "./middleware/validate.js";
|
|
15
16
|
import { MCPManager } from "./mcp/manager.js";
|
|
@@ -70,6 +71,7 @@ class TextEngine {
|
|
|
70
71
|
// Middleware support
|
|
71
72
|
middlewareRunner;
|
|
72
73
|
middlewareCtx;
|
|
74
|
+
sandboxFileQueue = [];
|
|
73
75
|
deferredPromises = [];
|
|
74
76
|
abortReason;
|
|
75
77
|
middlewareAbortController;
|
|
@@ -185,6 +187,16 @@ class TextEngine {
|
|
|
185
187
|
getOptional: (capability) => capability[0](this.middlewareCtx, { optional: true }),
|
|
186
188
|
provide: (capability, value) => capability[1](this.middlewareCtx, value)
|
|
187
189
|
};
|
|
190
|
+
provideSandboxRuntime(this.middlewareCtx, {
|
|
191
|
+
logger: this.logger,
|
|
192
|
+
emit: (event) => {
|
|
193
|
+
this.logger.sandbox(`file ${event.type} ${event.path}`, { event });
|
|
194
|
+
void this.middlewareRunner.runSandboxFile(this.middlewareCtx, event);
|
|
195
|
+
this.sandboxFileQueue.push(
|
|
196
|
+
this.createCustomEventChunk("sandbox.file", { ...event })
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
188
200
|
}
|
|
189
201
|
/** Get the accumulated content after the chat loop completes */
|
|
190
202
|
getAccumulatedContent() {
|
|
@@ -399,6 +411,10 @@ class TextEngine {
|
|
|
399
411
|
threadId: this.threadId,
|
|
400
412
|
runId: this.runIdOverride,
|
|
401
413
|
parentRunId: this.parentRunIdOverride,
|
|
414
|
+
// Expose provided capabilities (e.g. sandbox) to harness adapters.
|
|
415
|
+
capabilities: this.middlewareCtx,
|
|
416
|
+
// Client approval decisions, for harness interactive-approval resolution.
|
|
417
|
+
approvals: this.initialApprovals,
|
|
402
418
|
...combinedSchema ? { outputSchema: combinedSchema } : {}
|
|
403
419
|
})) {
|
|
404
420
|
if (this.isCancelled()) {
|
|
@@ -444,10 +460,12 @@ class TextEngine {
|
|
|
444
460
|
if (chunk.type === "RUN_FINISHED" && chunk.usage) {
|
|
445
461
|
await this.middlewareRunner.runOnUsage(this.middlewareCtx, chunk.usage);
|
|
446
462
|
}
|
|
463
|
+
yield* this.drainSandboxFileQueue();
|
|
447
464
|
if (this.earlyTermination) {
|
|
448
465
|
break;
|
|
449
466
|
}
|
|
450
467
|
}
|
|
468
|
+
yield* this.drainSandboxFileQueue();
|
|
451
469
|
}
|
|
452
470
|
handleStreamChunk(chunk) {
|
|
453
471
|
switch (chunk.type) {
|
|
@@ -1412,6 +1430,16 @@ class TextEngine {
|
|
|
1412
1430
|
this.middlewareCtx.chunkIndex++;
|
|
1413
1431
|
}
|
|
1414
1432
|
}
|
|
1433
|
+
/**
|
|
1434
|
+
* Drain queued `sandbox.file` chunks (emitted via the SandboxRuntime sink)
|
|
1435
|
+
* through the middleware pipeline and into the public stream.
|
|
1436
|
+
*/
|
|
1437
|
+
async *drainSandboxFileQueue() {
|
|
1438
|
+
while (this.sandboxFileQueue.length > 0) {
|
|
1439
|
+
const chunk = this.sandboxFileQueue.shift();
|
|
1440
|
+
if (chunk) yield* this.pipeThroughMiddleware(chunk);
|
|
1441
|
+
}
|
|
1442
|
+
}
|
|
1415
1443
|
/**
|
|
1416
1444
|
* Drain an executeToolCalls async generator, yielding any CustomEvent chunks
|
|
1417
1445
|
* through the middleware pipeline and returning the final ExecuteToolCallsResult.
|