pulseed 0.4.8 → 0.4.10

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 (217) hide show
  1. package/README.md +15 -3
  2. package/dist/adapters/agents/claude-code-cli.d.ts +8 -1
  3. package/dist/adapters/agents/claude-code-cli.d.ts.map +1 -1
  4. package/dist/adapters/agents/claude-code-cli.js +25 -5
  5. package/dist/adapters/agents/claude-code-cli.js.map +1 -1
  6. package/dist/adapters/agents/openai-codex.d.ts +4 -0
  7. package/dist/adapters/agents/openai-codex.d.ts.map +1 -1
  8. package/dist/adapters/agents/openai-codex.js +16 -2
  9. package/dist/adapters/agents/openai-codex.js.map +1 -1
  10. package/dist/base/config/tool-metadata.js +1 -1
  11. package/dist/base/config/tool-metadata.js.map +1 -1
  12. package/dist/base/llm/provider-config.d.ts +11 -0
  13. package/dist/base/llm/provider-config.d.ts.map +1 -1
  14. package/dist/base/llm/provider-config.js +18 -5
  15. package/dist/base/llm/provider-config.js.map +1 -1
  16. package/dist/base/llm/provider-factory.d.ts.map +1 -1
  17. package/dist/base/llm/provider-factory.js +9 -3
  18. package/dist/base/llm/provider-factory.js.map +1 -1
  19. package/dist/base/state/state-manager.d.ts +7 -0
  20. package/dist/base/state/state-manager.d.ts.map +1 -1
  21. package/dist/base/state/state-manager.js +127 -17
  22. package/dist/base/state/state-manager.js.map +1 -1
  23. package/dist/base/utils/paths.d.ts +1 -0
  24. package/dist/base/utils/paths.d.ts.map +1 -1
  25. package/dist/base/utils/paths.js +3 -0
  26. package/dist/base/utils/paths.js.map +1 -1
  27. package/dist/index.d.ts +12 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +6 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/interface/chat/chat-history.d.ts +152 -46
  32. package/dist/interface/chat/chat-history.d.ts.map +1 -1
  33. package/dist/interface/chat/chat-history.js +55 -9
  34. package/dist/interface/chat/chat-history.js.map +1 -1
  35. package/dist/interface/chat/chat-runner.d.ts +9 -1
  36. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  37. package/dist/interface/chat/chat-runner.js +152 -9
  38. package/dist/interface/chat/chat-runner.js.map +1 -1
  39. package/dist/interface/chat/chat-session-store.d.ts +71 -0
  40. package/dist/interface/chat/chat-session-store.d.ts.map +1 -0
  41. package/dist/interface/chat/chat-session-store.js +378 -0
  42. package/dist/interface/chat/chat-session-store.js.map +1 -0
  43. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  44. package/dist/interface/chat/cross-platform-session.js +40 -1
  45. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  46. package/dist/interface/cli/cli-command-registry.js +5 -5
  47. package/dist/interface/cli/cli-command-registry.js.map +1 -1
  48. package/dist/interface/cli/cli-runner.d.ts.map +1 -1
  49. package/dist/interface/cli/cli-runner.js +4 -0
  50. package/dist/interface/cli/cli-runner.js.map +1 -1
  51. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  52. package/dist/interface/cli/commands/daemon.js +44 -15
  53. package/dist/interface/cli/commands/daemon.js.map +1 -1
  54. package/dist/interface/cli/commands/schedule/cost.d.ts +3 -0
  55. package/dist/interface/cli/commands/schedule/cost.d.ts.map +1 -0
  56. package/dist/interface/cli/commands/schedule/cost.js +84 -0
  57. package/dist/interface/cli/commands/schedule/cost.js.map +1 -0
  58. package/dist/interface/cli/commands/schedule/edit.d.ts +4 -0
  59. package/dist/interface/cli/commands/schedule/edit.d.ts.map +1 -0
  60. package/dist/interface/cli/commands/schedule/edit.js +92 -0
  61. package/dist/interface/cli/commands/schedule/edit.js.map +1 -0
  62. package/dist/interface/cli/commands/schedule/history.d.ts +3 -0
  63. package/dist/interface/cli/commands/schedule/history.d.ts.map +1 -0
  64. package/dist/interface/cli/commands/schedule/history.js +39 -0
  65. package/dist/interface/cli/commands/schedule/history.js.map +1 -0
  66. package/dist/interface/cli/commands/schedule/run-now.d.ts +5 -0
  67. package/dist/interface/cli/commands/schedule/run-now.d.ts.map +1 -0
  68. package/dist/interface/cli/commands/schedule/run-now.js +94 -0
  69. package/dist/interface/cli/commands/schedule/run-now.js.map +1 -0
  70. package/dist/interface/cli/commands/schedule/shared.d.ts +12 -0
  71. package/dist/interface/cli/commands/schedule/shared.d.ts.map +1 -0
  72. package/dist/interface/cli/commands/schedule/shared.js +63 -0
  73. package/dist/interface/cli/commands/schedule/shared.js.map +1 -0
  74. package/dist/interface/cli/commands/schedule.d.ts +2 -1
  75. package/dist/interface/cli/commands/schedule.d.ts.map +1 -1
  76. package/dist/interface/cli/commands/schedule.js +57 -12
  77. package/dist/interface/cli/commands/schedule.js.map +1 -1
  78. package/dist/interface/cli/commands/skills.d.ts +3 -0
  79. package/dist/interface/cli/commands/skills.d.ts.map +1 -0
  80. package/dist/interface/cli/commands/skills.js +90 -0
  81. package/dist/interface/cli/commands/skills.js.map +1 -0
  82. package/dist/interface/cli/data-source-bootstrap.d.ts +11 -0
  83. package/dist/interface/cli/data-source-bootstrap.d.ts.map +1 -0
  84. package/dist/interface/cli/data-source-bootstrap.js +68 -0
  85. package/dist/interface/cli/data-source-bootstrap.js.map +1 -0
  86. package/dist/interface/cli/setup.d.ts +9 -3
  87. package/dist/interface/cli/setup.d.ts.map +1 -1
  88. package/dist/interface/cli/setup.js +31 -62
  89. package/dist/interface/cli/setup.js.map +1 -1
  90. package/dist/interface/cli/utils.d.ts.map +1 -1
  91. package/dist/interface/cli/utils.js +5 -0
  92. package/dist/interface/cli/utils.js.map +1 -1
  93. package/dist/interface/tui/entry.d.ts.map +1 -1
  94. package/dist/interface/tui/entry.js +41 -6
  95. package/dist/interface/tui/entry.js.map +1 -1
  96. package/dist/platform/observation/data-source-adapter.d.ts +1 -0
  97. package/dist/platform/observation/data-source-adapter.d.ts.map +1 -1
  98. package/dist/platform/observation/data-source-adapter.js +3 -0
  99. package/dist/platform/observation/data-source-adapter.js.map +1 -1
  100. package/dist/reflection/types.d.ts +2 -2
  101. package/dist/runtime/command-dispatcher.d.ts +1 -0
  102. package/dist/runtime/command-dispatcher.d.ts.map +1 -1
  103. package/dist/runtime/command-dispatcher.js +9 -0
  104. package/dist/runtime/command-dispatcher.js.map +1 -1
  105. package/dist/runtime/daemon/client.d.ts +7 -0
  106. package/dist/runtime/daemon/client.d.ts.map +1 -1
  107. package/dist/runtime/daemon/client.js +3 -0
  108. package/dist/runtime/daemon/client.js.map +1 -1
  109. package/dist/runtime/daemon/runner.d.ts +1 -0
  110. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  111. package/dist/runtime/daemon/runner.js +26 -0
  112. package/dist/runtime/daemon/runner.js.map +1 -1
  113. package/dist/runtime/event/server.d.ts +6 -0
  114. package/dist/runtime/event/server.d.ts.map +1 -1
  115. package/dist/runtime/event/server.js +60 -0
  116. package/dist/runtime/event/server.js.map +1 -1
  117. package/dist/runtime/gateway/channel-policy.d.ts +40 -0
  118. package/dist/runtime/gateway/channel-policy.d.ts.map +1 -0
  119. package/dist/runtime/gateway/channel-policy.js +55 -0
  120. package/dist/runtime/gateway/channel-policy.js.map +1 -0
  121. package/dist/runtime/gateway/ingress-gateway.d.ts +13 -1
  122. package/dist/runtime/gateway/ingress-gateway.d.ts.map +1 -1
  123. package/dist/runtime/gateway/ingress-gateway.js +74 -2
  124. package/dist/runtime/gateway/ingress-gateway.js.map +1 -1
  125. package/dist/runtime/gateway/slack-channel-adapter.d.ts +3 -0
  126. package/dist/runtime/gateway/slack-channel-adapter.d.ts.map +1 -1
  127. package/dist/runtime/gateway/slack-channel-adapter.js +23 -4
  128. package/dist/runtime/gateway/slack-channel-adapter.js.map +1 -1
  129. package/dist/runtime/gateway/ws-channel-adapter.d.ts +7 -1
  130. package/dist/runtime/gateway/ws-channel-adapter.d.ts.map +1 -1
  131. package/dist/runtime/gateway/ws-channel-adapter.js +31 -2
  132. package/dist/runtime/gateway/ws-channel-adapter.js.map +1 -1
  133. package/dist/runtime/plugin-loader.d.ts +3 -2
  134. package/dist/runtime/plugin-loader.d.ts.map +1 -1
  135. package/dist/runtime/plugin-loader.js +4 -1
  136. package/dist/runtime/plugin-loader.js.map +1 -1
  137. package/dist/runtime/schedule/engine.d.ts +25 -1
  138. package/dist/runtime/schedule/engine.d.ts.map +1 -1
  139. package/dist/runtime/schedule/engine.js +195 -2
  140. package/dist/runtime/schedule/engine.js.map +1 -1
  141. package/dist/runtime/schedule/entry-resolver.d.ts +6 -0
  142. package/dist/runtime/schedule/entry-resolver.d.ts.map +1 -0
  143. package/dist/runtime/schedule/entry-resolver.js +21 -0
  144. package/dist/runtime/schedule/entry-resolver.js.map +1 -0
  145. package/dist/runtime/schedule/history.d.ts +4 -4
  146. package/dist/runtime/schedule/history.d.ts.map +1 -1
  147. package/dist/runtime/schedule/history.js +1 -1
  148. package/dist/runtime/schedule/history.js.map +1 -1
  149. package/dist/runtime/schedule/source.d.ts +15 -0
  150. package/dist/runtime/schedule/source.d.ts.map +1 -1
  151. package/dist/runtime/schedule/source.js +5 -0
  152. package/dist/runtime/schedule/source.js.map +1 -1
  153. package/dist/runtime/skills/skill-parser.d.ts +13 -0
  154. package/dist/runtime/skills/skill-parser.d.ts.map +1 -0
  155. package/dist/runtime/skills/skill-parser.js +64 -0
  156. package/dist/runtime/skills/skill-parser.js.map +1 -0
  157. package/dist/runtime/skills/skill-registry.d.ts +31 -0
  158. package/dist/runtime/skills/skill-registry.d.ts.map +1 -0
  159. package/dist/runtime/skills/skill-registry.js +108 -0
  160. package/dist/runtime/skills/skill-registry.js.map +1 -0
  161. package/dist/runtime/store/runtime-operation-schemas.d.ts +12 -12
  162. package/dist/runtime/terminal/backend.d.ts +25 -0
  163. package/dist/runtime/terminal/backend.d.ts.map +1 -0
  164. package/dist/runtime/terminal/backend.js +92 -0
  165. package/dist/runtime/terminal/backend.js.map +1 -0
  166. package/dist/runtime/types/daemon.d.ts +48 -0
  167. package/dist/runtime/types/daemon.d.ts.map +1 -1
  168. package/dist/runtime/types/daemon.js +8 -0
  169. package/dist/runtime/types/daemon.js.map +1 -1
  170. package/dist/runtime/types/schedule.d.ts +39 -13
  171. package/dist/runtime/types/schedule.d.ts.map +1 -1
  172. package/dist/runtime/types/schedule.js +3 -1
  173. package/dist/runtime/types/schedule.js.map +1 -1
  174. package/dist/tools/builtin/index.d.ts +2 -0
  175. package/dist/tools/builtin/index.d.ts.map +1 -1
  176. package/dist/tools/builtin/index.js +6 -2
  177. package/dist/tools/builtin/index.js.map +1 -1
  178. package/dist/tools/index.d.ts +1 -0
  179. package/dist/tools/index.d.ts.map +1 -1
  180. package/dist/tools/index.js +1 -0
  181. package/dist/tools/index.js.map +1 -1
  182. package/dist/tools/query/SkillSearchTool/SkillSearchTool.d.ts +28 -0
  183. package/dist/tools/query/SkillSearchTool/SkillSearchTool.d.ts.map +1 -0
  184. package/dist/tools/query/SkillSearchTool/SkillSearchTool.js +44 -0
  185. package/dist/tools/query/SkillSearchTool/SkillSearchTool.js.map +1 -0
  186. package/dist/tools/schedule/GetScheduleTool/GetScheduleTool.d.ts.map +1 -1
  187. package/dist/tools/schedule/GetScheduleTool/GetScheduleTool.js +1 -14
  188. package/dist/tools/schedule/GetScheduleTool/GetScheduleTool.js.map +1 -1
  189. package/dist/tools/schedule/PauseScheduleTool/PauseScheduleTool.d.ts.map +1 -1
  190. package/dist/tools/schedule/PauseScheduleTool/PauseScheduleTool.js +1 -14
  191. package/dist/tools/schedule/PauseScheduleTool/PauseScheduleTool.js.map +1 -1
  192. package/dist/tools/schedule/RemoveScheduleTool/RemoveScheduleTool.d.ts.map +1 -1
  193. package/dist/tools/schedule/RemoveScheduleTool/RemoveScheduleTool.js +1 -14
  194. package/dist/tools/schedule/RemoveScheduleTool/RemoveScheduleTool.js.map +1 -1
  195. package/dist/tools/schedule/ResumeScheduleTool/ResumeScheduleTool.d.ts.map +1 -1
  196. package/dist/tools/schedule/ResumeScheduleTool/ResumeScheduleTool.js +1 -14
  197. package/dist/tools/schedule/ResumeScheduleTool/ResumeScheduleTool.js.map +1 -1
  198. package/dist/tools/schedule/RunScheduleTool/RunScheduleTool.d.ts +40 -0
  199. package/dist/tools/schedule/RunScheduleTool/RunScheduleTool.d.ts.map +1 -0
  200. package/dist/tools/schedule/RunScheduleTool/RunScheduleTool.js +126 -0
  201. package/dist/tools/schedule/RunScheduleTool/RunScheduleTool.js.map +1 -0
  202. package/dist/tools/schedule/RunScheduleTool/constants.d.ts +5 -0
  203. package/dist/tools/schedule/RunScheduleTool/constants.d.ts.map +1 -0
  204. package/dist/tools/schedule/RunScheduleTool/constants.js +5 -0
  205. package/dist/tools/schedule/RunScheduleTool/constants.js.map +1 -0
  206. package/dist/tools/schedule/RunScheduleTool/prompt.d.ts +2 -0
  207. package/dist/tools/schedule/RunScheduleTool/prompt.d.ts.map +1 -0
  208. package/dist/tools/schedule/RunScheduleTool/prompt.js +2 -0
  209. package/dist/tools/schedule/RunScheduleTool/prompt.js.map +1 -0
  210. package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.d.ts.map +1 -1
  211. package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.js +1 -14
  212. package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.js.map +1 -1
  213. package/package.json +4 -4
  214. package/dist/interface/cli/commands/chat.d.ts +0 -3
  215. package/dist/interface/cli/commands/chat.d.ts.map +0 -1
  216. package/dist/interface/cli/commands/chat.js +0 -278
  217. package/dist/interface/cli/commands/chat.js.map +0 -1
@@ -1,278 +0,0 @@
1
- // ─── pulseed chat command ───
2
- import React, { useState, useCallback, useEffect } from "react";
3
- import { render, useApp } from "ink";
4
- import { parseArgs } from "node:util";
5
- import { randomUUID } from "node:crypto";
6
- import { createInterface } from "node:readline";
7
- import * as path from "node:path";
8
- import { ensureProviderConfig } from "../ensure-api-key.js";
9
- import { buildLLMClient, buildAdapterRegistry } from "../../../base/llm/provider-factory.js";
10
- import { loadProviderConfig } from "../../../base/llm/provider-config.js";
11
- import { formatOperationError } from "../utils.js";
12
- import { getCliLogger } from "../cli-logger.js";
13
- import { Chat } from "../../tui/chat.js";
14
- import { EthicsGate } from "../../../platform/traits/ethics-gate.js";
15
- import { ObservationEngine } from "../../../platform/observation/observation-engine.js";
16
- import { GoalNegotiator } from "../../../orchestrator/goal/goal-negotiator.js";
17
- import { EscalationHandler } from "../../chat/escalation.js";
18
- import { DaemonClient, isDaemonRunning } from "../../../runtime/daemon/client.js";
19
- import { ScheduleEngine } from "../../../runtime/schedule/engine.js";
20
- import { TrustManager } from "../../../platform/traits/trust-manager.js";
21
- import { ToolRegistry, ToolExecutor, ToolPermissionManager, ConcurrencyController } from "../../../tools/index.js";
22
- import { createBuiltinTools } from "../../../tools/builtin/index.js";
23
- import { applyChatEventToMessages } from "../../chat/chat-event-state.js";
24
- import { isSafeBashCommand } from "../../tui/bash-mode.js";
25
- import { createNativeChatAgentLoopRunner, shouldUseNativeTaskAgentLoop, } from "../../../orchestrator/execution/agent-loop/index.js";
26
- import { RuntimeControlService, createDaemonRuntimeControlExecutor, } from "../../../runtime/control/index.js";
27
- const logger = getCliLogger();
28
- async function promptChatApproval(reason) {
29
- if (!process.stdin.isTTY)
30
- return false;
31
- const rl = createInterface({ input: process.stdin, output: process.stdout });
32
- return new Promise((resolve) => {
33
- let settled = false;
34
- const finish = (approved) => {
35
- if (settled)
36
- return;
37
- settled = true;
38
- resolve(approved);
39
- };
40
- rl.question(`\n⚠ Approval required: ${reason}\nProceed? [y/N] `, (answer) => {
41
- const normalized = answer.trim().toLowerCase();
42
- finish(normalized === "y" || normalized === "yes");
43
- rl.close();
44
- });
45
- rl.once("close", () => finish(false));
46
- });
47
- }
48
- function ChatApp({ chatRunner, cwd, timeoutMs }) {
49
- const { exit } = useApp();
50
- const [messages, setMessages] = useState([
51
- {
52
- id: randomUUID(),
53
- role: "pulseed",
54
- text: "Chat mode — type a task, /help for commands, /exit to quit.",
55
- timestamp: new Date(),
56
- messageType: "info",
57
- },
58
- ]);
59
- const [isProcessing, setIsProcessing] = useState(false);
60
- const pushNotification = useCallback((text) => {
61
- setMessages((prev) => [
62
- ...prev,
63
- {
64
- id: randomUUID(),
65
- role: "pulseed",
66
- text,
67
- timestamp: new Date(),
68
- messageType: "info",
69
- },
70
- ]);
71
- }, []);
72
- useEffect(() => {
73
- chatRunner.startSession(cwd);
74
- // Wire notification callback so /tend daemon events appear in chat
75
- chatRunner.onNotification = pushNotification;
76
- chatRunner.onEvent = (event) => {
77
- setMessages((prev) => applyChatEventToMessages(prev, event, 200));
78
- };
79
- }, []);
80
- const onSubmit = useCallback(async (input) => {
81
- if (!input.trim() || isProcessing)
82
- return;
83
- if (input.trim().toLowerCase() === "/exit") {
84
- exit();
85
- return;
86
- }
87
- setMessages((prev) => [
88
- ...prev,
89
- { id: randomUUID(), role: "user", text: input, timestamp: new Date() },
90
- ]);
91
- setIsProcessing(true);
92
- try {
93
- await chatRunner.execute(input, cwd, timeoutMs);
94
- }
95
- catch (err) {
96
- const message = err instanceof Error ? err.message : String(err);
97
- setMessages((prev) => [
98
- ...prev,
99
- {
100
- id: randomUUID(),
101
- role: "pulseed",
102
- text: `Error: ${message}`,
103
- timestamp: new Date(),
104
- messageType: "error",
105
- },
106
- ]);
107
- }
108
- finally {
109
- setIsProcessing(false);
110
- }
111
- }, [chatRunner, cwd, timeoutMs, isProcessing, exit]);
112
- return React.createElement(Chat, { messages, onSubmit, isProcessing });
113
- }
114
- // ─── Command handler ───
115
- export async function cmdChat(stateManager, argv) {
116
- let values;
117
- let positionals;
118
- try {
119
- const parsed = parseArgs({
120
- args: argv,
121
- options: {
122
- adapter: { type: "string" },
123
- timeout: { type: "string" },
124
- },
125
- allowPositionals: true,
126
- strict: false,
127
- });
128
- values = parsed.values;
129
- positionals = parsed.positionals;
130
- }
131
- catch (err) {
132
- logger.error(formatOperationError("parse chat command arguments", err));
133
- return 1;
134
- }
135
- const task = positionals[0];
136
- try {
137
- await ensureProviderConfig();
138
- }
139
- catch (err) {
140
- logger.error(err instanceof Error ? err.message : String(err));
141
- return 1;
142
- }
143
- const timeoutMs = values.timeout !== undefined ? parseInt(values.timeout, 10) : 120_000;
144
- let adapterType = values.adapter;
145
- if (!adapterType) {
146
- try {
147
- const providerConfig = await loadProviderConfig();
148
- adapterType = providerConfig.adapter;
149
- }
150
- catch {
151
- adapterType = "claude_code_cli";
152
- }
153
- }
154
- try {
155
- const llmClient = await buildLLMClient();
156
- const providerConfig = await loadProviderConfig();
157
- const effectiveProviderConfig = {
158
- ...providerConfig,
159
- adapter: adapterType,
160
- };
161
- const adapterRegistry = await buildAdapterRegistry(llmClient, effectiveProviderConfig);
162
- const adapter = adapterRegistry.getAdapter(adapterType);
163
- const pulseedDir = stateManager.getBaseDir();
164
- const trustManager = new TrustManager(stateManager);
165
- const scheduleEngine = new ScheduleEngine({ baseDir: pulseedDir });
166
- await scheduleEngine.loadEntries();
167
- const registry = new ToolRegistry();
168
- for (const tool of createBuiltinTools({
169
- stateManager,
170
- trustManager,
171
- registry,
172
- scheduleEngine,
173
- })) {
174
- registry.register(tool);
175
- }
176
- const permissionManager = new ToolPermissionManager({
177
- trustManager,
178
- allowRules: [
179
- {
180
- toolName: "shell",
181
- inputMatcher: (input) => typeof input === "object" &&
182
- input !== null &&
183
- typeof input["command"] === "string" &&
184
- isSafeBashCommand(input["command"]),
185
- reason: "safe shell command",
186
- },
187
- ],
188
- });
189
- const toolExecutor = new ToolExecutor({
190
- registry,
191
- permissionManager,
192
- concurrency: new ConcurrencyController(),
193
- });
194
- const chatAgentLoopRunner = shouldUseNativeTaskAgentLoop(effectiveProviderConfig, llmClient)
195
- ? createNativeChatAgentLoopRunner({
196
- llmClient,
197
- providerConfig: effectiveProviderConfig,
198
- toolRegistry: registry,
199
- toolExecutor,
200
- cwd: process.cwd(),
201
- traceBaseDir: stateManager.getBaseDir(),
202
- })
203
- : undefined;
204
- // Build escalation + tend deps (optional — /track and /tend work only when LLM is available)
205
- let escalationHandler;
206
- let goalNegotiatorForTend;
207
- try {
208
- const ethicsGate = new EthicsGate(stateManager, llmClient);
209
- const observationEngine = new ObservationEngine(stateManager, [], llmClient);
210
- const goalNegotiator = new GoalNegotiator(stateManager, llmClient, ethicsGate, observationEngine);
211
- escalationHandler = new EscalationHandler({ stateManager, llmClient, goalNegotiator });
212
- goalNegotiatorForTend = goalNegotiator;
213
- }
214
- catch {
215
- // Non-fatal: /track and /tend will show "not available" if deps fail to init
216
- logger.warn("Escalation handler could not be initialized — /track and /tend will be unavailable");
217
- }
218
- // Build daemon client for /tend (optional — degrades gracefully if daemon not running)
219
- let daemonClient;
220
- let daemonBaseUrl;
221
- try {
222
- const daemonInfo = await isDaemonRunning(pulseedDir);
223
- if (daemonInfo.running) {
224
- if (daemonInfo.authToken) {
225
- process.env["PULSEED_DAEMON_TOKEN"] = daemonInfo.authToken;
226
- }
227
- daemonClient = new DaemonClient({
228
- host: "127.0.0.1",
229
- port: daemonInfo.port,
230
- authToken: daemonInfo.authToken,
231
- baseDir: pulseedDir,
232
- });
233
- daemonBaseUrl = `http://127.0.0.1:${daemonInfo.port}`;
234
- }
235
- }
236
- catch {
237
- // Non-fatal: /tend will show "daemon not available" message
238
- }
239
- const { ChatRunner } = await import("../../chat/chat-runner.js");
240
- const chatRunner = new ChatRunner({
241
- adapter,
242
- stateManager,
243
- llmClient,
244
- escalationHandler,
245
- goalNegotiator: goalNegotiatorForTend,
246
- daemonClient,
247
- daemonBaseUrl,
248
- registry,
249
- toolExecutor,
250
- chatAgentLoopRunner,
251
- approvalFn: promptChatApproval,
252
- runtimeControlService: new RuntimeControlService({
253
- runtimeRoot: path.join(stateManager.getBaseDir(), "runtime"),
254
- executor: createDaemonRuntimeControlExecutor({
255
- baseDir: stateManager.getBaseDir(),
256
- }),
257
- }),
258
- runtimeReplyTarget: { surface: "cli" },
259
- });
260
- // Non-interactive: single turn
261
- if (task) {
262
- const result = await chatRunner.execute(task, process.cwd(), timeoutMs);
263
- if (result.output) {
264
- process.stdout.write(result.output + "\n");
265
- }
266
- return result.success ? 0 : 1;
267
- }
268
- // Interactive REPL
269
- const { waitUntilExit } = render(React.createElement(ChatApp, { chatRunner, cwd: process.cwd(), timeoutMs }));
270
- await waitUntilExit();
271
- return 0;
272
- }
273
- catch (err) {
274
- logger.error(formatOperationError("execute chat command", err));
275
- return 1;
276
- }
277
- }
278
- //# sourceMappingURL=chat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../src/interface/cli/commands/chat.ts"],"names":[],"mappings":"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"}