@agent-native/core 0.12.27 → 0.12.29
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/builder-engine.d.ts +1 -1
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/model-config.d.ts +3 -3
- package/dist/agent/model-config.d.ts.map +1 -1
- package/dist/agent/model-config.js +5 -4
- package/dist/agent/model-config.js.map +1 -1
- package/dist/application-state/emitter.d.ts +3 -2
- package/dist/application-state/emitter.d.ts.map +1 -1
- package/dist/application-state/emitter.js +4 -2
- package/dist/application-state/emitter.js.map +1 -1
- package/dist/application-state/store.js +3 -3
- package/dist/application-state/store.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +0 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +45 -7
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +12 -5
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/use-chat-models.js.map +1 -1
- package/dist/client/use-db-sync.d.ts +4 -0
- package/dist/client/use-db-sync.d.ts.map +1 -1
- package/dist/client/use-db-sync.js +38 -13
- package/dist/client/use-db-sync.js.map +1 -1
- package/dist/client/use-pausing-interval.d.ts.map +1 -1
- package/dist/client/use-pausing-interval.js +5 -2
- package/dist/client/use-pausing-interval.js.map +1 -1
- package/dist/collab/client.d.ts +2 -0
- package/dist/collab/client.d.ts.map +1 -1
- package/dist/collab/client.js +37 -4
- package/dist/collab/client.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +83 -2
- package/dist/server/auth.js.map +1 -1
- package/dist/server/google-auth-plugin.d.ts.map +1 -1
- package/dist/server/google-auth-plugin.js +50 -3
- package/dist/server/google-auth-plugin.js.map +1 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +10 -4
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +50 -3
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/poll.d.ts.map +1 -1
- package/dist/server/poll.js +15 -0
- package/dist/server/poll.js.map +1 -1
- package/dist/templates/default/app/hooks/use-navigation-state.ts +0 -1
- package/package.json +1 -1
- package/src/templates/default/app/hooks/use-navigation-state.ts +0 -1
|
@@ -15,6 +15,6 @@
|
|
|
15
15
|
import type { AgentEngine, EngineCapabilities } from "./types.js";
|
|
16
16
|
export declare const BUILDER_CAPABILITIES: EngineCapabilities;
|
|
17
17
|
export declare const BUILDER_SUPPORTED_MODELS: readonly ["claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5", string, "gpt-5-4", "gpt-5-4-mini", "gpt-5-1-codex-mini", "gemini-3-1-pro", "gemini-3-0-flash", "gemini-3-1-flash-lite", "grok-code-fast", "qwen3-coder", "kimi-k2-5", "deepseek-v3-1", "z-ai-glm-4-5", "z-ai-glm-5-1"];
|
|
18
|
-
export declare const BUILDER_DEFAULT_MODEL:
|
|
18
|
+
export declare const BUILDER_DEFAULT_MODEL: "claude-sonnet-4-6";
|
|
19
19
|
export declare function createBuilderEngine(_config?: Record<string, unknown>): AgentEngine;
|
|
20
20
|
//# sourceMappingURL=builder-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder-engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine/builder-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAqBpB,eAAO,MAAM,oBAAoB,EAAE,kBAUlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,8RAAuC,CAAC;AAM7E,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"builder-engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine/builder-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAqBpB,eAAO,MAAM,oBAAoB,EAAE,kBAUlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,8RAAuC,CAAC;AAM7E,eAAO,MAAM,qBAAqB,qBAAoC,CAAC;AA2iBvE,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,WAAW,CAEb"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const AGENT_MODEL_CONFIG: {
|
|
10
10
|
readonly builder: {
|
|
11
|
-
readonly defaultModel:
|
|
11
|
+
readonly defaultModel: "claude-sonnet-4-6";
|
|
12
12
|
readonly supportedModels: readonly ["claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5", string, "gpt-5-4", "gpt-5-4-mini", "gpt-5-1-codex-mini", "gemini-3-1-pro", "gemini-3-0-flash", "gemini-3-1-flash-lite", "grok-code-fast", "qwen3-coder", "kimi-k2-5", "deepseek-v3-1", "z-ai-glm-4-5", "z-ai-glm-5-1"];
|
|
13
13
|
};
|
|
14
14
|
readonly anthropic: {
|
|
@@ -51,7 +51,7 @@ export declare const AGENT_MODEL_CONFIG: {
|
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
53
|
export declare const BUILDER_MODEL_CONFIG: {
|
|
54
|
-
readonly defaultModel:
|
|
54
|
+
readonly defaultModel: "claude-sonnet-4-6";
|
|
55
55
|
readonly supportedModels: readonly ["claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5", string, "gpt-5-4", "gpt-5-4-mini", "gpt-5-1-codex-mini", "gemini-3-1-pro", "gemini-3-0-flash", "gemini-3-1-flash-lite", "grok-code-fast", "qwen3-coder", "kimi-k2-5", "deepseek-v3-1", "z-ai-glm-4-5", "z-ai-glm-5-1"];
|
|
56
56
|
};
|
|
57
57
|
export declare const ANTHROPIC_MODEL_CONFIG: {
|
|
@@ -93,7 +93,7 @@ export declare const AI_SDK_MODEL_CONFIG: {
|
|
|
93
93
|
};
|
|
94
94
|
};
|
|
95
95
|
export type AISDKProvider = keyof typeof AI_SDK_MODEL_CONFIG;
|
|
96
|
-
export declare const DEFAULT_MODEL:
|
|
96
|
+
export declare const DEFAULT_MODEL: "claude-sonnet-4-6";
|
|
97
97
|
export declare const DEFAULT_OPENAI_MODEL: "gpt-5.5";
|
|
98
98
|
export declare const DEFAULT_ANTHROPIC_MODEL: "claude-sonnet-4-6";
|
|
99
99
|
//# sourceMappingURL=model-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-config.d.ts","sourceRoot":"","sources":["../../src/agent/model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"model-config.d.ts","sourceRoot":"","sources":["../../src/agent/model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFrB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;CAA6B,CAAC;AAC/D,eAAO,MAAM,sBAAsB;;;CAA+B,CAAC;AACnE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA2B,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAE7D,eAAO,MAAM,aAAa,qBAAoC,CAAC;AAC/D,eAAO,MAAM,oBAAoB,WAA0C,CAAC;AAC5E,eAAO,MAAM,uBAAuB,qBAAsC,CAAC"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* derived from that provider-native OpenAI ID so the usual default bump stays
|
|
7
7
|
* in this one file.
|
|
8
8
|
*/
|
|
9
|
-
const FRAMEWORK_DEFAULT_OPENAI_MODEL = "gpt-5.5";
|
|
10
9
|
const ANTHROPIC_DEFAULT_MODEL_ID = "claude-sonnet-4-6";
|
|
11
10
|
function builderGatewayModelId(model) {
|
|
12
11
|
return model.replace(/\./g, "-");
|
|
@@ -14,16 +13,18 @@ function builderGatewayModelId(model) {
|
|
|
14
13
|
function openRouterModelId(provider, model) {
|
|
15
14
|
return `${provider}/${model}`;
|
|
16
15
|
}
|
|
17
|
-
const
|
|
16
|
+
const FRAMEWORK_DEFAULT_OPENAI_MODEL = "gpt-5.5";
|
|
17
|
+
const FRAMEWORK_DEFAULT_BUILDER_MODEL = ANTHROPIC_DEFAULT_MODEL_ID;
|
|
18
|
+
const FRAMEWORK_DEFAULT_BUILDER_OPENAI_MODEL = builderGatewayModelId(FRAMEWORK_DEFAULT_OPENAI_MODEL);
|
|
18
19
|
const FRAMEWORK_DEFAULT_OPENROUTER_MODEL = openRouterModelId("openai", FRAMEWORK_DEFAULT_OPENAI_MODEL);
|
|
19
20
|
export const AGENT_MODEL_CONFIG = {
|
|
20
21
|
builder: {
|
|
21
22
|
defaultModel: FRAMEWORK_DEFAULT_BUILDER_MODEL,
|
|
22
23
|
supportedModels: [
|
|
23
24
|
"claude-opus-4-7",
|
|
24
|
-
"claude-sonnet-4-6",
|
|
25
|
-
"claude-haiku-4-5",
|
|
26
25
|
FRAMEWORK_DEFAULT_BUILDER_MODEL,
|
|
26
|
+
"claude-haiku-4-5",
|
|
27
|
+
FRAMEWORK_DEFAULT_BUILDER_OPENAI_MODEL,
|
|
27
28
|
"gpt-5-4",
|
|
28
29
|
"gpt-5-4-mini",
|
|
29
30
|
"gpt-5-1-codex-mini",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../src/agent/model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,
|
|
1
|
+
{"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../src/agent/model-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;AAEvD,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,KAAa;IACxD,OAAO,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,8BAA8B,GAAG,SAAS,CAAC;AACjD,MAAM,+BAA+B,GAAG,0BAA0B,CAAC;AACnE,MAAM,sCAAsC,GAAG,qBAAqB,CAClE,8BAA8B,CAC/B,CAAC;AACF,MAAM,kCAAkC,GAAG,iBAAiB,CAC1D,QAAQ,EACR,8BAA8B,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE;QACP,YAAY,EAAE,+BAA+B;QAC7C,eAAe,EAAE;YACf,iBAAiB;YACjB,+BAA+B;YAC/B,kBAAkB;YAClB,sCAAsC;YACtC,SAAS;YACT,cAAc;YACd,oBAAoB;YACpB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,gBAAgB;YAChB,aAAa;YACb,WAAW;YACX,eAAe;YACf,cAAc;YACd,cAAc;SACf;KACF;IACD,SAAS,EAAE;QACT,YAAY,EAAE,0BAA0B;QACxC,eAAe,EAAE;YACf,iBAAiB;YACjB,0BAA0B;YAC1B,2BAA2B;SAC5B;KACF;IACD,KAAK,EAAE;QACL,SAAS,EAAE;YACT,YAAY,EAAE,0BAA0B;YACxC,eAAe,EAAE;gBACf,iBAAiB;gBACjB,0BAA0B;gBAC1B,2BAA2B;aAC5B;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,8BAA8B;YAC5C,eAAe,EAAE;gBACf,8BAA8B;gBAC9B,SAAS;gBACT,cAAc;aACf;SACF;QACD,UAAU,EAAE;YACV,YAAY,EAAE,kCAAkC;YAChD,eAAe,EAAE;gBACf,2BAA2B;gBAC3B,6BAA6B;gBAC7B,kCAAkC;gBAClC,gBAAgB;gBAChB,yBAAyB;aAC1B;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,wBAAwB;YACtC,eAAe,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;SACtE;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,yBAAyB;YACvC,eAAe,EAAE;gBACf,yBAAyB;gBACzB,yBAAyB;gBACzB,oBAAoB;aACrB;SACF;QACD,OAAO,EAAE;YACP,YAAY,EAAE,sBAAsB;YACpC,eAAe,EAAE;gBACf,sBAAsB;gBACtB,uBAAuB;gBACvB,sBAAsB;aACvB;SACF;QACD,MAAM,EAAE;YACN,YAAY,EAAE,gBAAgB;YAC9B,eAAe,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;SACjD;QACD,MAAM,EAAE;YACN,YAAY,EAAE,UAAU;YACxB,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC;SAClE;KACF;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,SAAS,CAAC;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAI5D,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,YAAY,CAAC","sourcesContent":["/**\n * Central model catalog for built-in agent engines.\n *\n * To bump the framework's managed default, update\n * FRAMEWORK_DEFAULT_OPENAI_MODEL. Builder gateway and OpenRouter IDs are\n * derived from that provider-native OpenAI ID so the usual default bump stays\n * in this one file.\n */\n\nconst ANTHROPIC_DEFAULT_MODEL_ID = \"claude-sonnet-4-6\";\n\nfunction builderGatewayModelId(model: string): string {\n return model.replace(/\\./g, \"-\");\n}\n\nfunction openRouterModelId(provider: string, model: string): string {\n return `${provider}/${model}`;\n}\n\nconst FRAMEWORK_DEFAULT_OPENAI_MODEL = \"gpt-5.5\";\nconst FRAMEWORK_DEFAULT_BUILDER_MODEL = ANTHROPIC_DEFAULT_MODEL_ID;\nconst FRAMEWORK_DEFAULT_BUILDER_OPENAI_MODEL = builderGatewayModelId(\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n);\nconst FRAMEWORK_DEFAULT_OPENROUTER_MODEL = openRouterModelId(\n \"openai\",\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n);\n\nexport const AGENT_MODEL_CONFIG = {\n builder: {\n defaultModel: FRAMEWORK_DEFAULT_BUILDER_MODEL,\n supportedModels: [\n \"claude-opus-4-7\",\n FRAMEWORK_DEFAULT_BUILDER_MODEL,\n \"claude-haiku-4-5\",\n FRAMEWORK_DEFAULT_BUILDER_OPENAI_MODEL,\n \"gpt-5-4\",\n \"gpt-5-4-mini\",\n \"gpt-5-1-codex-mini\",\n \"gemini-3-1-pro\",\n \"gemini-3-0-flash\",\n \"gemini-3-1-flash-lite\",\n \"grok-code-fast\",\n \"qwen3-coder\",\n \"kimi-k2-5\",\n \"deepseek-v3-1\",\n \"z-ai-glm-4-5\",\n \"z-ai-glm-5-1\",\n ],\n },\n anthropic: {\n defaultModel: ANTHROPIC_DEFAULT_MODEL_ID,\n supportedModels: [\n \"claude-opus-4-7\",\n ANTHROPIC_DEFAULT_MODEL_ID,\n \"claude-haiku-4-5-20251001\",\n ],\n },\n aiSdk: {\n anthropic: {\n defaultModel: ANTHROPIC_DEFAULT_MODEL_ID,\n supportedModels: [\n \"claude-opus-4-7\",\n ANTHROPIC_DEFAULT_MODEL_ID,\n \"claude-haiku-4-5-20251001\",\n ],\n },\n openai: {\n defaultModel: FRAMEWORK_DEFAULT_OPENAI_MODEL,\n supportedModels: [\n FRAMEWORK_DEFAULT_OPENAI_MODEL,\n \"gpt-5.4\",\n \"gpt-5.4-mini\",\n ],\n },\n openrouter: {\n defaultModel: FRAMEWORK_DEFAULT_OPENROUTER_MODEL,\n supportedModels: [\n \"anthropic/claude-opus-4.7\",\n \"anthropic/claude-sonnet-4.6\",\n FRAMEWORK_DEFAULT_OPENROUTER_MODEL,\n \"openai/gpt-5.4\",\n \"google/gemini-2.5-flash\",\n ],\n },\n google: {\n defaultModel: \"gemini-3-flash-preview\",\n supportedModels: [\"gemini-3-flash-preview\", \"gemini-3.1-pro-preview\"],\n },\n groq: {\n defaultModel: \"llama-3.3-70b-versatile\",\n supportedModels: [\n \"llama-3.3-70b-versatile\",\n \"llama-3.1-70b-versatile\",\n \"mixtral-8x7b-32768\",\n ],\n },\n mistral: {\n defaultModel: \"mistral-large-latest\",\n supportedModels: [\n \"mistral-large-latest\",\n \"mistral-medium-latest\",\n \"mistral-small-latest\",\n ],\n },\n cohere: {\n defaultModel: \"command-r-plus\",\n supportedModels: [\"command-r-plus\", \"command-r\"],\n },\n ollama: {\n defaultModel: \"llama3.1\",\n supportedModels: [\"llama3.1\", \"llama3.2\", \"mistral\", \"codestral\"],\n },\n },\n} as const;\n\nexport const BUILDER_MODEL_CONFIG = AGENT_MODEL_CONFIG.builder;\nexport const ANTHROPIC_MODEL_CONFIG = AGENT_MODEL_CONFIG.anthropic;\nexport const AI_SDK_MODEL_CONFIG = AGENT_MODEL_CONFIG.aiSdk;\n\nexport type AISDKProvider = keyof typeof AI_SDK_MODEL_CONFIG;\n\nexport const DEFAULT_MODEL = BUILDER_MODEL_CONFIG.defaultModel;\nexport const DEFAULT_OPENAI_MODEL = AI_SDK_MODEL_CONFIG.openai.defaultModel;\nexport const DEFAULT_ANTHROPIC_MODEL = ANTHROPIC_MODEL_CONFIG.defaultModel;\n"]}
|
|
@@ -3,9 +3,10 @@ export interface AppStateEvent {
|
|
|
3
3
|
source: "app-state";
|
|
4
4
|
type: "change" | "delete";
|
|
5
5
|
key: string;
|
|
6
|
+
owner?: string;
|
|
6
7
|
requestSource?: string;
|
|
7
8
|
}
|
|
8
9
|
export declare function getAppStateEmitter(): EventEmitter;
|
|
9
|
-
export declare function emitAppStateChange(key: string, requestSource?: string): void;
|
|
10
|
-
export declare function emitAppStateDelete(key: string, requestSource?: string): void;
|
|
10
|
+
export declare function emitAppStateChange(key: string, requestSource?: string, owner?: string): void;
|
|
11
|
+
export declare function emitAppStateDelete(key: string, requestSource?: string, owner?: string): void;
|
|
11
12
|
//# sourceMappingURL=emitter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/application-state/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAQD,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD;AAED,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/application-state/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAQD,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,CASN;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,CASN"}
|
|
@@ -7,20 +7,22 @@ const _emitter = new EventEmitter();
|
|
|
7
7
|
export function getAppStateEmitter() {
|
|
8
8
|
return _emitter;
|
|
9
9
|
}
|
|
10
|
-
export function emitAppStateChange(key, requestSource) {
|
|
10
|
+
export function emitAppStateChange(key, requestSource, owner) {
|
|
11
11
|
const event = {
|
|
12
12
|
source: "app-state",
|
|
13
13
|
type: "change",
|
|
14
14
|
key,
|
|
15
|
+
...(owner && { owner }),
|
|
15
16
|
...(requestSource && { requestSource }),
|
|
16
17
|
};
|
|
17
18
|
_emitter.emit("app-state", event);
|
|
18
19
|
}
|
|
19
|
-
export function emitAppStateDelete(key, requestSource) {
|
|
20
|
+
export function emitAppStateDelete(key, requestSource, owner) {
|
|
20
21
|
const event = {
|
|
21
22
|
source: "app-state",
|
|
22
23
|
type: "delete",
|
|
23
24
|
key,
|
|
25
|
+
...(owner && { owner }),
|
|
24
26
|
...(requestSource && { requestSource }),
|
|
25
27
|
};
|
|
26
28
|
_emitter.emit("app-state", event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/application-state/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/application-state/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAUtC;;;GAGG;AACH,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAEpC,MAAM,UAAU,kBAAkB;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,aAAsB,EACtB,KAAc;IAEd,MAAM,KAAK,GAAkB;QAC3B,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,QAAQ;QACd,GAAG;QACH,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,aAAsB,EACtB,KAAc;IAEd,MAAM,KAAK,GAAkB;QAC3B,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,QAAQ;QACd,GAAG;QACH,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC","sourcesContent":["import { EventEmitter } from \"events\";\n\nexport interface AppStateEvent {\n source: \"app-state\";\n type: \"change\" | \"delete\";\n key: string;\n owner?: string;\n requestSource?: string;\n}\n\n/**\n * Singleton EventEmitter for application-state DB changes.\n * The SSE handler subscribes to this via extraEmitters.\n */\nconst _emitter = new EventEmitter();\n\nexport function getAppStateEmitter(): EventEmitter {\n return _emitter;\n}\n\nexport function emitAppStateChange(\n key: string,\n requestSource?: string,\n owner?: string,\n): void {\n const event: AppStateEvent = {\n source: \"app-state\",\n type: \"change\",\n key,\n ...(owner && { owner }),\n ...(requestSource && { requestSource }),\n };\n _emitter.emit(\"app-state\", event);\n}\n\nexport function emitAppStateDelete(\n key: string,\n requestSource?: string,\n owner?: string,\n): void {\n const event: AppStateEvent = {\n source: \"app-state\",\n type: \"delete\",\n key,\n ...(owner && { owner }),\n ...(requestSource && { requestSource }),\n };\n _emitter.emit(\"app-state\", event);\n}\n"]}
|
|
@@ -47,7 +47,7 @@ export async function appStatePut(sessionId, key, value, options) {
|
|
|
47
47
|
: `INSERT OR REPLACE INTO application_state (session_id, key, value, updated_at) VALUES (?, ?, ?, ?)`,
|
|
48
48
|
args: [sessionId, key, JSON.stringify(value), Date.now()],
|
|
49
49
|
});
|
|
50
|
-
emitAppStateChange(key, options?.requestSource);
|
|
50
|
+
emitAppStateChange(key, options?.requestSource, sessionId);
|
|
51
51
|
}
|
|
52
52
|
export async function appStateDelete(sessionId, key, options) {
|
|
53
53
|
await ensureTable();
|
|
@@ -58,7 +58,7 @@ export async function appStateDelete(sessionId, key, options) {
|
|
|
58
58
|
});
|
|
59
59
|
const deleted = result.rowsAffected > 0;
|
|
60
60
|
if (deleted)
|
|
61
|
-
emitAppStateDelete(key, options?.requestSource);
|
|
61
|
+
emitAppStateDelete(key, options?.requestSource, sessionId);
|
|
62
62
|
return deleted;
|
|
63
63
|
}
|
|
64
64
|
export async function appStateList(sessionId, keyPrefix) {
|
|
@@ -88,7 +88,7 @@ export async function appStateDeleteByPrefix(sessionId, keyPrefix, options) {
|
|
|
88
88
|
args: [sessionId, keyPrefix + "%"],
|
|
89
89
|
});
|
|
90
90
|
for (const row of rows) {
|
|
91
|
-
emitAppStateDelete(row.key, options?.requestSource);
|
|
91
|
+
emitAppStateDelete(row.key, options?.requestSource, sessionId);
|
|
92
92
|
}
|
|
93
93
|
return result.rowsAffected;
|
|
94
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/application-state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,OAAO,GAER,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGtE,IAAI,YAAuC,CAAC;AAE5C,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,MAAM,CAAC,OAAO,CAAC;;;;;uBAKJ,OAAO,EAAE;;;OAGzB,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,GAAW;IAEX,IAAI,CAAC;QACH,MAAM,WAAW,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACpC,GAAG,EAAE,sEAAsE;YAC3E,IAAI,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,iBAAiB,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,GAAW,EACX,KAA8B,EAC9B,OAA2B;IAE3B,MAAM,WAAW,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,CAAC,OAAO,CAAC;QACnB,GAAG,EAAE,UAAU,EAAE;YACf,CAAC,CAAC,yLAAyL;YAC3L,CAAC,CAAC,mGAAmG;QACvG,IAAI,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/application-state/store.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getDbExec,\n isConnectionError,\n isPostgres,\n intType,\n type DbExec,\n} from \"../db/client.js\";\nimport { emitAppStateChange, emitAppStateDelete } from \"./emitter.js\";\nimport type { StoreWriteOptions } from \"../settings/store.js\";\n\nlet _initPromise: Promise<void> | undefined;\n\nasync function ensureTable(): Promise<void> {\n if (!_initPromise) {\n _initPromise = (async () => {\n const client = getDbExec();\n await client.execute(`\n CREATE TABLE IF NOT EXISTS application_state (\n session_id TEXT NOT NULL,\n key TEXT NOT NULL,\n value TEXT NOT NULL,\n updated_at ${intType()} NOT NULL,\n PRIMARY KEY (session_id, key)\n )\n `);\n })();\n }\n return _initPromise;\n}\n\nexport async function appStateGet(\n sessionId: string,\n key: string,\n): Promise<Record<string, unknown> | null> {\n try {\n await ensureTable();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT value FROM application_state WHERE session_id = ? AND key = ?`,\n args: [sessionId, key],\n });\n if (rows.length === 0) return null;\n return JSON.parse(rows[0].value as string);\n } catch (err) {\n // Transient WS / connection drops (Neon serverless) — caller polls every\n // 2s and will see the value on the next tick. Swallow rather than 500.\n if (isConnectionError(err)) return null;\n throw err;\n }\n}\n\nexport async function appStatePut(\n sessionId: string,\n key: string,\n value: Record<string, unknown>,\n options?: StoreWriteOptions,\n): Promise<void> {\n await ensureTable();\n const client = getDbExec();\n await client.execute({\n sql: isPostgres()\n ? `INSERT INTO application_state (session_id, key, value, updated_at) VALUES (?, ?, ?, ?) ON CONFLICT (session_id, key) DO UPDATE SET value=EXCLUDED.value, updated_at=EXCLUDED.updated_at`\n : `INSERT OR REPLACE INTO application_state (session_id, key, value, updated_at) VALUES (?, ?, ?, ?)`,\n args: [sessionId, key, JSON.stringify(value), Date.now()],\n });\n emitAppStateChange(key, options?.requestSource, sessionId);\n}\n\nexport async function appStateDelete(\n sessionId: string,\n key: string,\n options?: StoreWriteOptions,\n): Promise<boolean> {\n await ensureTable();\n const client = getDbExec();\n const result = await client.execute({\n sql: `DELETE FROM application_state WHERE session_id = ? AND key = ?`,\n args: [sessionId, key],\n });\n const deleted = result.rowsAffected > 0;\n if (deleted) emitAppStateDelete(key, options?.requestSource, sessionId);\n return deleted;\n}\n\nexport async function appStateList(\n sessionId: string,\n keyPrefix: string,\n): Promise<Array<{ key: string; value: Record<string, unknown> }>> {\n await ensureTable();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT key, value FROM application_state WHERE session_id = ? AND key LIKE ?`,\n args: [sessionId, keyPrefix + \"%\"],\n });\n return rows.map((row) => ({\n key: row.key as string,\n value: JSON.parse(row.value as string),\n }));\n}\n\nexport async function appStateDeleteByPrefix(\n sessionId: string,\n keyPrefix: string,\n options?: StoreWriteOptions,\n): Promise<number> {\n await ensureTable();\n const client = getDbExec();\n\n // Get keys first so we can emit events\n const { rows } = await client.execute({\n sql: `SELECT key FROM application_state WHERE session_id = ? AND key LIKE ?`,\n args: [sessionId, keyPrefix + \"%\"],\n });\n\n if (rows.length === 0) return 0;\n\n const result = await client.execute({\n sql: `DELETE FROM application_state WHERE session_id = ? AND key LIKE ?`,\n args: [sessionId, keyPrefix + \"%\"],\n });\n\n for (const row of rows) {\n emitAppStateDelete(row.key as string, options?.requestSource, sessionId);\n }\n\n return result.rowsAffected;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentPanel.d.ts","sourceRoot":"","sources":["../../src/client/AgentPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KASN,MAAM,OAAO,CAAC;AAwCf,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA6J7D,MAAM,WAAW,oBAAoB;IACnC,mGAAmG;IACnG,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,mEAAmE;IACnE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,wEAAwE;IACxE,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC;AAuBD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,kBAAkB,EAClB,eAAe,CAChB;IACC,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6HAA6H;IAC7H,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,yEAAyE;IACzE,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"AgentPanel.d.ts","sourceRoot":"","sources":["../../src/client/AgentPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KASN,MAAM,OAAO,CAAC;AAwCf,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA6J7D,MAAM,WAAW,oBAAoB;IACnC,mGAAmG;IACnG,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,mEAAmE;IACnE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,wEAAwE;IACxE,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC;AAuBD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,kBAAkB,EAClB,eAAe,CAChB;IACC,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6HAA6H;IAC7H,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,yEAAyE;IACzE,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAm0CD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CAgBhD;AAID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;yDACqD;IACrD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,cAAsC,EACtC,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,QAAkB,EAClB,WAAmB,EACnB,aAAqB,GACtB,EAAE,iBAAiB,2CAqVnB;AAED;;;GAGG;AACH,wBAAgB,cAAc,SAgB7B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAuBtE"}
|