veryfront 0.1.1046 → 0.1.1047
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/cli/app/handlers/view-handlers.js +2 -2
- package/esm/cli/auth/index.d.ts +1 -1
- package/esm/cli/auth/index.d.ts.map +1 -1
- package/esm/cli/auth/index.js +1 -1
- package/esm/cli/auth/login.d.ts +11 -3
- package/esm/cli/auth/login.d.ts.map +1 -1
- package/esm/cli/auth/login.js +76 -32
- package/esm/cli/commands/dev/command.d.ts +6 -0
- package/esm/cli/commands/dev/command.d.ts.map +1 -1
- package/esm/cli/commands/dev/command.js +27 -19
- package/esm/cli/commands/whoami/command-help.js +2 -2
- package/esm/cli/sync/project-discovery.d.ts +2 -1
- package/esm/cli/sync/project-discovery.d.ts.map +1 -1
- package/esm/cli/sync/project-discovery.js +16 -7
- package/esm/deno.js +1 -1
- package/esm/src/agent/child-run/execution-cleanup.d.ts.map +1 -1
- package/esm/src/agent/child-run/execution-cleanup.js +11 -1
- package/esm/src/agent/hosted/child-fork-tool-sources.d.ts.map +1 -1
- package/esm/src/agent/hosted/child-fork-tool-sources.js +9 -1
- package/esm/src/agent/hosted/child-requested-tools.d.ts.map +1 -1
- package/esm/src/agent/hosted/child-requested-tools.js +3 -2
- package/esm/src/agent/memory/memory.d.ts.map +1 -1
- package/esm/src/agent/memory/memory.js +4 -1
- package/esm/src/agent/memory/redis.d.ts.map +1 -1
- package/esm/src/agent/memory/redis.js +14 -3
- package/esm/src/agent/streaming/data-stream.d.ts.map +1 -1
- package/esm/src/agent/streaming/data-stream.js +7 -2
- package/esm/src/agent/streaming/fork-runtime-stream.d.ts.map +1 -1
- package/esm/src/agent/streaming/fork-runtime-stream.js +22 -10
- package/esm/src/agent/streaming/tool-input.d.ts.map +1 -1
- package/esm/src/agent/streaming/tool-input.js +11 -1
- package/esm/src/cache/cache-key-builder.d.ts.map +1 -1
- package/esm/src/cache/cache-key-builder.js +11 -5
- package/esm/src/cache/dependency-graph.d.ts.map +1 -1
- package/esm/src/cache/dependency-graph.js +21 -4
- package/esm/src/cache/hash.d.ts.map +1 -1
- package/esm/src/cache/hash.js +13 -1
- package/esm/src/eval/agent-service/durable-run-canaries/runner.d.ts.map +1 -1
- package/esm/src/eval/agent-service/durable-run-canaries/runner.js +4 -3
- package/esm/src/integrations/remote-tools.d.ts.map +1 -1
- package/esm/src/integrations/remote-tools.js +8 -0
- package/esm/src/knowledge/index.js +1 -1
- package/esm/src/mcp/http-transport.d.ts.map +1 -1
- package/esm/src/mcp/http-transport.js +13 -6
- package/esm/src/mcp/server.d.ts +9 -0
- package/esm/src/mcp/server.d.ts.map +1 -1
- package/esm/src/mcp/server.js +48 -5
- package/esm/src/mcp/task-store.d.ts.map +1 -1
- package/esm/src/mcp/task-store.js +17 -13
- package/esm/src/oauth/handlers/callback-handler.d.ts.map +1 -1
- package/esm/src/oauth/handlers/callback-handler.js +9 -1
- package/esm/src/oauth/handlers/init-handler.d.ts.map +1 -1
- package/esm/src/oauth/handlers/init-handler.js +9 -1
- package/esm/src/oauth/providers/base.d.ts.map +1 -1
- package/esm/src/oauth/providers/base.js +4 -0
- package/esm/src/platform/adapters/base.d.ts +16 -0
- package/esm/src/platform/adapters/base.d.ts.map +1 -1
- package/esm/src/platform/adapters/runtime/deno/adapter.d.ts +2 -0
- package/esm/src/platform/adapters/runtime/deno/adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/runtime/deno/adapter.js +15 -0
- package/esm/src/platform/adapters/runtime/node/filesystem-adapter.d.ts +2 -0
- package/esm/src/platform/adapters/runtime/node/filesystem-adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/runtime/node/filesystem-adapter.js +15 -0
- package/esm/src/prompt/factory.js +10 -1
- package/esm/src/provider/runtime-loader/provider-http.d.ts.map +1 -1
- package/esm/src/provider/runtime-loader/provider-http.js +21 -1
- package/esm/src/provider/runtime-loader/provider-sse.d.ts.map +1 -1
- package/esm/src/provider/runtime-loader/provider-sse.js +6 -1
- package/esm/src/proxy/main.js +7 -1
- package/esm/src/routing/api/api-route-matcher.d.ts.map +1 -1
- package/esm/src/routing/api/api-route-matcher.js +4 -0
- package/esm/src/routing/matchers/pattern-route-matcher.d.ts +1 -0
- package/esm/src/routing/matchers/pattern-route-matcher.d.ts.map +1 -1
- package/esm/src/routing/matchers/pattern-route-matcher.js +32 -1
- package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
- package/esm/src/runtime/runtime-bridge.js +29 -5
- package/esm/src/sandbox/config.d.ts.map +1 -1
- package/esm/src/sandbox/config.js +6 -7
- package/esm/src/sandbox/lazy-sandbox.d.ts.map +1 -1
- package/esm/src/sandbox/lazy-sandbox.js +7 -7
- package/esm/src/sandbox/sandbox.d.ts.map +1 -1
- package/esm/src/sandbox/sandbox.js +7 -7
- package/esm/src/security/deno-permissions.d.ts +9 -0
- package/esm/src/security/deno-permissions.d.ts.map +1 -1
- package/esm/src/security/deno-permissions.js +9 -0
- package/esm/src/security/path-validation/canonical.d.ts +10 -1
- package/esm/src/security/path-validation/canonical.d.ts.map +1 -1
- package/esm/src/security/path-validation/canonical.js +56 -8
- package/esm/src/security/path-validation/index.d.ts +1 -1
- package/esm/src/security/path-validation/index.d.ts.map +1 -1
- package/esm/src/security/path-validation/index.js +7 -3
- package/esm/src/security/sandbox/worker-egress-guard.d.ts.map +1 -1
- package/esm/src/security/sandbox/worker-egress-guard.js +4 -0
- package/esm/src/server/build-routes.d.ts.map +1 -1
- package/esm/src/server/build-routes.js +12 -2
- package/esm/src/server/dev-server/route-discovery.d.ts.map +1 -1
- package/esm/src/server/dev-server/route-discovery.js +8 -0
- package/esm/src/server/handlers/request/channel-dispatch-request.d.ts.map +1 -1
- package/esm/src/server/handlers/request/channel-dispatch-request.js +16 -1
- package/esm/src/server/handlers/request/ssr/error-page-fallback.d.ts.map +1 -1
- package/esm/src/server/handlers/request/ssr/error-page-fallback.js +5 -1
- package/esm/src/server/project-env/cache.d.ts.map +1 -1
- package/esm/src/server/project-env/cache.js +12 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
- package/esm/src/server/services/static/static-file.service.d.ts.map +1 -1
- package/esm/src/server/services/static/static-file.service.js +20 -2
- package/esm/src/tool/host-tools.d.ts.map +1 -1
- package/esm/src/tool/host-tools.js +3 -1
- package/esm/src/tool/remote-mcp.d.ts.map +1 -1
- package/esm/src/tool/remote-mcp.js +83 -20
- package/esm/src/utils/cache-file-ops.d.ts.map +1 -1
- package/esm/src/utils/cache-file-ops.js +5 -1
- package/esm/src/utils/import-map.d.ts.map +1 -1
- package/esm/src/utils/import-map.js +8 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/workflow/backends/memory.d.ts +2 -2
- package/esm/src/workflow/backends/memory.d.ts.map +1 -1
- package/esm/src/workflow/backends/memory.js +11 -4
- package/esm/src/workflow/backends/redis/index.d.ts +2 -2
- package/esm/src/workflow/backends/redis/index.d.ts.map +1 -1
- package/esm/src/workflow/backends/redis/index.js +5 -3
- package/esm/src/workflow/backends/types.d.ts +4 -2
- package/esm/src/workflow/backends/types.d.ts.map +1 -1
- package/esm/src/workflow/blob/local-storage.d.ts.map +1 -1
- package/esm/src/workflow/blob/local-storage.js +19 -6
- package/esm/src/workflow/executor/dag/index.d.ts.map +1 -1
- package/esm/src/workflow/executor/dag/index.js +13 -1
- package/esm/src/workflow/executor/dag/loop-node-strategy.d.ts.map +1 -1
- package/esm/src/workflow/executor/dag/loop-node-strategy.js +6 -1
- package/esm/src/workflow/executor/workflow-executor.d.ts +4 -0
- package/esm/src/workflow/executor/workflow-executor.d.ts.map +1 -1
- package/esm/src/workflow/executor/workflow-executor.js +58 -4
- package/esm/src/workflow/worker/executors/process.d.ts.map +1 -1
- package/esm/src/workflow/worker/executors/process.js +49 -2
- package/esm/src/workflow/worker/run-manager.d.ts +2 -0
- package/esm/src/workflow/worker/run-manager.d.ts.map +1 -1
- package/esm/src/workflow/worker/run-manager.js +25 -5
- package/package.json +4 -4
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { navigateTo } from "../state.js";
|
|
8
8
|
import { moveDown, moveUp } from "../components/list-select.js";
|
|
9
|
-
import { login } from "../../auth/login.js";
|
|
9
|
+
import { isApiKeyIdentity, login } from "../../auth/login.js";
|
|
10
10
|
import { fetchRemoteProjects } from "../../sync/index.js";
|
|
11
11
|
import { addLog, updateRemote } from "../state.js";
|
|
12
12
|
const KEY_UP = "\x1b[A";
|
|
@@ -112,7 +112,7 @@ export function handleAuthKey(key, ctx) {
|
|
|
112
112
|
update(navigateTo("dashboard"));
|
|
113
113
|
void (async () => {
|
|
114
114
|
const user = await login(provider);
|
|
115
|
-
if (user) {
|
|
115
|
+
if (user && !isApiKeyIdentity(user)) {
|
|
116
116
|
const result = await fetchRemoteProjects();
|
|
117
117
|
update(updateRemote({
|
|
118
118
|
user,
|
package/esm/cli/auth/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type AuthMethod, createOAuthAuthorizationUrl, createOAuthState, deleteToken, ensureAuthenticated, hasToken, login, logout, readToken, saveToken, type UserInfo, validateToken, whoami, } from "./login.js";
|
|
1
|
+
export { type ApiKeyIdentity, type AuthIdentity, type AuthMethod, createOAuthAuthorizationUrl, createOAuthState, deleteToken, ensureAuthenticated, hasToken, isApiKeyIdentity, login, logout, readToken, saveToken, type UserInfo, validateCredential, validateToken, whoami, } from "./login.js";
|
|
2
2
|
export { type CallbackServer, getCallbackUrl, startCallbackServer } from "./callback-server.js";
|
|
3
3
|
export { getTokenLocation } from "./token-store.js";
|
|
4
4
|
export { canOpenBrowser, openBrowser } from "./browser.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,QAAQ,EACb,aAAa,EACb,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,QAAQ,EACb,kBAAkB,EAClB,aAAa,EACb,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
package/esm/cli/auth/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createOAuthAuthorizationUrl, createOAuthState, deleteToken, ensureAuthenticated, hasToken, login, logout, readToken, saveToken, validateToken, whoami, } from "./login.js";
|
|
1
|
+
export { createOAuthAuthorizationUrl, createOAuthState, deleteToken, ensureAuthenticated, hasToken, isApiKeyIdentity, login, logout, readToken, saveToken, validateCredential, validateToken, whoami, } from "./login.js";
|
|
2
2
|
export { getCallbackUrl, startCallbackServer } from "./callback-server.js";
|
|
3
3
|
export { getTokenLocation } from "./token-store.js";
|
|
4
4
|
export { canOpenBrowser, openBrowser } from "./browser.js";
|
package/esm/cli/auth/login.d.ts
CHANGED
|
@@ -6,12 +6,20 @@ export interface UserInfo {
|
|
|
6
6
|
email: string;
|
|
7
7
|
name?: string;
|
|
8
8
|
}
|
|
9
|
+
export interface ApiKeyIdentity {
|
|
10
|
+
authenticated: true;
|
|
11
|
+
type: "apiKey";
|
|
12
|
+
}
|
|
13
|
+
export type AuthIdentity = UserInfo | ApiKeyIdentity;
|
|
9
14
|
export declare function createOAuthState(): string;
|
|
10
15
|
export declare function createOAuthAuthorizationUrl(provider: "google" | "github" | "microsoft", callbackUrl: string, state: string): string;
|
|
11
16
|
export declare function validateToken(token: string): Promise<UserInfo | null>;
|
|
12
|
-
export declare function
|
|
13
|
-
export declare function
|
|
17
|
+
export declare function isApiKeyToken(token: string): boolean;
|
|
18
|
+
export declare function isApiKeyIdentity(identity: AuthIdentity): identity is ApiKeyIdentity;
|
|
19
|
+
export declare function validateCredential(token: string): Promise<AuthIdentity | null>;
|
|
20
|
+
export declare function login(method?: AuthMethod): Promise<AuthIdentity | null>;
|
|
21
|
+
export declare function ensureAuthenticated(env?: EnvironmentConfig): Promise<AuthIdentity | null>;
|
|
14
22
|
export declare function logout(): Promise<void>;
|
|
15
|
-
export declare function whoami(env?: EnvironmentConfig): Promise<
|
|
23
|
+
export declare function whoami(env?: EnvironmentConfig): Promise<AuthIdentity | null>;
|
|
16
24
|
export { deleteToken, hasToken, readToken, saveToken };
|
|
17
25
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,WAAW,EAAoB,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQjG,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,WAAW,EAAoB,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQjG,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,IAAI,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,cAAc,CAAC;AASrD,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,EAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,MAAM,CAQR;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAgB3E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,IAAI,cAAc,CAEnF;AAkBD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAQpF;AA6ID,wBAAsB,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAkC7E;AAED,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAqB9B;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5C;AAwCD,wBAAsB,MAAM,CAC1B,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAiC9B;AAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC"}
|
package/esm/cli/auth/login.js
CHANGED
|
@@ -44,6 +44,36 @@ export async function validateToken(token) {
|
|
|
44
44
|
return null;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
export function isApiKeyToken(token) {
|
|
48
|
+
return token.startsWith("vf_");
|
|
49
|
+
}
|
|
50
|
+
export function isApiKeyIdentity(identity) {
|
|
51
|
+
return "type" in identity && identity.type === "apiKey";
|
|
52
|
+
}
|
|
53
|
+
async function validateApiKey(token) {
|
|
54
|
+
if (!isApiKeyToken(token))
|
|
55
|
+
return false;
|
|
56
|
+
try {
|
|
57
|
+
const url = new URL(`${getApiUrl()}/projects`);
|
|
58
|
+
url.searchParams.set("limit", "1");
|
|
59
|
+
const response = await fetch(url, {
|
|
60
|
+
headers: { Authorization: `Bearer ${token}`, Accept: "application/json" },
|
|
61
|
+
});
|
|
62
|
+
await response.body?.cancel();
|
|
63
|
+
return response.ok;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export async function validateCredential(token) {
|
|
70
|
+
if (!token)
|
|
71
|
+
return null;
|
|
72
|
+
if (isApiKeyToken(token)) {
|
|
73
|
+
return (await validateApiKey(token)) ? { authenticated: true, type: "apiKey" } : null;
|
|
74
|
+
}
|
|
75
|
+
return validateToken(token);
|
|
76
|
+
}
|
|
47
77
|
async function promptAuthMethod() {
|
|
48
78
|
console.log();
|
|
49
79
|
console.log(" " + dim("Choose authentication method:"));
|
|
@@ -178,29 +208,31 @@ export async function login(method) {
|
|
|
178
208
|
if (!token)
|
|
179
209
|
return null;
|
|
180
210
|
console.log(" " + dim("Validating token..."));
|
|
181
|
-
const
|
|
182
|
-
if (!
|
|
211
|
+
const identity = await validateCredential(token);
|
|
212
|
+
if (!identity) {
|
|
183
213
|
console.log();
|
|
184
214
|
console.log(" " + error("✗") + " Invalid token");
|
|
185
215
|
return null;
|
|
186
216
|
}
|
|
187
217
|
await saveToken(token);
|
|
188
218
|
console.log();
|
|
189
|
-
console.log(
|
|
190
|
-
|
|
219
|
+
console.log(isApiKeyIdentity(identity)
|
|
220
|
+
? " " + success("✓") + " Authenticated with an API key"
|
|
221
|
+
: " " + success("✓") + " Logged in as " + brand(identity.email));
|
|
222
|
+
return identity;
|
|
191
223
|
}
|
|
192
224
|
export async function ensureAuthenticated(env = getEnvironmentConfig()) {
|
|
193
225
|
if (env.apiToken) {
|
|
194
|
-
const
|
|
195
|
-
if (
|
|
196
|
-
return
|
|
226
|
+
const credential = await validateCredential(env.apiToken);
|
|
227
|
+
if (credential)
|
|
228
|
+
return credential;
|
|
197
229
|
console.log(" " + warning("Warning: VERYFRONT_API_TOKEN is invalid"));
|
|
198
230
|
}
|
|
199
231
|
const storedToken = await readToken(env);
|
|
200
232
|
if (storedToken) {
|
|
201
|
-
const
|
|
202
|
-
if (
|
|
203
|
-
return
|
|
233
|
+
const credential = await validateCredential(storedToken);
|
|
234
|
+
if (credential)
|
|
235
|
+
return credential;
|
|
204
236
|
await deleteToken(env);
|
|
205
237
|
console.log(" " + warning("Session expired. Please log in again."));
|
|
206
238
|
}
|
|
@@ -215,33 +247,45 @@ export async function logout() {
|
|
|
215
247
|
console.log();
|
|
216
248
|
console.log(" " + success("✓") + " Logged out");
|
|
217
249
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
console.log();
|
|
227
|
-
console.log(" " + success("✓") + " Logged in as " + brand(userInfo.email));
|
|
228
|
-
console.log(" " + dim("(via VERYFRONT_API_TOKEN)"));
|
|
250
|
+
async function reportCredential(token, source) {
|
|
251
|
+
const credential = await validateCredential(token);
|
|
252
|
+
if (!credential)
|
|
253
|
+
return null;
|
|
254
|
+
if (!isApiKeyIdentity(credential)) {
|
|
255
|
+
const userInfo = credential;
|
|
256
|
+
if (isJsonMode()) {
|
|
257
|
+
await outputJson(createSuccessEnvelope("whoami", { ...userInfo, source }));
|
|
229
258
|
return userInfo;
|
|
230
259
|
}
|
|
260
|
+
console.log();
|
|
261
|
+
console.log(" " + success("✓") + " Logged in as " + brand(userInfo.email));
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
if (isJsonMode()) {
|
|
265
|
+
await outputJson(createSuccessEnvelope("whoami", {
|
|
266
|
+
authenticated: true,
|
|
267
|
+
credential_type: "api_key",
|
|
268
|
+
source,
|
|
269
|
+
}));
|
|
270
|
+
return { authenticated: true, type: "apiKey" };
|
|
271
|
+
}
|
|
272
|
+
console.log();
|
|
273
|
+
console.log(" " + success("✓") + " Authenticated with an API key");
|
|
274
|
+
}
|
|
275
|
+
console.log(" " + dim(source === "env" ? "(via VERYFRONT_API_TOKEN)" : `Token stored at: ${getTokenLocation()}`));
|
|
276
|
+
return credential;
|
|
277
|
+
}
|
|
278
|
+
export async function whoami(env = getEnvironmentConfig()) {
|
|
279
|
+
if (env.apiToken) {
|
|
280
|
+
const result = await reportCredential(env.apiToken, "env");
|
|
281
|
+
if (result)
|
|
282
|
+
return result;
|
|
231
283
|
}
|
|
232
284
|
const storedToken = await readToken();
|
|
233
285
|
if (storedToken) {
|
|
234
|
-
const
|
|
235
|
-
if (
|
|
236
|
-
|
|
237
|
-
await outputJson(createSuccessEnvelope("whoami", { ...userInfo, source: "token-store" }));
|
|
238
|
-
return userInfo;
|
|
239
|
-
}
|
|
240
|
-
console.log();
|
|
241
|
-
console.log(" " + success("✓") + " Logged in as " + brand(userInfo.email));
|
|
242
|
-
console.log(" " + dim(`Token stored at: ${getTokenLocation()}`));
|
|
243
|
-
return userInfo;
|
|
244
|
-
}
|
|
286
|
+
const result = await reportCredential(storedToken, "token-store");
|
|
287
|
+
if (result)
|
|
288
|
+
return result;
|
|
245
289
|
}
|
|
246
290
|
if (isJsonMode()) {
|
|
247
291
|
await outputJson(createSuccessEnvelope("whoami", { authenticated: false }));
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type AuthIdentity } from "../../auth/login.js";
|
|
2
|
+
import { type RemoteProject } from "../../sync/index.js";
|
|
1
3
|
export interface DevOptions {
|
|
2
4
|
port: number;
|
|
3
5
|
projectDir: string;
|
|
@@ -12,5 +14,9 @@ export interface DevCommandResult {
|
|
|
12
14
|
/** Stop the dev server programmatically (for demo mode) */
|
|
13
15
|
stop: () => Promise<void>;
|
|
14
16
|
}
|
|
17
|
+
export declare function preloadDevAuth(apiToken?: string): Promise<{
|
|
18
|
+
identity: AuthIdentity | null;
|
|
19
|
+
projects: RemoteProject[];
|
|
20
|
+
}>;
|
|
15
21
|
export declare function devCommand(options: DevOptions): Promise<DevCommandResult>;
|
|
16
22
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dev/command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dev/command.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI9E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAQD,wBAAsB,cAAc,CAClC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC,CAQvE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqSzE"}
|
|
@@ -18,11 +18,24 @@ import { createKeyboardHandler } from "../../ui/keyboard.js";
|
|
|
18
18
|
import { openBrowser } from "../../auth/browser.js";
|
|
19
19
|
import { createMCPServer } from "../../mcp/server.js";
|
|
20
20
|
import { withSpan } from "../../../src/observability/tracing/otlp-setup.js";
|
|
21
|
-
import { login,
|
|
22
|
-
import { readToken } from "../../auth/token-store.js";
|
|
21
|
+
import { isApiKeyIdentity, login, validateCredential, } from "../../auth/login.js";
|
|
23
22
|
import { fetchRemoteProjects } from "../../sync/index.js";
|
|
24
23
|
import { pullCommand } from "../pull/index.js";
|
|
25
24
|
import { pushCommand } from "../push/index.js";
|
|
25
|
+
function authStatus(identity) {
|
|
26
|
+
return isApiKeyIdentity(identity)
|
|
27
|
+
? "Authenticated with an API key"
|
|
28
|
+
: `Logged in as ${identity.email}`;
|
|
29
|
+
}
|
|
30
|
+
export async function preloadDevAuth(apiToken) {
|
|
31
|
+
if (!apiToken)
|
|
32
|
+
return { identity: null, projects: [] };
|
|
33
|
+
const identity = await validateCredential(apiToken);
|
|
34
|
+
if (!identity)
|
|
35
|
+
return { identity: null, projects: [] };
|
|
36
|
+
const result = await fetchRemoteProjects(apiToken);
|
|
37
|
+
return { identity, projects: result.projects };
|
|
38
|
+
}
|
|
26
39
|
export function devCommand(options) {
|
|
27
40
|
return withSpan("cli.command.dev", async () => {
|
|
28
41
|
const { port, projectDir, hmr = true, demoMode = false } = options;
|
|
@@ -77,7 +90,7 @@ export function devCommand(options) {
|
|
|
77
90
|
let devServer = null;
|
|
78
91
|
let mcpServer = null;
|
|
79
92
|
// Sync state
|
|
80
|
-
let
|
|
93
|
+
let identity = null;
|
|
81
94
|
let projects = [];
|
|
82
95
|
let selectedProject = null;
|
|
83
96
|
try {
|
|
@@ -111,14 +124,9 @@ export function devCommand(options) {
|
|
|
111
124
|
}
|
|
112
125
|
// Check for existing auth
|
|
113
126
|
try {
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (user) {
|
|
118
|
-
const result = await fetchRemoteProjects();
|
|
119
|
-
projects = result.projects;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
127
|
+
const initialAuth = await preloadDevAuth(runtimeAuth.apiToken);
|
|
128
|
+
identity = initialAuth.identity;
|
|
129
|
+
projects = initialAuth.projects;
|
|
122
130
|
}
|
|
123
131
|
catch {
|
|
124
132
|
// Auth check failed - non-fatal
|
|
@@ -187,15 +195,15 @@ export function devCommand(options) {
|
|
|
187
195
|
}
|
|
188
196
|
console.log();
|
|
189
197
|
// Context-aware next step hint
|
|
190
|
-
if (!
|
|
198
|
+
if (!identity) {
|
|
191
199
|
console.log(` ${dim("To sync with Veryfront: press")} ${brand("a")} ${dim("to login")}`);
|
|
192
200
|
}
|
|
193
201
|
else if (projects.length > 0) {
|
|
194
|
-
console.log(` ${success("✓")}
|
|
202
|
+
console.log(` ${success("✓")} ${authStatus(identity)}`);
|
|
195
203
|
console.log(` ${dim("Press")} ${brand("s")} ${dim("to select a project, then")} ${brand("p")} ${dim("to pull")}`);
|
|
196
204
|
}
|
|
197
205
|
else {
|
|
198
|
-
console.log(` ${success("✓")}
|
|
206
|
+
console.log(` ${success("✓")} ${authStatus(identity)}`);
|
|
199
207
|
console.log(` ${dim("Press")} ${brand("s")} ${dim("to see your projects")}`);
|
|
200
208
|
}
|
|
201
209
|
console.log();
|
|
@@ -205,21 +213,21 @@ export function devCommand(options) {
|
|
|
205
213
|
onClear: () => console.clear(),
|
|
206
214
|
onQuit: () => void shutdown(),
|
|
207
215
|
onAuth: async () => {
|
|
208
|
-
if (
|
|
209
|
-
console.log(` ${dim(
|
|
216
|
+
if (identity) {
|
|
217
|
+
console.log(` ${dim(authStatus(identity))}${dim(", press s to select a project")}`);
|
|
210
218
|
return;
|
|
211
219
|
}
|
|
212
220
|
console.log(` ${dim("Opening browser...")}`);
|
|
213
221
|
const result = await login();
|
|
214
222
|
if (!result)
|
|
215
223
|
return;
|
|
216
|
-
|
|
224
|
+
identity = result;
|
|
217
225
|
const projectResult = await fetchRemoteProjects();
|
|
218
226
|
projects = projectResult.projects;
|
|
219
|
-
console.log(` ${success("✓")} ${
|
|
227
|
+
console.log(` ${success("✓")} ${authStatus(identity)}${dim(`, ${projects.length} projects`)}`);
|
|
220
228
|
},
|
|
221
229
|
onSync: () => {
|
|
222
|
-
if (!
|
|
230
|
+
if (!identity) {
|
|
223
231
|
console.log(` ${dim("Press")} ${brand("a")} ${dim("to login")}`);
|
|
224
232
|
return;
|
|
225
233
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export const whoamiHelp = {
|
|
2
2
|
name: "whoami",
|
|
3
3
|
category: "auth",
|
|
4
|
-
description: "Show current authenticated
|
|
4
|
+
description: "Show the current authenticated identity",
|
|
5
5
|
usage: "veryfront whoami",
|
|
6
6
|
options: [],
|
|
7
7
|
examples: ["veryfront whoami"],
|
|
8
8
|
notes: [
|
|
9
|
-
"Shows
|
|
9
|
+
"Shows the authenticated user or API-key credential type",
|
|
10
10
|
"Checks both environment variable and stored token",
|
|
11
11
|
],
|
|
12
12
|
};
|
|
@@ -9,9 +9,10 @@ export interface RemoteProject {
|
|
|
9
9
|
export interface ProjectDiscoveryResult {
|
|
10
10
|
user: UserInfo | null;
|
|
11
11
|
projects: RemoteProject[];
|
|
12
|
+
credentialType?: "user" | "apiKey";
|
|
12
13
|
error?: string;
|
|
13
14
|
}
|
|
14
|
-
export declare function fetchRemoteProjects(): Promise<ProjectDiscoveryResult>;
|
|
15
|
+
export declare function fetchRemoteProjects(apiToken?: string): Promise<ProjectDiscoveryResult>;
|
|
15
16
|
export declare function isAuthenticated(): Promise<boolean>;
|
|
16
17
|
export declare function getCurrentUser(): Promise<UserInfo | null>;
|
|
17
18
|
//# sourceMappingURL=project-discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-discovery.d.ts","sourceRoot":"","sources":["../../../src/cli/sync/project-discovery.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"project-discovery.d.ts","sourceRoot":"","sources":["../../../src/cli/sync/project-discovery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,QAAQ,EAAqC,MAAM,kBAAkB,CAAC;AAEnG,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuD5F;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAKxD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAM/D"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getApiUrl } from "../shared/constants.js";
|
|
2
2
|
import { readToken } from "../auth/token-store.js";
|
|
3
|
-
import { validateToken } from "../auth/login.js";
|
|
4
|
-
export async function fetchRemoteProjects() {
|
|
5
|
-
const token = await readToken();
|
|
3
|
+
import { isApiKeyToken, validateCredential, validateToken } from "../auth/login.js";
|
|
4
|
+
export async function fetchRemoteProjects(apiToken) {
|
|
5
|
+
const token = apiToken?.trim() || await readToken();
|
|
6
6
|
if (!token) {
|
|
7
7
|
return {
|
|
8
8
|
user: null,
|
|
@@ -10,8 +10,9 @@ export async function fetchRemoteProjects() {
|
|
|
10
10
|
error: "Not authenticated. Press A to login.",
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
const apiKeyCredential = isApiKeyToken(token);
|
|
14
|
+
const user = apiKeyCredential ? null : await validateToken(token);
|
|
15
|
+
if (!apiKeyCredential && !user) {
|
|
15
16
|
return {
|
|
16
17
|
user: null,
|
|
17
18
|
projects: [],
|
|
@@ -30,17 +31,23 @@ export async function fetchRemoteProjects() {
|
|
|
30
31
|
return {
|
|
31
32
|
user,
|
|
32
33
|
projects: [],
|
|
34
|
+
credentialType: apiKeyCredential ? "apiKey" : "user",
|
|
33
35
|
error: `Failed to fetch projects: ${errorText}`,
|
|
34
36
|
};
|
|
35
37
|
}
|
|
36
38
|
const data = (await response.json());
|
|
37
|
-
return {
|
|
39
|
+
return {
|
|
40
|
+
user,
|
|
41
|
+
projects: data.data ?? [],
|
|
42
|
+
credentialType: apiKeyCredential ? "apiKey" : "user",
|
|
43
|
+
};
|
|
38
44
|
}
|
|
39
45
|
catch (error) {
|
|
40
46
|
const message = error instanceof Error ? error.message : String(error);
|
|
41
47
|
return {
|
|
42
48
|
user,
|
|
43
49
|
projects: [],
|
|
50
|
+
credentialType: apiKeyCredential ? "apiKey" : "user",
|
|
44
51
|
error: `Network error: ${message}`,
|
|
45
52
|
};
|
|
46
53
|
}
|
|
@@ -49,11 +56,13 @@ export async function isAuthenticated() {
|
|
|
49
56
|
const token = await readToken();
|
|
50
57
|
if (!token)
|
|
51
58
|
return false;
|
|
52
|
-
return (await
|
|
59
|
+
return (await validateCredential(token)) !== null;
|
|
53
60
|
}
|
|
54
61
|
export async function getCurrentUser() {
|
|
55
62
|
const token = await readToken();
|
|
56
63
|
if (!token)
|
|
57
64
|
return null;
|
|
65
|
+
if (isApiKeyToken(token))
|
|
66
|
+
return null;
|
|
58
67
|
return validateToken(token);
|
|
59
68
|
}
|
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-cleanup.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/child-run/execution-cleanup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execution-cleanup.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/child-run/execution-cleanup.ts"],"names":[],"mappings":"AAEA,4DAA4D;AAC5D,MAAM,WAAW,mCAAmC;IAClD,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,+DAA+D;AAC/D,MAAM,WAAW,sCACf,SAAQ,mCAAmC;IAC3C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,gDAAgD;AAChD,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,qDAAqD;AACrD,wBAAsB,kCAAkC,CACtD,KAAK,EAAE,sCAAsC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { agentLogger } from "../../utils/logger/logger.js";
|
|
1
2
|
/** Close child run execution buffers helper. */
|
|
2
3
|
export async function closeChildRunExecutionBuffers(input) {
|
|
3
4
|
await input.closeReasoningBuffer();
|
|
@@ -10,5 +11,14 @@ export async function finalizeChildRunExecutionResources(input) {
|
|
|
10
11
|
await input.appendFinishStepChunk();
|
|
11
12
|
}
|
|
12
13
|
await input.flushMirror?.();
|
|
13
|
-
await Promise.allSettled([
|
|
14
|
+
const [toolingResult, runtimeResult] = await Promise.allSettled([
|
|
15
|
+
input.closeTooling?.(),
|
|
16
|
+
input.closeRuntime?.(),
|
|
17
|
+
]);
|
|
18
|
+
if (toolingResult.status === "rejected") {
|
|
19
|
+
agentLogger.warn("Child run teardown: closeTooling failed", { error: toolingResult.reason });
|
|
20
|
+
}
|
|
21
|
+
if (runtimeResult.status === "rejected") {
|
|
22
|
+
agentLogger.warn("Child run teardown: closeRuntime failed", { error: runtimeResult.reason });
|
|
23
|
+
}
|
|
14
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-fork-tool-sources.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/child-fork-tool-sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gCAAgC,EAChC,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,2BAA2B,EAGjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EAEpC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACL,KAAK,+BAA+B,EAErC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,8CAA8C,EACpD,MAAM,4BAA4B,CAAC;AAGpC,qEAAqE;AACrE,MAAM,MAAM,gCAAgC,GAAG;IAC7C,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,6CAA6C,GAAG;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACpD,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8BAA8B,CAAC,EAAE,+BAA+B,CAAC;IACjE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,gBAAgB,CAAC;IACjF,gCAAgC,CAAC,EAAE,OAAO,gCAAgC,CAAC;IAC3E,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC;QACpE,KAAK,EAAE,WAAW,CAAC;QACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC3C,MAAM,CAAC,EAAE,gCAAgC,CAAC;CAC3C,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,uCAAuC,GAC/C;IACA,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,WAAW,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,GACC;IACA,EAAE,EAAE,KAAK,CAAC;IACV,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEJ,gFAAgF;AAChF,MAAM,MAAM,oDAAoD,GAC5D,6CAA6C,GAC7C;IACA,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,+BAA+B,CAAC,gBAAgB,CAAC,CAAC;IAClE,8BAA8B,CAAC,EAAE,CAC/B,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAC9C,CAAC;AAEJ,sDAAsD;AACtD,wBAAsB,wCAAwC,CAC5D,KAAK,EAAE,6CAA6C,GACnD,OAAO,CAAC,uCAAuC,CAAC,CA4FlD;AAED,8DAA8D;AAC9D,wBAAsB,+CAA+C,CACnE,KAAK,EAAE,oDAAoD,GAC1D,OAAO,CAAC,8CAA8C,CAAC,
|
|
1
|
+
{"version":3,"file":"child-fork-tool-sources.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/child-fork-tool-sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gCAAgC,EAChC,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,2BAA2B,EAGjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EAEpC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACL,KAAK,+BAA+B,EAErC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,8CAA8C,EACpD,MAAM,4BAA4B,CAAC;AAGpC,qEAAqE;AACrE,MAAM,MAAM,gCAAgC,GAAG;IAC7C,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,6CAA6C,GAAG;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACpD,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8BAA8B,CAAC,EAAE,+BAA+B,CAAC;IACjE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,gBAAgB,CAAC;IACjF,gCAAgC,CAAC,EAAE,OAAO,gCAAgC,CAAC;IAC3E,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,CAAC;QACpE,KAAK,EAAE,WAAW,CAAC;QACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC3C,MAAM,CAAC,EAAE,gCAAgC,CAAC;CAC3C,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,uCAAuC,GAC/C;IACA,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,WAAW,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,GACC;IACA,EAAE,EAAE,KAAK,CAAC;IACV,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEJ,gFAAgF;AAChF,MAAM,MAAM,oDAAoD,GAC5D,6CAA6C,GAC7C;IACA,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,+BAA+B,CAAC,gBAAgB,CAAC,CAAC;IAClE,8BAA8B,CAAC,EAAE,CAC/B,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAC9C,CAAC;AAEJ,sDAAsD;AACtD,wBAAsB,wCAAwC,CAC5D,KAAK,EAAE,6CAA6C,GACnD,OAAO,CAAC,uCAAuC,CAAC,CA4FlD;AAED,8DAA8D;AAC9D,wBAAsB,+CAA+C,CACnE,KAAK,EAAE,oDAAoD,GAC1D,OAAO,CAAC,8CAA8C,CAAC,CAgDzD"}
|
|
@@ -118,7 +118,15 @@ export async function prepareDefaultHostedChildForkSandboxToolSources(input) {
|
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
catch (error) {
|
|
121
|
-
|
|
121
|
+
// Never let a close failure mask the original error that triggered cleanup.
|
|
122
|
+
try {
|
|
123
|
+
await sandboxResult.closeSandbox();
|
|
124
|
+
}
|
|
125
|
+
catch (closeError) {
|
|
126
|
+
input.logger?.error("Failed to close sandbox during child fork tool source cleanup", {
|
|
127
|
+
error: closeError,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
122
130
|
throw error;
|
|
123
131
|
}
|
|
124
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-requested-tools.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/child-requested-tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"child-requested-tools.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/child-requested-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -209,8 +209,9 @@ export async function prepareDefaultHostedChildForkToolAssembly(input) {
|
|
|
209
209
|
logger: input.logger,
|
|
210
210
|
});
|
|
211
211
|
if (!preparedTools.ok) {
|
|
212
|
-
|
|
213
|
-
|
|
212
|
+
// Run both closers even if one rejects; closeRuntime tears down the live
|
|
213
|
+
// sandbox and must not be skipped when closeTooling fails.
|
|
214
|
+
await Promise.allSettled([toolSources.closeTooling?.(), toolSources.closeRuntime?.()]);
|
|
214
215
|
return preparedTools;
|
|
215
216
|
}
|
|
216
217
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/memory/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAG/B,KAAK,eAAe,GAAG,cAAc,GAAG,QAAQ,CAAC;AAgDjD,uBAAe,gBAAgB,CAAC,CAAC,SAAS,cAAc,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAC5E,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAM;IAC7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACxD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE/C,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvC,WAAW,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAI3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;CAGjC;AAED,qCAAqC;AACrC,qBAAa,kBAAkB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CACvE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAIf,OAAO,CAAC,MAAM;IAH1B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAG,cAAc,CAAU;IACxD,SAAS,CAAC,QAAQ,CAAC,UAAU,+BAA+B;gBAExC,MAAM,EAAE,gBAAgB;IAI5C,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9B,OAAO,CAAC,gBAAgB;CAazB;AAED,+BAA+B;AAC/B,qBAAa,YAAY,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAC9F,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAG,QAAQ,CAAU;IAClD,SAAS,CAAC,QAAQ,CAAC,UAAU,yBAAyB;IACtD,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,gBAAgB;IAKpC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAe/B;AAED,gCAAgC;AAChC,qBAAa,aAAa,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAK5E,OAAO,CAAC,MAAM;IAJ1B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,gBAAgB,CAAS;gBAEb,MAAM,EAAE,gBAAgB;IAI5C,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9B,WAAW,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IA0B3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAkBhC,OAAO,CAAC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/memory/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -139,7 +139,10 @@ export class SummaryMemory {
|
|
|
139
139
|
.map((m) => getTextFromMemoryParts(m.parts))
|
|
140
140
|
.map((text) => text.substring(0, 50))
|
|
141
141
|
.join("; ");
|
|
142
|
-
|
|
142
|
+
// Merge with the existing summary so earlier context accumulates instead of
|
|
143
|
+
// being discarded on each resummarization.
|
|
144
|
+
const newSummary = `Discussed: ${topics}`;
|
|
145
|
+
this.summary = this.summary ? `${this.summary}; ${newSummary}` : newSummary;
|
|
143
146
|
this.messages = remaining;
|
|
144
147
|
return Promise.resolve();
|
|
145
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/memory/redis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/memory/redis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAI/B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,OAAO,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAKD,8BAA8B;AAC9B,qBAAa,WAAW,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAoB;gBAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;IAStD,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,aAAa;IAgBrB,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B9B,WAAW,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAQ3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAehC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,OAAO,CAAC,gBAAgB;CAazB;AAED,2BAA2B;AAC3B,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACzE,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,GACxB,WAAW,CAAC,CAAC,CAAC,CAEhB"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { estimateTokens, } from "./memory-interface.js";
|
|
8
8
|
import { withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
9
|
+
import { agentLogger } from "../../utils/logger/logger.js";
|
|
9
10
|
const DEFAULT_TTL = 86_400; // 24 hours
|
|
10
11
|
const DEFAULT_KEY_PREFIX = "veryfront:agent:memory:";
|
|
11
12
|
/** Implement redis memory. */
|
|
@@ -33,14 +34,24 @@ export class RedisMemory {
|
|
|
33
34
|
try {
|
|
34
35
|
return JSON.parse(data);
|
|
35
36
|
}
|
|
36
|
-
catch (
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
catch (error) {
|
|
38
|
+
// Do NOT swallow-and-return []: add() would then overwrite the key with a
|
|
39
|
+
// single message and permanently destroy the stored history. Surface the
|
|
40
|
+
// corruption so the caller aborts instead of silently truncating.
|
|
41
|
+
agentLogger.error("Corrupted JSON in Redis memory; refusing to overwrite", {
|
|
42
|
+
key: this.getKey(),
|
|
43
|
+
error,
|
|
44
|
+
});
|
|
45
|
+
throw error;
|
|
39
46
|
}
|
|
40
47
|
}
|
|
41
48
|
add(message) {
|
|
42
49
|
return withSpan("agent.memory.redis.add", async () => {
|
|
43
50
|
const key = this.getKey();
|
|
51
|
+
// NOTE: this GET -> push -> SET is not atomic. The RedisClient interface
|
|
52
|
+
// exposes only get/set/del/expire (no eval/rPush), so concurrent add()
|
|
53
|
+
// calls on the same key can lose updates (last writer wins). Given an
|
|
54
|
+
// atomic list op or Lua eval, prefer an atomic append here.
|
|
44
55
|
let messages = this.parseMessages(await this.client.get(key));
|
|
45
56
|
messages.push(message);
|
|
46
57
|
const { maxMessages, maxTokens } = this.config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-stream.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/streaming/data-stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AAIzB,qCAAqC;AACrC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG;IACvD,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB,
|
|
1
|
+
{"version":3,"file":"data-stream.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/streaming/data-stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AAIzB,qCAAqC;AACrC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG;IACvD,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB,CAyBA;AAED,wCAAwC;AACxC,wBAAuB,sBAAsB,CAC3C,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACjC,cAAc,CAAC,sBAAsB,CAAC,CAsCxC"}
|