@sema-agent/server 1.316.0 → 1.317.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 (50) hide show
  1. package/README.md +9 -0
  2. package/README.zh-CN.md +7 -0
  3. package/dist/config-types.d.ts +1 -1
  4. package/dist/config.d.ts +14 -0
  5. package/dist/config.js +148 -45
  6. package/dist/elicitation.js +2 -2
  7. package/dist/http/route-ctx.d.ts +51 -2
  8. package/dist/http/routes/approvals-assistant.d.ts +11 -0
  9. package/dist/http/routes/approvals-assistant.js +530 -0
  10. package/dist/http/routes/attachments.js +7 -7
  11. package/dist/http/routes/fleet.d.ts +4 -0
  12. package/dist/http/routes/fleet.js +147 -0
  13. package/dist/http/routes/images.js +29 -29
  14. package/dist/http/routes/leader.d.ts +4 -0
  15. package/dist/http/routes/leader.js +48 -0
  16. package/dist/http/routes/memory-policy.js +10 -10
  17. package/dist/http/routes/notify-wake.d.ts +4 -0
  18. package/dist/http/routes/notify-wake.js +133 -0
  19. package/dist/http/routes/observability.js +5 -5
  20. package/dist/http/routes/runs.d.ts +19 -0
  21. package/dist/http/routes/runs.js +967 -0
  22. package/dist/http/routes/session-sync.js +28 -28
  23. package/dist/http/routes/sessions-list.js +8 -8
  24. package/dist/http/routes/sessions.js +47 -47
  25. package/dist/http/routes/side-query.d.ts +4 -0
  26. package/dist/http/routes/side-query.js +88 -0
  27. package/dist/http/routes/tasks.d.ts +4 -0
  28. package/dist/http/routes/tasks.js +632 -0
  29. package/dist/http/routes/trace-usage.d.ts +4 -0
  30. package/dist/http/routes/trace-usage.js +239 -0
  31. package/dist/http/routes/workflows.d.ts +5 -0
  32. package/dist/http/routes/workflows.js +337 -0
  33. package/dist/http/run-meta.d.ts +11 -0
  34. package/dist/http/run-meta.js +16 -0
  35. package/dist/http/send.d.ts +1 -0
  36. package/dist/http/send.js +15 -0
  37. package/dist/http/server.d.ts +6 -5
  38. package/dist/http/server.js +241 -3166
  39. package/dist/http/sse-log.js +2 -2
  40. package/dist/http/wire-types.d.ts +6 -0
  41. package/dist/leader/endpoint.js +4 -4
  42. package/dist/main.js +5 -5
  43. package/dist/plugins/remote-env-host.js +4 -3
  44. package/dist/question.js +2 -2
  45. package/dist/run-local.js +1 -1
  46. package/dist/tool-approval.js +2 -2
  47. package/dist/trace/ledger-sink.js +1 -1
  48. package/dist/trace/project.d.ts +1 -0
  49. package/dist/trace/project.js +3 -0
  50. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { sendJson } from "../send.js";
1
+ import { sendJson, sendError } from "../send.js";
2
2
  import { gatedPrincipal, isOperator, explicitOperatorOk } from "../principal-gate.js";
3
3
  export async function handleObservability(req, res, url, ctx) {
4
4
  const miss = { fell: false };
@@ -11,12 +11,12 @@ async function handleObservabilityBody(req, res, url, ctx, miss) {
11
11
  if (deps.config.requirePrincipal) {
12
12
  const principal = gatedPrincipal(req, deps.config);
13
13
  if (!explicitOperatorOk(principal, deps.config.operatorPrincipals)) {
14
- sendJson(res, 403, { error: "outcomes view is operator-only on a multi-tenant worker" });
14
+ sendError(res, 403, "auth.operator_only", "outcomes view is operator-only on a multi-tenant worker");
15
15
  return;
16
16
  }
17
17
  }
18
18
  if (!deps.outcomeSink?.summary) {
19
- sendJson(res, 501, { error: "no queryable outcome ledger on this worker (File sink — read the JSONL dataset directly)" });
19
+ sendError(res, 501, "capability.outcome_ledger_required", "no queryable outcome ledger on this worker (File sink — read the JSONL dataset directly)");
20
20
  return;
21
21
  }
22
22
  const q = new URL(req.url ?? "/", "http://localhost").searchParams;
@@ -27,14 +27,14 @@ async function handleObservabilityBody(req, res, url, ctx, miss) {
27
27
  }
28
28
  catch (err) {
29
29
  deps.logger?.warn?.("outcomes_summary_failed", { err: String(err) });
30
- sendJson(res, 500, { error: "outcome summary failed" });
30
+ sendError(res, 500, "internal.error", "outcome summary failed");
31
31
  }
32
32
  return;
33
33
  }
34
34
  if (url === "/v1/usage" && req.method === "GET") {
35
35
  const principal = gatedPrincipal(req, deps.config);
36
36
  if (!principal) {
37
- sendJson(res, 401, { error: `missing principal header '${deps.config.principalHeader}'` });
37
+ sendError(res, 401, "auth.principal_required", `missing principal header '${deps.config.principalHeader}'`);
38
38
  return;
39
39
  }
40
40
  const windowSec = deps.config.costQuotaWindowSec;
@@ -0,0 +1,19 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { RouteCtx } from "../route-ctx.js";
3
+ export declare const RUN_ID_RE: RegExp;
4
+ export declare const RUN_CANCEL_RE: RegExp;
5
+ export declare const RUN_STEER_RE: RegExp;
6
+ export declare const RUN_DETACH_RE: RegExp;
7
+ export declare const RUN_COMPACT_RE: RegExp;
8
+ export declare const ELICIT_RESPOND_RE: RegExp;
9
+ export declare const QUESTION_RESPOND_RE: RegExp;
10
+ export declare const TOOL_APPROVAL_RESPOND_RE: RegExp;
11
+ export declare const RUN_SUBAGENT_STEER_RE: RegExp;
12
+ export declare const RUN_SUBAGENT_RESUME_RE: RegExp;
13
+ export declare const RUN_SUBAGENT_OUTPUT_RE: RegExp;
14
+ export declare const RUN_SUBAGENT_STREAM_RE: RegExp;
15
+ export declare const RUN_TASK_OUTPUT_RE: RegExp;
16
+ export declare const RUN_TASK_STOP_RE: RegExp;
17
+ export declare function handleRuns(req: IncomingMessage, res: ServerResponse, url: string, ctx: RouteCtx): Promise<boolean>;
18
+ export declare function handleRunVerbs(req: IncomingMessage, res: ServerResponse, url: string, ctx: RouteCtx): Promise<boolean>;
19
+ //# sourceMappingURL=runs.d.ts.map