veryfront 0.1.231 → 0.1.233
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/esm/deno.d.ts +2 -0
- package/esm/deno.js +3 -1
- package/esm/src/agent/conversation-bootstrap.d.ts +61 -0
- package/esm/src/agent/conversation-bootstrap.d.ts.map +1 -0
- package/esm/src/agent/conversation-bootstrap.js +131 -0
- package/esm/src/agent/durable.d.ts +118 -0
- package/esm/src/agent/durable.d.ts.map +1 -0
- package/esm/src/agent/durable.js +191 -0
- package/esm/src/agent/index.d.ts +2 -0
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +2 -0
- package/esm/src/channels/control-plane.d.ts +6 -0
- package/esm/src/channels/control-plane.d.ts.map +1 -1
- package/esm/src/channels/control-plane.js +6 -0
- package/esm/src/proxy/handler.d.ts.map +1 -1
- package/esm/src/proxy/handler.js +1 -0
- package/esm/src/server/handlers/request/agent-run-cancel.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/agent-run-cancel.handler.js +6 -2
- package/esm/src/server/handlers/request/agent-run-resume.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/agent-run-resume.handler.js +6 -2
- package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/agent-stream.handler.js +5 -1
- package/esm/src/server/handlers/request/internal-agents-list.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/internal-agents-list.handler.js +5 -2
- package/esm/src/server/runtime-handler/environment-resolution.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/environment-resolution.js +2 -1
- package/esm/src/server/runtime-handler/request-utils.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/request-utils.js +2 -1
- package/esm/src/utils/index.d.ts +2 -2
- package/esm/src/utils/index.d.ts.map +1 -1
- package/esm/src/utils/index.js +1 -1
- package/esm/src/utils/logger/logger.d.ts +6 -0
- package/esm/src/utils/logger/logger.d.ts.map +1 -1
- package/esm/src/utils/logger/logger.js +10 -0
- package/esm/src/utils/logger/request-context.d.ts +2 -0
- package/esm/src/utils/logger/request-context.d.ts.map +1 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +9 -1
- package/src/deno.js +3 -1
- package/src/src/agent/conversation-bootstrap.ts +195 -0
- package/src/src/agent/durable.ts +259 -0
- package/src/src/agent/index.ts +23 -0
- package/src/src/channels/control-plane.ts +7 -0
- package/src/src/proxy/handler.ts +1 -0
- package/src/src/server/handlers/request/agent-run-cancel.handler.ts +9 -2
- package/src/src/server/handlers/request/agent-run-resume.handler.ts +10 -2
- package/src/src/server/handlers/request/agent-stream.handler.ts +9 -2
- package/src/src/server/handlers/request/internal-agents-list.handler.ts +6 -1
- package/src/src/server/runtime-handler/environment-resolution.ts +2 -1
- package/src/src/server/runtime-handler/request-utils.ts +2 -1
- package/src/src/utils/index.ts +4 -1
- package/src/src/utils/logger/logger.ts +16 -0
- package/src/src/utils/logger/request-context.ts +2 -0
- package/src/src/utils/version-constant.ts +1 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { CONTROL_PLANE_AGENT_RUNS_PATH_PREFIX, LEGACY_INTERNAL_AGENT_RUNS_PATH_PREFIX, } from "../../../channels/control-plane.js";
|
|
1
2
|
import { ControlPlaneRequestError, verifyControlPlaneRequest, } from "../../../internal-agents/control-plane-auth.js";
|
|
2
3
|
import { agentRunSessionManager, } from "../../../internal-agents/session-manager.js";
|
|
3
4
|
import { INTERNAL_AGENT_CONTROL_PLANE_MAX_BODY_BYTES, InternalAgentRequestBodyTooLargeError, readInternalAgentRequestBody, } from "../../../internal-agents/request-body.js";
|
|
4
5
|
import { BaseHandler } from "../response/base.js";
|
|
5
6
|
import { PRIORITY_MEDIUM_API } from "../../../utils/constants/index.js";
|
|
6
|
-
const CANCEL_PATH_REGEX = /^\/internal\/agents\/runs\/([^/]+)$/;
|
|
7
|
+
const CANCEL_PATH_REGEX = /^\/(?:api\/control-plane\/agents|internal\/agents)\/runs\/([^/]+)$/;
|
|
7
8
|
function getRunId(pathname) {
|
|
8
9
|
return CANCEL_PATH_REGEX.exec(pathname)?.[1] ?? null;
|
|
9
10
|
}
|
|
@@ -12,7 +13,10 @@ export class AgentRunCancelHandler extends BaseHandler {
|
|
|
12
13
|
metadata = {
|
|
13
14
|
name: "AgentRunCancelHandler",
|
|
14
15
|
priority: PRIORITY_MEDIUM_API,
|
|
15
|
-
patterns: [
|
|
16
|
+
patterns: [
|
|
17
|
+
{ pattern: CONTROL_PLANE_AGENT_RUNS_PATH_PREFIX, prefix: true, method: "DELETE" },
|
|
18
|
+
{ pattern: LEGACY_INTERNAL_AGENT_RUNS_PATH_PREFIX, prefix: true, method: "DELETE" },
|
|
19
|
+
],
|
|
16
20
|
};
|
|
17
21
|
constructor(sessionManager = agentRunSessionManager) {
|
|
18
22
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-run-resume.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-run-resume.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-run-resume.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-run-resume.handler.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,sBAAsB,EAK5B,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAUnG,qBAAa,qBAAsB,SAAQ,WAAW;IAUxC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAT3C,QAAQ,EAAE,eAAe,CAOvB;gBAE2B,cAAc,GAAE,sBAA+C;IAItF,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAoExE"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { CONTROL_PLANE_AGENT_RUNS_PATH_PREFIX, LEGACY_INTERNAL_AGENT_RUNS_PATH_PREFIX, } from "../../../channels/control-plane.js";
|
|
1
2
|
import { ControlPlaneRequestError, verifyControlPlaneRequest, } from "../../../internal-agents/control-plane-auth.js";
|
|
2
3
|
import { agentRunSessionManager, RunNotActiveError, ToolResultConflictError, ToolResultNotWaitingError, } from "../../../internal-agents/session-manager.js";
|
|
3
4
|
import { INTERNAL_AGENT_CONTROL_PLANE_MAX_BODY_BYTES, InternalAgentRequestBodyTooLargeError, readInternalAgentRequestBody, } from "../../../internal-agents/request-body.js";
|
|
4
5
|
import { ResumeSignalSchema } from "../../../internal-agents/schema.js";
|
|
5
6
|
import { BaseHandler } from "../response/base.js";
|
|
6
7
|
import { PRIORITY_MEDIUM_API } from "../../../utils/constants/index.js";
|
|
7
|
-
const RESUME_PATH_REGEX = /^\/internal\/agents\/runs\/([^/]+)\/resume$/;
|
|
8
|
+
const RESUME_PATH_REGEX = /^\/(?:api\/control-plane\/agents|internal\/agents)\/runs\/([^/]+)\/resume$/;
|
|
8
9
|
function getRunId(pathname) {
|
|
9
10
|
return RESUME_PATH_REGEX.exec(pathname)?.[1] ?? null;
|
|
10
11
|
}
|
|
@@ -13,7 +14,10 @@ export class AgentRunResumeHandler extends BaseHandler {
|
|
|
13
14
|
metadata = {
|
|
14
15
|
name: "AgentRunResumeHandler",
|
|
15
16
|
priority: PRIORITY_MEDIUM_API,
|
|
16
|
-
patterns: [
|
|
17
|
+
patterns: [
|
|
18
|
+
{ pattern: CONTROL_PLANE_AGENT_RUNS_PATH_PREFIX, prefix: true, method: "POST" },
|
|
19
|
+
{ pattern: LEGACY_INTERNAL_AGENT_RUNS_PATH_PREFIX, prefix: true, method: "POST" },
|
|
20
|
+
],
|
|
17
21
|
};
|
|
18
22
|
constructor(sessionManager = agentRunSessionManager) {
|
|
19
23
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,4BAA4B,EAE7B,MAAM,2CAA2C,CAAC;AAmBnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAKnG,MAAM,WAAW,sBACf,SAAQ,yBAAyB,EAAE,+BAA+B;IAClE,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;CACpE;AA4ED,qBAAa,kBAAmB,SAAQ,WAAW;IAUrC,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,QAAQ,EAAE,eAAe,CAOvB;gBAE2B,IAAI,GAAE,sBAAoC;IAIvE,OAAO,CAAC,sBAAsB;IAwBxB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAgHxE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defaultChannelInvokeDeps } from "../../../channels/invoke.js";
|
|
2
|
+
import { CONTROL_PLANE_AGENT_STREAM_PATH, LEGACY_INTERNAL_AGENT_STREAM_PATH, } from "../../../channels/control-plane.js";
|
|
2
3
|
import { createRuntimeAgentStreamResponse, } from "../../../internal-agents/run-stream.js";
|
|
3
4
|
import { resolveRuntimeOwnerInvokeUrl, RUNTIME_OWNER_INVOKE_URL_HEADER, } from "../../../internal-agents/runtime-owner.js";
|
|
4
5
|
import { ControlPlaneRequestError, verifyControlPlaneRequest, } from "../../../internal-agents/control-plane-auth.js";
|
|
@@ -62,7 +63,10 @@ export class AgentStreamHandler extends BaseHandler {
|
|
|
62
63
|
metadata = {
|
|
63
64
|
name: "AgentStreamHandler",
|
|
64
65
|
priority: PRIORITY_MEDIUM_API,
|
|
65
|
-
patterns: [
|
|
66
|
+
patterns: [
|
|
67
|
+
{ pattern: CONTROL_PLANE_AGENT_STREAM_PATH, exact: true, method: "POST" },
|
|
68
|
+
{ pattern: LEGACY_INTERNAL_AGENT_STREAM_PATH, exact: true, method: "POST" },
|
|
69
|
+
],
|
|
66
70
|
};
|
|
67
71
|
constructor(deps = defaultDeps) {
|
|
68
72
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-agents-list.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/internal-agents-list.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,
|
|
1
|
+
{"version":3,"file":"internal-agents-list.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/internal-agents-list.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAML,KAAK,yBAAyB,EAC/B,MAAM,oCAAoC,CAAC;AAc5C,qBAAa,yBAA0B,SAAQ,WAAW;IAU5C,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,QAAQ,EAAE,eAAe,CAOvB;gBAE2B,IAAI,GAAE,yBAAoD;IAIjF,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAkExE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseHandler } from "../response/base.js";
|
|
2
|
-
import { ControlPlaneAgentsListRequestSchema, listRuntimeAgents, } from "../../../channels/control-plane.js";
|
|
2
|
+
import { CONTROL_PLANE_AGENTS_LIST_PATH, ControlPlaneAgentsListRequestSchema, LEGACY_INTERNAL_AGENTS_LIST_PATH, listRuntimeAgents, } from "../../../channels/control-plane.js";
|
|
3
3
|
import { defaultChannelInvokeDeps } from "../../../channels/invoke.js";
|
|
4
4
|
import { ControlPlaneRequestError, verifyControlPlaneRequest, } from "../../../internal-agents/control-plane-auth.js";
|
|
5
5
|
import { INTERNAL_AGENT_CONTROL_PLANE_MAX_BODY_BYTES, InternalAgentRequestBodyTooLargeError, readInternalAgentRequestBody, } from "../../../internal-agents/request-body.js";
|
|
@@ -10,7 +10,10 @@ export class InternalAgentsListHandler extends BaseHandler {
|
|
|
10
10
|
metadata = {
|
|
11
11
|
name: "InternalAgentsListHandler",
|
|
12
12
|
priority: PRIORITY_MEDIUM_API,
|
|
13
|
-
patterns: [
|
|
13
|
+
patterns: [
|
|
14
|
+
{ pattern: CONTROL_PLANE_AGENTS_LIST_PATH, exact: true, method: "POST" },
|
|
15
|
+
{ pattern: LEGACY_INTERNAL_AGENTS_LIST_PATH, exact: true, method: "POST" },
|
|
16
|
+
],
|
|
14
17
|
};
|
|
15
18
|
constructor(deps = defaultChannelInvokeDeps) {
|
|
16
19
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-resolution.d.ts","sourceRoot":"","sources":["../../../../src/src/server/runtime-handler/environment-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,UAAU,2BAA2B;IACnC,gDAAgD;IAChD,mBAAmB,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;IAC1D,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,yCAAyC;IACzC,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,4BAA4B;IACpC,qCAAqC;IACrC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACvC,gCAAgC;IAChC,UAAU,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;IACjD,8BAA8B;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,mBAAmB;IACnB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,uBAAuB;IACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,kBAAkB,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;CAC1D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,4BAA4B,GACjC,2BAA2B,
|
|
1
|
+
{"version":3,"file":"environment-resolution.d.ts","sourceRoot":"","sources":["../../../../src/src/server/runtime-handler/environment-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,UAAU,2BAA2B;IACnC,gDAAgD;IAChD,mBAAmB,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;IAC1D,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,yCAAyC;IACzC,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,4BAA4B;IACpC,qCAAqC;IACrC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACvC,gCAAgC;IAChC,UAAU,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;IACjD,8BAA8B;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,mBAAmB;IACnB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,uBAAuB;IACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,kBAAkB,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;CAC1D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,4BAA4B,GACjC,2BAA2B,CAiF7B"}
|
|
@@ -20,7 +20,8 @@ export function resolveEnvironment(opts) {
|
|
|
20
20
|
let releaseId = opts.releaseId;
|
|
21
21
|
// Some internal framework surfaces are routed directly to a runtime owner pod and
|
|
22
22
|
// rely on signed control-plane auth instead of a user-facing release address.
|
|
23
|
-
const isInternalAgentControlPlanePath = opts.pathname.startsWith("/internal/agents/")
|
|
23
|
+
const isInternalAgentControlPlanePath = opts.pathname.startsWith("/internal/agents/") ||
|
|
24
|
+
opts.pathname.startsWith("/api/control-plane/agents/");
|
|
24
25
|
// Skip releaseId validation for development assets and signed internal control-plane
|
|
25
26
|
// requests because they do not require a user-facing release context.
|
|
26
27
|
const canSkipReleaseIdValidation = opts.pathname === "/_ws" ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-utils.d.ts","sourceRoot":"","sources":["../../../../src/src/server/runtime-handler/request-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBpD;AAED,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,aAA+C,CAAC;AAK7E,yFAAyF;AACzF,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,eAA4B,CAAC;AAE1D,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,uFAAuF;AACvF,eAAO,MAAM,yBAAyB,UASrC,CAAC;AAEF,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"request-utils.d.ts","sourceRoot":"","sources":["../../../../src/src/server/runtime-handler/request-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBpD;AAED,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,aAA+C,CAAC;AAK7E,yFAAyF;AACzF,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,eAA4B,CAAC;AAE1D,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,uFAAuF;AACvF,eAAO,MAAM,yBAAyB,UASrC,CAAC;AAEF,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGnE"}
|
|
@@ -71,5 +71,6 @@ export function isWebSocketPath(pathname) {
|
|
|
71
71
|
* render cache prefix/content-source derivation and the enriched render payload.
|
|
72
72
|
*/
|
|
73
73
|
export function shouldSkipEnrichedContext(pathname) {
|
|
74
|
-
return pathname.startsWith("/api/") || pathname.startsWith("/internal/agents/")
|
|
74
|
+
return pathname.startsWith("/api/") || pathname.startsWith("/internal/agents/") ||
|
|
75
|
+
pathname.startsWith("/api/control-plane/agents/");
|
|
75
76
|
}
|
package/esm/src/utils/index.d.ts
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import "../../_dnt.polyfills.js";
|
|
15
15
|
export { type GlobalWithBun, type GlobalWithDeno, type GlobalWithProcess, hasBunRuntime, hasDenoRuntime, hasNodeProcess, } from "./runtime-guards.js";
|
|
16
|
-
export { agentLogger, bundlerLogger, createJobUserLogger, logger, refreshLoggerConfig, rendererLogger, serverLogger, } from "./logger/index.js";
|
|
17
|
-
export type { Logger } from "./logger/index.js";
|
|
16
|
+
export { __registerTraceContextGetter, __registerTraceContextGetter as registerTraceContextGetter, agentLogger, bundlerLogger, createJobUserLogger, logger, refreshLoggerConfig, rendererLogger, runWithRequestContextAsync, serverLogger, } from "./logger/index.js";
|
|
17
|
+
export type { Logger, RequestContext } from "./logger/index.js";
|
|
18
18
|
export { BREAKPOINT_LG, BREAKPOINT_MD, BREAKPOINT_SM, BREAKPOINT_XL, BYTES_PER_KB, DEFAULT_ALLOWED_CDN_HOSTS, DEFAULT_BUILD_CONCURRENCY, DEFAULT_DASHBOARD_PORT, DEFAULT_LRU_MAX_ENTRIES, DEV_SERVER_ENDPOINTS, FORBIDDEN_PATH_PATTERNS, getDenoStdNodeBase, getReactImportMap, HASH_SEED_DJB2, HASH_SEED_FNV1A, HMR_CLIENT_RELOAD_DELAY_MS, HMR_CLOSE_MESSAGE_TOO_LARGE, HMR_CLOSE_NORMAL, HMR_CLOSE_RATE_LIMIT, HMR_MAX_MESSAGE_SIZE_BYTES, HMR_MAX_MESSAGES_PER_MINUTE, HMR_RATE_LIMIT_WINDOW_MS, HTTP_BAD_REQUEST, HTTP_CONTENT_TYPE_IMAGE_GIF, HTTP_CONTENT_TYPE_IMAGE_ICO, HTTP_CONTENT_TYPE_IMAGE_JPEG, HTTP_CONTENT_TYPE_IMAGE_PNG, HTTP_CONTENT_TYPE_IMAGE_SVG, HTTP_CONTENT_TYPE_IMAGE_WEBP, HTTP_CONTENT_TYPES, HTTP_MODULE_FETCH_TIMEOUT_MS, HTTP_NETWORK_CONNECT_TIMEOUT, HTTP_NOT_FOUND, HTTP_NOT_IMPLEMENTED, HTTP_OK, HTTP_REDIRECT_FOUND, HTTP_SERVER_ERROR, HTTP_STATUS_CLIENT_ERROR_MIN, HTTP_STATUS_REDIRECT_MIN, HTTP_STATUS_SERVER_ERROR_MIN, HTTP_STATUS_SUCCESS_MIN, HTTP_UNAVAILABLE, IMAGE_OPTIMIZATION, MAX_BATCH_SIZE, MAX_PATH_LENGTH, MAX_PATH_TRAVERSAL_DEPTH, MS_PER_SECOND, PREFETCH_DEFAULT_DELAY_MS, PREFETCH_DEFAULT_TIMEOUT_MS, PREFETCH_MAX_SIZE_BYTES, REACT_DEFAULT_VERSION, RESPONSIVE_IMAGE_WIDTH_LG, RESPONSIVE_IMAGE_WIDTHS, RSC_MANIFEST_CACHE_TTL_MS, TSX_LAYOUT_MAX_ENTRIES, Z_INDEX_DEV_INDICATOR, Z_INDEX_ERROR_OVERLAY, } from "./constants/index.js";
|
|
19
19
|
export { VERSION } from "./version.js";
|
|
20
20
|
export { type BundleCode as HashBundleCode, computeCodeHash, computeHash, fnv1aHash, shortHash, simpleHash, } from "./hash-utils.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,IAAI,0BAA0B,EAC1D,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACpB,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EACL,KAAK,UAAU,IAAI,cAAc,EACjC,eAAe,EACf,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEpG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
package/esm/src/utils/index.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import "../../_dnt.polyfills.js";
|
|
15
15
|
export { hasBunRuntime, hasDenoRuntime, hasNodeProcess, } from "./runtime-guards.js";
|
|
16
|
-
export { agentLogger, bundlerLogger, createJobUserLogger, logger, refreshLoggerConfig, rendererLogger, serverLogger, } from "./logger/index.js";
|
|
16
|
+
export { __registerTraceContextGetter, __registerTraceContextGetter as registerTraceContextGetter, agentLogger, bundlerLogger, createJobUserLogger, logger, refreshLoggerConfig, rendererLogger, runWithRequestContextAsync, serverLogger, } from "./logger/index.js";
|
|
17
17
|
export { BREAKPOINT_LG, BREAKPOINT_MD, BREAKPOINT_SM, BREAKPOINT_XL, BYTES_PER_KB, DEFAULT_ALLOWED_CDN_HOSTS, DEFAULT_BUILD_CONCURRENCY, DEFAULT_DASHBOARD_PORT, DEFAULT_LRU_MAX_ENTRIES, DEV_SERVER_ENDPOINTS, FORBIDDEN_PATH_PATTERNS, getDenoStdNodeBase, getReactImportMap, HASH_SEED_DJB2, HASH_SEED_FNV1A, HMR_CLIENT_RELOAD_DELAY_MS, HMR_CLOSE_MESSAGE_TOO_LARGE, HMR_CLOSE_NORMAL, HMR_CLOSE_RATE_LIMIT, HMR_MAX_MESSAGE_SIZE_BYTES, HMR_MAX_MESSAGES_PER_MINUTE, HMR_RATE_LIMIT_WINDOW_MS, HTTP_BAD_REQUEST, HTTP_CONTENT_TYPE_IMAGE_GIF, HTTP_CONTENT_TYPE_IMAGE_ICO, HTTP_CONTENT_TYPE_IMAGE_JPEG, HTTP_CONTENT_TYPE_IMAGE_PNG, HTTP_CONTENT_TYPE_IMAGE_SVG, HTTP_CONTENT_TYPE_IMAGE_WEBP, HTTP_CONTENT_TYPES, HTTP_MODULE_FETCH_TIMEOUT_MS, HTTP_NETWORK_CONNECT_TIMEOUT, HTTP_NOT_FOUND, HTTP_NOT_IMPLEMENTED, HTTP_OK, HTTP_REDIRECT_FOUND, HTTP_SERVER_ERROR, HTTP_STATUS_CLIENT_ERROR_MIN, HTTP_STATUS_REDIRECT_MIN, HTTP_STATUS_SERVER_ERROR_MIN, HTTP_STATUS_SUCCESS_MIN, HTTP_UNAVAILABLE, IMAGE_OPTIMIZATION, MAX_BATCH_SIZE, MAX_PATH_LENGTH, MAX_PATH_TRAVERSAL_DEPTH, MS_PER_SECOND, PREFETCH_DEFAULT_DELAY_MS, PREFETCH_DEFAULT_TIMEOUT_MS, PREFETCH_MAX_SIZE_BYTES, REACT_DEFAULT_VERSION, RESPONSIVE_IMAGE_WIDTH_LG, RESPONSIVE_IMAGE_WIDTHS, RSC_MANIFEST_CACHE_TTL_MS, TSX_LAYOUT_MAX_ENTRIES, Z_INDEX_DEV_INDICATOR, Z_INDEX_ERROR_OVERLAY, } from "./constants/index.js";
|
|
18
18
|
export { VERSION } from "./version.js";
|
|
19
19
|
export { computeCodeHash, computeHash, fnv1aHash, shortHash, simpleHash, } from "./hash-utils.js";
|
|
@@ -43,6 +43,12 @@ export interface LogEntry {
|
|
|
43
43
|
task?: string;
|
|
44
44
|
event_kind?: string;
|
|
45
45
|
user_visible?: string;
|
|
46
|
+
user_id?: string;
|
|
47
|
+
conversation_id?: string;
|
|
48
|
+
/** @deprecated Use `user_id` instead. Kept for Grafana dashboard transition. */
|
|
49
|
+
userId?: string;
|
|
50
|
+
/** @deprecated Use `conversation_id` instead. Kept for Grafana dashboard transition. */
|
|
51
|
+
conversationId?: string;
|
|
46
52
|
/** @deprecated Use `duration_ms` instead. Kept for Grafana dashboard transition. Planned removal after Grafana dashboard migration is complete. */
|
|
47
53
|
durationMs?: number;
|
|
48
54
|
duration_ms?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/logger.ts"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,YAAY,EAEjB,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AAEnB,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB,kJAAkJ;IAClJ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gJAAgJ;IAChJ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+IAA+I;IAC/I,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oJAAoJ;IACpJ,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -202,6 +202,11 @@ class ConsoleLogger {
|
|
|
202
202
|
extractToEntryField(entry, mergedContext, "event_kind", (v) => String(v));
|
|
203
203
|
extractToEntryField(entry, mergedContext, "user_visible", (v) => String(v));
|
|
204
204
|
extractToEntryField(entry, mergedContext, "duration_ms", (v) => Number(v));
|
|
205
|
+
extractToEntryField(entry, mergedContext, "user_id", (v) => String(v));
|
|
206
|
+
extractToEntryField(entry, mergedContext, "conversation_id", (v) => String(v));
|
|
207
|
+
// Also extract camelCase variants so callers can use either convention
|
|
208
|
+
extractToEntryField(entry, mergedContext, "userId", (v) => String(v));
|
|
209
|
+
extractToEntryField(entry, mergedContext, "conversationId", (v) => String(v));
|
|
205
210
|
// Emit snake_case aliases for camelCase fields (transition period)
|
|
206
211
|
if (entry.requestId && !entry.request_id)
|
|
207
212
|
entry.request_id = entry.requestId;
|
|
@@ -213,6 +218,11 @@ class ConsoleLogger {
|
|
|
213
218
|
entry.project_slug = entry.projectSlug;
|
|
214
219
|
if (entry.durationMs != null && entry.duration_ms == null)
|
|
215
220
|
entry.duration_ms = entry.durationMs;
|
|
221
|
+
if (entry.userId && !entry.user_id)
|
|
222
|
+
entry.user_id = entry.userId;
|
|
223
|
+
if (entry.conversationId && !entry.conversation_id) {
|
|
224
|
+
entry.conversation_id = entry.conversationId;
|
|
225
|
+
}
|
|
216
226
|
if (Object.keys(mergedContext).length > 0)
|
|
217
227
|
entry.context = mergedContext;
|
|
218
228
|
if (error)
|
|
@@ -14,6 +14,8 @@ export interface RequestContext {
|
|
|
14
14
|
projectSlug?: string;
|
|
15
15
|
projectId?: string;
|
|
16
16
|
domain?: string;
|
|
17
|
+
userId?: string;
|
|
18
|
+
conversationId?: string;
|
|
17
19
|
}
|
|
18
20
|
export declare const requestContextStore: AsyncLocalStorage<RequestContext>;
|
|
19
21
|
export declare function getRequestContext(): RequestContext | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/request-context.ts"],"names":[],"mappings":"AAAA;;;;;;;4BAO4B;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAkC,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/request-context.ts"],"names":[],"mappings":"AAAA;;;;;;;4BAO4B;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAkC,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,mBAAmB,mCAA0C,CAAC;AAE3E,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEhF;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAEZ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.233";
|
|
2
2
|
//# sourceMappingURL=version-constant.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.233",
|
|
4
4
|
"description": "The simplest way to build AI-powered apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -69,6 +69,14 @@
|
|
|
69
69
|
"import": "./esm/src/agent/index.js",
|
|
70
70
|
"types": "./esm/src/agent/index.d.ts"
|
|
71
71
|
},
|
|
72
|
+
"./agent/conversation-bootstrap": {
|
|
73
|
+
"import": "./esm/src/agent/conversation-bootstrap.js",
|
|
74
|
+
"types": "./esm/src/agent/conversation-bootstrap.d.ts"
|
|
75
|
+
},
|
|
76
|
+
"./agent/durable": {
|
|
77
|
+
"import": "./esm/src/agent/durable.js",
|
|
78
|
+
"types": "./esm/src/agent/durable.d.ts"
|
|
79
|
+
},
|
|
72
80
|
"./channels/control-plane": {
|
|
73
81
|
"import": "./esm/src/channels/control-plane.js",
|
|
74
82
|
"types": "./esm/src/channels/control-plane.d.ts"
|
package/src/deno.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.233",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"nodeModulesDir": "auto",
|
|
6
6
|
"workspace": [
|
|
@@ -30,6 +30,8 @@ export default {
|
|
|
30
30
|
"./markdown": "./src/markdown/index.ts",
|
|
31
31
|
"./mdx": "./src/mdx/index.ts",
|
|
32
32
|
"./agent": "./src/agent/index.ts",
|
|
33
|
+
"./agent/conversation-bootstrap": "./src/agent/conversation-bootstrap.ts",
|
|
34
|
+
"./agent/durable": "./src/agent/durable.ts",
|
|
33
35
|
"./channels/control-plane": "./src/channels/control-plane.ts",
|
|
34
36
|
"./channels/invoke": "./src/channels/invoke.ts",
|
|
35
37
|
"./tool": "./src/tool/index.ts",
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import "../../_dnt.polyfills.js";
|
|
2
|
+
import * as dntShim from "../../_dnt.shims.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { type ConversationRunProjection, createConversationAgentRun } from "./durable.js";
|
|
5
|
+
|
|
6
|
+
const CONVERSATION_API_TIMEOUT_MS = 15_000;
|
|
7
|
+
|
|
8
|
+
export const ConversationRecordSchema = z
|
|
9
|
+
.object({
|
|
10
|
+
id: z.string(),
|
|
11
|
+
projectId: z.string().nullable().optional(),
|
|
12
|
+
project_id: z.string().nullable().optional(),
|
|
13
|
+
})
|
|
14
|
+
.passthrough()
|
|
15
|
+
.transform((data) => ({
|
|
16
|
+
id: data.id,
|
|
17
|
+
projectId: data.projectId ?? data.project_id ?? null,
|
|
18
|
+
}));
|
|
19
|
+
|
|
20
|
+
export const ConversationMessageRecordSchema = z.object({
|
|
21
|
+
id: z.string().uuid(),
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
export type ConversationRecord = z.infer<typeof ConversationRecordSchema>;
|
|
25
|
+
export type ConversationMessageRecord = z.infer<typeof ConversationMessageRecordSchema>;
|
|
26
|
+
|
|
27
|
+
async function controlPlaneJson<T>(input: {
|
|
28
|
+
authToken: string;
|
|
29
|
+
url: string;
|
|
30
|
+
method?: "GET" | "POST" | "PATCH";
|
|
31
|
+
body?: unknown;
|
|
32
|
+
responseSchema: z.ZodSchema<T>;
|
|
33
|
+
operation: string;
|
|
34
|
+
}): Promise<T> {
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
const timeout = dntShim.setTimeout(() => controller.abort(), CONVERSATION_API_TIMEOUT_MS);
|
|
37
|
+
|
|
38
|
+
let response: Response;
|
|
39
|
+
try {
|
|
40
|
+
response = await fetch(input.url, {
|
|
41
|
+
method: input.method ?? "GET",
|
|
42
|
+
headers: {
|
|
43
|
+
Authorization: `Bearer ${input.authToken}`,
|
|
44
|
+
"Content-Type": "application/json",
|
|
45
|
+
},
|
|
46
|
+
...(input.body !== undefined ? { body: JSON.stringify(input.body) } : {}),
|
|
47
|
+
signal: controller.signal,
|
|
48
|
+
});
|
|
49
|
+
} catch (error) {
|
|
50
|
+
if (error instanceof DOMException && error.name === "AbortError") {
|
|
51
|
+
throw new Error(`${input.operation} timed out after ${CONVERSATION_API_TIMEOUT_MS}ms`);
|
|
52
|
+
}
|
|
53
|
+
throw error;
|
|
54
|
+
} finally {
|
|
55
|
+
clearTimeout(timeout);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (!response.ok) {
|
|
59
|
+
const body = await response.text().catch(() => "");
|
|
60
|
+
throw new Error(
|
|
61
|
+
`${input.operation} failed (${response.status}): ${body || response.statusText}`,
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return input.responseSchema.parse(await response.json());
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function buildConversationPath(apiUrl: string, conversationId: string): string {
|
|
69
|
+
return `${apiUrl}/conversations/${conversationId}`;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function buildConversationMessagesPath(apiUrl: string, conversationId: string): string {
|
|
73
|
+
return `${buildConversationPath(apiUrl, conversationId)}/messages`;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export async function fetchConversationRecord(input: {
|
|
77
|
+
authToken: string;
|
|
78
|
+
apiUrl: string;
|
|
79
|
+
conversationId: string;
|
|
80
|
+
}): Promise<ConversationRecord> {
|
|
81
|
+
return controlPlaneJson({
|
|
82
|
+
authToken: input.authToken,
|
|
83
|
+
url: buildConversationPath(input.apiUrl, input.conversationId),
|
|
84
|
+
responseSchema: ConversationRecordSchema,
|
|
85
|
+
operation: "Fetch conversation",
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export async function ensureConversationProjectLink(input: {
|
|
90
|
+
authToken: string;
|
|
91
|
+
apiUrl: string;
|
|
92
|
+
conversationId: string;
|
|
93
|
+
projectId: string;
|
|
94
|
+
}): Promise<void> {
|
|
95
|
+
const conversation = await fetchConversationRecord(input);
|
|
96
|
+
|
|
97
|
+
if (conversation.projectId === input.projectId) return;
|
|
98
|
+
if (conversation.projectId !== null) {
|
|
99
|
+
throw new Error(
|
|
100
|
+
`Conversation ${input.conversationId} is already linked to a different project (${conversation.projectId})`,
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
await controlPlaneJson({
|
|
105
|
+
authToken: input.authToken,
|
|
106
|
+
url: buildConversationPath(input.apiUrl, input.conversationId),
|
|
107
|
+
method: "PATCH",
|
|
108
|
+
body: { project_id: input.projectId },
|
|
109
|
+
responseSchema: ConversationRecordSchema,
|
|
110
|
+
operation: "Link conversation to project",
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export async function createConversationRecord(input: {
|
|
115
|
+
authToken: string;
|
|
116
|
+
apiUrl: string;
|
|
117
|
+
body: unknown;
|
|
118
|
+
}): Promise<ConversationRecord> {
|
|
119
|
+
return controlPlaneJson({
|
|
120
|
+
authToken: input.authToken,
|
|
121
|
+
url: `${input.apiUrl}/conversations`,
|
|
122
|
+
method: "POST",
|
|
123
|
+
body: input.body,
|
|
124
|
+
responseSchema: ConversationRecordSchema,
|
|
125
|
+
operation: "Create conversation",
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export async function createConversationMessage(input: {
|
|
130
|
+
authToken: string;
|
|
131
|
+
apiUrl: string;
|
|
132
|
+
conversationId: string;
|
|
133
|
+
body: unknown;
|
|
134
|
+
}): Promise<ConversationMessageRecord> {
|
|
135
|
+
return controlPlaneJson({
|
|
136
|
+
authToken: input.authToken,
|
|
137
|
+
url: buildConversationMessagesPath(input.apiUrl, input.conversationId),
|
|
138
|
+
method: "POST",
|
|
139
|
+
body: input.body,
|
|
140
|
+
responseSchema: ConversationMessageRecordSchema,
|
|
141
|
+
operation: "Create conversation message",
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export interface BootstrapConversationAgentRunResult {
|
|
146
|
+
conversation: ConversationRecord;
|
|
147
|
+
message: ConversationMessageRecord;
|
|
148
|
+
run: ConversationRunProjection;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export async function bootstrapConversationAgentRun(input: {
|
|
152
|
+
authToken: string;
|
|
153
|
+
apiUrl: string;
|
|
154
|
+
parentConversationId?: string;
|
|
155
|
+
ensureProjectId?: string;
|
|
156
|
+
conversationBody: unknown;
|
|
157
|
+
handoffMessageBody: unknown;
|
|
158
|
+
runId?: string;
|
|
159
|
+
agentId: string;
|
|
160
|
+
projectId?: string | null;
|
|
161
|
+
branchId?: string | null;
|
|
162
|
+
}): Promise<BootstrapConversationAgentRunResult> {
|
|
163
|
+
if (input.parentConversationId && input.ensureProjectId) {
|
|
164
|
+
await ensureConversationProjectLink({
|
|
165
|
+
authToken: input.authToken,
|
|
166
|
+
apiUrl: input.apiUrl,
|
|
167
|
+
conversationId: input.parentConversationId,
|
|
168
|
+
projectId: input.ensureProjectId,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const conversation = await createConversationRecord({
|
|
173
|
+
authToken: input.authToken,
|
|
174
|
+
apiUrl: input.apiUrl,
|
|
175
|
+
body: input.conversationBody,
|
|
176
|
+
});
|
|
177
|
+
const effectiveProjectId = input.projectId ?? conversation.projectId;
|
|
178
|
+
const message = await createConversationMessage({
|
|
179
|
+
authToken: input.authToken,
|
|
180
|
+
apiUrl: input.apiUrl,
|
|
181
|
+
conversationId: conversation.id,
|
|
182
|
+
body: input.handoffMessageBody,
|
|
183
|
+
});
|
|
184
|
+
const run = await createConversationAgentRun({
|
|
185
|
+
authToken: input.authToken,
|
|
186
|
+
apiUrl: input.apiUrl,
|
|
187
|
+
conversationId: conversation.id,
|
|
188
|
+
runId: input.runId,
|
|
189
|
+
agentId: input.agentId,
|
|
190
|
+
projectId: effectiveProjectId,
|
|
191
|
+
branchId: input.branchId,
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
return { conversation, message, run };
|
|
195
|
+
}
|