@gajae-code/coding-agent 0.7.11 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -0
- package/README.md +1 -1
- package/dist/types/capability/mcp.d.ts +2 -0
- package/dist/types/config/settings-schema.d.ts +25 -2
- package/dist/types/discovery/cursor.d.ts +4 -1
- package/dist/types/discovery/index.d.ts +0 -1
- package/dist/types/discovery/windsurf.d.ts +3 -1
- package/dist/types/gjc-runtime/session-state-sidecar.d.ts +5 -0
- package/dist/types/modes/components/custom-editor.d.ts +4 -0
- package/dist/types/modes/components/settings-selector.d.ts +1 -0
- package/dist/types/modes/components/status-line.d.ts +8 -0
- package/dist/types/modes/components/two-column-body.d.ts +9 -0
- package/dist/types/modes/components/welcome.d.ts +9 -1
- package/dist/types/modes/controllers/input-controller.d.ts +1 -1
- package/dist/types/modes/controllers/selector-controller.d.ts +8 -0
- package/dist/types/modes/interactive-mode.d.ts +1 -0
- package/dist/types/modes/rpc/rpc-types.d.ts +1 -0
- package/dist/types/modes/types.d.ts +1 -0
- package/dist/types/notifications/telegram-daemon.d.ts +3 -0
- package/dist/types/runtime-mcp/config-writer.d.ts +9 -0
- package/dist/types/runtime-mcp/config.d.ts +2 -0
- package/dist/types/runtime-mcp/loader.d.ts +2 -0
- package/dist/types/runtime-mcp/manager.d.ts +2 -0
- package/dist/types/runtime-mcp/types.d.ts +6 -0
- package/dist/types/system-prompt.d.ts +7 -0
- package/dist/types/tools/skill.d.ts +1 -1
- package/dist/types/workflow/workflow-intent-diff.d.ts +19 -0
- package/package.json +10 -10
- package/src/capability/mcp.ts +2 -0
- package/src/config/mcp-schema.json +5 -1
- package/src/config/settings-schema.ts +18 -2
- package/src/coordinator-mcp/server.ts +39 -4
- package/src/discovery/builtin.ts +12 -0
- package/src/discovery/cursor.ts +5 -84
- package/src/discovery/gemini.ts +3 -89
- package/src/discovery/index.ts +4 -1
- package/src/discovery/mcp-json.ts +11 -0
- package/src/discovery/opencode.ts +5 -122
- package/src/discovery/windsurf.ts +4 -82
- package/src/edit/read-file.ts +9 -1
- package/src/extensibility/skills.ts +30 -2
- package/src/gjc-runtime/session-state-sidecar.ts +167 -24
- package/src/gjc-runtime/team-runtime.ts +56 -51
- package/src/internal-urls/docs-index.generated.ts +4 -4
- package/src/modes/acp/acp-agent.ts +7 -6
- package/src/modes/components/agent-dashboard.ts +1 -34
- package/src/modes/components/custom-editor.ts +18 -0
- package/src/modes/components/extensions/extension-dashboard.ts +2 -48
- package/src/modes/components/model-selector.ts +58 -2
- package/src/modes/components/session-selector.ts +19 -9
- package/src/modes/components/settings-selector.ts +13 -0
- package/src/modes/components/status-line.ts +215 -86
- package/src/modes/components/tree-selector.ts +28 -8
- package/src/modes/components/two-column-body.ts +36 -0
- package/src/modes/components/welcome.ts +171 -35
- package/src/modes/controllers/command-controller.ts +3 -2
- package/src/modes/controllers/event-controller.ts +4 -0
- package/src/modes/controllers/input-controller.ts +158 -38
- package/src/modes/controllers/selector-controller.ts +25 -28
- package/src/modes/interactive-mode.ts +20 -23
- package/src/modes/prompt-action-autocomplete.ts +17 -7
- package/src/modes/rpc/rpc-types.ts +1 -0
- package/src/modes/shared/agent-wire/deep-interview-gate.ts +9 -3
- package/src/modes/shared/agent-wire/workflow-gate-schema.ts +20 -0
- package/src/modes/types.ts +1 -0
- package/src/notifications/index.ts +20 -1
- package/src/notifications/lifecycle-control-runtime.ts +12 -3
- package/src/notifications/telegram-daemon.ts +14 -0
- package/src/prompts/system/system-prompt.md +15 -1
- package/src/runtime-mcp/config-writer.ts +28 -0
- package/src/runtime-mcp/config.ts +7 -0
- package/src/runtime-mcp/loader.ts +3 -0
- package/src/runtime-mcp/manager.ts +3 -0
- package/src/runtime-mcp/types.ts +6 -0
- package/src/sdk.ts +4 -0
- package/src/session/agent-session.ts +21 -1
- package/src/session/session-manager.ts +58 -18
- package/src/system-prompt.ts +8 -0
- package/src/task/executor.ts +5 -0
- package/src/tools/ast-grep.ts +10 -7
- package/src/tools/bash.ts +15 -6
- package/src/tools/index.ts +8 -1
- package/src/tools/skill.ts +1 -1
- package/src/workflow/workflow-intent-diff.ts +199 -0
- package/dist/types/discovery/vscode.d.ts +0 -1
- package/src/discovery/vscode.ts +0 -105
package/src/discovery/vscode.ts
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VS Code Provider
|
|
3
|
-
*
|
|
4
|
-
* Loads config from `.vscode` directory (project-only).
|
|
5
|
-
* Supports MCP server discovery from `mcp.json` with nested `mcp.servers` structure.
|
|
6
|
-
*/
|
|
7
|
-
import { tryParseJson } from "@gajae-code/utils";
|
|
8
|
-
import { registerProvider } from "../capability";
|
|
9
|
-
import { readFile } from "../capability/fs";
|
|
10
|
-
import { type MCPServer, mcpCapability } from "../capability/mcp";
|
|
11
|
-
import type { LoadContext, LoadResult } from "../capability/types";
|
|
12
|
-
import { createSourceMeta, expandEnvVarsDeep, getProjectPath } from "./helpers";
|
|
13
|
-
|
|
14
|
-
const PROVIDER_ID = "vscode";
|
|
15
|
-
const DISPLAY_NAME = "VS Code";
|
|
16
|
-
const PRIORITY = 20;
|
|
17
|
-
|
|
18
|
-
// =============================================================================
|
|
19
|
-
// MCP Servers
|
|
20
|
-
// =============================================================================
|
|
21
|
-
|
|
22
|
-
registerProvider<MCPServer>(mcpCapability.id, {
|
|
23
|
-
id: PROVIDER_ID,
|
|
24
|
-
displayName: DISPLAY_NAME,
|
|
25
|
-
description: "Load MCP servers from .vscode/mcp.json",
|
|
26
|
-
priority: PRIORITY,
|
|
27
|
-
async load(ctx: LoadContext): Promise<LoadResult<MCPServer>> {
|
|
28
|
-
const items: MCPServer[] = [];
|
|
29
|
-
const warnings: string[] = [];
|
|
30
|
-
|
|
31
|
-
// Project-only (VS Code doesn't support user-level MCP config)
|
|
32
|
-
const projectPath = getProjectPath(ctx, "vscode", "mcp.json");
|
|
33
|
-
if (projectPath) {
|
|
34
|
-
const result = await loadMCPConfig(ctx, projectPath, "project");
|
|
35
|
-
items.push(...result.items);
|
|
36
|
-
if (result.warnings) warnings.push(...result.warnings);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return { items, warnings };
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Load MCP servers from a mcp.json file.
|
|
45
|
-
* VS Code uses nested structure: { "mcp": { "servers": { ... } } }
|
|
46
|
-
*/
|
|
47
|
-
async function loadMCPConfig(
|
|
48
|
-
_ctx: LoadContext,
|
|
49
|
-
path: string,
|
|
50
|
-
level: "user" | "project",
|
|
51
|
-
): Promise<LoadResult<MCPServer>> {
|
|
52
|
-
const items: MCPServer[] = [];
|
|
53
|
-
const warnings: string[] = [];
|
|
54
|
-
|
|
55
|
-
const content = await readFile(path);
|
|
56
|
-
if (!content) {
|
|
57
|
-
warnings.push(`Failed to read ${path}`);
|
|
58
|
-
return { items, warnings };
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const parsed = tryParseJson<{ mcp?: { servers?: Record<string, unknown> } }>(content);
|
|
62
|
-
if (!parsed) {
|
|
63
|
-
warnings.push(`Invalid JSON in ${path}`);
|
|
64
|
-
return { items, warnings };
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// VS Code uses nested structure: mcp.servers
|
|
68
|
-
const servers = parsed.mcp?.servers;
|
|
69
|
-
if (!servers || typeof servers !== "object") {
|
|
70
|
-
return { items, warnings };
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
for (const [name, config] of Object.entries(servers)) {
|
|
74
|
-
if (!config || typeof config !== "object") {
|
|
75
|
-
warnings.push(`Invalid config for server "${name}" in ${path}`);
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const raw = config as Record<string, unknown>;
|
|
80
|
-
|
|
81
|
-
// Expand environment variables
|
|
82
|
-
const expanded = expandEnvVarsDeep(raw);
|
|
83
|
-
|
|
84
|
-
const server: MCPServer = {
|
|
85
|
-
name,
|
|
86
|
-
command: typeof expanded.command === "string" ? expanded.command : undefined,
|
|
87
|
-
args: Array.isArray(expanded.args) ? (expanded.args as string[]) : undefined,
|
|
88
|
-
env: expanded.env && typeof expanded.env === "object" ? (expanded.env as Record<string, string>) : undefined,
|
|
89
|
-
url: typeof expanded.url === "string" ? expanded.url : undefined,
|
|
90
|
-
headers:
|
|
91
|
-
expanded.headers && typeof expanded.headers === "object"
|
|
92
|
-
? (expanded.headers as Record<string, string>)
|
|
93
|
-
: undefined,
|
|
94
|
-
transport: ["stdio", "sse", "http"].includes(expanded.transport as string)
|
|
95
|
-
? (expanded.transport as "stdio" | "sse" | "http")
|
|
96
|
-
: undefined,
|
|
97
|
-
timeout: typeof expanded.timeout === "number" ? expanded.timeout : undefined,
|
|
98
|
-
_source: createSourceMeta(PROVIDER_ID, path, level),
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
items.push(server);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return { items, warnings };
|
|
105
|
-
}
|