@inspectr/mcplab 1.25.0 → 1.25.1

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.
Files changed (54) hide show
  1. package/dist/app/assets/index-BRTMTqcR.js +258 -0
  2. package/dist/app/index.html +1 -1
  3. package/dist/app-server/copilotkit-telemetry.d.ts +6 -0
  4. package/dist/app-server/copilotkit-telemetry.d.ts.map +1 -0
  5. package/dist/app-server/copilotkit-telemetry.js +8 -0
  6. package/dist/app-server/copilotkit-telemetry.js.map +1 -0
  7. package/dist/app-server/dev-mcp.d.ts +2 -5
  8. package/dist/app-server/global-copilot-domain.d.ts +30 -0
  9. package/dist/app-server/global-copilot-domain.d.ts.map +1 -0
  10. package/dist/app-server/global-copilot-domain.js +106 -0
  11. package/dist/app-server/global-copilot-domain.js.map +1 -0
  12. package/dist/app-server/global-copilot-mastra-route.d.ts +2 -0
  13. package/dist/app-server/global-copilot-mastra-route.d.ts.map +1 -0
  14. package/dist/app-server/global-copilot-mastra-route.js +5 -0
  15. package/dist/app-server/global-copilot-mastra-route.js.map +1 -0
  16. package/dist/app-server/global-copilot-mastra-runtime.d.ts +9 -0
  17. package/dist/app-server/global-copilot-mastra-runtime.d.ts.map +1 -0
  18. package/dist/app-server/global-copilot-mastra-runtime.js +61 -0
  19. package/dist/app-server/global-copilot-mastra-runtime.js.map +1 -0
  20. package/dist/app-server/global-copilot-mastra-storage.d.ts +8 -0
  21. package/dist/app-server/global-copilot-mastra-storage.d.ts.map +1 -0
  22. package/dist/app-server/global-copilot-mastra-storage.js +26 -0
  23. package/dist/app-server/global-copilot-mastra-storage.js.map +1 -0
  24. package/dist/app-server/global-copilot-mastra-threads.d.ts +5 -0
  25. package/dist/app-server/global-copilot-mastra-threads.d.ts.map +1 -0
  26. package/dist/app-server/global-copilot-mastra-threads.js +21 -0
  27. package/dist/app-server/global-copilot-mastra-threads.js.map +1 -0
  28. package/dist/app-server/global-copilot-mastra-tools.d.ts +50 -0
  29. package/dist/app-server/global-copilot-mastra-tools.d.ts.map +1 -0
  30. package/dist/app-server/global-copilot-mastra-tools.js +175 -0
  31. package/dist/app-server/global-copilot-mastra-tools.js.map +1 -0
  32. package/dist/app-server/global-copilot-mastra.d.ts +44 -0
  33. package/dist/app-server/global-copilot-mastra.d.ts.map +1 -0
  34. package/dist/app-server/global-copilot-mastra.js +198 -0
  35. package/dist/app-server/global-copilot-mastra.js.map +1 -0
  36. package/dist/app-server/global-copilot-memory.d.ts +70 -0
  37. package/dist/app-server/global-copilot-memory.d.ts.map +1 -0
  38. package/dist/app-server/global-copilot-memory.js +119 -0
  39. package/dist/app-server/global-copilot-memory.js.map +1 -0
  40. package/dist/app-server/global-copilot-threads.d.ts +14 -0
  41. package/dist/app-server/global-copilot-threads.d.ts.map +1 -0
  42. package/dist/app-server/global-copilot-threads.js +74 -0
  43. package/dist/app-server/global-copilot-threads.js.map +1 -0
  44. package/dist/app-server/oauth-debugger-domain.d.ts +183 -203
  45. package/dist/app-server/oauth-debugger-domain.d.ts.map +1 -1
  46. package/dist/app-server/oauth-debugger-domain.js +40 -21
  47. package/dist/app-server/oauth-debugger-domain.js.map +1 -1
  48. package/dist/app-server/result-assistant-domain.d.ts +65 -81
  49. package/dist/app-server/scenario-assistant-domain.d.ts +127 -153
  50. package/dist/app-server/settings-store.d.ts +4 -4
  51. package/dist/app-server/store-utils.d.ts +1 -1
  52. package/dist/app-server/types.d.ts +25 -25
  53. package/package.json +1 -1
  54. package/dist/app/assets/index-DgUUu84k.js +0 -258
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-copilot-mastra-tools.js","sourceRoot":"","sources":["../../src/app-server/global-copilot-mastra-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { AgentConfig } from '@inspectr/mcplab-core';
3
+ import { MastraAgent } from '@ag-ui/mastra';
4
+ import type { MastraMemory } from '@mastra/core/memory';
5
+ import type { MastraCompositeStore } from '@mastra/core/storage';
6
+ import type { AppSettings } from './types.js';
7
+ export declare const GLOBAL_COPILOT_AGENT_ID = "mcplab-global-copilot";
8
+ export type GlobalCopilotModelDescriptor = {
9
+ provider: AgentConfig['provider'];
10
+ model: string;
11
+ temperature?: number;
12
+ maxTokens?: number;
13
+ system?: string;
14
+ };
15
+ export declare function globalCopilotModelDescriptor(agent: AgentConfig): GlobalCopilotModelDescriptor;
16
+ type ProviderEnvironment = Record<string, string | undefined>;
17
+ export declare function validateGlobalCopilotProviderEnvironment(agent: AgentConfig, environment?: ProviderEnvironment): void;
18
+ export declare function createGlobalCopilotLanguageModel(agent: AgentConfig, environment?: ProviderEnvironment): any;
19
+ export declare function createGlobalCopilotMastraAgent(params: {
20
+ agentConfig: AgentConfig;
21
+ instructions: string | ((args: any) => string);
22
+ resourceId: string;
23
+ environment?: ProviderEnvironment;
24
+ memory?: MastraMemory;
25
+ storage?: MastraCompositeStore;
26
+ tools?: any;
27
+ }): MastraAgent;
28
+ export declare function createGlobalCopilotRuntimeHandler(agent: MastraAgent): (reqOrRequest: IncomingMessage | Request, res?: ServerResponse) => Promise<void> | Promise<Response> | Response;
29
+ export declare function disableGlobalCopilotKitTelemetry(): void;
30
+ export declare function globalCopilotWorkspaceResourceId(workspaceRoot: string): string;
31
+ export declare function globalCopilotContextFromAgUi(context: unknown): unknown;
32
+ export declare function persistGlobalCopilotPendingInterrupts(params: {
33
+ memory: MastraMemory;
34
+ resourceId: string;
35
+ agent: MastraAgent;
36
+ }): Promise<void>;
37
+ export declare function handleGlobalCopilotKit(params: {
38
+ req: IncomingMessage;
39
+ res: ServerResponse;
40
+ settings: AppSettings;
41
+ asJson: (res: ServerResponse, status: number, body: unknown) => void;
42
+ }): Promise<void>;
43
+ export {};
44
+ //# sourceMappingURL=global-copilot-mastra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-copilot-mastra.d.ts","sourceRoot":"","sources":["../../src/app-server/global-copilot-mastra.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAW5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAMjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAE/D,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,WAAW,GACjB,4BAA4B,CAQ9B;AAED,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAQ9D,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,WAAW,EAClB,WAAW,GAAE,mBAAiC,GAC7C,IAAI,CAYN;AAOD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,WAAW,EAClB,WAAW,GAAE,mBAAiC,GAC7C,GAAG,CAmBL;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,GAAG,WAAW,CAgCd;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,WAAW,mHAQnE;AAED,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AAED,wBAAgB,gCAAgC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CActE;AAED,wBAAsB,qCAAqC,CAAC,MAAM,EAAE;IAClE,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAahB;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACtE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDhB"}
@@ -0,0 +1,198 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { MastraAgent } from '@ag-ui/mastra';
3
+ import { createAnthropic } from '@ai-sdk/anthropic';
4
+ import { createAzure } from '@ai-sdk/azure';
5
+ import { createOpenAI } from '@ai-sdk/openai';
6
+ import { CopilotRuntime, ExperimentalEmptyAdapter, copilotRuntimeNodeHttpEndpoint } from '@copilotkit/runtime';
7
+ import { Agent } from '@mastra/core/agent';
8
+ import { Mastra } from '@mastra/core/mastra';
9
+ import { readLibraries } from './libraries-store.js';
10
+ import { globalCopilotSystemPrompt, selectGlobalCopilotAgentName } from './global-copilot-domain.js';
11
+ import { buildGlobalCopilotMastraTools, GlobalCopilotMcpConnectionPool } from './global-copilot-mastra-tools.js';
12
+ import { getGlobalCopilotMemoryRuntime } from './global-copilot-memory.js';
13
+ export const GLOBAL_COPILOT_AGENT_ID = 'mcplab-global-copilot';
14
+ export function globalCopilotModelDescriptor(agent) {
15
+ return {
16
+ provider: agent.provider,
17
+ model: agent.model,
18
+ ...(agent.temperature === undefined ? {} : { temperature: agent.temperature }),
19
+ ...(agent.max_tokens === undefined ? {} : { maxTokens: agent.max_tokens }),
20
+ ...(agent.system === undefined ? {} : { system: agent.system })
21
+ };
22
+ }
23
+ function requireEnvironment(environment, name) {
24
+ const value = environment[name]?.trim();
25
+ if (!value)
26
+ throw new Error(`Missing ${name}`);
27
+ return value;
28
+ }
29
+ export function validateGlobalCopilotProviderEnvironment(agent, environment = process.env) {
30
+ if (agent.provider === 'openai') {
31
+ requireEnvironment(environment, 'OPENAI_API_KEY');
32
+ return;
33
+ }
34
+ if (agent.provider === 'anthropic') {
35
+ requireEnvironment(environment, 'ANTHROPIC_API_KEY');
36
+ return;
37
+ }
38
+ requireEnvironment(environment, 'AZURE_OPENAI_API_KEY');
39
+ requireEnvironment(environment, 'AZURE_OPENAI_ENDPOINT');
40
+ requireEnvironment(environment, 'AZURE_OPENAI_DEPLOYMENT');
41
+ }
42
+ function azureOpenAIBaseUrl(endpoint) {
43
+ const normalized = endpoint.replace(/\/+$/, '');
44
+ return normalized.endsWith('/openai') ? normalized : `${normalized}/openai`;
45
+ }
46
+ export function createGlobalCopilotLanguageModel(agent, environment = process.env) {
47
+ validateGlobalCopilotProviderEnvironment(agent, environment);
48
+ if (agent.provider === 'openai') {
49
+ return createOpenAI({ apiKey: requireEnvironment(environment, 'OPENAI_API_KEY') }).chat(agent.model);
50
+ }
51
+ if (agent.provider === 'anthropic') {
52
+ return createAnthropic({ apiKey: requireEnvironment(environment, 'ANTHROPIC_API_KEY') })(agent.model);
53
+ }
54
+ const deployment = requireEnvironment(environment, 'AZURE_OPENAI_DEPLOYMENT');
55
+ return createAzure({
56
+ apiKey: requireEnvironment(environment, 'AZURE_OPENAI_API_KEY'),
57
+ baseURL: azureOpenAIBaseUrl(requireEnvironment(environment, 'AZURE_OPENAI_ENDPOINT')),
58
+ apiVersion: environment.AZURE_OPENAI_API_VERSION?.trim() || undefined,
59
+ useDeploymentBasedUrls: true
60
+ }).chat(deployment);
61
+ }
62
+ export function createGlobalCopilotMastraAgent(params) {
63
+ const descriptor = globalCopilotModelDescriptor(params.agentConfig);
64
+ const agent = new Agent({
65
+ id: GLOBAL_COPILOT_AGENT_ID,
66
+ name: 'MCPLab Global Copilot',
67
+ instructions: params.instructions,
68
+ model: createGlobalCopilotLanguageModel(params.agentConfig, params.environment),
69
+ ...(params.memory ? { memory: params.memory } : {}),
70
+ ...(params.tools ? { tools: params.tools } : {}),
71
+ defaultOptions: {
72
+ maxSteps: params.agentConfig.max_turns ?? 30,
73
+ modelSettings: {
74
+ ...(descriptor.temperature === undefined
75
+ ? {}
76
+ : { temperature: descriptor.temperature }),
77
+ ...(descriptor.maxTokens === undefined
78
+ ? {}
79
+ : { maxOutputTokens: descriptor.maxTokens })
80
+ }
81
+ }
82
+ });
83
+ const registeredAgent = params.storage
84
+ ? new Mastra({
85
+ agents: { [GLOBAL_COPILOT_AGENT_ID]: agent },
86
+ storage: params.storage
87
+ }).getAgent(GLOBAL_COPILOT_AGENT_ID)
88
+ : agent;
89
+ return new MastraAgent({
90
+ agent: registeredAgent,
91
+ resourceId: params.resourceId,
92
+ emitInterruptOutcome: true
93
+ });
94
+ }
95
+ export function createGlobalCopilotRuntimeHandler(agent) {
96
+ disableGlobalCopilotKitTelemetry();
97
+ const runtime = new CopilotRuntime({ agents: { [GLOBAL_COPILOT_AGENT_ID]: agent } });
98
+ return copilotRuntimeNodeHttpEndpoint({
99
+ endpoint: '/api/copilotkit',
100
+ runtime,
101
+ serviceAdapter: new ExperimentalEmptyAdapter()
102
+ });
103
+ }
104
+ export function disableGlobalCopilotKitTelemetry() {
105
+ process.env.COPILOTKIT_TELEMETRY_DISABLED = 'true';
106
+ }
107
+ export function globalCopilotWorkspaceResourceId(workspaceRoot) {
108
+ return createHash('sha256').update(workspaceRoot).digest('hex');
109
+ }
110
+ export function globalCopilotContextFromAgUi(context) {
111
+ if (!Array.isArray(context))
112
+ return context;
113
+ const entry = context.find((item) => item &&
114
+ typeof item === 'object' &&
115
+ item.description === 'Current MCPLab application context');
116
+ if (typeof entry?.value !== 'string')
117
+ return entry?.value ?? {};
118
+ try {
119
+ return JSON.parse(entry.value);
120
+ }
121
+ catch {
122
+ return {};
123
+ }
124
+ }
125
+ export async function persistGlobalCopilotPendingInterrupts(params) {
126
+ const threadId = params.agent.threadId;
127
+ if (!threadId)
128
+ return;
129
+ const thread = await params.memory.getThreadById({ threadId });
130
+ if (!thread || thread.resourceId !== params.resourceId)
131
+ return;
132
+ await params.memory.updateThread({
133
+ id: thread.id,
134
+ title: thread.title ?? 'New conversation',
135
+ metadata: {
136
+ ...(thread.metadata ?? {}),
137
+ globalCopilotPendingInterrupts: params.agent.pendingInterrupts
138
+ }
139
+ });
140
+ }
141
+ export async function handleGlobalCopilotKit(params) {
142
+ const libraries = readLibraries(params.settings.librariesDir);
143
+ const agentName = selectGlobalCopilotAgentName({
144
+ globalCopilotAgentName: params.settings.globalCopilotAgentName,
145
+ scenarioAssistantAgentName: params.settings.scenarioAssistantAgentName,
146
+ agentNames: Object.keys(libraries.agents)
147
+ });
148
+ const agentConfig = agentName ? libraries.agents[agentName] : undefined;
149
+ if (!agentConfig) {
150
+ params.asJson(params.res, 400, {
151
+ error: 'No Global Copilot agent is configured. Add an agent in Libraries > Agents or configure it in Settings.'
152
+ });
153
+ return;
154
+ }
155
+ const connectionPool = new GlobalCopilotMcpConnectionPool();
156
+ try {
157
+ const memoryRuntime = await getGlobalCopilotMemoryRuntime(params.settings.workspaceRoot);
158
+ const readBudget = { used: 0, batchSize: 5 };
159
+ const agent = createGlobalCopilotMastraAgent({
160
+ agentConfig,
161
+ resourceId: globalCopilotWorkspaceResourceId(params.settings.workspaceRoot),
162
+ memory: memoryRuntime.memory,
163
+ storage: memoryRuntime.storage,
164
+ tools: async ({ requestContext }) => {
165
+ const context = globalCopilotContextFromAgUi(requestContext?.get?.('ag-ui')?.context);
166
+ return buildGlobalCopilotMastraTools({
167
+ settings: params.settings,
168
+ context,
169
+ budget: readBudget,
170
+ pool: connectionPool
171
+ });
172
+ },
173
+ instructions: ({ requestContext }) => {
174
+ const context = globalCopilotContextFromAgUi(requestContext?.get?.('ag-ui')?.context);
175
+ return [agentConfig.system, globalCopilotSystemPrompt(context)].filter(Boolean).join('\n\n');
176
+ }
177
+ });
178
+ await createGlobalCopilotRuntimeHandler(agent)(params.req, params.res);
179
+ await persistGlobalCopilotPendingInterrupts({
180
+ memory: memoryRuntime.memory,
181
+ resourceId: globalCopilotWorkspaceResourceId(params.settings.workspaceRoot),
182
+ agent
183
+ });
184
+ }
185
+ catch (error) {
186
+ if (params.res.headersSent) {
187
+ params.res.end();
188
+ return;
189
+ }
190
+ params.asJson(params.res, 500, {
191
+ error: error instanceof Error ? error.message : String(error)
192
+ });
193
+ }
194
+ finally {
195
+ await connectionPool.close();
196
+ }
197
+ }
198
+ //# sourceMappingURL=global-copilot-mastra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-copilot-mastra.js","sourceRoot":"","sources":["../../src/app-server/global-copilot-mastra.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { StorageThreadType } from '@mastra/core/memory';
2
+ import { LibSQLStore } from '@mastra/libsql';
3
+ import { Memory } from '@mastra/memory';
4
+ import { z } from 'zod';
5
+ export declare const globalCopilotWorkingMemorySchema: z.ZodObject<{
6
+ goal: z.ZodString;
7
+ constraints: z.ZodArray<z.ZodString, "many">;
8
+ decisions: z.ZodArray<z.ZodString, "many">;
9
+ followUps: z.ZodArray<z.ZodString, "many">;
10
+ }, "strict", z.ZodTypeAny, {
11
+ goal: string;
12
+ constraints: string[];
13
+ decisions: string[];
14
+ followUps: string[];
15
+ }, {
16
+ goal: string;
17
+ constraints: string[];
18
+ decisions: string[];
19
+ followUps: string[];
20
+ }>;
21
+ export declare const GLOBAL_COPILOT_MEMORY_OPTIONS: {
22
+ lastMessages: number;
23
+ semanticRecall: false;
24
+ workingMemory: {
25
+ enabled: boolean;
26
+ scope: "thread";
27
+ schema: z.ZodObject<{
28
+ goal: z.ZodString;
29
+ constraints: z.ZodArray<z.ZodString, "many">;
30
+ decisions: z.ZodArray<z.ZodString, "many">;
31
+ followUps: z.ZodArray<z.ZodString, "many">;
32
+ }, "strict", z.ZodTypeAny, {
33
+ goal: string;
34
+ constraints: string[];
35
+ decisions: string[];
36
+ followUps: string[];
37
+ }, {
38
+ goal: string;
39
+ constraints: string[];
40
+ decisions: string[];
41
+ followUps: string[];
42
+ }>;
43
+ };
44
+ };
45
+ export declare function globalCopilotMemoryDatabasePath(workspaceRoot: string): string;
46
+ export type GlobalCopilotMemoryRuntime = {
47
+ storage: LibSQLStore;
48
+ memory: Memory;
49
+ close: () => Promise<void>;
50
+ };
51
+ export declare function createGlobalCopilotMemoryRuntime(params: {
52
+ databasePath: string;
53
+ }): Promise<GlobalCopilotMemoryRuntime>;
54
+ export declare class GlobalCopilotThreadService {
55
+ private readonly memory;
56
+ private readonly resourceId;
57
+ private readonly maxThreads;
58
+ constructor(memory: Memory, resourceId: string, maxThreads?: number);
59
+ list(): Promise<StorageThreadType[]>;
60
+ get(id: string): Promise<StorageThreadType>;
61
+ create(params: {
62
+ id: string;
63
+ title?: string;
64
+ }): Promise<StorageThreadType>;
65
+ rename(id: string, title: string): Promise<StorageThreadType>;
66
+ delete(id: string): Promise<void>;
67
+ private prune;
68
+ }
69
+ export declare function getGlobalCopilotMemoryRuntime(workspaceRoot: string): Promise<GlobalCopilotMemoryRuntime>;
70
+ //# sourceMappingURL=global-copilot-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-copilot-memory.d.ts","sourceRoot":"","sources":["../../src/app-server/global-copilot-memory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;EAOlC,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;CAQzC,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,wBAAsB,gCAAgC,CAAC,MAAM,EAAE;IAC7D,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAYtC;AAED,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,SAAM;IAG7B,IAAI,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IASpC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAW3C,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgB1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAW7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAKzB,KAAK;CAWpB;AAID,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,0BAA0B,CAAC,CASrC"}
@@ -0,0 +1,119 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { mkdir } from 'node:fs/promises';
3
+ import { dirname, join } from 'node:path';
4
+ import { LibSQLStore } from '@mastra/libsql';
5
+ import { Memory } from '@mastra/memory';
6
+ import { z } from 'zod';
7
+ export const globalCopilotWorkingMemorySchema = z
8
+ .object({
9
+ goal: z.string(),
10
+ constraints: z.array(z.string()),
11
+ decisions: z.array(z.string()),
12
+ followUps: z.array(z.string())
13
+ })
14
+ .strict();
15
+ export const GLOBAL_COPILOT_MEMORY_OPTIONS = {
16
+ lastMessages: 20,
17
+ semanticRecall: false,
18
+ workingMemory: {
19
+ enabled: true,
20
+ scope: 'thread',
21
+ schema: globalCopilotWorkingMemorySchema
22
+ }
23
+ };
24
+ export function globalCopilotMemoryDatabasePath(workspaceRoot) {
25
+ return join(workspaceRoot, 'mcplab', '.mastra', 'global-copilot.db');
26
+ }
27
+ export async function createGlobalCopilotMemoryRuntime(params) {
28
+ await mkdir(dirname(params.databasePath), { recursive: true });
29
+ const storage = new LibSQLStore({
30
+ id: `global-copilot-${createHash('sha256').update(params.databasePath).digest('hex').slice(0, 16)}`,
31
+ url: `file:${params.databasePath}`
32
+ });
33
+ await storage.init();
34
+ return {
35
+ storage,
36
+ memory: new Memory({ storage, options: GLOBAL_COPILOT_MEMORY_OPTIONS }),
37
+ close: () => storage.close()
38
+ };
39
+ }
40
+ export class GlobalCopilotThreadService {
41
+ memory;
42
+ resourceId;
43
+ maxThreads;
44
+ constructor(memory, resourceId, maxThreads = 100) {
45
+ this.memory = memory;
46
+ this.resourceId = resourceId;
47
+ this.maxThreads = maxThreads;
48
+ }
49
+ async list() {
50
+ const result = await this.memory.listThreads({
51
+ filter: { resourceId: this.resourceId },
52
+ perPage: false,
53
+ orderBy: { field: 'updatedAt', direction: 'DESC' }
54
+ });
55
+ return result.threads;
56
+ }
57
+ async get(id) {
58
+ const thread = await this.memory.getThreadById({
59
+ threadId: id,
60
+ resourceId: this.resourceId
61
+ });
62
+ if (!thread || thread.resourceId !== this.resourceId) {
63
+ throw new Error(`Global Copilot thread not found: ${id}`);
64
+ }
65
+ return thread;
66
+ }
67
+ async create(params) {
68
+ const now = new Date();
69
+ const thread = await this.memory.saveThread({
70
+ thread: {
71
+ id: params.id,
72
+ title: params.title?.trim() || 'New conversation',
73
+ resourceId: this.resourceId,
74
+ createdAt: now,
75
+ updatedAt: now,
76
+ metadata: {}
77
+ }
78
+ });
79
+ await this.prune(thread.id);
80
+ return thread;
81
+ }
82
+ async rename(id, title) {
83
+ const thread = await this.get(id);
84
+ const normalizedTitle = title.trim();
85
+ if (!normalizedTitle)
86
+ throw new Error('Thread title is required.');
87
+ return this.memory.updateThread({
88
+ id,
89
+ title: normalizedTitle,
90
+ metadata: thread.metadata ?? {}
91
+ });
92
+ }
93
+ async delete(id) {
94
+ await this.get(id);
95
+ await this.memory.deleteThread(id);
96
+ }
97
+ async prune(preserveId) {
98
+ const threads = await this.list();
99
+ if (threads.length <= this.maxThreads)
100
+ return;
101
+ const retained = new Set([
102
+ preserveId,
103
+ ...threads.filter((thread) => thread.id !== preserveId).slice(0, this.maxThreads - 1).map((thread) => thread.id)
104
+ ]);
105
+ await Promise.all(threads.filter((thread) => !retained.has(thread.id)).map((thread) => this.memory.deleteThread(thread.id)));
106
+ }
107
+ }
108
+ const memoryRuntimes = new Map();
109
+ export function getGlobalCopilotMemoryRuntime(workspaceRoot) {
110
+ const databasePath = globalCopilotMemoryDatabasePath(workspaceRoot);
111
+ let runtime = memoryRuntimes.get(databasePath);
112
+ if (!runtime) {
113
+ runtime = createGlobalCopilotMemoryRuntime({ databasePath });
114
+ memoryRuntimes.set(databasePath, runtime);
115
+ runtime.catch(() => memoryRuntimes.delete(databasePath));
116
+ }
117
+ return runtime;
118
+ }
119
+ //# sourceMappingURL=global-copilot-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-copilot-memory.js","sourceRoot":"","sources":["../../src/app-server/global-copilot-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { AppSettings } from './types.js';
3
+ type RouteParams = {
4
+ req: IncomingMessage;
5
+ res: ServerResponse;
6
+ pathname: string;
7
+ method: string;
8
+ settings: AppSettings;
9
+ parseBody: (req: IncomingMessage) => Promise<Record<string, any>>;
10
+ asJson: (res: ServerResponse, status: number, body: unknown) => void;
11
+ };
12
+ export declare function handleGlobalCopilotThreadRoutes(params: RouteParams): Promise<boolean>;
13
+ export {};
14
+ //# sourceMappingURL=global-copilot-threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-copilot-threads.d.ts","sourceRoot":"","sources":["../../src/app-server/global-copilot-threads.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9C,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACtE,CAAC;AAUF,wBAAsB,+BAA+B,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAiE3F"}
@@ -0,0 +1,74 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { GlobalCopilotThreadService, getGlobalCopilotMemoryRuntime } from './global-copilot-memory.js';
3
+ import { globalCopilotWorkspaceResourceId } from './global-copilot-mastra.js';
4
+ function serializeThread(thread) {
5
+ return {
6
+ ...thread,
7
+ createdAt: thread.createdAt.toISOString(),
8
+ updatedAt: thread.updatedAt.toISOString()
9
+ };
10
+ }
11
+ export async function handleGlobalCopilotThreadRoutes(params) {
12
+ const collectionPath = '/api/global-copilot/threads';
13
+ const match = params.pathname.match(/^\/api\/global-copilot\/threads\/([^/]+)$/);
14
+ if (params.pathname !== collectionPath && !match)
15
+ return false;
16
+ const runtime = await getGlobalCopilotMemoryRuntime(params.settings.workspaceRoot);
17
+ const service = new GlobalCopilotThreadService(runtime.memory, globalCopilotWorkspaceResourceId(params.settings.workspaceRoot));
18
+ try {
19
+ if (params.pathname === collectionPath && params.method === 'GET') {
20
+ params.asJson(params.res, 200, {
21
+ threads: (await service.list()).map(serializeThread)
22
+ });
23
+ return true;
24
+ }
25
+ if (params.pathname === collectionPath && params.method === 'POST') {
26
+ const body = await params.parseBody(params.req);
27
+ const thread = await service.create({
28
+ id: typeof body.id === 'string' && body.id.trim() ? body.id.trim() : randomUUID(),
29
+ title: typeof body.title === 'string' ? body.title : undefined
30
+ });
31
+ params.asJson(params.res, 201, { thread: serializeThread(thread), messages: [] });
32
+ return true;
33
+ }
34
+ if (match) {
35
+ const threadId = decodeURIComponent(match[1]);
36
+ if (params.method === 'GET') {
37
+ const thread = await service.get(threadId);
38
+ const recalled = await runtime.memory.recall({
39
+ threadId,
40
+ resourceId: globalCopilotWorkspaceResourceId(params.settings.workspaceRoot),
41
+ perPage: false
42
+ });
43
+ params.asJson(params.res, 200, {
44
+ thread: serializeThread(thread),
45
+ messages: recalled.messages
46
+ });
47
+ return true;
48
+ }
49
+ if (params.method === 'PATCH') {
50
+ const body = await params.parseBody(params.req);
51
+ const title = typeof body.title === 'string' ? body.title : '';
52
+ params.asJson(params.res, 200, {
53
+ thread: serializeThread(await service.rename(threadId, title))
54
+ });
55
+ return true;
56
+ }
57
+ if (params.method === 'DELETE') {
58
+ await service.delete(threadId);
59
+ params.res.statusCode = 204;
60
+ params.res.end();
61
+ return true;
62
+ }
63
+ }
64
+ params.asJson(params.res, 405, { error: 'Method not allowed' });
65
+ }
66
+ catch (error) {
67
+ const message = error instanceof Error ? error.message : String(error);
68
+ params.asJson(params.res, message.startsWith('Global Copilot thread not found:') ? 404 : 400, {
69
+ error: message
70
+ });
71
+ }
72
+ return true;
73
+ }
74
+ //# sourceMappingURL=global-copilot-threads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-copilot-threads.js","sourceRoot":"","sources":["../../src/app-server/global-copilot-threads.ts"],"names":[],"mappings":"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"}