@letta-ai/letta-code 0.32.17 → 0.32.19
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-presets.js +14 -3
- package/dist/agent-presets.js.map +3 -3
- package/dist/channels-public.js +2 -2
- package/dist/channels-public.js.map +2 -2
- package/dist/gateway-core.js +2 -2
- package/dist/gateway-core.js.map +3 -3
- package/dist/mcp-client.js +2 -2
- package/dist/mcp-client.js.map +1 -1
- package/dist/types/agent/approval-execution.d.ts.map +1 -1
- package/dist/types/agent/create-agent-request.d.ts +8 -2
- package/dist/types/agent/create-agent-request.d.ts.map +1 -1
- package/dist/types/agent/memory-filesystem.d.ts +8 -3
- package/dist/types/agent/memory-filesystem.d.ts.map +1 -1
- package/dist/types/agent/memory-git-dir.d.ts +7 -0
- package/dist/types/agent/memory-git-dir.d.ts.map +1 -0
- package/dist/types/agent/memory-git.d.ts.map +1 -1
- package/dist/types/agent/memory-operation.d.ts +18 -0
- package/dist/types/agent/memory-operation.d.ts.map +1 -0
- package/dist/types/agent/memory-worktree.d.ts +83 -0
- package/dist/types/agent/memory-worktree.d.ts.map +1 -0
- package/dist/types/agent/message.d.ts.map +1 -1
- package/dist/types/agent/subagent-state.d.ts +8 -7
- package/dist/types/agent/subagent-state.d.ts.map +1 -1
- package/dist/types/agent/subagents/child-send-tracking.d.ts +35 -0
- package/dist/types/agent/subagents/child-send-tracking.d.ts.map +1 -0
- package/dist/types/agent/subagents/fork-conversation.d.ts +23 -0
- package/dist/types/agent/subagents/fork-conversation.d.ts.map +1 -0
- package/dist/types/agent/subagents/memory-handoff.d.ts +15 -0
- package/dist/types/agent/subagents/memory-handoff.d.ts.map +1 -0
- package/dist/types/agent/subagents/memory-worker-session.d.ts +8 -0
- package/dist/types/agent/subagents/memory-worker-session.d.ts.map +1 -0
- package/dist/types/agent/subagents/memory-worker.d.ts +25 -0
- package/dist/types/agent/subagents/memory-worker.d.ts.map +1 -0
- package/dist/types/agent/subagents/sandbox.d.ts.map +1 -1
- package/dist/types/agent/subagents/subagent-launcher.d.ts.map +1 -1
- package/dist/types/backend/dev/pi-model-factory.d.ts.map +1 -1
- package/dist/types/backend/dev/pi-provider-registry.d.ts.map +1 -1
- package/dist/types/cli/helpers/accumulator.d.ts +2 -0
- package/dist/types/cli/helpers/accumulator.d.ts.map +1 -1
- package/dist/types/cli/helpers/tool-name-mapping.d.ts +2 -1
- package/dist/types/cli/helpers/tool-name-mapping.d.ts.map +1 -1
- package/dist/types/permissions/checker.d.ts.map +1 -1
- package/dist/types/tools/impl/bash.d.ts.map +1 -1
- package/dist/types/tools/impl/exec-command.d.ts.map +1 -1
- package/dist/types/tools/impl/memory-task-lifecycle.d.ts +41 -0
- package/dist/types/tools/impl/memory-task-lifecycle.d.ts.map +1 -0
- package/dist/types/tools/impl/monitor.d.ts.map +1 -1
- package/dist/types/tools/impl/process_manager.d.ts +6 -11
- package/dist/types/tools/impl/process_manager.d.ts.map +1 -1
- package/dist/types/tools/impl/read.d.ts.map +1 -1
- package/dist/types/tools/impl/send-agent-message.d.ts +3 -1
- package/dist/types/tools/impl/send-agent-message.d.ts.map +1 -1
- package/dist/types/tools/impl/task.d.ts +0 -20
- package/dist/types/tools/impl/task.d.ts.map +1 -1
- package/dist/types/tools/impl/workflow.d.ts +1 -1
- package/dist/types/tools/impl/workflow.d.ts.map +1 -1
- package/dist/types/tools/manager.d.ts.map +1 -1
- package/dist/types/tools/tool-definitions.d.ts +0 -2
- package/dist/types/tools/tool-definitions.d.ts.map +1 -1
- package/dist/types/tools/tool-permissions.d.ts.map +1 -1
- package/dist/types/tools/toolset-catalog.d.ts +1 -1
- package/dist/types/tools/toolset-catalog.d.ts.map +1 -1
- package/dist/types/tools/toolset.d.ts +4 -1
- package/dist/types/tools/toolset.d.ts.map +1 -1
- package/dist/types/tools/workflow/execution-registry.d.ts +12 -3
- package/dist/types/tools/workflow/execution-registry.d.ts.map +1 -1
- package/dist/types/tools/workflow/sdk-spawner.d.ts.map +1 -1
- package/dist/types/tools/workflow/types.d.ts +6 -1
- package/dist/types/tools/workflow/types.d.ts.map +1 -1
- package/dist/types/tools/workflow/workflow-engine.d.ts.map +1 -1
- package/dist/types/utils/file-lock.d.ts +18 -1
- package/dist/types/utils/file-lock.d.ts.map +1 -1
- package/dist/types/utils/image-resize.d.ts +4 -0
- package/dist/types/utils/image-resize.d.ts.map +1 -1
- package/dist/types/utils/openai-reasoning-effort.d.ts.map +1 -1
- package/dist/types/utils/process-liveness.d.ts +22 -0
- package/dist/types/utils/process-liveness.d.ts.map +1 -0
- package/letta.js +2 -2
- package/package.json +4 -4
- package/scripts/isolated-unit-tests.json +5 -0
- package/scripts/postinstall-patches.js +91 -0
- package/scripts/source-file-size-baseline.json +7 -7
- package/skills/creating-mods/references/plan-mode.md +1 -1
- package/skills/dispatching-coding-agents/SKILL.md +2 -2
- package/vendor/ink/build/components/App.js +1 -2
- package/vendor/ink/build/log-update.js +8 -0
- package/dist/types/tools/impl/bash-output.d.ts +0 -32
- package/dist/types/tools/impl/bash-output.d.ts.map +0 -1
- package/dist/types/tools/impl/task-output.d.ts +0 -19
- package/dist/types/tools/impl/task-output.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@letta-ai/letta-code",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.19",
|
|
4
4
|
"lettaStartupLogProtocol": 1,
|
|
5
5
|
"description": "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
|
|
6
6
|
"type": "module",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"access": "public"
|
|
131
131
|
},
|
|
132
132
|
"dependencies": {
|
|
133
|
-
"@earendil-works/pi-ai": "^0.
|
|
133
|
+
"@earendil-works/pi-ai": "^0.87.1",
|
|
134
134
|
"@janhapke/sharp-electron": "0.35.3-electron.1",
|
|
135
135
|
"@letta-ai/letta-agent-sdk": "^0.8.11",
|
|
136
136
|
"@letta-ai/letta-client": "^1.10.2",
|
|
@@ -141,7 +141,8 @@
|
|
|
141
141
|
"cron-parser": "^5.6.1",
|
|
142
142
|
"cross-spawn": "^7.0.6",
|
|
143
143
|
"glob": "^13.0.0",
|
|
144
|
-
"ink
|
|
144
|
+
"ink": "5.2.1",
|
|
145
|
+
"ink-link": "^4.1.0",
|
|
145
146
|
"node-pty": "^1.1.0",
|
|
146
147
|
"open": "^10.2.0",
|
|
147
148
|
"react": "18.2.0",
|
|
@@ -165,7 +166,6 @@
|
|
|
165
166
|
"diff": "^8.0.2",
|
|
166
167
|
"grammy": "^1.42.0",
|
|
167
168
|
"husky": "9.1.7",
|
|
168
|
-
"ink": "^5.0.0",
|
|
169
169
|
"ink-spinner": "^5.0.0",
|
|
170
170
|
"ink-text-input": "^5.0.0",
|
|
171
171
|
"lint-staged": "16.2.4",
|
|
@@ -205,6 +205,11 @@
|
|
|
205
205
|
"timeoutMs": 30000,
|
|
206
206
|
"reason": "Uses several top-level Bun module mocks and exercises real concurrent listener state."
|
|
207
207
|
},
|
|
208
|
+
{
|
|
209
|
+
"path": "src/websocket/launch-subagent.test.ts",
|
|
210
|
+
"timeoutMs": 15000,
|
|
211
|
+
"reason": "Runs a real App Server and child CLI while mutating HOME, settings, backend, environment, background tasks, and subagent state."
|
|
212
|
+
},
|
|
208
213
|
{
|
|
209
214
|
"path": "src/websocket/listener/auth-lifecycle.test.ts",
|
|
210
215
|
"timeoutMs": 30000,
|
|
@@ -104,6 +104,49 @@ async function copyToResolved(srcRel, targetSpecifier) {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
async function patchInkRuntime(replacements) {
|
|
108
|
+
let inkBuildDir;
|
|
109
|
+
try {
|
|
110
|
+
inkBuildDir = dirname(fileURLToPath(await import.meta.resolve("ink")));
|
|
111
|
+
} catch {
|
|
112
|
+
try {
|
|
113
|
+
inkBuildDir = join(dirname(require.resolve("ink/package.json")), "build");
|
|
114
|
+
} catch {
|
|
115
|
+
inkBuildDir = join(pkgRoot, "node_modules", "ink", "build");
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const runtimePath = join(inkBuildDir, "ink.js");
|
|
120
|
+
let content = readFileSync(runtimePath, "utf8");
|
|
121
|
+
for (const { before, after, all = false } of replacements) {
|
|
122
|
+
if (all) {
|
|
123
|
+
const candidates = Array.isArray(before) ? before : [before];
|
|
124
|
+
const target = candidates.find((candidate) =>
|
|
125
|
+
content.includes(candidate),
|
|
126
|
+
);
|
|
127
|
+
if (target) {
|
|
128
|
+
content = content.replaceAll(target, after);
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (content.includes(after)) continue;
|
|
132
|
+
throw new Error(
|
|
133
|
+
`[patch] Ink runtime patch target not found in ${runtimePath}`,
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
if (content.includes(after)) continue;
|
|
137
|
+
const candidates = Array.isArray(before) ? before : [before];
|
|
138
|
+
const target = candidates.find((candidate) => content.includes(candidate));
|
|
139
|
+
if (!target) {
|
|
140
|
+
throw new Error(
|
|
141
|
+
`[patch] Ink runtime patch target not found in ${runtimePath}`,
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
content = content.replace(target, after);
|
|
145
|
+
}
|
|
146
|
+
writeFileSync(runtimePath, content);
|
|
147
|
+
console.log(`[patch] resettable static output -> ${runtimePath}`);
|
|
148
|
+
}
|
|
149
|
+
|
|
107
150
|
// Ink internals (resolve actual installed module path)
|
|
108
151
|
await copyToResolved(
|
|
109
152
|
"vendor/ink/build/components/App.js",
|
|
@@ -119,6 +162,54 @@ await copyToResolved(
|
|
|
119
162
|
"ink/build/log-update.js",
|
|
120
163
|
);
|
|
121
164
|
await copyToResolved("vendor/ink/build/wrap-text.js", "ink/build/wrap-text.js");
|
|
165
|
+
await patchInkRuntime([
|
|
166
|
+
{
|
|
167
|
+
before:
|
|
168
|
+
"writeToStderr: this.writeToStderr, exitOnCtrlC: this.options.exitOnCtrlC",
|
|
169
|
+
after:
|
|
170
|
+
"writeToStderr: this.writeToStderr, resetStaticOutput: this.resetStaticOutput, exitOnCtrlC: this.options.exitOnCtrlC",
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
before: [
|
|
174
|
+
" fullStaticOutput;\n staticOutputRepaintPending = false;\n exitPromise;",
|
|
175
|
+
" fullStaticOutput;\n exitPromise;",
|
|
176
|
+
],
|
|
177
|
+
after:
|
|
178
|
+
" fullStaticOutput;\n staticOutputRepaintPending = false;\n isCi = () => isInCi && !this.options.stdout.isTTY;\n exitPromise;",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
before: " if (isInCi) {",
|
|
182
|
+
after: " if (this.isCi()) {",
|
|
183
|
+
all: true,
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
before: " if (!isInCi) {",
|
|
187
|
+
after: " if (!this.isCi()) {",
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
before: " if (!isInCi && !this.options.debug) {",
|
|
191
|
+
after: " if (!this.isCi() && !this.options.debug) {",
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
before: " if (this.options.debug) {",
|
|
195
|
+
after:
|
|
196
|
+
" if (this.staticOutputRepaintPending && (this.options.debug || this.isCi())) {\n if (this.options.stdout.isTTY) {\n this.fullStaticOutput = hasStaticOutput ? staticOutput : '';\n this.repaintStaticOutput(output);\n return;\n }\n this.staticOutputRepaintPending = false;\n }\n if (this.options.debug) {",
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
before: " if (outputHeight >= this.options.stdout.rows) {",
|
|
200
|
+
after:
|
|
201
|
+
" if (this.staticOutputRepaintPending) {\n this.repaintStaticOutput(output);\n return;\n }\n if (outputHeight >= this.options.stdout.rows) {",
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
before: [
|
|
205
|
+
" resetStaticOutput = () => {\n this.fullStaticOutput = '';\n this.staticOutputRepaintPending = true;\n };\n writeToStdout(data) {",
|
|
206
|
+
" resetStaticOutput = () => {\n this.fullStaticOutput = '';\n };\n writeToStdout(data) {",
|
|
207
|
+
" writeToStdout(data) {",
|
|
208
|
+
],
|
|
209
|
+
after:
|
|
210
|
+
" repaintStaticOutput = (output) => {\n this.staticOutputRepaintPending = false;\n const liveOutput = output + '\\n';\n this.options.stdout.write('\\u001B[?2026h\\u001B[2J\\u001B[H' + this.fullStaticOutput + liveOutput + '\\u001B[?2026l');\n this.log.sync?.(output);\n this.lastOutput = output;\n };\n resetStaticOutput = () => {\n this.fullStaticOutput = '';\n this.staticOutputRepaintPending = true;\n };\n writeToStdout(data) {",
|
|
211
|
+
},
|
|
212
|
+
]);
|
|
122
213
|
|
|
123
214
|
// ink-text-input (optional vendor with externalCursorOffset support)
|
|
124
215
|
await copyToResolved(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"src/agent/client-skills.test.ts": 1134,
|
|
3
|
-
"src/agent/memory-git.ts":
|
|
3
|
+
"src/agent/memory-git.ts": 2092,
|
|
4
4
|
"src/backend/local-backend.test.ts": 2473,
|
|
5
5
|
"src/backend/local/local-backend.ts": 1005,
|
|
6
6
|
"src/backend/local/local-store.ts": 3457,
|
|
@@ -8,20 +8,20 @@
|
|
|
8
8
|
"src/cli/app/AppCoordinator.tsx": 5136,
|
|
9
9
|
"src/cli/app/AppView.tsx": 1735,
|
|
10
10
|
"src/cli/app/use-approval-flow.ts": 1163,
|
|
11
|
-
"src/cli/app/use-configuration-handlers.ts":
|
|
11
|
+
"src/cli/app/use-configuration-handlers.ts": 1417,
|
|
12
12
|
"src/cli/app/use-conversation-loop.ts": 2903,
|
|
13
13
|
"src/cli/app/use-submit-handler.ts": 3804,
|
|
14
14
|
"src/cli/components/AgentSelector.tsx": 1104,
|
|
15
|
-
"src/cli/components/InputRich.tsx":
|
|
15
|
+
"src/cli/components/InputRich.tsx": 2124,
|
|
16
16
|
"src/cli/components/ModelSelector.tsx": 1259,
|
|
17
17
|
"src/cli/components/ProviderSelector.tsx": 1564,
|
|
18
18
|
"src/cli/components/ToolCallMessageRich.tsx": 1013,
|
|
19
|
-
"src/cli/helpers/accumulator.ts":
|
|
19
|
+
"src/cli/helpers/accumulator.ts": 1588,
|
|
20
20
|
"src/cli/helpers/reflection-transcript.ts": 1926,
|
|
21
21
|
"src/cli/mods/local-mod-loader.test.ts": 1043,
|
|
22
22
|
"src/cli/reflection-transcript.test.ts": 1084,
|
|
23
23
|
"src/cli/subcommands/skills.ts": 1264,
|
|
24
|
-
"src/headless.ts":
|
|
24
|
+
"src/headless.ts": 4806,
|
|
25
25
|
"src/hooks/integration.test.ts": 1147,
|
|
26
26
|
"src/index.ts": 2597,
|
|
27
27
|
"src/mods/learning-harness.ts": 2434,
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"src/providers/chatgpt-usage-service.ts": 1112,
|
|
36
36
|
"src/settings-manager.test.ts": 1635,
|
|
37
37
|
"src/settings-manager.ts": 2101,
|
|
38
|
-
"src/tools/manager.ts":
|
|
38
|
+
"src/tools/manager.ts": 2793,
|
|
39
39
|
"src/tools/tool-execution-context.test.ts": 1114,
|
|
40
40
|
"src/types/protocol_v2.ts": 2574,
|
|
41
41
|
"src/websocket/listen-client-concurrency.test.ts": 2666,
|
|
42
|
-
"src/websocket/listen-client-protocol.test.ts":
|
|
42
|
+
"src/websocket/listen-client-protocol.test.ts": 5759,
|
|
43
43
|
"src/websocket/listener/commands/memory.ts": 1114,
|
|
44
44
|
"src/websocket/listener/file-commands.ts": 1053,
|
|
45
45
|
"src/websocket/listener/protocol-inbound.ts": 2111,
|
|
@@ -259,7 +259,7 @@ if (letta.capabilities.permissions) {
|
|
|
259
259
|
return {
|
|
260
260
|
decision: "deny",
|
|
261
261
|
reason:
|
|
262
|
-
`Plan mode is active. Use direct read-only tools (Read, Grep, Glob, List, Search, Skill,
|
|
262
|
+
`Plan mode is active. Use direct read-only tools (Read, Grep, Glob, List, Search, Skill, safe read-only Bash), planning tools (AskUserQuestion, TodoWrite/UpdatePlan), or recall-style subagents only. ` +
|
|
263
263
|
`Do not use coding, general-purpose, or fork subagents in plan mode. ` +
|
|
264
264
|
`Write your plan to: ${session.planFilePath}. ` +
|
|
265
265
|
`When ready, read the plan file and include the full current plan text in AskUserQuestion for approval, then call exit_plan_mode after approval.`,
|
|
@@ -7,7 +7,7 @@ description: Dispatch stateless coding agents through Claude Code or Codex. Mode
|
|
|
7
7
|
|
|
8
8
|
You can shell out to **Claude Code** (`claude`) and **Codex** (`codex`) as stateless sub-agents via Bash. They have filesystem and tool access (scope depends on sandbox/approval settings) but **zero memory** — every session starts from scratch.
|
|
9
9
|
|
|
10
|
-
**Default to `run_in_background: true`** on the Bash call so you can keep working while they run.
|
|
10
|
+
**Default to `run_in_background: true`** on the Bash call so you can keep working while they run. The tool returns an output file path that you can read later. Don't sit idle waiting for a subagent.
|
|
11
11
|
|
|
12
12
|
## The Core Mental Model
|
|
13
13
|
|
|
@@ -104,7 +104,7 @@ OUTPUT:
|
|
|
104
104
|
Run Claude Code and Codex simultaneously on the same question via separate Bash calls in a single message (use `run_in_background: true`). Compare results for higher confidence.
|
|
105
105
|
|
|
106
106
|
### Background dispatch — keep working while they run
|
|
107
|
-
Use `run_in_background: true` on the Bash call to dispatch async. Continue your own work, then
|
|
107
|
+
Use `run_in_background: true` on the Bash call to dispatch async. Continue your own work, then read the returned output file when ready.
|
|
108
108
|
|
|
109
109
|
### Deep investigation
|
|
110
110
|
For hard problems, use the configured model in a writable sandbox:
|
|
@@ -37,7 +37,7 @@ export default class App extends PureComponent {
|
|
|
37
37
|
return this.props.stdin.isTTY;
|
|
38
38
|
}
|
|
39
39
|
render() {
|
|
40
|
-
return (React.createElement(AppContext.Provider, { value: { exit: this.handleExit } },
|
|
40
|
+
return (React.createElement(AppContext.Provider, { value: { exit: this.handleExit, resetStaticOutput: this.props.resetStaticOutput } },
|
|
41
41
|
React.createElement(StdinContext.Provider, { value: { stdin: this.props.stdin, setRawMode: this.handleSetRawMode, isRawModeSupported: this.isRawModeSupported(), internal_exitOnCtrlC: this.props.exitOnCtrlC, internal_eventEmitter: this.internal_eventEmitter } },
|
|
42
42
|
React.createElement(StdoutContext.Provider, { value: { stdout: this.props.stdout, write: this.props.writeToStdout } },
|
|
43
43
|
React.createElement(StderrContext.Provider, { value: { stderr: this.props.stderr, write: this.props.writeToStderr } },
|
|
@@ -359,4 +359,3 @@ export default class App extends PureComponent {
|
|
|
359
359
|
}
|
|
360
360
|
//# sourceMappingURL=App.js.map
|
|
361
361
|
|
|
362
|
-
|
|
@@ -56,6 +56,14 @@ const create = (stream, { showCursor = false } = {}) => {
|
|
|
56
56
|
previousLineCount = 0;
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
+
// Synchronize internal frame tracking after Ink performs an atomic full
|
|
60
|
+
// transcript repaint without emitting a second copy of the live output.
|
|
61
|
+
render.sync = (str) => {
|
|
62
|
+
const output = str + '\n';
|
|
63
|
+
previousOutput = output;
|
|
64
|
+
previousLineCount = output.split('\n').length;
|
|
65
|
+
};
|
|
66
|
+
|
|
59
67
|
render.done = () => {
|
|
60
68
|
previousOutput = '';
|
|
61
69
|
previousLineCount = 0;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
interface GetTaskOutputArgs {
|
|
2
|
-
task_id: string;
|
|
3
|
-
block?: boolean;
|
|
4
|
-
timeout?: number;
|
|
5
|
-
signal?: AbortSignal;
|
|
6
|
-
filter?: string;
|
|
7
|
-
onOutput?: (chunk: string, stream: "stdout" | "stderr") => void;
|
|
8
|
-
runningMessageWhenNonBlocking?: boolean;
|
|
9
|
-
}
|
|
10
|
-
interface GetTaskOutputResult {
|
|
11
|
-
message: string;
|
|
12
|
-
status?: "running" | "completed" | "failed";
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Core implementation for retrieving task/process output.
|
|
16
|
-
* Used by both BashOutput (legacy) and TaskOutput (new).
|
|
17
|
-
* Checks both backgroundProcesses (Bash) and backgroundTasks (Task).
|
|
18
|
-
*/
|
|
19
|
-
export declare function getTaskOutput(args: GetTaskOutputArgs): Promise<GetTaskOutputResult>;
|
|
20
|
-
interface BashOutputArgs {
|
|
21
|
-
shell_id: string;
|
|
22
|
-
filter?: string;
|
|
23
|
-
}
|
|
24
|
-
interface BashOutputResult {
|
|
25
|
-
message: string;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Legacy BashOutput function - wraps getTaskOutput with non-blocking behavior.
|
|
29
|
-
*/
|
|
30
|
-
export declare function bash_output(args: BashOutputArgs): Promise<BashOutputResult>;
|
|
31
|
-
export {};
|
|
32
|
-
//# sourceMappingURL=bash-output.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bash-output.d.ts","sourceRoot":"","sources":["../../../../src/tools/impl/bash-output.ts"],"names":[],"mappings":"AAYA,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAChE,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC7C;AAkJD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAqND,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAW3B"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
interface TaskOutputArgs {
|
|
2
|
-
task_id: string;
|
|
3
|
-
block: boolean;
|
|
4
|
-
timeout: number;
|
|
5
|
-
signal?: AbortSignal;
|
|
6
|
-
onOutput?: (chunk: string, stream: "stdout" | "stderr") => void;
|
|
7
|
-
}
|
|
8
|
-
interface TaskOutputResult {
|
|
9
|
-
message: string;
|
|
10
|
-
status?: "running" | "completed" | "failed";
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* TaskOutput - retrieves output from a running or completed background task.
|
|
14
|
-
* `block` and `timeout` are required by the schema (matches Claude Code's
|
|
15
|
-
* current tool contract); callers must pass them explicitly.
|
|
16
|
-
*/
|
|
17
|
-
export declare function task_output(args: TaskOutputArgs): Promise<TaskOutputResult>;
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=task-output.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-output.d.ts","sourceRoot":"","sources":["../../../../src/tools/impl/task-output.ts"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;CACjE;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
|