@arts1234567/arc-code 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 (74) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/bin/arc.js +5 -0
  4. package/dist/agent/executor.js +78 -0
  5. package/dist/agent/executor.js.map +1 -0
  6. package/dist/agent/memory.js +57 -0
  7. package/dist/agent/memory.js.map +1 -0
  8. package/dist/agent/orchestrator.js +153 -0
  9. package/dist/agent/orchestrator.js.map +1 -0
  10. package/dist/agent/planner.js +26 -0
  11. package/dist/agent/planner.js.map +1 -0
  12. package/dist/agent/retriever.js +151 -0
  13. package/dist/agent/retriever.js.map +1 -0
  14. package/dist/agent/verifier.js +24 -0
  15. package/dist/agent/verifier.js.map +1 -0
  16. package/dist/cli.js +33 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/config.js +47 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/index.js +12 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/llm/compaction.js +108 -0
  23. package/dist/llm/compaction.js.map +1 -0
  24. package/dist/llm/provider.js +201 -0
  25. package/dist/llm/provider.js.map +1 -0
  26. package/dist/llm/system.js +40 -0
  27. package/dist/llm/system.js.map +1 -0
  28. package/dist/llm/types.js +4 -0
  29. package/dist/llm/types.js.map +1 -0
  30. package/dist/run-interactive.js +22 -0
  31. package/dist/run-interactive.js.map +1 -0
  32. package/dist/run-single.js +72 -0
  33. package/dist/run-single.js.map +1 -0
  34. package/dist/state.js +75 -0
  35. package/dist/state.js.map +1 -0
  36. package/dist/tools/delete.js +63 -0
  37. package/dist/tools/delete.js.map +1 -0
  38. package/dist/tools/edit.js +67 -0
  39. package/dist/tools/edit.js.map +1 -0
  40. package/dist/tools/execute.js +85 -0
  41. package/dist/tools/execute.js.map +1 -0
  42. package/dist/tools/index.js +36 -0
  43. package/dist/tools/index.js.map +1 -0
  44. package/dist/tools/list.js +66 -0
  45. package/dist/tools/list.js.map +1 -0
  46. package/dist/tools/move.js +56 -0
  47. package/dist/tools/move.js.map +1 -0
  48. package/dist/tools/read.js +84 -0
  49. package/dist/tools/read.js.map +1 -0
  50. package/dist/tools/read_image.js +67 -0
  51. package/dist/tools/read_image.js.map +1 -0
  52. package/dist/tools/search.js +177 -0
  53. package/dist/tools/search.js.map +1 -0
  54. package/dist/tools/websearch.js +106 -0
  55. package/dist/tools/websearch.js.map +1 -0
  56. package/dist/tools/write.js +47 -0
  57. package/dist/tools/write.js.map +1 -0
  58. package/dist/ui/ChatWindow.js +143 -0
  59. package/dist/ui/ChatWindow.js.map +1 -0
  60. package/dist/ui/InputBar.js +136 -0
  61. package/dist/ui/InputBar.js.map +1 -0
  62. package/dist/ui/ThinkingIndicator.js +67 -0
  63. package/dist/ui/ThinkingIndicator.js.map +1 -0
  64. package/dist/ui/commands.js +395 -0
  65. package/dist/ui/commands.js.map +1 -0
  66. package/dist/ui/mascot.js +41 -0
  67. package/dist/ui/mascot.js.map +1 -0
  68. package/dist/ui/theme.js +43 -0
  69. package/dist/ui/theme.js.map +1 -0
  70. package/dist/ui/tui.js +297 -0
  71. package/dist/ui/tui.js.map +1 -0
  72. package/dist/ui/words.js +161 -0
  73. package/dist/ui/words.js.map +1 -0
  74. package/package.json +64 -0
@@ -0,0 +1,41 @@
1
+ import React from "react";
2
+ import { Text, Box } from "ink";
3
+ // Four animation frames for the cat mascot.
4
+ const FRAMES = [
5
+ [
6
+ " ╱|、",
7
+ " (˚ˎ 。7",
8
+ " |、˜〵",
9
+ " じしˍ,)ノ",
10
+ ],
11
+ [
12
+ " ╱|、",
13
+ " (˚ˎ °7",
14
+ " |、˜〵",
15
+ " じしˍ,)ノ",
16
+ ],
17
+ [
18
+ " ╱|、",
19
+ " (˚ˎ ─7",
20
+ " |、˜〵",
21
+ " じしˍ,)ノ",
22
+ ],
23
+ [
24
+ " ╱|、",
25
+ " (˚ˎ .7",
26
+ " |、˜〵",
27
+ " じしˍ,)ノ",
28
+ ],
29
+ ];
30
+ const COLORS = {
31
+ body: "#FF6B35",
32
+ bodyDim: "#555555",
33
+ };
34
+ export const MASCOT_NAME = "Arc";
35
+ export const Mascot = ({ frame = 0, dim = false }) => {
36
+ const body = dim ? COLORS.bodyDim : COLORS.body;
37
+ const lines = FRAMES[frame % FRAMES.length];
38
+ return React.createElement(Box, { flexDirection: "column" }, ...lines.map((line, i) => React.createElement(Text, { key: i, color: body }, line)));
39
+ };
40
+ export const MASCOT_TEXT = FRAMES[0].join("\n");
41
+ //# sourceMappingURL=mascot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mascot.js","sourceRoot":"","sources":["../../src/ui/mascot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAOhC,4CAA4C;AAC5C,MAAM,MAAM,GAAe;IACzB;QACE,SAAS;QACT,WAAW;QACX,UAAU;QACV,YAAY;KACb;IACD;QACE,SAAS;QACT,WAAW;QACX,UAAU;QACV,YAAY;KACb;IACD;QACE,SAAS;QACT,WAAW;QACX,UAAU;QACV,YAAY;KACb;IACD;QACE,SAAS;QACT,WAAW;QACX,UAAU;QACV,YAAY;KACb;CACF,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AAEjC,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE,EAAE;IAC1E,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,KAAK,CAAC,aAAa,CACxB,GAAG,EACH,EAAE,aAAa,EAAE,QAAQ,EAAE,EAC3B,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACvB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CACzD,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ // Arc-code Theme
2
+ // Orange color palette inspired by Claude Code's clean terminal look.
3
+ import chalk from "chalk";
4
+ export const theme = {
5
+ // Brand
6
+ brand: chalk.hex("#FF6B35").bold,
7
+ brandSoft: chalk.hex("#FF8C42"),
8
+ brandDim: chalk.hex("#C45528"),
9
+ // Surfaces
10
+ bg: chalk.hex("#1A1A1A"),
11
+ surface: chalk.hex("#2A2A2A"),
12
+ border: chalk.hex("#3A3A3A"),
13
+ borderActive: chalk.hex("#FF6B35"),
14
+ // Text
15
+ text: chalk.hex("#F5F5F5"),
16
+ textDim: chalk.hex("#888888"),
17
+ textMuted: chalk.hex("#666666"),
18
+ // States
19
+ success: chalk.hex("#4CAF50"),
20
+ error: chalk.hex("#F44336"),
21
+ warn: chalk.hex("#FFB300"),
22
+ thinking: chalk.hex("#FF8C42"),
23
+ // Roles
24
+ user: chalk.hex("#FFD180"),
25
+ assistant: chalk.hex("#F5F5F5"),
26
+ tool: chalk.hex("#FF6B35"),
27
+ toolResult: chalk.hex("#B0BEC5"),
28
+ // Accents
29
+ accent: chalk.hex("#FF6B35"),
30
+ glow: chalk.hex("#FFB74D"),
31
+ };
32
+ export const colors = {
33
+ primary: "#FF6B35",
34
+ secondary: "#E85D26",
35
+ bg: "#1A1A1A",
36
+ surface: "#2A2A2A",
37
+ text: "#F5F5F5",
38
+ textDim: "#888888",
39
+ success: "#4CAF50",
40
+ error: "#F44336",
41
+ thinking: "#FF8C42",
42
+ };
43
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,sEAAsE;AAEtE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,QAAQ;IACR,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI;IAChC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAE9B,WAAW;IACX,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC5B,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAElC,OAAO;IACP,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC7B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAE/B,SAAS;IACT,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAE9B,QAAQ;IACR,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC/B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAEhC,UAAU;IACV,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;IAC5B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,EAAE,EAAE,SAAS;IACb,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;CACpB,CAAC"}
package/dist/ui/tui.js ADDED
@@ -0,0 +1,297 @@
1
+ import React, { useEffect, useState, useRef, useCallback } from "react";
2
+ import { Text, Box, useInput } from "ink";
3
+ import { StateManager } from "../state.js";
4
+ import { Orchestrator } from "../agent/orchestrator.js";
5
+ import { Memory } from "../agent/memory.js";
6
+ import { ChatWindow } from "./ChatWindow.js";
7
+ import { ThinkingIndicator } from "./ThinkingIndicator.js";
8
+ import { InputBar } from "./InputBar.js";
9
+ import { tryRunCommand } from "./commands.js";
10
+ let msgCounter = 0;
11
+ const nextId = () => `m${++msgCounter}`;
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ // Startup banner
14
+ // ─────────────────────────────────────────────────────────────────────────────
15
+ function makeBanner(cwd, extra) {
16
+ const cwdLine = cwd.length > 44 ? "…" + cwd.slice(-43) : cwd;
17
+ const msgs = [
18
+ {
19
+ id: nextId(),
20
+ kind: "banner",
21
+ content: [
22
+ "",
23
+ " ╔═══════════════════════════════════════════════════╗",
24
+ " ║ ✦ Arc 3.4 Ultra ✦ by Aarav Labs ║",
25
+ " ║ ║",
26
+ " ║ Context 242K tokens · Output 64K tokens ║",
27
+ " ║ Thinking always on · Tools 10 built-in ║",
28
+ " ║ Type /help for commands or start chatting ║",
29
+ " ╚═══════════════════════════════════════════════════╝",
30
+ "",
31
+ ` cwd ${cwdLine}`,
32
+ "",
33
+ ].join("\n"),
34
+ },
35
+ ];
36
+ if (extra) {
37
+ msgs.push({ id: nextId(), kind: "system", content: extra });
38
+ }
39
+ return msgs;
40
+ }
41
+ // ─────────────────────────────────────────────────────────────────────────────
42
+ // Root TUI
43
+ // ─────────────────────────────────────────────────────────────────────────────
44
+ export const Tui = ({ cwd }) => {
45
+ // Stable singletons.
46
+ const stateRef = useRef(null);
47
+ if (!stateRef.current)
48
+ stateRef.current = new StateManager(cwd);
49
+ const state = stateRef.current;
50
+ const memoryRef = useRef(null);
51
+ if (!memoryRef.current)
52
+ memoryRef.current = new Memory();
53
+ const memory = memoryRef.current;
54
+ // Chat messages — lazy init with banner.
55
+ const [messages, setMessages] = useState(() => makeBanner(cwd));
56
+ const [working, setWorkingState] = useState(false);
57
+ const [workingStatus, setWorkingStatus] = useState("");
58
+ const [iteration, setIteration] = useState(undefined);
59
+ const orchRef = useRef(null);
60
+ // ── Token-batching for smooth streaming ──────────────────────────────────
61
+ // Instead of calling setMessages on every token (~100/sec), we accumulate
62
+ // tokens in plain refs and flush to React state at most every 80ms.
63
+ // This cuts re-renders from ~100/sec → ~12/sec, eliminating flicker.
64
+ const pendingText = useRef("");
65
+ const pendingReasoning = useRef("");
66
+ const flushInterval = useRef(null);
67
+ const flushPending = useCallback(() => {
68
+ const txt = pendingText.current;
69
+ const rsn = pendingReasoning.current;
70
+ if (!txt && !rsn)
71
+ return;
72
+ pendingText.current = "";
73
+ pendingReasoning.current = "";
74
+ setMessages((prev) => {
75
+ let msgs = prev;
76
+ // Flush reasoning
77
+ if (rsn) {
78
+ const last = msgs[msgs.length - 1];
79
+ if (last && last.kind === "reasoning") {
80
+ msgs = [...msgs.slice(0, -1), { ...last, content: last.content + rsn }];
81
+ }
82
+ else {
83
+ msgs = [...msgs, { id: nextId(), kind: "reasoning", content: rsn }];
84
+ }
85
+ }
86
+ // Flush text
87
+ if (txt) {
88
+ const last = msgs[msgs.length - 1];
89
+ if (last && last.kind === "assistant") {
90
+ msgs = [...msgs.slice(0, -1), { ...last, content: last.content + txt }];
91
+ }
92
+ else {
93
+ msgs = [...msgs, { id: nextId(), kind: "assistant", content: txt }];
94
+ }
95
+ }
96
+ return msgs;
97
+ });
98
+ }, []);
99
+ // ── Stable callbacks exposed to command handlers ─────────────────────────
100
+ const addMessage = useCallback((kind, content, meta) => {
101
+ setMessages((prev) => [
102
+ ...prev,
103
+ { id: nextId(), kind: kind, content, meta },
104
+ ]);
105
+ }, []);
106
+ /**
107
+ * Reset the display to a fresh banner.
108
+ * Accepts an optional confirmation string that appears below the banner.
109
+ * Using a single setMessages call avoids React batching races.
110
+ */
111
+ const clearMessages = useCallback((confirmText) => {
112
+ setMessages(makeBanner(cwd, confirmText));
113
+ }, [cwd]);
114
+ const setWorking = useCallback((b, status = "") => {
115
+ setWorkingState(b);
116
+ setWorkingStatus(status);
117
+ }, []);
118
+ const cancelOrchestrator = useCallback(() => {
119
+ if (orchRef.current) {
120
+ orchRef.current.cancel();
121
+ }
122
+ }, []);
123
+ // CommandContext ref — rebuilt each render so commands always get fresh state.
124
+ const cmdCtxRef = useRef(null);
125
+ cmdCtxRef.current = {
126
+ state,
127
+ memory,
128
+ addMessage,
129
+ setWorking,
130
+ clearMessages,
131
+ cancelOrchestrator,
132
+ };
133
+ useEffect(() => {
134
+ memory.load();
135
+ state.refreshKnownFiles();
136
+ }, []);
137
+ // ── Global keyboard shortcuts ─────────────────────────────────────────────
138
+ useInput((input, key) => {
139
+ // Ctrl+C — always exit.
140
+ if (key.ctrl && input === "c") {
141
+ if (orchRef.current)
142
+ orchRef.current.cancel();
143
+ process.exit(0);
144
+ }
145
+ // Escape — cancel current task without exiting.
146
+ if (key.escape && working) {
147
+ if (orchRef.current) {
148
+ orchRef.current.cancel();
149
+ addMessage("system", " ⊘ Task cancelled.");
150
+ }
151
+ }
152
+ });
153
+ // ── Orchestrator event handler ────────────────────────────────────────────
154
+ const onOrchEvent = useCallback((e) => {
155
+ if (e.status !== undefined)
156
+ setWorkingStatus(e.status);
157
+ if (e.iteration !== undefined)
158
+ setIteration(e.iteration);
159
+ switch (e.type) {
160
+ case "text":
161
+ // Buffer — flushed by the interval, not immediately
162
+ pendingText.current += e.content ?? "";
163
+ break;
164
+ case "reasoning":
165
+ pendingReasoning.current += e.content ?? "";
166
+ break;
167
+ case "tool_call":
168
+ setMessages((prev) => [
169
+ ...prev,
170
+ {
171
+ id: nextId(),
172
+ kind: "tool_call",
173
+ content: "",
174
+ meta: e.toolCall?.function.name,
175
+ },
176
+ ]);
177
+ break;
178
+ case "tool_result":
179
+ setMessages((prev) => [
180
+ ...prev,
181
+ {
182
+ id: nextId(),
183
+ kind: "tool_result",
184
+ content: e.toolResult?.content ?? "",
185
+ meta: e.toolResult?.name,
186
+ },
187
+ ]);
188
+ break;
189
+ case "compaction":
190
+ setMessages((prev) => [
191
+ ...prev,
192
+ { id: nextId(), kind: "compaction", content: e.content ?? "" },
193
+ ]);
194
+ break;
195
+ case "error":
196
+ setMessages((prev) => [
197
+ ...prev,
198
+ { id: nextId(), kind: "system", content: `Error: ${e.error}` },
199
+ ]);
200
+ break;
201
+ }
202
+ }, []);
203
+ // ── Submit handler ────────────────────────────────────────────────────────
204
+ const handleSubmit = useCallback(async (prompt) => {
205
+ if (working)
206
+ return;
207
+ // Slash commands are intercepted before the model.
208
+ if (prompt.startsWith("/")) {
209
+ setMessages((prev) => [
210
+ ...prev,
211
+ { id: nextId(), kind: "command", content: prompt },
212
+ ]);
213
+ await tryRunCommand(prompt, cmdCtxRef.current);
214
+ return;
215
+ }
216
+ // Normal message → orchestrator.
217
+ setMessages((m) => [
218
+ ...m,
219
+ { id: nextId(), kind: "user", content: prompt },
220
+ ]);
221
+ setWorkingState(true);
222
+ setWorkingStatus("starting");
223
+ const orch = new Orchestrator({
224
+ state,
225
+ memory,
226
+ onEvent: onOrchEvent,
227
+ });
228
+ orchRef.current = orch;
229
+ // Start batched flush at 80ms — ~12 renders/sec during streaming
230
+ flushInterval.current = setInterval(flushPending, 80);
231
+ try {
232
+ await orch.run(prompt);
233
+ }
234
+ catch (err) {
235
+ setMessages((m) => [
236
+ ...m,
237
+ { id: nextId(), kind: "system", content: `Error: ${err?.message ?? err}` },
238
+ ]);
239
+ }
240
+ finally {
241
+ // Stop flush interval and do one final drain
242
+ if (flushInterval.current) {
243
+ clearInterval(flushInterval.current);
244
+ flushInterval.current = null;
245
+ }
246
+ flushPending();
247
+ setWorkingState(false);
248
+ setWorkingStatus("");
249
+ setIteration(undefined);
250
+ orchRef.current = null;
251
+ }
252
+ }, [working, state, memory, onOrchEvent]);
253
+ // ── Render ────────────────────────────────────────────────────────────────
254
+ return React.createElement(Box, { flexDirection: "column" },
255
+ // Static messages committed to terminal scrollback.
256
+ React.createElement(ChatWindow, { messages }),
257
+ // Live sticky section pinned to bottom.
258
+ React.createElement(Box, { flexDirection: "column" }, React.createElement(StatusBar, { state, working, mode: state.mode }), React.createElement(ThinkingIndicator, {
259
+ active: working,
260
+ status: workingStatus,
261
+ iteration,
262
+ mode: state.mode,
263
+ }), React.createElement(InputBar, {
264
+ onSubmit: handleSubmit,
265
+ disabled: working,
266
+ working,
267
+ mode: state.mode,
268
+ })));
269
+ };
270
+ // ─────────────────────────────────────────────────────────────────────────────
271
+ // Status bar — always visible above the thinking indicator + input
272
+ // ─────────────────────────────────────────────────────────────────────────────
273
+ const StatusBar = ({ state, working, mode = "build", }) => {
274
+ const pct = state.contextPercent;
275
+ const pctStr = pct.toFixed(1) + "%";
276
+ const barLen = 12;
277
+ const filled = Math.round((pct / 100) * barLen);
278
+ const miniBar = "▰".repeat(filled) + "▱".repeat(barLen - filled);
279
+ const ctxColor = pct > 80 ? "#F44336" : pct > 60 ? "#FFB300" : "#4CAF50";
280
+ const brandColor = mode === "plan" ? "#00E5FF" : "#FF6B35";
281
+ const workingColor = mode === "plan" ? "#84FFFF" : "#FF8C42";
282
+ const label = mode === "plan" ? "✦ Arc 3.4 [Plan]" : "✦ Arc 3.4 [Build]";
283
+ return React.createElement(Box, {
284
+ borderStyle: "single",
285
+ borderColor: "#1E1E1E",
286
+ paddingX: 1,
287
+ flexDirection: "row",
288
+ justifyContent: "space-between",
289
+ },
290
+ // Left: brand + cwd
291
+ React.createElement(Box, { flexDirection: "row", gap: 1 }, React.createElement(Text, { color: brandColor, bold: true }, label), React.createElement(Text, { color: "#2A2A2A" }, "│"), React.createElement(Text, { color: "#444", dimColor: true }, state.cwd.length > 40
292
+ ? "…" + state.cwd.slice(-39)
293
+ : state.cwd)),
294
+ // Right: status + mini context bar
295
+ React.createElement(Box, { flexDirection: "row", gap: 1 }, React.createElement(Text, { color: working ? workingColor : "#4CAF50" }, working ? "● working" : "○ idle"), React.createElement(Text, { color: "#2A2A2A" }, "│"), React.createElement(Text, { color: ctxColor }, miniBar), React.createElement(Text, { color: "#444", dimColor: true }, ` ctx ${pctStr}`)));
296
+ };
297
+ //# sourceMappingURL=tui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/ui/tui.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ // Arc-code ~150 rotating "thinking" words
2
+ // Cycled through while the model is reasoning, like Claude Code.
3
+ export const THINKING_WORDS = [
4
+ "thinking",
5
+ "cooking",
6
+ "flabbergasting",
7
+ "pondering",
8
+ "reflecting",
9
+ "analyzing",
10
+ "computing",
11
+ "generating",
12
+ "crafting",
13
+ "building",
14
+ "constructing",
15
+ "designing",
16
+ "architecting",
17
+ "planning",
18
+ "strategizing",
19
+ "calculating",
20
+ "synthesizing",
21
+ "composing",
22
+ "formulating",
23
+ "deriving",
24
+ "deducing",
25
+ "reasoning",
26
+ "considering",
27
+ "examining",
28
+ "inspecting",
29
+ "investigating",
30
+ "exploring",
31
+ "searching",
32
+ "discovering",
33
+ "solving",
34
+ "deciphering",
35
+ "decoding",
36
+ "interpreting",
37
+ "translating",
38
+ "converting",
39
+ "transforming",
40
+ "evolving",
41
+ "iterating",
42
+ "optimizing",
43
+ "refining",
44
+ "polishing",
45
+ "perfecting",
46
+ "enhancing",
47
+ "improving",
48
+ "upgrading",
49
+ "debugging",
50
+ "testing",
51
+ "validating",
52
+ "verifying",
53
+ "reviewing",
54
+ "auditing",
55
+ "scanning",
56
+ "monitoring",
57
+ "observing",
58
+ "studying",
59
+ "learning",
60
+ "understanding",
61
+ "comprehending",
62
+ "grasping",
63
+ "digesting",
64
+ "absorbing",
65
+ "ingesting",
66
+ "processing",
67
+ "compiling",
68
+ "assembling",
69
+ "integrating",
70
+ "merging",
71
+ "combining",
72
+ "blending",
73
+ "weaving",
74
+ "knitting",
75
+ "stitching",
76
+ "connecting",
77
+ "linking",
78
+ "relating",
79
+ "correlating",
80
+ "associating",
81
+ "mapping",
82
+ "charting",
83
+ "plotting",
84
+ "diagramming",
85
+ "sketching",
86
+ "drafting",
87
+ "outlining",
88
+ "structuring",
89
+ "organizing",
90
+ "arranging",
91
+ "ordering",
92
+ "sorting",
93
+ "categorizing",
94
+ "classifying",
95
+ "grouping",
96
+ "bundling",
97
+ "packaging",
98
+ "wrapping",
99
+ "encapsulating",
100
+ "abstracting",
101
+ "simplifying",
102
+ "clarifying",
103
+ "illuminating",
104
+ "explaining",
105
+ "elaborating",
106
+ "detailing",
107
+ "specifying",
108
+ "particularizing",
109
+ "individualizing",
110
+ "customizing",
111
+ "personalizing",
112
+ "tailoring",
113
+ "fitting",
114
+ "matching",
115
+ "aligning",
116
+ "calibrating",
117
+ "tuning",
118
+ "adjusting",
119
+ "configuring",
120
+ "setting",
121
+ "establishing",
122
+ "founding",
123
+ "creating",
124
+ "producing",
125
+ "making",
126
+ "performing",
127
+ "executing",
128
+ "running",
129
+ "operating",
130
+ "functioning",
131
+ "working",
132
+ "laboring",
133
+ "toiling",
134
+ "striving",
135
+ "endeavoring",
136
+ "scheming",
137
+ "contriving",
138
+ "schlepping",
139
+ "tinkering",
140
+ "fiddling",
141
+ "mulling",
142
+ "ruminating",
143
+ "deliberating",
144
+ "meditating",
145
+ "contemplating",
146
+ "brooding",
147
+ "musing",
148
+ "noodling",
149
+ "brainstorming",
150
+ "ideating",
151
+ "fermenting",
152
+ "brewing",
153
+ "stewing",
154
+ "simmering",
155
+ "hashing",
156
+ "chewing",
157
+ ];
158
+ export const getWord = (i) => {
159
+ return THINKING_WORDS[i % THINKING_WORDS.length] + "...";
160
+ };
161
+ //# sourceMappingURL=words.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"words.js","sourceRoot":"","sources":["../../src/ui/words.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,iEAAiE;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,UAAU;IACV,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,cAAc;IACd,WAAW;IACX,cAAc;IACd,UAAU;IACV,cAAc;IACd,aAAa;IACb,cAAc;IACd,WAAW;IACX,aAAa;IACb,UAAU;IACV,UAAU;IACV,WAAW;IACX,aAAa;IACb,WAAW;IACX,YAAY;IACZ,eAAe;IACf,WAAW;IACX,WAAW;IACX,aAAa;IACb,SAAS;IACT,aAAa;IACb,UAAU;IACV,cAAc;IACd,aAAa;IACb,YAAY;IACZ,cAAc;IACd,UAAU;IACV,WAAW;IACX,YAAY;IACZ,UAAU;IACV,WAAW;IACX,YAAY;IACZ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,SAAS;IACT,YAAY;IACZ,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,YAAY;IACZ,WAAW;IACX,UAAU;IACV,UAAU;IACV,eAAe;IACf,eAAe;IACf,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,aAAa;IACb,SAAS;IACT,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,SAAS;IACT,UAAU;IACV,aAAa;IACb,aAAa;IACb,SAAS;IACT,UAAU;IACV,UAAU;IACV,aAAa;IACb,WAAW;IACX,UAAU;IACV,WAAW;IACX,aAAa;IACb,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,cAAc;IACd,aAAa;IACb,UAAU;IACV,UAAU;IACV,WAAW;IACX,UAAU;IACV,eAAe;IACf,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,aAAa;IACb,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;IACV,aAAa;IACb,QAAQ;IACR,WAAW;IACX,aAAa;IACb,SAAS;IACT,cAAc;IACd,UAAU;IACV,UAAU;IACV,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,SAAS;IACT,WAAW;IACX,aAAa;IACb,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,aAAa;IACb,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,eAAe;IACf,UAAU;IACV,QAAQ;IACR,UAAU;IACV,eAAe;IACf,UAAU;IACV,YAAY;IACZ,SAAS;IACT,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE;IAC3C,OAAO,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC3D,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@arts1234567/arc-code",
3
+ "version": "0.1.0",
4
+ "description": "Arc-code - AI-powered coding CLI with Arc 3.4 Ultra",
5
+ "type": "module",
6
+ "bin": {
7
+ "arc": "./bin/arc.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc --watch",
13
+ "start": "node bin/arc.js",
14
+ "typecheck": "tsc --noEmit",
15
+ "test:smoke": "tsx test/smoke.ts",
16
+ "test:tui": "tsx test/tui-smoke.ts",
17
+ "test": "npm run test:smoke && npm run test:tui",
18
+ "prepublishOnly": "npm run build"
19
+ },
20
+ "engines": {
21
+ "node": ">=18"
22
+ },
23
+ "files": [
24
+ "bin",
25
+ "dist",
26
+ "README.md",
27
+ "LICENSE"
28
+ ],
29
+ "keywords": [
30
+ "cli",
31
+ "ai",
32
+ "coding",
33
+ "agent",
34
+ "assistant",
35
+ "arc"
36
+ ],
37
+ "license": "MIT",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "https://github.com/artsblr-bot/arc-code.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/artsblr-bot/arc-code/issues"
44
+ },
45
+ "homepage": "https://github.com/artsblr-bot/arc-code#readme",
46
+ "dependencies": {
47
+ "chalk": "^5.3.0",
48
+ "cli-spinners": "^2.9.2",
49
+ "commander": "^12.1.0",
50
+ "glob": "^10.4.5",
51
+ "ink": "^5.0.1",
52
+ "ink-spinner": "^5.0.0",
53
+ "openai": "^4.79.0",
54
+ "react": "^18.3.1",
55
+ "tiktoken": "^1.0.21"
56
+ },
57
+ "devDependencies": {
58
+ "@types/node": "^22.10.2",
59
+ "@types/react": "^18.3.18",
60
+ "ink-testing-library": "^4.0.0",
61
+ "tsx": "^4.22.4",
62
+ "typescript": "^5.7.2"
63
+ }
64
+ }