jazz-ai 0.2.2 → 0.4.3
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 +8 -6
- package/dist/cli/commands/chat-agent.d.ts +3 -1
- package/dist/cli/commands/chat-agent.d.ts.map +1 -1
- package/dist/cli/commands/chat-agent.js +180 -102
- package/dist/cli/commands/chat-agent.js.map +1 -1
- package/dist/cli/commands/edit-agent.d.ts +2 -2
- package/dist/cli/commands/edit-agent.d.ts.map +1 -1
- package/dist/cli/commands/edit-agent.js +20 -10
- package/dist/cli/commands/edit-agent.js.map +1 -1
- package/dist/cli/commands/task-agent.d.ts +1 -1
- package/dist/cli/commands/task-agent.d.ts.map +1 -1
- package/dist/cli/commands/task-agent.js +6 -6
- package/dist/cli/commands/task-agent.js.map +1 -1
- package/dist/constants/agent.d.ts +2 -0
- package/dist/constants/agent.d.ts.map +1 -0
- package/dist/constants/agent.js +5 -0
- package/dist/constants/agent.js.map +1 -0
- package/dist/core/agent/agent-prompt.d.ts +0 -1
- package/dist/core/agent/agent-prompt.d.ts.map +1 -1
- package/dist/core/agent/agent-prompt.js +7 -15
- package/dist/core/agent/agent-prompt.js.map +1 -1
- package/dist/core/agent/agent-runner.d.ts +15 -0
- package/dist/core/agent/agent-runner.d.ts.map +1 -1
- package/dist/core/agent/agent-runner.js +570 -270
- package/dist/core/agent/agent-runner.js.map +1 -1
- package/dist/core/agent/agent-service.d.ts +20 -5
- package/dist/core/agent/agent-service.d.ts.map +1 -1
- package/dist/core/agent/agent-service.js +54 -6
- package/dist/core/agent/agent-service.js.map +1 -1
- package/dist/core/agent/gmail-agent.js +7 -7
- package/dist/core/agent/gmail-agent.js.map +1 -1
- package/dist/core/agent/prompts/coder/v1.d.ts +2 -0
- package/dist/core/agent/prompts/coder/v1.d.ts.map +1 -0
- package/dist/core/agent/prompts/coder/v1.js +370 -0
- package/dist/core/agent/prompts/coder/v1.js.map +1 -0
- package/dist/core/agent/prompts/default/v2.d.ts +1 -1
- package/dist/core/agent/prompts/default/v2.d.ts.map +1 -1
- package/dist/core/agent/prompts/default/v2.js +1 -2
- package/dist/core/agent/prompts/default/v2.js.map +1 -1
- package/dist/core/agent/prompts/gmail/v1.d.ts +1 -1
- package/dist/core/agent/prompts/gmail/v1.d.ts.map +1 -1
- package/dist/core/agent/prompts/gmail/v1.js +5 -5
- package/dist/core/agent/prompts/gmail/v2.d.ts +1 -1
- package/dist/core/agent/prompts/gmail/v2.d.ts.map +1 -1
- package/dist/core/agent/prompts/gmail/v2.js +7 -7
- package/dist/core/agent/tools/base-tool.d.ts +3 -4
- package/dist/core/agent/tools/base-tool.d.ts.map +1 -1
- package/dist/core/agent/tools/base-tool.js +11 -51
- package/dist/core/agent/tools/base-tool.js.map +1 -1
- package/dist/core/agent/tools/context-utils.d.ts +6 -0
- package/dist/core/agent/tools/context-utils.d.ts.map +1 -0
- package/dist/core/agent/tools/context-utils.js +9 -0
- package/dist/core/agent/tools/context-utils.js.map +1 -0
- package/dist/core/agent/tools/env-utils.d.ts +7 -0
- package/dist/core/agent/tools/env-utils.d.ts.map +1 -0
- package/dist/core/agent/tools/env-utils.js +39 -0
- package/dist/core/agent/tools/env-utils.js.map +1 -0
- package/dist/core/agent/tools/fs-tools.d.ts.map +1 -1
- package/dist/core/agent/tools/fs-tools.js +48 -53
- package/dist/core/agent/tools/fs-tools.js.map +1 -1
- package/dist/core/agent/tools/git-tools.d.ts +5 -0
- package/dist/core/agent/tools/git-tools.d.ts.map +1 -1
- package/dist/core/agent/tools/git-tools.js +716 -154
- package/dist/core/agent/tools/git-tools.js.map +1 -1
- package/dist/core/agent/tools/gmail-tools.js +35 -35
- package/dist/core/agent/tools/gmail-tools.js.map +1 -1
- package/dist/core/agent/tools/http-tools.js +2 -2
- package/dist/core/agent/tools/http-tools.js.map +1 -1
- package/dist/core/agent/tools/register-tools.d.ts +18 -1
- package/dist/core/agent/tools/register-tools.d.ts.map +1 -1
- package/dist/core/agent/tools/register-tools.js +52 -6
- package/dist/core/agent/tools/register-tools.js.map +1 -1
- package/dist/core/agent/tools/shell-tools.d.ts.map +1 -1
- package/dist/core/agent/tools/shell-tools.js +10 -20
- package/dist/core/agent/tools/shell-tools.js.map +1 -1
- package/dist/core/agent/tools/tool-registry.d.ts +11 -7
- package/dist/core/agent/tools/tool-registry.d.ts.map +1 -1
- package/dist/core/agent/tools/tool-registry.js +45 -19
- package/dist/core/agent/tools/tool-registry.js.map +1 -1
- package/dist/core/agent/tools/web-search-tools.js +1 -1
- package/dist/core/agent/tools/web-search-tools.js.map +1 -1
- package/dist/core/agent/tracking/agent-run-tracker.d.ts +2 -0
- package/dist/core/agent/tracking/agent-run-tracker.d.ts.map +1 -1
- package/dist/core/agent/tracking/agent-run-tracker.js +40 -2
- package/dist/core/agent/tracking/agent-run-tracker.js.map +1 -1
- package/dist/core/types/index.d.ts +82 -15
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/utils/markdown-renderer.d.ts +25 -0
- package/dist/core/utils/markdown-renderer.d.ts.map +1 -1
- package/dist/core/utils/markdown-renderer.js +100 -1
- package/dist/core/utils/markdown-renderer.js.map +1 -1
- package/dist/core/utils/output-renderer.d.ts +81 -0
- package/dist/core/utils/output-renderer.d.ts.map +1 -0
- package/dist/core/utils/output-renderer.js +291 -0
- package/dist/core/utils/output-renderer.js.map +1 -0
- package/dist/core/utils/output-theme.d.ts +64 -0
- package/dist/core/utils/output-theme.d.ts.map +1 -0
- package/dist/core/utils/output-theme.js +154 -0
- package/dist/core/utils/output-theme.js.map +1 -0
- package/dist/core/utils/output-writer.d.ts +79 -0
- package/dist/core/utils/output-writer.d.ts.map +1 -0
- package/dist/core/utils/output-writer.js +133 -0
- package/dist/core/utils/output-writer.js.map +1 -0
- package/dist/core/utils/runtime-detection.d.ts +28 -0
- package/dist/core/utils/runtime-detection.d.ts.map +1 -0
- package/dist/core/utils/runtime-detection.js +62 -0
- package/dist/core/utils/runtime-detection.js.map +1 -0
- package/dist/core/utils/string.d.ts +8 -0
- package/dist/core/utils/string.d.ts.map +1 -0
- package/dist/core/utils/string.js +19 -0
- package/dist/core/utils/string.js.map +1 -0
- package/dist/core/utils/thinking-renderer.d.ts +56 -0
- package/dist/core/utils/thinking-renderer.d.ts.map +1 -0
- package/dist/core/utils/thinking-renderer.js +174 -0
- package/dist/core/utils/thinking-renderer.js.map +1 -0
- package/dist/core/utils/tool-formatter.d.ts +21 -0
- package/dist/core/utils/tool-formatter.d.ts.map +1 -0
- package/dist/core/utils/tool-formatter.js +343 -0
- package/dist/core/utils/tool-formatter.js.map +1 -0
- package/dist/main.js +11 -4
- package/dist/main.js.map +1 -1
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +20 -20
- package/dist/services/config.js.map +1 -1
- package/dist/services/llm/ai-sdk-service.d.ts.map +1 -1
- package/dist/services/llm/ai-sdk-service.js +128 -37
- package/dist/services/llm/ai-sdk-service.js.map +1 -1
- package/dist/services/llm/stream-detector.d.ts +44 -0
- package/dist/services/llm/stream-detector.d.ts.map +1 -0
- package/dist/services/llm/stream-detector.js +81 -0
- package/dist/services/llm/stream-detector.js.map +1 -0
- package/dist/services/llm/stream-processor.d.ts +93 -0
- package/dist/services/llm/stream-processor.d.ts.map +1 -0
- package/dist/services/llm/stream-processor.js +330 -0
- package/dist/services/llm/stream-processor.js.map +1 -0
- package/dist/services/llm/streaming-types.d.ts +131 -0
- package/dist/services/llm/streaming-types.d.ts.map +1 -0
- package/dist/services/llm/streaming-types.js +12 -0
- package/dist/services/llm/streaming-types.js.map +1 -0
- package/dist/services/llm/types.d.ts +8 -0
- package/dist/services/llm/types.d.ts.map +1 -1
- package/dist/services/llm/types.js.map +1 -1
- package/dist/services/logger.d.ts +4 -4
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +23 -45
- package/dist/services/logger.js.map +1 -1
- package/dist/services/shell.d.ts.map +1 -1
- package/dist/services/shell.js +52 -18
- package/dist/services/shell.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QuietWriter = exports.TestWriter = exports.JSONWriter = exports.TerminalWriter = void 0;
|
|
4
|
+
const effect_1 = require("effect");
|
|
5
|
+
/**
|
|
6
|
+
* Terminal writer - writes to stdout/stderr
|
|
7
|
+
*/
|
|
8
|
+
class TerminalWriter {
|
|
9
|
+
write(text) {
|
|
10
|
+
return effect_1.Effect.sync(() => {
|
|
11
|
+
process.stdout.write(text);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
writeLine(text) {
|
|
15
|
+
return effect_1.Effect.sync(() => {
|
|
16
|
+
console.log(text);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
clearLines(count) {
|
|
20
|
+
return effect_1.Effect.sync(() => {
|
|
21
|
+
if (count > 0 && process.stdout.isTTY) {
|
|
22
|
+
// Move cursor up N lines and clear to end of screen
|
|
23
|
+
process.stdout.write(`\x1b[${count}A\x1b[0J`);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
flush() {
|
|
28
|
+
return effect_1.Effect.sync(() => {
|
|
29
|
+
// stdout is auto-flushed, but we add explicit flush for completeness
|
|
30
|
+
if (process.stdout.write("")) {
|
|
31
|
+
// Write succeeded, already flushed
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.TerminalWriter = TerminalWriter;
|
|
37
|
+
/**
|
|
38
|
+
* JSON writer - accumulates structured output for programmatic consumption
|
|
39
|
+
*/
|
|
40
|
+
class JSONWriter {
|
|
41
|
+
events = [];
|
|
42
|
+
write(text) {
|
|
43
|
+
return effect_1.Effect.sync(() => {
|
|
44
|
+
this.events.push({
|
|
45
|
+
type: "text",
|
|
46
|
+
content: text,
|
|
47
|
+
timestamp: Date.now(),
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
writeLine(text) {
|
|
52
|
+
return effect_1.Effect.sync(() => {
|
|
53
|
+
this.events.push({
|
|
54
|
+
type: "line",
|
|
55
|
+
content: text,
|
|
56
|
+
timestamp: Date.now(),
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
clearLines(_count) {
|
|
61
|
+
// No-op for JSON writer - we don't modify previous output
|
|
62
|
+
return effect_1.Effect.void;
|
|
63
|
+
}
|
|
64
|
+
flush() {
|
|
65
|
+
return effect_1.Effect.sync(() => {
|
|
66
|
+
// Output accumulated JSON to stdout
|
|
67
|
+
console.log(JSON.stringify(this.events, null, 2));
|
|
68
|
+
this.events = [];
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get accumulated events without flushing
|
|
73
|
+
*/
|
|
74
|
+
getEvents() {
|
|
75
|
+
return this.events;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.JSONWriter = JSONWriter;
|
|
79
|
+
/**
|
|
80
|
+
* Test writer - captures output for testing
|
|
81
|
+
*/
|
|
82
|
+
class TestWriter {
|
|
83
|
+
buffer = [];
|
|
84
|
+
write(text) {
|
|
85
|
+
return effect_1.Effect.sync(() => {
|
|
86
|
+
this.buffer.push(text);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
writeLine(text) {
|
|
90
|
+
return effect_1.Effect.sync(() => {
|
|
91
|
+
this.buffer.push(text + "\n");
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
clearLines(_count) {
|
|
95
|
+
// For testing, we just record that clear was called
|
|
96
|
+
return effect_1.Effect.void;
|
|
97
|
+
}
|
|
98
|
+
flush() {
|
|
99
|
+
return effect_1.Effect.void;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get all captured output as a single string
|
|
103
|
+
*/
|
|
104
|
+
getOutput() {
|
|
105
|
+
return this.buffer.join("");
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Clear the buffer
|
|
109
|
+
*/
|
|
110
|
+
clear() {
|
|
111
|
+
this.buffer = [];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.TestWriter = TestWriter;
|
|
115
|
+
/**
|
|
116
|
+
* Quiet writer - suppresses all output except errors
|
|
117
|
+
*/
|
|
118
|
+
class QuietWriter {
|
|
119
|
+
write(_text) {
|
|
120
|
+
return effect_1.Effect.void;
|
|
121
|
+
}
|
|
122
|
+
writeLine(_text) {
|
|
123
|
+
return effect_1.Effect.void;
|
|
124
|
+
}
|
|
125
|
+
clearLines(_count) {
|
|
126
|
+
return effect_1.Effect.void;
|
|
127
|
+
}
|
|
128
|
+
flush() {
|
|
129
|
+
return effect_1.Effect.void;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.QuietWriter = QuietWriter;
|
|
133
|
+
//# sourceMappingURL=output-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-writer.js","sourceRoot":"","sources":["../../../src/core/utils/output-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime detection utilities for determining execution context
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Detect if the CLI is running from a global npm/pnpm/bun/yarn installation
|
|
6
|
+
*
|
|
7
|
+
* This is useful for determining whether to use user-specific directories
|
|
8
|
+
* (like ~/.jazz/logs) or local development directories (like ./logs)
|
|
9
|
+
*
|
|
10
|
+
* @returns true if running from a global package installation, false otherwise
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* if (isInstalledGlobally()) {
|
|
15
|
+
* // Use ~/.jazz/logs for production
|
|
16
|
+
* } else {
|
|
17
|
+
* // Use ./logs for development
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function isInstalledGlobally(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Check if running in development mode
|
|
24
|
+
*
|
|
25
|
+
* @returns true if running in local development, false if in production/global install
|
|
26
|
+
*/
|
|
27
|
+
export declare function isDevelopmentMode(): boolean;
|
|
28
|
+
//# sourceMappingURL=runtime-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-detection.d.ts","sourceRoot":"","sources":["../../../src/core/utils/runtime-detection.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CA4B7C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isInstalledGlobally = isInstalledGlobally;
|
|
4
|
+
exports.isDevelopmentMode = isDevelopmentMode;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const node_os_1 = tslib_1.__importDefault(require("node:os"));
|
|
7
|
+
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
8
|
+
/**
|
|
9
|
+
* Runtime detection utilities for determining execution context
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Detect if the CLI is running from a global npm/pnpm/bun/yarn installation
|
|
13
|
+
*
|
|
14
|
+
* This is useful for determining whether to use user-specific directories
|
|
15
|
+
* (like ~/.jazz/logs) or local development directories (like ./logs)
|
|
16
|
+
*
|
|
17
|
+
* @returns true if running from a global package installation, false otherwise
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* if (isInstalledGlobally()) {
|
|
22
|
+
* // Use ~/.jazz/logs for production
|
|
23
|
+
* } else {
|
|
24
|
+
* // Use ./logs for development
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
function isInstalledGlobally() {
|
|
29
|
+
// Get the directory where the current script is located
|
|
30
|
+
const scriptPath = __dirname;
|
|
31
|
+
// Common global installation paths for different package managers
|
|
32
|
+
const globalPaths = [
|
|
33
|
+
// npm global paths
|
|
34
|
+
"/usr/local/lib/node_modules",
|
|
35
|
+
"/usr/lib/node_modules",
|
|
36
|
+
node_path_1.default.join(node_os_1.default.homedir(), ".npm-global"),
|
|
37
|
+
node_path_1.default.join(node_os_1.default.homedir(), ".npm-packages"),
|
|
38
|
+
// pnpm global paths
|
|
39
|
+
node_path_1.default.join(node_os_1.default.homedir(), ".local/share/pnpm"),
|
|
40
|
+
node_path_1.default.join(node_os_1.default.homedir(), ".pnpm-global"),
|
|
41
|
+
// bun global paths
|
|
42
|
+
node_path_1.default.join(node_os_1.default.homedir(), ".bun/install/global"),
|
|
43
|
+
// yarn global paths
|
|
44
|
+
node_path_1.default.join(node_os_1.default.homedir(), ".yarn/bin"),
|
|
45
|
+
node_path_1.default.join(node_os_1.default.homedir(), ".config/yarn/global"),
|
|
46
|
+
];
|
|
47
|
+
// Check if script path contains any global installation directory
|
|
48
|
+
// Also check for 'node_modules' in path but not in current working directory
|
|
49
|
+
// (indicates installed package vs local development)
|
|
50
|
+
const isInGlobalPath = globalPaths.some((globalPath) => scriptPath.includes(globalPath));
|
|
51
|
+
const isInNodeModules = scriptPath.includes("node_modules") && !scriptPath.startsWith(process.cwd());
|
|
52
|
+
return isInGlobalPath || isInNodeModules;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Check if running in development mode
|
|
56
|
+
*
|
|
57
|
+
* @returns true if running in local development, false if in production/global install
|
|
58
|
+
*/
|
|
59
|
+
function isDevelopmentMode() {
|
|
60
|
+
return !isInstalledGlobally();
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=runtime-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-detection.js","sourceRoot":"","sources":["../../../src/core/utils/runtime-detection.ts"],"names":[],"mappings":";;AAwBA,kDA4BC;AAOD,8CAEC;;AA7DD,8DAAyB;AACzB,kEAA6B;AAE7B;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,mBAAmB;IACjC,wDAAwD;IACxD,MAAM,UAAU,GAAG,SAAS,CAAC;IAE7B,kEAAkE;IAClE,MAAM,WAAW,GAAG;QAClB,mBAAmB;QACnB,6BAA6B;QAC7B,uBAAuB;QACvB,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC;QACtC,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC;QACxC,oBAAoB;QACpB,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC;QAC5C,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC;QACvC,mBAAmB;QACnB,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC;QAC9C,oBAAoB;QACpB,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC;QACpC,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC;KAC/C,CAAC;IAEF,kEAAkE;IAClE,6EAA6E;IAC7E,qDAAqD;IACrD,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACzF,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAErG,OAAO,cAAc,IAAI,eAAe,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,mBAAmB,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src/core/utils/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKjD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Utility functions for string conversion and manipulation
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.safeString = safeString;
|
|
7
|
+
/**
|
|
8
|
+
* Safely convert a value to a string, handling null/undefined/objects
|
|
9
|
+
*/
|
|
10
|
+
function safeString(value) {
|
|
11
|
+
if (value === null || value === undefined)
|
|
12
|
+
return "";
|
|
13
|
+
if (typeof value === "string")
|
|
14
|
+
return value;
|
|
15
|
+
if (typeof value === "number" || typeof value === "boolean")
|
|
16
|
+
return String(value);
|
|
17
|
+
return "";
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../../src/core/utils/string.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAKH,gCAKC;AARD;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAClF,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { RenderTheme } from "./output-theme";
|
|
2
|
+
/**
|
|
3
|
+
* Renders thinking/reasoning output with explicit state management
|
|
4
|
+
* Handles the complex logic of showing reasoning progress and completion
|
|
5
|
+
*/
|
|
6
|
+
export declare class ThinkingRenderer {
|
|
7
|
+
private theme;
|
|
8
|
+
private state;
|
|
9
|
+
private totalTokens;
|
|
10
|
+
constructor(theme: RenderTheme);
|
|
11
|
+
/**
|
|
12
|
+
* Handle thinking_start event
|
|
13
|
+
* Returns the header to display, or null if nothing should be shown
|
|
14
|
+
*/
|
|
15
|
+
handleStart(): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Handle thinking_chunk event
|
|
18
|
+
* Returns the formatted chunk to display
|
|
19
|
+
*/
|
|
20
|
+
handleChunk(content: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Handle thinking_complete event
|
|
23
|
+
* Returns an object with:
|
|
24
|
+
* - output: the text to display
|
|
25
|
+
* - shouldClearLines: number of lines to clear before displaying (for updates)
|
|
26
|
+
*/
|
|
27
|
+
handleComplete(tokens?: number): {
|
|
28
|
+
output: string;
|
|
29
|
+
shouldClearLines: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Check if thinking is active (started or has content)
|
|
33
|
+
*/
|
|
34
|
+
isActive(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Reset state for new thinking session
|
|
37
|
+
*/
|
|
38
|
+
reset(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Format the thinking start header
|
|
41
|
+
*/
|
|
42
|
+
private formatStart;
|
|
43
|
+
/**
|
|
44
|
+
* Format a thinking content chunk
|
|
45
|
+
*/
|
|
46
|
+
private formatChunk;
|
|
47
|
+
/**
|
|
48
|
+
* Format the completion footer (with optional token count)
|
|
49
|
+
*/
|
|
50
|
+
private formatComplete;
|
|
51
|
+
/**
|
|
52
|
+
* Format minimal completion (no content received)
|
|
53
|
+
*/
|
|
54
|
+
private formatCompleteMinimal;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=thinking-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thinking-renderer.d.ts","sourceRoot":"","sources":["../../../src/core/utils/thinking-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAYlD;;;GAGG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,KAAK;IAHzB,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,WAAW,CAAiC;gBAEhC,KAAK,EAAE,WAAW;IAEtC;;;OAGG;IACH,WAAW,IAAI,MAAM,GAAG,IAAI;IAU5B;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAcpC;;;;;OAKG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE;IAiE7E;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAU9B"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ThinkingRenderer = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Explicit state machine for thinking/reasoning rendering
|
|
6
|
+
*/
|
|
7
|
+
var ThinkingState;
|
|
8
|
+
(function (ThinkingState) {
|
|
9
|
+
ThinkingState["Idle"] = "idle";
|
|
10
|
+
ThinkingState["Started"] = "started";
|
|
11
|
+
ThinkingState["HasContent"] = "has_content";
|
|
12
|
+
ThinkingState["Complete"] = "complete";
|
|
13
|
+
})(ThinkingState || (ThinkingState = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Renders thinking/reasoning output with explicit state management
|
|
16
|
+
* Handles the complex logic of showing reasoning progress and completion
|
|
17
|
+
*/
|
|
18
|
+
class ThinkingRenderer {
|
|
19
|
+
theme;
|
|
20
|
+
state = ThinkingState.Idle;
|
|
21
|
+
totalTokens = undefined;
|
|
22
|
+
constructor(theme) {
|
|
23
|
+
this.theme = theme;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Handle thinking_start event
|
|
27
|
+
* Returns the header to display, or null if nothing should be shown
|
|
28
|
+
*/
|
|
29
|
+
handleStart() {
|
|
30
|
+
if (this.state !== ThinkingState.Idle) {
|
|
31
|
+
// Already started, ignore duplicate start event
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
this.state = ThinkingState.Started;
|
|
35
|
+
return this.formatStart();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Handle thinking_chunk event
|
|
39
|
+
* Returns the formatted chunk to display
|
|
40
|
+
*/
|
|
41
|
+
handleChunk(content) {
|
|
42
|
+
if (this.state === ThinkingState.Idle) {
|
|
43
|
+
// Received chunk without start - ignore
|
|
44
|
+
return "";
|
|
45
|
+
}
|
|
46
|
+
// Mark that we have content
|
|
47
|
+
if (this.state === ThinkingState.Started) {
|
|
48
|
+
this.state = ThinkingState.HasContent;
|
|
49
|
+
}
|
|
50
|
+
return this.formatChunk(content);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Handle thinking_complete event
|
|
54
|
+
* Returns an object with:
|
|
55
|
+
* - output: the text to display
|
|
56
|
+
* - shouldClearLines: number of lines to clear before displaying (for updates)
|
|
57
|
+
*/
|
|
58
|
+
handleComplete(tokens) {
|
|
59
|
+
// Store tokens if provided
|
|
60
|
+
if (tokens !== undefined) {
|
|
61
|
+
this.totalTokens = tokens;
|
|
62
|
+
}
|
|
63
|
+
switch (this.state) {
|
|
64
|
+
case ThinkingState.Idle:
|
|
65
|
+
// Complete without start - check if we have tokens to display
|
|
66
|
+
if (this.totalTokens !== undefined) {
|
|
67
|
+
// This is a late token update after state was reset
|
|
68
|
+
// Don't display anything - already showed completion
|
|
69
|
+
return { output: "", shouldClearLines: 0 };
|
|
70
|
+
}
|
|
71
|
+
// Complete without start and no tokens - ignore silently
|
|
72
|
+
return { output: "", shouldClearLines: 0 };
|
|
73
|
+
case ThinkingState.Started:
|
|
74
|
+
// Started but no content chunks received
|
|
75
|
+
if (this.totalTokens !== undefined) {
|
|
76
|
+
// Have tokens - show full completion
|
|
77
|
+
this.state = ThinkingState.Complete;
|
|
78
|
+
return {
|
|
79
|
+
output: this.formatComplete(this.totalTokens),
|
|
80
|
+
shouldClearLines: 0,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
// No content and no tokens - show minimal completion
|
|
84
|
+
this.state = ThinkingState.Complete;
|
|
85
|
+
return {
|
|
86
|
+
output: this.formatCompleteMinimal(),
|
|
87
|
+
shouldClearLines: 0,
|
|
88
|
+
};
|
|
89
|
+
case ThinkingState.HasContent:
|
|
90
|
+
// We have content chunks
|
|
91
|
+
if (this.totalTokens !== undefined) {
|
|
92
|
+
// Have tokens - show full completion
|
|
93
|
+
this.state = ThinkingState.Complete;
|
|
94
|
+
return {
|
|
95
|
+
output: this.formatComplete(this.totalTokens),
|
|
96
|
+
shouldClearLines: 0,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// Have content but no tokens yet - show completion without tokens
|
|
100
|
+
// Keep state as HasContent to allow token update later
|
|
101
|
+
return {
|
|
102
|
+
output: this.formatComplete(undefined),
|
|
103
|
+
shouldClearLines: 0,
|
|
104
|
+
};
|
|
105
|
+
case ThinkingState.Complete:
|
|
106
|
+
// Already complete - this is a token update
|
|
107
|
+
if (this.totalTokens !== undefined) {
|
|
108
|
+
// Update the completion line with token info
|
|
109
|
+
return {
|
|
110
|
+
output: this.formatComplete(this.totalTokens),
|
|
111
|
+
shouldClearLines: 2, // Clear separator and completion lines
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
// Complete again without new info - ignore
|
|
115
|
+
return { output: "", shouldClearLines: 0 };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check if thinking is active (started or has content)
|
|
120
|
+
*/
|
|
121
|
+
isActive() {
|
|
122
|
+
return this.state === ThinkingState.Started || this.state === ThinkingState.HasContent;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Reset state for new thinking session
|
|
126
|
+
*/
|
|
127
|
+
reset() {
|
|
128
|
+
this.state = ThinkingState.Idle;
|
|
129
|
+
this.totalTokens = undefined;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Format the thinking start header
|
|
133
|
+
*/
|
|
134
|
+
formatStart() {
|
|
135
|
+
const { colors, icons, separatorChar, separatorWidth } = this.theme;
|
|
136
|
+
return ("\n" +
|
|
137
|
+
colors.thinking(`${icons.thinking} Agent Reasoning:`) +
|
|
138
|
+
"\n" +
|
|
139
|
+
colors.dim(separatorChar.repeat(separatorWidth)) +
|
|
140
|
+
"\n");
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Format a thinking content chunk
|
|
144
|
+
*/
|
|
145
|
+
formatChunk(content) {
|
|
146
|
+
return this.theme.colors.thinkingContent(content);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Format the completion footer (with optional token count)
|
|
150
|
+
*/
|
|
151
|
+
formatComplete(tokens) {
|
|
152
|
+
const { colors, icons, separatorChar, separatorWidth } = this.theme;
|
|
153
|
+
const tokenInfo = tokens ? colors.dim(` (${tokens} reasoning tokens)`) : "";
|
|
154
|
+
return ("\n" +
|
|
155
|
+
colors.dim(separatorChar.repeat(separatorWidth)) +
|
|
156
|
+
tokenInfo +
|
|
157
|
+
"\n" +
|
|
158
|
+
colors.success(`${icons.success} Reasoning complete`) +
|
|
159
|
+
"\n\n");
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Format minimal completion (no content received)
|
|
163
|
+
*/
|
|
164
|
+
formatCompleteMinimal() {
|
|
165
|
+
const { colors, icons, separatorChar, separatorWidth } = this.theme;
|
|
166
|
+
return ("\n" +
|
|
167
|
+
colors.dim(separatorChar.repeat(separatorWidth)) +
|
|
168
|
+
"\n" +
|
|
169
|
+
colors.success(`${icons.success} Reasoning complete`) +
|
|
170
|
+
"\n\n");
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.ThinkingRenderer = ThinkingRenderer;
|
|
174
|
+
//# sourceMappingURL=thinking-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thinking-renderer.js","sourceRoot":"","sources":["../../../src/core/utils/thinking-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for formatting tool arguments and results
|
|
3
|
+
* Used by both streaming and non-streaming modes
|
|
4
|
+
*/
|
|
5
|
+
type FormatStyle = "plain" | "colored";
|
|
6
|
+
interface FormatOptions {
|
|
7
|
+
style?: FormatStyle;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Format tool arguments for display
|
|
11
|
+
* Shows relevant parameters for each tool type
|
|
12
|
+
* @param style - "plain" for logger (no colors, { } format), "colored" for console output (chalk colors)
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatToolArguments(toolName: string, args?: Record<string, unknown>, options?: FormatOptions): string;
|
|
15
|
+
/**
|
|
16
|
+
* Format tool result for display
|
|
17
|
+
* Shows relevant summary information for each tool type
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatToolResult(toolName: string, result: string): string;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=tool-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-formatter.d.ts","sourceRoot":"","sources":["../../../src/core/utils/tool-formatter.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,KAAK,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvC,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,GAAE,aAAoC,GAC5C,MAAM,CA+NR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA2EzE"}
|