@agent-native/core 0.12.17 → 0.12.18
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/index.d.ts +1 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +16 -4
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +59 -23
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +8 -2
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +10 -0
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js +17 -10
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +35 -13
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +5 -10
- package/dist/server/google-oauth.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-agent-engines.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/list-agent-engines.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"list-agent-engines.js","sourceRoot":"","sources":["../../../src/scripts/agent-engines/list-agent-engines.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAe;IAC9B,WAAW,EACT,mNAAmN;IACrN,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,sBAAsB,EAAE,CAAC;IAEzB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,cAAc;QAC5B,CAAC,CAAE,cAAsD;QACzD,CAAC,CAAC,IAAI,CAAC;IAET,yEAAyE;IACzE,sEAAsE;IACtE,2EAA2E;IAC3E,6CAA6C;IAC7C,MAAM,WAAW,GACf,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ;QACjC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,YAAY,GAChB,CAAC,CAAC,WAAW;QACb,CAAC,MAAM,8BAA8B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,EAAE,CAAC;IAE7D,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY;QACvB,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;QACd,CAAC,gBAAgB,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACxC,gBAAgB;QAChB,mBAAmB,EAAE;QACrB,SAAS,CAAC;IACZ,MAAM,YAAY,GAChB,YAAY,IAAI,YAAY,EAAE,IAAI,KAAK,OAAO,EAAE,MAAM;QACpD,CAAC,CAAC,OAAO,EAAE,KAAK;QAChB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,iBAAiB,GAAG,YAAY,EAAE,IAAI,IAAI,WAAW,CAAC;IAE5D,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,cAAc,EAAE,CAAC,CAAC,cAAc;SACjC,CAAC,CAAC;QACH,OAAO,EAAE;YACP,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,YAAY,IAAI,aAAa;SACnE;KACF,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC","sourcesContent":["/**\n * list-agent-engines — returns the registered engine registry and current selection.\n */\n\nimport type { ActionTool } from \"../../agent/types.js\";\nimport {\n listAgentEngines,\n registerBuiltinEngines,\n detectEngineFromEnv,\n detectEngineFromUserSecrets,\n getAgentEngineEntry,\n isStoredEngineUsableForRequest,\n} from \"../../agent/engine/index.js\";\nimport { DEFAULT_MODEL } from \"../../agent/default-model.js\";\nimport { getSetting } from \"../../settings/index.js\";\n\nexport const tool: ActionTool = {\n description:\n 'List all available AI agent engines (Anthropic, OpenAI, Gemini, Groq, etc.) and the currently selected engine. Use this to check what engines are available before calling manage-agent-engine with action=\"set\".',\n parameters: {\n type: \"object\",\n properties: {},\n required: [],\n },\n};\n\nexport async function run(): Promise<string> {\n registerBuiltinEngines();\n\n const engines = listAgentEngines();\n const currentSetting = await getSetting(\"agent-engine\");\n const current = currentSetting\n ? (currentSetting as { engine?: string; model?: string })\n : null;\n\n // Same priority chain resolveEngine uses after explicit request options:\n // AGENT_ENGINE → Builder app_secrets → stored (if usable) → user BYOK\n // app_secrets → env → anthropic. Gating stored on the request-aware helper\n // keeps the picker in step with the runtime.\n const storedEntry =\n typeof current?.engine === \"string\"\n ? getAgentEngineEntry(current.engine)\n : undefined;\n const storedUsable =\n !!storedEntry &&\n (await isStoredEngineUsableForRequest(current, storedEntry));\n const detectedFromUser = await detectEngineFromUserSecrets();\n\n const currentEntry =\n (process.env.AGENT_ENGINE\n ? getAgentEngineEntry(process.env.AGENT_ENGINE)\n : undefined) ??\n (detectedFromUser?.name === \"builder\" ? detectedFromUser : undefined) ??\n (storedUsable ? storedEntry : undefined) ??\n detectedFromUser ??\n detectEngineFromEnv() ??\n undefined;\n const currentModel =\n storedUsable && currentEntry?.name === current?.engine\n ? current?.model\n : undefined;\n const currentEngineName = currentEntry?.name ?? \"anthropic\";\n\n const result = {\n engines: engines.map((e) => ({\n name: e.name,\n label: e.label,\n description: e.description,\n defaultModel: e.defaultModel,\n supportedModels: e.supportedModels,\n capabilities: e.capabilities,\n requiredEnvVars: e.requiredEnvVars,\n installPackage: e.installPackage,\n })),\n current: {\n engine: currentEngineName,\n model: currentModel ?? currentEntry?.defaultModel ?? DEFAULT_MODEL,\n },\n };\n\n return JSON.stringify(result, null, 2);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-routes-plugin.d.ts","sourceRoot":"","sources":["../../src/server/core-routes-plugin.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAKlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4EvD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"core-routes-plugin.d.ts","sourceRoot":"","sources":["../../src/server/core-routes-plugin.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAKlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4EvD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAoFvD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAWf;AAUD,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qEAAqE;IACrE,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC7E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,cAAc,CA2zDhB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAAyC,CAAC"}
|
|
@@ -29,7 +29,7 @@ import { runWithRequestContext } from "./request-context.js";
|
|
|
29
29
|
import { createVoiceProvidersStatusHandler } from "./voice-providers-status.js";
|
|
30
30
|
import { PROVIDER_ENV_META } from "../agent/engine/provider-env-vars.js";
|
|
31
31
|
import { canUpdateAgentLoopSettings, readAgentLoopSettings, resetAgentLoopSettings, validateMaxIterationsInput, writeAgentLoopSettings, } from "../agent/loop-settings.js";
|
|
32
|
-
import { isAgentEngineSettingConfigured, getAgentEngineEntry, detectEngineFromEnv, detectEngineFromUserSecrets,
|
|
32
|
+
import { isAgentEngineSettingConfigured, getAgentEngineEntry, detectEngineFromEnv, detectEngineFromUserSecrets, isStoredEngineUsableForRequest, } from "../agent/engine/registry.js";
|
|
33
33
|
import { registerBuiltinEngines } from "../agent/engine/builtin.js";
|
|
34
34
|
import { getOrgContext } from "../org/context.js";
|
|
35
35
|
import { isEnvVarWriteAllowed } from "./env-var-writes.js";
|
|
@@ -46,12 +46,6 @@ async function detectUsageEngineName(event, userEmail) {
|
|
|
46
46
|
if (isAgentEngineSettingConfigured(stored)) {
|
|
47
47
|
return stored.engine;
|
|
48
48
|
}
|
|
49
|
-
if (stored && typeof stored.engine === "string") {
|
|
50
|
-
const entry = getAgentEngineEntry(stored.engine);
|
|
51
|
-
if (entry && isStoredEngineUsable(stored, entry)) {
|
|
52
|
-
return stored.engine;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
49
|
let orgId;
|
|
56
50
|
if (userEmail) {
|
|
57
51
|
try {
|
|
@@ -63,6 +57,15 @@ async function detectUsageEngineName(event, userEmail) {
|
|
|
63
57
|
}
|
|
64
58
|
}
|
|
65
59
|
const detectedFromUser = await runWithRequestContext({ userEmail, orgId }, () => detectEngineFromUserSecrets());
|
|
60
|
+
if (detectedFromUser?.name === "builder")
|
|
61
|
+
return detectedFromUser.name;
|
|
62
|
+
if (stored && typeof stored.engine === "string") {
|
|
63
|
+
const entry = getAgentEngineEntry(stored.engine);
|
|
64
|
+
if (entry &&
|
|
65
|
+
(await runWithRequestContext({ userEmail, orgId }, () => isStoredEngineUsableForRequest(stored, entry)))) {
|
|
66
|
+
return stored.engine;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
66
69
|
if (detectedFromUser)
|
|
67
70
|
return detectedFromUser.name;
|
|
68
71
|
return detectEngineFromEnv()?.name ?? null;
|
|
@@ -1091,6 +1094,16 @@ export function createCoreRoutesPlugin(options = {}) {
|
|
|
1091
1094
|
try {
|
|
1092
1095
|
const session = await getSession(event).catch(() => null);
|
|
1093
1096
|
const userEmail = session?.email;
|
|
1097
|
+
let orgId;
|
|
1098
|
+
if (userEmail) {
|
|
1099
|
+
try {
|
|
1100
|
+
const orgCtx = await getOrgContext(event);
|
|
1101
|
+
orgId = orgCtx.orgId ?? undefined;
|
|
1102
|
+
}
|
|
1103
|
+
catch {
|
|
1104
|
+
/* org module not present in this template */
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1094
1107
|
const stored = (await getSetting("agent-engine"));
|
|
1095
1108
|
if (isAgentEngineSettingConfigured(stored)) {
|
|
1096
1109
|
return {
|
|
@@ -1099,9 +1112,23 @@ export function createCoreRoutesPlugin(options = {}) {
|
|
|
1099
1112
|
source: "settings",
|
|
1100
1113
|
};
|
|
1101
1114
|
}
|
|
1115
|
+
// Per-user app_secrets — a user who connected Builder (or pasted
|
|
1116
|
+
// their own provider key) may not have any deploy-level env vars
|
|
1117
|
+
// set, so check their per-user secret store before reporting "no
|
|
1118
|
+
// engine configured" and re-showing the onboarding gate.
|
|
1119
|
+
const detectedFromUser = await runWithRequestContext({ userEmail, orgId }, () => detectEngineFromUserSecrets());
|
|
1120
|
+
if (detectedFromUser?.name === "builder") {
|
|
1121
|
+
return {
|
|
1122
|
+
configured: true,
|
|
1123
|
+
engine: detectedFromUser.name,
|
|
1124
|
+
source: "app_secrets",
|
|
1125
|
+
envVar: detectedFromUser.requiredEnvVars[0],
|
|
1126
|
+
};
|
|
1127
|
+
}
|
|
1102
1128
|
if (stored && typeof stored.engine === "string") {
|
|
1103
1129
|
const entry = getAgentEngineEntry(stored.engine);
|
|
1104
|
-
if (entry &&
|
|
1130
|
+
if (entry &&
|
|
1131
|
+
(await runWithRequestContext({ userEmail, orgId }, () => isStoredEngineUsableForRequest(stored, entry)))) {
|
|
1105
1132
|
return {
|
|
1106
1133
|
configured: true,
|
|
1107
1134
|
engine: stored.engine,
|
|
@@ -1110,11 +1137,6 @@ export function createCoreRoutesPlugin(options = {}) {
|
|
|
1110
1137
|
};
|
|
1111
1138
|
}
|
|
1112
1139
|
}
|
|
1113
|
-
// Per-user app_secrets — a user who connected Builder (or pasted
|
|
1114
|
-
// their own provider key) may not have any deploy-level env vars
|
|
1115
|
-
// set, so check their per-user secret store before reporting "no
|
|
1116
|
-
// engine configured" and re-showing the onboarding gate.
|
|
1117
|
-
const detectedFromUser = await runWithRequestContext({ userEmail }, () => detectEngineFromUserSecrets());
|
|
1118
1140
|
if (detectedFromUser) {
|
|
1119
1141
|
return {
|
|
1120
1142
|
configured: true,
|