@crewx/cli 0.8.0-rc.66 → 0.8.0-rc.82

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 (281) hide show
  1. package/bin/crewx +2 -0
  2. package/dist/bootstrap/crewx-cli.d.ts +11 -0
  3. package/dist/bootstrap/crewx-cli.js +31 -0
  4. package/dist/builtin.d.ts +15 -0
  5. package/dist/{cli/builtin.handler.js → builtin.js} +21 -7
  6. package/dist/commands/agent.d.ts +12 -0
  7. package/dist/commands/agent.js +246 -0
  8. package/dist/commands/doctor.d.ts +12 -0
  9. package/dist/commands/doctor.js +190 -0
  10. package/dist/commands/execute.d.ts +21 -0
  11. package/dist/commands/execute.js +117 -0
  12. package/dist/commands/hook/install.d.ts +21 -0
  13. package/dist/commands/hook/install.js +175 -0
  14. package/dist/commands/hook/paths.d.ts +19 -0
  15. package/dist/commands/hook/paths.js +94 -0
  16. package/dist/commands/hook/status.d.ts +7 -0
  17. package/dist/commands/hook/status.js +86 -0
  18. package/dist/commands/hook/uninstall.d.ts +8 -0
  19. package/dist/commands/hook/uninstall.js +71 -0
  20. package/dist/commands/hook-dispatch.d.ts +15 -0
  21. package/dist/commands/hook-dispatch.js +180 -0
  22. package/dist/commands/init.d.ts +24 -0
  23. package/dist/commands/init.js +133 -0
  24. package/dist/commands/kill.d.ts +12 -0
  25. package/dist/commands/kill.js +49 -0
  26. package/dist/commands/log.d.ts +13 -0
  27. package/dist/commands/log.js +97 -0
  28. package/dist/commands/parse-agent-message.d.ts +31 -0
  29. package/dist/commands/parse-agent-message.js +52 -0
  30. package/dist/commands/parse-common-flags.d.ts +36 -0
  31. package/dist/commands/parse-common-flags.js +105 -0
  32. package/dist/commands/ps.d.ts +12 -0
  33. package/dist/commands/ps.js +71 -0
  34. package/dist/commands/query.d.ts +21 -0
  35. package/dist/commands/query.js +117 -0
  36. package/dist/commands/result.d.ts +13 -0
  37. package/dist/commands/result.js +73 -0
  38. package/dist/commands/slack.d.ts +12 -0
  39. package/dist/commands/slack.js +559 -0
  40. package/dist/commands/task-db.d.ts +33 -0
  41. package/dist/commands/task-db.js +107 -0
  42. package/dist/examples/deny-secrets-plugin.d.ts +22 -0
  43. package/dist/examples/deny-secrets-plugin.js +40 -0
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.js +5 -0
  46. package/dist/logging.d.ts +21 -0
  47. package/dist/logging.js +86 -0
  48. package/dist/main.d.ts +10 -0
  49. package/dist/main.js +246 -256
  50. package/dist/plugins/examples/echo-hook.d.ts +24 -0
  51. package/dist/plugins/examples/echo-hook.js +60 -0
  52. package/dist/plugins/examples/verify-echo-hook.d.ts +8 -0
  53. package/dist/plugins/examples/verify-echo-hook.js +47 -0
  54. package/dist/plugins/sqlite-tracing.d.ts +13 -0
  55. package/dist/plugins/sqlite-tracing.js +20 -0
  56. package/dist/register-builtin-tools.d.ts +5 -0
  57. package/dist/register-builtin-tools.js +9 -0
  58. package/dist/slack/file-download.d.ts +17 -0
  59. package/dist/slack/file-download.js +134 -0
  60. package/dist/slack/markdown.d.ts +5 -0
  61. package/dist/slack/markdown.js +33 -0
  62. package/dist/utils/env-defaults.d.ts +5 -0
  63. package/dist/utils/env-defaults.js +10 -0
  64. package/dist/utils/version.d.ts +1 -0
  65. package/dist/utils/version.js +28 -0
  66. package/package.json +32 -115
  67. package/README.md +0 -663
  68. package/dist/ai-provider.service.d.ts +0 -36
  69. package/dist/ai-provider.service.js +0 -315
  70. package/dist/ai-provider.service.js.map +0 -1
  71. package/dist/ai.service.d.ts +0 -17
  72. package/dist/ai.service.js +0 -51
  73. package/dist/ai.service.js.map +0 -1
  74. package/dist/app.module.d.ts +0 -5
  75. package/dist/app.module.js +0 -165
  76. package/dist/app.module.js.map +0 -1
  77. package/dist/cli/agent.handler.d.ts +0 -2
  78. package/dist/cli/agent.handler.js +0 -186
  79. package/dist/cli/agent.handler.js.map +0 -1
  80. package/dist/cli/builtin.handler.d.ts +0 -3
  81. package/dist/cli/builtin.handler.js.map +0 -1
  82. package/dist/cli/chat.handler.d.ts +0 -20
  83. package/dist/cli/chat.handler.js +0 -446
  84. package/dist/cli/chat.handler.js.map +0 -1
  85. package/dist/cli/cli.handler.d.ts +0 -4
  86. package/dist/cli/cli.handler.js +0 -119
  87. package/dist/cli/cli.handler.js.map +0 -1
  88. package/dist/cli/doctor.handler.d.ts +0 -38
  89. package/dist/cli/doctor.handler.js +0 -495
  90. package/dist/cli/doctor.handler.js.map +0 -1
  91. package/dist/cli/execute.handler.d.ts +0 -2
  92. package/dist/cli/execute.handler.js +0 -376
  93. package/dist/cli/execute.handler.js.map +0 -1
  94. package/dist/cli/help.handler.d.ts +0 -2
  95. package/dist/cli/help.handler.js +0 -10
  96. package/dist/cli/help.handler.js.map +0 -1
  97. package/dist/cli/init.handler.d.ts +0 -26
  98. package/dist/cli/init.handler.js +0 -450
  99. package/dist/cli/init.handler.js.map +0 -1
  100. package/dist/cli/log.handler.d.ts +0 -2
  101. package/dist/cli/log.handler.js +0 -69
  102. package/dist/cli/log.handler.js.map +0 -1
  103. package/dist/cli/mcp.handler.d.ts +0 -3
  104. package/dist/cli/mcp.handler.js +0 -121
  105. package/dist/cli/mcp.handler.js.map +0 -1
  106. package/dist/cli/query.handler.d.ts +0 -2
  107. package/dist/cli/query.handler.js +0 -392
  108. package/dist/cli/query.handler.js.map +0 -1
  109. package/dist/cli/skill.handler.d.ts +0 -2
  110. package/dist/cli/skill.handler.js +0 -252
  111. package/dist/cli/skill.handler.js.map +0 -1
  112. package/dist/cli/slack-files.handler.d.ts +0 -2
  113. package/dist/cli/slack-files.handler.js +0 -291
  114. package/dist/cli/slack-files.handler.js.map +0 -1
  115. package/dist/cli/template.handler.d.ts +0 -2
  116. package/dist/cli/template.handler.js +0 -188
  117. package/dist/cli/template.handler.js.map +0 -1
  118. package/dist/cli/templates.handler.d.ts +0 -2
  119. package/dist/cli/templates.handler.js +0 -100
  120. package/dist/cli/templates.handler.js.map +0 -1
  121. package/dist/cli-options.d.ts +0 -40
  122. package/dist/cli-options.js +0 -371
  123. package/dist/cli-options.js.map +0 -1
  124. package/dist/config/timeout.config.d.ts +0 -14
  125. package/dist/config/timeout.config.js +0 -34
  126. package/dist/config/timeout.config.js.map +0 -1
  127. package/dist/conversation/base-conversation-history.provider.d.ts +0 -12
  128. package/dist/conversation/base-conversation-history.provider.js +0 -45
  129. package/dist/conversation/base-conversation-history.provider.js.map +0 -1
  130. package/dist/conversation/cli-box-reader.adapter.d.ts +0 -6
  131. package/dist/conversation/cli-box-reader.adapter.js +0 -10
  132. package/dist/conversation/cli-box-reader.adapter.js.map +0 -1
  133. package/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
  134. package/dist/conversation/cli-conversation-history.provider.js +0 -112
  135. package/dist/conversation/cli-conversation-history.provider.js.map +0 -1
  136. package/dist/conversation/cli-task-reader.adapter.d.ts +0 -6
  137. package/dist/conversation/cli-task-reader.adapter.js +0 -25
  138. package/dist/conversation/cli-task-reader.adapter.js.map +0 -1
  139. package/dist/conversation/conversation-provider.factory.d.ts +0 -10
  140. package/dist/conversation/conversation-provider.factory.js +0 -50
  141. package/dist/conversation/conversation-provider.factory.js.map +0 -1
  142. package/dist/conversation/index.d.ts +0 -8
  143. package/dist/conversation/index.js +0 -29
  144. package/dist/conversation/index.js.map +0 -1
  145. package/dist/conversation/slack-conversation-history.provider.d.ts +0 -29
  146. package/dist/conversation/slack-conversation-history.provider.js +0 -302
  147. package/dist/conversation/slack-conversation-history.provider.js.map +0 -1
  148. package/dist/crewx.tool.d.ts +0 -360
  149. package/dist/crewx.tool.js +0 -2531
  150. package/dist/crewx.tool.js.map +0 -1
  151. package/dist/crewx.tool.spec.d.ts +0 -1
  152. package/dist/crewx.tool.spec.js +0 -222
  153. package/dist/crewx.tool.spec.js.map +0 -1
  154. package/dist/guards/bearer-auth.guard.d.ts +0 -7
  155. package/dist/guards/bearer-auth.guard.js +0 -44
  156. package/dist/guards/bearer-auth.guard.js.map +0 -1
  157. package/dist/health.controller.d.ts +0 -6
  158. package/dist/health.controller.js +0 -32
  159. package/dist/health.controller.js.map +0 -1
  160. package/dist/main.js.map +0 -1
  161. package/dist/mcp.controller.d.ts +0 -8
  162. package/dist/mcp.controller.js +0 -62
  163. package/dist/mcp.controller.js.map +0 -1
  164. package/dist/package.json +0 -3
  165. package/dist/providers/dynamic-provider.factory.d.ts +0 -17
  166. package/dist/providers/dynamic-provider.factory.js +0 -138
  167. package/dist/providers/dynamic-provider.factory.js.map +0 -1
  168. package/dist/providers/logger.adapter.d.ts +0 -7
  169. package/dist/providers/logger.adapter.js +0 -107
  170. package/dist/providers/logger.adapter.js.map +0 -1
  171. package/dist/services/agent-loader.service.d.ts +0 -35
  172. package/dist/services/agent-loader.service.js +0 -623
  173. package/dist/services/agent-loader.service.js.map +0 -1
  174. package/dist/services/auth.service.d.ts +0 -9
  175. package/dist/services/auth.service.js +0 -47
  176. package/dist/services/auth.service.js.map +0 -1
  177. package/dist/services/config-validator.service.d.ts +0 -29
  178. package/dist/services/config-validator.service.js +0 -483
  179. package/dist/services/config-validator.service.js.map +0 -1
  180. package/dist/services/config.service.d.ts +0 -45
  181. package/dist/services/config.service.js +0 -352
  182. package/dist/services/config.service.js.map +0 -1
  183. package/dist/services/document-loader.service.d.ts +0 -26
  184. package/dist/services/document-loader.service.js +0 -186
  185. package/dist/services/document-loader.service.js.map +0 -1
  186. package/dist/services/help.service.d.ts +0 -5
  187. package/dist/services/help.service.js +0 -139
  188. package/dist/services/help.service.js.map +0 -1
  189. package/dist/services/intelligent-compression.service.d.ts +0 -20
  190. package/dist/services/intelligent-compression.service.js +0 -179
  191. package/dist/services/intelligent-compression.service.js.map +0 -1
  192. package/dist/services/mcp-client.service.d.ts +0 -26
  193. package/dist/services/mcp-client.service.js +0 -81
  194. package/dist/services/mcp-client.service.js.map +0 -1
  195. package/dist/services/parallel-processing.service.d.ts +0 -108
  196. package/dist/services/parallel-processing.service.js +0 -333
  197. package/dist/services/parallel-processing.service.js.map +0 -1
  198. package/dist/services/provider-bridge.service.d.ts +0 -35
  199. package/dist/services/provider-bridge.service.js +0 -224
  200. package/dist/services/provider-bridge.service.js.map +0 -1
  201. package/dist/services/remote-agent.service.d.ts +0 -50
  202. package/dist/services/remote-agent.service.js +0 -171
  203. package/dist/services/remote-agent.service.js.map +0 -1
  204. package/dist/services/result-formatter.service.d.ts +0 -27
  205. package/dist/services/result-formatter.service.js +0 -126
  206. package/dist/services/result-formatter.service.js.map +0 -1
  207. package/dist/services/skill-loader.service.d.ts +0 -15
  208. package/dist/services/skill-loader.service.js +0 -278
  209. package/dist/services/skill-loader.service.js.map +0 -1
  210. package/dist/services/skill.service.d.ts +0 -69
  211. package/dist/services/skill.service.js +0 -779
  212. package/dist/services/skill.service.js.map +0 -1
  213. package/dist/services/skill.service.spec.d.ts +0 -1
  214. package/dist/services/skill.service.spec.js +0 -168
  215. package/dist/services/skill.service.spec.js.map +0 -1
  216. package/dist/services/task-management.service.d.ts +0 -71
  217. package/dist/services/task-management.service.js +0 -324
  218. package/dist/services/task-management.service.js.map +0 -1
  219. package/dist/services/template.service.d.ts +0 -61
  220. package/dist/services/template.service.js +0 -416
  221. package/dist/services/template.service.js.map +0 -1
  222. package/dist/services/tool-call.service.d.ts +0 -16
  223. package/dist/services/tool-call.service.js +0 -302
  224. package/dist/services/tool-call.service.js.map +0 -1
  225. package/dist/services/tracing.service.d.ts +0 -197
  226. package/dist/services/tracing.service.js +0 -1267
  227. package/dist/services/tracing.service.js.map +0 -1
  228. package/dist/slack/formatters/message.formatter.d.ts +0 -43
  229. package/dist/slack/formatters/message.formatter.js +0 -505
  230. package/dist/slack/formatters/message.formatter.js.map +0 -1
  231. package/dist/slack/services/slack-file-download.service.d.ts +0 -58
  232. package/dist/slack/services/slack-file-download.service.js +0 -558
  233. package/dist/slack/services/slack-file-download.service.js.map +0 -1
  234. package/dist/slack/slack-bot.d.ts +0 -33
  235. package/dist/slack/slack-bot.js +0 -568
  236. package/dist/slack/slack-bot.js.map +0 -1
  237. package/dist/stderr.logger.d.ts +0 -8
  238. package/dist/stderr.logger.js +0 -26
  239. package/dist/stderr.logger.js.map +0 -1
  240. package/dist/types/usage.types.d.ts +0 -107
  241. package/dist/types/usage.types.js +0 -3
  242. package/dist/types/usage.types.js.map +0 -1
  243. package/dist/utils/config-utils.d.ts +0 -15
  244. package/dist/utils/config-utils.js +0 -69
  245. package/dist/utils/config-utils.js.map +0 -1
  246. package/dist/utils/extract-text.d.ts +0 -1
  247. package/dist/utils/extract-text.js +0 -15
  248. package/dist/utils/extract-text.js.map +0 -1
  249. package/dist/utils/mcp-installer.d.ts +0 -20
  250. package/dist/utils/mcp-installer.js +0 -199
  251. package/dist/utils/mcp-installer.js.map +0 -1
  252. package/dist/utils/project-hash.d.ts +0 -6
  253. package/dist/utils/project-hash.js +0 -70
  254. package/dist/utils/project-hash.js.map +0 -1
  255. package/dist/utils/simple-security.d.ts +0 -3
  256. package/dist/utils/simple-security.js +0 -20
  257. package/dist/utils/simple-security.js.map +0 -1
  258. package/dist/utils/stdin-utils.d.ts +0 -6
  259. package/dist/utils/stdin-utils.js +0 -109
  260. package/dist/utils/stdin-utils.js.map +0 -1
  261. package/dist/utils/template-processor.d.ts +0 -27
  262. package/dist/utils/template-processor.js +0 -395
  263. package/dist/utils/template-processor.js.map +0 -1
  264. package/dist/utils/terminal-message-formatter.d.ts +0 -23
  265. package/dist/utils/terminal-message-formatter.js +0 -136
  266. package/dist/utils/terminal-message-formatter.js.map +0 -1
  267. package/dist/version.d.ts +0 -1
  268. package/dist/version.js +0 -17
  269. package/dist/version.js.map +0 -1
  270. package/dist/workspace.service.d.ts +0 -44
  271. package/dist/workspace.service.js +0 -299
  272. package/dist/workspace.service.js.map +0 -1
  273. package/scripts/backfill-tokens.js +0 -218
  274. package/scripts/postbuild-cli.mjs +0 -88
  275. package/scripts/postinstall-cli.mjs +0 -30
  276. package/templates/agents/default.yaml +0 -490
  277. package/templates/agents/minimal.yaml +0 -16
  278. package/templates/documents/conversation-history-default.hbs +0 -17
  279. package/templates/documents/crewx-manual.md +0 -2278
  280. package/templates/documents/crewx-quick-guide.md +0 -147
  281. package/templates/versions.json +0 -19
@@ -1,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseStructuredPayload = void 0;
4
- exports.readStdin = readStdin;
5
- exports.formatPipedContext = formatPipedContext;
6
- exports.buildContextFromStructuredPayload = buildContextFromStructuredPayload;
7
- const sdk_1 = require("@crewx/sdk");
8
- Object.defineProperty(exports, "parseStructuredPayload", { enumerable: true, get: function () { return sdk_1.parseStructuredPayload; } });
9
- async function readStdin() {
10
- const timeoutConfig = (0, sdk_1.getTimeoutConfig)();
11
- if (process.stdin.isTTY) {
12
- return null;
13
- }
14
- return new Promise((resolve, reject) => {
15
- let data = '';
16
- let chunks = 0;
17
- let dataTimeout = null;
18
- process.stdin.setEncoding('utf8');
19
- const debug = process.env.DEBUG_STDIN === '1';
20
- if (debug) {
21
- console.error('[STDIN] Waiting for piped input...');
22
- }
23
- const dataHandler = (chunk) => {
24
- chunks++;
25
- data += chunk;
26
- if (debug) {
27
- console.error(`[STDIN] Received chunk ${chunks}: "${chunk.substring(0, 50)}..."`);
28
- }
29
- if (dataTimeout) {
30
- clearTimeout(dataTimeout);
31
- }
32
- const looksComplete = /✅.*completed successfully\s*$/.test(data);
33
- const timeout = looksComplete ? timeoutConfig.stdinComplete : timeoutConfig.stdinChunk;
34
- dataTimeout = setTimeout(() => {
35
- cleanup();
36
- resolve(data.trim() || null);
37
- }, timeout);
38
- };
39
- const endHandler = () => {
40
- cleanup();
41
- resolve(data.trim() || null);
42
- };
43
- const errorHandler = (error) => {
44
- cleanup();
45
- reject(error);
46
- };
47
- const cleanup = () => {
48
- if (dataTimeout) {
49
- clearTimeout(dataTimeout);
50
- dataTimeout = null;
51
- }
52
- process.stdin.removeListener('data', dataHandler);
53
- process.stdin.removeListener('end', endHandler);
54
- process.stdin.removeListener('error', errorHandler);
55
- };
56
- process.stdin.on('data', dataHandler);
57
- process.stdin.on('end', endHandler);
58
- process.stdin.on('error', errorHandler);
59
- const initialTimeout = setTimeout(() => {
60
- if (chunks === 0) {
61
- if (debug) {
62
- console.error('[STDIN] Timeout - no data received');
63
- }
64
- cleanup();
65
- resolve(null);
66
- }
67
- }, timeoutConfig.stdinInitial);
68
- process.stdin.once('data', () => clearTimeout(initialTimeout));
69
- process.stdin.once('end', () => clearTimeout(initialTimeout));
70
- });
71
- }
72
- function extractAIResponse(content) {
73
- const debug = process.env.DEBUG_STDIN === '1';
74
- const responseMatch = content.match(/📄 Response:\s*\n[-─]+\s*\n([\s\S]*?)(?:\n\n📁|$)/);
75
- if (debug) {
76
- console.error(`[STDIN] Extract: input length=${content.length}, hasMatch=${!!responseMatch}`);
77
- if (responseMatch && responseMatch[1]) {
78
- console.error(`[STDIN] Extracted: "${responseMatch[1].substring(0, 100)}..."`);
79
- }
80
- }
81
- if (responseMatch && responseMatch[1]) {
82
- return responseMatch[1].trim();
83
- }
84
- return content.trim();
85
- }
86
- function formatPipedContext(pipedContent) {
87
- const cleanContent = extractAIResponse(pipedContent);
88
- return `Previous step result:\n${cleanContent}\n\nPlease use this information as context for the current task.`;
89
- }
90
- function buildContextFromStructuredPayload(payload) {
91
- if (!payload) {
92
- return undefined;
93
- }
94
- const hasMessages = Array.isArray(payload.messages) && payload.messages.length > 0;
95
- if (hasMessages) {
96
- const candidateWithMessages = payload.context && payload.context.trim();
97
- return candidateWithMessages || undefined;
98
- }
99
- const candidate = payload.context && payload.context.trim();
100
- if (candidate) {
101
- return candidate;
102
- }
103
- const formatted = payload.metadata?.formattedHistory && payload.metadata.formattedHistory.trim();
104
- if (formatted) {
105
- return formatted;
106
- }
107
- return undefined;
108
- }
109
- //# sourceMappingURL=stdin-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stdin-utils.js","sourceRoot":"","sources":["../../src/utils/stdin-utils.ts"],"names":[],"mappings":";;;AAiBA,8BA0FC;AAiCD,gDAKC;AAMD,8EAuBC;AA1KD,oCAIoB;AAEkB,uGAJV,4BAAyB,OAIO;AAOrD,KAAK,UAAU,SAAS;IAC7B,MAAM,aAAa,GAAG,IAAA,sBAAgB,GAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,WAAW,GAA0B,IAAI,CAAC;QAG9C,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAGlC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACtD,CAAC;QAGD,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE;YACpC,MAAM,EAAE,CAAC;YACT,IAAI,IAAI,KAAK,CAAC;YACd,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YACpF,CAAC;YAGD,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;YAID,MAAM,aAAa,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAIjE,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC;YACvF,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;YAC/B,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC,CAAC;QAGF,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC;QAGF,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE;YACpC,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC;QAGF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,CAAC,WAAW,CAAC,CAAC;gBAC1B,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAIxC,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACrC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAG/B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC;AAOD,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC;IAG9C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEzF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9F,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,uBAAuB,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAGD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAOD,SAAgB,kBAAkB,CAAC,YAAoB;IAErD,MAAM,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAErD,OAAO,0BAA0B,YAAY,kEAAkE,CAAC;AAClH,CAAC;AAMD,SAAgB,iCAAiC,CAAC,OAAiC;IACjF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,qBAAqB,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxE,OAAO,qBAAqB,IAAI,SAAS,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACjG,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,27 +0,0 @@
1
- import { DocumentLoaderService } from '../services/document-loader.service';
2
- import type { TemplateContext } from '@crewx/sdk';
3
- export interface ExecHelperConfig {
4
- timeout?: number;
5
- allow?: string[];
6
- deny?: string[];
7
- }
8
- export interface TemplateConfig {
9
- exec?: ExecHelperConfig;
10
- helpers?: Record<string, string>;
11
- }
12
- export declare function getSanitizedEnv(): Record<string, string>;
13
- export declare function validateCommand(command: string): void;
14
- export declare function isBuiltinAllowed(command: string): boolean;
15
- export declare function validateAllowPattern(pattern: string): void;
16
- export declare function logExecAudit(entry: {
17
- command: string;
18
- status: 'allowed' | 'denied' | 'error';
19
- allowed_by?: string;
20
- reason?: string;
21
- duration_ms?: number;
22
- }): void;
23
- export declare function isAllowed(command: string, config: ExecHelperConfig): boolean;
24
- export declare function executeCommand(command: string, config: ExecHelperConfig): string;
25
- export declare function registerCustomHelpers(helpers: Record<string, string>): void;
26
- export declare function processDocumentTemplate(template: string, documentLoader: DocumentLoaderService, additionalContext?: TemplateContext): Promise<string>;
27
- export declare function hasDocumentReferences(template: string): boolean;
@@ -1,395 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.getSanitizedEnv = getSanitizedEnv;
37
- exports.validateCommand = validateCommand;
38
- exports.isBuiltinAllowed = isBuiltinAllowed;
39
- exports.validateAllowPattern = validateAllowPattern;
40
- exports.logExecAudit = logExecAudit;
41
- exports.isAllowed = isAllowed;
42
- exports.executeCommand = executeCommand;
43
- exports.registerCustomHelpers = registerCustomHelpers;
44
- exports.processDocumentTemplate = processDocumentTemplate;
45
- exports.hasDocumentReferences = hasDocumentReferences;
46
- const Handlebars = __importStar(require("handlebars"));
47
- const child_process_1 = require("child_process");
48
- const shellQuote = require('shell-quote');
49
- const _minimatchMod = require('minimatch');
50
- const minimatchFn = typeof _minimatchMod === 'function' ? _minimatchMod : _minimatchMod.minimatch;
51
- const SENSITIVE_ENV_PATTERNS = [
52
- /^ANTHROPIC_/i, /^OPENAI_/i, /^AWS_SECRET/i, /^SLACK_/i,
53
- /^GITHUB_TOKEN$/i, /^CREWX_MCP_KEY$/i, /^DATABASE_/i,
54
- /^AWS_ACCESS_KEY/i, /^AWS_SESSION_TOKEN$/i,
55
- /^GH_TOKEN$/i, /^GH_APP_/i,
56
- /^NPM_TOKEN$/i, /^NPM_AUTH/i,
57
- /^GOOGLE_APPLICATION/i, /^GCLOUD_/i,
58
- /^AZURE_/i, /^ARM_/i,
59
- /^DOCKER_PASSWORD$/i, /^DOCKER_AUTH/i,
60
- /^SSH_PRIVATE/i, /^SSH_AUTH_SOCK$/i,
61
- /^CI_JOB_TOKEN$/i, /^ACTIONS_RUNTIME_TOKEN$/i,
62
- /^VAULT_TOKEN$/i, /^SONAR_TOKEN$/i, /^CODECOV_TOKEN$/i,
63
- /TOKEN$/i, /SECRET$/i, /PASSWORD$/i, /API_KEY$/i,
64
- ];
65
- const SHELL_METACHAR = /[;|&`$(){}!><\n\r]/;
66
- const MAX_EXEC_DEPTH = 2;
67
- const DANGEROUS_PATTERNS = ['*', '**', '*:*', '* *', '**/*'];
68
- function getSanitizedEnv() {
69
- const env = { ...process.env };
70
- for (const key of Object.keys(env)) {
71
- if (SENSITIVE_ENV_PATTERNS.some(p => p.test(key)))
72
- delete env[key];
73
- }
74
- return env;
75
- }
76
- function validateCommand(command) {
77
- if (SHELL_METACHAR.test(command)) {
78
- throw new Error(`exec blocked: shell metacharacter detected in "${command}"`);
79
- }
80
- }
81
- function isBuiltinAllowed(command) {
82
- return /^npx\s+@crewx\/[\w-]+/.test(command);
83
- }
84
- function validateAllowPattern(pattern) {
85
- if (DANGEROUS_PATTERNS.includes(pattern.trim())) {
86
- throw new Error(`exec config error: overly broad pattern "${pattern}" is not allowed`);
87
- }
88
- if (!/^[\w./@-]/.test(pattern)) {
89
- throw new Error(`exec config error: pattern must start with a command name`);
90
- }
91
- }
92
- function logExecAudit(entry) {
93
- console.error(JSON.stringify({ span: 'template_exec', ...entry, timestamp: new Date().toISOString() }));
94
- }
95
- function isAllowed(command, config) {
96
- const { allow = [], deny = [] } = config;
97
- for (const p of [...allow, ...deny]) {
98
- validateAllowPattern(p);
99
- }
100
- if (deny.some(pattern => minimatchFn(command, pattern)))
101
- return false;
102
- if (isBuiltinAllowed(command))
103
- return true;
104
- return allow.some(pattern => minimatchFn(command, pattern));
105
- }
106
- function executeCommand(command, config) {
107
- const startMs = Date.now();
108
- const execDepth = parseInt(process.env.CREWX_EXEC_DEPTH || '0', 10);
109
- if (isNaN(execDepth) || execDepth >= MAX_EXEC_DEPTH) {
110
- logExecAudit({ command, status: 'denied', reason: 'invalid or max recursion depth' });
111
- return '(exec blocked: max recursion depth reached)';
112
- }
113
- try {
114
- validateCommand(command);
115
- }
116
- catch {
117
- logExecAudit({ command, status: 'denied', reason: 'shell metacharacter detected' });
118
- return `(exec blocked: shell metacharacter detected in "${command}")`;
119
- }
120
- if (!isAllowed(command, config)) {
121
- logExecAudit({ command, status: 'denied', reason: 'not in allow list' });
122
- return `(exec blocked: ${command})`;
123
- }
124
- try {
125
- const parsed = shellQuote.parse(command).map(String);
126
- const [bin, ...args] = parsed;
127
- if (!bin)
128
- return `(exec failed: ${command})`;
129
- const sanitizedEnv = getSanitizedEnv();
130
- const result = (0, child_process_1.execFileSync)(bin, args, {
131
- timeout: config.timeout || 5000,
132
- maxBuffer: 64 * 1024,
133
- encoding: 'utf-8',
134
- env: { ...sanitizedEnv, CREWX_EXEC_DEPTH: String(execDepth + 1) },
135
- stdio: ['pipe', 'pipe', 'pipe'],
136
- });
137
- const durationMs = Date.now() - startMs;
138
- logExecAudit({ command, status: 'allowed', allowed_by: 'policy', duration_ms: durationMs });
139
- return `<exec-output cmd="${command}">\n${result.trim()}\n</exec-output>`;
140
- }
141
- catch {
142
- logExecAudit({ command, status: 'error', reason: 'execution failed' });
143
- return `(exec failed: ${command})`;
144
- }
145
- }
146
- function registerCustomHelpers(helpers) {
147
- for (const [name] of Object.entries(helpers)) {
148
- console.warn(`Custom helper '${name}' rejected: user-defined JavaScript execution is disabled for security`);
149
- }
150
- }
151
- async function processDocumentTemplate(template, documentLoader, additionalContext) {
152
- if (!documentLoader.isInitialized()) {
153
- if (!additionalContext) {
154
- return template;
155
- }
156
- }
157
- const additionalContextAny = additionalContext;
158
- const context = {
159
- documents: additionalContextAny?.documents || {},
160
- env: additionalContext?.env || process.env,
161
- agent: additionalContext?.agent || {},
162
- agentMetadata: additionalContext?.agentMetadata || {},
163
- mode: additionalContext?.mode,
164
- messages: additionalContext?.messages || [],
165
- platform: additionalContext?.platform,
166
- tools: additionalContext?.tools,
167
- vars: additionalContext?.vars || {},
168
- };
169
- registerHandlebarsHelpers();
170
- const templateConfig = additionalContextAny?.templateConfig;
171
- registerExecHelper(templateConfig?.exec || {});
172
- if (templateConfig?.helpers) {
173
- registerCustomHelpers(templateConfig.helpers);
174
- }
175
- const pattern = /(\{\{\{|\{\{)documents\.([^.}]+)\.([^}]+)}}}?/g;
176
- const matches = [...template.matchAll(pattern)];
177
- const hasPreloadedDocuments = additionalContextAny?.documents && Object.keys(additionalContextAny.documents).length > 0;
178
- if (!hasPreloadedDocuments && matches.length > 0 && documentLoader.isInitialized()) {
179
- const docProps = new Map();
180
- for (const match of matches) {
181
- const [, , docName, prop] = match;
182
- if (!docName || !prop) {
183
- continue;
184
- }
185
- const propMap = docProps.get(docName) ?? new Map();
186
- const expressions = propMap.get(prop) ?? [];
187
- expressions.push(match[0]);
188
- propMap.set(prop, expressions);
189
- docProps.set(docName, propMap);
190
- }
191
- for (const [docName, propMap] of docProps.entries()) {
192
- const shouldRender = typeof documentLoader.shouldRenderDocument === 'function'
193
- ? documentLoader.shouldRenderDocument(docName)
194
- : false;
195
- let content = await documentLoader.getDocumentContent(docName);
196
- let toc = await documentLoader.getDocumentToc(docName);
197
- let summary = await documentLoader.getDocumentSummary(docName);
198
- if (shouldRender && content) {
199
- try {
200
- const docTemplate = Handlebars.compile(content, { noEscape: true });
201
- content = docTemplate(context);
202
- }
203
- catch {
204
- }
205
- }
206
- const valueFor = (prop, value) => {
207
- if (value) {
208
- return value;
209
- }
210
- if (shouldRender) {
211
- return '';
212
- }
213
- const expressions = propMap.get(prop);
214
- if (expressions && expressions.length > 0) {
215
- return expressions[0];
216
- }
217
- return "";
218
- };
219
- const path = typeof documentLoader.getDocumentPath === 'function'
220
- ? documentLoader.getDocumentPath(docName)
221
- : undefined;
222
- context.documents[docName] = {
223
- content: propMap.has('content') ? valueFor('content', content) : '',
224
- toc: propMap.has('toc') ? valueFor('toc', toc) : '',
225
- summary: propMap.has('summary') ? valueFor('summary', summary) : '',
226
- ...(path ? { path } : {}),
227
- };
228
- }
229
- }
230
- const compiledTemplate = Handlebars.compile(template, { noEscape: true });
231
- return compiledTemplate(context);
232
- }
233
- function registerHandlebarsHelpers() {
234
- if (Handlebars.helpers['eq']) {
235
- return;
236
- }
237
- Handlebars.registerHelper('eq', function (a, b) {
238
- return a === b;
239
- });
240
- Handlebars.registerHelper('ne', function (a, b) {
241
- return a !== b;
242
- });
243
- Handlebars.registerHelper('contains', function (array, value) {
244
- return Array.isArray(array) && array.includes(value);
245
- });
246
- Handlebars.registerHelper('and', function (a, b) {
247
- return a && b;
248
- });
249
- Handlebars.registerHelper('or', function (a, b) {
250
- return a || b;
251
- });
252
- Handlebars.registerHelper('not', function (a) {
253
- return !a;
254
- });
255
- Handlebars.registerHelper('json', function (context) {
256
- return JSON.stringify(context, null, 2);
257
- });
258
- Handlebars.registerHelper('truncate', function (text, maxLength) {
259
- if (!text)
260
- return '';
261
- if (text.length <= maxLength)
262
- return text;
263
- const remaining = text.length - maxLength;
264
- return `${text.substring(0, maxLength)} (...+${remaining} chars)`;
265
- });
266
- Handlebars.registerHelper('length', function (array) {
267
- if (Array.isArray(array))
268
- return array.length;
269
- if (typeof array === 'string')
270
- return array.length;
271
- return 0;
272
- });
273
- Handlebars.registerHelper('escapeHandlebars', function (text) {
274
- if (typeof text !== 'string') {
275
- return '';
276
- }
277
- return text.replace(/\{\{/g, '&#123;&#123;').replace(/\}\}/g, '&#125;&#125;');
278
- });
279
- Handlebars.registerHelper('formatFileSize', function (bytes) {
280
- if (bytes === 0)
281
- return '0 B';
282
- const sizes = ['B', 'KB', 'MB', 'GB'];
283
- const i = Math.floor(Math.log(bytes) / Math.log(1024));
284
- return Math.round((bytes / Math.pow(1024, i)) * 100) / 100 + ' ' + sizes[i];
285
- });
286
- Handlebars.registerHelper('formatTimestamp', function (timestamp) {
287
- if (!timestamp)
288
- return '';
289
- try {
290
- const date = timestamp instanceof Date ? timestamp : new Date(timestamp);
291
- if (isNaN(date.getTime()))
292
- return '';
293
- return date.toLocaleString('ko-KR', {
294
- year: 'numeric', month: '2-digit', day: '2-digit',
295
- hour: '2-digit', minute: '2-digit', second: '2-digit',
296
- hour12: false
297
- });
298
- }
299
- catch (e) {
300
- return '';
301
- }
302
- });
303
- Handlebars.registerHelper('formatConversation', function (messages, platform, options) {
304
- const { Logger: NestLogger } = require('@nestjs/common');
305
- const helperLogger = new NestLogger('FormatConversation');
306
- const isBlockHelper = options && typeof options.fn === 'function';
307
- helperLogger.log(`🔧 formatConversation helper called! Mode: ${isBlockHelper ? 'CUSTOM' : 'DEFAULT'}`);
308
- helperLogger.log(`Messages type: ${typeof messages}, Is array: ${Array.isArray(messages)}, Length: ${messages?.length || 0}`);
309
- helperLogger.log(`Platform: ${platform}`);
310
- const assistantAgentIds = Array.isArray(messages)
311
- ? Array.from(new Set(messages
312
- .filter((msg) => msg?.isAssistant && msg?.metadata?.agent_id)
313
- .map((msg) => msg.metadata.agent_id)))
314
- : [];
315
- const primaryAgentId = assistantAgentIds.length > 0 ? assistantAgentIds[0] : '';
316
- if (!messages || messages.length === 0) {
317
- helperLogger.warn(`⚠️ formatConversation: messages empty or undefined, returning empty string`);
318
- return '';
319
- }
320
- let content;
321
- if (isBlockHelper) {
322
- helperLogger.log(`📝 Using CUSTOM user template from block`);
323
- content = options.fn({
324
- messages,
325
- platform,
326
- messagesCount: messages.length,
327
- agentIds: assistantAgentIds,
328
- primaryAgentId,
329
- });
330
- helperLogger.debug(`📤 Custom template rendered output length: ${content.length} characters`);
331
- }
332
- else {
333
- helperLogger.log(`📦 Using DEFAULT template from .crewx/templates`);
334
- const fs = require('fs');
335
- const path = require('path');
336
- const templatePath = path.join(process.cwd(), '.crewx', 'templates', 'conversation-history-default.hbs');
337
- let templateContent;
338
- let templateSource = 'inline-fallback';
339
- try {
340
- templateContent = fs.readFileSync(templatePath, 'utf8');
341
- templateSource = templatePath;
342
- helperLogger.debug(`✅ Loaded conversation template from: ${templatePath}`);
343
- helperLogger.debug(`📏 Template content length: ${templateContent.length} characters`);
344
- helperLogger.debug(`📊 Messages count: ${messages.length}, Platform: ${platform}`);
345
- helperLogger.debug(`📝 First message sample: ${JSON.stringify(messages[0], null, 2)}`);
346
- }
347
- catch (error) {
348
- helperLogger.warn(`⚠️ Failed to load template from ${templatePath}, using inline fallback`);
349
- helperLogger.warn(`Error: ${error instanceof Error ? error.message : String(error)}`);
350
- templateContent = `{{#if messages}}
351
- {{#if primaryAgentId}}Primary agent: @{{primaryAgentId}}
352
- {{else}}Primary agent: (unknown)
353
- {{/if}}
354
- Previous conversation ({{messagesCount}} messages):
355
- {{#each messages}}
356
- {{#if isAssistant}}
357
- **Assistant{{#if metadata.agent_id}} (@{{metadata.agent_id}}){{/if}}**
358
- {{else}}
359
- **{{#if metadata.slack}}{{#with metadata.slack}}{{#if user_profile.display_name}}{{user_profile.display_name}}{{else if username}}{{username}}{{else if user_id}}User ({{user_id}}){{else}}User{{/if}}{{/with}}{{else}}User{{/if}}**
360
- {{/if}}{{#if timestamp}} _{{formatTimestamp timestamp}}_{{/if}}: {{{escapeHandlebars text}}}
361
- {{#if files}}
362
- {{#each files}}
363
- 📎 {{name}} ({{formatFileSize size}}) - Local: {{localPath}}
364
- {{/each}}
365
- {{/if}}
366
- {{/each}}{{/if}}`;
367
- }
368
- const template = Handlebars.compile(templateContent, { noEscape: true });
369
- content = template({
370
- messages,
371
- platform,
372
- messagesCount: messages.length,
373
- agentIds: assistantAgentIds,
374
- primaryAgentId,
375
- });
376
- helperLogger.debug(`📤 Default template rendered output length: ${content.length} characters`);
377
- helperLogger.debug(`📍 Template source: ${templateSource}`);
378
- }
379
- const result = `${content}`;
380
- helperLogger.debug(`📄 Final output (with tags):\n${result}`);
381
- return result;
382
- });
383
- }
384
- function registerExecHelper(config) {
385
- Handlebars.registerHelper('exec', function (command) {
386
- if (typeof command !== 'string')
387
- return '';
388
- const result = executeCommand(command, config);
389
- return new Handlebars.SafeString(result);
390
- });
391
- }
392
- function hasDocumentReferences(template) {
393
- return /{{{documents\.[^}]+}}}/g.test(template);
394
- }
395
- //# sourceMappingURL=template-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-processor.js","sourceRoot":"","sources":["../../src/utils/template-processor.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { BaseMessageFormatter, StructuredMessage, FormatterOptions } from '@crewx/sdk';
2
- export interface TerminalFormatterConfig {
3
- locale?: string;
4
- indent?: number;
5
- colorize?: boolean;
6
- showAbsoluteTime?: boolean;
7
- showRelativeTime?: boolean;
8
- nowProvider?: () => number;
9
- }
10
- export declare class TerminalMessageFormatter extends BaseMessageFormatter {
11
- private readonly config;
12
- private readonly nowProvider;
13
- constructor(config?: TerminalFormatterConfig);
14
- formatMessage(msg: StructuredMessage, options?: FormatterOptions): string;
15
- private mergeOptions;
16
- private buildRoleLabel;
17
- private indentText;
18
- private parseTimestamp;
19
- private formatAbsoluteTime;
20
- private formatRelativeTime;
21
- private detectLocale;
22
- private applyColor;
23
- }