pulseed 0.4.15 → 0.4.16

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 (249) hide show
  1. package/dist/adapters/agents/openai-codex.d.ts +2 -2
  2. package/dist/adapters/agents/openai-codex.js +2 -2
  3. package/dist/adapters/agents/openai-codex.js.map +1 -1
  4. package/dist/base/config/global-config.d.ts +44 -0
  5. package/dist/base/config/global-config.d.ts.map +1 -1
  6. package/dist/base/config/global-config.js +37 -0
  7. package/dist/base/config/global-config.js.map +1 -1
  8. package/dist/base/config/tool-metadata.d.ts +1 -1
  9. package/dist/base/config/tool-metadata.d.ts.map +1 -1
  10. package/dist/base/config/tool-metadata.js +21 -0
  11. package/dist/base/config/tool-metadata.js.map +1 -1
  12. package/dist/base/llm/codex-llm-client.d.ts +7 -1
  13. package/dist/base/llm/codex-llm-client.d.ts.map +1 -1
  14. package/dist/base/llm/codex-llm-client.js +10 -4
  15. package/dist/base/llm/codex-llm-client.js.map +1 -1
  16. package/dist/base/llm/provider-config.d.ts +2 -0
  17. package/dist/base/llm/provider-config.d.ts.map +1 -1
  18. package/dist/base/llm/provider-config.js +8 -0
  19. package/dist/base/llm/provider-config.js.map +1 -1
  20. package/dist/base/llm/provider-factory.d.ts.map +1 -1
  21. package/dist/base/llm/provider-factory.js +15 -0
  22. package/dist/base/llm/provider-factory.js.map +1 -1
  23. package/dist/interface/chat/chat-history.d.ts +1 -0
  24. package/dist/interface/chat/chat-history.d.ts.map +1 -1
  25. package/dist/interface/chat/chat-history.js +19 -0
  26. package/dist/interface/chat/chat-history.js.map +1 -1
  27. package/dist/interface/chat/chat-runner.d.ts +6 -0
  28. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  29. package/dist/interface/chat/chat-runner.js +148 -3
  30. package/dist/interface/chat/chat-runner.js.map +1 -1
  31. package/dist/interface/chat/mutation-tool-defs.d.ts +34 -0
  32. package/dist/interface/chat/mutation-tool-defs.d.ts.map +1 -1
  33. package/dist/interface/chat/mutation-tool-defs.js +148 -1
  34. package/dist/interface/chat/mutation-tool-defs.js.map +1 -1
  35. package/dist/interface/chat/self-knowledge-mutation-tools.d.ts +12 -0
  36. package/dist/interface/chat/self-knowledge-mutation-tools.d.ts.map +1 -0
  37. package/dist/interface/chat/self-knowledge-mutation-tools.js +261 -0
  38. package/dist/interface/chat/self-knowledge-mutation-tools.js.map +1 -0
  39. package/dist/interface/chat/self-knowledge-tools.d.ts +34 -0
  40. package/dist/interface/chat/self-knowledge-tools.d.ts.map +1 -0
  41. package/dist/interface/chat/self-knowledge-tools.js +258 -0
  42. package/dist/interface/chat/self-knowledge-tools.js.map +1 -0
  43. package/dist/interface/tui/app.d.ts +8 -0
  44. package/dist/interface/tui/app.d.ts.map +1 -1
  45. package/dist/interface/tui/app.js +50 -27
  46. package/dist/interface/tui/app.js.map +1 -1
  47. package/dist/interface/tui/chat.d.ts +2 -1
  48. package/dist/interface/tui/chat.d.ts.map +1 -1
  49. package/dist/interface/tui/chat.js +17 -22
  50. package/dist/interface/tui/chat.js.map +1 -1
  51. package/dist/interface/tui/clipboard.d.ts.map +1 -1
  52. package/dist/interface/tui/clipboard.js +2 -1
  53. package/dist/interface/tui/clipboard.js.map +1 -1
  54. package/dist/interface/tui/cursor-tracker.d.ts +4 -4
  55. package/dist/interface/tui/cursor-tracker.d.ts.map +1 -1
  56. package/dist/interface/tui/cursor-tracker.js +6 -10
  57. package/dist/interface/tui/cursor-tracker.js.map +1 -1
  58. package/dist/interface/tui/entry.d.ts.map +1 -1
  59. package/dist/interface/tui/entry.js +198 -154
  60. package/dist/interface/tui/entry.js.map +1 -1
  61. package/dist/interface/tui/flicker/AlternateScreen.d.ts +2 -1
  62. package/dist/interface/tui/flicker/AlternateScreen.d.ts.map +1 -1
  63. package/dist/interface/tui/flicker/AlternateScreen.js +5 -4
  64. package/dist/interface/tui/flicker/AlternateScreen.js.map +1 -1
  65. package/dist/interface/tui/flicker/MouseTracking.d.ts +2 -1
  66. package/dist/interface/tui/flicker/MouseTracking.d.ts.map +1 -1
  67. package/dist/interface/tui/flicker/MouseTracking.js +4 -3
  68. package/dist/interface/tui/flicker/MouseTracking.js.map +1 -1
  69. package/dist/interface/tui/flicker/frame-writer.js +3 -3
  70. package/dist/interface/tui/flicker/frame-writer.js.map +1 -1
  71. package/dist/interface/tui/fullscreen-chat.d.ts +3 -1
  72. package/dist/interface/tui/fullscreen-chat.d.ts.map +1 -1
  73. package/dist/interface/tui/fullscreen-chat.js +47 -44
  74. package/dist/interface/tui/fullscreen-chat.js.map +1 -1
  75. package/dist/interface/tui/git-branch.d.ts +2 -0
  76. package/dist/interface/tui/git-branch.d.ts.map +1 -0
  77. package/dist/interface/tui/git-branch.js +14 -0
  78. package/dist/interface/tui/git-branch.js.map +1 -0
  79. package/dist/interface/tui/output-controller.d.ts +10 -0
  80. package/dist/interface/tui/output-controller.d.ts.map +1 -0
  81. package/dist/interface/tui/output-controller.js +79 -0
  82. package/dist/interface/tui/output-controller.js.map +1 -0
  83. package/dist/interface/tui/terminal-output.d.ts +6 -0
  84. package/dist/interface/tui/terminal-output.d.ts.map +1 -0
  85. package/dist/interface/tui/terminal-output.js +11 -0
  86. package/dist/interface/tui/terminal-output.js.map +1 -0
  87. package/dist/interface/tui/test-app.d.ts +2 -1
  88. package/dist/interface/tui/test-app.d.ts.map +1 -1
  89. package/dist/interface/tui/test-app.js +2 -2
  90. package/dist/interface/tui/test-app.js.map +1 -1
  91. package/dist/interface/tui/test-entry.d.ts.map +1 -1
  92. package/dist/interface/tui/test-entry.js +40 -42
  93. package/dist/interface/tui/test-entry.js.map +1 -1
  94. package/dist/interface/tui/text-width.d.ts +3 -0
  95. package/dist/interface/tui/text-width.d.ts.map +1 -0
  96. package/dist/interface/tui/text-width.js +8 -0
  97. package/dist/interface/tui/text-width.js.map +1 -0
  98. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts +4 -1
  99. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts.map +1 -1
  100. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js +29 -5
  101. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js.map +1 -1
  102. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts +3 -0
  103. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts.map +1 -1
  104. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js +13 -0
  105. package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js.map +1 -1
  106. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts +5 -1
  107. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
  108. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +4 -0
  109. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
  110. package/dist/orchestrator/execution/agent-loop/execution-policy.d.ts +26 -0
  111. package/dist/orchestrator/execution/agent-loop/execution-policy.d.ts.map +1 -0
  112. package/dist/orchestrator/execution/agent-loop/execution-policy.js +45 -0
  113. package/dist/orchestrator/execution/agent-loop/execution-policy.js.map +1 -0
  114. package/dist/orchestrator/execution/agent-loop/index.d.ts +1 -0
  115. package/dist/orchestrator/execution/agent-loop/index.d.ts.map +1 -1
  116. package/dist/orchestrator/execution/agent-loop/index.js +1 -0
  117. package/dist/orchestrator/execution/agent-loop/index.js.map +1 -1
  118. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts +2 -0
  119. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts.map +1 -1
  120. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js +2 -0
  121. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js.map +1 -1
  122. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.d.ts.map +1 -1
  123. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js +11 -0
  124. package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js.map +1 -1
  125. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts +4 -0
  126. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts.map +1 -1
  127. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js +3 -0
  128. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js.map +1 -1
  129. package/dist/orchestrator/execution/task/task-executor.d.ts.map +1 -1
  130. package/dist/orchestrator/execution/task/task-executor.js +9 -14
  131. package/dist/orchestrator/execution/task/task-executor.js.map +1 -1
  132. package/dist/platform/soil/contracts.d.ts +36 -36
  133. package/dist/prompt/index.d.ts +12 -0
  134. package/dist/prompt/index.d.ts.map +1 -0
  135. package/dist/prompt/index.js +9 -0
  136. package/dist/prompt/index.js.map +1 -0
  137. package/dist/runtime/builtin-integrations.d.ts.map +1 -1
  138. package/dist/runtime/builtin-integrations.js +23 -1
  139. package/dist/runtime/builtin-integrations.js.map +1 -1
  140. package/dist/runtime/daemon/runner-lifecycle.d.ts +5 -0
  141. package/dist/runtime/daemon/runner-lifecycle.d.ts.map +1 -1
  142. package/dist/runtime/daemon/runner-lifecycle.js +6 -4
  143. package/dist/runtime/daemon/runner-lifecycle.js.map +1 -1
  144. package/dist/runtime/daemon/runner.d.ts +3 -0
  145. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  146. package/dist/runtime/daemon/runner.js +1 -0
  147. package/dist/runtime/daemon/runner.js.map +1 -1
  148. package/dist/runtime/interactive-automation/default-registry.d.ts +9 -0
  149. package/dist/runtime/interactive-automation/default-registry.d.ts.map +1 -0
  150. package/dist/runtime/interactive-automation/default-registry.js +24 -0
  151. package/dist/runtime/interactive-automation/default-registry.js.map +1 -0
  152. package/dist/runtime/interactive-automation/index.d.ts +9 -0
  153. package/dist/runtime/interactive-automation/index.d.ts.map +1 -0
  154. package/dist/runtime/interactive-automation/index.js +9 -0
  155. package/dist/runtime/interactive-automation/index.js.map +1 -0
  156. package/dist/runtime/interactive-automation/providers/anthropic-computer-use.d.ts +14 -0
  157. package/dist/runtime/interactive-automation/providers/anthropic-computer-use.d.ts.map +1 -0
  158. package/dist/runtime/interactive-automation/providers/anthropic-computer-use.js +33 -0
  159. package/dist/runtime/interactive-automation/providers/anthropic-computer-use.js.map +1 -0
  160. package/dist/runtime/interactive-automation/providers/codex-app.d.ts +29 -0
  161. package/dist/runtime/interactive-automation/providers/codex-app.d.ts.map +1 -0
  162. package/dist/runtime/interactive-automation/providers/codex-app.js +67 -0
  163. package/dist/runtime/interactive-automation/providers/codex-app.js.map +1 -0
  164. package/dist/runtime/interactive-automation/providers/manus-browser.d.ts +23 -0
  165. package/dist/runtime/interactive-automation/providers/manus-browser.d.ts.map +1 -0
  166. package/dist/runtime/interactive-automation/providers/manus-browser.js +88 -0
  167. package/dist/runtime/interactive-automation/providers/manus-browser.js.map +1 -0
  168. package/dist/runtime/interactive-automation/providers/noop.d.ts +21 -0
  169. package/dist/runtime/interactive-automation/providers/noop.d.ts.map +1 -0
  170. package/dist/runtime/interactive-automation/providers/noop.js +59 -0
  171. package/dist/runtime/interactive-automation/providers/noop.js.map +1 -0
  172. package/dist/runtime/interactive-automation/providers/perplexity-research.d.ts +25 -0
  173. package/dist/runtime/interactive-automation/providers/perplexity-research.d.ts.map +1 -0
  174. package/dist/runtime/interactive-automation/providers/perplexity-research.js +124 -0
  175. package/dist/runtime/interactive-automation/providers/perplexity-research.js.map +1 -0
  176. package/dist/runtime/interactive-automation/registry.d.ts +20 -0
  177. package/dist/runtime/interactive-automation/registry.d.ts.map +1 -0
  178. package/dist/runtime/interactive-automation/registry.js +55 -0
  179. package/dist/runtime/interactive-automation/registry.js.map +1 -0
  180. package/dist/runtime/interactive-automation/types.d.ts +132 -0
  181. package/dist/runtime/interactive-automation/types.d.ts.map +1 -0
  182. package/dist/runtime/interactive-automation/types.js +8 -0
  183. package/dist/runtime/interactive-automation/types.js.map +1 -0
  184. package/dist/runtime/types/builtin-integration.d.ts +2 -2
  185. package/dist/runtime/types/builtin-integration.d.ts.map +1 -1
  186. package/dist/tools/automation/InteractiveAutomationTools.d.ts +333 -0
  187. package/dist/tools/automation/InteractiveAutomationTools.d.ts.map +1 -0
  188. package/dist/tools/automation/InteractiveAutomationTools.js +424 -0
  189. package/dist/tools/automation/InteractiveAutomationTools.js.map +1 -0
  190. package/dist/tools/automation/index.d.ts +2 -0
  191. package/dist/tools/automation/index.d.ts.map +1 -0
  192. package/dist/tools/automation/index.js +2 -0
  193. package/dist/tools/automation/index.js.map +1 -0
  194. package/dist/tools/builtin/index.d.ts +6 -0
  195. package/dist/tools/builtin/index.d.ts.map +1 -1
  196. package/dist/tools/builtin/index.js +25 -0
  197. package/dist/tools/builtin/index.js.map +1 -1
  198. package/dist/tools/execution/SoilOpenTool/SoilOpenTool.d.ts +4 -4
  199. package/dist/tools/execution/SpawnSessionTool/SpawnSessionTool.d.ts +40 -8
  200. package/dist/tools/execution/SpawnSessionTool/SpawnSessionTool.d.ts.map +1 -1
  201. package/dist/tools/execution/SpawnSessionTool/SpawnSessionTool.js +28 -4
  202. package/dist/tools/execution/SpawnSessionTool/SpawnSessionTool.js.map +1 -1
  203. package/dist/tools/executor.d.ts.map +1 -1
  204. package/dist/tools/executor.js +16 -0
  205. package/dist/tools/executor.js.map +1 -1
  206. package/dist/tools/fs/FileEditTool/FileEditTool.js +1 -1
  207. package/dist/tools/fs/FileEditTool/FileEditTool.js.map +1 -1
  208. package/dist/tools/fs/FileValidationTool/FileValidationTool.d.ts +1 -1
  209. package/dist/tools/fs/FileValidationTool/FileValidationTool.d.ts.map +1 -1
  210. package/dist/tools/fs/FileValidationTool/FileValidationTool.js +3 -16
  211. package/dist/tools/fs/FileValidationTool/FileValidationTool.js.map +1 -1
  212. package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts +12 -0
  213. package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts.map +1 -0
  214. package/dist/tools/fs/FileValidationTool/protected-path-policy.js +58 -0
  215. package/dist/tools/fs/FileValidationTool/protected-path-policy.js.map +1 -0
  216. package/dist/tools/fs/FileWriteTool/FileWriteTool.js +1 -1
  217. package/dist/tools/fs/FileWriteTool/FileWriteTool.js.map +1 -1
  218. package/dist/tools/fs/GlobTool/GlobTool.js +1 -1
  219. package/dist/tools/fs/GlobTool/GlobTool.js.map +1 -1
  220. package/dist/tools/fs/GrepTool/GrepTool.js +1 -1
  221. package/dist/tools/fs/GrepTool/GrepTool.js.map +1 -1
  222. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js +1 -1
  223. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js.map +1 -1
  224. package/dist/tools/fs/ListDirTool/ListDirTool.js +1 -1
  225. package/dist/tools/fs/ListDirTool/ListDirTool.js.map +1 -1
  226. package/dist/tools/fs/ReadTool/ReadTool.js +1 -1
  227. package/dist/tools/fs/ReadTool/ReadTool.js.map +1 -1
  228. package/dist/tools/network/HttpFetchTool/HttpFetchTool.js +1 -1
  229. package/dist/tools/network/HttpFetchTool/HttpFetchTool.js.map +1 -1
  230. package/dist/tools/network/WebSearchTool/WebSearchTool.d.ts.map +1 -1
  231. package/dist/tools/network/WebSearchTool/WebSearchTool.js +1 -0
  232. package/dist/tools/network/WebSearchTool/WebSearchTool.js.map +1 -1
  233. package/dist/tools/permission.d.ts +1 -0
  234. package/dist/tools/permission.d.ts.map +1 -1
  235. package/dist/tools/permission.js +33 -0
  236. package/dist/tools/permission.js.map +1 -1
  237. package/dist/tools/system/EnvTool/EnvTool.d.ts +4 -4
  238. package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
  239. package/dist/tools/system/ShellTool/ShellTool.js +6 -46
  240. package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
  241. package/dist/tools/system/ShellTool/command-policy.d.ts +14 -0
  242. package/dist/tools/system/ShellTool/command-policy.d.ts.map +1 -0
  243. package/dist/tools/system/ShellTool/command-policy.js +121 -0
  244. package/dist/tools/system/ShellTool/command-policy.js.map +1 -0
  245. package/dist/tools/types.d.ts +9 -0
  246. package/dist/tools/types.d.ts.map +1 -1
  247. package/dist/tools/types.js +2 -0
  248. package/dist/tools/types.js.map +1 -1
  249. package/package.json +4 -4
@@ -0,0 +1,261 @@
1
+ import { configChangeRequiresApproval } from "../../base/config/config-metadata.js";
2
+ import { getConfigKeys, updateGlobalConfig } from "../../base/config/global-config.js";
3
+ /**
4
+ * @deprecated Use ToolRegistry.listAll() + toToolDefinitions() instead.
5
+ */
6
+ export { getMutationToolDefinitions } from "./mutation-tool-defs.js";
7
+ import { checkApproval } from "./mutation-tool-defs.js";
8
+ // ─── Handlers ───
9
+ async function handleSetGoal(args, deps) {
10
+ const description = args.description;
11
+ if (typeof description !== "string" || !description.trim()) {
12
+ return JSON.stringify({ error: "description is required and must be a non-empty string" });
13
+ }
14
+ const approval = await checkApproval("set_goal", `Create new goal: "${description}"`, deps);
15
+ if (!approval.approved) {
16
+ return JSON.stringify({ error: approval.error });
17
+ }
18
+ const now = new Date().toISOString();
19
+ const goalId = crypto.randomUUID();
20
+ const goal = {
21
+ id: goalId,
22
+ parent_id: null,
23
+ node_type: "goal",
24
+ title: description.slice(0, 120),
25
+ description,
26
+ status: "active",
27
+ dimensions: [],
28
+ gap_aggregation: "max",
29
+ dimension_mapping: null,
30
+ constraints: [],
31
+ children_ids: [],
32
+ target_date: null,
33
+ origin: "manual",
34
+ pace_snapshot: null,
35
+ deadline: null,
36
+ confidence_flag: null,
37
+ user_override: false,
38
+ feasibility_note: null,
39
+ uncertainty_weight: 1.0,
40
+ decomposition_depth: 0,
41
+ specificity_score: null,
42
+ loop_status: "idle",
43
+ created_at: now,
44
+ updated_at: now,
45
+ };
46
+ try {
47
+ await deps.stateManager.saveGoal(goal);
48
+ return JSON.stringify({ success: true, goal_id: goalId, message: `Goal created: ${description}` });
49
+ }
50
+ catch (err) {
51
+ const message = err instanceof Error ? err.message : String(err);
52
+ return JSON.stringify({ error: `Failed to create goal: ${message}` });
53
+ }
54
+ }
55
+ async function handleUpdateGoal(args, deps) {
56
+ const goalId = args.goal_id;
57
+ if (typeof goalId !== "string" || !goalId.trim()) {
58
+ return JSON.stringify({ error: "goal_id is required" });
59
+ }
60
+ if (args.status === "archived") {
61
+ return JSON.stringify({ error: "Use archive_goal to archive a goal" });
62
+ }
63
+ const approval = await checkApproval("update_goal", `Update goal: ${goalId}`, deps);
64
+ if (!approval.approved) {
65
+ return JSON.stringify({ error: approval.error });
66
+ }
67
+ let goal;
68
+ try {
69
+ goal = await deps.stateManager.loadGoal(goalId);
70
+ }
71
+ catch (err) {
72
+ const message = err instanceof Error ? err.message : String(err);
73
+ return JSON.stringify({ error: `Failed to load goal: ${message}` });
74
+ }
75
+ if (!goal) {
76
+ return JSON.stringify({ error: `Goal not found: ${goalId}` });
77
+ }
78
+ const updated = { ...goal, updated_at: new Date().toISOString() };
79
+ if (typeof args.description === "string") {
80
+ updated.description = args.description;
81
+ }
82
+ const validStatuses = ["active", "paused", "completed"];
83
+ if (typeof args.status === "string" && validStatuses.includes(args.status)) {
84
+ updated.status = args.status;
85
+ }
86
+ try {
87
+ await deps.stateManager.saveGoal(updated);
88
+ return JSON.stringify({ success: true, goal_id: goalId, message: "Goal updated." });
89
+ }
90
+ catch (err) {
91
+ const message = err instanceof Error ? err.message : String(err);
92
+ return JSON.stringify({ error: `Failed to update goal: ${message}` });
93
+ }
94
+ }
95
+ async function handleArchiveGoal(args, deps) {
96
+ const goalId = args.goal_id;
97
+ if (typeof goalId !== "string" || !goalId.trim()) {
98
+ return JSON.stringify({ error: "goal_id is required" });
99
+ }
100
+ const approval = await checkApproval("archive_goal", `Archive goal: ${goalId}`, deps);
101
+ if (!approval.approved) {
102
+ return JSON.stringify({ error: approval.error });
103
+ }
104
+ try {
105
+ const archived = await deps.stateManager.archiveGoal(goalId);
106
+ if (!archived) {
107
+ return JSON.stringify({ error: `Goal not found: ${goalId}` });
108
+ }
109
+ return JSON.stringify({ success: true, goal_id: goalId, message: "Goal archived." });
110
+ }
111
+ catch (err) {
112
+ const message = err instanceof Error ? err.message : String(err);
113
+ return JSON.stringify({ error: `Failed to archive goal: ${message}` });
114
+ }
115
+ }
116
+ async function handleDeleteGoal(args, deps) {
117
+ const goalId = args.goal_id;
118
+ if (typeof goalId !== "string" || !goalId.trim()) {
119
+ return JSON.stringify({ error: "goal_id is required" });
120
+ }
121
+ const approval = await checkApproval("delete_goal", `Delete goal permanently: ${goalId}`, deps);
122
+ if (!approval.approved) {
123
+ return JSON.stringify({ error: approval.error });
124
+ }
125
+ try {
126
+ const deleted = await deps.stateManager.deleteGoal(goalId);
127
+ if (!deleted) {
128
+ return JSON.stringify({ error: `Goal not found: ${goalId}` });
129
+ }
130
+ return JSON.stringify({ success: true, goal_id: goalId, message: "Goal deleted." });
131
+ }
132
+ catch (err) {
133
+ const message = err instanceof Error ? err.message : String(err);
134
+ return JSON.stringify({ error: `Failed to delete goal: ${message}` });
135
+ }
136
+ }
137
+ async function handleTogglePlugin(args, deps) {
138
+ const pluginName = args.plugin_name;
139
+ const enabled = args.enabled;
140
+ if (typeof pluginName !== "string" || !pluginName.trim()) {
141
+ return JSON.stringify({ error: "plugin_name is required" });
142
+ }
143
+ if (typeof enabled !== "boolean") {
144
+ return JSON.stringify({ error: "enabled must be a boolean" });
145
+ }
146
+ const approval = await checkApproval("toggle_plugin", `${enabled ? "Enable" : "Disable"} plugin: ${pluginName}`, deps);
147
+ if (!approval.approved) {
148
+ return JSON.stringify({ error: approval.error });
149
+ }
150
+ return JSON.stringify({
151
+ error: "Plugin enable/disable is not yet supported via chat tools. Use CLI instead.",
152
+ });
153
+ }
154
+ async function handleUpdateConfig(args, deps) {
155
+ const key = args.key;
156
+ const value = args.value;
157
+ if (typeof key !== "string" || !key.trim()) {
158
+ return JSON.stringify({ error: "key is required" });
159
+ }
160
+ if (value === undefined) {
161
+ return JSON.stringify({ error: "value is required" });
162
+ }
163
+ // Validate key against known config keys
164
+ const validKeys = getConfigKeys();
165
+ if (!validKeys.includes(key)) {
166
+ return JSON.stringify({
167
+ error: `Unknown config key: "${key}". Available: ${validKeys.join(", ")}`,
168
+ });
169
+ }
170
+ if (configChangeRequiresApproval(key)) {
171
+ const level = deps.approvalConfig?.["update_config"] ?? "required";
172
+ if (level === "required") {
173
+ if (!deps.approvalFn) {
174
+ return JSON.stringify({
175
+ error: "This operation requires approval but no approval handler is configured",
176
+ });
177
+ }
178
+ const approved = await deps.approvalFn(`Update high-impact config "${key}" to ${JSON.stringify(value)}`);
179
+ if (!approved) {
180
+ return JSON.stringify({ error: "User denied the operation" });
181
+ }
182
+ }
183
+ }
184
+ try {
185
+ const updated = await updateGlobalConfig({ [key]: value });
186
+ const newValue = updated[key];
187
+ const { CONFIG_METADATA } = await import("../../base/config/config-metadata.js");
188
+ const meta = CONFIG_METADATA[key];
189
+ const timing = meta?.appliesAt === "next_session" ? "次回起動時" : "即座に";
190
+ return JSON.stringify({
191
+ success: true,
192
+ key,
193
+ value: newValue,
194
+ message: `${key}を${JSON.stringify(newValue)}に変更しました。${timing}から適用されます。`,
195
+ });
196
+ }
197
+ catch (err) {
198
+ const message = err instanceof Error ? err.message : String(err);
199
+ return JSON.stringify({ error: `Failed to update config: ${message}` });
200
+ }
201
+ }
202
+ async function handleResetTrust(args, deps) {
203
+ const domain = args.domain;
204
+ const balance = args.balance;
205
+ const reason = args.reason;
206
+ if (typeof domain !== "string" || !domain.trim()) {
207
+ return JSON.stringify({ error: "domain is required" });
208
+ }
209
+ if (typeof balance !== "number" || balance < -100 || balance > 100) {
210
+ return JSON.stringify({ error: "balance must be a number between -100 and 100" });
211
+ }
212
+ if (typeof reason !== "string" || !reason.trim()) {
213
+ return JSON.stringify({ error: "reason is required" });
214
+ }
215
+ const approval = await checkApproval("reset_trust", `Reset trust balance for domain "${domain}" to ${balance}: ${reason}`, deps);
216
+ if (!approval.approved) {
217
+ return JSON.stringify({ error: approval.error });
218
+ }
219
+ if (!deps.trustManager) {
220
+ return JSON.stringify({ error: "Trust manager is not available" });
221
+ }
222
+ try {
223
+ await deps.trustManager.setOverride(domain, balance, reason);
224
+ return JSON.stringify({
225
+ success: true,
226
+ domain,
227
+ balance,
228
+ message: `Trust balance for domain "${domain}" set to ${balance}.`,
229
+ });
230
+ }
231
+ catch (err) {
232
+ const message = err instanceof Error ? err.message : String(err);
233
+ return JSON.stringify({ error: `Failed to reset trust: ${message}` });
234
+ }
235
+ }
236
+ // ─── Dispatcher ───
237
+ /**
238
+ * @deprecated Use ToolRegistry.get(name).call() via ChatRunner instead.
239
+ * This function is a backward-compatibility shim.
240
+ */
241
+ export async function handleMutationToolCall(toolName, args, deps) {
242
+ switch (toolName) {
243
+ case "set_goal":
244
+ return handleSetGoal(args, deps);
245
+ case "update_goal":
246
+ return handleUpdateGoal(args, deps);
247
+ case "archive_goal":
248
+ return handleArchiveGoal(args, deps);
249
+ case "delete_goal":
250
+ return handleDeleteGoal(args, deps);
251
+ case "toggle_plugin":
252
+ return handleTogglePlugin(args, deps);
253
+ case "update_config":
254
+ return handleUpdateConfig(args, deps);
255
+ case "reset_trust":
256
+ return handleResetTrust(args, deps);
257
+ default:
258
+ return JSON.stringify({ error: `Unknown mutation tool: ${toolName}` });
259
+ }
260
+ }
261
+ //# sourceMappingURL=self-knowledge-mutation-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-knowledge-mutation-tools.js","sourceRoot":"","sources":["../../../src/interface/chat/self-knowledge-mutation-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { StateManager } from "../../base/state/state-manager.js";
2
+ import type { ToolDefinition } from "../../base/llm/llm-client.js";
3
+ export type { ToolDefinition };
4
+ export interface SelfKnowledgeDeps {
5
+ stateManager: StateManager;
6
+ trustManager?: {
7
+ getBalance(domain: string): Promise<{
8
+ balance: number;
9
+ }>;
10
+ };
11
+ pluginLoader?: {
12
+ loadAll(): Promise<Array<{
13
+ name: string;
14
+ type?: string;
15
+ enabled?: boolean;
16
+ status?: string;
17
+ manifest?: {
18
+ type?: string;
19
+ };
20
+ }>>;
21
+ };
22
+ homeDir: string;
23
+ }
24
+ /**
25
+ * @deprecated Use ToolRegistry.listAll() + toToolDefinitions() instead.
26
+ * This function is a backward-compatibility shim that returns hardcoded definitions.
27
+ */
28
+ export declare function getSelfKnowledgeToolDefinitions(): ToolDefinition[];
29
+ /**
30
+ * @deprecated Use ToolRegistry.get(name).call() via ChatRunner instead.
31
+ * This function is a backward-compatibility shim.
32
+ */
33
+ export declare function handleSelfKnowledgeToolCall(toolName: string, args: Record<string, unknown>, deps: SelfKnowledgeDeps): Promise<string>;
34
+ //# sourceMappingURL=self-knowledge-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-knowledge-tools.d.ts","sourceRoot":"","sources":["../../../src/interface/chat/self-knowledge-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,YAAY,EAAE,cAAc,EAAE,CAAC;AAI/B,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAC5E,YAAY,CAAC,EAAE;QAAE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC,CAAA;KAAE,CAAC;IAChJ,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,cAAc,EAAE,CA+DlE;AAkLD;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -0,0 +1,258 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { getAgentName } from "../../base/config/identity-loader.js";
4
+ import { listBuiltinIntegrations } from "../../runtime/builtin-integrations.js";
5
+ // ─── Tool Definitions ───
6
+ /**
7
+ * @deprecated Use ToolRegistry.listAll() + toToolDefinitions() instead.
8
+ * This function is a backward-compatibility shim that returns hardcoded definitions.
9
+ */
10
+ export function getSelfKnowledgeToolDefinitions() {
11
+ return [
12
+ {
13
+ type: "function",
14
+ function: {
15
+ name: "get_goals",
16
+ description: "Returns detailed information about all goals: title, description, thresholds, status, loop_status, confidence, current_state, and gap_score.",
17
+ parameters: { type: "object", properties: {}, required: [] },
18
+ },
19
+ },
20
+ {
21
+ type: "function",
22
+ function: {
23
+ name: "get_sessions",
24
+ description: "Returns recent session history including goal_id, adapter, status, duration, and created_at.",
25
+ parameters: {
26
+ type: "object",
27
+ properties: {
28
+ limit: { type: "number", description: "Number of recent sessions to return (default: 5)" },
29
+ },
30
+ required: [],
31
+ },
32
+ },
33
+ },
34
+ {
35
+ type: "function",
36
+ function: {
37
+ name: "get_trust_state",
38
+ description: "Returns the current trust state: trust_score, balance range, delta_success, delta_failure, high_trust_threshold, ethics_gate_level, and execution_boundary.",
39
+ parameters: { type: "object", properties: {}, required: [] },
40
+ },
41
+ },
42
+ {
43
+ type: "function",
44
+ function: {
45
+ name: "get_config",
46
+ description: "Returns runtime configuration: provider, model, default_adapter, and pulseed_home_dir.",
47
+ parameters: { type: "object", properties: {}, required: [] },
48
+ },
49
+ },
50
+ {
51
+ type: "function",
52
+ function: {
53
+ name: "get_plugins",
54
+ description: "Returns installed plugins and builtin integrations with name, type, capabilities, and enabled status.",
55
+ parameters: { type: "object", properties: {}, required: [] },
56
+ },
57
+ },
58
+ {
59
+ type: "function",
60
+ function: {
61
+ name: "get_architecture",
62
+ description: `Returns a static description of ${getAgentName()} architecture, layer structure, core loop, 4-element model, and execution boundary.`,
63
+ parameters: { type: "object", properties: {}, required: [] },
64
+ },
65
+ },
66
+ ];
67
+ }
68
+ // ─── Handlers ───
69
+ async function handleGetGoals(deps) {
70
+ const goalIds = await deps.stateManager.listGoalIds();
71
+ if (goalIds.length === 0) {
72
+ return JSON.stringify({ goals: [], message: "No goals found." });
73
+ }
74
+ const goals = await Promise.all(goalIds.map(async (id) => {
75
+ const goal = await deps.stateManager.loadGoal(id);
76
+ if (!goal)
77
+ return null;
78
+ return {
79
+ id: goal.id,
80
+ title: goal.title,
81
+ description: goal.description,
82
+ status: goal.status,
83
+ loop_status: goal.loop_status,
84
+ dimensions: goal.dimensions.map((d) => ({
85
+ name: d.name,
86
+ label: d.label,
87
+ current_value: d.current_value,
88
+ threshold: d.threshold,
89
+ confidence: d.confidence,
90
+ })),
91
+ };
92
+ }));
93
+ return JSON.stringify({ goals: goals.filter(Boolean) });
94
+ }
95
+ async function handleGetSessions(args, deps) {
96
+ const limit = typeof args.limit === "number" ? args.limit : 5;
97
+ const sessionsDir = path.join(deps.homeDir, ".pulseed", "sessions");
98
+ try {
99
+ if (!fs.existsSync(sessionsDir)) {
100
+ return JSON.stringify({ message: "No session information available.", sessions: [] });
101
+ }
102
+ const files = fs
103
+ .readdirSync(sessionsDir)
104
+ .filter((f) => f.endsWith(".json"))
105
+ .sort()
106
+ .slice(-limit);
107
+ const sessions = files.map((f) => {
108
+ try {
109
+ const raw = fs.readFileSync(path.join(sessionsDir, f), "utf-8");
110
+ return JSON.parse(raw);
111
+ }
112
+ catch {
113
+ return { file: f, error: "Failed to parse" };
114
+ }
115
+ });
116
+ return JSON.stringify({ sessions });
117
+ }
118
+ catch {
119
+ return JSON.stringify({ message: "No session information available.", sessions: [] });
120
+ }
121
+ }
122
+ async function handleGetTrustState(deps) {
123
+ let trustScore = "unavailable";
124
+ if (deps.trustManager) {
125
+ try {
126
+ const balance = await deps.trustManager.getBalance("default");
127
+ trustScore = balance.balance;
128
+ }
129
+ catch {
130
+ trustScore = "unavailable";
131
+ }
132
+ }
133
+ return JSON.stringify({
134
+ trust_score: trustScore,
135
+ trust_balance_range: [-100, 100],
136
+ delta_success: 3,
137
+ delta_failure: -10,
138
+ high_trust_threshold: 20,
139
+ ethics_gate_level: "L1",
140
+ execution_boundary: `${getAgentName()} uses available tools directly for safe, goal-advancing work. Explicit confirmation is required before destructive or otherwise high-risk actions.`,
141
+ });
142
+ }
143
+ async function handleGetConfig(deps) {
144
+ const providerPath = path.join(deps.homeDir, ".pulseed", "provider.json");
145
+ const defaults = {
146
+ provider: "unknown",
147
+ model: "unknown",
148
+ default_adapter: "claude-code-cli",
149
+ pulseed_home_dir: path.join(deps.homeDir, ".pulseed"),
150
+ };
151
+ try {
152
+ if (!fs.existsSync(providerPath)) {
153
+ return JSON.stringify(defaults);
154
+ }
155
+ const raw = fs.readFileSync(providerPath, "utf-8");
156
+ const config = JSON.parse(raw);
157
+ return JSON.stringify({
158
+ provider: config["provider"] ?? defaults.provider,
159
+ model: config["model"] ?? defaults.model,
160
+ default_adapter: config["default_adapter"] ?? defaults.default_adapter,
161
+ pulseed_home_dir: defaults.pulseed_home_dir,
162
+ });
163
+ }
164
+ catch {
165
+ return JSON.stringify(defaults);
166
+ }
167
+ }
168
+ async function handleGetPlugins(deps) {
169
+ const builtinIntegrations = listBuiltinIntegrations();
170
+ if (!deps.pluginLoader) {
171
+ return JSON.stringify({
172
+ message: "Plugin information is not available.",
173
+ plugins: [],
174
+ builtin_integrations: builtinIntegrations,
175
+ });
176
+ }
177
+ try {
178
+ const pluginStates = await deps.pluginLoader.loadAll();
179
+ const plugins = pluginStates.map((p) => ({
180
+ name: p.name,
181
+ type: p.type ?? p.manifest?.type ?? "unknown",
182
+ enabled: p.enabled ?? (p.status ? p.status === "loaded" : true),
183
+ }));
184
+ return JSON.stringify({ plugins, builtin_integrations: builtinIntegrations });
185
+ }
186
+ catch {
187
+ return JSON.stringify({
188
+ message: "Failed to load plugin information.",
189
+ plugins: [],
190
+ builtin_integrations: builtinIntegrations,
191
+ });
192
+ }
193
+ }
194
+ function handleGetArchitecture() {
195
+ const name = getAgentName();
196
+ const text = `${name} Architecture
197
+
198
+ ## Core Concept
199
+ 4-element model: Goal (with thresholds) -> Current State (observation + confidence) -> Gap -> Constraints
200
+ Core loop: observe -> gap -> score -> task -> execute -> verify (NEVER STOP)
201
+ Execution boundary: ${name} uses available tools directly for safe, goal-advancing work. Destructive or otherwise high-risk actions require explicit confirmation first.
202
+
203
+ ## Layer Structure
204
+ - Layer 0: StateManager, AdapterLayer (no dependencies)
205
+ - Layer 1: GapCalculator, DriveSystem, TrustManager
206
+ - Layer 2: ObservationEngine, DriveScorer, SatisficingJudge, StallDetector
207
+ - Layer 3: SessionManager, GoalNegotiator, StrategyManager
208
+ - Layer 4: TaskLifecycle
209
+ - Layer 5: CoreLoop, ReportingEngine
210
+ - Layer 6: CLIRunner
211
+ - Layer 7: TUI (Ink/React dashboard, approval UI, chat)
212
+ - Layer 8: KnowledgeManager (cross-cutting)
213
+ - Layer 9: PortfolioManager
214
+ - Layer 10: DaemonRunner, PIDManager, Logger, EventServer, NotificationDispatcher, MemoryLifecycleManager
215
+ - Layer 11: CuriosityEngine, CharacterConfigManager
216
+ - Layer 12: EmbeddingClient, VectorIndex, KnowledgeGraph, GoalDependencyGraph
217
+ - Layer 13: CapabilityDetector, DataSourceAdapter
218
+ - Layer 14: GoalTreeManager, StateAggregator, TreeLoopOrchestrator, CrossGoalPortfolio, StrategyTemplateRegistry, LearningPipeline, KnowledgeTransfer
219
+ - Layer 15: PluginLoader, NotifierRegistry, INotifier (plugin architecture)
220
+
221
+ ## Module Responsibilities (summary)
222
+ - StateManager: persistent goal/session state (file-based JSON)
223
+ - GapCalculator: computes gap score from current state vs. thresholds
224
+ - DriveSystem: converts gap into drive intensity
225
+ - TrustManager: asymmetric trust scoring [-100,+100]
226
+ - ObservationEngine: LLM-powered state observation with 3-tier fallback
227
+ - SatisficingJudge: decides "good enough" to stop pursuing a goal
228
+ - StallDetector: detects stall conditions (repetition, timeout, loop)
229
+ - SessionManager: manages agent session lifecycle
230
+ - TaskLifecycle: task selection, execution delegation, verification
231
+ - CoreLoop: the main orchestration loop (observe->gap->score->task->execute->verify)
232
+ - EthicsGate: L1 mechanical safety checks before irreversible actions`;
233
+ return JSON.stringify({ architecture: text });
234
+ }
235
+ // ─── Dispatcher ───
236
+ /**
237
+ * @deprecated Use ToolRegistry.get(name).call() via ChatRunner instead.
238
+ * This function is a backward-compatibility shim.
239
+ */
240
+ export async function handleSelfKnowledgeToolCall(toolName, args, deps) {
241
+ switch (toolName) {
242
+ case "get_goals":
243
+ return handleGetGoals(deps);
244
+ case "get_sessions":
245
+ return handleGetSessions(args, deps);
246
+ case "get_trust_state":
247
+ return handleGetTrustState(deps);
248
+ case "get_config":
249
+ return handleGetConfig(deps);
250
+ case "get_plugins":
251
+ return handleGetPlugins(deps);
252
+ case "get_architecture":
253
+ return handleGetArchitecture();
254
+ default:
255
+ return JSON.stringify({ error: `Unknown tool: ${toolName}` });
256
+ }
257
+ }
258
+ //# sourceMappingURL=self-knowledge-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-knowledge-tools.js","sourceRoot":"","sources":["../../../src/interface/chat/self-knowledge-tools.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,19 @@ import type { TrustManager } from "../../platform/traits/trust-manager.js";
6
6
  import type { Task } from "../../base/types/task.js";
7
7
  import type { ChatRunner } from "../../interface/chat/chat-runner.js";
8
8
  import type { DaemonClient } from "../../runtime/daemon/client.js";
9
+ export declare const APP_HEADER_ROWS: number;
9
10
  export interface ApprovalRequest {
10
11
  task: Task;
11
12
  resolve: (approved: boolean) => void;
12
13
  }
13
14
  export type DaemonConnectionState = "connected" | "connecting" | "disconnected";
14
15
  export declare function formatDaemonConnectionState(state: DaemonConnectionState | undefined): string | undefined;
16
+ export type FreeformInputRoute = "daemon_goal_chat" | "chat_runner" | "unavailable";
17
+ export declare function resolveFreeformInputRoute({ isDaemonMode, daemonGoalId, hasChatRunner, }: {
18
+ isDaemonMode: boolean;
19
+ daemonGoalId: string | null;
20
+ hasChatRunner: boolean;
21
+ }): FreeformInputRoute;
15
22
  interface AppProps {
16
23
  daemonClient?: DaemonClient;
17
24
  coreLoop?: CoreLoop;
@@ -25,6 +32,7 @@ interface AppProps {
25
32
  gitBranch?: string;
26
33
  providerName?: string;
27
34
  noFlicker?: boolean;
35
+ controlStream?: Pick<NodeJS.WriteStream, "write">;
28
36
  }
29
37
  export declare function App({ daemonClient, coreLoop, stateManager, trustManager, actionHandler, intentRecognizer, chatRunner, onApprovalReady, cwd, gitBranch, providerName, noFlicker, }: AppProps): import("react/jsx-runtime").JSX.Element;
30
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/interface/tui/app.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAUnE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAEhF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGxG;AAED,UAAU,QAAQ;IAEhB,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;IAEtE,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAqCD,wBAAgB,GAAG,CAAC,EAClB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,GAAG,EACH,SAAS,EACT,YAAY,EACZ,SAAS,GACV,EAAE,QAAQ,2CAwdV"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/interface/tui/app.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAQnE,eAAO,MAAM,eAAe,QAAiC,CAAC;AAG9D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAEhF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGxG;AAED,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG,aAAa,GAAG,aAAa,CAAC;AAEpF,wBAAgB,yBAAyB,CAAC,EACxC,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,EAAE;IACD,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,kBAAkB,CAQrB;AAED,UAAU,QAAQ;IAEhB,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;IAEtE,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CACnD;AAqCD,wBAAgB,GAAG,CAAC,EAClB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,GAAG,EACH,SAAS,EACT,YAAY,EACZ,SAAS,GACV,EAAE,QAAQ,2CAweV"}