@sema-agent/server 1.188.0 → 1.190.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/README.md +2 -2
- package/deploy/sema-up/README.md +1 -1
- package/deploy/sema-up/chart/templates/server-v4pro.yaml +10 -0
- package/deploy/sema-up/chart/templates/server.yaml +11 -0
- package/deploy/sema-up/chart/values.yaml +10 -0
- package/deploy/sema-up/cluster-up.sh +1 -1
- package/deploy/sema-up/machines.example.yaml +2 -2
- package/deploy/sema-up/sema-up.sh +1 -1
- package/deploy/sema-up/stack/compose.yaml +7 -0
- package/dist/capabilities/sandbox-file-send.d.ts +3 -1
- package/dist/capabilities/sandbox-file-send.d.ts.map +1 -1
- package/dist/capabilities/sandbox-file-send.js +8 -1
- package/dist/capabilities/sandbox-file-send.js.map +1 -1
- package/dist/capabilities/send-user-file-tool.d.ts +1 -0
- package/dist/capabilities/send-user-file-tool.d.ts.map +1 -1
- package/dist/capabilities/send-user-file-tool.js +1 -0
- package/dist/capabilities/send-user-file-tool.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +46 -9
- package/dist/config.js.map +1 -1
- package/dist/http/server.d.ts +1 -0
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +93 -17
- package/dist/http/server.js.map +1 -1
- package/dist/main.js +18 -9
- package/dist/main.js.map +1 -1
- package/dist/orchestration/workflow-completion-inbox.d.ts +12 -0
- package/dist/orchestration/workflow-completion-inbox.d.ts.map +1 -1
- package/dist/orchestration/workflow-completion-inbox.js +18 -0
- package/dist/orchestration/workflow-completion-inbox.js.map +1 -1
- package/dist/plugins/pg-pool.d.ts.map +1 -1
- package/dist/plugins/pg-pool.js +15 -0
- package/dist/plugins/pg-pool.js.map +1 -1
- package/dist/plugins/s3-presign.d.ts +11 -0
- package/dist/plugins/s3-presign.d.ts.map +1 -1
- package/dist/plugins/s3-presign.js +14 -5
- package/dist/plugins/s3-presign.js.map +1 -1
- package/dist/plugins/send-file-ledger.d.ts +64 -0
- package/dist/plugins/send-file-ledger.d.ts.map +1 -0
- package/dist/plugins/send-file-ledger.js +142 -0
- package/dist/plugins/send-file-ledger.js.map +1 -0
- package/dist/plugins/send-user-file.d.ts +6 -2
- package/dist/plugins/send-user-file.d.ts.map +1 -1
- package/dist/plugins/send-user-file.js +39 -11
- package/dist/plugins/send-user-file.js.map +1 -1
- package/dist/plugins/store-backend.d.ts +2 -0
- package/dist/plugins/store-backend.d.ts.map +1 -1
- package/dist/plugins/store-backend.js +7 -0
- package/dist/plugins/store-backend.js.map +1 -1
- package/dist/plugins/tidb-pool.d.ts.map +1 -1
- package/dist/plugins/tidb-pool.js +15 -0
- package/dist/plugins/tidb-pool.js.map +1 -1
- package/dist/run-local.d.ts.map +1 -1
- package/dist/run-local.js +2 -1
- package/dist/run-local.js.map +1 -1
- package/dist/runs.d.ts.map +1 -1
- package/dist/runs.js +16 -9
- package/dist/runs.js.map +1 -1
- package/dist/security.d.ts +2 -0
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +20 -3
- package/dist/security.js.map +1 -1
- package/dist/trace/project.d.ts +4 -0
- package/dist/trace/project.d.ts.map +1 -1
- package/dist/trace/project.js +4 -0
- package/dist/trace/project.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAA+P,KAAK,aAAa,EAAiI,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAmB,KAAK,aAAa,EAAsB,KAAK,cAAc,EAAwB,KAAK,gBAAgB,EAAwK,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAiJ,KAAK,sBAAsB,EAAwB,MAAM,gBAAgB,CAAC;AAGlO,OAAO,KAAK,EAAyB,SAAS,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGrG,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGrO,OAAO,EAA0B,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACrG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"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"}
|
package/dist/http/server.js
CHANGED
|
@@ -17,7 +17,7 @@ import { manifestToIndexEntry } from "../images/manifest.js";
|
|
|
17
17
|
import { runInBackground, evictIfConflict, stripCheckpointToken, resumeAtHttpStatus, TurnAnchorCapture, HEARTBEAT_MS, markChildrenStoppedByUserOnAbort } from "../runs.js";
|
|
18
18
|
import { looksLikeJwt } from "../auth-bridge.js";
|
|
19
19
|
import { redactSteerIn } from "../orchestration/workflow-agent-steer.js";
|
|
20
|
-
import { emitPendingWorkflowCompletions, taskNotificationInboxEntry, taskNotificationFoldKey } from "../orchestration/workflow-completion-inbox.js";
|
|
20
|
+
import { emitPendingWorkflowCompletions, taskNotificationInboxEntry, taskNotificationFoldKey, taskNotificationStreamKey, NotifiedKeys } from "../orchestration/workflow-completion-inbox.js";
|
|
21
21
|
import { fleetRunPublisher, fleetRunLabels } from "../fleet/fleet-bus.js";
|
|
22
22
|
import { RateLimiter } from "../observability/rate-limit.js";
|
|
23
23
|
import { withPrincipal } from "../observability/principal-context.js";
|
|
@@ -600,8 +600,9 @@ export function createHttpServer(deps) {
|
|
|
600
600
|
rewindFilesTo: Boolean(deps.fileSnapshotStore && deps.resumeAnchorStore && deps.sessionStorage?.getLeafId),
|
|
601
601
|
scheduler: Boolean(deps.config.schedulerEnabled && deps.config.requirePrincipal !== true && deps.config.remoteExec?.provider === "host"),
|
|
602
602
|
sessionSync: Boolean(deps.backend && deps.sessionStorage?.exportEntries && deps.fileSnapshotStore),
|
|
603
|
-
sendUserFile: Boolean(deps.config.sendUserFile),
|
|
603
|
+
sendUserFile: Boolean(deps.sendUserFile && deps.config.sendUserFile?.publicEndpoint),
|
|
604
604
|
s3PublicEndpoint: deps.config.sendUserFile?.publicEndpoint ?? null,
|
|
605
|
+
sendUserFileLedger: Boolean(deps.sendFileLedger),
|
|
605
606
|
workflows: deps.workflowsCapable ?? Boolean(deps.workflowRunStore),
|
|
606
607
|
workflowsList: Boolean(deps.workflowRunStore),
|
|
607
608
|
manualCompact: Boolean(deps.runStore),
|
|
@@ -735,7 +736,7 @@ export function createHttpServer(deps) {
|
|
|
735
736
|
let liveStreamRef;
|
|
736
737
|
const subagentHandleEvictions = [];
|
|
737
738
|
let syncLegLive = true;
|
|
738
|
-
const syncNotifiedKeys = new
|
|
739
|
+
const syncNotifiedKeys = new NotifiedKeys();
|
|
739
740
|
fleetPub?.onStart();
|
|
740
741
|
try {
|
|
741
742
|
const streamBody = async () => {
|
|
@@ -777,9 +778,9 @@ export function createHttpServer(deps) {
|
|
|
777
778
|
void deps.workflowCompletionInbox.enqueue(taskNotificationInboxEntry(prepared.spec.sessionId, askOwner, n, Date.now(), durableTaskId)).catch((err) => deps.logger?.warn?.("park_enqueue_failed", { route: "sync-stream", taskId: n.task_id, err: err instanceof Error ? err.message : String(err) }));
|
|
778
779
|
}
|
|
779
780
|
else if (deliverable) {
|
|
780
|
-
const key =
|
|
781
|
-
if (
|
|
782
|
-
syncNotifiedKeys.
|
|
781
|
+
const key = taskNotificationStreamKey(n);
|
|
782
|
+
if (syncNotifiedKeys.get(key) === undefined) {
|
|
783
|
+
syncNotifiedKeys.set(key, Promise.resolve(true));
|
|
783
784
|
res.write(`data: ${JSON.stringify({ type: "task_notification", ...taskNotificationEventData({ notification: n }) })}\n\n`);
|
|
784
785
|
}
|
|
785
786
|
}
|
|
@@ -824,9 +825,13 @@ export function createHttpServer(deps) {
|
|
|
824
825
|
}
|
|
825
826
|
else if (ev.type === "task_notification") {
|
|
826
827
|
const tnv = ev.notification;
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
828
|
+
const tnvKey = tnv?.task_id ? taskNotificationStreamKey({ task_type: tnv.task_type, task_id: tnv.task_id, status: String(tnv.status), seq: tnv.seq }) : undefined;
|
|
829
|
+
const tnvPrior = tnvKey !== undefined ? syncNotifiedKeys.get(tnvKey) : undefined;
|
|
830
|
+
if (tnvPrior === undefined || !(await tnvPrior)) {
|
|
831
|
+
if (tnvKey !== undefined)
|
|
832
|
+
syncNotifiedKeys.set(tnvKey, Promise.resolve(true));
|
|
833
|
+
res.write(`data: ${JSON.stringify({ type: "task_notification", ...taskNotificationEventData(ev) })}\n\n`);
|
|
834
|
+
}
|
|
830
835
|
}
|
|
831
836
|
else if (ev.type === "reasoning_delta" && typeof ev.delta === "string") {
|
|
832
837
|
res.write(`data: ${JSON.stringify({ ...ev, delta: redactSecrets(ev.delta) })}\n\n`);
|
|
@@ -855,6 +860,9 @@ export function createHttpServer(deps) {
|
|
|
855
860
|
await emitPendingWorkflowCompletions(deps.workflowCompletionInbox, prepared.spec.sessionId, askOwner, (frame) => {
|
|
856
861
|
if (closed || res.writableEnded || res.destroyed)
|
|
857
862
|
throw new Error("stream ended before the completion frame was written");
|
|
863
|
+
const f = frame;
|
|
864
|
+
if (f.type === "task_notification" && f.task_id)
|
|
865
|
+
syncNotifiedKeys.set(taskNotificationStreamKey({ task_type: f.task_type, task_id: f.task_id, status: String(f.status), seq: f.seq }), Promise.resolve(true));
|
|
858
866
|
res.write(`data: ${JSON.stringify(frame)}\n\n`);
|
|
859
867
|
}, { route: "sync-stream-open", connection: "live-sse", log: (m, x) => deps.logger?.info?.(m, x) });
|
|
860
868
|
const withElicit = deps.elicitation
|
|
@@ -2536,6 +2544,67 @@ export function createHttpServer(deps) {
|
|
|
2536
2544
|
await handleSessionList(res, lister, new URL(req.url ?? "", "http://x").searchParams, gateOwner);
|
|
2537
2545
|
return;
|
|
2538
2546
|
}
|
|
2547
|
+
if (req.method === "GET" && url === "/v1/sendfile-links") {
|
|
2548
|
+
const { fleetWide, gateOwner } = sessionOwnerScope(req);
|
|
2549
|
+
if (!fleetWide && gateOwner === null) {
|
|
2550
|
+
sendJson(res, 401, { error: "unauthorized" });
|
|
2551
|
+
return;
|
|
2552
|
+
}
|
|
2553
|
+
if (!deps.sendFileLedger) {
|
|
2554
|
+
sendJson(res, 501, { error: "sendfile ledger requires a store backend (DB_BACKEND=tidb|pg|local) and the SendUserFile issuer configured" });
|
|
2555
|
+
return;
|
|
2556
|
+
}
|
|
2557
|
+
const query = new URL(req.url ?? "", "http://x").searchParams;
|
|
2558
|
+
const limitRaw = query.get("limit");
|
|
2559
|
+
if (limitRaw !== null && !(/^[0-9]+$/.test(limitRaw) && Number(limitRaw) >= 1 && Number(limitRaw) <= 100)) {
|
|
2560
|
+
sendJson(res, 400, { error: "limit must be a decimal integer in 1..100" });
|
|
2561
|
+
return;
|
|
2562
|
+
}
|
|
2563
|
+
const limit = limitRaw === null ? 50 : Number(limitRaw);
|
|
2564
|
+
const beforeRaw = query.get("before");
|
|
2565
|
+
if (beforeRaw !== null && !isUuidV7(beforeRaw)) {
|
|
2566
|
+
sendJson(res, 400, { error: "before must be a uuidv7 link id (the `id`/`nextBefore` of a previous page)" });
|
|
2567
|
+
return;
|
|
2568
|
+
}
|
|
2569
|
+
const before = beforeRaw ?? undefined;
|
|
2570
|
+
let scope;
|
|
2571
|
+
if (gateOwner !== null) {
|
|
2572
|
+
scope = gateOwner;
|
|
2573
|
+
}
|
|
2574
|
+
else {
|
|
2575
|
+
const scopeRaw = query.get("scope");
|
|
2576
|
+
if (scopeRaw === null) {
|
|
2577
|
+
scope = "_";
|
|
2578
|
+
}
|
|
2579
|
+
else {
|
|
2580
|
+
const s = scopeRaw.trim();
|
|
2581
|
+
if (s === "" || s.length > 190) {
|
|
2582
|
+
sendJson(res, 400, { error: "scope must be a non-blank tenant principal of at most 190 characters (the sendfile_link.scope column width)" });
|
|
2583
|
+
return;
|
|
2584
|
+
}
|
|
2585
|
+
scope = s;
|
|
2586
|
+
}
|
|
2587
|
+
}
|
|
2588
|
+
const rows = await deps.sendFileLedger.listByScope(scope, limit + 1, before);
|
|
2589
|
+
const hasMore = rows.length > limit;
|
|
2590
|
+
const page = hasMore ? rows.slice(0, limit) : rows;
|
|
2591
|
+
sendJson(res, 200, {
|
|
2592
|
+
links: page.map((r) => ({
|
|
2593
|
+
id: r.id,
|
|
2594
|
+
filename: r.filename,
|
|
2595
|
+
size: r.size,
|
|
2596
|
+
ttlSec: r.ttlSec,
|
|
2597
|
+
track: r.track,
|
|
2598
|
+
bucket: r.bucket,
|
|
2599
|
+
key: r.objectKey,
|
|
2600
|
+
createdAt: new Date(r.createdAt).toISOString(),
|
|
2601
|
+
...(r.taskId !== undefined ? { taskId: r.taskId } : {}),
|
|
2602
|
+
...(r.sessionId !== undefined ? { sessionId: r.sessionId } : {}),
|
|
2603
|
+
})),
|
|
2604
|
+
...(hasMore ? { nextBefore: page[page.length - 1].id } : {}),
|
|
2605
|
+
});
|
|
2606
|
+
return;
|
|
2607
|
+
}
|
|
2539
2608
|
{
|
|
2540
2609
|
const im = /^\/v1\/sessions\/([^/]+)\/init$/.exec(url);
|
|
2541
2610
|
if (im && req.method === "GET") {
|
|
@@ -3791,11 +3860,15 @@ export function createHttpServer(deps) {
|
|
|
3791
3860
|
}
|
|
3792
3861
|
try {
|
|
3793
3862
|
result = await withPrincipal(principal, async () => {
|
|
3863
|
+
const resumeNotifiedKeys = new NotifiedKeys();
|
|
3794
3864
|
if (deps.runStore && taskId) {
|
|
3795
3865
|
const rs0 = deps.runStore;
|
|
3796
3866
|
let drainSeq = (await rs0.maxSeq(taskId)) + 1;
|
|
3797
3867
|
await emitPendingWorkflowCompletions(deps.workflowCompletionInbox, sessionId, principal ?? null, (frame) => {
|
|
3798
3868
|
const { type, ...rest } = frame;
|
|
3869
|
+
const f = frame;
|
|
3870
|
+
if (f.type === "task_notification" && f.task_id)
|
|
3871
|
+
resumeNotifiedKeys.set(taskNotificationStreamKey({ task_type: f.task_type, task_id: f.task_id, status: String(f.status), seq: f.seq }), Promise.resolve(true));
|
|
3799
3872
|
return rs0.appendEvent(taskId, drainSeq++, type, rest);
|
|
3800
3873
|
}, { route: "resume-open", connection: "durable-append", log: (m, x) => deps.logger?.info?.(m, x) });
|
|
3801
3874
|
}
|
|
@@ -3828,7 +3901,6 @@ export function createHttpServer(deps) {
|
|
|
3828
3901
|
let reasoning = "";
|
|
3829
3902
|
const persistThinking = deps.config.traceThinking;
|
|
3830
3903
|
const append = (type, data) => (rs && taskId ? rs.appendEvent(taskId, ++seq, type, data) : Promise.resolve());
|
|
3831
|
-
const resumeNotifiedKeys = new Set();
|
|
3832
3904
|
const anchorOwner = principal ?? null;
|
|
3833
3905
|
const getLeafId = deps.sessionStorage?.getLeafId?.bind(deps.sessionStorage);
|
|
3834
3906
|
const captureTurnAnchor = deps.resumeAnchorStore && getLeafId
|
|
@@ -3877,10 +3949,9 @@ export function createHttpServer(deps) {
|
|
|
3877
3949
|
void deps.workflowCompletionInbox.enqueue(taskNotificationInboxEntry(sessionId, principal ?? null, n, Date.now(), taskId)).catch((err) => deps.logger?.warn?.("park_enqueue_failed", { route: "resume", taskId: n.task_id, err: err instanceof Error ? err.message : String(err) }));
|
|
3878
3950
|
}
|
|
3879
3951
|
else if (resumeLegLive) {
|
|
3880
|
-
const key =
|
|
3881
|
-
if (
|
|
3882
|
-
resumeNotifiedKeys.
|
|
3883
|
-
void append("task_notification", taskNotificationEventData({ notification: n })).catch(() => undefined);
|
|
3952
|
+
const key = taskNotificationStreamKey(n);
|
|
3953
|
+
if (resumeNotifiedKeys.get(key) === undefined) {
|
|
3954
|
+
resumeNotifiedKeys.set(key, append("task_notification", taskNotificationEventData({ notification: n })).then(() => true, () => false));
|
|
3884
3955
|
}
|
|
3885
3956
|
}
|
|
3886
3957
|
},
|
|
@@ -3941,9 +4012,14 @@ export function createHttpServer(deps) {
|
|
|
3941
4012
|
case "task_notification": {
|
|
3942
4013
|
await flush();
|
|
3943
4014
|
const tnr = ev.notification;
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
4015
|
+
const tnrKey = tnr?.task_id ? taskNotificationStreamKey({ task_type: tnr.task_type, task_id: tnr.task_id, status: String(tnr.status), seq: tnr.seq }) : undefined;
|
|
4016
|
+
const tnrPrior = tnrKey !== undefined ? resumeNotifiedKeys.get(tnrKey) : undefined;
|
|
4017
|
+
if (tnrPrior === undefined || !(await tnrPrior)) {
|
|
4018
|
+
const write = append("task_notification", taskNotificationEventData(ev));
|
|
4019
|
+
if (tnrKey !== undefined)
|
|
4020
|
+
resumeNotifiedKeys.set(tnrKey, write.then(() => true, () => false));
|
|
4021
|
+
await write;
|
|
4022
|
+
}
|
|
3947
4023
|
break;
|
|
3948
4024
|
}
|
|
3949
4025
|
case "turn_end": {
|