@agent-native/core 0.24.7 → 0.24.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/anthropic-engine.js +7 -2
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/translate-anthropic.d.ts +23 -1
- package/dist/agent/engine/translate-anthropic.d.ts.map +1 -1
- package/dist/agent/engine/translate-anthropic.js +43 -5
- package/dist/agent/engine/translate-anthropic.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +28 -3
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +38 -6
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +81 -12
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +33 -5
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +105 -13
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts +27 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +178 -8
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/types.d.ts +8 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/client/PoweredByBadge.d.ts +1 -1
- package/dist/client/PoweredByBadge.js +2 -2
- package/dist/client/PoweredByBadge.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +20 -0
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/api-path.d.ts.map +1 -1
- package/dist/client/api-path.js +37 -2
- package/dist/client/api-path.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +2 -0
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +13 -1
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +31 -9
- package/dist/deploy/build.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +13 -3
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +24 -8
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/social-meta.d.ts +13 -0
- package/dist/shared/social-meta.d.ts.map +1 -0
- package/dist/shared/social-meta.js +26 -0
- package/dist/shared/social-meta.js.map +1 -0
- package/package.json +1 -1
package/dist/client/api-path.js
CHANGED
|
@@ -9,10 +9,17 @@ function normalizeBasePath(value) {
|
|
|
9
9
|
return `/${trimmed.replace(/^\/+/, "").replace(/\/+$/, "")}`;
|
|
10
10
|
}
|
|
11
11
|
function configuredBasePath() {
|
|
12
|
-
const env =
|
|
12
|
+
const env = clientEnv();
|
|
13
13
|
const value = env?.VITE_APP_BASE_PATH ?? env?.APP_BASE_PATH ?? env?.BASE_URL;
|
|
14
14
|
return typeof value === "string" ? normalizeBasePath(value) : "";
|
|
15
15
|
}
|
|
16
|
+
function clientEnv() {
|
|
17
|
+
const importMetaEnv = import.meta.env;
|
|
18
|
+
const processEnv = globalThis.process?.env;
|
|
19
|
+
if (importMetaEnv && processEnv)
|
|
20
|
+
return { ...processEnv, ...importMetaEnv };
|
|
21
|
+
return importMetaEnv ?? processEnv;
|
|
22
|
+
}
|
|
16
23
|
function pathDerivedBasePath() {
|
|
17
24
|
if (typeof window === "undefined")
|
|
18
25
|
return "";
|
|
@@ -22,9 +29,37 @@ function pathDerivedBasePath() {
|
|
|
22
29
|
return "";
|
|
23
30
|
return normalizeBasePath(pathname.slice(0, markerIndex));
|
|
24
31
|
}
|
|
32
|
+
function pathMatchesBasePath(pathname, basePath) {
|
|
33
|
+
return pathname === basePath || pathname.startsWith(`${basePath}/`);
|
|
34
|
+
}
|
|
35
|
+
function isWorkspaceRuntime() {
|
|
36
|
+
const env = clientEnv();
|
|
37
|
+
return (env?.VITE_AGENT_NATIVE_WORKSPACE === "1" ||
|
|
38
|
+
env?.AGENT_NATIVE_WORKSPACE === "1" ||
|
|
39
|
+
typeof env?.VITE_AGENT_NATIVE_WORKSPACE_APPS_JSON === "string");
|
|
40
|
+
}
|
|
41
|
+
function workspacePathBasePath() {
|
|
42
|
+
if (typeof window === "undefined" || !isWorkspaceRuntime())
|
|
43
|
+
return "";
|
|
44
|
+
const segment = window.location.pathname.split("/").find(Boolean);
|
|
45
|
+
if (!segment || segment === "_agent-native" || segment === "api")
|
|
46
|
+
return "";
|
|
47
|
+
return normalizeBasePath(segment);
|
|
48
|
+
}
|
|
25
49
|
export function appBasePath() {
|
|
26
50
|
ensureEmbedAuthFetchInterceptor();
|
|
27
|
-
|
|
51
|
+
const configured = configuredBasePath();
|
|
52
|
+
const derived = pathDerivedBasePath();
|
|
53
|
+
if (!configured)
|
|
54
|
+
return derived;
|
|
55
|
+
if (typeof window === "undefined")
|
|
56
|
+
return configured;
|
|
57
|
+
const pathname = window.location.pathname;
|
|
58
|
+
if (pathMatchesBasePath(pathname, configured))
|
|
59
|
+
return configured;
|
|
60
|
+
// In a multi-app workspace, a globally configured base can bleed from one
|
|
61
|
+
// app build into another. Prefer the live mount path when they disagree.
|
|
62
|
+
return derived || workspacePathBasePath() || configured;
|
|
28
63
|
}
|
|
29
64
|
export function appPath(path) {
|
|
30
65
|
if (!path.startsWith("/"))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-path.js","sourceRoot":"","sources":["../../src/client/api-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEhD,SAAS,iBAAiB,CAAC,KAAyB;IAClD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"api-path.js","sourceRoot":"","sources":["../../src/client/api-path.ts"],"names":[],"mappings":"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","sourcesContent":["import { ensureEmbedAuthFetchInterceptor } from \"./embed-auth.js\";\n\nconst FRAMEWORK_ROUTE_PREFIX = \"/_agent-native\";\n\nfunction normalizeBasePath(value: string | undefined): string {\n if (!value || value === \"/\") return \"\";\n const trimmed = value.trim();\n if (!trimmed || trimmed === \"/\") return \"\";\n return `/${trimmed.replace(/^\\/+/, \"\").replace(/\\/+$/, \"\")}`;\n}\n\nfunction configuredBasePath(): string {\n const env = clientEnv();\n const value = env?.VITE_APP_BASE_PATH ?? env?.APP_BASE_PATH ?? env?.BASE_URL;\n return typeof value === \"string\" ? normalizeBasePath(value) : \"\";\n}\n\nfunction clientEnv(): Record<string, string | boolean | undefined> | undefined {\n const importMetaEnv = (\n import.meta as unknown as {\n env?: Record<string, string | boolean | undefined>;\n }\n ).env;\n const processEnv = (\n globalThis as typeof globalThis & {\n process?: { env?: Record<string, string | boolean | undefined> };\n }\n ).process?.env;\n\n if (importMetaEnv && processEnv) return { ...processEnv, ...importMetaEnv };\n return importMetaEnv ?? processEnv;\n}\n\nfunction pathDerivedBasePath(): string {\n if (typeof window === \"undefined\") return \"\";\n const pathname = window.location.pathname;\n const markerIndex = pathname.indexOf(FRAMEWORK_ROUTE_PREFIX);\n if (markerIndex <= 0) return \"\";\n return normalizeBasePath(pathname.slice(0, markerIndex));\n}\n\nfunction pathMatchesBasePath(pathname: string, basePath: string): boolean {\n return pathname === basePath || pathname.startsWith(`${basePath}/`);\n}\n\nfunction isWorkspaceRuntime(): boolean {\n const env = clientEnv();\n return (\n env?.VITE_AGENT_NATIVE_WORKSPACE === \"1\" ||\n env?.AGENT_NATIVE_WORKSPACE === \"1\" ||\n typeof env?.VITE_AGENT_NATIVE_WORKSPACE_APPS_JSON === \"string\"\n );\n}\n\nfunction workspacePathBasePath(): string {\n if (typeof window === \"undefined\" || !isWorkspaceRuntime()) return \"\";\n const segment = window.location.pathname.split(\"/\").find(Boolean);\n if (!segment || segment === \"_agent-native\" || segment === \"api\") return \"\";\n return normalizeBasePath(segment);\n}\n\nexport function appBasePath(): string {\n ensureEmbedAuthFetchInterceptor();\n const configured = configuredBasePath();\n const derived = pathDerivedBasePath();\n if (!configured) return derived;\n if (typeof window === \"undefined\") return configured;\n\n const pathname = window.location.pathname;\n if (pathMatchesBasePath(pathname, configured)) return configured;\n\n // In a multi-app workspace, a globally configured base can bleed from one\n // app build into another. Prefer the live mount path when they disagree.\n return derived || workspacePathBasePath() || configured;\n}\n\nexport function appPath(path: string): string {\n if (!path.startsWith(\"/\")) return path;\n const basePath = appBasePath();\n if (!basePath) return path;\n if (path === basePath || path.startsWith(`${basePath}/`)) return path;\n return `${basePath}${path}`;\n}\n\nexport function appApiPath(path: string): string {\n const normalized =\n path === \"/api\" || path.startsWith(\"/api/\")\n ? path\n : `/api/${path.replace(/^\\/+/, \"\")}`;\n return appPath(normalized);\n}\n\nexport function agentNativePath(path: string): string {\n if (!path.startsWith(FRAMEWORK_ROUTE_PREFIX)) return path;\n return appPath(path);\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import type { EditorView } from "@tiptap/pm/view";
|
|
2
3
|
import type { SkillResult, Reference, SlashCommand, AgentComposerLayoutVariant } from "./types.js";
|
|
3
4
|
import { type ReasoningEffort } from "../../shared/reasoning-effort.js";
|
|
4
5
|
export interface TiptapComposerHandle {
|
|
@@ -14,6 +15,7 @@ export declare function canSubmitComposerContent(options: {
|
|
|
14
15
|
disabled?: boolean;
|
|
15
16
|
}): boolean;
|
|
16
17
|
export declare function getComposerSubmitIntentForEnterKey(event: Pick<KeyboardEvent, "key" | "shiftKey" | "metaKey" | "ctrlKey">, isMac: boolean): ComposerSubmitIntent | null;
|
|
18
|
+
export declare function insertComposerHardBreakAndScrollIntoView(view: Pick<EditorView, "state" | "dispatch">): boolean;
|
|
17
19
|
export declare function displayableComposerModeMessage(options: {
|
|
18
20
|
messagePrefix: string;
|
|
19
21
|
trimmedText: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapComposer.d.ts","sourceRoot":"","sources":["../../../src/client/composer/TiptapComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TiptapComposer.d.ts","sourceRoot":"","sources":["../../../src/client/composer/TiptapComposer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,13 @@ export function getComposerSubmitIntentForEnterKey(event, isMac) {
|
|
|
36
36
|
return "immediate";
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
39
|
+
export function insertComposerHardBreakAndScrollIntoView(view) {
|
|
40
|
+
const hardBreak = view.state.schema.nodes.hardBreak;
|
|
41
|
+
if (!hardBreak)
|
|
42
|
+
return false;
|
|
43
|
+
view.dispatch(view.state.tr.replaceSelectionWith(hardBreak.create()).scrollIntoView());
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
39
46
|
export function displayableComposerModeMessage(options) {
|
|
40
47
|
const modePrompt = options.trimmedText ||
|
|
41
48
|
(options.attachmentCount > 0 ? "Use the attached context." : "");
|
|
@@ -685,8 +692,13 @@ export function TiptapComposer({ placeholder = "Message agent...", disabled = fa
|
|
|
685
692
|
}
|
|
686
693
|
return true;
|
|
687
694
|
}
|
|
688
|
-
// Submit on Enter. Shift+Enter
|
|
695
|
+
// Submit on Enter. Shift+Enter inserts a newline and keeps the
|
|
696
|
+
// composer scrolled to the caret.
|
|
689
697
|
// Cmd+Enter on macOS / Ctrl+Enter elsewhere marks the submit queued.
|
|
698
|
+
if (event.key === "Enter" && event.shiftKey) {
|
|
699
|
+
event.preventDefault();
|
|
700
|
+
return insertComposerHardBreakAndScrollIntoView(view);
|
|
701
|
+
}
|
|
690
702
|
const submitIntent = getComposerSubmitIntentForEnterKey(event, isMac);
|
|
691
703
|
if (submitIntent) {
|
|
692
704
|
event.preventDefault();
|