qlogicagent 0.5.2 → 0.6.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.
- package/README.md +403 -402
- package/dist/agent.js +18 -0
- package/dist/cli.js +384 -0
- package/dist/contracts.js +1 -0
- package/dist/index.js +383 -0
- package/dist/orchestration.js +34 -0
- package/dist/types/agent/agent.d.ts +43 -0
- package/dist/types/agent/constants.d.ts +47 -0
- package/dist/types/agent/tool-access.d.ts +30 -0
- package/dist/types/agent/tool-loop.d.ts +94 -0
- package/dist/types/agent/types.d.ts +238 -0
- package/dist/types/cli/main.d.ts +11 -0
- package/dist/types/cli/stdio-server.d.ts +78 -0
- package/dist/types/cli/tool-bootstrap.d.ts +40 -0
- package/dist/types/cli/transport.d.ts +40 -0
- package/dist/types/config/config.d.ts +17 -0
- package/dist/types/contracts/hooks.d.ts +175 -0
- package/dist/types/contracts/index.d.ts +9 -0
- package/dist/types/contracts/planner.d.ts +35 -0
- package/dist/types/contracts/todo.d.ts +23 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/llm/builtin-providers.d.ts +10 -0
- package/dist/types/llm/debug-transport.d.ts +12 -0
- package/dist/types/llm/index.d.ts +16 -0
- package/dist/types/llm/llm-client.d.ts +43 -0
- package/dist/types/llm/model-catalog.d.ts +53 -0
- package/dist/types/llm/provider-def.d.ts +59 -0
- package/dist/types/llm/provider-registry.d.ts +54 -0
- package/dist/types/llm/transport.d.ts +62 -0
- package/dist/types/llm/transports/anthropic-messages.d.ts +31 -0
- package/dist/types/llm/transports/openai-chat.d.ts +36 -0
- package/dist/types/orchestration/context/context-collapse.d.ts +58 -0
- package/dist/types/orchestration/context/context-compression.d.ts +301 -0
- package/dist/types/orchestration/context/reactive-compact.d.ts +73 -0
- package/dist/types/orchestration/context/turn-loop-guard.d.ts +86 -0
- package/dist/types/orchestration/error-handling/error-classification.d.ts +12 -0
- package/dist/types/orchestration/error-handling/failover-classification.d.ts +8 -0
- package/dist/types/orchestration/error-handling/failover-error.d.ts +33 -0
- package/dist/types/orchestration/error-handling/retry-loop.d.ts +69 -0
- package/dist/types/orchestration/index.d.ts +15 -0
- package/dist/types/orchestration/skill-improvement.d.ts +59 -0
- package/dist/types/orchestration/subagent/agent-registry.d.ts +46 -0
- package/dist/types/orchestration/subagent/fork-subagent.d.ts +98 -0
- package/dist/types/orchestration/subagent/task-types.d.ts +142 -0
- package/dist/types/orchestration/tool-loop/conversation-repair.d.ts +61 -0
- package/dist/types/orchestration/tool-loop/tool-choice-policy.d.ts +54 -0
- package/dist/types/orchestration/tool-loop/tool-loop-state.d.ts +50 -0
- package/dist/types/orchestration/tool-loop/tool-schema.d.ts +39 -0
- package/dist/types/runtime/execution/dream-agent.d.ts +199 -0
- package/dist/types/runtime/execution/forked-agent.d.ts +109 -0
- package/dist/types/runtime/execution/index.d.ts +6 -0
- package/dist/types/runtime/execution/progress-tracker.d.ts +78 -0
- package/dist/types/runtime/execution/remote-agent.d.ts +63 -0
- package/dist/types/runtime/execution/streaming-tool-executor.d.ts +100 -0
- package/dist/types/runtime/execution/tool-eligibility.d.ts +59 -0
- package/dist/types/runtime/execution/tool-result-storage.d.ts +87 -0
- package/dist/types/runtime/hooks/context-compression.d.ts +61 -0
- package/dist/types/runtime/hooks/hook-registry.d.ts +12 -0
- package/dist/types/runtime/hooks/index.d.ts +3 -0
- package/dist/types/runtime/hooks/memory-hooks.d.ts +49 -0
- package/dist/types/runtime/index.d.ts +5 -0
- package/dist/types/runtime/infra/agent-paths.d.ts +57 -0
- package/dist/types/runtime/infra/checkpoint-backend.d.ts +8 -0
- package/dist/types/runtime/infra/cleanup-registry.d.ts +23 -0
- package/dist/types/runtime/infra/disk-storage.d.ts +36 -0
- package/dist/types/runtime/infra/file-watcher.d.ts +72 -0
- package/dist/types/runtime/infra/index.d.ts +8 -0
- package/dist/types/runtime/infra/secure-storage.d.ts +81 -0
- package/dist/types/runtime/infra/task-runtime.d.ts +108 -0
- package/dist/types/runtime/infra/token-budget.d.ts +92 -0
- package/dist/types/runtime/infra/worktree-backend.d.ts +85 -0
- package/dist/types/runtime/prompt/environment-context.d.ts +23 -0
- package/dist/types/runtime/prompt/index.d.ts +3 -0
- package/dist/types/runtime/prompt/instruction-loader.d.ts +64 -0
- package/dist/types/runtime/prompt/system-prompt-sections.d.ts +63 -0
- package/dist/types/runtime/session/index.d.ts +2 -0
- package/dist/types/runtime/session/session-memory.d.ts +90 -0
- package/dist/types/runtime/session/session-persistence.d.ts +94 -0
- package/dist/types/runtime/session/session-state.d.ts +117 -0
- package/dist/types/skills/index.d.ts +119 -0
- package/dist/types/skills/mcp/index.d.ts +3 -0
- package/dist/types/skills/mcp/mcp-http-client.d.ts +66 -0
- package/dist/types/skills/mcp/mcp-manager.d.ts +83 -0
- package/dist/types/skills/mcp/mcp-stdio-client.d.ts +84 -0
- package/dist/types/skills/memory/memory-extractor.d.ts +64 -0
- package/dist/types/skills/memory/memory-store.d.ts +86 -0
- package/dist/types/skills/memory/memory-tool.d.ts +87 -0
- package/dist/types/skills/memory/qmemory-adapter.d.ts +42 -0
- package/dist/types/skills/permissions/bash-classifier.d.ts +30 -0
- package/dist/types/skills/permissions/classifier-cache.d.ts +51 -0
- package/dist/types/skills/permissions/denial-tracking.d.ts +42 -0
- package/dist/types/skills/permissions/hook-runner.d.ts +85 -0
- package/dist/types/skills/permissions/index.d.ts +12 -0
- package/dist/types/skills/permissions/permission-classifier.d.ts +41 -0
- package/dist/types/skills/permissions/rule-engine.d.ts +41 -0
- package/dist/types/skills/permissions/settings-watcher.d.ts +46 -0
- package/dist/types/skills/permissions/types.d.ts +113 -0
- package/dist/types/skills/plugins/index.d.ts +2 -0
- package/dist/types/skills/plugins/plugin-api.d.ts +38 -0
- package/dist/types/skills/plugins/plugin-loader.d.ts +42 -0
- package/dist/types/skills/plugins/plugin-marketplace.d.ts +61 -0
- package/dist/types/skills/portable-tool.d.ts +104 -0
- package/dist/types/skills/skill-system/skill-frontmatter.d.ts +19 -0
- package/dist/types/skills/skill-system/skill-guard.d.ts +23 -0
- package/dist/types/skills/skill-system/skill-loader.d.ts +16 -0
- package/dist/types/skills/skill-system/skill-source.d.ts +119 -0
- package/dist/types/skills/skill-system/skill-types.d.ts +199 -0
- package/dist/types/skills/think-tool.d.ts +16 -0
- package/dist/types/skills/todo-tool.d.ts +72 -0
- package/dist/types/skills/tools/agent-tool.d.ts +91 -0
- package/dist/types/skills/tools/apply-patch-tool.d.ts +29 -0
- package/dist/types/skills/tools/ask-user-tool.d.ts +80 -0
- package/dist/types/skills/tools/brief-tool.d.ts +74 -0
- package/dist/types/skills/tools/browser-tool.d.ts +114 -0
- package/dist/types/skills/tools/checkpoint-tool.d.ts +66 -0
- package/dist/types/skills/tools/config-tool.d.ts +63 -0
- package/dist/types/skills/tools/cron-tool.d.ts +116 -0
- package/dist/types/skills/tools/edit-tool.d.ts +43 -0
- package/dist/types/skills/tools/exec-tool.d.ts +97 -0
- package/dist/types/skills/tools/image-generate-tool.d.ts +62 -0
- package/dist/types/skills/tools/instructions-tool.d.ts +65 -0
- package/dist/types/skills/tools/lsp-tool.d.ts +153 -0
- package/dist/types/skills/tools/mcp-client-types.d.ts +269 -0
- package/dist/types/skills/tools/mcp-resource-tools.d.ts +14 -0
- package/dist/types/skills/tools/mcp-tool.d.ts +249 -0
- package/dist/types/skills/tools/monitor-tool.d.ts +113 -0
- package/dist/types/skills/tools/music-generate-tool.d.ts +55 -0
- package/dist/types/skills/tools/notebook-edit-tool.d.ts +15 -0
- package/dist/types/skills/tools/notify-tool.d.ts +53 -0
- package/dist/types/skills/tools/patch-tool.d.ts +45 -0
- package/dist/types/skills/tools/plan-mode-tool.d.ts +98 -0
- package/dist/types/skills/tools/read-tool.d.ts +51 -0
- package/dist/types/skills/tools/repl-tool.d.ts +70 -0
- package/dist/types/skills/tools/search-tool.d.ts +112 -0
- package/dist/types/skills/tools/send-message-tool.d.ts +51 -0
- package/dist/types/skills/tools/shell/bash-provider.d.ts +26 -0
- package/dist/types/skills/tools/shell/command-classification.d.ts +44 -0
- package/dist/types/skills/tools/shell/command-semantics.d.ts +14 -0
- package/dist/types/skills/tools/shell/destructive-command-warning.d.ts +10 -0
- package/dist/types/skills/tools/shell/exec-permissions.d.ts +52 -0
- package/dist/types/skills/tools/shell/index.d.ts +17 -0
- package/dist/types/skills/tools/shell/powershell-provider.d.ts +15 -0
- package/dist/types/skills/tools/shell/shell-command.d.ts +54 -0
- package/dist/types/skills/tools/shell/shell-exec.d.ts +33 -0
- package/dist/types/skills/tools/shell/shell-provider.d.ts +85 -0
- package/dist/types/skills/tools/shell/task-output.d.ts +45 -0
- package/dist/types/skills/tools/skill-invoke-tool.d.ts +46 -0
- package/dist/types/skills/tools/skill-list-tool.d.ts +33 -0
- package/dist/types/skills/tools/skill-manage-tool.d.ts +73 -0
- package/dist/types/skills/tools/skill-view-tool.d.ts +37 -0
- package/dist/types/skills/tools/sleep-tool.d.ts +49 -0
- package/dist/types/skills/tools/structured-output-tool.d.ts +116 -0
- package/dist/types/skills/tools/task-tool.d.ts +104 -0
- package/dist/types/skills/tools/team-tool.d.ts +89 -0
- package/dist/types/skills/tools/tool-search-tool.d.ts +51 -0
- package/dist/types/skills/tools/tts-tool.d.ts +38 -0
- package/dist/types/skills/tools/video-edit-tool.d.ts +69 -0
- package/dist/types/skills/tools/video-generate-tool.d.ts +62 -0
- package/dist/types/skills/tools/video-merge-tool.d.ts +105 -0
- package/dist/types/skills/tools/video-upscale-tool.d.ts +45 -0
- package/dist/types/skills/tools/web-fetch-tool.d.ts +78 -0
- package/dist/types/skills/tools/web-search-tool.d.ts +57 -0
- package/dist/types/skills/tools/workflow-tool.d.ts +44 -0
- package/dist/types/skills/tools/worktree-tool.d.ts +69 -0
- package/dist/types/skills/tools/write-tool.d.ts +45 -0
- package/dist/types/skills/tools.d.ts +65 -0
- package/package.json +4 -3
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Persistence — CC sessionRestore.ts + conversationRecovery.ts parity.
|
|
3
|
+
*
|
|
4
|
+
* Enables conversation resume by persisting:
|
|
5
|
+
* 1. Message transcript (JSONL-based, append-only)
|
|
6
|
+
* 2. Cost snapshot (atomic JSON)
|
|
7
|
+
* 3. Session metadata (model, cwd, agent mode)
|
|
8
|
+
*
|
|
9
|
+
* Storage layout:
|
|
10
|
+
* ~/.qlogicagent/sessions/<session-id>/
|
|
11
|
+
* transcript.jsonl — append-only message log
|
|
12
|
+
* state.json — cost snapshot + metadata
|
|
13
|
+
*
|
|
14
|
+
* Resume flow (CC processResumedConversation parity):
|
|
15
|
+
* 1. loadSessionForResume(sessionId) → messages + cost
|
|
16
|
+
* 2. Restore cost state into SessionState
|
|
17
|
+
* 3. Feed messages as initial context to agent
|
|
18
|
+
*
|
|
19
|
+
* Reference: claude-code src/utils/sessionRestore.ts
|
|
20
|
+
* claude-code src/utils/conversationRecovery.ts
|
|
21
|
+
*/
|
|
22
|
+
import type { ChatMessage } from "../../agent/types.js";
|
|
23
|
+
import type { SessionCostSnapshot } from "./session-state.js";
|
|
24
|
+
export interface SessionMetadata {
|
|
25
|
+
sessionId: string;
|
|
26
|
+
createdAt: number;
|
|
27
|
+
lastActiveAt: number;
|
|
28
|
+
model?: string;
|
|
29
|
+
cwd?: string;
|
|
30
|
+
turnCount: number;
|
|
31
|
+
messageCount: number;
|
|
32
|
+
/** Title / description (auto-generated or user-set) */
|
|
33
|
+
title?: string;
|
|
34
|
+
/** Task summary generated by LLM (CC maybeGenerateTaskSummary parity) */
|
|
35
|
+
taskSummary?: string;
|
|
36
|
+
/** Timestamp of last task summary generation */
|
|
37
|
+
taskSummaryGeneratedAt?: number;
|
|
38
|
+
}
|
|
39
|
+
export interface PersistedSession {
|
|
40
|
+
metadata: SessionMetadata;
|
|
41
|
+
messages: ChatMessage[];
|
|
42
|
+
costSnapshot?: SessionCostSnapshot;
|
|
43
|
+
}
|
|
44
|
+
export interface SessionListEntry {
|
|
45
|
+
sessionId: string;
|
|
46
|
+
title?: string;
|
|
47
|
+
lastActiveAt: number;
|
|
48
|
+
messageCount: number;
|
|
49
|
+
model?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Append a message to the session transcript.
|
|
53
|
+
* Creates the session directory if it doesn't exist.
|
|
54
|
+
*/
|
|
55
|
+
export declare function appendMessage(sessionId: string, message: ChatMessage): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Save session state (cost + metadata) atomically.
|
|
58
|
+
*/
|
|
59
|
+
export declare function saveSessionState(sessionId: string, costSnapshot: SessionCostSnapshot, metadata: Partial<SessionMetadata>): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Load a persisted session for resume — CC loadConversationForResume parity.
|
|
62
|
+
*
|
|
63
|
+
* Returns null if the session doesn't exist or is corrupted.
|
|
64
|
+
*/
|
|
65
|
+
export declare function loadSessionForResume(sessionId: string): Promise<PersistedSession | null>;
|
|
66
|
+
/**
|
|
67
|
+
* List available sessions for resume — CC ResumeConversation picker.
|
|
68
|
+
* Returns most-recent-first, up to `limit` entries.
|
|
69
|
+
*/
|
|
70
|
+
export declare function listSessions(limit?: number): Promise<SessionListEntry[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Delete a session (cleanup).
|
|
73
|
+
*/
|
|
74
|
+
export declare function deleteSession(sessionId: string): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Prune old sessions beyond MAX_SESSIONS limit.
|
|
77
|
+
* Deletes oldest sessions first.
|
|
78
|
+
*/
|
|
79
|
+
export declare function pruneOldSessions(): Promise<number>;
|
|
80
|
+
export interface TaskSummaryDeps {
|
|
81
|
+
transport: import("../../llm/transport.js").LLMTransport;
|
|
82
|
+
apiKey: string;
|
|
83
|
+
model: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check if a task summary should be generated for this session.
|
|
87
|
+
* Triggers after TASK_SUMMARY_TURN_THRESHOLD turns, then every REGEN_INTERVAL turns.
|
|
88
|
+
*/
|
|
89
|
+
export declare function shouldGenerateTaskSummary(metadata: SessionMetadata): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Generate and persist a task summary for a long session.
|
|
92
|
+
* Fire-and-forget — errors are swallowed.
|
|
93
|
+
*/
|
|
94
|
+
export declare function maybeGenerateTaskSummary(sessionId: string, metadata: SessionMetadata, recentMessages: ChatMessage[], deps: TaskSummaryDeps): Promise<string | null>;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session State — CC session state parity.
|
|
3
|
+
*
|
|
4
|
+
* Unified state container for a single agent session:
|
|
5
|
+
* - Token usage / cost accumulation across turns
|
|
6
|
+
* - Session trust acceptance (per-session, non-persistent)
|
|
7
|
+
* - Background memory extraction trigger thresholds
|
|
8
|
+
* - Session-level settings
|
|
9
|
+
*
|
|
10
|
+
* This module is the qlogicagent equivalent of CC's:
|
|
11
|
+
* - bootstrap/state.ts (session state fields)
|
|
12
|
+
* - cost-tracker.ts (cost accumulation + persistence)
|
|
13
|
+
* - sessionRestore.ts (cost restore guard)
|
|
14
|
+
*
|
|
15
|
+
* Reference: claude-code src/bootstrap/state.ts, src/cost-tracker.ts
|
|
16
|
+
*/
|
|
17
|
+
import type { TokenUsage } from "../../agent/types.js";
|
|
18
|
+
/** Per-model usage accumulation — CC modelUsage parity */
|
|
19
|
+
export interface ModelUsage {
|
|
20
|
+
inputTokens: number;
|
|
21
|
+
outputTokens: number;
|
|
22
|
+
cacheRead: number;
|
|
23
|
+
cacheCreation: number;
|
|
24
|
+
costUSD: number;
|
|
25
|
+
}
|
|
26
|
+
/** Snapshot of the session state for persistence / restore */
|
|
27
|
+
export interface SessionCostSnapshot {
|
|
28
|
+
sessionId: string;
|
|
29
|
+
totalCostUSD: number;
|
|
30
|
+
modelUsage: Record<string, ModelUsage>;
|
|
31
|
+
totalInputTokens: number;
|
|
32
|
+
totalOutputTokens: number;
|
|
33
|
+
turnCount: number;
|
|
34
|
+
lastSavedAt: number;
|
|
35
|
+
}
|
|
36
|
+
/** Thresholds for background memory extraction — CC sessionMemory.ts parity */
|
|
37
|
+
export interface MemoryExtractionThresholds {
|
|
38
|
+
/** Token threshold before FIRST extraction (default 10000) */
|
|
39
|
+
initialTokenThreshold: number;
|
|
40
|
+
/** Token threshold between UPDATES (default 5000) */
|
|
41
|
+
updateTokenThreshold: number;
|
|
42
|
+
/** Tool call threshold (default 3) */
|
|
43
|
+
toolCallThreshold: number;
|
|
44
|
+
}
|
|
45
|
+
export declare class SessionState {
|
|
46
|
+
readonly sessionId: string;
|
|
47
|
+
private _trustAccepted;
|
|
48
|
+
private _totalCostUSD;
|
|
49
|
+
private _modelUsage;
|
|
50
|
+
private _totalInputTokens;
|
|
51
|
+
private _totalOutputTokens;
|
|
52
|
+
private _turnCount;
|
|
53
|
+
private _toolCallCount;
|
|
54
|
+
private _tokensSinceLastExtraction;
|
|
55
|
+
private _toolCallsSinceLastExtraction;
|
|
56
|
+
private _hasExtractedOnce;
|
|
57
|
+
private _listeners;
|
|
58
|
+
/** Memory extraction thresholds — CC sessionMemory defaults */
|
|
59
|
+
readonly extractionThresholds: MemoryExtractionThresholds;
|
|
60
|
+
constructor(sessionId: string, thresholds?: Partial<MemoryExtractionThresholds>);
|
|
61
|
+
get trustAccepted(): boolean;
|
|
62
|
+
setTrustAccepted(accepted: boolean): void;
|
|
63
|
+
get totalCostUSD(): number;
|
|
64
|
+
get totalInputTokens(): number;
|
|
65
|
+
get totalOutputTokens(): number;
|
|
66
|
+
get turnCount(): number;
|
|
67
|
+
get toolCallCount(): number;
|
|
68
|
+
/** Get usage for a specific model */
|
|
69
|
+
getModelUsage(model: string): ModelUsage | undefined;
|
|
70
|
+
/** Get all model usages as a plain object */
|
|
71
|
+
getAllModelUsage(): Record<string, ModelUsage>;
|
|
72
|
+
/**
|
|
73
|
+
* Add usage from an API response — CC addToTotalSessionCost() parity.
|
|
74
|
+
*
|
|
75
|
+
* @param usage - Token counts from the API response
|
|
76
|
+
* @param model - Model identifier
|
|
77
|
+
* @param costUSD - Calculated cost (caller computes based on pricing)
|
|
78
|
+
*/
|
|
79
|
+
addUsage(usage: TokenUsage, model: string, costUSD?: number): void;
|
|
80
|
+
/** Record a tool call (for extraction threshold tracking) */
|
|
81
|
+
recordToolCall(): void;
|
|
82
|
+
/** Increment turn count */
|
|
83
|
+
recordTurnCompleted(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Check whether background memory extraction should trigger.
|
|
86
|
+
* CC sessionMemory.ts shouldExtract() parity.
|
|
87
|
+
*
|
|
88
|
+
* Logic:
|
|
89
|
+
* - Token threshold is ALWAYS required
|
|
90
|
+
* - Tool call threshold is an additional gate
|
|
91
|
+
* - Token threshold: initialTokenThreshold before first extraction,
|
|
92
|
+
* updateTokenThreshold after
|
|
93
|
+
*/
|
|
94
|
+
shouldExtractMemory(): boolean;
|
|
95
|
+
/** Mark that extraction was performed — reset counters */
|
|
96
|
+
markExtractionDone(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Create a snapshot for persistence.
|
|
99
|
+
* CC saveCurrentSessionCosts() parity.
|
|
100
|
+
*/
|
|
101
|
+
createSnapshot(): SessionCostSnapshot;
|
|
102
|
+
/**
|
|
103
|
+
* Restore from a previous snapshot.
|
|
104
|
+
* CC setCostStateForRestore() parity.
|
|
105
|
+
*
|
|
106
|
+
* GUARD: Only restores if the snapshot's sessionId matches this session.
|
|
107
|
+
* Prevents cross-session cost leakage (CC's lastSessionId guard).
|
|
108
|
+
*/
|
|
109
|
+
restoreFromSnapshot(snapshot: SessionCostSnapshot): boolean;
|
|
110
|
+
/** Register a state change listener. Returns unsubscribe function. */
|
|
111
|
+
onStateChange(listener: () => void): () => void;
|
|
112
|
+
private notifyListeners;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create a new session state instance.
|
|
116
|
+
*/
|
|
117
|
+
export declare function createSessionState(sessionId: string, thresholds?: Partial<MemoryExtractionThresholds>): SessionState;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
export type { PortableTool, PortableToolResult, ToolContentBlock, } from "./portable-tool.js";
|
|
2
|
+
export { setToolPool, addTool, addTools, removeTool, findTool, hasTool, getToolNames, getToolCount, executeTool, getToolManifest, getTools, AGENT_DISALLOWED_TOOLS, CUSTOM_AGENT_DISALLOWED_TOOLS, filterToolsForAgent, } from "./tools.js";
|
|
3
|
+
export { MEMORY_TOOL_NAME, MEMORY_TOOL_MAX_CONTENT_LENGTH, MEMORY_TOOL_ACTIONS, MEMORY_TOOL_SCHEMA, MEMORY_TOOL_DESCRIPTION, MEMORY_TOOL_LABEL, isMemoryContentSafe, executeMemoryTool, } from "./memory/memory-tool.js";
|
|
4
|
+
export type { MemoryToolAction, MemoryToolParams, MemoryToolResult, MemoryToolExecutorDeps, MediaPreferencesSummary, } from "./memory/memory-tool.js";
|
|
5
|
+
export { MemoryStore, MEMORY_ENTRY_DELIMITER, DEFAULT_MEMORY_CHAR_LIMIT, DEFAULT_USER_CHAR_LIMIT, } from "./memory/memory-store.js";
|
|
6
|
+
export type { MemoryStoreTarget, MemoryStoreResult, MemoryStoreOptions, MemoryStoreSerialized, } from "./memory/memory-store.js";
|
|
7
|
+
export { createQMemoryAdapter } from "./memory/qmemory-adapter.js";
|
|
8
|
+
export type { QMemoryAdapterConfig, QMemoryHealthStatus, ExtractedMemoryItem } from "./memory/qmemory-adapter.js";
|
|
9
|
+
export { createMemoryExtractor } from "./memory/memory-extractor.js";
|
|
10
|
+
export type { ExtractedMemory, ProfileUpdate, ExtractionResult, ExtractionCompleteFn, MemoryExtractorOptions, } from "./memory/memory-extractor.js";
|
|
11
|
+
export { THINK_TOOL_NAME, THINK_TOOL_SCHEMA, createThinkTool } from "./think-tool.js";
|
|
12
|
+
export type { ThinkToolParams } from "./think-tool.js";
|
|
13
|
+
export { TODO_TOOL_NAME, TODO_TOOL_SCHEMA, TODO_ACTIONS, createTodoTool } from "./todo-tool.js";
|
|
14
|
+
export type { TodoToolParams, TodoToolOptions, TodoAction } from "./todo-tool.js";
|
|
15
|
+
export { READ_TOOL_NAME, READ_TOOL_SCHEMA, createReadTool } from "./tools/read-tool.js";
|
|
16
|
+
export type { ReadToolParams, ReadToolDeps, ReadResultType } from "./tools/read-tool.js";
|
|
17
|
+
export { WRITE_TOOL_NAME, WRITE_TOOL_SCHEMA, createWriteTool } from "./tools/write-tool.js";
|
|
18
|
+
export type { WriteToolParams, WriteToolDeps } from "./tools/write-tool.js";
|
|
19
|
+
export { EDIT_TOOL_NAME, EDIT_TOOL_SCHEMA, createEditTool } from "./tools/edit-tool.js";
|
|
20
|
+
export type { EditToolParams, EditToolDeps } from "./tools/edit-tool.js";
|
|
21
|
+
export { APPLY_PATCH_TOOL_NAME, APPLY_PATCH_TOOL_SCHEMA, createApplyPatchTool } from "./tools/apply-patch-tool.js";
|
|
22
|
+
export type { ApplyPatchToolParams, ApplyPatchToolDeps, ApplyPatchSummary } from "./tools/apply-patch-tool.js";
|
|
23
|
+
export { EXEC_TOOL_NAME, EXEC_TOOL_SCHEMA, createExecTool, ASSISTANT_BLOCKING_BUDGET_MS } from "./tools/exec-tool.js";
|
|
24
|
+
export type { ExecToolParams, ExecToolHost, ExecProgress, ExecToolOutput } from "./tools/exec-tool.js";
|
|
25
|
+
export { isPowerShellToolEnabled, getDefaultShellType, generateCommandId, createBashProvider, createPowerShellProvider, encodePowerShellCommand, classifyCommand, commandHasAnyCd, SEARCH_COMMANDS, READ_COMMANDS, LIST_COMMANDS, SILENT_COMMANDS, SAFE_ENV_VARS, BARE_SHELL_PREFIXES, stripSafeWrappers, stripAllLeadingEnvVars, getSimpleCommandPrefix, getFirstWordPrefix, stripWrappersFromArgv, detectBlockedSleepPattern, TaskOutput, generateTaskId, getTaskOutputDir, setTaskOutputDir, getTaskOutputPath, MAX_TASK_OUTPUT_BYTES, wrapSpawn, createAbortedCommand, createFailedCommand, exec, getCwd, setCwd, initCwd, getOriginalCwd, setShellProvider, getShellProvider, } from "./tools/shell/index.js";
|
|
26
|
+
export type { ShellType, ShellProvider, BuildCommandOpts, BuiltCommand, BashProviderOptions, CommandClassification, ProgressCallback, ExecResult, ShellCommand, ExecOptions, } from "./tools/shell/index.js";
|
|
27
|
+
export { SEARCH_TOOL_NAME, SEARCH_TOOL_SCHEMA, createSearchTool } from "./tools/search-tool.js";
|
|
28
|
+
export type { SearchToolParams, SearchToolDeps, SearchMode, SearchOutput, SearchFileResult, SearchContentResult, } from "./tools/search-tool.js";
|
|
29
|
+
export { IMAGE_GENERATE_TOOL_NAME, IMAGE_GENERATE_TOOL_SCHEMA, createImageGenerateTool } from "./tools/image-generate-tool.js";
|
|
30
|
+
export type { ImageGenerateToolParams, ImageGenerateToolDeps, ImageGenerateResult } from "./tools/image-generate-tool.js";
|
|
31
|
+
export { VIDEO_GENERATE_TOOL_NAME, VIDEO_GENERATE_TOOL_SCHEMA, createVideoGenerateTool } from "./tools/video-generate-tool.js";
|
|
32
|
+
export type { VideoGenerateToolParams, VideoGenerateToolDeps, VideoGenerateResult } from "./tools/video-generate-tool.js";
|
|
33
|
+
export { VIDEO_MERGE_TOOL_NAME, VIDEO_MERGE_TOOL_SCHEMA, createVideoMergeTool } from "./tools/video-merge-tool.js";
|
|
34
|
+
export type { VideoMergeToolParams, VideoMergeToolDeps, VideoMergeClip, VideoMergeResult } from "./tools/video-merge-tool.js";
|
|
35
|
+
export { VIDEO_UPSCALE_TOOL_NAME, VIDEO_UPSCALE_TOOL_SCHEMA, createVideoUpscaleTool } from "./tools/video-upscale-tool.js";
|
|
36
|
+
export type { VideoUpscaleToolParams, VideoUpscaleToolDeps, VideoUpscaleResult } from "./tools/video-upscale-tool.js";
|
|
37
|
+
export { VIDEO_EDIT_TOOL_NAME, VIDEO_EDIT_TOOL_SCHEMA, createVideoEditTool } from "./tools/video-edit-tool.js";
|
|
38
|
+
export type { VideoEditToolParams, VideoEditToolDeps, VideoEditResult } from "./tools/video-edit-tool.js";
|
|
39
|
+
export { MUSIC_GENERATE_TOOL_NAME, MUSIC_GENERATE_TOOL_SCHEMA, createMusicGenerateTool } from "./tools/music-generate-tool.js";
|
|
40
|
+
export type { MusicGenerateToolParams, MusicGenerateToolDeps, MusicGenerateResult } from "./tools/music-generate-tool.js";
|
|
41
|
+
export { TTS_TOOL_NAME, TTS_TOOL_SCHEMA, createTtsTool } from "./tools/tts-tool.js";
|
|
42
|
+
export type { TtsToolParams, TtsToolDeps, TtsResult } from "./tools/tts-tool.js";
|
|
43
|
+
export { WEB_FETCH_TOOL_NAME, WEB_FETCH_TOOL_SCHEMA, createWebFetchTool } from "./tools/web-fetch-tool.js";
|
|
44
|
+
export type { WebFetchToolParams, WebFetchToolDeps, WebFetchResult } from "./tools/web-fetch-tool.js";
|
|
45
|
+
export { WEB_SEARCH_TOOL_NAME, WEB_SEARCH_TOOL_SCHEMA, createWebSearchTool } from "./tools/web-search-tool.js";
|
|
46
|
+
export type { WebSearchToolParams, WebSearchToolDeps, WebSearchResult, WebSearchOutput } from "./tools/web-search-tool.js";
|
|
47
|
+
export { ASK_USER_TOOL_NAME, ASK_USER_TOOL_SCHEMA, createAskUserTool } from "./tools/ask-user-tool.js";
|
|
48
|
+
export type { AskUserToolParams, AskUserToolDeps, AskUserQuestion, AskUserOption, AskUserAnswer } from "./tools/ask-user-tool.js";
|
|
49
|
+
export { BRIEF_TOOL_NAME, BRIEF_TOOL_SCHEMA, createBriefTool } from "./tools/brief-tool.js";
|
|
50
|
+
export type { BriefToolParams, BriefToolDeps, BriefMessageStatus, BriefAttachment, BriefDeliveryResult, BriefModeConfig, } from "./tools/brief-tool.js";
|
|
51
|
+
export { TOOL_SEARCH_TOOL_NAME, TOOL_SEARCH_TOOL_SCHEMA, createToolSearchTool } from "./tools/tool-search-tool.js";
|
|
52
|
+
export type { ToolSearchToolParams, ToolSearchToolDeps, DeferredToolInfo, ToolSearchOutput } from "./tools/tool-search-tool.js";
|
|
53
|
+
export { SKILL_LIST_TOOL_NAME, SKILL_LIST_TOOL_SCHEMA, createSkillListTool } from "./tools/skill-list-tool.js";
|
|
54
|
+
export type { SkillListToolParams, SkillListToolDeps, SkillListItem, SkillListOutput } from "./tools/skill-list-tool.js";
|
|
55
|
+
export { SKILL_VIEW_TOOL_NAME, SKILL_VIEW_TOOL_SCHEMA, createSkillViewTool } from "./tools/skill-view-tool.js";
|
|
56
|
+
export type { SkillViewToolParams, SkillViewToolDeps, SkillViewOutput } from "./tools/skill-view-tool.js";
|
|
57
|
+
export { SKILL_MANAGE_TOOL_NAME, SKILL_MANAGE_TOOL_SCHEMA, createSkillManageTool } from "./tools/skill-manage-tool.js";
|
|
58
|
+
export type { SkillManageToolParams, SkillManageToolDeps, SkillManageResult, SkillManageAction } from "./tools/skill-manage-tool.js";
|
|
59
|
+
export { PATCH_TOOL_NAME, PATCH_TOOL_SCHEMA, createPatchTool, fuzzyFind } from "./tools/patch-tool.js";
|
|
60
|
+
export type { PatchToolParams, PatchToolDeps, PatchResult, MatchStrategy, MatchResult } from "./tools/patch-tool.js";
|
|
61
|
+
export { AGENT_TOOL_NAME, AGENT_TOOL_SCHEMA, createAgentTool } from "./tools/agent-tool.js";
|
|
62
|
+
export type { AgentToolParams, AgentToolDeps, AgentResult } from "./tools/agent-tool.js";
|
|
63
|
+
export { TASK_TOOL_NAME, TASK_TOOL_SCHEMA, createTaskTool } from "./tools/task-tool.js";
|
|
64
|
+
export type { TaskToolParams, TaskToolDeps, TaskInfo, TaskResult, TaskAction, TaskStatus } from "./tools/task-tool.js";
|
|
65
|
+
export { REPL_TOOL_NAME, REPL_TOOL_SCHEMA, REPL_HIDES_TOOLS, createReplTool } from "./tools/repl-tool.js";
|
|
66
|
+
export type { ReplToolParams, ReplToolDeps, ReplPrimitives, ReplExecResult } from "./tools/repl-tool.js";
|
|
67
|
+
export { BROWSER_TOOL_NAME, BROWSER_TOOL_SCHEMA, createBrowserTool } from "./tools/browser-tool.js";
|
|
68
|
+
export type { BrowserToolParams, BrowserToolDeps, BrowserAction, BrowserSnapshot, BrowserScreenshot } from "./tools/browser-tool.js";
|
|
69
|
+
export { CRON_TOOL_NAME, CRON_TOOL_SCHEMA, MAX_CRON_JOBS, createCronTool } from "./tools/cron-tool.js";
|
|
70
|
+
export type { CronToolParams, CronToolDeps, CronJob, CronResult, CronAction } from "./tools/cron-tool.js";
|
|
71
|
+
export { CHECKPOINT_TOOL_NAME, CHECKPOINT_TOOL_SCHEMA, createCheckpointTool } from "./tools/checkpoint-tool.js";
|
|
72
|
+
export type { CheckpointToolParams, CheckpointToolDeps, Checkpoint, CheckpointResult, CheckpointAction } from "./tools/checkpoint-tool.js";
|
|
73
|
+
export { NOTIFY_TOOL_NAME, NOTIFY_TOOL_SCHEMA, createNotifyTool } from "./tools/notify-tool.js";
|
|
74
|
+
export type { NotifyToolParams, NotifyToolDeps, NotifyResult } from "./tools/notify-tool.js";
|
|
75
|
+
export { SEND_MESSAGE_TOOL_NAME, SEND_MESSAGE_TOOL_SCHEMA, createSendMessageTool } from "./tools/send-message-tool.js";
|
|
76
|
+
export type { SendMessageToolParams, SendMessageToolDeps, SendMessageResult } from "./tools/send-message-tool.js";
|
|
77
|
+
export { TEAM_TOOL_NAME, TEAM_TOOL_SCHEMA, createTeamTool } from "./tools/team-tool.js";
|
|
78
|
+
export type { TeamToolParams, TeamToolDeps, TeamMember, Team, TeamResult, TeamAction } from "./tools/team-tool.js";
|
|
79
|
+
export { LSP_TOOL_NAME, LSP_TOOL_SCHEMA, createLspTool } from "./tools/lsp-tool.js";
|
|
80
|
+
export type { LspToolParams, LspToolDeps, LspOperation, LspLocation, LspSymbol, LspDiagnostic, LspHoverInfo, LspCompletion, LspRenameEdit, LspCodeAction, LspResult } from "./tools/lsp-tool.js";
|
|
81
|
+
export { PLAN_MODE_TOOL_NAME, PLAN_MODE_TOOL_SCHEMA, PLAN_MODE_ALLOWED_TOOLS, createPlanModeTool } from "./tools/plan-mode-tool.js";
|
|
82
|
+
export type { PlanModeToolParams, PlanModeToolDeps, PlanModeAction, PlanModeState, PlanModeResult } from "./tools/plan-mode-tool.js";
|
|
83
|
+
export { WORKTREE_TOOL_NAME, WORKTREE_TOOL_SCHEMA, createWorktreeTool } from "./tools/worktree-tool.js";
|
|
84
|
+
export type { WorktreeToolParams, WorktreeToolDeps, WorktreeAction, WorktreeInfo, WorktreeResult } from "./tools/worktree-tool.js";
|
|
85
|
+
export { MCP_TOOL_NAME, MCP_TOOL_SCHEMA, createMcpTool, createMcpAuthProxy } from "./tools/mcp-tool.js";
|
|
86
|
+
export { normalizeNameForMcp, buildMcpToolName, getMcpServerPrefix, parseMcpToolName, isMcpToolName, MCP_CONNECTION_TIMEOUT_MS, MCP_REQUEST_TIMEOUT_MS, MCP_TOOL_CALL_TIMEOUT_MS, MCP_MAX_RECONNECT_ATTEMPTS, MCP_MAX_DESCRIPTION_LENGTH, } from "./tools/mcp-tool.js";
|
|
87
|
+
export type { McpToolParams, McpToolDeps, McpAction, McpManageAction, McpServer, McpToolInfo, McpResource, McpResourceContent, McpCallResult, McpAuthResult, McpPromptResult, McpManageResult, McpAuthProxyDeps, McpServerConfig, McpStdioConfig, McpSseConfig, McpHttpConfig, McpWsConfig, McpInProcessConfig, McpServerState, McpConnectionStatus, McpServerCapabilities, McpExternalTool, McpToolAnnotations, McpToolIdentifier, McpToolsChangedEvent, McpResourceDefinition, McpResourceTemplate, McpPersistedResourceContent, McpPromptDefinition, McpPromptMessage, McpPromptArgument, McpPromptContent, McpElicitResult, McpElicitRequest, McpOAuthConfig, McpOAuthTokens, McpAuthState, McpLogEntry, McpLogLevel, McpTransportType, } from "./tools/mcp-tool.js";
|
|
88
|
+
export type { McpResourceContentItem, } from "./tools/mcp-client-types.js";
|
|
89
|
+
export { CONFIG_TOOL_NAME, CONFIG_TOOL_SCHEMA, CONFIG_READONLY_KEYS, createConfigTool } from "./tools/config-tool.js";
|
|
90
|
+
export type { ConfigToolParams, ConfigToolDeps, ConfigAction, ConfigSetting, ConfigResult } from "./tools/config-tool.js";
|
|
91
|
+
export { SLEEP_TOOL_NAME, SLEEP_TOOL_SCHEMA, createSleepTool } from "./tools/sleep-tool.js";
|
|
92
|
+
export type { SleepToolParams, SleepToolDeps, SleepResult } from "./tools/sleep-tool.js";
|
|
93
|
+
export { MONITOR_TOOL_NAME, MONITOR_TOOL_SCHEMA, createMonitorTool } from "./tools/monitor-tool.js";
|
|
94
|
+
export type { MonitorToolParams, MonitorToolDeps, MonitorSource, MonitorAction, MonitorCondition, MonitorInfo, MonitorResult, } from "./tools/monitor-tool.js";
|
|
95
|
+
export { STRUCTURED_OUTPUT_TOOL_NAME, STRUCTURED_OUTPUT_TOOL_SCHEMA, STRUCTURED_OUTPUT_MAX_CHARS, createStructuredOutputTool, createConfiguredStructuredOutputTool, isStructuredOutputEnabled, } from "./tools/structured-output-tool.js";
|
|
96
|
+
export type { StructuredOutputToolParams, StructuredOutputToolDeps, StructuredOutputResult, SchemaValidationError, ConfiguredToolResult, SchemaCompiler, } from "./tools/structured-output-tool.js";
|
|
97
|
+
export { INSTRUCTIONS_TOOL_NAME, INSTRUCTIONS_TOOL_SCHEMA, createInstructionsTool, } from "./tools/instructions-tool.js";
|
|
98
|
+
export type { InstructionFileInfo, InstructionFileContent, InstructionsToolDeps, InstructionsAction, InstructionsToolParams, } from "./tools/instructions-tool.js";
|
|
99
|
+
export type { ParsedSkillFrontmatter, WorkspaceSkill, SkillInstallSpec, SkillMetadata, SkillInvocationPolicy, SkillEntry, SkillCommandDispatchSpec, SkillCommandSpec, SkillSnapshot, SkillScanSeverity, SkillScanFinding, SkillScanSummary, SkillScanOptions, SkillFsDeps, SkillPathDeps, SkillLoadLimits, SkillSearchPaths, SkillLoaderDeps, } from "./skill-system/skill-types.js";
|
|
100
|
+
export { parseFrontmatter, resolveSkillMetadata, resolveSkillInvocationPolicy, resolveSkillKey, } from "./skill-system/skill-frontmatter.js";
|
|
101
|
+
export { loadSkillEntries, filterSkillEntries, buildSkillSnapshot, } from "./skill-system/skill-loader.js";
|
|
102
|
+
export { scanSource, scanSkillDirectory, hasCriticalFindings, isScannable, } from "./skill-system/skill-guard.js";
|
|
103
|
+
export type { SkillGuardDeps } from "./skill-system/skill-guard.js";
|
|
104
|
+
export { installSkill, uninstallSkill, createEmptyLockfile, } from "./skill-system/skill-source.js";
|
|
105
|
+
export type { TrustLevel, ScanVerdict, SkillSourceDescriptor, SkillFetchResult, SkillFetchDeps, SkillStorageDeps, SkillLockEntry, SkillLockfile, SkillInstallResult, } from "./skill-system/skill-source.js";
|
|
106
|
+
export { SKILL_TOOL_NAME, SKILL_INVOKE_SCHEMA, createSkillTool } from "./tools/skill-invoke-tool.js";
|
|
107
|
+
export type { SkillInvokeParams, SkillToolDeps } from "./tools/skill-invoke-tool.js";
|
|
108
|
+
export { McpStdioClient } from "./mcp/mcp-stdio-client.js";
|
|
109
|
+
export { McpManager, parseMcpConfig } from "./mcp/mcp-manager.js";
|
|
110
|
+
export type { McpServerEntry, McpManagerConfig } from "./mcp/mcp-manager.js";
|
|
111
|
+
export { PluginLoader } from "./plugins/plugin-loader.js";
|
|
112
|
+
export { PLUGIN_HOOK_MAP } from "./plugins/plugin-api.js";
|
|
113
|
+
export type { PluginApi, PluginModule, PluginHookPhase } from "./plugins/plugin-api.js";
|
|
114
|
+
export type { PluginLoaderConfig } from "./plugins/plugin-loader.js";
|
|
115
|
+
export type { LoadedPlugin } from "./plugins/plugin-api.js";
|
|
116
|
+
export { PermissionRuleEngine, parsePermissionConfig } from "./permissions/rule-engine.js";
|
|
117
|
+
export { PermissionChecker } from "./permissions/hook-runner.js";
|
|
118
|
+
export type { PermissionCheckerDeps } from "./permissions/hook-runner.js";
|
|
119
|
+
export type { PermissionMode, PermissionBehavior, PermissionResult, PermissionRuleEntry, PermissionConfig, PermissionUpdate, PermissionDecisionReason, ToolPermissionCheckInput, ApprovalRequest, ApprovalResponse, } from "./permissions/types.js";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { PortableTool } from "../portable-tool.js";
|
|
2
|
+
interface McpToolSchema {
|
|
3
|
+
name: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
inputSchema?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
interface McpToolCallResult {
|
|
8
|
+
content: Array<{
|
|
9
|
+
type: string;
|
|
10
|
+
text?: string;
|
|
11
|
+
data?: string;
|
|
12
|
+
mimeType?: string;
|
|
13
|
+
}>;
|
|
14
|
+
isError?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface McpHttpClientConfig {
|
|
17
|
+
/** Unique name for this MCP server instance */
|
|
18
|
+
name: string;
|
|
19
|
+
/** HTTP endpoint URL (e.g. "http://localhost:3000/mcp") */
|
|
20
|
+
url: string;
|
|
21
|
+
/** Extra headers for every request */
|
|
22
|
+
headers?: Record<string, string>;
|
|
23
|
+
/** Timeout for initialization handshake (ms, default: 30000) */
|
|
24
|
+
initTimeoutMs?: number;
|
|
25
|
+
/** Timeout for tool calls (ms, default: 120000) */
|
|
26
|
+
toolCallTimeoutMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export declare class McpHttpClient {
|
|
29
|
+
private connected;
|
|
30
|
+
private toolsCache;
|
|
31
|
+
private serverName;
|
|
32
|
+
private serverVersion;
|
|
33
|
+
private sessionId;
|
|
34
|
+
private onToolsChanged;
|
|
35
|
+
readonly config: McpHttpClientConfig;
|
|
36
|
+
constructor(config: McpHttpClientConfig);
|
|
37
|
+
connect(): Promise<void>;
|
|
38
|
+
disconnect(): Promise<void>;
|
|
39
|
+
callTool(toolName: string, args?: Record<string, unknown>, signal?: AbortSignal): Promise<McpToolCallResult>;
|
|
40
|
+
listResources(): Promise<Array<{
|
|
41
|
+
uri: string;
|
|
42
|
+
name: string;
|
|
43
|
+
mimeType?: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
}>>;
|
|
46
|
+
readResource(uri: string): Promise<Array<{
|
|
47
|
+
uri: string;
|
|
48
|
+
mimeType?: string;
|
|
49
|
+
text?: string;
|
|
50
|
+
blob?: string;
|
|
51
|
+
}>>;
|
|
52
|
+
toPortableTools(): PortableTool[];
|
|
53
|
+
getCachedTools(): McpToolSchema[];
|
|
54
|
+
get isConnected(): boolean;
|
|
55
|
+
get info(): {
|
|
56
|
+
name: string;
|
|
57
|
+
version: string;
|
|
58
|
+
};
|
|
59
|
+
setOnToolsChanged(callback: () => void): void;
|
|
60
|
+
private refreshTools;
|
|
61
|
+
private sendRequest;
|
|
62
|
+
private sendNotification;
|
|
63
|
+
private parseSSEResponse;
|
|
64
|
+
private schemaToPortableTool;
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/** MCP resource entry from resources/list */
|
|
2
|
+
export interface McpResourceEntry {
|
|
3
|
+
uri: string;
|
|
4
|
+
name: string;
|
|
5
|
+
mimeType?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
}
|
|
8
|
+
/** MCP resource content from resources/read */
|
|
9
|
+
export interface McpResourceContent {
|
|
10
|
+
uri: string;
|
|
11
|
+
mimeType?: string;
|
|
12
|
+
text?: string;
|
|
13
|
+
blob?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface McpServerEntry {
|
|
16
|
+
/** Server display name */
|
|
17
|
+
name: string;
|
|
18
|
+
/** Transport type: "stdio" (default) or "http" */
|
|
19
|
+
type?: "stdio" | "http";
|
|
20
|
+
/** Command to spawn (stdio only) */
|
|
21
|
+
command?: string;
|
|
22
|
+
/** Command arguments (stdio only) */
|
|
23
|
+
args?: string[];
|
|
24
|
+
/** Extra environment variables (stdio only) */
|
|
25
|
+
env?: Record<string, string>;
|
|
26
|
+
/** HTTP endpoint URL (http only) */
|
|
27
|
+
url?: string;
|
|
28
|
+
/** Extra HTTP headers (http only) */
|
|
29
|
+
headers?: Record<string, string>;
|
|
30
|
+
/** Init timeout (ms) */
|
|
31
|
+
initTimeoutMs?: number;
|
|
32
|
+
/** Whether this server is disabled (skip connection) */
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface McpManagerConfig {
|
|
36
|
+
servers: McpServerEntry[];
|
|
37
|
+
log?: {
|
|
38
|
+
info(msg: string): void;
|
|
39
|
+
warn(msg: string): void;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export declare class McpManager {
|
|
43
|
+
private clients;
|
|
44
|
+
private injected;
|
|
45
|
+
private log;
|
|
46
|
+
constructor(config: McpManagerConfig);
|
|
47
|
+
/**
|
|
48
|
+
* Connect to all configured MCP servers. Failures are logged but don't block.
|
|
49
|
+
*/
|
|
50
|
+
connectAll(): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Register all MCP tools into the centralized tool pool.
|
|
53
|
+
*/
|
|
54
|
+
injectTools(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Get names of all connected servers.
|
|
57
|
+
*/
|
|
58
|
+
getConnectedServers(): string[];
|
|
59
|
+
/**
|
|
60
|
+
* Get total number of MCP tools across all servers.
|
|
61
|
+
*/
|
|
62
|
+
getToolCount(): number;
|
|
63
|
+
/**
|
|
64
|
+
* Disconnect all MCP servers.
|
|
65
|
+
*/
|
|
66
|
+
disconnectAll(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* List resources from all connected MCP servers (or a specific one).
|
|
69
|
+
*/
|
|
70
|
+
listResources(serverName?: string): Promise<Array<McpResourceEntry & {
|
|
71
|
+
server: string;
|
|
72
|
+
}>>;
|
|
73
|
+
/**
|
|
74
|
+
* Read a resource from a specific MCP server by URI.
|
|
75
|
+
*/
|
|
76
|
+
readResource(serverName: string, uri: string): Promise<McpResourceContent[]>;
|
|
77
|
+
private reinjectTools;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Parse MCP server configs from a JSON structure (mcp.json format).
|
|
81
|
+
* Compatible with Claude Code's mcp_servers.json structure.
|
|
82
|
+
*/
|
|
83
|
+
export declare function parseMcpConfig(json: unknown): McpServerEntry[];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { PortableTool } from "../portable-tool.js";
|
|
2
|
+
interface McpToolSchema {
|
|
3
|
+
name: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
inputSchema?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
interface McpToolCallResult {
|
|
8
|
+
content: Array<{
|
|
9
|
+
type: string;
|
|
10
|
+
text?: string;
|
|
11
|
+
data?: string;
|
|
12
|
+
mimeType?: string;
|
|
13
|
+
}>;
|
|
14
|
+
isError?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface McpStdioClientConfig {
|
|
17
|
+
/** Unique name for this MCP server instance */
|
|
18
|
+
name: string;
|
|
19
|
+
/** Command to spawn (e.g. "npx", "uvx", "node") */
|
|
20
|
+
command: string;
|
|
21
|
+
/** Arguments to pass to the command */
|
|
22
|
+
args?: string[];
|
|
23
|
+
/** Environment variables (merged with process.env) */
|
|
24
|
+
env?: Record<string, string>;
|
|
25
|
+
/** Working directory for the subprocess */
|
|
26
|
+
cwd?: string;
|
|
27
|
+
/** Timeout for initialization handshake (ms, default: 30000) */
|
|
28
|
+
initTimeoutMs?: number;
|
|
29
|
+
}
|
|
30
|
+
export declare class McpStdioClient {
|
|
31
|
+
private process;
|
|
32
|
+
private readline;
|
|
33
|
+
private pending;
|
|
34
|
+
private nextId;
|
|
35
|
+
private connected;
|
|
36
|
+
private toolsCache;
|
|
37
|
+
private serverName;
|
|
38
|
+
private serverVersion;
|
|
39
|
+
private supportsToolsListChanged;
|
|
40
|
+
private onToolsChanged;
|
|
41
|
+
private stderrBuffer;
|
|
42
|
+
readonly config: McpStdioClientConfig;
|
|
43
|
+
constructor(config: McpStdioClientConfig);
|
|
44
|
+
connect(): Promise<void>;
|
|
45
|
+
disconnect(): Promise<void>;
|
|
46
|
+
get isConnected(): boolean;
|
|
47
|
+
get info(): {
|
|
48
|
+
name: string;
|
|
49
|
+
version: string;
|
|
50
|
+
};
|
|
51
|
+
refreshTools(): Promise<McpToolSchema[]>;
|
|
52
|
+
getCachedTools(): McpToolSchema[];
|
|
53
|
+
callTool(toolName: string, args?: Record<string, unknown>, signal?: AbortSignal): Promise<McpToolCallResult>;
|
|
54
|
+
listResources(): Promise<Array<{
|
|
55
|
+
uri: string;
|
|
56
|
+
name: string;
|
|
57
|
+
mimeType?: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
}>>;
|
|
60
|
+
readResource(uri: string): Promise<Array<{
|
|
61
|
+
uri: string;
|
|
62
|
+
mimeType?: string;
|
|
63
|
+
text?: string;
|
|
64
|
+
blob?: string;
|
|
65
|
+
}>>;
|
|
66
|
+
/**
|
|
67
|
+
* Convert MCP tools to PortableTool instances for the tool pool.
|
|
68
|
+
* Tool names are prefixed: mcp__{serverName}__{toolName}
|
|
69
|
+
*/
|
|
70
|
+
toPortableTools(): PortableTool[];
|
|
71
|
+
/**
|
|
72
|
+
* Register callback for tools/list_changed notifications.
|
|
73
|
+
*/
|
|
74
|
+
setOnToolsChanged(callback: (() => void) | null): void;
|
|
75
|
+
private executeAsTool;
|
|
76
|
+
private sendRequest;
|
|
77
|
+
private sendNotification;
|
|
78
|
+
private writeLine;
|
|
79
|
+
private handleLine;
|
|
80
|
+
private handleNotification;
|
|
81
|
+
private handleProcessError;
|
|
82
|
+
private handleProcessExit;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export interface ExtractedMemory {
|
|
2
|
+
text: string;
|
|
3
|
+
category: string;
|
|
4
|
+
importance: number;
|
|
5
|
+
speaker: string;
|
|
6
|
+
event_date?: string;
|
|
7
|
+
tags?: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface ProfileUpdate {
|
|
10
|
+
category: string;
|
|
11
|
+
key: string;
|
|
12
|
+
value: string;
|
|
13
|
+
confidence: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ExtractionResult {
|
|
16
|
+
memories: ExtractedMemory[];
|
|
17
|
+
profileUpdates: ProfileUpdate[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generic OpenAI-compatible chat completion function.
|
|
21
|
+
* Consumer provides the actual HTTP transport (e.g. admin/new-api fetch).
|
|
22
|
+
*/
|
|
23
|
+
export type ExtractionCompleteFn = (params: {
|
|
24
|
+
model: string;
|
|
25
|
+
messages: Array<{
|
|
26
|
+
role: string;
|
|
27
|
+
content: string;
|
|
28
|
+
}>;
|
|
29
|
+
tools: unknown[];
|
|
30
|
+
tool_choice: unknown;
|
|
31
|
+
temperature?: number;
|
|
32
|
+
max_tokens?: number;
|
|
33
|
+
}) => Promise<{
|
|
34
|
+
choices?: Array<{
|
|
35
|
+
message?: {
|
|
36
|
+
tool_calls?: Array<{
|
|
37
|
+
function?: {
|
|
38
|
+
name?: string;
|
|
39
|
+
arguments?: string;
|
|
40
|
+
};
|
|
41
|
+
}>;
|
|
42
|
+
content?: string;
|
|
43
|
+
};
|
|
44
|
+
}>;
|
|
45
|
+
}>;
|
|
46
|
+
export interface MemoryExtractorOptions {
|
|
47
|
+
/** Model to use for extraction (default: "deepseek-chat"). */
|
|
48
|
+
model?: string;
|
|
49
|
+
/** Timeout in ms for the LLM call (default: 30_000). */
|
|
50
|
+
timeoutMs?: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create a memory extractor backed by an OpenAI-compatible LLM endpoint.
|
|
54
|
+
*
|
|
55
|
+
* The `complete` function is injected by the consumer so that
|
|
56
|
+
* skills layer stays transport-agnostic (no admin/new-api dependency).
|
|
57
|
+
*/
|
|
58
|
+
export declare function createMemoryExtractor(complete: ExtractionCompleteFn, options?: MemoryExtractorOptions): {
|
|
59
|
+
/**
|
|
60
|
+
* Extract structured memories from a conversation fragment.
|
|
61
|
+
* Returns empty result if text is too short or LLM call fails.
|
|
62
|
+
*/
|
|
63
|
+
extract(conversationText: string): Promise<ExtractionResult>;
|
|
64
|
+
};
|