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.
Files changed (151) hide show
  1. package/README.md +8 -6
  2. package/dist/cli/commands/chat-agent.d.ts +3 -1
  3. package/dist/cli/commands/chat-agent.d.ts.map +1 -1
  4. package/dist/cli/commands/chat-agent.js +180 -102
  5. package/dist/cli/commands/chat-agent.js.map +1 -1
  6. package/dist/cli/commands/edit-agent.d.ts +2 -2
  7. package/dist/cli/commands/edit-agent.d.ts.map +1 -1
  8. package/dist/cli/commands/edit-agent.js +20 -10
  9. package/dist/cli/commands/edit-agent.js.map +1 -1
  10. package/dist/cli/commands/task-agent.d.ts +1 -1
  11. package/dist/cli/commands/task-agent.d.ts.map +1 -1
  12. package/dist/cli/commands/task-agent.js +6 -6
  13. package/dist/cli/commands/task-agent.js.map +1 -1
  14. package/dist/constants/agent.d.ts +2 -0
  15. package/dist/constants/agent.d.ts.map +1 -0
  16. package/dist/constants/agent.js +5 -0
  17. package/dist/constants/agent.js.map +1 -0
  18. package/dist/core/agent/agent-prompt.d.ts +0 -1
  19. package/dist/core/agent/agent-prompt.d.ts.map +1 -1
  20. package/dist/core/agent/agent-prompt.js +7 -15
  21. package/dist/core/agent/agent-prompt.js.map +1 -1
  22. package/dist/core/agent/agent-runner.d.ts +15 -0
  23. package/dist/core/agent/agent-runner.d.ts.map +1 -1
  24. package/dist/core/agent/agent-runner.js +570 -270
  25. package/dist/core/agent/agent-runner.js.map +1 -1
  26. package/dist/core/agent/agent-service.d.ts +20 -5
  27. package/dist/core/agent/agent-service.d.ts.map +1 -1
  28. package/dist/core/agent/agent-service.js +54 -6
  29. package/dist/core/agent/agent-service.js.map +1 -1
  30. package/dist/core/agent/gmail-agent.js +7 -7
  31. package/dist/core/agent/gmail-agent.js.map +1 -1
  32. package/dist/core/agent/prompts/coder/v1.d.ts +2 -0
  33. package/dist/core/agent/prompts/coder/v1.d.ts.map +1 -0
  34. package/dist/core/agent/prompts/coder/v1.js +370 -0
  35. package/dist/core/agent/prompts/coder/v1.js.map +1 -0
  36. package/dist/core/agent/prompts/default/v2.d.ts +1 -1
  37. package/dist/core/agent/prompts/default/v2.d.ts.map +1 -1
  38. package/dist/core/agent/prompts/default/v2.js +1 -2
  39. package/dist/core/agent/prompts/default/v2.js.map +1 -1
  40. package/dist/core/agent/prompts/gmail/v1.d.ts +1 -1
  41. package/dist/core/agent/prompts/gmail/v1.d.ts.map +1 -1
  42. package/dist/core/agent/prompts/gmail/v1.js +5 -5
  43. package/dist/core/agent/prompts/gmail/v2.d.ts +1 -1
  44. package/dist/core/agent/prompts/gmail/v2.d.ts.map +1 -1
  45. package/dist/core/agent/prompts/gmail/v2.js +7 -7
  46. package/dist/core/agent/tools/base-tool.d.ts +3 -4
  47. package/dist/core/agent/tools/base-tool.d.ts.map +1 -1
  48. package/dist/core/agent/tools/base-tool.js +11 -51
  49. package/dist/core/agent/tools/base-tool.js.map +1 -1
  50. package/dist/core/agent/tools/context-utils.d.ts +6 -0
  51. package/dist/core/agent/tools/context-utils.d.ts.map +1 -0
  52. package/dist/core/agent/tools/context-utils.js +9 -0
  53. package/dist/core/agent/tools/context-utils.js.map +1 -0
  54. package/dist/core/agent/tools/env-utils.d.ts +7 -0
  55. package/dist/core/agent/tools/env-utils.d.ts.map +1 -0
  56. package/dist/core/agent/tools/env-utils.js +39 -0
  57. package/dist/core/agent/tools/env-utils.js.map +1 -0
  58. package/dist/core/agent/tools/fs-tools.d.ts.map +1 -1
  59. package/dist/core/agent/tools/fs-tools.js +48 -53
  60. package/dist/core/agent/tools/fs-tools.js.map +1 -1
  61. package/dist/core/agent/tools/git-tools.d.ts +5 -0
  62. package/dist/core/agent/tools/git-tools.d.ts.map +1 -1
  63. package/dist/core/agent/tools/git-tools.js +716 -154
  64. package/dist/core/agent/tools/git-tools.js.map +1 -1
  65. package/dist/core/agent/tools/gmail-tools.js +35 -35
  66. package/dist/core/agent/tools/gmail-tools.js.map +1 -1
  67. package/dist/core/agent/tools/http-tools.js +2 -2
  68. package/dist/core/agent/tools/http-tools.js.map +1 -1
  69. package/dist/core/agent/tools/register-tools.d.ts +18 -1
  70. package/dist/core/agent/tools/register-tools.d.ts.map +1 -1
  71. package/dist/core/agent/tools/register-tools.js +52 -6
  72. package/dist/core/agent/tools/register-tools.js.map +1 -1
  73. package/dist/core/agent/tools/shell-tools.d.ts.map +1 -1
  74. package/dist/core/agent/tools/shell-tools.js +10 -20
  75. package/dist/core/agent/tools/shell-tools.js.map +1 -1
  76. package/dist/core/agent/tools/tool-registry.d.ts +11 -7
  77. package/dist/core/agent/tools/tool-registry.d.ts.map +1 -1
  78. package/dist/core/agent/tools/tool-registry.js +45 -19
  79. package/dist/core/agent/tools/tool-registry.js.map +1 -1
  80. package/dist/core/agent/tools/web-search-tools.js +1 -1
  81. package/dist/core/agent/tools/web-search-tools.js.map +1 -1
  82. package/dist/core/agent/tracking/agent-run-tracker.d.ts +2 -0
  83. package/dist/core/agent/tracking/agent-run-tracker.d.ts.map +1 -1
  84. package/dist/core/agent/tracking/agent-run-tracker.js +40 -2
  85. package/dist/core/agent/tracking/agent-run-tracker.js.map +1 -1
  86. package/dist/core/types/index.d.ts +82 -15
  87. package/dist/core/types/index.d.ts.map +1 -1
  88. package/dist/core/types/index.js.map +1 -1
  89. package/dist/core/utils/markdown-renderer.d.ts +25 -0
  90. package/dist/core/utils/markdown-renderer.d.ts.map +1 -1
  91. package/dist/core/utils/markdown-renderer.js +100 -1
  92. package/dist/core/utils/markdown-renderer.js.map +1 -1
  93. package/dist/core/utils/output-renderer.d.ts +81 -0
  94. package/dist/core/utils/output-renderer.d.ts.map +1 -0
  95. package/dist/core/utils/output-renderer.js +291 -0
  96. package/dist/core/utils/output-renderer.js.map +1 -0
  97. package/dist/core/utils/output-theme.d.ts +64 -0
  98. package/dist/core/utils/output-theme.d.ts.map +1 -0
  99. package/dist/core/utils/output-theme.js +154 -0
  100. package/dist/core/utils/output-theme.js.map +1 -0
  101. package/dist/core/utils/output-writer.d.ts +79 -0
  102. package/dist/core/utils/output-writer.d.ts.map +1 -0
  103. package/dist/core/utils/output-writer.js +133 -0
  104. package/dist/core/utils/output-writer.js.map +1 -0
  105. package/dist/core/utils/runtime-detection.d.ts +28 -0
  106. package/dist/core/utils/runtime-detection.d.ts.map +1 -0
  107. package/dist/core/utils/runtime-detection.js +62 -0
  108. package/dist/core/utils/runtime-detection.js.map +1 -0
  109. package/dist/core/utils/string.d.ts +8 -0
  110. package/dist/core/utils/string.d.ts.map +1 -0
  111. package/dist/core/utils/string.js +19 -0
  112. package/dist/core/utils/string.js.map +1 -0
  113. package/dist/core/utils/thinking-renderer.d.ts +56 -0
  114. package/dist/core/utils/thinking-renderer.d.ts.map +1 -0
  115. package/dist/core/utils/thinking-renderer.js +174 -0
  116. package/dist/core/utils/thinking-renderer.js.map +1 -0
  117. package/dist/core/utils/tool-formatter.d.ts +21 -0
  118. package/dist/core/utils/tool-formatter.d.ts.map +1 -0
  119. package/dist/core/utils/tool-formatter.js +343 -0
  120. package/dist/core/utils/tool-formatter.js.map +1 -0
  121. package/dist/main.js +11 -4
  122. package/dist/main.js.map +1 -1
  123. package/dist/services/config.d.ts.map +1 -1
  124. package/dist/services/config.js +20 -20
  125. package/dist/services/config.js.map +1 -1
  126. package/dist/services/llm/ai-sdk-service.d.ts.map +1 -1
  127. package/dist/services/llm/ai-sdk-service.js +128 -37
  128. package/dist/services/llm/ai-sdk-service.js.map +1 -1
  129. package/dist/services/llm/stream-detector.d.ts +44 -0
  130. package/dist/services/llm/stream-detector.d.ts.map +1 -0
  131. package/dist/services/llm/stream-detector.js +81 -0
  132. package/dist/services/llm/stream-detector.js.map +1 -0
  133. package/dist/services/llm/stream-processor.d.ts +93 -0
  134. package/dist/services/llm/stream-processor.d.ts.map +1 -0
  135. package/dist/services/llm/stream-processor.js +330 -0
  136. package/dist/services/llm/stream-processor.js.map +1 -0
  137. package/dist/services/llm/streaming-types.d.ts +131 -0
  138. package/dist/services/llm/streaming-types.d.ts.map +1 -0
  139. package/dist/services/llm/streaming-types.js +12 -0
  140. package/dist/services/llm/streaming-types.js.map +1 -0
  141. package/dist/services/llm/types.d.ts +8 -0
  142. package/dist/services/llm/types.d.ts.map +1 -1
  143. package/dist/services/llm/types.js.map +1 -1
  144. package/dist/services/logger.d.ts +4 -4
  145. package/dist/services/logger.d.ts.map +1 -1
  146. package/dist/services/logger.js +23 -45
  147. package/dist/services/logger.js.map +1 -1
  148. package/dist/services/shell.d.ts.map +1 -1
  149. package/dist/services/shell.js +52 -18
  150. package/dist/services/shell.js.map +1 -1
  151. 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,8 @@
1
+ /**
2
+ * Utility functions for string conversion and manipulation
3
+ */
4
+ /**
5
+ * Safely convert a value to a string, handling null/undefined/objects
6
+ */
7
+ export declare function safeString(value: unknown): string;
8
+ //# sourceMappingURL=string.d.ts.map
@@ -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"}