hoomanjs 1.46.0 → 1.47.0
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 +7 -5
- package/dist/acp/acp-agent.d.ts +42 -0
- package/dist/acp/acp-agent.js +322 -38
- package/dist/acp/acp-agent.js.map +1 -1
- package/dist/acp/session-config.d.ts +2 -2
- package/dist/acp/session-config.js +24 -20
- package/dist/acp/session-config.js.map +1 -1
- package/dist/acp/utils/tool-kind.js +2 -0
- package/dist/acp/utils/tool-kind.js.map +1 -1
- package/dist/chat/app.js +75 -2
- package/dist/chat/app.js.map +1 -1
- package/dist/chat/components/ApprovalPrompt.js +7 -6
- package/dist/chat/components/ApprovalPrompt.js.map +1 -1
- package/dist/chat/components/BackgroundJobsPanel.d.ts +10 -0
- package/dist/chat/components/BackgroundJobsPanel.js +15 -0
- package/dist/chat/components/BackgroundJobsPanel.js.map +1 -0
- package/dist/chat/components/BottomChrome.d.ts +6 -1
- package/dist/chat/components/BottomChrome.js +3 -2
- package/dist/chat/components/BottomChrome.js.map +1 -1
- package/dist/chat/components/ChromePicker.d.ts +7 -2
- package/dist/chat/components/ChromePicker.js +18 -2
- package/dist/chat/components/ChromePicker.js.map +1 -1
- package/dist/chat/components/Composer.js +3 -2
- package/dist/chat/components/Composer.js.map +1 -1
- package/dist/chat/components/DownloadPanel.js +2 -1
- package/dist/chat/components/DownloadPanel.js.map +1 -1
- package/dist/chat/components/EmptyChatBanner.js +2 -1
- package/dist/chat/components/EmptyChatBanner.js.map +1 -1
- package/dist/chat/components/PromptInput.js +2 -1
- package/dist/chat/components/PromptInput.js.map +1 -1
- package/dist/chat/components/QuestionPrompt.js +5 -4
- package/dist/chat/components/QuestionPrompt.js.map +1 -1
- package/dist/chat/components/QueuedPrompts.js +3 -2
- package/dist/chat/components/QueuedPrompts.js.map +1 -1
- package/dist/chat/components/ReasoningStrip.js +2 -1
- package/dist/chat/components/ReasoningStrip.js.map +1 -1
- package/dist/chat/components/RetryEvent.js +2 -1
- package/dist/chat/components/RetryEvent.js.map +1 -1
- package/dist/chat/components/SelectPicker.js +2 -1
- package/dist/chat/components/SelectPicker.js.map +1 -1
- package/dist/chat/components/ShellToolEvent.d.ts +12 -0
- package/dist/chat/components/ShellToolEvent.js +94 -0
- package/dist/chat/components/ShellToolEvent.js.map +1 -0
- package/dist/chat/components/SlashCommands.js +2 -1
- package/dist/chat/components/SlashCommands.js.map +1 -1
- package/dist/chat/components/Spinner.js +2 -1
- package/dist/chat/components/Spinner.js.map +1 -1
- package/dist/chat/components/StatusBar.js +16 -15
- package/dist/chat/components/StatusBar.js.map +1 -1
- package/dist/chat/components/ThinkingStatus.js +2 -1
- package/dist/chat/components/ThinkingStatus.js.map +1 -1
- package/dist/chat/components/ThoughtEvent.js +2 -1
- package/dist/chat/components/ThoughtEvent.js.map +1 -1
- package/dist/chat/components/TodoPanel.js +2 -1
- package/dist/chat/components/TodoPanel.js.map +1 -1
- package/dist/chat/components/ToolEvent.d.ts +2 -1
- package/dist/chat/components/ToolEvent.js +9 -2
- package/dist/chat/components/ToolEvent.js.map +1 -1
- package/dist/chat/components/ToolEventFileResult.js +8 -7
- package/dist/chat/components/ToolEventFileResult.js.map +1 -1
- package/dist/chat/components/Transcript.d.ts +4 -2
- package/dist/chat/components/Transcript.js +4 -4
- package/dist/chat/components/Transcript.js.map +1 -1
- package/dist/chat/components/markdown/BlockRenderer.js +3 -2
- package/dist/chat/components/markdown/BlockRenderer.js.map +1 -1
- package/dist/chat/components/markdown/CodeBlock.js +3 -2
- package/dist/chat/components/markdown/CodeBlock.js.map +1 -1
- package/dist/chat/components/markdown/InlineRenderer.js +6 -5
- package/dist/chat/components/markdown/InlineRenderer.js.map +1 -1
- package/dist/chat/components/shared.js +7 -6
- package/dist/chat/components/shared.js.map +1 -1
- package/dist/chat/types.d.ts +4 -0
- package/dist/configure/components/BusyScreen.js +2 -1
- package/dist/configure/components/BusyScreen.js.map +1 -1
- package/dist/configure/components/MenuScreen.js +3 -2
- package/dist/configure/components/MenuScreen.js.map +1 -1
- package/dist/configure/components/PromptForm.js +2 -1
- package/dist/configure/components/PromptForm.js.map +1 -1
- package/dist/configure/components/SelectMenuItem.js +4 -3
- package/dist/configure/components/SelectMenuItem.js.map +1 -1
- package/dist/configure/utils.js +4 -3
- package/dist/configure/utils.js.map +1 -1
- package/dist/core/agent/index.js +2 -1
- package/dist/core/agent/index.js.map +1 -1
- package/dist/core/modes/definitions.js +4 -0
- package/dist/core/modes/definitions.js.map +1 -1
- package/dist/core/prompts/static/shell.md +21 -1
- package/dist/core/shell/index.d.ts +7 -0
- package/dist/core/shell/index.js +6 -0
- package/dist/core/shell/index.js.map +1 -0
- package/dist/core/shell/manager.d.ts +23 -0
- package/dist/core/shell/manager.js +604 -0
- package/dist/core/shell/manager.js.map +1 -0
- package/dist/core/shell/output-buffer.d.ts +30 -0
- package/dist/core/shell/output-buffer.js +116 -0
- package/dist/core/shell/output-buffer.js.map +1 -0
- package/dist/core/shell/registry.d.ts +5 -0
- package/dist/core/shell/registry.js +24 -0
- package/dist/core/shell/registry.js.map +1 -0
- package/dist/core/shell/shell.d.ts +41 -0
- package/dist/core/{tools → shell}/shell.js +185 -10
- package/dist/core/shell/shell.js.map +1 -0
- package/dist/core/{tools/shell.d.ts → shell/terminal-backend.d.ts} +20 -18
- package/dist/core/shell/terminal-backend.js +18 -0
- package/dist/core/shell/terminal-backend.js.map +1 -0
- package/dist/core/shell/types.d.ts +95 -0
- package/dist/core/shell/types.js +2 -0
- package/dist/core/shell/types.js.map +1 -0
- package/dist/core/state/shell-jobs.d.ts +9 -0
- package/dist/core/state/shell-jobs.js +20 -0
- package/dist/core/state/shell-jobs.js.map +1 -0
- package/dist/core/state/tool-approvals.js +3 -0
- package/dist/core/state/tool-approvals.js.map +1 -1
- package/dist/core/state/turn-boundaries.d.ts +33 -0
- package/dist/core/state/turn-boundaries.js +49 -0
- package/dist/core/state/turn-boundaries.js.map +1 -0
- package/dist/core/theme.d.ts +14 -0
- package/dist/core/theme.js +14 -0
- package/dist/core/theme.js.map +1 -0
- package/dist/core/tools/index.d.ts +0 -1
- package/dist/core/tools/index.js +0 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/tools/shell.js.map +0 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export type ShellJobStatus = "starting" | "running" | "ready" | "completed" | "stopped" | "failed";
|
|
2
|
+
export type NotifyOnOutput = {
|
|
3
|
+
/** JavaScript regex matched against accumulated output. */
|
|
4
|
+
pattern: string;
|
|
5
|
+
/** Milliseconds that must elapse between match checks. */
|
|
6
|
+
debounce_ms?: number;
|
|
7
|
+
};
|
|
8
|
+
export type ReadyProbe = {
|
|
9
|
+
/** Regex matched against accumulated output to mark the job ready. */
|
|
10
|
+
pattern?: string;
|
|
11
|
+
/** Local TCP port to probe until it accepts connections. */
|
|
12
|
+
port?: number;
|
|
13
|
+
/** Milliseconds to wait for readiness before returning as still running. */
|
|
14
|
+
timeout_ms?: number;
|
|
15
|
+
};
|
|
16
|
+
export type ShellJobStartOptions = {
|
|
17
|
+
command: string;
|
|
18
|
+
args: string[];
|
|
19
|
+
cwd: string;
|
|
20
|
+
description: string;
|
|
21
|
+
/** Soft timeout for the whole job (ms). Undefined = no auto-kill. */
|
|
22
|
+
timeoutMs?: number;
|
|
23
|
+
outputByteLimit?: number;
|
|
24
|
+
toolUseId?: string;
|
|
25
|
+
notifyOnOutput?: NotifyOnOutput;
|
|
26
|
+
ready?: ReadyProbe;
|
|
27
|
+
/**
|
|
28
|
+
* Max ms to wait before returning a background handle.
|
|
29
|
+
* `0` = return immediately. Undefined with no notify/ready = wait for exit
|
|
30
|
+
* (foreground). With notify/ready, wait until match or this deadline.
|
|
31
|
+
*/
|
|
32
|
+
blockUntilMs?: number;
|
|
33
|
+
cancelSignal?: AbortSignal;
|
|
34
|
+
};
|
|
35
|
+
export type ShellJobInfo = {
|
|
36
|
+
id: string;
|
|
37
|
+
description: string;
|
|
38
|
+
command: string;
|
|
39
|
+
cwd: string;
|
|
40
|
+
status: ShellJobStatus;
|
|
41
|
+
ready: boolean;
|
|
42
|
+
pid?: number;
|
|
43
|
+
terminalId?: string;
|
|
44
|
+
toolUseId?: string;
|
|
45
|
+
exitCode: number | null;
|
|
46
|
+
signal: string | null;
|
|
47
|
+
startedAt: number;
|
|
48
|
+
endedAt?: number;
|
|
49
|
+
outputTruncated: boolean;
|
|
50
|
+
};
|
|
51
|
+
export type ShellJobOutputSnapshot = {
|
|
52
|
+
jobId: string;
|
|
53
|
+
output: string;
|
|
54
|
+
truncated: boolean;
|
|
55
|
+
status: ShellJobStatus;
|
|
56
|
+
ready: boolean;
|
|
57
|
+
exitCode: number | null;
|
|
58
|
+
signal: string | null;
|
|
59
|
+
matched?: boolean;
|
|
60
|
+
};
|
|
61
|
+
export type ShellJobWaitOptions = {
|
|
62
|
+
/** Wait for process exit (default true when no pattern). */
|
|
63
|
+
block?: boolean;
|
|
64
|
+
timeoutMs?: number;
|
|
65
|
+
/** Wait for a NEW regex match since the last read offset. */
|
|
66
|
+
pattern?: string;
|
|
67
|
+
tailLines?: number;
|
|
68
|
+
cancelSignal?: AbortSignal;
|
|
69
|
+
};
|
|
70
|
+
export type ShellJobEvent = {
|
|
71
|
+
type: "started";
|
|
72
|
+
job: ShellJobInfo;
|
|
73
|
+
} | {
|
|
74
|
+
type: "output";
|
|
75
|
+
job: ShellJobInfo;
|
|
76
|
+
chunk: string;
|
|
77
|
+
} | {
|
|
78
|
+
type: "ready";
|
|
79
|
+
job: ShellJobInfo;
|
|
80
|
+
} | {
|
|
81
|
+
type: "completed";
|
|
82
|
+
job: ShellJobInfo;
|
|
83
|
+
} | {
|
|
84
|
+
type: "stopped";
|
|
85
|
+
job: ShellJobInfo;
|
|
86
|
+
} | {
|
|
87
|
+
type: "failed";
|
|
88
|
+
job: ShellJobInfo;
|
|
89
|
+
error: string;
|
|
90
|
+
};
|
|
91
|
+
export type ShellJobListener = (event: ShellJobEvent) => void;
|
|
92
|
+
/** Host-side terminal handle returned by TerminalBackend.spawn. */
|
|
93
|
+
export type HostTerminalHandle = {
|
|
94
|
+
terminalId: string;
|
|
95
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/shell/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ShellJobInfo } from "../shell/types.js";
|
|
2
|
+
export type ShellJobViewState = {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
jobs: ShellJobInfo[];
|
|
5
|
+
active: number;
|
|
6
|
+
};
|
|
7
|
+
type AgentLike = object;
|
|
8
|
+
export declare function getShellJobViewState(agent: AgentLike): ShellJobViewState;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { peekShellJobManager } from "../shell/registry.js";
|
|
2
|
+
const ACTIVE = new Set([
|
|
3
|
+
"starting",
|
|
4
|
+
"running",
|
|
5
|
+
"ready",
|
|
6
|
+
]);
|
|
7
|
+
export function getShellJobViewState(agent) {
|
|
8
|
+
const manager = peekShellJobManager(agent);
|
|
9
|
+
if (!manager) {
|
|
10
|
+
return { visible: false, jobs: [], active: 0 };
|
|
11
|
+
}
|
|
12
|
+
const jobs = manager.list();
|
|
13
|
+
const activeJobs = jobs.filter((j) => ACTIVE.has(j.status));
|
|
14
|
+
return {
|
|
15
|
+
visible: activeJobs.length > 0,
|
|
16
|
+
jobs: activeJobs,
|
|
17
|
+
active: activeJobs.length,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=shell-jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-jobs.js","sourceRoot":"","sources":["../../../src/core/state/shell-jobs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAQ3D,MAAM,MAAM,GAAgC,IAAI,GAAG,CAAC;IAClD,UAAU;IACV,SAAS;IACT,OAAO;CACR,CAAC,CAAC;AAIH,MAAM,UAAU,oBAAoB,CAAC,KAAgB;IACnD,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;QAC9B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -28,6 +28,9 @@ export const INTERNAL_ALWAYS_ALLOWED = new Set([
|
|
|
28
28
|
"subagent_test_investigator",
|
|
29
29
|
// Sleep
|
|
30
30
|
"sleep",
|
|
31
|
+
// Background shell job management (safe to use in any mode once a job exists)
|
|
32
|
+
"shell_output",
|
|
33
|
+
"shell_stop",
|
|
31
34
|
// Asking the user a question IS the interaction — no separate approval gate.
|
|
32
35
|
ASK_USER_TOOL,
|
|
33
36
|
SEARCH_TOOLS_TOOL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-approvals.js","sourceRoot":"","sources":["../../../src/core/state/tool-approvals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-approvals.js","sourceRoot":"","sources":["../../../src/core/state/tool-approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-turn message-index bookmarks, keyed by the ACP `messageId` the agent
|
|
3
|
+
* generates for that turn's user message.
|
|
4
|
+
*
|
|
5
|
+
* Per the ACP MessageId RFD, only the Agent generates protocol message ids —
|
|
6
|
+
* a client never mints its own. Clients that support Cursor-style "revert"
|
|
7
|
+
* capture the `messageId`
|
|
8
|
+
* from the turn's `user_message_chunk` echo and pass it back via the custom
|
|
9
|
+
* `_hoomanjs/rewind_session` method. We record `agent.messages.length` right
|
|
10
|
+
* before the turn's messages are appended, so a later rewind can splice
|
|
11
|
+
* history back to exactly that point. Stored on `appState` (persisted with
|
|
12
|
+
* the snapshot) so it survives across turns within a session; entries are
|
|
13
|
+
* dropped once their turn (or a later one) is rewound.
|
|
14
|
+
*/
|
|
15
|
+
export declare const TURN_BOUNDARIES_STATE_KEY = "hooman.turnBoundaries";
|
|
16
|
+
type AppStateLike = {
|
|
17
|
+
get<T = unknown>(key: string): T;
|
|
18
|
+
set(key: string, value: unknown): void;
|
|
19
|
+
};
|
|
20
|
+
type AgentLike = {
|
|
21
|
+
appState: AppStateLike;
|
|
22
|
+
};
|
|
23
|
+
/** Record the message-index boundary for a turn about to start. */
|
|
24
|
+
export declare function recordTurnBoundary(agent: AgentLike, messageId: string, messageIndex: number): void;
|
|
25
|
+
/** Message-index boundary for `messageId`, or `undefined` if unknown (e.g. replayed history). */
|
|
26
|
+
export declare function getTurnBoundary(agent: AgentLike, messageId: string): number | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Drop the boundary for `messageId` and every turn recorded after it (their
|
|
29
|
+
* messages are being spliced away by the rewind, so their bookmarks are no
|
|
30
|
+
* longer meaningful).
|
|
31
|
+
*/
|
|
32
|
+
export declare function dropTurnBoundariesFrom(agent: AgentLike, messageId: string): void;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-turn message-index bookmarks, keyed by the ACP `messageId` the agent
|
|
3
|
+
* generates for that turn's user message.
|
|
4
|
+
*
|
|
5
|
+
* Per the ACP MessageId RFD, only the Agent generates protocol message ids —
|
|
6
|
+
* a client never mints its own. Clients that support Cursor-style "revert"
|
|
7
|
+
* capture the `messageId`
|
|
8
|
+
* from the turn's `user_message_chunk` echo and pass it back via the custom
|
|
9
|
+
* `_hoomanjs/rewind_session` method. We record `agent.messages.length` right
|
|
10
|
+
* before the turn's messages are appended, so a later rewind can splice
|
|
11
|
+
* history back to exactly that point. Stored on `appState` (persisted with
|
|
12
|
+
* the snapshot) so it survives across turns within a session; entries are
|
|
13
|
+
* dropped once their turn (or a later one) is rewound.
|
|
14
|
+
*/
|
|
15
|
+
export const TURN_BOUNDARIES_STATE_KEY = "hooman.turnBoundaries";
|
|
16
|
+
function readTurnBoundaries(agent) {
|
|
17
|
+
const raw = agent.appState.get(TURN_BOUNDARIES_STATE_KEY);
|
|
18
|
+
return raw && typeof raw === "object" ? raw : {};
|
|
19
|
+
}
|
|
20
|
+
/** Record the message-index boundary for a turn about to start. */
|
|
21
|
+
export function recordTurnBoundary(agent, messageId, messageIndex) {
|
|
22
|
+
const boundaries = readTurnBoundaries(agent);
|
|
23
|
+
boundaries[messageId] = messageIndex;
|
|
24
|
+
agent.appState.set(TURN_BOUNDARIES_STATE_KEY, boundaries);
|
|
25
|
+
}
|
|
26
|
+
/** Message-index boundary for `messageId`, or `undefined` if unknown (e.g. replayed history). */
|
|
27
|
+
export function getTurnBoundary(agent, messageId) {
|
|
28
|
+
return readTurnBoundaries(agent)[messageId];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Drop the boundary for `messageId` and every turn recorded after it (their
|
|
32
|
+
* messages are being spliced away by the rewind, so their bookmarks are no
|
|
33
|
+
* longer meaningful).
|
|
34
|
+
*/
|
|
35
|
+
export function dropTurnBoundariesFrom(agent, messageId) {
|
|
36
|
+
const boundaries = readTurnBoundaries(agent);
|
|
37
|
+
const cutoff = boundaries[messageId];
|
|
38
|
+
if (cutoff === undefined) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const next = {};
|
|
42
|
+
for (const [id, index] of Object.entries(boundaries)) {
|
|
43
|
+
if (index < cutoff) {
|
|
44
|
+
next[id] = index;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
agent.appState.set(TURN_BOUNDARIES_STATE_KEY, next);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=turn-boundaries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-boundaries.js","sourceRoot":"","sources":["../../../src/core/state/turn-boundaries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAajE,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAC5B,yBAAyB,CAC1B,CAAC;IACF,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAChC,KAAgB,EAChB,SAAiB,EACjB,YAAoB;IAEpB,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,UAAU,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;IACrC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;AAC5D,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,eAAe,CAC7B,KAAgB,EAChB,SAAiB;IAEjB,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAgB,EAChB,SAAiB;IAEjB,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared brand palette for CLI Ink surfaces (and any other non-webview UI).
|
|
3
|
+
* VS Code webviews mirror these values in `src/vscode/webview/index.css`.
|
|
4
|
+
*/
|
|
5
|
+
export declare const theme: {
|
|
6
|
+
readonly primary: "#0091cd";
|
|
7
|
+
readonly secondary: "#56a0d3";
|
|
8
|
+
readonly warning: "#ecb731";
|
|
9
|
+
readonly error: "#ee4c58";
|
|
10
|
+
readonly success: "#8ec06c";
|
|
11
|
+
readonly info: "#c4dff6";
|
|
12
|
+
readonly muted: "#9ba5a8";
|
|
13
|
+
};
|
|
14
|
+
export type ThemeColor = (typeof theme)[keyof typeof theme];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared brand palette for CLI Ink surfaces (and any other non-webview UI).
|
|
3
|
+
* VS Code webviews mirror these values in `src/vscode/webview/index.css`.
|
|
4
|
+
*/
|
|
5
|
+
export const theme = {
|
|
6
|
+
primary: "#0091cd",
|
|
7
|
+
secondary: "#56a0d3",
|
|
8
|
+
warning: "#ecb731",
|
|
9
|
+
error: "#ee4c58",
|
|
10
|
+
success: "#8ec06c",
|
|
11
|
+
info: "#c4dff6",
|
|
12
|
+
muted: "#9ba5a8",
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/core/theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;CACR,CAAC"}
|
|
@@ -4,7 +4,6 @@ export { createFilesystemTools, clearReadTimeAgentInstructionState, } from "./fi
|
|
|
4
4
|
export { createGrepTools } from "./grep.js";
|
|
5
5
|
export { createFetchTools } from "./fetch.js";
|
|
6
6
|
export { createSleepTools } from "./sleep.js";
|
|
7
|
-
export { createShellTools } from "./shell.js";
|
|
8
7
|
export { createThinkingTools } from "./thinking.js";
|
|
9
8
|
export { createTimeTools } from "./time.js";
|
|
10
9
|
export { createTodoTools } from "./todo.js";
|
package/dist/core/tools/index.js
CHANGED
|
@@ -4,7 +4,6 @@ export { createFilesystemTools, clearReadTimeAgentInstructionState, } from "./fi
|
|
|
4
4
|
export { createGrepTools } from "./grep.js";
|
|
5
5
|
export { createFetchTools } from "./fetch.js";
|
|
6
6
|
export { createSleepTools } from "./sleep.js";
|
|
7
|
-
export { createShellTools } from "./shell.js";
|
|
8
7
|
export { createThinkingTools } from "./thinking.js";
|
|
9
8
|
export { createTimeTools } from "./time.js";
|
|
10
9
|
export { createTodoTools } from "./todo.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,10 +23,10 @@ export type { BeginAuthorizationResult as McpBeginAuthorizationResult, McpOAuthC
|
|
|
23
23
|
export { McpTransportSchema, SseSchema, StdioSchema, StreamableHttpSchema, } from "./core/mcp/types.js";
|
|
24
24
|
export type { McpTransport, Sse, Stdio, StreamableHttp, } from "./core/mcp/types.js";
|
|
25
25
|
export { PrefixedMcpTool } from "./core/mcp/prefixed-mcp-tool.js";
|
|
26
|
-
export { createAskUserTools, createFetchTools, createFilesystemTools, createGrepTools,
|
|
26
|
+
export { createAskUserTools, createFetchTools, createFilesystemTools, createGrepTools, createSleepTools, createThinkingTools, createTimeTools, createTodoTools, createWebSearchTools, } from "./core/tools/index.js";
|
|
27
27
|
export { UPDATE_TODOS_TOOL_NAME } from "./core/tools/todo.js";
|
|
28
28
|
export { ASK_USER_TOOL_NAME, getAskUserBackend, setAskUserBackend, type AskUserBackend, type AskUserRequest, type AskUserResponse, } from "./core/tools/ask-user.js";
|
|
29
|
-
export { getTerminalBackend, setTerminalBackend, type TerminalBackend, type TerminalRunRequest, type TerminalRunResult, } from "./core/
|
|
29
|
+
export { clearShellJobManager, createShellTools, getShellJobManager, getTerminalBackend, peekShellJobManager, setTerminalBackend, ShellJobManager, SHELL_OUTPUT_TOOL_NAME, SHELL_STOP_TOOL_NAME, SHELL_TOOL_NAME, type ShellJobEvent, type ShellJobInfo, type ShellJobOutputSnapshot, type ShellJobStatus, type TerminalBackend, type TerminalOutputSnapshot, type TerminalRunRequest, type TerminalRunResult, type TerminalSpawnResult, } from "./core/shell/index.js";
|
|
30
30
|
export { getTextFsBackend, setTextFsBackend, type TextFsBackend, type TextFsReadOptions, } from "./core/tools/filesystem.js";
|
|
31
31
|
export { AGENT_SKILLS_STATE_KEY, Registry as SkillsRegistry, builtInSkillsPath, clearAgentSkillsPromptInjectionState, createAgentSkillsPlugin, createAgentSkillSources, createSkillsRegistry, } from "./core/skills/index.js";
|
|
32
32
|
export type { SkillListEntry, SkillSearchResult, } from "./core/skills/registry.js";
|
package/dist/index.js
CHANGED
|
@@ -18,10 +18,10 @@ export { Config as McpConfig } from "./core/mcp/config.js";
|
|
|
18
18
|
export { HoomanMcpOAuthProvider, McpOAuthConfigSchema, McpOAuthService, McpOAuthStore, StoredMcpOAuthClientSchema, StoredMcpOAuthDiscoverySchema, StoredMcpOAuthEntrySchema, StoredMcpOAuthFileSchema, StoredMcpOAuthTokensSchema, canonicalizeRemoteServerUrl, createRemoteTransportFingerprint, createRemoteTransportIdentity, startCallbackServer, } from "./core/mcp/oauth/index.js";
|
|
19
19
|
export { McpTransportSchema, SseSchema, StdioSchema, StreamableHttpSchema, } from "./core/mcp/types.js";
|
|
20
20
|
export { PrefixedMcpTool } from "./core/mcp/prefixed-mcp-tool.js";
|
|
21
|
-
export { createAskUserTools, createFetchTools, createFilesystemTools, createGrepTools,
|
|
21
|
+
export { createAskUserTools, createFetchTools, createFilesystemTools, createGrepTools, createSleepTools, createThinkingTools, createTimeTools, createTodoTools, createWebSearchTools, } from "./core/tools/index.js";
|
|
22
22
|
export { UPDATE_TODOS_TOOL_NAME } from "./core/tools/todo.js";
|
|
23
23
|
export { ASK_USER_TOOL_NAME, getAskUserBackend, setAskUserBackend, } from "./core/tools/ask-user.js";
|
|
24
|
-
export { getTerminalBackend, setTerminalBackend, } from "./core/
|
|
24
|
+
export { clearShellJobManager, createShellTools, getShellJobManager, getTerminalBackend, peekShellJobManager, setTerminalBackend, ShellJobManager, SHELL_OUTPUT_TOOL_NAME, SHELL_STOP_TOOL_NAME, SHELL_TOOL_NAME, } from "./core/shell/index.js";
|
|
25
25
|
export { getTextFsBackend, setTextFsBackend, } from "./core/tools/filesystem.js";
|
|
26
26
|
export { AGENT_SKILLS_STATE_KEY, Registry as SkillsRegistry, builtInSkillsPath, clearAgentSkillsPromptInjectionState, createAgentSkillsPlugin, createAgentSkillSources, createSkillsRegistry, } from "./core/skills/index.js";
|
|
27
27
|
export { System as SystemPrompt, system as createSystemPrompt, } from "./core/prompts/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,mDAAmD;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAcvE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,eAAe,EACf,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,YAAY,GACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACZ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,OAAO,IAAI,UAAU,EACrB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,MAAM,IAAI,SAAS,EAAuB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAWnC,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,mDAAmD;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAcvE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,eAAe,EACf,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,YAAY,GACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACZ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,OAAO,IAAI,UAAU,EACrB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,MAAM,IAAI,SAAS,EAAuB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAWnC,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,GAUhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,sBAAsB,EACtB,QAAQ,IAAI,cAAc,EAC1B,iBAAiB,EACjB,oCAAoC,EACpC,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,MAAM,IAAI,YAAY,EACtB,MAAM,IAAI,kBAAkB,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAK7E,OAAO,EACL,MAAM,IAAI,4BAA4B,GAEvC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,MAAM,IAAI,wBAAwB,GAEnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAE,MAAM,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,MAAM,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,MAAM,IAAI,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,MAAM,IAAI,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EACL,MAAM,IAAI,yBAAyB,GAEpC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,MAAM,IAAI,6BAA6B,GAExC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,kBAAkB,GAEnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EACL,kBAAkB,GAEnB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,eAAe,GAEhB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EACL,uBAAuB,IAAI,qCAAqC,EAChE,mBAAmB,EACnB,aAAa,EACb,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,SAAS,EACT,YAAY,GAGb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,WAAW,EACX,aAAa,EACb,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,8BAA8B,GAM/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,GAElB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,kCAAkC,GAEnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,GAEf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GAGpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/core/tools/shell.ts"],"names":[],"mappings":"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"}
|