@roackb2/heddle 0.0.31 → 0.0.34
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 +31 -5
- package/dist/examples/programmatic-loop.js +2 -0
- package/dist/examples/programmatic-loop.js.map +1 -1
- package/dist/src/cli/ask.d.ts +1 -0
- package/dist/src/cli/ask.d.ts.map +1 -1
- package/dist/src/cli/ask.js +20 -4
- package/dist/src/cli/ask.js.map +1 -1
- package/dist/src/cli/auth.d.ts +15 -0
- package/dist/src/cli/auth.d.ts.map +1 -0
- package/dist/src/cli/auth.js +79 -0
- package/dist/src/cli/auth.js.map +1 -0
- package/dist/src/cli/chat/App.d.ts +1 -1
- package/dist/src/cli/chat/App.d.ts.map +1 -1
- package/dist/src/cli/chat/App.js +17 -3
- package/dist/src/cli/chat/App.js.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.js +20 -6
- package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
- package/dist/src/cli/chat/hooks/usePromptSubmission.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/usePromptSubmission.js +2 -0
- package/dist/src/cli/chat/hooks/usePromptSubmission.js.map +1 -1
- package/dist/src/cli/chat/state/local-commands.d.ts +3 -0
- package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
- package/dist/src/cli/chat/state/local-commands.js +47 -0
- package/dist/src/cli/chat/state/local-commands.js.map +1 -1
- package/dist/src/cli/chat/submit.d.ts +1 -0
- package/dist/src/cli/chat/submit.d.ts.map +1 -1
- package/dist/src/cli/chat/submit.js +1 -0
- package/dist/src/cli/chat/submit.js.map +1 -1
- package/dist/src/cli/chat/utils/runtime.d.ts +13 -1
- package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/runtime.js +24 -3
- package/dist/src/cli/chat/utils/runtime.js.map +1 -1
- package/dist/src/cli/daemon.d.ts +1 -0
- package/dist/src/cli/daemon.d.ts.map +1 -1
- package/dist/src/cli/daemon.js +1 -0
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/heartbeat/worker.d.ts.map +1 -1
- package/dist/src/cli/heartbeat/worker.js +4 -5
- package/dist/src/cli/heartbeat/worker.js.map +1 -1
- package/dist/src/cli/main.js +31 -1
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/remote/control-plane-client.d.ts +11 -4
- package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
- package/dist/src/core/agent/post-mutation.d.ts +0 -7
- package/dist/src/core/agent/post-mutation.d.ts.map +1 -1
- package/dist/src/core/agent/post-mutation.js +0 -66
- package/dist/src/core/agent/post-mutation.js.map +1 -1
- package/dist/src/core/agent/progress-reminders.js +4 -4
- package/dist/src/core/agent/progress-reminders.js.map +1 -1
- package/dist/src/core/agent/run-agent.d.ts.map +1 -1
- package/dist/src/core/agent/run-agent.js +48 -63
- package/dist/src/core/agent/run-agent.js.map +1 -1
- package/dist/src/core/auth/openai-oauth.d.ts +64 -0
- package/dist/src/core/auth/openai-oauth.d.ts.map +1 -0
- package/dist/src/core/auth/openai-oauth.js +279 -0
- package/dist/src/core/auth/openai-oauth.js.map +1 -0
- package/dist/src/core/auth/provider-credentials.d.ts +52 -0
- package/dist/src/core/auth/provider-credentials.d.ts.map +1 -0
- package/dist/src/core/auth/provider-credentials.js +151 -0
- package/dist/src/core/auth/provider-credentials.js.map +1 -0
- package/dist/src/core/chat/compaction.js +5 -2
- package/dist/src/core/chat/compaction.js.map +1 -1
- package/dist/src/core/chat/session-submit.d.ts +1 -0
- package/dist/src/core/chat/session-submit.d.ts.map +1 -1
- package/dist/src/core/chat/session-submit.js +16 -5
- package/dist/src/core/chat/session-submit.js.map +1 -1
- package/dist/src/core/chat/storage.js +4 -4
- package/dist/src/core/chat/storage.js.map +1 -1
- package/dist/src/core/chat/trace-summary.d.ts.map +1 -1
- package/dist/src/core/chat/trace-summary.js +2 -0
- package/dist/src/core/chat/trace-summary.js.map +1 -1
- package/dist/src/core/llm/factory.d.ts +3 -0
- package/dist/src/core/llm/factory.d.ts.map +1 -1
- package/dist/src/core/llm/factory.js +11 -2
- package/dist/src/core/llm/factory.js.map +1 -1
- package/dist/src/core/llm/openai-models.d.ts +2 -0
- package/dist/src/core/llm/openai-models.d.ts.map +1 -1
- package/dist/src/core/llm/openai-models.js +29 -1
- package/dist/src/core/llm/openai-models.js.map +1 -1
- package/dist/src/core/llm/openai.d.ts +13 -0
- package/dist/src/core/llm/openai.d.ts.map +1 -1
- package/dist/src/core/llm/openai.js +127 -8
- package/dist/src/core/llm/openai.js.map +1 -1
- package/dist/src/core/prompts/system-prompt.d.ts.map +1 -1
- package/dist/src/core/prompts/system-prompt.js +7 -1
- package/dist/src/core/prompts/system-prompt.js.map +1 -1
- package/dist/src/core/runtime/agent-loop.d.ts.map +1 -1
- package/dist/src/core/runtime/agent-loop.js +20 -2
- package/dist/src/core/runtime/agent-loop.js.map +1 -1
- package/dist/src/core/runtime/api-keys.d.ts +27 -0
- package/dist/src/core/runtime/api-keys.d.ts.map +1 -1
- package/dist/src/core/runtime/api-keys.js +57 -4
- package/dist/src/core/runtime/api-keys.js.map +1 -1
- package/dist/src/core/runtime/default-tools.d.ts +3 -0
- package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
- package/dist/src/core/runtime/default-tools.js +7 -0
- package/dist/src/core/runtime/default-tools.js.map +1 -1
- package/dist/src/core/tools/delete-file.d.ts +7 -0
- package/dist/src/core/tools/delete-file.d.ts.map +1 -0
- package/dist/src/core/tools/delete-file.js +79 -0
- package/dist/src/core/tools/delete-file.js.map +1 -0
- package/dist/src/core/tools/move-file.d.ts +7 -0
- package/dist/src/core/tools/move-file.d.ts.map +1 -0
- package/dist/src/core/tools/move-file.js +82 -0
- package/dist/src/core/tools/move-file.js.map +1 -0
- package/dist/src/core/tools/report-state.js +1 -1
- package/dist/src/core/tools/report-state.js.map +1 -1
- package/dist/src/core/tools/view-image.d.ts +3 -0
- package/dist/src/core/tools/view-image.d.ts.map +1 -1
- package/dist/src/core/tools/view-image.js +197 -14
- package/dist/src/core/tools/view-image.js.map +1 -1
- package/dist/src/core/tools/web-search.d.ts +2 -0
- package/dist/src/core/tools/web-search.d.ts.map +1 -1
- package/dist/src/core/tools/web-search.js +6 -0
- package/dist/src/core/tools/web-search.js.map +1 -1
- package/dist/src/core/trace/format.d.ts.map +1 -1
- package/dist/src/core/trace/format.js +3 -0
- package/dist/src/core/trace/format.js.map +1 -1
- package/dist/src/core/types.d.ts +7 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +6 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/server/app.d.ts +3 -1
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +1 -0
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/features/control-plane/router.d.ts +11 -4
- package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/router.js +6 -0
- package/dist/src/server/features/control-plane/router.js.map +1 -1
- package/dist/src/server/features/control-plane/services/ask.d.ts +1 -0
- package/dist/src/server/features/control-plane/services/ask.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/services/ask.js +6 -3
- package/dist/src/server/features/control-plane/services/ask.js.map +1 -1
- package/dist/src/server/features/control-plane/services/chat-sessions.d.ts +5 -4
- package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/services/chat-sessions.js +64 -3
- package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
- package/dist/src/server/features/control-plane/services/control-plane-state.d.ts.map +1 -1
- package/dist/src/server/features/control-plane/services/control-plane-state.js +6 -0
- package/dist/src/server/features/control-plane/services/control-plane-state.js.map +1 -1
- package/dist/src/server/features/control-plane/types.d.ts +6 -0
- package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
- package/dist/src/server/router.d.ts +11 -4
- package/dist/src/server/router.d.ts.map +1 -1
- package/dist/src/server/types.d.ts +2 -0
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/web/assets/MonacoDiffViewer-DM8Cy5Xf.js +4 -0
- package/dist/src/web/assets/chunk-DECur_0Z.js +1 -0
- package/dist/src/web/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist/src/web/assets/css-ejLFi3lO.js +3 -0
- package/dist/src/web/assets/editor-Br_kD0ds.css +1 -0
- package/dist/src/web/assets/editor.api2-DRhrSk9h.js +872 -0
- package/dist/src/web/assets/editor.worker-DWlYVeeX.js +26 -0
- package/dist/src/web/assets/go-CaScRb1i.js +1 -0
- package/dist/src/web/assets/html-Cft6PSNf.js +1 -0
- package/dist/src/web/assets/{index-CAWhKnGd.css → index-BEeN-RT5.css} +1 -1
- package/dist/src/web/assets/index-BKDg9H_-.js +56 -0
- package/dist/src/web/assets/java-_yhwA1y2.js +1 -0
- package/dist/src/web/assets/javascript-6bpvthJD.js +1 -0
- package/dist/src/web/assets/json.worker-CCzEOxDx.js +58 -0
- package/dist/src/web/assets/jsonMode-yXXGoTnD.js +10 -0
- package/dist/src/web/assets/markdown-wO2PN3EC.js +1 -0
- package/dist/src/web/assets/python-kY56oSAs.js +1 -0
- package/dist/src/web/assets/rust-BOwv_5ZO.js +1 -0
- package/dist/src/web/assets/scss-Cdfe_FFe.js +3 -0
- package/dist/src/web/assets/shell-Dgo0Jcwc.js +1 -0
- package/dist/src/web/assets/typescript-KZ9-zMZK.js +1 -0
- package/dist/src/web/assets/yaml-B3q_s4Yl.js +1 -0
- package/dist/src/web/index.html +3 -2
- package/package.json +2 -1
- package/dist/src/web/assets/index-D35_IzEn.js +0 -55
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { inferProviderFromModel } from '../llm/providers.js';
|
|
2
|
+
import { getStoredProviderCredential, } from '../auth/provider-credentials.js';
|
|
2
3
|
export function resolveProviderApiKey(provider) {
|
|
3
4
|
switch (provider) {
|
|
4
5
|
case 'openai':
|
|
@@ -10,14 +11,66 @@ export function resolveProviderApiKey(provider) {
|
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
export function resolveApiKeyForModel(model, runtime) {
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
const source = resolveProviderCredentialSourceForModel(model, runtime);
|
|
15
|
+
if (source.type === 'explicit-api-key') {
|
|
16
|
+
return runtime?.apiKey;
|
|
17
|
+
}
|
|
18
|
+
if (source.type === 'env-api-key') {
|
|
19
|
+
return runtime?.apiKey && runtime.apiKeyProvider === source.provider ?
|
|
20
|
+
runtime.apiKey
|
|
21
|
+
: resolveProviderApiKey(source.provider);
|
|
15
22
|
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
export function resolveOAuthCredentialForModel(model, options = {}) {
|
|
26
|
+
const provider = inferProviderFromModel(model);
|
|
27
|
+
const credential = getStoredProviderCredential(provider, options.storePath);
|
|
28
|
+
return credential?.type === 'oauth' ? credential : undefined;
|
|
29
|
+
}
|
|
30
|
+
export function hasProviderCredentialForModel(model, runtime) {
|
|
31
|
+
return resolveProviderCredentialSourceForModel(model, runtime).type !== 'missing';
|
|
32
|
+
}
|
|
33
|
+
export function resolveProviderCredentialSourceForModel(model, runtime) {
|
|
16
34
|
const provider = inferProviderFromModel(model);
|
|
35
|
+
if (runtime?.apiKey && runtime.apiKeyProvider === 'explicit') {
|
|
36
|
+
return { type: 'explicit-api-key' };
|
|
37
|
+
}
|
|
38
|
+
if (runtime?.preferApiKey) {
|
|
39
|
+
if (runtime.apiKey && runtime.apiKeyProvider === provider) {
|
|
40
|
+
return { type: 'env-api-key', provider };
|
|
41
|
+
}
|
|
42
|
+
const preferredApiKey = resolveProviderApiKey(provider);
|
|
43
|
+
if (preferredApiKey) {
|
|
44
|
+
return { type: 'env-api-key', provider };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const oauthCredential = resolveOAuthCredentialForModel(model, { storePath: runtime?.credentialStorePath });
|
|
48
|
+
if (oauthCredential) {
|
|
49
|
+
return {
|
|
50
|
+
type: 'oauth',
|
|
51
|
+
provider: oauthCredential.provider,
|
|
52
|
+
accountId: oauthCredential.accountId,
|
|
53
|
+
expiresAt: oauthCredential.expiresAt,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
17
56
|
if (runtime?.apiKey && runtime.apiKeyProvider === provider) {
|
|
18
|
-
return
|
|
57
|
+
return { type: 'env-api-key', provider };
|
|
58
|
+
}
|
|
59
|
+
const apiKey = resolveProviderApiKey(provider);
|
|
60
|
+
if (apiKey) {
|
|
61
|
+
return { type: 'env-api-key', provider };
|
|
62
|
+
}
|
|
63
|
+
return { type: 'missing', provider };
|
|
64
|
+
}
|
|
65
|
+
export function formatMissingProviderCredentialMessage(model) {
|
|
66
|
+
const provider = inferProviderFromModel(model);
|
|
67
|
+
if (provider === 'openai') {
|
|
68
|
+
return 'Missing OpenAI credential. Run `heddle auth login openai` to use OpenAI account sign-in, or set OPENAI_API_KEY for Platform API-key mode.';
|
|
69
|
+
}
|
|
70
|
+
if (provider === 'anthropic') {
|
|
71
|
+
return 'Missing Anthropic credential. Set ANTHROPIC_API_KEY for Anthropic models.';
|
|
19
72
|
}
|
|
20
|
-
return
|
|
73
|
+
return `Missing provider credential for ${provider}.`;
|
|
21
74
|
}
|
|
22
75
|
function firstDefinedNonEmpty(...values) {
|
|
23
76
|
return values.find((value) => typeof value === 'string' && value.trim().length > 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../../src/core/runtime/api-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../../../src/core/runtime/api-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { ToolDefinition } from '../types.js';
|
|
2
|
+
import type { ProviderCredentialSource } from './api-keys.js';
|
|
2
3
|
export type DefaultAgentToolsOptions = {
|
|
3
4
|
model: string;
|
|
4
5
|
apiKey?: string;
|
|
6
|
+
providerCredentialSource?: ProviderCredentialSource;
|
|
7
|
+
credentialStorePath?: string;
|
|
5
8
|
workspaceRoot?: string;
|
|
6
9
|
stateDir?: string;
|
|
7
10
|
memoryDir?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-tools.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime/default-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"default-tools.d.ts","sourceRoot":"","sources":["../../../../src/core/runtime/default-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAoBlD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,CAAC;IACvE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,cAAc,EAAE,CAoC3F"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
|
+
import { createDeleteFileTool } from '../tools/delete-file.js';
|
|
2
3
|
import { createEditFileTool } from '../tools/edit-file.js';
|
|
3
4
|
import { createListFilesTool } from '../tools/list-files.js';
|
|
5
|
+
import { createMoveFileTool } from '../tools/move-file.js';
|
|
4
6
|
import { createEditMemoryNoteTool, createListMemoryNotesTool, createReadMemoryNoteTool, createSearchMemoryNotesTool, } from '../tools/memory-notes.js';
|
|
5
7
|
import { createReadFileTool } from '../tools/read-file.js';
|
|
6
8
|
import { createMemoryCheckpointTool } from '../tools/memory-checkpoint.js';
|
|
@@ -20,14 +22,19 @@ export function createDefaultAgentTools(options) {
|
|
|
20
22
|
createListFilesTool({ workspaceRoot }),
|
|
21
23
|
createReadFileTool({ workspaceRoot }),
|
|
22
24
|
createEditFileTool({ workspaceRoot }),
|
|
25
|
+
createDeleteFileTool({ workspaceRoot }),
|
|
26
|
+
createMoveFileTool({ workspaceRoot }),
|
|
23
27
|
createSearchFilesTool({ excludedDirs: options.searchIgnoreDirs, workspaceRoot }),
|
|
24
28
|
createWebSearchTool({
|
|
25
29
|
model: options.model,
|
|
26
30
|
apiKey: options.apiKey,
|
|
31
|
+
providerCredentialSource: options.providerCredentialSource,
|
|
27
32
|
}),
|
|
28
33
|
createViewImageTool({
|
|
29
34
|
model: options.model,
|
|
30
35
|
apiKey: options.apiKey,
|
|
36
|
+
providerCredentialSource: options.providerCredentialSource,
|
|
37
|
+
credentialStorePath: options.credentialStorePath,
|
|
31
38
|
workspaceRoot,
|
|
32
39
|
}),
|
|
33
40
|
reportStateTool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-tools.js","sourceRoot":"","sources":["../../../../src/core/runtime/default-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"default-tools.js","sourceRoot":"","sources":["../../../../src/core/runtime/default-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../types.js';
|
|
2
|
+
export type DeleteFileToolOptions = {
|
|
3
|
+
workspaceRoot?: string;
|
|
4
|
+
};
|
|
5
|
+
export declare function createDeleteFileTool(options?: DeleteFileToolOptions): ToolDefinition;
|
|
6
|
+
export declare const deleteFileTool: ToolDefinition;
|
|
7
|
+
//# sourceMappingURL=delete-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-file.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/delete-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAO9D,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAiExF;AAED,eAAO,MAAM,cAAc,EAAE,cAAuC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { rm, stat } from 'node:fs/promises';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
export function createDeleteFileTool(options = {}) {
|
|
4
|
+
const configuredWorkspaceRoot = options.workspaceRoot ? resolve(options.workspaceRoot) : undefined;
|
|
5
|
+
return {
|
|
6
|
+
name: 'delete_file',
|
|
7
|
+
description: 'Delete a file or remove a directory when you explicitly need to clean up or retire workspace content. Prefer this over shell rm for normal file deletion. Use { "path" } for files, or set recursive to true if you intentionally want to remove a directory tree. Relative paths are resolved from the active workspace root and may also point to nearby parent or sibling folders. Returns a structured deletion summary.',
|
|
8
|
+
requiresApproval: true,
|
|
9
|
+
parameters: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
additionalProperties: false,
|
|
12
|
+
properties: {
|
|
13
|
+
path: {
|
|
14
|
+
type: 'string',
|
|
15
|
+
description: 'Path to the file or directory to delete',
|
|
16
|
+
},
|
|
17
|
+
recursive: {
|
|
18
|
+
type: 'boolean',
|
|
19
|
+
description: 'Allow deleting a directory tree recursively',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
required: ['path'],
|
|
23
|
+
},
|
|
24
|
+
async execute(raw) {
|
|
25
|
+
if (!isDeleteFileInput(raw)) {
|
|
26
|
+
return {
|
|
27
|
+
ok: false,
|
|
28
|
+
error: 'Invalid input for delete_file. Required field: path. Optional field: recursive.',
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const workspaceRoot = configuredWorkspaceRoot ?? process.cwd();
|
|
32
|
+
const targetPath = resolve(workspaceRoot, raw.path);
|
|
33
|
+
try {
|
|
34
|
+
const info = await stat(targetPath);
|
|
35
|
+
if (info.isDirectory() && !raw.recursive) {
|
|
36
|
+
return {
|
|
37
|
+
ok: false,
|
|
38
|
+
error: `Refusing to delete directory ${targetPath} without recursive: true.`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
await rm(targetPath, {
|
|
42
|
+
recursive: Boolean(raw.recursive),
|
|
43
|
+
force: false,
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
ok: true,
|
|
47
|
+
output: {
|
|
48
|
+
path: targetPath,
|
|
49
|
+
deleted: true,
|
|
50
|
+
kind: info.isDirectory() ? 'directory' : 'file',
|
|
51
|
+
recursive: Boolean(raw.recursive),
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
return {
|
|
57
|
+
ok: false,
|
|
58
|
+
error: `Failed to delete ${targetPath}: ${error instanceof Error ? error.message : String(error)}`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export const deleteFileTool = createDeleteFileTool();
|
|
65
|
+
function isDeleteFileInput(raw) {
|
|
66
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const input = raw;
|
|
70
|
+
const keys = Object.keys(input);
|
|
71
|
+
if (keys.some((key) => key !== 'path' && key !== 'recursive')) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (typeof input.path !== 'string' || input.path.trim().length === 0) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return input.recursive === undefined || typeof input.recursive === 'boolean';
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=delete-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-file.js","sourceRoot":"","sources":["../../../../src/core/tools/delete-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,MAAM,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IACtE,MAAM,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnG,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,8ZAA8Z;QACha,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,6CAA6C;iBAC3D;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,KAAK,CAAC,OAAO,CAAC,GAAY;YACxB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,iFAAiF;iBACzF,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,uBAAuB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAEpD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;gBACpC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;oBACzC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,gCAAgC,UAAU,2BAA2B;qBAC7E,CAAC;gBACJ,CAAC;gBAED,MAAM,EAAE,CAAC,UAAU,EAAE;oBACnB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;oBACjC,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;gBAEH,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,MAAM,EAAE;wBACN,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;wBAC/C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;qBAClC;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,oBAAoB,UAAU,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACnG,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAmB,oBAAoB,EAAE,CAAC;AAErE,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,WAAW,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../types.js';
|
|
2
|
+
export type MoveFileToolOptions = {
|
|
3
|
+
workspaceRoot?: string;
|
|
4
|
+
};
|
|
5
|
+
export declare function createMoveFileTool(options?: MoveFileToolOptions): ToolDefinition;
|
|
6
|
+
export declare const moveFileTool: ToolDefinition;
|
|
7
|
+
//# sourceMappingURL=move-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move-file.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/move-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAQ9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAiEpF;AAED,eAAO,MAAM,YAAY,EAAE,cAAqC,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { mkdir, rename, stat } from 'node:fs/promises';
|
|
2
|
+
import { dirname, resolve } from 'node:path';
|
|
3
|
+
export function createMoveFileTool(options = {}) {
|
|
4
|
+
const configuredWorkspaceRoot = options.workspaceRoot ? resolve(options.workspaceRoot) : undefined;
|
|
5
|
+
return {
|
|
6
|
+
name: 'move_file',
|
|
7
|
+
description: 'Move or rename a file or directory within the workspace when you need a direct file operation without shell mv. Use this for renames, relocations, or cleanup moves. Relative paths are resolved from the active workspace root and may also point to nearby parent or sibling folders. Optionally create missing destination parent directories with createParentDirs. Returns a structured move summary.',
|
|
8
|
+
requiresApproval: true,
|
|
9
|
+
parameters: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
additionalProperties: false,
|
|
12
|
+
properties: {
|
|
13
|
+
from: {
|
|
14
|
+
type: 'string',
|
|
15
|
+
description: 'Existing path to move from',
|
|
16
|
+
},
|
|
17
|
+
to: {
|
|
18
|
+
type: 'string',
|
|
19
|
+
description: 'Destination path to move to',
|
|
20
|
+
},
|
|
21
|
+
createParentDirs: {
|
|
22
|
+
type: 'boolean',
|
|
23
|
+
description: 'Create destination parent directories if they are missing',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
required: ['from', 'to'],
|
|
27
|
+
},
|
|
28
|
+
async execute(raw) {
|
|
29
|
+
if (!isMoveFileInput(raw)) {
|
|
30
|
+
return {
|
|
31
|
+
ok: false,
|
|
32
|
+
error: 'Invalid input for move_file. Required fields: from, to. Optional field: createParentDirs.',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const workspaceRoot = configuredWorkspaceRoot ?? process.cwd();
|
|
36
|
+
const fromPath = resolve(workspaceRoot, raw.from);
|
|
37
|
+
const toPath = resolve(workspaceRoot, raw.to);
|
|
38
|
+
try {
|
|
39
|
+
const info = await stat(fromPath);
|
|
40
|
+
if (raw.createParentDirs) {
|
|
41
|
+
await mkdir(dirname(toPath), { recursive: true });
|
|
42
|
+
}
|
|
43
|
+
await rename(fromPath, toPath);
|
|
44
|
+
return {
|
|
45
|
+
ok: true,
|
|
46
|
+
output: {
|
|
47
|
+
from: fromPath,
|
|
48
|
+
to: toPath,
|
|
49
|
+
moved: true,
|
|
50
|
+
kind: info.isDirectory() ? 'directory' : 'file',
|
|
51
|
+
createdParentDirs: Boolean(raw.createParentDirs),
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
return {
|
|
57
|
+
ok: false,
|
|
58
|
+
error: `Failed to move ${fromPath} to ${toPath}: ${error instanceof Error ? error.message : String(error)}`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export const moveFileTool = createMoveFileTool();
|
|
65
|
+
function isMoveFileInput(raw) {
|
|
66
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const input = raw;
|
|
70
|
+
const keys = Object.keys(input);
|
|
71
|
+
if (keys.some((key) => key !== 'from' && key !== 'to' && key !== 'createParentDirs')) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (typeof input.from !== 'string' || input.from.trim().length === 0) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
if (typeof input.to !== 'string' || input.to.trim().length === 0) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return input.createParentDirs === undefined || typeof input.createParentDirs === 'boolean';
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=move-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move-file.js","sourceRoot":"","sources":["../../../../src/core/tools/move-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
export const reportStateTool = {
|
|
6
6
|
name: 'report_state',
|
|
7
|
-
description: 'Report
|
|
7
|
+
description: 'Report a genuine blocker or missing requirement in a structured way. Use this when progress is actually blocked by missing information, missing tool support, missing inputs, or a runtime limitation that prevents the next concrete action. Do not use it for ordinary progress updates or to restate a plan you can already execute. This tool does not inspect or change the environment. It records what is missing and the single most important next thing you need so future maintainers can understand the blocker. Returns the same structured report back. Example input: { "rationale": "I need to inspect the top-level directory first.", "missing": ["Top-level directory contents"], "nextNeed": "list_files on ." }',
|
|
8
8
|
parameters: {
|
|
9
9
|
type: 'object',
|
|
10
10
|
additionalProperties: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-state.js","sourceRoot":"","sources":["../../../../src/core/tools/report-state.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,qBAAqB;AACrB,+EAA+E;AAC/E,8EAA8E;AAU9E,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"report-state.js","sourceRoot":"","sources":["../../../../src/core/tools/report-state.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,qBAAqB;AACrB,+EAA+E;AAC/E,8EAA8E;AAU9E,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,ssBAAssB;IACxsB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iDAAiD;aAC/D;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,yCAAyC;aACvD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iGAAiG;aAC/G;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EACH,gGAAgG;aACnG,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACnC,CAAC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,GAAY;IACtC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IACE,IAAI,CAAC,IAAI,CACP,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,KAAK,WAAW;QACnB,GAAG,KAAK,SAAS;QACjB,GAAG,KAAK,UAAU,CACrB,EACD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { ToolDefinition } from '../types.js';
|
|
2
2
|
import type { LlmProvider } from '../llm/types.js';
|
|
3
|
+
import { type ProviderCredentialSource } from '../runtime/api-keys.js';
|
|
3
4
|
export type ViewImageToolOptions = {
|
|
4
5
|
model?: string;
|
|
5
6
|
provider?: LlmProvider;
|
|
6
7
|
apiKey?: string;
|
|
8
|
+
providerCredentialSource?: ProviderCredentialSource;
|
|
9
|
+
credentialStorePath?: string;
|
|
7
10
|
workspaceRoot?: string;
|
|
8
11
|
};
|
|
9
12
|
export declare const viewImageTool: ToolDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-image.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/view-image.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"view-image.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/view-image.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAK9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAkC,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAOvG,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,cAAsC,CAAC;AAEnE,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAgEtF"}
|