@mohanscodex/spectra-code 0.4.5
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 +275 -0
- package/dist/package.json +62 -0
- package/dist/src/agents/definitions.d.ts +16 -0
- package/dist/src/agents/definitions.d.ts.map +1 -0
- package/dist/src/agents/definitions.js +148 -0
- package/dist/src/agents/definitions.js.map +1 -0
- package/dist/src/agents/registry.d.ts +11 -0
- package/dist/src/agents/registry.d.ts.map +1 -0
- package/dist/src/agents/registry.js +13 -0
- package/dist/src/agents/registry.js.map +1 -0
- package/dist/src/cli.d.ts +3 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +436 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/commands/agent.d.ts +3 -0
- package/dist/src/commands/agent.d.ts.map +1 -0
- package/dist/src/commands/agent.js +28 -0
- package/dist/src/commands/agent.js.map +1 -0
- package/dist/src/commands/db.d.ts +3 -0
- package/dist/src/commands/db.d.ts.map +1 -0
- package/dist/src/commands/db.js +47 -0
- package/dist/src/commands/db.js.map +1 -0
- package/dist/src/commands/doctor.d.ts +12 -0
- package/dist/src/commands/doctor.d.ts.map +1 -0
- package/dist/src/commands/doctor.js +59 -0
- package/dist/src/commands/doctor.js.map +1 -0
- package/dist/src/commands/mcp.d.ts +9 -0
- package/dist/src/commands/mcp.d.ts.map +1 -0
- package/dist/src/commands/mcp.js +208 -0
- package/dist/src/commands/mcp.js.map +1 -0
- package/dist/src/commands/plugin.d.ts +3 -0
- package/dist/src/commands/plugin.d.ts.map +1 -0
- package/dist/src/commands/plugin.js +36 -0
- package/dist/src/commands/plugin.js.map +1 -0
- package/dist/src/commands/session.d.ts +3 -0
- package/dist/src/commands/session.d.ts.map +1 -0
- package/dist/src/commands/session.js +49 -0
- package/dist/src/commands/session.js.map +1 -0
- package/dist/src/index.d.ts +19 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +17 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/integrations/acp/index.d.ts +2 -0
- package/dist/src/integrations/acp/index.d.ts.map +1 -0
- package/dist/src/integrations/acp/index.js +2 -0
- package/dist/src/integrations/acp/index.js.map +1 -0
- package/dist/src/integrations/acp/server.d.ts +11 -0
- package/dist/src/integrations/acp/server.d.ts.map +1 -0
- package/dist/src/integrations/acp/server.js +220 -0
- package/dist/src/integrations/acp/server.js.map +1 -0
- package/dist/src/integrations/custom-tools/index.d.ts +3 -0
- package/dist/src/integrations/custom-tools/index.d.ts.map +1 -0
- package/dist/src/integrations/custom-tools/index.js +2 -0
- package/dist/src/integrations/custom-tools/index.js.map +1 -0
- package/dist/src/integrations/custom-tools/loader.d.ts +16 -0
- package/dist/src/integrations/custom-tools/loader.d.ts.map +1 -0
- package/dist/src/integrations/custom-tools/loader.js +95 -0
- package/dist/src/integrations/custom-tools/loader.js.map +1 -0
- package/dist/src/integrations/mcp/client.d.ts +32 -0
- package/dist/src/integrations/mcp/client.d.ts.map +1 -0
- package/dist/src/integrations/mcp/client.js +117 -0
- package/dist/src/integrations/mcp/client.js.map +1 -0
- package/dist/src/integrations/mcp/index.d.ts +3 -0
- package/dist/src/integrations/mcp/index.d.ts.map +1 -0
- package/dist/src/integrations/mcp/index.js +2 -0
- package/dist/src/integrations/mcp/index.js.map +1 -0
- package/dist/src/security/doom-loop.d.ts +22 -0
- package/dist/src/security/doom-loop.d.ts.map +1 -0
- package/dist/src/security/doom-loop.js +72 -0
- package/dist/src/security/doom-loop.js.map +1 -0
- package/dist/src/security/index.d.ts +46 -0
- package/dist/src/security/index.d.ts.map +1 -0
- package/dist/src/security/index.js +362 -0
- package/dist/src/security/index.js.map +1 -0
- package/dist/src/security/path-safety.d.ts +15 -0
- package/dist/src/security/path-safety.d.ts.map +1 -0
- package/dist/src/security/path-safety.js +57 -0
- package/dist/src/security/path-safety.js.map +1 -0
- package/dist/src/security/permissions.d.ts +7 -0
- package/dist/src/security/permissions.d.ts.map +1 -0
- package/dist/src/security/permissions.js +41 -0
- package/dist/src/security/permissions.js.map +1 -0
- package/dist/src/security/read-tracker.d.ts +20 -0
- package/dist/src/security/read-tracker.d.ts.map +1 -0
- package/dist/src/security/read-tracker.js +73 -0
- package/dist/src/security/read-tracker.js.map +1 -0
- package/dist/src/security/ssrf-guard.d.ts +19 -0
- package/dist/src/security/ssrf-guard.d.ts.map +1 -0
- package/dist/src/security/ssrf-guard.js +98 -0
- package/dist/src/security/ssrf-guard.js.map +1 -0
- package/dist/src/security/types.d.ts +70 -0
- package/dist/src/security/types.d.ts.map +1 -0
- package/dist/src/security/types.js +2 -0
- package/dist/src/security/types.js.map +1 -0
- package/dist/src/security/wildcard.d.ts +5 -0
- package/dist/src/security/wildcard.d.ts.map +1 -0
- package/dist/src/security/wildcard.js +50 -0
- package/dist/src/security/wildcard.js.map +1 -0
- package/dist/src/services/auth-store.d.ts +25 -0
- package/dist/src/services/auth-store.d.ts.map +1 -0
- package/dist/src/services/auth-store.js +40 -0
- package/dist/src/services/auth-store.js.map +1 -0
- package/dist/src/services/config.d.ts +66 -0
- package/dist/src/services/config.d.ts.map +1 -0
- package/dist/src/services/config.js +83 -0
- package/dist/src/services/config.js.map +1 -0
- package/dist/src/services/context.d.ts +7 -0
- package/dist/src/services/context.d.ts.map +1 -0
- package/dist/src/services/context.js +23 -0
- package/dist/src/services/context.js.map +1 -0
- package/dist/src/services/custom-providers.d.ts +5 -0
- package/dist/src/services/custom-providers.d.ts.map +1 -0
- package/dist/src/services/custom-providers.js +213 -0
- package/dist/src/services/custom-providers.js.map +1 -0
- package/dist/src/services/session-store.d.ts +76 -0
- package/dist/src/services/session-store.d.ts.map +1 -0
- package/dist/src/services/session-store.js +199 -0
- package/dist/src/services/session-store.js.map +1 -0
- package/dist/src/services/snapshot-manager.d.ts +46 -0
- package/dist/src/services/snapshot-manager.d.ts.map +1 -0
- package/dist/src/services/snapshot-manager.js +183 -0
- package/dist/src/services/snapshot-manager.js.map +1 -0
- package/dist/src/tools/edit.d.ts +3 -0
- package/dist/src/tools/edit.d.ts.map +1 -0
- package/dist/src/tools/edit.js +57 -0
- package/dist/src/tools/edit.js.map +1 -0
- package/dist/src/tools/glob.d.ts +3 -0
- package/dist/src/tools/glob.d.ts.map +1 -0
- package/dist/src/tools/glob.js +46 -0
- package/dist/src/tools/glob.js.map +1 -0
- package/dist/src/tools/grep.d.ts +3 -0
- package/dist/src/tools/grep.d.ts.map +1 -0
- package/dist/src/tools/grep.js +50 -0
- package/dist/src/tools/grep.js.map +1 -0
- package/dist/src/tools/index.d.ts +26 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +202 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/tools/mcp-tool.d.ts +5 -0
- package/dist/src/tools/mcp-tool.d.ts.map +1 -0
- package/dist/src/tools/mcp-tool.js +82 -0
- package/dist/src/tools/mcp-tool.js.map +1 -0
- package/dist/src/tools/read.d.ts +3 -0
- package/dist/src/tools/read.d.ts.map +1 -0
- package/dist/src/tools/read.js +48 -0
- package/dist/src/tools/read.js.map +1 -0
- package/dist/src/tools/shell.d.ts +3 -0
- package/dist/src/tools/shell.d.ts.map +1 -0
- package/dist/src/tools/shell.js +266 -0
- package/dist/src/tools/shell.js.map +1 -0
- package/dist/src/tools/task.d.ts +3 -0
- package/dist/src/tools/task.d.ts.map +1 -0
- package/dist/src/tools/task.js +75 -0
- package/dist/src/tools/task.js.map +1 -0
- package/dist/src/tools/types.d.ts +18 -0
- package/dist/src/tools/types.d.ts.map +1 -0
- package/dist/src/tools/types.js +2 -0
- package/dist/src/tools/types.js.map +1 -0
- package/dist/src/tools/utils.d.ts +4 -0
- package/dist/src/tools/utils.d.ts.map +1 -0
- package/dist/src/tools/utils.js +10 -0
- package/dist/src/tools/utils.js.map +1 -0
- package/dist/src/tools/web-fetch.d.ts +3 -0
- package/dist/src/tools/web-fetch.d.ts.map +1 -0
- package/dist/src/tools/web-fetch.js +81 -0
- package/dist/src/tools/web-fetch.js.map +1 -0
- package/dist/src/tools/write.d.ts +3 -0
- package/dist/src/tools/write.d.ts.map +1 -0
- package/dist/src/tools/write.js +28 -0
- package/dist/src/tools/write.js.map +1 -0
- package/dist/src/tui/app-constants.d.ts +3 -0
- package/dist/src/tui/app-constants.d.ts.map +1 -0
- package/dist/src/tui/app-constants.js +4 -0
- package/dist/src/tui/app-constants.js.map +1 -0
- package/dist/src/tui/app.d.ts +5 -0
- package/dist/src/tui/app.d.ts.map +1 -0
- package/dist/src/tui/app.js +322 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/tui/commands.d.ts +61 -0
- package/dist/src/tui/commands.d.ts.map +1 -0
- package/dist/src/tui/commands.js +95 -0
- package/dist/src/tui/commands.js.map +1 -0
- package/dist/src/tui/components/chat-area.d.ts +9 -0
- package/dist/src/tui/components/chat-area.d.ts.map +1 -0
- package/dist/src/tui/components/chat-area.js +12 -0
- package/dist/src/tui/components/chat-area.js.map +1 -0
- package/dist/src/tui/components/command-palette.d.ts +18 -0
- package/dist/src/tui/components/command-palette.d.ts.map +1 -0
- package/dist/src/tui/components/command-palette.js +50 -0
- package/dist/src/tui/components/command-palette.js.map +1 -0
- package/dist/src/tui/components/message.d.ts +9 -0
- package/dist/src/tui/components/message.d.ts.map +1 -0
- package/dist/src/tui/components/message.js +116 -0
- package/dist/src/tui/components/message.js.map +1 -0
- package/dist/src/tui/components/slash-autocomplete.d.ts +14 -0
- package/dist/src/tui/components/slash-autocomplete.d.ts.map +1 -0
- package/dist/src/tui/components/slash-autocomplete.js +29 -0
- package/dist/src/tui/components/slash-autocomplete.js.map +1 -0
- package/dist/src/tui/components/toast.d.ts +8 -0
- package/dist/src/tui/components/toast.d.ts.map +1 -0
- package/dist/src/tui/components/toast.js +29 -0
- package/dist/src/tui/components/toast.js.map +1 -0
- package/dist/src/tui/hooks/use-agent.d.ts +20 -0
- package/dist/src/tui/hooks/use-agent.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-agent.js +129 -0
- package/dist/src/tui/hooks/use-agent.js.map +1 -0
- package/dist/src/tui/hooks/use-app-keyboard.d.ts +53 -0
- package/dist/src/tui/hooks/use-app-keyboard.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-app-keyboard.js +155 -0
- package/dist/src/tui/hooks/use-app-keyboard.js.map +1 -0
- package/dist/src/tui/hooks/use-chat-submit.d.ts +61 -0
- package/dist/src/tui/hooks/use-chat-submit.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-chat-submit.js +269 -0
- package/dist/src/tui/hooks/use-chat-submit.js.map +1 -0
- package/dist/src/tui/hooks/use-permission-queue.d.ts +10 -0
- package/dist/src/tui/hooks/use-permission-queue.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-permission-queue.js +26 -0
- package/dist/src/tui/hooks/use-permission-queue.js.map +1 -0
- package/dist/src/tui/hooks/use-revert.d.ts +26 -0
- package/dist/src/tui/hooks/use-revert.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-revert.js +88 -0
- package/dist/src/tui/hooks/use-revert.js.map +1 -0
- package/dist/src/tui/index.d.ts +5 -0
- package/dist/src/tui/index.d.ts.map +1 -0
- package/dist/src/tui/index.js +38 -0
- package/dist/src/tui/index.js.map +1 -0
- package/dist/src/tui/prompt-bar.d.ts +29 -0
- package/dist/src/tui/prompt-bar.d.ts.map +1 -0
- package/dist/src/tui/prompt-bar.js +41 -0
- package/dist/src/tui/prompt-bar.js.map +1 -0
- package/dist/src/tui/slash-commands.d.ts +20 -0
- package/dist/src/tui/slash-commands.d.ts.map +1 -0
- package/dist/src/tui/slash-commands.js +30 -0
- package/dist/src/tui/slash-commands.js.map +1 -0
- package/dist/src/tui/theme.d.ts +29 -0
- package/dist/src/tui/theme.d.ts.map +1 -0
- package/dist/src/tui/theme.js +54 -0
- package/dist/src/tui/theme.js.map +1 -0
- package/dist/src/tui/tips.d.ts +2 -0
- package/dist/src/tui/tips.d.ts.map +1 -0
- package/dist/src/tui/tips.js +40 -0
- package/dist/src/tui/tips.js.map +1 -0
- package/dist/src/tui/types.d.ts +34 -0
- package/dist/src/tui/types.d.ts.map +1 -0
- package/dist/src/tui/types.js +2 -0
- package/dist/src/tui/types.js.map +1 -0
- package/dist/src/tui/ui/about-dialog.d.ts +8 -0
- package/dist/src/tui/ui/about-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/about-dialog.js +21 -0
- package/dist/src/tui/ui/about-dialog.js.map +1 -0
- package/dist/src/tui/ui/agent-switcher.d.ts +10 -0
- package/dist/src/tui/ui/agent-switcher.d.ts.map +1 -0
- package/dist/src/tui/ui/agent-switcher.js +77 -0
- package/dist/src/tui/ui/agent-switcher.js.map +1 -0
- package/dist/src/tui/ui/debug-dialog.d.ts +15 -0
- package/dist/src/tui/ui/debug-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/debug-dialog.js +74 -0
- package/dist/src/tui/ui/debug-dialog.js.map +1 -0
- package/dist/src/tui/ui/doctor-dialog.d.ts +9 -0
- package/dist/src/tui/ui/doctor-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/doctor-dialog.js +45 -0
- package/dist/src/tui/ui/doctor-dialog.js.map +1 -0
- package/dist/src/tui/ui/manage-providers-dialog.d.ts +10 -0
- package/dist/src/tui/ui/manage-providers-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/manage-providers-dialog.js +257 -0
- package/dist/src/tui/ui/manage-providers-dialog.js.map +1 -0
- package/dist/src/tui/ui/mcp-toggle-dialog.d.ts +8 -0
- package/dist/src/tui/ui/mcp-toggle-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/mcp-toggle-dialog.js +89 -0
- package/dist/src/tui/ui/mcp-toggle-dialog.js.map +1 -0
- package/dist/src/tui/ui/message-controls.d.ts +16 -0
- package/dist/src/tui/ui/message-controls.d.ts.map +1 -0
- package/dist/src/tui/ui/message-controls.js +102 -0
- package/dist/src/tui/ui/message-controls.js.map +1 -0
- package/dist/src/tui/ui/model-switcher.d.ts +10 -0
- package/dist/src/tui/ui/model-switcher.d.ts.map +1 -0
- package/dist/src/tui/ui/model-switcher.js +139 -0
- package/dist/src/tui/ui/model-switcher.js.map +1 -0
- package/dist/src/tui/ui/permission-dialog.d.ts +12 -0
- package/dist/src/tui/ui/permission-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/permission-dialog.js +37 -0
- package/dist/src/tui/ui/permission-dialog.js.map +1 -0
- package/dist/src/tui/ui/provider-dialog.d.ts +11 -0
- package/dist/src/tui/ui/provider-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/provider-dialog.js +232 -0
- package/dist/src/tui/ui/provider-dialog.js.map +1 -0
- package/dist/src/tui/ui/session-list.d.ts +23 -0
- package/dist/src/tui/ui/session-list.d.ts.map +1 -0
- package/dist/src/tui/ui/session-list.js +147 -0
- package/dist/src/tui/ui/session-list.js.map +1 -0
- package/dist/src/tui/ui/thinking-effort-dialog.d.ts +11 -0
- package/dist/src/tui/ui/thinking-effort-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/thinking-effort-dialog.js +79 -0
- package/dist/src/tui/ui/thinking-effort-dialog.js.map +1 -0
- package/dist/src/tui/utils/model-config.d.ts +9 -0
- package/dist/src/tui/utils/model-config.d.ts.map +1 -0
- package/dist/src/tui/utils/model-config.js +63 -0
- package/dist/src/tui/utils/model-config.js.map +1 -0
- package/dist/src/tui/utils/session-messages.d.ts +22 -0
- package/dist/src/tui/utils/session-messages.d.ts.map +1 -0
- package/dist/src/tui/utils/session-messages.js +62 -0
- package/dist/src/tui/utils/session-messages.js.map +1 -0
- package/dist/src/tui/utils.d.ts +6 -0
- package/dist/src/tui/utils.d.ts.map +1 -0
- package/dist/src/tui/utils.js +23 -0
- package/dist/src/tui/utils.js.map +1 -0
- package/dist/src/tui/variant-cycle.d.ts +10 -0
- package/dist/src/tui/variant-cycle.d.ts.map +1 -0
- package/dist/src/tui/variant-cycle.js +64 -0
- package/dist/src/tui/variant-cycle.js.map +1 -0
- package/dist/src/utils/paths.d.ts +10 -0
- package/dist/src/utils/paths.d.ts.map +1 -0
- package/dist/src/utils/paths.js +106 -0
- package/dist/src/utils/paths.js.map +1 -0
- package/dist/src/utils/platform.d.ts +10 -0
- package/dist/src/utils/platform.d.ts.map +1 -0
- package/dist/src/utils/platform.js +133 -0
- package/dist/src/utils/platform.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { useRef, useCallback } from "react";
|
|
2
|
+
import { loadConfig, saveConfig } from "../../services/config.js";
|
|
3
|
+
import { getAuthKey } from "../utils/model-config.js";
|
|
4
|
+
import { AGENT_DEFINITIONS } from "../../agents/definitions.js";
|
|
5
|
+
import { AgentRegistry } from "../../agents/registry.js";
|
|
6
|
+
import { createSecurityManager } from "../../security/index.js";
|
|
7
|
+
export function useAgent(deps) {
|
|
8
|
+
const { securityRef, securityConfig, enqueuePermission } = deps;
|
|
9
|
+
const agentRef = useRef(null);
|
|
10
|
+
const lastAgentRef = useRef(null);
|
|
11
|
+
const lastModelRef = useRef(null);
|
|
12
|
+
const loadedSessionMessages = useRef([]);
|
|
13
|
+
const initSecurityManager = useCallback((cwd) => {
|
|
14
|
+
if (securityRef.current)
|
|
15
|
+
return securityRef.current;
|
|
16
|
+
const manager = createSecurityManager({
|
|
17
|
+
config: securityConfig.permission,
|
|
18
|
+
security: securityConfig.security,
|
|
19
|
+
cwd,
|
|
20
|
+
onPersist: (rules) => {
|
|
21
|
+
try {
|
|
22
|
+
const existing = loadConfig();
|
|
23
|
+
const permission = {
|
|
24
|
+
...(existing.permission ?? {}),
|
|
25
|
+
};
|
|
26
|
+
for (const rule of rules) {
|
|
27
|
+
if (rule.action !== "allow")
|
|
28
|
+
continue;
|
|
29
|
+
let entry = permission[rule.permission];
|
|
30
|
+
if (!entry || typeof entry === "string") {
|
|
31
|
+
permission[rule.permission] = { [rule.pattern]: "allow" };
|
|
32
|
+
}
|
|
33
|
+
else if (typeof entry === "object") {
|
|
34
|
+
;
|
|
35
|
+
entry[rule.pattern] = "allow";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
existing.permission = permission;
|
|
39
|
+
saveConfig(existing);
|
|
40
|
+
}
|
|
41
|
+
catch { }
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
manager.setListener((req) => {
|
|
45
|
+
enqueuePermission(req);
|
|
46
|
+
});
|
|
47
|
+
securityRef.current = manager;
|
|
48
|
+
return manager;
|
|
49
|
+
}, [securityRef, securityConfig, enqueuePermission]);
|
|
50
|
+
const getOrCreateAgent = useCallback(async (selectedModel, provider, selectedAgent, customProviders, thinkingEffort) => {
|
|
51
|
+
if (!selectedModel || !provider)
|
|
52
|
+
return null;
|
|
53
|
+
const agentKey = `${selectedAgent}:${selectedModel}:${provider}:${thinkingEffort || ""}`;
|
|
54
|
+
if (agentRef.current && lastModelRef.current === agentKey)
|
|
55
|
+
return agentRef.current;
|
|
56
|
+
const existingMessages = agentRef.current
|
|
57
|
+
? [...agentRef.current.messages]
|
|
58
|
+
: loadedSessionMessages.current;
|
|
59
|
+
const { Agent } = await import("@mohanscodex/spectra-agent");
|
|
60
|
+
const { initProviders } = await import("@mohanscodex/spectra-ai");
|
|
61
|
+
initProviders();
|
|
62
|
+
const { createAllTools, createAllToolsWithSecurity } = await import("../../tools/index.js");
|
|
63
|
+
const customCfg = customProviders[provider];
|
|
64
|
+
const def = AGENT_DEFINITIONS[selectedAgent];
|
|
65
|
+
const manager = initSecurityManager(process.cwd());
|
|
66
|
+
const allTools = createAllToolsWithSecurity(manager);
|
|
67
|
+
const { filterToolsByAgent } = await import("../../agents/definitions.js");
|
|
68
|
+
const agentTools = def ? filterToolsByAgent(allTools, selectedAgent) : allTools;
|
|
69
|
+
let agentsMd = "";
|
|
70
|
+
try {
|
|
71
|
+
const agentsPath = `${process.cwd()}/AGENTS.md`;
|
|
72
|
+
const { readFileSync, existsSync } = await import("fs");
|
|
73
|
+
if (existsSync(agentsPath)) {
|
|
74
|
+
agentsMd = readFileSync(agentsPath, "utf-8");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch { }
|
|
78
|
+
const { getSystemPrompt } = await import("../../utils/platform.js");
|
|
79
|
+
const systemPrompt = [
|
|
80
|
+
getSystemPrompt(),
|
|
81
|
+
agentsMd,
|
|
82
|
+
def?.prompt,
|
|
83
|
+
].filter(Boolean).join("\n\n");
|
|
84
|
+
agentRef.current = new Agent({
|
|
85
|
+
model: {
|
|
86
|
+
id: selectedModel,
|
|
87
|
+
name: selectedModel,
|
|
88
|
+
provider,
|
|
89
|
+
api: provider,
|
|
90
|
+
baseUrl: customCfg?.baseUrl,
|
|
91
|
+
headers: customCfg?.headers,
|
|
92
|
+
},
|
|
93
|
+
systemPrompt,
|
|
94
|
+
getApiKey: (p) => getAuthKey(p),
|
|
95
|
+
tools: agentTools,
|
|
96
|
+
maxTurns: def?.maxTurns ?? 10,
|
|
97
|
+
streamOptions: thinkingEffort ? { thinkingEffort } : undefined,
|
|
98
|
+
});
|
|
99
|
+
AgentRegistry.setConfig({
|
|
100
|
+
model: {
|
|
101
|
+
id: selectedModel,
|
|
102
|
+
name: selectedModel,
|
|
103
|
+
provider,
|
|
104
|
+
api: provider,
|
|
105
|
+
baseUrl: customCfg?.baseUrl,
|
|
106
|
+
headers: customCfg?.headers,
|
|
107
|
+
},
|
|
108
|
+
getApiKey: (p) => getAuthKey(p),
|
|
109
|
+
});
|
|
110
|
+
if (existingMessages.length > 0) {
|
|
111
|
+
agentRef.current.restoreHistory(existingMessages);
|
|
112
|
+
}
|
|
113
|
+
lastModelRef.current = agentKey;
|
|
114
|
+
lastAgentRef.current = selectedAgent;
|
|
115
|
+
return agentRef.current;
|
|
116
|
+
}, [initSecurityManager]);
|
|
117
|
+
const resetAgentForModelSwitch = useCallback(() => {
|
|
118
|
+
agentRef.current = null;
|
|
119
|
+
lastModelRef.current = null;
|
|
120
|
+
}, []);
|
|
121
|
+
return {
|
|
122
|
+
agentRef,
|
|
123
|
+
lastAgentRef,
|
|
124
|
+
loadedSessionMessages,
|
|
125
|
+
getOrCreateAgent,
|
|
126
|
+
resetAgentForModelSwitch,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=use-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-agent.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { CliRenderer } from "@opentui/core";
|
|
2
|
+
import type { CmdItem } from "../components/command-palette.js";
|
|
3
|
+
import type { ChatMessage } from "../types.js";
|
|
4
|
+
interface UseAppKeyboardDeps {
|
|
5
|
+
renderer: CliRenderer;
|
|
6
|
+
isStreamingRef: React.MutableRefObject<boolean>;
|
|
7
|
+
currentTurnStartRef: React.MutableRefObject<number | null>;
|
|
8
|
+
currentTurnMsgIdRef: React.MutableRefObject<string | null>;
|
|
9
|
+
revertPoint: string | null;
|
|
10
|
+
revertedMessagesRef: React.MutableRefObject<ChatMessage[]>;
|
|
11
|
+
runRedo: () => void;
|
|
12
|
+
runRollbackFiles: () => void;
|
|
13
|
+
dialogStep: any;
|
|
14
|
+
msgControls: ChatMessage | null;
|
|
15
|
+
permissionRequest: any;
|
|
16
|
+
dialogKeyHandler: React.MutableRefObject<((key: any) => void) | null>;
|
|
17
|
+
showCmd: boolean;
|
|
18
|
+
cmdFilter: string;
|
|
19
|
+
cmdSelected: number;
|
|
20
|
+
cmdFiltered: CmdItem[];
|
|
21
|
+
draftText: string;
|
|
22
|
+
slashActive: boolean;
|
|
23
|
+
slashFiltered: CmdItem[];
|
|
24
|
+
slashSelected: number;
|
|
25
|
+
promptHistory: string[];
|
|
26
|
+
historyIdx: number;
|
|
27
|
+
interruptKey: number;
|
|
28
|
+
selectedAgent: string;
|
|
29
|
+
thinkingEffort: string | undefined;
|
|
30
|
+
provider: string | null;
|
|
31
|
+
agentRef: React.MutableRefObject<any>;
|
|
32
|
+
securityRef: React.MutableRefObject<any>;
|
|
33
|
+
promptTextareaRef: React.RefObject<any>;
|
|
34
|
+
setShowCmd: (v: boolean) => void;
|
|
35
|
+
setCmdFilter: React.Dispatch<React.SetStateAction<string>>;
|
|
36
|
+
setCmdSelected: React.Dispatch<React.SetStateAction<number>>;
|
|
37
|
+
setDraftText: React.Dispatch<React.SetStateAction<string>>;
|
|
38
|
+
setSlashSelected: React.Dispatch<React.SetStateAction<number>>;
|
|
39
|
+
setHistoryIdx: React.Dispatch<React.SetStateAction<number>>;
|
|
40
|
+
setNavKey: React.Dispatch<React.SetStateAction<number>>;
|
|
41
|
+
setInterruptKey: React.Dispatch<React.SetStateAction<number>>;
|
|
42
|
+
setSelectedAgent: React.Dispatch<React.SetStateAction<string>>;
|
|
43
|
+
setMessages: React.Dispatch<React.SetStateAction<ChatMessage[]>>;
|
|
44
|
+
setStatus: React.Dispatch<React.SetStateAction<string>>;
|
|
45
|
+
setThinkingEffort: React.Dispatch<React.SetStateAction<string | undefined>>;
|
|
46
|
+
updateMessage: (id: string, u: Partial<ChatMessage>) => void;
|
|
47
|
+
updateLastAssistantMeta: (meta: Record<string, unknown>) => void;
|
|
48
|
+
execCmd: (item: any) => void;
|
|
49
|
+
handleCycleVariant: () => void;
|
|
50
|
+
}
|
|
51
|
+
export declare function useAppKeyboard(deps: UseAppKeyboardDeps): void;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=use-app-keyboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-app-keyboard.d.ts","sourceRoot":"","sources":["../../../../src/tui/hooks/use-app-keyboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { useKeyboard } from "@opentui/react";
|
|
2
|
+
import { AGENTS } from "../app-constants.js";
|
|
3
|
+
export function useAppKeyboard(deps) {
|
|
4
|
+
const { renderer, isStreamingRef, currentTurnStartRef, currentTurnMsgIdRef, revertPoint, revertedMessagesRef, runRedo, runRollbackFiles, dialogStep, msgControls, permissionRequest, dialogKeyHandler, showCmd, cmdFilter, cmdSelected, cmdFiltered, draftText, slashActive, slashFiltered, slashSelected, promptHistory, historyIdx, interruptKey, selectedAgent, thinkingEffort, provider, agentRef, securityRef, promptTextareaRef, setShowCmd, setCmdFilter, setCmdSelected, setDraftText, setSlashSelected, setHistoryIdx, setNavKey, setInterruptKey, setSelectedAgent, setMessages, setStatus, setThinkingEffort, updateMessage, updateLastAssistantMeta, execCmd, handleCycleVariant, } = deps;
|
|
5
|
+
useKeyboard((key) => {
|
|
6
|
+
if (dialogStep || msgControls || permissionRequest !== null) {
|
|
7
|
+
dialogKeyHandler.current?.(key);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (showCmd) {
|
|
11
|
+
if (key.name === "escape" || (key.ctrl && key.name === "p")) {
|
|
12
|
+
setShowCmd(false);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (key.name === "return" || key.name === "enter") {
|
|
16
|
+
if (cmdFiltered.length > 0) {
|
|
17
|
+
execCmd(cmdFiltered[cmdSelected]);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
;
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (key.name === "up") {
|
|
24
|
+
setCmdSelected((p) => (p > 0 ? p - 1 : cmdFiltered.length - 1));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (key.name === "down") {
|
|
28
|
+
setCmdSelected((p) => (p < cmdFiltered.length - 1 ? p + 1 : 0));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (key.name === "backspace") {
|
|
32
|
+
setCmdFilter((p) => p.slice(0, -1));
|
|
33
|
+
setCmdSelected(() => 0);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (key.name.length === 1 && !key.ctrl && !key.meta) {
|
|
37
|
+
setCmdFilter((p) => p + key.name);
|
|
38
|
+
setCmdSelected(() => 0);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (slashActive && slashFiltered.length > 0) {
|
|
44
|
+
if (key.name === "escape") {
|
|
45
|
+
setDraftText("");
|
|
46
|
+
setSlashSelected(0);
|
|
47
|
+
if (promptTextareaRef.current) {
|
|
48
|
+
promptTextareaRef.current.setText("");
|
|
49
|
+
}
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (key.name === "tab") {
|
|
53
|
+
const item = slashFiltered[slashSelected];
|
|
54
|
+
if (item && promptTextareaRef.current) {
|
|
55
|
+
const cmdName = item.slashName || item.id;
|
|
56
|
+
promptTextareaRef.current.setText(`/${cmdName} `);
|
|
57
|
+
setDraftText(`/${cmdName} `);
|
|
58
|
+
setSlashSelected(0);
|
|
59
|
+
}
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (key.name === "up") {
|
|
63
|
+
setSlashSelected((p) => (p > 0 ? p - 1 : slashFiltered.length - 1));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (key.name === "down") {
|
|
67
|
+
setSlashSelected((p) => (p < slashFiltered.length - 1 ? p + 1 : 0));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (key.ctrl && key.name === "c") {
|
|
72
|
+
renderer.destroy();
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (key.ctrl && key.name === "y") {
|
|
76
|
+
if (revertPoint !== null && revertedMessagesRef.current.length > 0) {
|
|
77
|
+
runRedo();
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (key.ctrl && key.shift && key.name === "y") {
|
|
82
|
+
if (revertPoint !== null) {
|
|
83
|
+
runRollbackFiles();
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (key.name === "escape") {
|
|
88
|
+
if (isStreamingRef.current) {
|
|
89
|
+
if (interruptKey === 1) {
|
|
90
|
+
agentRef.current?.abort();
|
|
91
|
+
const duration = Math.round(performance.now() - (currentTurnStartRef.current ?? 0));
|
|
92
|
+
if (currentTurnMsgIdRef.current) {
|
|
93
|
+
updateMessage(currentTurnMsgIdRef.current, {
|
|
94
|
+
turnStatus: "interrupted",
|
|
95
|
+
streaming: false,
|
|
96
|
+
turnDurationMs: duration,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
updateLastAssistantMeta({ turnStatus: "interrupted", turnDurationMs: duration });
|
|
100
|
+
setInterruptKey(0);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
setInterruptKey(1);
|
|
104
|
+
setTimeout(() => setInterruptKey(0), 3000);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (key.name === "up") {
|
|
110
|
+
if (slashActive)
|
|
111
|
+
return;
|
|
112
|
+
if (promptHistory.length === 0)
|
|
113
|
+
return;
|
|
114
|
+
if (historyIdx === -1)
|
|
115
|
+
return;
|
|
116
|
+
setHistoryIdx(Math.min(historyIdx + 1, promptHistory.length - 1));
|
|
117
|
+
setNavKey((k) => k + 1);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (key.name === "down") {
|
|
121
|
+
if (slashActive)
|
|
122
|
+
return;
|
|
123
|
+
if (historyIdx === -1)
|
|
124
|
+
return;
|
|
125
|
+
setHistoryIdx(historyIdx - 1);
|
|
126
|
+
setNavKey((k) => k + 1);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (key.name === "tab") {
|
|
130
|
+
setSelectedAgent((p) => AGENTS[(AGENTS.indexOf(p) + 1) % AGENTS.length]);
|
|
131
|
+
securityRef.current?.getReadTracker().reset();
|
|
132
|
+
securityRef.current?.getDoomLoop().reset();
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (key.ctrl && key.name === "p") {
|
|
136
|
+
setShowCmd(true);
|
|
137
|
+
setCmdFilter(() => "");
|
|
138
|
+
setCmdSelected(() => 0);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (key.ctrl && key.name === "l") {
|
|
142
|
+
setMessages(() => []);
|
|
143
|
+
setStatus("Cleared");
|
|
144
|
+
setTimeout(() => setStatus("Ready"), 2000);
|
|
145
|
+
securityRef.current?.getReadTracker().reset();
|
|
146
|
+
securityRef.current?.getDoomLoop().reset();
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (key.ctrl && key.name === "t") {
|
|
150
|
+
handleCycleVariant();
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=use-app-keyboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-app-keyboard.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-app-keyboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ChatMessage } from "../types.js";
|
|
2
|
+
import type { Message } from "@mohanscodex/spectra-ai";
|
|
3
|
+
import type { SessionStore } from "../../services/session-store.js";
|
|
4
|
+
import type { SnapshotManager } from "../../services/snapshot-manager.js";
|
|
5
|
+
import type { CmdItem } from "../components/command-palette.js";
|
|
6
|
+
interface UseChatSubmitDeps {
|
|
7
|
+
sessionStore: React.MutableRefObject<SessionStore>;
|
|
8
|
+
sessionId: React.MutableRefObject<string | null>;
|
|
9
|
+
agentRef: React.MutableRefObject<any>;
|
|
10
|
+
securityRef: React.MutableRefObject<any>;
|
|
11
|
+
loadedSessionMessages: React.MutableRefObject<Message[]>;
|
|
12
|
+
snapshotManager: React.MutableRefObject<SnapshotManager>;
|
|
13
|
+
lastAgentRef: React.MutableRefObject<string | null>;
|
|
14
|
+
isStreamingRef: React.MutableRefObject<boolean>;
|
|
15
|
+
currentTurnStartRef: React.MutableRefObject<number | null>;
|
|
16
|
+
currentTurnMsgIdRef: React.MutableRefObject<string | null>;
|
|
17
|
+
revertPoint: string | null;
|
|
18
|
+
getOrCreateAgent: (model: string | null, provider: string | null, agent: string, customProviders: any, effort: string | undefined) => Promise<any>;
|
|
19
|
+
selectedModel: string | null;
|
|
20
|
+
provider: string | null;
|
|
21
|
+
selectedAgent: string;
|
|
22
|
+
customProviders: Record<string, any>;
|
|
23
|
+
thinkingEffort: string | undefined;
|
|
24
|
+
cmdItems: CmdItem[];
|
|
25
|
+
slashNames: Set<string>;
|
|
26
|
+
addMessage: (msg: ChatMessage) => void;
|
|
27
|
+
updateMessage: (id: string, u: Partial<ChatMessage>) => void;
|
|
28
|
+
setMessages: (fn: (prev: ChatMessage[]) => ChatMessage[]) => void;
|
|
29
|
+
setIsLoading: (v: boolean) => void;
|
|
30
|
+
setStatus: (s: string) => void;
|
|
31
|
+
setRoute: (r: "home" | "chat") => void;
|
|
32
|
+
setElapsedMs: (v: number | null) => void;
|
|
33
|
+
setTokPerSec: (v: number | null) => void;
|
|
34
|
+
setTokenUsage: (fn: (prev: {
|
|
35
|
+
input: number;
|
|
36
|
+
output: number;
|
|
37
|
+
}) => {
|
|
38
|
+
input: number;
|
|
39
|
+
output: number;
|
|
40
|
+
}) => void;
|
|
41
|
+
setDraftText: (t: string) => void;
|
|
42
|
+
setSlashSelected: (i: number) => void;
|
|
43
|
+
setSubmitKey: (fn: (k: number) => number) => void;
|
|
44
|
+
setPromptHistory: (fn: (prev: string[]) => string[]) => void;
|
|
45
|
+
setHistoryIdx: (i: number) => void;
|
|
46
|
+
setInterruptKey: (k: number) => void;
|
|
47
|
+
setRevertPoint: (id: string | null) => void;
|
|
48
|
+
discardRevert: () => void;
|
|
49
|
+
}
|
|
50
|
+
export declare function useChatSubmit(deps: UseChatSubmitDeps): {
|
|
51
|
+
shownToolCalls: import("react").RefObject<Set<string>>;
|
|
52
|
+
toolMsgMap: import("react").RefObject<Map<string, string>>;
|
|
53
|
+
toolArgsMap: import("react").RefObject<Map<string, unknown>>;
|
|
54
|
+
streamingIdRef: import("react").RefObject<string | null>;
|
|
55
|
+
queuedMessageRef: import("react").RefObject<string | null>;
|
|
56
|
+
handleSubmit: (text: string) => Promise<void>;
|
|
57
|
+
persistMessage: (sdkMsg: Message) => void;
|
|
58
|
+
updateLastAssistantMeta: (meta: Record<string, unknown>) => void;
|
|
59
|
+
};
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=use-chat-submit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-chat-submit.d.ts","sourceRoot":"","sources":["../../../../src/tui/hooks/use-chat-submit.ts"],"names":[],"mappings":"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"}
|