@anastops/mcp-server 0.1.0 → 1.0.0

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 (105) hide show
  1. package/dist/formatters.d.ts.map +1 -1
  2. package/dist/formatters.js +12 -3
  3. package/dist/formatters.js.map +1 -1
  4. package/dist/handlers/agent-handlers.d.ts +8 -0
  5. package/dist/handlers/agent-handlers.d.ts.map +1 -0
  6. package/dist/handlers/agent-handlers.js +184 -0
  7. package/dist/handlers/agent-handlers.js.map +1 -0
  8. package/dist/handlers/artifact-handlers.d.ts +8 -0
  9. package/dist/handlers/artifact-handlers.d.ts.map +1 -0
  10. package/dist/handlers/artifact-handlers.js +122 -0
  11. package/dist/handlers/artifact-handlers.js.map +1 -0
  12. package/dist/handlers/cost-handlers.d.ts +8 -0
  13. package/dist/handlers/cost-handlers.d.ts.map +1 -0
  14. package/dist/handlers/cost-handlers.js +140 -0
  15. package/dist/handlers/cost-handlers.js.map +1 -0
  16. package/dist/handlers/handlers.agent.d.ts +10 -0
  17. package/dist/handlers/handlers.agent.d.ts.map +1 -0
  18. package/dist/handlers/handlers.agent.js +99 -0
  19. package/dist/handlers/handlers.agent.js.map +1 -0
  20. package/dist/handlers/handlers.base.d.ts +82 -0
  21. package/dist/handlers/handlers.base.d.ts.map +1 -0
  22. package/dist/handlers/handlers.base.js +337 -0
  23. package/dist/handlers/handlers.base.js.map +1 -0
  24. package/dist/handlers/handlers.lock.d.ts +8 -0
  25. package/dist/handlers/handlers.lock.d.ts.map +1 -0
  26. package/dist/handlers/handlers.lock.js +111 -0
  27. package/dist/handlers/handlers.lock.js.map +1 -0
  28. package/dist/handlers/handlers.memory.d.ts +11 -0
  29. package/dist/handlers/handlers.memory.d.ts.map +1 -0
  30. package/dist/handlers/handlers.memory.js +122 -0
  31. package/dist/handlers/handlers.memory.js.map +1 -0
  32. package/dist/handlers/handlers.monitoring.d.ts +8 -0
  33. package/dist/handlers/handlers.monitoring.d.ts.map +1 -0
  34. package/dist/handlers/handlers.monitoring.js +99 -0
  35. package/dist/handlers/handlers.monitoring.js.map +1 -0
  36. package/dist/handlers/handlers.orchestration.d.ts +9 -0
  37. package/dist/handlers/handlers.orchestration.d.ts.map +1 -0
  38. package/dist/handlers/handlers.orchestration.js +128 -0
  39. package/dist/handlers/handlers.orchestration.js.map +1 -0
  40. package/dist/handlers/handlers.session.d.ts +18 -0
  41. package/dist/handlers/handlers.session.d.ts.map +1 -0
  42. package/dist/handlers/handlers.session.js +286 -0
  43. package/dist/handlers/handlers.session.js.map +1 -0
  44. package/dist/handlers/handlers.task.d.ts +15 -0
  45. package/dist/handlers/handlers.task.d.ts.map +1 -0
  46. package/dist/handlers/handlers.task.js +753 -0
  47. package/dist/handlers/handlers.task.js.map +1 -0
  48. package/dist/handlers/handlers.utility.d.ts +10 -0
  49. package/dist/handlers/handlers.utility.d.ts.map +1 -0
  50. package/dist/handlers/handlers.utility.js +59 -0
  51. package/dist/handlers/handlers.utility.js.map +1 -0
  52. package/dist/handlers/index.d.ts +18 -0
  53. package/dist/handlers/index.d.ts.map +1 -0
  54. package/dist/handlers/index.js +209 -0
  55. package/dist/handlers/index.js.map +1 -0
  56. package/dist/handlers/lock-handlers.d.ts +8 -0
  57. package/dist/handlers/lock-handlers.d.ts.map +1 -0
  58. package/dist/handlers/lock-handlers.js +154 -0
  59. package/dist/handlers/lock-handlers.js.map +1 -0
  60. package/dist/handlers/memory-handlers.d.ts +8 -0
  61. package/dist/handlers/memory-handlers.d.ts.map +1 -0
  62. package/dist/handlers/memory-handlers.js +76 -0
  63. package/dist/handlers/memory-handlers.js.map +1 -0
  64. package/dist/handlers/orchestration-handlers.d.ts +8 -0
  65. package/dist/handlers/orchestration-handlers.d.ts.map +1 -0
  66. package/dist/handlers/orchestration-handlers.js +113 -0
  67. package/dist/handlers/orchestration-handlers.js.map +1 -0
  68. package/dist/handlers/session-handlers.d.ts +8 -0
  69. package/dist/handlers/session-handlers.d.ts.map +1 -0
  70. package/dist/handlers/session-handlers.js +558 -0
  71. package/dist/handlers/session-handlers.js.map +1 -0
  72. package/dist/handlers/task-handlers.d.ts +8 -0
  73. package/dist/handlers/task-handlers.d.ts.map +1 -0
  74. package/dist/handlers/task-handlers.js +677 -0
  75. package/dist/handlers/task-handlers.js.map +1 -0
  76. package/dist/handlers/tool-definitions.d.ts +2626 -0
  77. package/dist/handlers/tool-definitions.d.ts.map +1 -0
  78. package/dist/handlers/tool-definitions.js +641 -0
  79. package/dist/handlers/tool-definitions.js.map +1 -0
  80. package/dist/handlers/types.d.ts +90 -0
  81. package/dist/handlers/types.d.ts.map +1 -0
  82. package/dist/handlers/types.js +5 -0
  83. package/dist/handlers/types.js.map +1 -0
  84. package/dist/handlers/utility-handlers.d.ts +8 -0
  85. package/dist/handlers/utility-handlers.d.ts.map +1 -0
  86. package/dist/handlers/utility-handlers.js +113 -0
  87. package/dist/handlers/utility-handlers.js.map +1 -0
  88. package/dist/handlers/utils.d.ts +30 -0
  89. package/dist/handlers/utils.d.ts.map +1 -0
  90. package/dist/handlers/utils.js +95 -0
  91. package/dist/handlers/utils.js.map +1 -0
  92. package/dist/handlers.d.ts +17 -2260
  93. package/dist/handlers.d.ts.map +1 -1
  94. package/dist/handlers.js +17 -1836
  95. package/dist/handlers.js.map +1 -1
  96. package/dist/index.js +41 -7
  97. package/dist/index.js.map +1 -1
  98. package/dist/persistence.d.ts.map +1 -1
  99. package/dist/persistence.js +84 -47
  100. package/dist/persistence.js.map +1 -1
  101. package/dist/schemas.d.ts +299 -0
  102. package/dist/schemas.d.ts.map +1 -0
  103. package/dist/schemas.js +334 -0
  104. package/dist/schemas.js.map +1 -0
  105. package/package.json +8 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.lock.js","sourceRoot":"","sources":["../../src/handlers/handlers.lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * MCP Tool Handlers - Memory & Artifacts
3
+ * Handles: memory_store, memory_retrieve, artifact_save, artifact_get, artifact_list, context_optimize
4
+ */
5
+ export declare function handleMemoryStore(args: Record<string, unknown>): Promise<unknown>;
6
+ export declare function handleMemoryRetrieve(args: Record<string, unknown>): Promise<unknown>;
7
+ export declare function handleArtifactSave(args: Record<string, unknown>): Promise<unknown>;
8
+ export declare function handleArtifactGet(args: Record<string, unknown>): Promise<unknown>;
9
+ export declare function handleArtifactList(args: Record<string, unknown>): Promise<unknown>;
10
+ export declare function handleContextOptimize(args: Record<string, unknown>): Promise<unknown>;
11
+ //# sourceMappingURL=handlers.memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.memory.d.ts","sourceRoot":"","sources":["../../src/handlers/handlers.memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAIpF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BlF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAIvF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAuCxF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCrF"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * MCP Tool Handlers - Memory & Artifacts
3
+ * Handles: memory_store, memory_retrieve, artifact_save, artifact_get, artifact_list, context_optimize
4
+ */
5
+ import { ContextOptimizer } from '@anastops/core';
6
+ import { nanoid } from 'nanoid';
7
+ import { getPersistence } from '../persistence.js';
8
+ import { safePersist, memoryStore, artifacts, getArtifact } from './handlers.base.js';
9
+ const contextOptimizer = new ContextOptimizer();
10
+ export function handleMemoryStore(args) {
11
+ const key = args['session_id'] !== undefined
12
+ ? `${String(args['session_id'])}:${String(args['key'])}`
13
+ : String(args['key']);
14
+ memoryStore.set(key, { value: args['value'], stored_at: new Date() });
15
+ return Promise.resolve({ key, stored: true });
16
+ }
17
+ export function handleMemoryRetrieve(args) {
18
+ const data = memoryStore.get(args['key']);
19
+ if (data === undefined)
20
+ return Promise.reject(new Error('Key not found'));
21
+ return Promise.resolve({ key: args['key'], data });
22
+ }
23
+ export function handleArtifactSave(args) {
24
+ const artifactId = nanoid(21);
25
+ const now = new Date();
26
+ const content = args['content'];
27
+ const artifact = {
28
+ id: artifactId,
29
+ session_id: args['session_id'],
30
+ task_id: null,
31
+ type: args['type'] ?? 'other',
32
+ name: args['name'],
33
+ extension: '',
34
+ content,
35
+ content_hash: '',
36
+ size_bytes: content.length,
37
+ summary: content.slice(0, 200),
38
+ token_count: Math.ceil(content.length / 4),
39
+ relevance_score: 50,
40
+ metadata: {},
41
+ created_at: now,
42
+ updated_at: now,
43
+ };
44
+ artifacts.set(artifactId, artifact);
45
+ // Persist to MongoDB
46
+ safePersist(getPersistence().saveArtifact(artifact));
47
+ return Promise.resolve({
48
+ artifact_id: artifact.id,
49
+ name: artifact.name,
50
+ size_bytes: artifact.size_bytes,
51
+ });
52
+ }
53
+ export async function handleArtifactGet(args) {
54
+ const artifact = await getArtifact(args['artifact_id']);
55
+ if (artifact === null)
56
+ throw new Error('Artifact not found');
57
+ return artifact;
58
+ }
59
+ export async function handleArtifactList(args) {
60
+ const sessionId = args['session_id'];
61
+ const typeFilter = args['type'];
62
+ // Get from in-memory cache first
63
+ const inMemoryArtifacts = [];
64
+ for (const [, artifact] of artifacts.entries()) {
65
+ if (artifact.session_id === sessionId) {
66
+ if (typeFilter === undefined || artifact.type === typeFilter) {
67
+ inMemoryArtifacts.push(artifact);
68
+ }
69
+ }
70
+ }
71
+ // Also get from MongoDB for persistence
72
+ const persistedArtifacts = await getPersistence().listArtifacts({
73
+ session_id: sessionId,
74
+ ...(typeFilter !== undefined && { type: typeFilter }),
75
+ });
76
+ // Merge: in-memory takes precedence
77
+ const inMemoryIds = new Set(inMemoryArtifacts.map((a) => a.id));
78
+ const sessionArtifacts = [
79
+ ...inMemoryArtifacts,
80
+ ...persistedArtifacts.filter((a) => !inMemoryIds.has(a.id)),
81
+ ];
82
+ return {
83
+ session_id: sessionId,
84
+ count: sessionArtifacts.length,
85
+ ...(typeFilter !== undefined && { type_filter: typeFilter }),
86
+ artifacts: sessionArtifacts.map((a) => ({
87
+ id: a.id,
88
+ name: a.name,
89
+ type: a.type,
90
+ size_bytes: a.size_bytes,
91
+ created_at: a.created_at,
92
+ })),
93
+ };
94
+ }
95
+ export function handleContextOptimize(args) {
96
+ const sessionArtifacts = [];
97
+ for (const [, artifact] of artifacts.entries()) {
98
+ if (artifact.session_id === args['session_id']) {
99
+ sessionArtifacts.push(artifact);
100
+ }
101
+ }
102
+ const result = contextOptimizer.optimize({
103
+ session_id: args['session_id'],
104
+ objective: args['objective'],
105
+ phase: args['phase'],
106
+ progress: args['progress'],
107
+ current_task: null,
108
+ artifacts: sessionArtifacts,
109
+ messages: args['messages'],
110
+ decisions: [],
111
+ completed_tasks: [],
112
+ active_work: [],
113
+ blockers: [],
114
+ });
115
+ return Promise.resolve({
116
+ original_tokens: result.original_tokens,
117
+ optimized_tokens: result.optimized_tokens,
118
+ reduction_percent: result.reduction_percent,
119
+ minimal_context: result.context,
120
+ });
121
+ }
122
+ //# sourceMappingURL=handlers.memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.memory.js","sourceRoot":"","sources":["../../src/handlers/handlers.memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP Tool Handlers - Cost & Monitoring
3
+ * Handles: session_cost, session_metrics, session_throttle
4
+ */
5
+ export declare function handleSessionCost(args: Record<string, unknown>): Promise<unknown>;
6
+ export declare function handleSessionMetrics(args: Record<string, unknown>): Promise<unknown>;
7
+ export declare function handleSessionThrottle(args: Record<string, unknown>): Promise<unknown>;
8
+ //# sourceMappingURL=handlers.monitoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.monitoring.d.ts","sourceRoot":"","sources":["../../src/handlers/handlers.monitoring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBjF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BpF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAwDrF"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * MCP Tool Handlers - Cost & Monitoring
3
+ * Handles: session_cost, session_metrics, session_throttle
4
+ */
5
+ import { tasks, memoryStore } from './handlers.base.js';
6
+ export function handleSessionCost(args) {
7
+ const sessionId = args['session_id'];
8
+ // Aggregate cost from task token_usage
9
+ let totalCost = 0;
10
+ for (const [, task] of tasks.entries()) {
11
+ if (task.session_id === sessionId && task.token_usage !== undefined) {
12
+ totalCost += task.token_usage.cost ?? 0;
13
+ }
14
+ }
15
+ return Promise.resolve({
16
+ session_id: sessionId,
17
+ total_cost_usd: totalCost,
18
+ currency: 'USD',
19
+ });
20
+ }
21
+ export function handleSessionMetrics(args) {
22
+ const sessionId = args['session_id'];
23
+ // Aggregate metrics from tasks
24
+ let requestCount = 0;
25
+ let inputTokens = 0;
26
+ let outputTokens = 0;
27
+ let totalTokens = 0;
28
+ for (const [, task] of tasks.entries()) {
29
+ if (task.session_id === sessionId) {
30
+ requestCount++;
31
+ if (task.token_usage !== undefined) {
32
+ inputTokens += task.token_usage.prompt_tokens ?? 0;
33
+ outputTokens += task.token_usage.completion_tokens ?? 0;
34
+ totalTokens += task.token_usage.total_tokens ?? 0;
35
+ }
36
+ }
37
+ }
38
+ return Promise.resolve({
39
+ session_id: sessionId,
40
+ request_count: requestCount,
41
+ token_usage: {
42
+ input: inputTokens,
43
+ output: outputTokens,
44
+ total: totalTokens,
45
+ },
46
+ });
47
+ }
48
+ export function handleSessionThrottle(args) {
49
+ const sessionId = args['session_id'];
50
+ const provider = args['provider'] ?? 'claude';
51
+ // In-memory rate limit tracking (Redis-based in production)
52
+ const rateKey = `rate:${sessionId}:${provider}`;
53
+ const rateData = memoryStore.get(rateKey);
54
+ // Default limits per provider (requests per minute)
55
+ const defaultLimit = 30;
56
+ const limits = {
57
+ claude: 50,
58
+ openai: 60,
59
+ gemini: 60,
60
+ };
61
+ const limit = limits[provider] ?? defaultLimit;
62
+ if (rateData !== undefined) {
63
+ const data = rateData.value;
64
+ const windowSize = 60000; // 1 minute
65
+ const now = Date.now();
66
+ if (now - data.window_start > windowSize) {
67
+ // Window expired, reset
68
+ return Promise.resolve({
69
+ session_id: sessionId,
70
+ provider,
71
+ usage_percent: 0,
72
+ current_count: 0,
73
+ limit,
74
+ throttled: false,
75
+ blocked: false,
76
+ });
77
+ }
78
+ const usagePercent = (data.count / limit) * 100;
79
+ return Promise.resolve({
80
+ session_id: sessionId,
81
+ provider,
82
+ usage_percent: Math.min(100, usagePercent),
83
+ current_count: data.count,
84
+ limit,
85
+ throttled: usagePercent >= 85,
86
+ blocked: usagePercent >= 95,
87
+ });
88
+ }
89
+ return Promise.resolve({
90
+ session_id: sessionId,
91
+ provider,
92
+ usage_percent: 0,
93
+ current_count: 0,
94
+ limit,
95
+ throttled: false,
96
+ blocked: false,
97
+ });
98
+ }
99
+ //# sourceMappingURL=handlers.monitoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.monitoring.js","sourceRoot":"","sources":["../../src/handlers/handlers.monitoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * MCP Tool Handlers - Orchestration
3
+ * Handles: dispatch, route, broadcast, aggregate
4
+ */
5
+ export declare function handleDispatch(args: Record<string, unknown>): Promise<unknown>;
6
+ export declare function handleRoute(args: Record<string, unknown>): Promise<unknown>;
7
+ export declare function handleBroadcast(args: Record<string, unknown>): Promise<unknown>;
8
+ export declare function handleAggregate(args: Record<string, unknown>): Promise<unknown>;
9
+ //# sourceMappingURL=handlers.orchestration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.orchestration.d.ts","sourceRoot":"","sources":["../../src/handlers/handlers.orchestration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAmFpF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA6B3E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/E"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * MCP Tool Handlers - Orchestration
3
+ * Handles: dispatch, route, broadcast, aggregate
4
+ */
5
+ import { AdapterRegistry } from '@anastops/adapters';
6
+ import { IntelligentRouter, ProviderFailoverService, } from '@anastops/core';
7
+ import { nanoid } from 'nanoid';
8
+ import { tasks } from './handlers.base.js';
9
+ const registry = AdapterRegistry.getInstance();
10
+ const router = new IntelligentRouter();
11
+ const failoverService = new ProviderFailoverService(router);
12
+ export async function handleDispatch(args) {
13
+ const taskId = nanoid(21);
14
+ const task = {
15
+ id: taskId,
16
+ session_id: args['session_id'],
17
+ agent_id: null,
18
+ type: args['type'] ?? 'other',
19
+ status: 'pending',
20
+ description: args['prompt'].slice(0, 200),
21
+ input: { prompt: args['prompt'] },
22
+ output: null,
23
+ error: null,
24
+ complexity_score: 0,
25
+ routing_tier: 3,
26
+ provider: 'claude',
27
+ model: 'claude-sonnet',
28
+ token_usage: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0, cost: 0 },
29
+ created_at: new Date(),
30
+ started_at: null,
31
+ completed_at: null,
32
+ dependencies: [],
33
+ priority: 5,
34
+ retry_count: 0,
35
+ max_retries: 3,
36
+ failover_history: [],
37
+ failover_enabled: args['disable_failover'] !== true,
38
+ };
39
+ const routingOverride = {};
40
+ if (args['force_provider'] !== undefined) {
41
+ routingOverride.force_provider = args['force_provider'];
42
+ }
43
+ if (args['force_tier'] !== undefined) {
44
+ routingOverride.force_tier = args['force_tier'];
45
+ }
46
+ const routing = router.route(task, routingOverride);
47
+ // Update task with routing decision
48
+ task.routing_tier = routing.tier;
49
+ task.provider = routing.provider;
50
+ task.model = routing.model;
51
+ task.complexity_score = routing.complexity_score;
52
+ // Use workspace root for dispatch calls
53
+ const workingDir = process.env['ANASTOPS_WORKSPACE'] ?? process.cwd();
54
+ const executeRequest = {
55
+ prompt: args['prompt'],
56
+ model: routing.model,
57
+ working_dir: workingDir,
58
+ };
59
+ // Execute with failover support
60
+ const failoverResult = await failoverService.executeWithFailover(task, executeRequest, registry, { workingDir });
61
+ const response = failoverResult.response;
62
+ const dispatchResult = {
63
+ task_id: taskId,
64
+ routing: {
65
+ tier: failoverResult.successful_tier,
66
+ provider: failoverResult.successful_provider,
67
+ model: routing.model,
68
+ original_tier: routing.tier,
69
+ original_provider: routing.provider,
70
+ },
71
+ response: { content: response.content, usage: response.usage },
72
+ failover: failoverResult.failover_used
73
+ ? {
74
+ used: true,
75
+ attempts: failoverResult.failover_attempts,
76
+ history: failoverResult.attempt_history,
77
+ }
78
+ : undefined,
79
+ };
80
+ // TOON encoding applied in handleToolCall
81
+ return dispatchResult;
82
+ }
83
+ export function handleRoute(args) {
84
+ const task = {
85
+ id: 'route-check',
86
+ session_id: 'route-check',
87
+ agent_id: null,
88
+ type: args['type'] ?? 'other',
89
+ status: 'pending',
90
+ description: args['description'],
91
+ input: { prompt: args['description'] },
92
+ output: null,
93
+ error: null,
94
+ complexity_score: 0,
95
+ routing_tier: 3,
96
+ provider: 'claude',
97
+ model: 'claude-sonnet',
98
+ token_usage: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0, cost: 0 },
99
+ created_at: new Date(),
100
+ started_at: null,
101
+ completed_at: null,
102
+ dependencies: [],
103
+ priority: 5,
104
+ retry_count: 0,
105
+ max_retries: 3,
106
+ failover_history: [],
107
+ failover_enabled: true,
108
+ };
109
+ const routing = router.route(task, {});
110
+ return Promise.resolve(routing);
111
+ }
112
+ export function handleBroadcast(args) {
113
+ return Promise.resolve({
114
+ session_id: args['session_id'],
115
+ message: args['message'],
116
+ message_type: args['message_type'] ?? 'info',
117
+ broadcast_at: new Date(),
118
+ });
119
+ }
120
+ export function handleAggregate(args) {
121
+ const taskIds = args['task_ids'];
122
+ const taskResults = taskIds.map((id) => tasks.get(id)).filter((t) => t !== undefined);
123
+ return Promise.resolve({
124
+ task_count: taskResults.length,
125
+ strategy: args['strategy'] ?? 'concat',
126
+ });
127
+ }
128
+ //# sourceMappingURL=handlers.orchestration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.orchestration.js","sourceRoot":"","sources":["../../src/handlers/handlers.orchestration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * MCP Tool Handlers - Session Management
3
+ * Handles: session_spawn, session_status, session_list, session_fork, session_archive, session_report, session_purge
4
+ */
5
+ import { SessionManager, SessionForkService } from '@anastops/core';
6
+ declare const sessionManager: SessionManager;
7
+ declare const forkService: SessionForkService;
8
+ export declare function handleSessionSpawn(args: Record<string, unknown>): Promise<unknown>;
9
+ export declare function handleSessionStatus(args: Record<string, unknown>): Promise<unknown>;
10
+ export declare function handleSessionList(args: Record<string, unknown>): Promise<unknown>;
11
+ export declare function handleSessionFork(args: Record<string, unknown>): Promise<unknown>;
12
+ export declare function handleSessionArchive(args: Record<string, unknown>): Promise<unknown>;
13
+ export declare function handleSessionReport(args: Record<string, unknown>): Promise<unknown>;
14
+ export declare function handleSessionPurge(args: Record<string, unknown>): Promise<unknown>;
15
+ export declare function handleSessionQueueConfig(args: Record<string, unknown>): Promise<unknown>;
16
+ export declare function handleQueueStatus(args: Record<string, unknown>): Promise<unknown>;
17
+ export { sessionManager, forkService };
18
+ //# sourceMappingURL=handlers.session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.session.d.ts","sourceRoot":"","sources":["../../src/handlers/handlers.session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,cAAc,EACd,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AAOxB,QAAA,MAAM,cAAc,gBAAuB,CAAC;AAC5C,QAAA,MAAM,WAAW,oBAAyC,CAAC;AAE3D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBlF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAInF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkCvF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBjF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAKpF;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BzF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA4FxF;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAqCxF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAwDvF;AAED,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC"}