longer-agent 0.1.0

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 (289) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/README.zh-CN.md +227 -0
  4. package/agent_templates/executor/agent.yaml +22 -0
  5. package/agent_templates/executor/system_prompt.md +17 -0
  6. package/agent_templates/explorer/agent.yaml +13 -0
  7. package/agent_templates/explorer/system_prompt.md +19 -0
  8. package/agent_templates/main/agent.yaml +7 -0
  9. package/agent_templates/main/system_prompt.md +45 -0
  10. package/configExample.yaml +83 -0
  11. package/dist/agents/agent.d.ts +79 -0
  12. package/dist/agents/agent.d.ts.map +1 -0
  13. package/dist/agents/agent.js +156 -0
  14. package/dist/agents/agent.js.map +1 -0
  15. package/dist/agents/tool-loop.d.ts +140 -0
  16. package/dist/agents/tool-loop.d.ts.map +1 -0
  17. package/dist/agents/tool-loop.js +465 -0
  18. package/dist/agents/tool-loop.js.map +1 -0
  19. package/dist/ask.d.ts +81 -0
  20. package/dist/ask.d.ts.map +1 -0
  21. package/dist/ask.js +34 -0
  22. package/dist/ask.js.map +1 -0
  23. package/dist/auth/openai-oauth.d.ts +66 -0
  24. package/dist/auth/openai-oauth.d.ts.map +1 -0
  25. package/dist/auth/openai-oauth.js +640 -0
  26. package/dist/auth/openai-oauth.js.map +1 -0
  27. package/dist/cli.d.ts +14 -0
  28. package/dist/cli.d.ts.map +1 -0
  29. package/dist/cli.js +254 -0
  30. package/dist/cli.js.map +1 -0
  31. package/dist/commands.d.ts +118 -0
  32. package/dist/commands.d.ts.map +1 -0
  33. package/dist/commands.js +862 -0
  34. package/dist/commands.js.map +1 -0
  35. package/dist/config.d.ts +130 -0
  36. package/dist/config.d.ts.map +1 -0
  37. package/dist/config.js +648 -0
  38. package/dist/config.js.map +1 -0
  39. package/dist/context-rendering.d.ts +69 -0
  40. package/dist/context-rendering.d.ts.map +1 -0
  41. package/dist/context-rendering.js +250 -0
  42. package/dist/context-rendering.js.map +1 -0
  43. package/dist/document-projection.d.ts +12 -0
  44. package/dist/document-projection.d.ts.map +1 -0
  45. package/dist/document-projection.js +75 -0
  46. package/dist/document-projection.js.map +1 -0
  47. package/dist/ephemeral-log.d.ts +15 -0
  48. package/dist/ephemeral-log.d.ts.map +1 -0
  49. package/dist/ephemeral-log.js +173 -0
  50. package/dist/ephemeral-log.js.map +1 -0
  51. package/dist/file-attach.d.ts +89 -0
  52. package/dist/file-attach.d.ts.map +1 -0
  53. package/dist/file-attach.js +571 -0
  54. package/dist/file-attach.js.map +1 -0
  55. package/dist/index.d.ts +29 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +43 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/init-wizard.d.ts +13 -0
  60. package/dist/init-wizard.d.ts.map +1 -0
  61. package/dist/init-wizard.js +328 -0
  62. package/dist/init-wizard.js.map +1 -0
  63. package/dist/log-entry.d.ts +104 -0
  64. package/dist/log-entry.d.ts.map +1 -0
  65. package/dist/log-entry.js +292 -0
  66. package/dist/log-entry.js.map +1 -0
  67. package/dist/log-projection.d.ts +73 -0
  68. package/dist/log-projection.d.ts.map +1 -0
  69. package/dist/log-projection.js +651 -0
  70. package/dist/log-projection.js.map +1 -0
  71. package/dist/mcp-client.d.ts +55 -0
  72. package/dist/mcp-client.d.ts.map +1 -0
  73. package/dist/mcp-client.js +402 -0
  74. package/dist/mcp-client.js.map +1 -0
  75. package/dist/model-selection.d.ts +16 -0
  76. package/dist/model-selection.d.ts.map +1 -0
  77. package/dist/model-selection.js +181 -0
  78. package/dist/model-selection.js.map +1 -0
  79. package/dist/network-retry.d.ts +38 -0
  80. package/dist/network-retry.d.ts.map +1 -0
  81. package/dist/network-retry.js +140 -0
  82. package/dist/network-retry.js.map +1 -0
  83. package/dist/persistence.d.ts +104 -0
  84. package/dist/persistence.d.ts.map +1 -0
  85. package/dist/persistence.js +644 -0
  86. package/dist/persistence.js.map +1 -0
  87. package/dist/primitives/context.d.ts +29 -0
  88. package/dist/primitives/context.d.ts.map +1 -0
  89. package/dist/primitives/context.js +85 -0
  90. package/dist/primitives/context.js.map +1 -0
  91. package/dist/progress.d.ts +51 -0
  92. package/dist/progress.d.ts.map +1 -0
  93. package/dist/progress.js +229 -0
  94. package/dist/progress.js.map +1 -0
  95. package/dist/provider-presets.d.ts +34 -0
  96. package/dist/provider-presets.d.ts.map +1 -0
  97. package/dist/provider-presets.js +181 -0
  98. package/dist/provider-presets.js.map +1 -0
  99. package/dist/providers/anthropic.d.ts +32 -0
  100. package/dist/providers/anthropic.d.ts.map +1 -0
  101. package/dist/providers/anthropic.js +450 -0
  102. package/dist/providers/anthropic.js.map +1 -0
  103. package/dist/providers/base.d.ts +135 -0
  104. package/dist/providers/base.d.ts.map +1 -0
  105. package/dist/providers/base.js +104 -0
  106. package/dist/providers/base.js.map +1 -0
  107. package/dist/providers/glm.d.ts +18 -0
  108. package/dist/providers/glm.d.ts.map +1 -0
  109. package/dist/providers/glm.js +59 -0
  110. package/dist/providers/glm.js.map +1 -0
  111. package/dist/providers/kimi.d.ts +23 -0
  112. package/dist/providers/kimi.d.ts.map +1 -0
  113. package/dist/providers/kimi.js +89 -0
  114. package/dist/providers/kimi.js.map +1 -0
  115. package/dist/providers/minimax.d.ts +20 -0
  116. package/dist/providers/minimax.d.ts.map +1 -0
  117. package/dist/providers/minimax.js +192 -0
  118. package/dist/providers/minimax.js.map +1 -0
  119. package/dist/providers/openai-chat.d.ts +33 -0
  120. package/dist/providers/openai-chat.d.ts.map +1 -0
  121. package/dist/providers/openai-chat.js +543 -0
  122. package/dist/providers/openai-chat.js.map +1 -0
  123. package/dist/providers/openai-responses.d.ts +26 -0
  124. package/dist/providers/openai-responses.d.ts.map +1 -0
  125. package/dist/providers/openai-responses.js +443 -0
  126. package/dist/providers/openai-responses.js.map +1 -0
  127. package/dist/providers/openrouter.d.ts +24 -0
  128. package/dist/providers/openrouter.d.ts.map +1 -0
  129. package/dist/providers/openrouter.js +177 -0
  130. package/dist/providers/openrouter.js.map +1 -0
  131. package/dist/providers/registry.d.ts +7 -0
  132. package/dist/providers/registry.d.ts.map +1 -0
  133. package/dist/providers/registry.js +38 -0
  134. package/dist/providers/registry.js.map +1 -0
  135. package/dist/security/path.d.ts +51 -0
  136. package/dist/security/path.d.ts.map +1 -0
  137. package/dist/security/path.js +187 -0
  138. package/dist/security/path.js.map +1 -0
  139. package/dist/security/sensitive-files.d.ts +3 -0
  140. package/dist/security/sensitive-files.d.ts.map +1 -0
  141. package/dist/security/sensitive-files.js +41 -0
  142. package/dist/security/sensitive-files.js.map +1 -0
  143. package/dist/session.d.ts +446 -0
  144. package/dist/session.d.ts.map +1 -0
  145. package/dist/session.js +4595 -0
  146. package/dist/session.js.map +1 -0
  147. package/dist/settings.d.ts +46 -0
  148. package/dist/settings.d.ts.map +1 -0
  149. package/dist/settings.js +134 -0
  150. package/dist/settings.js.map +1 -0
  151. package/dist/show-context.d.ts +35 -0
  152. package/dist/show-context.d.ts.map +1 -0
  153. package/dist/show-context.js +320 -0
  154. package/dist/show-context.js.map +1 -0
  155. package/dist/skills/loader.d.ts +49 -0
  156. package/dist/skills/loader.d.ts.map +1 -0
  157. package/dist/skills/loader.js +166 -0
  158. package/dist/skills/loader.js.map +1 -0
  159. package/dist/summarize-context.d.ts +29 -0
  160. package/dist/summarize-context.d.ts.map +1 -0
  161. package/dist/summarize-context.js +247 -0
  162. package/dist/summarize-context.js.map +1 -0
  163. package/dist/templates/loader.d.ts +104 -0
  164. package/dist/templates/loader.d.ts.map +1 -0
  165. package/dist/templates/loader.js +514 -0
  166. package/dist/templates/loader.js.map +1 -0
  167. package/dist/tools/basic.d.ts +29 -0
  168. package/dist/tools/basic.d.ts.map +1 -0
  169. package/dist/tools/basic.js +2079 -0
  170. package/dist/tools/basic.js.map +1 -0
  171. package/dist/tools/comm.d.ts +17 -0
  172. package/dist/tools/comm.d.ts.map +1 -0
  173. package/dist/tools/comm.js +192 -0
  174. package/dist/tools/comm.js.map +1 -0
  175. package/dist/tools/web-fetch.d.ts +11 -0
  176. package/dist/tools/web-fetch.d.ts.map +1 -0
  177. package/dist/tools/web-fetch.js +237 -0
  178. package/dist/tools/web-fetch.js.map +1 -0
  179. package/dist/tools/web-search.d.ts +24 -0
  180. package/dist/tools/web-search.d.ts.map +1 -0
  181. package/dist/tools/web-search.js +51 -0
  182. package/dist/tools/web-search.js.map +1 -0
  183. package/dist/tui/app.d.ts +35 -0
  184. package/dist/tui/app.d.ts.map +1 -0
  185. package/dist/tui/app.js +1042 -0
  186. package/dist/tui/app.js.map +1 -0
  187. package/dist/tui/checkbox-picker.d.ts +35 -0
  188. package/dist/tui/checkbox-picker.d.ts.map +1 -0
  189. package/dist/tui/checkbox-picker.js +85 -0
  190. package/dist/tui/checkbox-picker.js.map +1 -0
  191. package/dist/tui/command-picker.d.ts +31 -0
  192. package/dist/tui/command-picker.d.ts.map +1 -0
  193. package/dist/tui/command-picker.js +113 -0
  194. package/dist/tui/command-picker.js.map +1 -0
  195. package/dist/tui/components/ask-panel.d.ts +21 -0
  196. package/dist/tui/components/ask-panel.d.ts.map +1 -0
  197. package/dist/tui/components/ask-panel.js +81 -0
  198. package/dist/tui/components/ask-panel.js.map +1 -0
  199. package/dist/tui/components/conversation-panel.d.ts +68 -0
  200. package/dist/tui/components/conversation-panel.d.ts.map +1 -0
  201. package/dist/tui/components/conversation-panel.js +611 -0
  202. package/dist/tui/components/conversation-panel.js.map +1 -0
  203. package/dist/tui/components/input-panel.d.ts +27 -0
  204. package/dist/tui/components/input-panel.d.ts.map +1 -0
  205. package/dist/tui/components/input-panel.js +725 -0
  206. package/dist/tui/components/input-panel.js.map +1 -0
  207. package/dist/tui/components/logo-panel.d.ts +14 -0
  208. package/dist/tui/components/logo-panel.d.ts.map +1 -0
  209. package/dist/tui/components/logo-panel.js +37 -0
  210. package/dist/tui/components/logo-panel.js.map +1 -0
  211. package/dist/tui/components/plan-panel.d.ts +10 -0
  212. package/dist/tui/components/plan-panel.d.ts.map +1 -0
  213. package/dist/tui/components/plan-panel.js +8 -0
  214. package/dist/tui/components/plan-panel.js.map +1 -0
  215. package/dist/tui/components/status-bar.d.ts +24 -0
  216. package/dist/tui/components/status-bar.d.ts.map +1 -0
  217. package/dist/tui/components/status-bar.js +80 -0
  218. package/dist/tui/components/status-bar.js.map +1 -0
  219. package/dist/tui/input/editor-state.d.ts +22 -0
  220. package/dist/tui/input/editor-state.d.ts.map +1 -0
  221. package/dist/tui/input/editor-state.js +157 -0
  222. package/dist/tui/input/editor-state.js.map +1 -0
  223. package/dist/tui/input/keymap.d.ts +3 -0
  224. package/dist/tui/input/keymap.d.ts.map +1 -0
  225. package/dist/tui/input/keymap.js +72 -0
  226. package/dist/tui/input/keymap.js.map +1 -0
  227. package/dist/tui/input/paste-slots.d.ts +17 -0
  228. package/dist/tui/input/paste-slots.d.ts.map +1 -0
  229. package/dist/tui/input/paste-slots.js +46 -0
  230. package/dist/tui/input/paste-slots.js.map +1 -0
  231. package/dist/tui/input/paste.d.ts +15 -0
  232. package/dist/tui/input/paste.d.ts.map +1 -0
  233. package/dist/tui/input/paste.js +35 -0
  234. package/dist/tui/input/paste.js.map +1 -0
  235. package/dist/tui/input/protocol.d.ts +9 -0
  236. package/dist/tui/input/protocol.d.ts.map +1 -0
  237. package/dist/tui/input/protocol.js +387 -0
  238. package/dist/tui/input/protocol.js.map +1 -0
  239. package/dist/tui/input/sanitize.d.ts +6 -0
  240. package/dist/tui/input/sanitize.d.ts.map +1 -0
  241. package/dist/tui/input/sanitize.js +20 -0
  242. package/dist/tui/input/sanitize.js.map +1 -0
  243. package/dist/tui/input/types.d.ts +18 -0
  244. package/dist/tui/input/types.d.ts.map +1 -0
  245. package/dist/tui/input/types.js +2 -0
  246. package/dist/tui/input/types.js.map +1 -0
  247. package/dist/tui/launch.d.ts +23 -0
  248. package/dist/tui/launch.d.ts.map +1 -0
  249. package/dist/tui/launch.js +104 -0
  250. package/dist/tui/launch.js.map +1 -0
  251. package/dist/tui/theme.d.ts +20 -0
  252. package/dist/tui/theme.d.ts.map +1 -0
  253. package/dist/tui/theme.js +29 -0
  254. package/dist/tui/theme.js.map +1 -0
  255. package/dist/tui/types.d.ts +136 -0
  256. package/dist/tui/types.d.ts.map +1 -0
  257. package/dist/tui/types.js +9 -0
  258. package/dist/tui/types.js.map +1 -0
  259. package/package.json +76 -0
  260. package/prompts/sections/agents_md.md +23 -0
  261. package/prompts/sections/important_log.md +16 -0
  262. package/prompts/sections/system_mechanisms.md +18 -0
  263. package/prompts/tools/apply_patch.md +31 -0
  264. package/prompts/tools/ask.md +18 -0
  265. package/prompts/tools/bash.md +13 -0
  266. package/prompts/tools/bash_background.md +9 -0
  267. package/prompts/tools/bash_output.md +9 -0
  268. package/prompts/tools/check_status.md +3 -0
  269. package/prompts/tools/diff.md +5 -0
  270. package/prompts/tools/edit_file.md +11 -0
  271. package/prompts/tools/glob.md +7 -0
  272. package/prompts/tools/grep.md +20 -0
  273. package/prompts/tools/kill_agent.md +3 -0
  274. package/prompts/tools/kill_shell.md +5 -0
  275. package/prompts/tools/list_dir.md +5 -0
  276. package/prompts/tools/plan.md +252 -0
  277. package/prompts/tools/read_file.md +9 -0
  278. package/prompts/tools/show_context.md +12 -0
  279. package/prompts/tools/skill.md +7 -0
  280. package/prompts/tools/spawn_agent.md +195 -0
  281. package/prompts/tools/summarize_context.md +122 -0
  282. package/prompts/tools/test.md +5 -0
  283. package/prompts/tools/wait.md +17 -0
  284. package/prompts/tools/web_fetch.md +9 -0
  285. package/prompts/tools/web_search.md +5 -0
  286. package/prompts/tools/write_file.md +11 -0
  287. package/skills/.staging/.gitkeep +0 -0
  288. package/skills/explain-code/SKILL.md +15 -0
  289. package/skills/skill-manager/SKILL.md +83 -0
@@ -0,0 +1,292 @@
1
+ /**
2
+ * Structured log entry types and factory functions.
3
+ *
4
+ * Core data structure for the Session Log Architecture v2.
5
+ * Every event in a session is recorded as a LogEntry.
6
+ * TUI and API views are projected from the log.
7
+ */
8
+ // ------------------------------------------------------------------
9
+ // ID Allocator
10
+ // ------------------------------------------------------------------
11
+ /** Map from LogEntryType to its ID prefix. */
12
+ const TYPE_PREFIX_MAP = {
13
+ system_prompt: "sys",
14
+ turn_start: "ts",
15
+ user_message: "user",
16
+ assistant_text: "asst",
17
+ reasoning: "rsn",
18
+ tool_call: "tc",
19
+ tool_result: "tr",
20
+ ask_request: "askq",
21
+ ask_resolution: "askr",
22
+ no_reply: "nr",
23
+ compact_marker: "cm",
24
+ compact_context: "cc",
25
+ summary: "sum",
26
+ interruption_marker: "int",
27
+ sub_agent_start: "sas",
28
+ sub_agent_tool_call: "satc",
29
+ sub_agent_end: "sae",
30
+ status: "st",
31
+ error: "err",
32
+ token_update: "tok",
33
+ };
34
+ /**
35
+ * Generates sequential IDs like "user-001", "tc-005".
36
+ * Maintains per-prefix counters.
37
+ */
38
+ export class LogIdAllocator {
39
+ _counters = new Map();
40
+ /** Allocate the next ID for a given entry type. */
41
+ next(type) {
42
+ const prefix = TYPE_PREFIX_MAP[type];
43
+ const count = (this._counters.get(prefix) ?? 0) + 1;
44
+ this._counters.set(prefix, count);
45
+ return `${prefix}-${String(count).padStart(3, "0")}`;
46
+ }
47
+ /**
48
+ * Restore counters from an existing log (e.g. after loadLog).
49
+ * Scans all entries and sets each prefix counter to the max seen.
50
+ */
51
+ restoreFrom(entries) {
52
+ this._counters.clear();
53
+ for (const entry of entries) {
54
+ const dashIdx = entry.id.lastIndexOf("-");
55
+ if (dashIdx === -1)
56
+ continue;
57
+ const prefix = entry.id.slice(0, dashIdx);
58
+ const num = parseInt(entry.id.slice(dashIdx + 1), 10);
59
+ if (!isNaN(num)) {
60
+ const current = this._counters.get(prefix) ?? 0;
61
+ if (num > current) {
62
+ this._counters.set(prefix, num);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ /** Get the current counter value for a prefix (for testing). */
68
+ getCounter(type) {
69
+ const prefix = TYPE_PREFIX_MAP[type];
70
+ return this._counters.get(prefix) ?? 0;
71
+ }
72
+ }
73
+ // ------------------------------------------------------------------
74
+ // Factory helpers
75
+ // ------------------------------------------------------------------
76
+ function baseEntry(id, type, turnIndex, partial) {
77
+ return {
78
+ id,
79
+ type,
80
+ timestamp: Date.now(),
81
+ turnIndex,
82
+ tuiVisible: false,
83
+ displayKind: null,
84
+ display: "",
85
+ apiRole: null,
86
+ content: null,
87
+ archived: false,
88
+ meta: {},
89
+ ...partial,
90
+ };
91
+ }
92
+ // ------------------------------------------------------------------
93
+ // Factory functions — one per entry type
94
+ // ------------------------------------------------------------------
95
+ export function createSystemPrompt(id, content) {
96
+ return baseEntry(id, "system_prompt", 0, {
97
+ apiRole: "system",
98
+ content,
99
+ });
100
+ }
101
+ export function createTurnStart(id, turnIndex) {
102
+ return baseEntry(id, "turn_start", turnIndex, {
103
+ meta: { turnIndex, timestamp: Date.now() },
104
+ });
105
+ }
106
+ export function createUserMessage(id, turnIndex, display, content, contextId) {
107
+ return baseEntry(id, "user_message", turnIndex, {
108
+ tuiVisible: true,
109
+ displayKind: "user",
110
+ display,
111
+ apiRole: "user",
112
+ content,
113
+ meta: { contextId },
114
+ });
115
+ }
116
+ export function createAssistantText(id, turnIndex, roundIndex, display, content, contextId) {
117
+ return baseEntry(id, "assistant_text", turnIndex, {
118
+ roundIndex,
119
+ tuiVisible: true,
120
+ displayKind: "assistant",
121
+ display,
122
+ apiRole: "assistant",
123
+ content,
124
+ meta: contextId ? { contextId } : {},
125
+ });
126
+ }
127
+ export function createReasoning(id, turnIndex, roundIndex, display, content, reasoningState, contextId) {
128
+ const meta = {};
129
+ if (reasoningState !== undefined)
130
+ meta.reasoningState = reasoningState;
131
+ if (contextId !== undefined)
132
+ meta.contextId = contextId;
133
+ return baseEntry(id, "reasoning", turnIndex, {
134
+ roundIndex,
135
+ tuiVisible: true,
136
+ displayKind: "reasoning",
137
+ display,
138
+ apiRole: null,
139
+ content,
140
+ meta,
141
+ });
142
+ }
143
+ export function createToolCall(id, turnIndex, roundIndex, display, toolCallContent, opts) {
144
+ const meta = {
145
+ toolCallId: opts.toolCallId,
146
+ toolName: opts.toolName,
147
+ agentName: opts.agentName,
148
+ };
149
+ if (opts.contextId !== undefined)
150
+ meta.contextId = opts.contextId;
151
+ return baseEntry(id, "tool_call", turnIndex, {
152
+ roundIndex,
153
+ tuiVisible: true,
154
+ displayKind: "tool_call",
155
+ display,
156
+ apiRole: "assistant",
157
+ content: toolCallContent,
158
+ meta,
159
+ });
160
+ }
161
+ export function createToolResult(id, turnIndex, roundIndex, resultContent, opts) {
162
+ const meta = {
163
+ toolCallId: resultContent.toolCallId,
164
+ toolName: resultContent.toolName,
165
+ isError: opts.isError,
166
+ };
167
+ if (opts.contextId !== undefined)
168
+ meta.contextId = opts.contextId;
169
+ if (opts.toolMetadata && Object.keys(opts.toolMetadata).length > 0) {
170
+ meta.toolMetadata = opts.toolMetadata;
171
+ }
172
+ if (opts.previewDim)
173
+ meta.tuiDim = true;
174
+ return baseEntry(id, "tool_result", turnIndex, {
175
+ roundIndex,
176
+ tuiVisible: Boolean(opts.previewText),
177
+ displayKind: opts.previewText ? "tool_result" : null,
178
+ display: opts.previewText ?? "",
179
+ apiRole: "tool_result",
180
+ content: resultContent,
181
+ meta,
182
+ });
183
+ }
184
+ export function createNoReply(id, turnIndex, roundIndex, content, contextId) {
185
+ return baseEntry(id, "no_reply", turnIndex, {
186
+ roundIndex,
187
+ apiRole: "assistant",
188
+ content,
189
+ meta: contextId ? { contextId } : {},
190
+ });
191
+ }
192
+ export function createCompactMarker(id, turnIndex, compactIndex, originalTokens, compactedTokens) {
193
+ return baseEntry(id, "compact_marker", turnIndex, {
194
+ tuiVisible: true,
195
+ displayKind: "compact_mark",
196
+ display: "\u2014 Compacted \u2014",
197
+ meta: { compactIndex, originalTokens, compactedTokens },
198
+ });
199
+ }
200
+ export function createCompactContext(id, turnIndex, content, contextId, compactIndex) {
201
+ return baseEntry(id, "compact_context", turnIndex, {
202
+ apiRole: "user",
203
+ content,
204
+ meta: { contextId, compactIndex },
205
+ });
206
+ }
207
+ export function createSummary(id, turnIndex, display, content, contextId, summarizedEntryIds, summaryDepth) {
208
+ return baseEntry(id, "summary", turnIndex, {
209
+ tuiVisible: true,
210
+ displayKind: "user",
211
+ display,
212
+ apiRole: "user",
213
+ content,
214
+ meta: { contextId, summarizedEntryIds, summaryDepth },
215
+ });
216
+ }
217
+ export function createInterruptionMarker(id, turnIndex, content, terminatedSubAgents) {
218
+ return baseEntry(id, "interruption_marker", turnIndex, {
219
+ tuiVisible: true,
220
+ displayKind: "status",
221
+ display: "[System]: Last turn was interrupted by the user.",
222
+ apiRole: "user",
223
+ content,
224
+ meta: terminatedSubAgents?.length ? { terminatedSubAgents } : {},
225
+ });
226
+ }
227
+ export function createSubAgentStart(id, turnIndex, display, subAgentId, subAgentName, task) {
228
+ return baseEntry(id, "sub_agent_start", turnIndex, {
229
+ tuiVisible: true,
230
+ displayKind: "progress",
231
+ display,
232
+ meta: { subAgentId, subAgentName, task },
233
+ });
234
+ }
235
+ export function createSubAgentToolCall(id, turnIndex, display, subAgentId, subAgentName, toolName, toolCallCount) {
236
+ return baseEntry(id, "sub_agent_tool_call", turnIndex, {
237
+ tuiVisible: true,
238
+ displayKind: "progress",
239
+ display,
240
+ meta: { subAgentId, subAgentName, toolName, toolCallCount },
241
+ });
242
+ }
243
+ export function createSubAgentEnd(id, turnIndex, display, subAgentId, subAgentName, elapsed, toolCallCount) {
244
+ return baseEntry(id, "sub_agent_end", turnIndex, {
245
+ tuiVisible: true,
246
+ displayKind: "progress",
247
+ display,
248
+ meta: { subAgentId, subAgentName, elapsed, toolCallCount },
249
+ });
250
+ }
251
+ export function createStatus(id, turnIndex, display, statusType) {
252
+ return baseEntry(id, "status", turnIndex, {
253
+ tuiVisible: true,
254
+ displayKind: "status",
255
+ display,
256
+ meta: { statusType },
257
+ });
258
+ }
259
+ export function createError(id, turnIndex, display, errorType) {
260
+ return baseEntry(id, "error", turnIndex, {
261
+ tuiVisible: true,
262
+ displayKind: "error",
263
+ display,
264
+ meta: errorType ? { errorType } : {},
265
+ });
266
+ }
267
+ export function createTokenUpdate(id, turnIndex, inputTokens, cacheReadTokens, cacheCreationTokens, totalTokens) {
268
+ const meta = { inputTokens };
269
+ if (cacheReadTokens !== undefined)
270
+ meta.cacheReadTokens = cacheReadTokens;
271
+ if (cacheCreationTokens !== undefined)
272
+ meta.cacheCreationTokens = cacheCreationTokens;
273
+ if (totalTokens !== undefined)
274
+ meta.totalTokens = totalTokens;
275
+ return baseEntry(id, "token_update", turnIndex, { meta });
276
+ }
277
+ export function createAskRequest(id, turnIndex, content, askId, askKind, toolCallId, roundIndex, contextId) {
278
+ const meta = { askId, askKind, toolCallId, roundIndex };
279
+ if (contextId !== undefined)
280
+ meta.contextId = contextId;
281
+ return baseEntry(id, "ask_request", turnIndex, {
282
+ content,
283
+ meta,
284
+ });
285
+ }
286
+ export function createAskResolution(id, turnIndex, content, askId, askKind) {
287
+ return baseEntry(id, "ask_resolution", turnIndex, {
288
+ content,
289
+ meta: { askId, askKind },
290
+ });
291
+ }
292
+ //# sourceMappingURL=log-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-entry.js","sourceRoot":"","sources":["../src/log-entry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Log projection functions — derive TUI entries and API messages from the log.
3
+ *
4
+ * Both real-time conversation and resume use the same projection logic,
5
+ * guaranteeing 100% consistency.
6
+ */
7
+ import type { LogEntry } from "./log-entry.js";
8
+ import type { ConversationEntry } from "./tui/types.js";
9
+ export interface TuiProjectionOptions {
10
+ /** Override the compact fold threshold (default: 3). */
11
+ compactFoldThreshold?: number;
12
+ }
13
+ /**
14
+ * Project log entries into ConversationEntry[] for TUI rendering.
15
+ *
16
+ * Rules:
17
+ * 1. Determine fold boundary based on compact markers
18
+ * 2. Skip: folded entries, tuiVisible===false, discarded, summary entries
19
+ * 3. Map (displayKind, display) → ConversationEntry
20
+ */
21
+ export declare function projectToTuiEntries(entries: LogEntry[], options?: TuiProjectionOptions): ConversationEntry[];
22
+ /**
23
+ * Internal message format consumed by provider adapters.
24
+ * This is the output of the API projection layer.
25
+ */
26
+ export type InternalMessage = Record<string, unknown>;
27
+ export interface ApiProjectionOptions {
28
+ /**
29
+ * Fresh system prompt to use (re-rendered, not from log).
30
+ * If not provided, the system_prompt entry's content is used.
31
+ */
32
+ systemPrompt?: string;
33
+ /**
34
+ * Important log content to inject after system prompt.
35
+ * If not empty, merged into first user message or inserted as standalone.
36
+ */
37
+ importantLog?: string;
38
+ /**
39
+ * AGENTS.md content (global + project) to inject after system prompt.
40
+ * If not empty, injected similarly to importantLog.
41
+ */
42
+ agentsMd?: string;
43
+ /**
44
+ * Resolve an image_ref path to base64 data for API consumption.
45
+ * If not provided, image_ref blocks are passed through as-is.
46
+ */
47
+ resolveImageRef?: (refPath: string) => {
48
+ data: string;
49
+ media_type: string;
50
+ } | null;
51
+ /** Merge consecutive same-role messages for providers that require alternation. */
52
+ requiresAlternatingRoles?: boolean;
53
+ /** Truncate summarize_context tool-call summaries before provider submission. */
54
+ truncateSummarizeToolArgs?: boolean;
55
+ /**
56
+ * show_context annotations: Map from contextId → annotation text.
57
+ * When provided, §{id}§ + annotation is prepended to user message and
58
+ * first tool_result content for each context group.
59
+ */
60
+ showContextAnnotations?: Map<string, string>;
61
+ }
62
+ /**
63
+ * Project log entries into InternalMessage[] for provider consumption.
64
+ *
65
+ * Algorithm:
66
+ * 1. Re-render system prompt (or use log's)
67
+ * 2. Find last compact_marker → API window start
68
+ * 3. Insert compact_context if present
69
+ * 4. Iterate entries, skip: apiRole===null, summarized, discarded, archived with null content
70
+ * 5. Group by roundIndex to build assistant messages
71
+ */
72
+ export declare function projectToApiMessages(entries: LogEntry[], options?: ApiProjectionOptions): InternalMessage[];
73
+ //# sourceMappingURL=log-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-projection.d.ts","sourceRoot":"","sources":["../src/log-projection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAyB,MAAM,gBAAgB,CAAC;AAwB/E,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAgPD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,QAAQ,EAAE,EACnB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,iBAAiB,EAAE,CAmCrB;AAMD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnF,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iFAAiF;IACjF,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,EAAE,EACnB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,eAAe,EAAE,CA4LnB"}