apex-code 0.0.1-alpha.4 → 0.0.1-alpha.6
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 +78 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +2 -2
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +20 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +91 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +17 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +28 -4
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/lsp/client.d.ts +76 -0
- package/dist/core/lsp/client.d.ts.map +1 -0
- package/dist/core/lsp/client.js +469 -0
- package/dist/core/lsp/client.js.map +1 -0
- package/dist/core/lsp/diagnostics.d.ts +47 -0
- package/dist/core/lsp/diagnostics.d.ts.map +1 -0
- package/dist/core/lsp/diagnostics.js +224 -0
- package/dist/core/lsp/diagnostics.js.map +1 -0
- package/dist/core/lsp/pool.d.ts +48 -0
- package/dist/core/lsp/pool.d.ts.map +1 -0
- package/dist/core/lsp/pool.js +150 -0
- package/dist/core/lsp/pool.js.map +1 -0
- package/dist/core/lsp/registry.d.ts +49 -0
- package/dist/core/lsp/registry.d.ts.map +1 -0
- package/dist/core/lsp/registry.js +215 -0
- package/dist/core/lsp/registry.js.map +1 -0
- package/dist/core/lsp/status.d.ts +23 -0
- package/dist/core/lsp/status.d.ts.map +1 -0
- package/dist/core/lsp/status.js +35 -0
- package/dist/core/lsp/status.js.map +1 -0
- package/dist/core/lsp/sync.d.ts +13 -0
- package/dist/core/lsp/sync.d.ts.map +1 -0
- package/dist/core/lsp/sync.js +71 -0
- package/dist/core/lsp/sync.js.map +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +15 -0
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/project-trust.d.ts.map +1 -1
- package/dist/core/project-trust.js +1 -1
- package/dist/core/project-trust.js.map +1 -1
- package/dist/core/sandbox/cli-launch.d.ts +43 -0
- package/dist/core/sandbox/cli-launch.d.ts.map +1 -1
- package/dist/core/sandbox/cli-launch.js +70 -3
- package/dist/core/sandbox/cli-launch.js.map +1 -1
- package/dist/core/sandbox/cli-supervisor.d.ts +2 -0
- package/dist/core/sandbox/cli-supervisor.d.ts.map +1 -1
- package/dist/core/sandbox/cli-supervisor.js +1 -0
- package/dist/core/sandbox/cli-supervisor.js.map +1 -1
- package/dist/core/sdk.d.ts +4 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +10 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +3 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +3 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +19 -7
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +77 -19
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +3 -3
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/contract.d.ts +29 -2
- package/dist/core/tools/contract.d.ts.map +1 -1
- package/dist/core/tools/contract.js.map +1 -1
- package/dist/core/tools/diagnostics.d.ts +39 -0
- package/dist/core/tools/diagnostics.d.ts.map +1 -0
- package/dist/core/tools/diagnostics.js +62 -0
- package/dist/core/tools/diagnostics.js.map +1 -0
- package/dist/core/tools/edit.d.ts +10 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +17 -8
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/index.d.ts +20 -3
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +18 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/lsp.d.ts +62 -0
- package/dist/core/tools/lsp.d.ts.map +1 -0
- package/dist/core/tools/lsp.js +216 -0
- package/dist/core/tools/lsp.js.map +1 -0
- package/dist/core/tools/skill-search.d.ts +32 -0
- package/dist/core/tools/skill-search.d.ts.map +1 -0
- package/dist/core/tools/skill-search.js +56 -0
- package/dist/core/tools/skill-search.js.map +1 -0
- package/dist/core/tools/write.d.ts +10 -0
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +16 -3
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +49 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +235 -1
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.js +2 -1
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +1 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +1 -0
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +19 -6
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +172 -89
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/splash-header.d.ts +41 -0
- package/dist/modes/interactive/components/splash-header.d.ts.map +1 -0
- package/dist/modes/interactive/components/splash-header.js +145 -0
- package/dist/modes/interactive/components/splash-header.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +19 -15
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/apex.json +94 -0
- package/dist/modes/interactive/theme/light.json +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +6 -1
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +2 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/themes/apex-logo.d.ts +21 -0
- package/dist/themes/apex-logo.d.ts.map +1 -0
- package/dist/themes/apex-logo.js +31 -0
- package/dist/themes/apex-logo.js.map +1 -0
- package/dist/utils/changelog.d.ts +7 -2
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js +82 -13
- package/dist/utils/changelog.js.map +1 -1
- package/docs/skills.md +54 -4
- package/npm-shrinkwrap.json +5 -5
- package/package.json +2 -2
|
@@ -36,10 +36,12 @@ import { evaluateToolCall } from "./permissions/gate.js";
|
|
|
36
36
|
import { createInteractiveResponder } from "./permissions/responder.js";
|
|
37
37
|
import { expandPromptTemplate } from "./prompt-templates.js";
|
|
38
38
|
import { CURRENT_SESSION_VERSION, getLatestCompactionEntry, TODO_CUSTOM_ENTRY_TYPE, } from "./session-manager.js";
|
|
39
|
+
import { slugifySkillCommandName } from "./skills.js";
|
|
39
40
|
import { createSyntheticSourceInfo } from "./source-info.js";
|
|
40
41
|
import { buildSystemPrompt } from "./system-prompt.js";
|
|
41
42
|
import { createLocalBashOperations } from "./tools/bash.js";
|
|
42
43
|
import { createAllToolDefinitions } from "./tools/index.js";
|
|
44
|
+
import { createSkillSearchToolDefinition } from "./tools/skill-search.js";
|
|
43
45
|
import { createTodoWriteToolDefinition } from "./tools/todo-write.js";
|
|
44
46
|
import { createToolDefinitionFromAgentTool } from "./tools/tool-definition-wrapper.js";
|
|
45
47
|
import { createToolSchemaToolDefinition } from "./tools/tool-schema.js";
|
|
@@ -126,6 +128,8 @@ export class AgentSession {
|
|
|
126
128
|
_sessionStartEvent;
|
|
127
129
|
_permissionGate;
|
|
128
130
|
_evidenceSink;
|
|
131
|
+
_diagnosticsOperations;
|
|
132
|
+
_lspOperations;
|
|
129
133
|
_extensionUIContext;
|
|
130
134
|
_extensionMode = "print";
|
|
131
135
|
_extensionCommandContextActions;
|
|
@@ -161,6 +165,8 @@ export class AgentSession {
|
|
|
161
165
|
this._sessionStartEvent = config.sessionStartEvent ?? { type: "session_start", reason: "startup" };
|
|
162
166
|
this._permissionGate = config.permissionGate;
|
|
163
167
|
this._evidenceSink = config.evidenceSink ?? new SessionEvidenceSink(this.sessionManager);
|
|
168
|
+
this._diagnosticsOperations = config.diagnosticsOperations;
|
|
169
|
+
this._lspOperations = config.lspOperations;
|
|
164
170
|
// Always subscribe to agent events for internal handling
|
|
165
171
|
// (session persistence, extensions, auto-compaction, retry logic)
|
|
166
172
|
this._unsubscribeAgent = this.agent.subscribe(this._handleAgentEvent);
|
|
@@ -1048,9 +1054,16 @@ export class AgentSession {
|
|
|
1048
1054
|
if (!text.startsWith("/skill:"))
|
|
1049
1055
|
return text;
|
|
1050
1056
|
const spaceIndex = text.indexOf(" ");
|
|
1051
|
-
const
|
|
1057
|
+
const commandToken = spaceIndex === -1 ? text.slice(7) : text.slice(7, spaceIndex);
|
|
1052
1058
|
const args = spaceIndex === -1 ? "" : text.slice(spaceIndex + 1).trim();
|
|
1053
|
-
|
|
1059
|
+
// Matched against the slugged command token (SKILL.5), not the raw frontmatter
|
|
1060
|
+
// name -- identity for an already command-safe name, so an exactly-typed raw
|
|
1061
|
+
// name still matches too. A skill whose name contains a space or other
|
|
1062
|
+
// slash-command-breaking character (docs/skills.md's lenient loading allows
|
|
1063
|
+
// this) is only reachable through its slugged token.
|
|
1064
|
+
const skill = this.resourceLoader
|
|
1065
|
+
.getSkills()
|
|
1066
|
+
.skills.find((s) => slugifySkillCommandName(s.name) === commandToken);
|
|
1054
1067
|
if (!skill)
|
|
1055
1068
|
return text; // Unknown skill, pass through
|
|
1056
1069
|
try {
|
|
@@ -1929,7 +1942,7 @@ export class AgentSession {
|
|
|
1929
1942
|
sourceInfo: template.sourceInfo,
|
|
1930
1943
|
}));
|
|
1931
1944
|
const skills = this._resourceLoader.getSkills().skills.map((skill) => ({
|
|
1932
|
-
name: `skill:${skill.name}`,
|
|
1945
|
+
name: `skill:${slugifySkillCommandName(skill.name)}`,
|
|
1933
1946
|
description: skill.description,
|
|
1934
1947
|
source: "skill",
|
|
1935
1948
|
sourceInfo: skill.sourceInfo,
|
|
@@ -2128,6 +2141,9 @@ export class AgentSession {
|
|
|
2128
2141
|
: createAllToolDefinitions(this._cwd, {
|
|
2129
2142
|
read: { autoResizeImages },
|
|
2130
2143
|
bash: { commandPrefix: shellCommandPrefix, shellPath },
|
|
2144
|
+
edit: { diagnosticsOperations: this._diagnosticsOperations },
|
|
2145
|
+
write: { diagnosticsOperations: this._diagnosticsOperations },
|
|
2146
|
+
...(this._lspOperations ? { lsp: { operations: this._lspOperations } } : {}),
|
|
2131
2147
|
});
|
|
2132
2148
|
baseToolDefinitions.tool_schema = createToolSchemaToolDefinition({
|
|
2133
2149
|
getTool: (name) => {
|
|
@@ -2145,6 +2161,12 @@ export class AgentSession {
|
|
|
2145
2161
|
this.sessionManager.appendCustomEntry(TODO_CUSTOM_ENTRY_TYPE, todos);
|
|
2146
2162
|
},
|
|
2147
2163
|
});
|
|
2164
|
+
// Reads the resource loader live on every call (not a snapshot taken here), so
|
|
2165
|
+
// a project-trust change or a settings reload that alters the loaded skill set
|
|
2166
|
+
// is reflected on the next search without rebuilding the tool registry.
|
|
2167
|
+
baseToolDefinitions.skill_search = createSkillSearchToolDefinition({
|
|
2168
|
+
getSkills: () => this.resourceLoader.getSkills().skills,
|
|
2169
|
+
});
|
|
2148
2170
|
this._baseToolDefinitions = new Map(Object.entries(baseToolDefinitions).map(([name, tool]) => [name, tool]));
|
|
2149
2171
|
const extensionsResult = this._resourceLoader.getExtensions();
|
|
2150
2172
|
if (options.flagValues) {
|
|
@@ -2160,7 +2182,9 @@ export class AgentSession {
|
|
|
2160
2182
|
this._applyExtensionBindings(this._extensionRunner);
|
|
2161
2183
|
const defaultActiveToolNames = this._baseToolsOverride
|
|
2162
2184
|
? Object.keys(this._baseToolsOverride)
|
|
2163
|
-
:
|
|
2185
|
+
: this._lspOperations
|
|
2186
|
+
? ["read", "bash", "edit", "write", "lsp"]
|
|
2187
|
+
: ["read", "bash", "edit", "write"];
|
|
2164
2188
|
const baseActiveToolNames = options.activeToolNames ?? defaultActiveToolNames;
|
|
2165
2189
|
this._refreshToolRegistry({
|
|
2166
2190
|
activeToolNames: baseActiveToolNames,
|