@qduc/term2 0.10.1 → 0.11.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/dist/agent.d.ts +7 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +20 -14
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +10 -11
- package/dist/app.js.map +1 -1
- package/dist/components/layout/BackgroundTasksPanel.d.ts +10 -0
- package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -0
- package/dist/components/layout/BackgroundTasksPanel.js +60 -0
- package/dist/components/layout/BackgroundTasksPanel.js.map +1 -0
- package/dist/components/layout/BottomArea.d.ts +3 -0
- package/dist/components/layout/BottomArea.d.ts.map +1 -1
- package/dist/components/layout/BottomArea.js +3 -1
- package/dist/components/layout/BottomArea.js.map +1 -1
- package/dist/components/message/CommandMessage.js +21 -1
- package/dist/components/message/CommandMessage.js.map +1 -1
- package/dist/components/message/SubagentActivityMessage.d.ts +1 -0
- package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
- package/dist/components/message/SubagentActivityMessage.js +3 -3
- package/dist/components/message/SubagentActivityMessage.js.map +1 -1
- package/dist/components/message/command-message-helpers.d.ts.map +1 -1
- package/dist/components/message/command-message-helpers.js +10 -0
- package/dist/components/message/command-message-helpers.js.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.js +28 -3
- package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
- package/dist/hooks/settings-completion-config.d.ts.map +1 -1
- package/dist/hooks/settings-completion-config.js +4 -0
- package/dist/hooks/settings-completion-config.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +3 -0
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +23 -1
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/lib/agent-client.d.ts +16 -1
- package/dist/lib/agent-client.d.ts.map +1 -1
- package/dist/lib/agent-client.js +22 -1
- package/dist/lib/agent-client.js.map +1 -1
- package/dist/lib/agent-configuration.d.ts.map +1 -1
- package/dist/lib/agent-configuration.js +2 -0
- package/dist/lib/agent-configuration.js.map +1 -1
- package/dist/lib/agent-factory.d.ts +7 -0
- package/dist/lib/agent-factory.d.ts.map +1 -1
- package/dist/lib/agent-factory.js +2 -0
- package/dist/lib/agent-factory.js.map +1 -1
- package/dist/lib/subagent-bridge.d.ts +37 -3
- package/dist/lib/subagent-bridge.d.ts.map +1 -1
- package/dist/lib/subagent-bridge.js +115 -8
- package/dist/lib/subagent-bridge.js.map +1 -1
- package/dist/prompts/async-subagent-delegation.d.ts +9 -0
- package/dist/prompts/async-subagent-delegation.d.ts.map +1 -0
- package/dist/prompts/async-subagent-delegation.js +36 -0
- package/dist/prompts/async-subagent-delegation.js.map +1 -0
- package/dist/prompts/async-subagent-delegation.ts +45 -0
- package/dist/prompts/orchestrator.md +16 -3
- package/dist/prompts/prompt-constructor.d.ts +1 -0
- package/dist/prompts/prompt-constructor.d.ts.map +1 -1
- package/dist/prompts/prompt-constructor.js +5 -1
- package/dist/prompts/prompt-constructor.js.map +1 -1
- package/dist/prompts/prompt-constructor.test.ts +51 -0
- package/dist/prompts/prompt-constructor.ts +7 -0
- package/dist/prompts/subagent-delegation.d.ts.map +1 -1
- package/dist/prompts/subagent-delegation.js +2 -1
- package/dist/prompts/subagent-delegation.js.map +1 -1
- package/dist/prompts/subagent-delegation.ts +2 -1
- package/dist/services/agent-runtime/execution-budget.d.ts +6 -0
- package/dist/services/agent-runtime/execution-budget.d.ts.map +1 -1
- package/dist/services/agent-runtime/execution-budget.js +32 -24
- package/dist/services/agent-runtime/execution-budget.js.map +1 -1
- package/dist/services/agent-runtime/permission-resolver.js +1 -1
- package/dist/services/agent-runtime/permission-resolver.js.map +1 -1
- package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
- package/dist/services/conversation/conversation-adapter.js +2 -0
- package/dist/services/conversation/conversation-adapter.js.map +1 -1
- package/dist/services/conversation/conversation-events.d.ts +12 -1
- package/dist/services/conversation/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
- package/dist/services/conversation/conversation-orchestrator.js +138 -22
- package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
- package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
- package/dist/services/conversation/conversation-replay.js +1 -0
- package/dist/services/conversation/conversation-replay.js.map +1 -1
- package/dist/services/conversation/conversation-service.d.ts +22 -0
- package/dist/services/conversation/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation/conversation-service.js +40 -0
- package/dist/services/conversation/conversation-service.js.map +1 -1
- package/dist/services/conversation/conversation-store.d.ts +6 -0
- package/dist/services/conversation/conversation-store.d.ts.map +1 -1
- package/dist/services/conversation/conversation-store.js +17 -0
- package/dist/services/conversation/conversation-store.js.map +1 -1
- package/dist/services/conversation-agent-client.d.ts +13 -0
- package/dist/services/conversation-agent-client.d.ts.map +1 -1
- package/dist/services/logging/conversation-log-events.d.ts +1 -0
- package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
- package/dist/services/logging/conversation-log-events.js.map +1 -1
- package/dist/services/logging/conversation-logger.d.ts.map +1 -1
- package/dist/services/logging/conversation-logger.js +1 -0
- package/dist/services/logging/conversation-logger.js.map +1 -1
- package/dist/services/plan-mode-interceptor.js +2 -2
- package/dist/services/plan-mode-interceptor.js.map +1 -1
- package/dist/services/session/session-composition.d.ts +23 -0
- package/dist/services/session/session-composition.d.ts.map +1 -1
- package/dist/services/session/session-composition.js +65 -1
- package/dist/services/session/session-composition.js.map +1 -1
- package/dist/services/settings/settings-merger.d.ts.map +1 -1
- package/dist/services/settings/settings-merger.js +2 -0
- package/dist/services/settings/settings-merger.js.map +1 -1
- package/dist/services/settings/settings-schema.d.ts +15 -0
- package/dist/services/settings/settings-schema.d.ts.map +1 -1
- package/dist/services/settings/settings-schema.js +23 -0
- package/dist/services/settings/settings-schema.js.map +1 -1
- package/dist/services/subagents/execution-runner.d.ts +3 -0
- package/dist/services/subagents/execution-runner.d.ts.map +1 -1
- package/dist/services/subagents/execution-runner.js +33 -7
- package/dist/services/subagents/execution-runner.js.map +1 -1
- package/dist/services/subagents/mentor-runner.d.ts +5 -1
- package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
- package/dist/services/subagents/mentor-runner.js +40 -2
- package/dist/services/subagents/mentor-runner.js.map +1 -1
- package/dist/services/subagents/runtime.d.ts +2 -0
- package/dist/services/subagents/runtime.d.ts.map +1 -1
- package/dist/services/subagents/runtime.js +20 -0
- package/dist/services/subagents/runtime.js.map +1 -1
- package/dist/services/subagents/subagent-async-registry.d.ts +39 -0
- package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -0
- package/dist/services/subagents/subagent-async-registry.js +233 -0
- package/dist/services/subagents/subagent-async-registry.js.map +1 -0
- package/dist/services/subagents/subagent-manager.d.ts +17 -0
- package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
- package/dist/services/subagents/subagent-manager.js +45 -1
- package/dist/services/subagents/subagent-manager.js.map +1 -1
- package/dist/services/subagents/subagent-notification-store.d.ts +89 -0
- package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -0
- package/dist/services/subagents/subagent-notification-store.js +167 -0
- package/dist/services/subagents/subagent-notification-store.js.map +1 -0
- package/dist/services/subagents/subagent-session.d.ts +12 -1
- package/dist/services/subagents/subagent-session.d.ts.map +1 -1
- package/dist/services/subagents/subagent-session.js +29 -6
- package/dist/services/subagents/subagent-session.js.map +1 -1
- package/dist/services/subagents/types.d.ts +11 -0
- package/dist/services/subagents/types.d.ts.map +1 -1
- package/dist/services/subagents/types.js +1 -0
- package/dist/services/subagents/types.js.map +1 -1
- package/dist/services/subagents/utils.d.ts +6 -0
- package/dist/services/subagents/utils.d.ts.map +1 -1
- package/dist/services/subagents/utils.js +21 -0
- package/dist/services/subagents/utils.js.map +1 -1
- package/dist/tools/agent/run-subagent-async.d.ts +25 -0
- package/dist/tools/agent/run-subagent-async.d.ts.map +1 -0
- package/dist/tools/agent/run-subagent-async.js +178 -0
- package/dist/tools/agent/run-subagent-async.js.map +1 -0
- package/dist/types/message.d.ts +1 -0
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js.map +1 -1
- package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
- package/dist/utils/conversation/conversation-event-handler.js +1 -0
- package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
- package/dist/utils/settings-command.d.ts.map +1 -1
- package/dist/utils/settings-command.js +10 -0
- package/dist/utils/settings-command.js.map +1 -1
- package/dist/utils/shell/sandbox/sandbox-network-approval.d.ts +2 -1
- package/dist/utils/shell/sandbox/sandbox-network-approval.d.ts.map +1 -1
- package/dist/utils/shell/sandbox/sandbox-network-approval.js +17 -1
- package/dist/utils/shell/sandbox/sandbox-network-approval.js.map +1 -1
- package/dist/utils/shell/sandbox/sandbox-network-store.d.ts +20 -0
- package/dist/utils/shell/sandbox/sandbox-network-store.d.ts.map +1 -0
- package/dist/utils/shell/sandbox/sandbox-network-store.js +99 -0
- package/dist/utils/shell/sandbox/sandbox-network-store.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
const PROJECT_CONFIG_DIR = '.term2';
|
|
4
|
+
const PROJECT_NETWORK_HOSTS_FILE = 'sandbox-network-hosts.json';
|
|
5
|
+
export class SessionNetworkAllowStore {
|
|
6
|
+
#allowedHosts = new Set();
|
|
7
|
+
add(hostOrHostPort) {
|
|
8
|
+
this.#allowedHosts.add(hostOrHostPort.toLowerCase());
|
|
9
|
+
}
|
|
10
|
+
isAllowed(host, port) {
|
|
11
|
+
const lowerHost = host.toLowerCase();
|
|
12
|
+
if (this.#allowedHosts.has(lowerHost))
|
|
13
|
+
return true;
|
|
14
|
+
if (port != null && this.#allowedHosts.has(`${lowerHost}:${port}`))
|
|
15
|
+
return true;
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
clear() {
|
|
19
|
+
this.#allowedHosts.clear();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export class ProjectNetworkAllowStore {
|
|
23
|
+
#workspaceRoot;
|
|
24
|
+
#fs;
|
|
25
|
+
constructor(workspaceRoot, fileSystem = fs) {
|
|
26
|
+
this.#workspaceRoot = workspaceRoot;
|
|
27
|
+
this.#fs = fileSystem;
|
|
28
|
+
}
|
|
29
|
+
get #configPath() {
|
|
30
|
+
return path.join(this.#workspaceRoot, PROJECT_CONFIG_DIR, PROJECT_NETWORK_HOSTS_FILE);
|
|
31
|
+
}
|
|
32
|
+
load() {
|
|
33
|
+
try {
|
|
34
|
+
if (!this.#fs.existsSync(this.#configPath))
|
|
35
|
+
return [];
|
|
36
|
+
const raw = this.#fs.readFileSync(this.#configPath, 'utf8');
|
|
37
|
+
const parsed = JSON.parse(raw);
|
|
38
|
+
if (!parsed || !Array.isArray(parsed.allowHosts))
|
|
39
|
+
return [];
|
|
40
|
+
return Array.from(new Set(parsed.allowHosts.filter((h) => typeof h === 'string').map((h) => h.toLowerCase())));
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
isAllowed(host, port) {
|
|
47
|
+
const hosts = this.load();
|
|
48
|
+
const lowerHost = host.toLowerCase();
|
|
49
|
+
if (hosts.includes(lowerHost))
|
|
50
|
+
return true;
|
|
51
|
+
if (port != null && hosts.includes(`${lowerHost}:${port}`))
|
|
52
|
+
return true;
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
append(hostOrHostPort) {
|
|
56
|
+
const normalized = hostOrHostPort.toLowerCase();
|
|
57
|
+
const current = this.load();
|
|
58
|
+
if (current.includes(normalized))
|
|
59
|
+
return;
|
|
60
|
+
const next = [...current, normalized];
|
|
61
|
+
this.#write(next);
|
|
62
|
+
}
|
|
63
|
+
#write(hosts) {
|
|
64
|
+
const dir = path.dirname(this.#configPath);
|
|
65
|
+
this.#fs.mkdirSync(dir, { recursive: true });
|
|
66
|
+
const payload = { version: 1, allowHosts: hosts };
|
|
67
|
+
this.#fs.writeFileSync(this.#configPath, JSON.stringify(payload, null, 2) + '\n', 'utf8');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export const sessionNetworkAllowStore = new SessionNetworkAllowStore();
|
|
71
|
+
let projectNetworkAllowStore = null;
|
|
72
|
+
let projectNetworkAllowStoreRoot = null;
|
|
73
|
+
export function getProjectNetworkAllowStore(workspaceRoot) {
|
|
74
|
+
if (!projectNetworkAllowStore || projectNetworkAllowStoreRoot !== workspaceRoot) {
|
|
75
|
+
projectNetworkAllowStore = new ProjectNetworkAllowStore(workspaceRoot);
|
|
76
|
+
projectNetworkAllowStoreRoot = workspaceRoot;
|
|
77
|
+
}
|
|
78
|
+
return projectNetworkAllowStore;
|
|
79
|
+
}
|
|
80
|
+
export function isHostAllowed(host, port, workspaceRoot = process.cwd()) {
|
|
81
|
+
if (sessionNetworkAllowStore.isAllowed(host, port))
|
|
82
|
+
return true;
|
|
83
|
+
return getProjectNetworkAllowStore(workspaceRoot).isAllowed(host, port);
|
|
84
|
+
}
|
|
85
|
+
export function addAllowedHost(host, port, scope, workspaceRoot = process.cwd()) {
|
|
86
|
+
const entry = port != null && port !== 80 && port !== 443 ? `${host}:${port}` : host;
|
|
87
|
+
if (scope === 'session') {
|
|
88
|
+
sessionNetworkAllowStore.add(entry);
|
|
89
|
+
}
|
|
90
|
+
else if (scope === 'project') {
|
|
91
|
+
getProjectNetworkAllowStore(workspaceRoot).append(entry);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export function resetSandboxNetworkStoreForTest() {
|
|
95
|
+
sessionNetworkAllowStore.clear();
|
|
96
|
+
projectNetworkAllowStore = null;
|
|
97
|
+
projectNetworkAllowStoreRoot = null;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=sandbox-network-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-network-store.js","sourceRoot":"","sources":["../../../../source/utils/shell/sandbox/sandbox-network-store.ts"],"names":[],"mappings":"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"}
|