@robota-sdk/agent-cli 3.0.0-beta.6 → 3.0.0-beta.60
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 +286 -106
- package/dist/node/bin.js +12 -1
- package/dist/node/chunk-6XQKLNRF.js +267 -0
- package/dist/node/chunk-GHQHUBHC.js +5469 -0
- package/dist/node/index.cjs +5407 -991
- package/dist/node/index.d.cts +68 -24
- package/dist/node/index.d.ts +68 -24
- package/dist/node/index.js +12 -8
- package/dist/node/subagents/child-process-subagent-worker.d.ts +2 -0
- package/dist/node/subagents/child-process-subagent-worker.js +123 -0
- package/package.json +47 -7
- package/dist/node/bin.cjs +0 -1217
- package/dist/node/bin.d.cts +0 -1
- package/dist/node/chunk-4DYVT4WI.js +0 -1196
package/dist/node/index.d.cts
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { IProviderDefinition, IProviderConfig } from '@robota-sdk/agent-core';
|
|
2
|
+
import { ICommandModule, IBackgroundTaskRunner, ISubagentRunner, IInProcessSubagentRunnerDeps, ISubagentWorktreeAdapter, ISubagentJobStart, ISubagentJobHandle, TSubagentRunnerFactory, ISubagentWorktreePrepareRequest, IPreparedSubagentWorktree } from '@robota-sdk/agent-sdk';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* CLI entry point — parses arguments, creates provider, and starts the Ink TUI.
|
|
6
|
+
*
|
|
7
|
+
* CLI composes provider definitions. SDK owns everything else
|
|
8
|
+
* (config, context, session, tools).
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Main CLI orchestration function.
|
|
13
|
+
*/
|
|
14
|
+
interface IStartCliOptions {
|
|
15
|
+
commandModules?: readonly ICommandModule[];
|
|
16
|
+
providerDefinitions?: readonly IProviderDefinition[];
|
|
17
|
+
}
|
|
18
|
+
declare function startCli(options?: IStartCliOptions): Promise<void>;
|
|
19
|
+
|
|
20
|
+
interface IManagedShellProcessRunnerOptions {
|
|
21
|
+
killGraceMs?: number;
|
|
22
|
+
}
|
|
23
|
+
declare function createManagedShellProcessRunner(options?: IManagedShellProcessRunnerOptions): IBackgroundTaskRunner;
|
|
24
|
+
|
|
25
|
+
interface IChildProcessSubagentRunnerOptions {
|
|
26
|
+
providerConfig?: IProviderConfig;
|
|
27
|
+
workerPath?: string;
|
|
28
|
+
execArgv?: string[];
|
|
29
|
+
killGraceMs?: number;
|
|
30
|
+
env?: NodeJS.ProcessEnv;
|
|
31
|
+
worktreeIsolation?: boolean;
|
|
32
|
+
worktreeAdapter?: ISubagentWorktreeAdapter;
|
|
33
|
+
logsDir?: string;
|
|
34
|
+
}
|
|
35
|
+
declare function createChildProcessSubagentRunnerFactory(options?: IChildProcessSubagentRunnerOptions): TSubagentRunnerFactory;
|
|
36
|
+
declare class ChildProcessSubagentRunner implements ISubagentRunner {
|
|
37
|
+
private readonly deps;
|
|
38
|
+
private readonly workerPath;
|
|
39
|
+
private readonly execArgv?;
|
|
40
|
+
private readonly killGraceMs;
|
|
41
|
+
private readonly providerConfig?;
|
|
42
|
+
private readonly env?;
|
|
43
|
+
private readonly logsDir?;
|
|
44
|
+
constructor(deps: IInProcessSubagentRunnerDeps, options?: IChildProcessSubagentRunnerOptions);
|
|
45
|
+
start(job: ISubagentJobStart): ISubagentJobHandle;
|
|
46
|
+
private createStartPayload;
|
|
47
|
+
private resolveTranscriptPath;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
interface IGitWorktreeIsolationAdapterOptions {
|
|
51
|
+
worktreeDir?: string;
|
|
52
|
+
branchPrefix?: string;
|
|
53
|
+
idFactory?: () => string;
|
|
54
|
+
maxCreateAttempts?: number;
|
|
55
|
+
}
|
|
56
|
+
declare function createGitWorktreeIsolationAdapter(options?: IGitWorktreeIsolationAdapterOptions): ISubagentWorktreeAdapter;
|
|
57
|
+
declare class GitWorktreeIsolationAdapter implements ISubagentWorktreeAdapter {
|
|
58
|
+
private readonly worktreeDir;
|
|
59
|
+
private readonly branchPrefix;
|
|
60
|
+
private readonly idFactory;
|
|
61
|
+
private readonly maxCreateAttempts;
|
|
62
|
+
constructor(options?: IGitWorktreeIsolationAdapterOptions);
|
|
63
|
+
prepare(request: ISubagentWorktreePrepareRequest): IPreparedSubagentWorktree;
|
|
64
|
+
isClean(worktree: IPreparedSubagentWorktree): boolean;
|
|
65
|
+
getStatus(worktree: IPreparedSubagentWorktree): string;
|
|
66
|
+
remove(worktree: IPreparedSubagentWorktree): void;
|
|
67
|
+
}
|
|
3
68
|
|
|
4
69
|
/**
|
|
5
70
|
* CLI-specific types for terminal I/O abstraction.
|
|
@@ -25,25 +90,4 @@ interface ITerminalOutput {
|
|
|
25
90
|
spinner(message: string): ISpinner;
|
|
26
91
|
}
|
|
27
92
|
|
|
28
|
-
|
|
29
|
-
* CLI entry point — parses arguments, loads config/context, and starts the
|
|
30
|
-
* Ink TUI or runs in print mode.
|
|
31
|
-
*
|
|
32
|
-
* CLI flags:
|
|
33
|
-
* robota Interactive TUI mode
|
|
34
|
-
* robota "prompt" TUI with initial prompt (future)
|
|
35
|
-
* robota -p "prompt" Print mode (one-shot, exit after response)
|
|
36
|
-
* robota -c Continue last session
|
|
37
|
-
* robota -r <id> Resume session by ID
|
|
38
|
-
* robota --model <model> Model override
|
|
39
|
-
* robota --permission-mode <m> plan|default|acceptEdits|bypassPermissions
|
|
40
|
-
* robota --max-turns <n> Limit agentic turns
|
|
41
|
-
* robota --version Print package version and exit
|
|
42
|
-
*/
|
|
43
|
-
/**
|
|
44
|
-
* Main CLI orchestration function.
|
|
45
|
-
* Called from bin.ts as the top-level entry.
|
|
46
|
-
*/
|
|
47
|
-
declare function startCli(): Promise<void>;
|
|
48
|
-
|
|
49
|
-
export { type ISpinner, type ITerminalOutput, startCli };
|
|
93
|
+
export { ChildProcessSubagentRunner, GitWorktreeIsolationAdapter, type IChildProcessSubagentRunnerOptions, type IGitWorktreeIsolationAdapterOptions, type IManagedShellProcessRunnerOptions, type ISpinner, type ITerminalOutput, createChildProcessSubagentRunnerFactory, createGitWorktreeIsolationAdapter, createManagedShellProcessRunner, startCli };
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { IProviderDefinition, IProviderConfig } from '@robota-sdk/agent-core';
|
|
2
|
+
import { ICommandModule, IBackgroundTaskRunner, ISubagentRunner, IInProcessSubagentRunnerDeps, ISubagentWorktreeAdapter, ISubagentJobStart, ISubagentJobHandle, TSubagentRunnerFactory, ISubagentWorktreePrepareRequest, IPreparedSubagentWorktree } from '@robota-sdk/agent-sdk';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* CLI entry point — parses arguments, creates provider, and starts the Ink TUI.
|
|
6
|
+
*
|
|
7
|
+
* CLI composes provider definitions. SDK owns everything else
|
|
8
|
+
* (config, context, session, tools).
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Main CLI orchestration function.
|
|
13
|
+
*/
|
|
14
|
+
interface IStartCliOptions {
|
|
15
|
+
commandModules?: readonly ICommandModule[];
|
|
16
|
+
providerDefinitions?: readonly IProviderDefinition[];
|
|
17
|
+
}
|
|
18
|
+
declare function startCli(options?: IStartCliOptions): Promise<void>;
|
|
19
|
+
|
|
20
|
+
interface IManagedShellProcessRunnerOptions {
|
|
21
|
+
killGraceMs?: number;
|
|
22
|
+
}
|
|
23
|
+
declare function createManagedShellProcessRunner(options?: IManagedShellProcessRunnerOptions): IBackgroundTaskRunner;
|
|
24
|
+
|
|
25
|
+
interface IChildProcessSubagentRunnerOptions {
|
|
26
|
+
providerConfig?: IProviderConfig;
|
|
27
|
+
workerPath?: string;
|
|
28
|
+
execArgv?: string[];
|
|
29
|
+
killGraceMs?: number;
|
|
30
|
+
env?: NodeJS.ProcessEnv;
|
|
31
|
+
worktreeIsolation?: boolean;
|
|
32
|
+
worktreeAdapter?: ISubagentWorktreeAdapter;
|
|
33
|
+
logsDir?: string;
|
|
34
|
+
}
|
|
35
|
+
declare function createChildProcessSubagentRunnerFactory(options?: IChildProcessSubagentRunnerOptions): TSubagentRunnerFactory;
|
|
36
|
+
declare class ChildProcessSubagentRunner implements ISubagentRunner {
|
|
37
|
+
private readonly deps;
|
|
38
|
+
private readonly workerPath;
|
|
39
|
+
private readonly execArgv?;
|
|
40
|
+
private readonly killGraceMs;
|
|
41
|
+
private readonly providerConfig?;
|
|
42
|
+
private readonly env?;
|
|
43
|
+
private readonly logsDir?;
|
|
44
|
+
constructor(deps: IInProcessSubagentRunnerDeps, options?: IChildProcessSubagentRunnerOptions);
|
|
45
|
+
start(job: ISubagentJobStart): ISubagentJobHandle;
|
|
46
|
+
private createStartPayload;
|
|
47
|
+
private resolveTranscriptPath;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
interface IGitWorktreeIsolationAdapterOptions {
|
|
51
|
+
worktreeDir?: string;
|
|
52
|
+
branchPrefix?: string;
|
|
53
|
+
idFactory?: () => string;
|
|
54
|
+
maxCreateAttempts?: number;
|
|
55
|
+
}
|
|
56
|
+
declare function createGitWorktreeIsolationAdapter(options?: IGitWorktreeIsolationAdapterOptions): ISubagentWorktreeAdapter;
|
|
57
|
+
declare class GitWorktreeIsolationAdapter implements ISubagentWorktreeAdapter {
|
|
58
|
+
private readonly worktreeDir;
|
|
59
|
+
private readonly branchPrefix;
|
|
60
|
+
private readonly idFactory;
|
|
61
|
+
private readonly maxCreateAttempts;
|
|
62
|
+
constructor(options?: IGitWorktreeIsolationAdapterOptions);
|
|
63
|
+
prepare(request: ISubagentWorktreePrepareRequest): IPreparedSubagentWorktree;
|
|
64
|
+
isClean(worktree: IPreparedSubagentWorktree): boolean;
|
|
65
|
+
getStatus(worktree: IPreparedSubagentWorktree): string;
|
|
66
|
+
remove(worktree: IPreparedSubagentWorktree): void;
|
|
67
|
+
}
|
|
3
68
|
|
|
4
69
|
/**
|
|
5
70
|
* CLI-specific types for terminal I/O abstraction.
|
|
@@ -25,25 +90,4 @@ interface ITerminalOutput {
|
|
|
25
90
|
spinner(message: string): ISpinner;
|
|
26
91
|
}
|
|
27
92
|
|
|
28
|
-
|
|
29
|
-
* CLI entry point — parses arguments, loads config/context, and starts the
|
|
30
|
-
* Ink TUI or runs in print mode.
|
|
31
|
-
*
|
|
32
|
-
* CLI flags:
|
|
33
|
-
* robota Interactive TUI mode
|
|
34
|
-
* robota "prompt" TUI with initial prompt (future)
|
|
35
|
-
* robota -p "prompt" Print mode (one-shot, exit after response)
|
|
36
|
-
* robota -c Continue last session
|
|
37
|
-
* robota -r <id> Resume session by ID
|
|
38
|
-
* robota --model <model> Model override
|
|
39
|
-
* robota --permission-mode <m> plan|default|acceptEdits|bypassPermissions
|
|
40
|
-
* robota --max-turns <n> Limit agentic turns
|
|
41
|
-
* robota --version Print package version and exit
|
|
42
|
-
*/
|
|
43
|
-
/**
|
|
44
|
-
* Main CLI orchestration function.
|
|
45
|
-
* Called from bin.ts as the top-level entry.
|
|
46
|
-
*/
|
|
47
|
-
declare function startCli(): Promise<void>;
|
|
48
|
-
|
|
49
|
-
export { type ISpinner, type ITerminalOutput, startCli };
|
|
93
|
+
export { ChildProcessSubagentRunner, GitWorktreeIsolationAdapter, type IChildProcessSubagentRunnerOptions, type IGitWorktreeIsolationAdapterOptions, type IManagedShellProcessRunnerOptions, type ISpinner, type ITerminalOutput, createChildProcessSubagentRunnerFactory, createGitWorktreeIsolationAdapter, createManagedShellProcessRunner, startCli };
|
package/dist/node/index.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
|
+
ChildProcessSubagentRunner,
|
|
3
|
+
GitWorktreeIsolationAdapter,
|
|
4
|
+
createChildProcessSubagentRunnerFactory,
|
|
5
|
+
createGitWorktreeIsolationAdapter,
|
|
6
|
+
createManagedShellProcessRunner,
|
|
2
7
|
startCli
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
|
|
5
|
-
// src/index.ts
|
|
6
|
-
import { Session, SessionStore, query, TRUST_TO_MODE } from "@robota-sdk/agent-sdk";
|
|
8
|
+
} from "./chunk-GHQHUBHC.js";
|
|
9
|
+
import "./chunk-6XQKLNRF.js";
|
|
7
10
|
export {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
ChildProcessSubagentRunner,
|
|
12
|
+
GitWorktreeIsolationAdapter,
|
|
13
|
+
createChildProcessSubagentRunnerFactory,
|
|
14
|
+
createGitWorktreeIsolationAdapter,
|
|
15
|
+
createManagedShellProcessRunner,
|
|
12
16
|
startCli
|
|
13
17
|
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createProviderFromProfile,
|
|
3
|
+
isSubagentWorkerParentMessage
|
|
4
|
+
} from "../chunk-6XQKLNRF.js";
|
|
5
|
+
|
|
6
|
+
// src/subagents/child-process-subagent-worker.ts
|
|
7
|
+
import {
|
|
8
|
+
createDefaultTools,
|
|
9
|
+
createSubagentLogger,
|
|
10
|
+
createSubagentSession
|
|
11
|
+
} from "@robota-sdk/agent-sdk";
|
|
12
|
+
var CANCEL_EXIT_CODE = 130;
|
|
13
|
+
var NOOP_TERMINAL = {
|
|
14
|
+
write: () => {
|
|
15
|
+
},
|
|
16
|
+
writeLine: () => {
|
|
17
|
+
},
|
|
18
|
+
writeMarkdown: () => {
|
|
19
|
+
},
|
|
20
|
+
writeError: () => {
|
|
21
|
+
},
|
|
22
|
+
prompt: () => Promise.resolve(""),
|
|
23
|
+
select: () => Promise.resolve(0),
|
|
24
|
+
spinner: () => ({ stop: () => {
|
|
25
|
+
}, update: () => {
|
|
26
|
+
} })
|
|
27
|
+
};
|
|
28
|
+
var session = null;
|
|
29
|
+
var cancelled = false;
|
|
30
|
+
var running = Promise.resolve();
|
|
31
|
+
function sendChildMessage(message) {
|
|
32
|
+
if (process.send) {
|
|
33
|
+
process.send(message);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function runInitialPrompt(payload) {
|
|
37
|
+
try {
|
|
38
|
+
const provider = createProviderFromProfile(payload.providerProfile, payload.request.model);
|
|
39
|
+
const sessionLogger = payload.logsDir ? createSubagentLogger(payload.request.parentSessionId, payload.jobId, payload.logsDir) : void 0;
|
|
40
|
+
session = createSubagentSession({
|
|
41
|
+
agentDefinition: payload.agentDefinition,
|
|
42
|
+
parentConfig: payload.parentConfig,
|
|
43
|
+
parentContext: payload.parentContext,
|
|
44
|
+
parentTools: createDefaultTools(),
|
|
45
|
+
provider,
|
|
46
|
+
terminal: NOOP_TERMINAL,
|
|
47
|
+
sessionId: payload.jobId,
|
|
48
|
+
...sessionLogger ? { sessionLogger } : {},
|
|
49
|
+
permissionMode: payload.permissionMode,
|
|
50
|
+
hooks: payload.parentConfig.hooks,
|
|
51
|
+
onTextDelta: (delta) => sendChildMessage({ type: "text_delta", delta }),
|
|
52
|
+
onToolExecution: forwardToolExecution
|
|
53
|
+
});
|
|
54
|
+
const output = await session.run(payload.request.prompt);
|
|
55
|
+
if (cancelled) {
|
|
56
|
+
sendChildMessage({ type: "cancelled", reason: "Subagent worker cancelled" });
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
sendChildMessage({ type: "result", output });
|
|
60
|
+
} catch (error) {
|
|
61
|
+
if (cancelled) {
|
|
62
|
+
sendChildMessage({ type: "cancelled", reason: "Subagent worker cancelled" });
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
66
|
+
sendChildMessage({ type: "error", message });
|
|
67
|
+
} finally {
|
|
68
|
+
setImmediate(() => process.exit(cancelled ? CANCEL_EXIT_CODE : 0));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function forwardToolExecution(event) {
|
|
72
|
+
if (event.type === "start") {
|
|
73
|
+
sendChildMessage({ type: "tool_start", toolName: event.toolName, toolArgs: event.toolArgs });
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
sendChildMessage({ type: "tool_end", toolName: event.toolName, success: event.success ?? true });
|
|
77
|
+
}
|
|
78
|
+
function runFollowUp(prompt) {
|
|
79
|
+
if (session === null) {
|
|
80
|
+
sendChildMessage({ type: "error", message: "Subagent worker has not started" });
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
running = running.then(async () => {
|
|
84
|
+
try {
|
|
85
|
+
await session?.run(prompt);
|
|
86
|
+
} catch (error) {
|
|
87
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
88
|
+
sendChildMessage({ type: "error", message });
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async function cancelWorker(reason) {
|
|
93
|
+
cancelled = true;
|
|
94
|
+
session?.abort();
|
|
95
|
+
sendChildMessage({ type: "cancelled", reason });
|
|
96
|
+
await session?.shutdown({ reason: "other" }).catch(() => void 0);
|
|
97
|
+
setTimeout(() => process.exit(CANCEL_EXIT_CODE), 0);
|
|
98
|
+
}
|
|
99
|
+
process.on("message", (message) => {
|
|
100
|
+
if (!isSubagentWorkerParentMessage(message)) {
|
|
101
|
+
sendChildMessage({ type: "error", message: "Malformed subagent worker parent message" });
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
switch (message.type) {
|
|
105
|
+
case "start":
|
|
106
|
+
running = running.then(() => runInitialPrompt(message.payload));
|
|
107
|
+
break;
|
|
108
|
+
case "send":
|
|
109
|
+
runFollowUp(message.prompt);
|
|
110
|
+
break;
|
|
111
|
+
case "cancel":
|
|
112
|
+
void cancelWorker(message.reason);
|
|
113
|
+
break;
|
|
114
|
+
default:
|
|
115
|
+
sendChildMessage({ type: "error", message: "Unhandled subagent worker parent message" });
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
process.on("disconnect", () => {
|
|
119
|
+
cancelled = true;
|
|
120
|
+
session?.abort();
|
|
121
|
+
void session?.shutdown({ reason: "other" }).catch(() => void 0);
|
|
122
|
+
});
|
|
123
|
+
sendChildMessage({ type: "ready" });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robota-sdk/agent-cli",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.60",
|
|
4
4
|
"description": "AI coding assistant CLI built on Robota SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,13 +21,25 @@
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "https://github.com/woojubb/robota.git"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://robota.io/",
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/woojubb/robota/issues"
|
|
31
|
+
},
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=22.0.0"
|
|
34
|
+
},
|
|
24
35
|
"files": [
|
|
25
36
|
"dist"
|
|
26
37
|
],
|
|
27
38
|
"dependencies": {
|
|
39
|
+
"@robota-sdk/agent-sessions": "3.0.0-beta.60",
|
|
28
40
|
"chalk": "^5.3.0",
|
|
29
41
|
"cli-highlight": "^2.1.0",
|
|
30
|
-
"ink": "^
|
|
42
|
+
"ink": "^7.0.1",
|
|
31
43
|
"ink-select-input": "^6.2.0",
|
|
32
44
|
"ink-spinner": "^5.0.0",
|
|
33
45
|
"ink-text-input": "^6.0.0",
|
|
@@ -35,12 +47,37 @@
|
|
|
35
47
|
"marked-terminal": "^7.3.0",
|
|
36
48
|
"react": "19.2.4",
|
|
37
49
|
"string-width": "^8.2.0",
|
|
38
|
-
"@robota-sdk/agent-
|
|
39
|
-
"@robota-sdk/agent-
|
|
50
|
+
"@robota-sdk/agent-command-agent": "3.0.0-beta.60",
|
|
51
|
+
"@robota-sdk/agent-command-background": "3.0.0-beta.60",
|
|
52
|
+
"@robota-sdk/agent-command-compact": "3.0.0-beta.60",
|
|
53
|
+
"@robota-sdk/agent-command-help": "3.0.0-beta.60",
|
|
54
|
+
"@robota-sdk/agent-command-exit": "3.0.0-beta.60",
|
|
55
|
+
"@robota-sdk/agent-command-mode": "3.0.0-beta.60",
|
|
56
|
+
"@robota-sdk/agent-command-model": "3.0.0-beta.60",
|
|
57
|
+
"@robota-sdk/agent-command-permissions": "3.0.0-beta.60",
|
|
58
|
+
"@robota-sdk/agent-command-memory": "3.0.0-beta.60",
|
|
59
|
+
"@robota-sdk/agent-command-plugin": "3.0.0-beta.60",
|
|
60
|
+
"@robota-sdk/agent-command-language": "3.0.0-beta.60",
|
|
61
|
+
"@robota-sdk/agent-command-context": "3.0.0-beta.60",
|
|
62
|
+
"@robota-sdk/agent-command-reset": "3.0.0-beta.60",
|
|
63
|
+
"@robota-sdk/agent-command-rewind": "3.0.0-beta.60",
|
|
64
|
+
"@robota-sdk/agent-command-statusline": "3.0.0-beta.60",
|
|
65
|
+
"@robota-sdk/agent-core": "3.0.0-beta.60",
|
|
66
|
+
"@robota-sdk/agent-provider-anthropic": "3.0.0-beta.60",
|
|
67
|
+
"@robota-sdk/agent-command-provider": "3.0.0-beta.60",
|
|
68
|
+
"@robota-sdk/agent-command-session": "3.0.0-beta.60",
|
|
69
|
+
"@robota-sdk/agent-provider-gemma": "3.0.0-beta.60",
|
|
70
|
+
"@robota-sdk/agent-provider-qwen": "3.0.0-beta.60",
|
|
71
|
+
"@robota-sdk/agent-provider-gemini": "3.0.0-beta.60",
|
|
72
|
+
"@robota-sdk/agent-provider-openai": "3.0.0-beta.60",
|
|
73
|
+
"@robota-sdk/agent-sdk": "3.0.0-beta.60",
|
|
74
|
+
"@robota-sdk/agent-transport-headless": "3.0.0-beta.60"
|
|
40
75
|
},
|
|
41
76
|
"devDependencies": {
|
|
77
|
+
"@homebridge/node-pty-prebuilt-multiarch": "^0.13.1",
|
|
42
78
|
"@types/marked": "^6.0.0",
|
|
43
79
|
"@types/react": "^19.2.14",
|
|
80
|
+
"ink-testing-library": "^4.0.0",
|
|
44
81
|
"rimraf": "^5.0.5",
|
|
45
82
|
"tsup": "^8.0.1",
|
|
46
83
|
"tsx": "^4.7.0",
|
|
@@ -52,10 +89,13 @@
|
|
|
52
89
|
"access": "public"
|
|
53
90
|
},
|
|
54
91
|
"scripts": {
|
|
55
|
-
"build": "tsup src/index.ts src/bin.ts --format esm,cjs --dts --out-dir dist/node --clean",
|
|
56
|
-
"
|
|
57
|
-
"
|
|
92
|
+
"build": "tsup src/index.ts src/bin.ts src/subagents/child-process-subagent-worker.ts --format esm,cjs --dts --out-dir dist/node --clean && rm -f dist/node/bin.cjs dist/node/bin.d.cts dist/node/subagents/child-process-subagent-worker.cjs dist/node/subagents/child-process-subagent-worker.d.cts",
|
|
93
|
+
"build:js": "tsup src/index.ts src/bin.ts src/subagents/child-process-subagent-worker.ts --format esm,cjs --out-dir dist/node --clean && rm -f dist/node/bin.cjs dist/node/subagents/child-process-subagent-worker.cjs",
|
|
94
|
+
"build:types": "tsup src/index.ts src/bin.ts src/subagents/child-process-subagent-worker.ts --format esm,cjs --dts-only --out-dir dist/node && rm -f dist/node/bin.d.cts dist/node/subagents/child-process-subagent-worker.d.cts",
|
|
95
|
+
"dev": "tsx src/bin.ts",
|
|
96
|
+
"start": "node dist/node/bin.js",
|
|
58
97
|
"test": "vitest run --passWithNoTests",
|
|
98
|
+
"test:coverage": "vitest run --coverage --passWithNoTests",
|
|
59
99
|
"typecheck": "tsc --noEmit",
|
|
60
100
|
"lint": "eslint src/ --ext .ts,.tsx",
|
|
61
101
|
"clean": "rimraf dist"
|