neoctl 0.2.11 → 0.2.13

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 (82) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.js +0 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/repl/index.js +3130 -314
  5. package/dist/repl/index.js.map +1 -1
  6. package/dist/session/tool-result-memory.js +58 -0
  7. package/dist/session/tool-result-memory.js.map +1 -1
  8. package/dist/tools/builtins/image-note-tool.js +1 -5
  9. package/dist/tools/builtins/image-note-tool.js.map +1 -1
  10. package/dist/web/html.js +8 -14
  11. package/dist/web/html.js.map +1 -1
  12. package/dist/web/index.d.ts +0 -5
  13. package/dist/web/index.js +5 -41
  14. package/dist/web/index.js.map +1 -1
  15. package/package.json +3 -1
  16. package/scripts/install-ripgrep.cjs +196 -196
  17. package/scripts/release-local.mjs +148 -0
  18. package/vendor/ripgrep/darwin-arm64/COPYING +3 -3
  19. package/vendor/ripgrep/darwin-arm64/LICENSE-MIT +21 -21
  20. package/vendor/ripgrep/darwin-arm64/UNLICENSE +24 -24
  21. package/vendor/ripgrep/darwin-arm64/manifest.json +7 -7
  22. package/vendor/ripgrep/darwin-x64/COPYING +3 -3
  23. package/vendor/ripgrep/darwin-x64/LICENSE-MIT +21 -21
  24. package/vendor/ripgrep/darwin-x64/UNLICENSE +24 -24
  25. package/vendor/ripgrep/darwin-x64/manifest.json +7 -7
  26. package/vendor/ripgrep/linux-arm64/COPYING +3 -3
  27. package/vendor/ripgrep/linux-arm64/LICENSE-MIT +21 -21
  28. package/vendor/ripgrep/linux-arm64/UNLICENSE +24 -24
  29. package/vendor/ripgrep/linux-arm64/manifest.json +7 -7
  30. package/vendor/ripgrep/linux-x64/COPYING +3 -3
  31. package/vendor/ripgrep/linux-x64/LICENSE-MIT +21 -21
  32. package/vendor/ripgrep/linux-x64/UNLICENSE +24 -24
  33. package/vendor/ripgrep/linux-x64/manifest.json +7 -7
  34. package/vendor/ripgrep/win32-arm64/manifest.json +7 -7
  35. package/dist/repl/browser.d.ts +0 -232
  36. package/dist/repl/browser.js +0 -156
  37. package/dist/repl/browser.js.map +0 -1
  38. package/dist/repl/env-file.d.ts +0 -4
  39. package/dist/repl/env-file.js +0 -97
  40. package/dist/repl/env-file.js.map +0 -1
  41. package/dist/repl/foreground-exec.d.ts +0 -10
  42. package/dist/repl/foreground-exec.js +0 -34
  43. package/dist/repl/foreground-exec.js.map +0 -1
  44. package/dist/repl/login-view.d.ts +0 -75
  45. package/dist/repl/login-view.js +0 -38
  46. package/dist/repl/login-view.js.map +0 -1
  47. package/dist/repl/login.d.ts +0 -14
  48. package/dist/repl/login.js +0 -165
  49. package/dist/repl/login.js.map +0 -1
  50. package/dist/repl/message-rendering.d.ts +0 -99
  51. package/dist/repl/message-rendering.js +0 -476
  52. package/dist/repl/message-rendering.js.map +0 -1
  53. package/dist/repl/prompt-payload.d.ts +0 -9
  54. package/dist/repl/prompt-payload.js +0 -64
  55. package/dist/repl/prompt-payload.js.map +0 -1
  56. package/dist/repl/prompt-view.d.ts +0 -235
  57. package/dist/repl/prompt-view.js +0 -184
  58. package/dist/repl/prompt-view.js.map +0 -1
  59. package/dist/repl/repl-types.d.ts +0 -88
  60. package/dist/repl/repl-types.js +0 -2
  61. package/dist/repl/repl-types.js.map +0 -1
  62. package/dist/repl/runtime.d.ts +0 -33
  63. package/dist/repl/runtime.js +0 -202
  64. package/dist/repl/runtime.js.map +0 -1
  65. package/dist/repl/slash-completion.d.ts +0 -28
  66. package/dist/repl/slash-completion.js +0 -287
  67. package/dist/repl/slash-completion.js.map +0 -1
  68. package/dist/repl/status-panel.d.ts +0 -234
  69. package/dist/repl/status-panel.js +0 -509
  70. package/dist/repl/status-panel.js.map +0 -1
  71. package/dist/repl/terminal.d.ts +0 -19
  72. package/dist/repl/terminal.js +0 -81
  73. package/dist/repl/terminal.js.map +0 -1
  74. package/dist/repl/tool-rendering.d.ts +0 -6
  75. package/dist/repl/tool-rendering.js +0 -502
  76. package/dist/repl/tool-rendering.js.map +0 -1
  77. package/dist/repl/usage.d.ts +0 -17
  78. package/dist/repl/usage.js +0 -57
  79. package/dist/repl/usage.js.map +0 -1
  80. package/dist/tips.d.ts +0 -10
  81. package/dist/tips.js +0 -168
  82. package/dist/tips.js.map +0 -1
@@ -1,156 +0,0 @@
1
- import React from "react";
2
- import { Box, Text } from "ink";
3
- import stripAnsi from "strip-ansi";
4
- const e = React.createElement;
5
- export function pagedPageCount(state) {
6
- return Math.max(1, Math.ceil(state.items.length / state.pageSize));
7
- }
8
- export function pagedPageItems(state) {
9
- const start = state.pageIndex * state.pageSize;
10
- return state.items.slice(start, start + state.pageSize);
11
- }
12
- export function pagedAbsoluteIndex(state) {
13
- return state.pageIndex * state.pageSize + state.selectedIndex;
14
- }
15
- export function movePagedSelection(state, delta) {
16
- const pageLength = pagedPageItems(state).length;
17
- if (pageLength <= 0)
18
- return state;
19
- const selectedIndex = (state.selectedIndex + delta + pageLength) % pageLength;
20
- return { ...state, selectedIndex };
21
- }
22
- export function movePagedPage(state, delta) {
23
- const pageCount = pagedPageCount(state);
24
- if (pageCount <= 1)
25
- return state;
26
- const pageIndex = (state.pageIndex + delta + pageCount) % pageCount;
27
- const pageLength = state.items.slice(pageIndex * state.pageSize, pageIndex * state.pageSize + state.pageSize).length;
28
- return { ...state, pageIndex, selectedIndex: Math.min(state.selectedIndex, Math.max(0, pageLength - 1)) };
29
- }
30
- export function sessionsPageItems(state) {
31
- return pagedPageItems(state);
32
- }
33
- export function sessionAbsoluteIndex(state) {
34
- return pagedAbsoluteIndex(state);
35
- }
36
- export function moveSessionsSelection(state, delta) {
37
- return movePagedSelection(state, delta);
38
- }
39
- export function moveSessionsPage(state, delta) {
40
- return movePagedPage(state, delta);
41
- }
42
- export function sessionsBrowserViewHeight(state) {
43
- return sessionsPageItems(state).length + 3;
44
- }
45
- export function skillsBrowserViewHeight(state) {
46
- return pagedPageItems(state).length + 3;
47
- }
48
- export function secretsBrowserViewHeight(state) {
49
- return pagedPageItems(state).length + 3;
50
- }
51
- export function SessionsBrowser({ state, width }) {
52
- const pageCount = pagedPageCount(state);
53
- const pageItems = sessionsPageItems(state);
54
- const showPagination = pageCount > 1;
55
- const contentWidth = Math.max(20, width);
56
- const header = showPagination
57
- ? `Saved sessions (${state.sessions.length}) · page ${state.pageIndex + 1}/${pageCount}`
58
- : `Saved sessions (${state.sessions.length})`;
59
- const footer = showPagination
60
- ? "arrows select · PgUp/PgDn page · Enter resume · d/Delete remove · Esc close"
61
- : "arrows select · Enter resume · d/Delete remove · Esc close";
62
- return e(Box, { flexDirection: "column", marginTop: 1 }, e(Text, { color: "cyan", bold: true }, fitToWidth(header, contentWidth)), ...pageItems.map((session, index) => {
63
- const selected = index === state.selectedIndex;
64
- const absoluteIndex = state.pageIndex * state.pageSize + index;
65
- const row = formatSessionBrowserRow(session, absoluteIndex, contentWidth, state.runningSessionIds.includes(session.sessionId));
66
- return e(Text, { key: session.sessionId, color: "white" }, e(Text, {
67
- color: selected ? "black" : "white",
68
- backgroundColor: selected ? "cyan" : undefined,
69
- }, row.numberPrefix), row.rest);
70
- }), e(Text, { color: "gray" }, fitToWidth(footer, contentWidth)));
71
- }
72
- export function SkillsBrowser({ state, width }) {
73
- const pageCount = pagedPageCount(state);
74
- const pageItems = pagedPageItems(state);
75
- const showPagination = pageCount > 1;
76
- const contentWidth = Math.max(20, width);
77
- const header = showPagination
78
- ? `Skills (${state.skills.length}) · page ${state.pageIndex + 1}/${pageCount}`
79
- : `Skills (${state.skills.length})`;
80
- const footer = showPagination
81
- ? "arrows select · PgUp/PgDn page · Enter details · i invoke · a import · d/Delete remove · Esc close"
82
- : "arrows select · Enter details · i invoke · a import · d/Delete remove · Esc close";
83
- const nameWidth = Math.min(28, Math.max(...pageItems.map((skill) => skill.name.length)));
84
- return e(Box, { flexDirection: "column", marginTop: 1 }, e(Text, { color: "cyan", bold: true }, fitToWidth(header, contentWidth)), ...pageItems.map((skill, index) => {
85
- const selected = index === state.selectedIndex;
86
- const absoluteIndex = state.pageIndex * state.pageSize + index;
87
- const prefix = `${absoluteIndex + 1}.`.padStart(String(state.skills.length).length + 1);
88
- const tags = skill.tags?.length ? ` [${skill.tags.join(",")}]` : "";
89
- const execution = skill.execution ? ` (${skill.execution})` : "";
90
- const restWidth = Math.max(0, contentWidth - prefix.length - nameWidth - 4);
91
- const rest = fitToWidth(`${skill.description}${execution}${tags}`, restWidth);
92
- return e(Text, { key: skill.name, color: "white" }, e(Text, { color: selected ? "black" : "white", backgroundColor: selected ? "cyan" : undefined }, prefix), e(Text, { color: "gray" }, " "), e(Text, { color: "cyan" }, fitToWidth(skill.name, nameWidth).padEnd(nameWidth)), e(Text, { color: "gray" }, " "), e(Text, { color: selected ? "white" : "gray" }, rest));
93
- }), e(Text, { color: "gray" }, fitToWidth(footer, contentWidth)));
94
- }
95
- export function SecretsBrowser({ state, width }) {
96
- const pageCount = pagedPageCount(state);
97
- const pageItems = pagedPageItems(state);
98
- const showPagination = pageCount > 1;
99
- const contentWidth = Math.max(20, width);
100
- const header = showPagination
101
- ? `Secrets (${state.secrets.length}) · page ${state.pageIndex + 1}/${pageCount}`
102
- : `Secrets (${state.secrets.length})`;
103
- const footer = showPagination
104
- ? "arrows select · PgUp/PgDn page · Enter info · s set · r rename · a add · e empty · d/Delete remove · Esc close"
105
- : "arrows select · Enter info · s set · r rename · a add · e empty · d/Delete remove · Esc close";
106
- const keyWidth = Math.min(32, Math.max(...pageItems.map((secret) => secret.key.length)));
107
- return e(Box, { flexDirection: "column", marginTop: 1 }, e(Text, { color: "cyan", bold: true }, fitToWidth(header, contentWidth)), ...pageItems.map((secret, index) => {
108
- const selected = index === state.selectedIndex;
109
- const absoluteIndex = state.pageIndex * state.pageSize + index;
110
- const prefix = `${absoluteIndex + 1}.`.padStart(String(state.secrets.length).length + 1);
111
- const reason = secret.requestReason ? ` reason=${JSON.stringify(secret.requestReason)}` : "";
112
- const restWidth = Math.max(0, contentWidth - prefix.length - keyWidth - 4);
113
- const rest = fitToWidth(`${secret.status} · length=${secret.length}${reason}`, restWidth);
114
- return e(Text, { key: secret.key, color: "white" }, e(Text, { color: selected ? "black" : "white", backgroundColor: selected ? "cyan" : undefined }, prefix), e(Text, { color: "gray" }, " "), e(Text, { color: secret.status === "set" ? "green" : "yellow" }, fitToWidth(secret.key, keyWidth).padEnd(keyWidth)), e(Text, { color: "gray" }, " "), e(Text, { color: selected ? "white" : "gray" }, rest));
115
- }), e(Text, { color: "gray" }, fitToWidth(footer, contentWidth)));
116
- }
117
- export function formatResume(snapshot) {
118
- return `resumed session ${snapshot.sessionId}: ${snapshot.resumedMessages} messages from ${snapshot.transcriptPath}`;
119
- }
120
- function formatSessionBrowserRow(session, absoluteIndex, width, running = false) {
121
- const numberPrefix = `${absoluteIndex + 1}.`.padStart(4);
122
- const title = session.title?.trim() || "(untitled)";
123
- const runningTag = running ? " · running" : "";
124
- const updated = session.updatedAt ? ` · ${formatSessionTimestamp(session.updatedAt)}` : "";
125
- const messages = ` · ${session.messages} messages`;
126
- const fixedParts = `${numberPrefix} ${runningTag}${updated}${messages}`;
127
- const idBudget = Math.max(12, Math.min(32, Math.floor(width * 0.28)));
128
- const id = truncateMiddle(session.sessionId, idBudget);
129
- const titleBudget = Math.max(8, width - fixedParts.length - id.length - 5);
130
- const row = fitToWidth(`${numberPrefix} ${truncateMiddle(title, titleBudget)} · ${id}${runningTag}${updated}${messages}`, width);
131
- return { numberPrefix, rest: row.slice(numberPrefix.length) };
132
- }
133
- function formatSessionTimestamp(value) {
134
- const date = new Date(value);
135
- if (Number.isNaN(date.getTime()))
136
- return value;
137
- return date.toISOString().replace("T", " ").replace(/\.\d{3}Z$/, "Z");
138
- }
139
- function fitToWidth(value, width) {
140
- const stripped = stripAnsi(value);
141
- if (stripped.length === width)
142
- return stripped;
143
- if (stripped.length > width)
144
- return stripped.slice(0, width);
145
- return stripped.padEnd(width, " ");
146
- }
147
- function truncateMiddle(value, maxLength) {
148
- if (value.length <= maxLength)
149
- return value;
150
- if (maxLength <= 3)
151
- return value.slice(0, maxLength);
152
- const left = Math.ceil((maxLength - 3) / 2);
153
- const right = Math.floor((maxLength - 3) / 2);
154
- return `${value.slice(0, left)}...${value.slice(value.length - right)}`;
155
- }
156
- //# sourceMappingURL=browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/repl/browser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function writeEnvUpdates(envPath: string, updates: Record<string, string | undefined>, removeKeys?: string[]): Promise<void>;
2
- export declare function applyEnvUpdatesToProcess(updates: Record<string, string | undefined>): void;
3
- export declare function updateEnvContent(content: string, updates: Record<string, string | undefined>, removeKeys?: string[]): string;
4
- export declare function parseEnvFileSafe(envPath: string): Record<string, string>;
@@ -1,97 +0,0 @@
1
- import fs from "node:fs/promises";
2
- import { existsSync, readFileSync } from "node:fs";
3
- import path from "node:path";
4
- export async function writeEnvUpdates(envPath, updates, removeKeys = []) {
5
- await fs.mkdir(path.dirname(envPath), { recursive: true });
6
- const existing = existsSync(envPath) ? readFileSync(envPath, "utf8") : "";
7
- const next = updateEnvContent(existing, updates, removeKeys);
8
- await fs.writeFile(envPath, next, "utf8");
9
- }
10
- export function applyEnvUpdatesToProcess(updates) {
11
- for (const [key, value] of Object.entries(updates)) {
12
- if (value === undefined)
13
- delete process.env[key];
14
- else
15
- process.env[key] = value;
16
- }
17
- }
18
- export function updateEnvContent(content, updates, removeKeys = []) {
19
- const keys = new Set(Object.keys(updates));
20
- const removals = new Set(removeKeys);
21
- const seen = new Set();
22
- const lines = content ? content.split(/\r?\n/) : [];
23
- const updatedLines = lines.map((line) => {
24
- const parsed = parseEnvLine(line);
25
- if (!parsed)
26
- return line;
27
- if (removals.has(parsed.key) && !keys.has(parsed.key))
28
- return undefined;
29
- if (!keys.has(parsed.key))
30
- return line;
31
- seen.add(parsed.key);
32
- const value = updates[parsed.key];
33
- if (value === undefined)
34
- return undefined;
35
- return `${parsed.key}=${quoteEnvValue(value)}`;
36
- }).filter((line) => line !== undefined);
37
- const missing = Object.entries(updates).filter((entry) => !seen.has(entry[0]) && entry[1] !== undefined);
38
- if (missing.length > 0) {
39
- const grouped = groupLoginEnvEntries(missing);
40
- appendEnvGroup(updatedLines, "# Neo active provider", grouped.active);
41
- appendEnvGroup(updatedLines, "# OpenAI provider settings", grouped.openai);
42
- appendEnvGroup(updatedLines, "# Anthropic provider settings", grouped.anthropic);
43
- appendEnvGroup(updatedLines, "# Shared model runtime settings", grouped.shared);
44
- }
45
- return `${updatedLines.join("\n").replace(/\n*$/u, "")}\n`;
46
- }
47
- function groupLoginEnvEntries(entries) {
48
- return {
49
- active: entries.filter(([key]) => key === "MODEL_PROVIDER"),
50
- openai: entries.filter(([key]) => key.startsWith("OPENAI_")),
51
- anthropic: entries.filter(([key]) => key.startsWith("ANTHROPIC_")),
52
- shared: entries.filter(([key]) => key.startsWith("MODEL_") && key !== "MODEL_PROVIDER"),
53
- };
54
- }
55
- function appendEnvGroup(lines, header, entries) {
56
- if (entries.length === 0)
57
- return;
58
- if (lines.length > 0 && lines[lines.length - 1]?.trim())
59
- lines.push("");
60
- lines.push(header);
61
- for (const [key, value] of entries)
62
- lines.push(`${key}=${quoteEnvValue(value)}`);
63
- }
64
- export function parseEnvFileSafe(envPath) {
65
- if (!existsSync(envPath))
66
- return {};
67
- const env = {};
68
- for (const line of readFileSync(envPath, "utf8").split(/\r?\n/)) {
69
- const parsed = parseEnvLine(line);
70
- if (parsed)
71
- env[parsed.key] = stripEnvQuotes(parsed.value.trim());
72
- }
73
- return env;
74
- }
75
- function parseEnvLine(line) {
76
- const trimmed = line.trim();
77
- if (!trimmed || trimmed.startsWith("#"))
78
- return undefined;
79
- const separator = trimmed.indexOf("=");
80
- if (separator <= 0)
81
- return undefined;
82
- const key = trimmed.slice(0, separator).trim();
83
- if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key))
84
- return undefined;
85
- return { key, value: trimmed.slice(separator + 1) };
86
- }
87
- function quoteEnvValue(value) {
88
- if (/^[A-Za-z0-9_./:@+-]*$/.test(value))
89
- return value;
90
- return JSON.stringify(value);
91
- }
92
- function stripEnvQuotes(value) {
93
- if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'")))
94
- return value.slice(1, -1);
95
- return value;
96
- }
97
- //# sourceMappingURL=env-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../src/repl/env-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,OAA2C,EAAE,aAAuB,EAAE;IAC3H,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA2C;IAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;YAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAA2C,EAAE,aAAuB,EAAE;IACtH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACpI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,cAAc,CAAC,YAAY,EAAE,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtE,cAAc,CAAC,YAAY,EAAE,4BAA4B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,cAAc,CAAC,YAAY,EAAE,+BAA+B,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACjF,cAAc,CAAC,YAAY,EAAE,iCAAiC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgC;IAC5D,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,gBAAgB,CAAC;QAC3D,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5D,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,gBAAgB,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAe,EAAE,MAAc,EAAE,OAAgC;IACvF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChI,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { ForegroundExecDetachHandle, ForegroundExecDetachRegistry } from "../tools/builtins/exec-tool.js";
2
- export declare class ReplForegroundExecDetachRegistry implements ForegroundExecDetachRegistry {
3
- private handle?;
4
- private readonly subscribers;
5
- set(handle: ForegroundExecDetachHandle): () => void;
6
- current(): ForegroundExecDetachHandle | undefined;
7
- subscribe(listener: () => void): () => void;
8
- detachCurrent(): ReturnType<ForegroundExecDetachHandle["detach"]>;
9
- private notify;
10
- }
@@ -1,34 +0,0 @@
1
- export class ReplForegroundExecDetachRegistry {
2
- handle;
3
- subscribers = new Set();
4
- set(handle) {
5
- this.handle = handle;
6
- this.notify();
7
- return () => {
8
- if (this.handle === handle) {
9
- this.handle = undefined;
10
- this.notify();
11
- }
12
- };
13
- }
14
- current() {
15
- return this.handle;
16
- }
17
- subscribe(listener) {
18
- this.subscribers.add(listener);
19
- return () => {
20
- this.subscribers.delete(listener);
21
- };
22
- }
23
- detachCurrent() {
24
- const handle = this.handle;
25
- if (!handle)
26
- return { ok: false, message: "No foreground exec command is currently running" };
27
- return handle.detach();
28
- }
29
- notify() {
30
- for (const listener of this.subscribers)
31
- listener();
32
- }
33
- }
34
- //# sourceMappingURL=foreground-exec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"foreground-exec.js","sourceRoot":"","sources":["../../src/repl/foreground-exec.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gCAAgC;IACnC,MAAM,CAA8B;IAC3B,WAAW,GAAG,IAAI,GAAG,EAAc,CAAC;IAErD,GAAG,CAAC,MAAkC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,GAAG,EAAE;YACV,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,QAAoB;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;QAC9F,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAEO,MAAM;QACZ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW;YAAE,QAAQ,EAAE,CAAC;IACtD,CAAC;CACF"}
@@ -1,75 +0,0 @@
1
- import React from "react";
2
- import type { LoginFormState } from "./repl-types.js";
3
- export declare function loginFormViewHeight(state: LoginFormState): number;
4
- export declare function LoginFormView({ state, width }: {
5
- state: LoginFormState;
6
- width: number;
7
- }): React.FunctionComponentElement<{
8
- readonly position?: "absolute" | "relative" | undefined;
9
- readonly columnGap?: number | undefined;
10
- readonly rowGap?: number | undefined;
11
- readonly gap?: number | undefined;
12
- readonly margin?: number | undefined;
13
- readonly marginX?: number | undefined;
14
- readonly marginY?: number | undefined;
15
- readonly marginTop?: number | undefined;
16
- readonly marginBottom?: number | undefined;
17
- readonly marginLeft?: number | undefined;
18
- readonly marginRight?: number | undefined;
19
- readonly padding?: number | undefined;
20
- readonly paddingX?: number | undefined;
21
- readonly paddingY?: number | undefined;
22
- readonly paddingTop?: number | undefined;
23
- readonly paddingBottom?: number | undefined;
24
- readonly paddingLeft?: number | undefined;
25
- readonly paddingRight?: number | undefined;
26
- readonly flexGrow?: number | undefined;
27
- readonly flexShrink?: number | undefined;
28
- readonly flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
29
- readonly flexBasis?: number | string | undefined;
30
- readonly flexWrap?: "nowrap" | "wrap" | "wrap-reverse" | undefined;
31
- readonly alignItems?: "flex-start" | "center" | "flex-end" | "stretch" | undefined;
32
- readonly alignSelf?: "flex-start" | "center" | "flex-end" | "auto" | undefined;
33
- readonly justifyContent?: "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | "center" | undefined;
34
- readonly width?: number | string | undefined;
35
- readonly height?: number | string | undefined;
36
- readonly minWidth?: number | string | undefined;
37
- readonly minHeight?: number | string | undefined;
38
- readonly display?: "flex" | "none" | undefined;
39
- readonly borderStyle?: (keyof import("cli-boxes").Boxes | import("cli-boxes").BoxStyle) | undefined;
40
- readonly borderTop?: boolean | undefined;
41
- readonly borderBottom?: boolean | undefined;
42
- readonly borderLeft?: boolean | undefined;
43
- readonly borderRight?: boolean | undefined;
44
- readonly borderColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
45
- readonly borderTopColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
46
- readonly borderBottomColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
47
- readonly borderLeftColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
48
- readonly borderRightColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
49
- readonly borderDimColor?: boolean | undefined;
50
- readonly borderTopDimColor?: boolean | undefined;
51
- readonly borderBottomDimColor?: boolean | undefined;
52
- readonly borderLeftDimColor?: boolean | undefined;
53
- readonly borderRightDimColor?: boolean | undefined;
54
- readonly overflow?: "visible" | "hidden" | undefined;
55
- readonly overflowX?: "visible" | "hidden" | undefined;
56
- readonly overflowY?: "visible" | "hidden" | undefined;
57
- readonly backgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
58
- } & {
59
- readonly 'aria-label'?: string;
60
- readonly 'aria-hidden'?: boolean;
61
- readonly 'aria-role'?: "button" | "checkbox" | "combobox" | "list" | "listbox" | "listitem" | "menu" | "menuitem" | "option" | "progressbar" | "radio" | "radiogroup" | "tab" | "tablist" | "table" | "textbox" | "timer" | "toolbar";
62
- readonly 'aria-state'?: {
63
- readonly busy?: boolean;
64
- readonly checked?: boolean;
65
- readonly disabled?: boolean;
66
- readonly expanded?: boolean;
67
- readonly multiline?: boolean;
68
- readonly multiselectable?: boolean;
69
- readonly readonly?: boolean;
70
- readonly required?: boolean;
71
- readonly selected?: boolean;
72
- };
73
- } & {
74
- children?: React.ReactNode | undefined;
75
- } & React.RefAttributes<import("ink").DOMElement>>;
@@ -1,38 +0,0 @@
1
- import React from "react";
2
- import { Box, Text } from "ink";
3
- import { LOGIN_FIELD_DEFINITIONS } from "./login.js";
4
- const e = React.createElement;
5
- export function loginFormViewHeight(state) {
6
- return state.step === "provider" ? state.providers.length + 3 : LOGIN_FIELD_DEFINITIONS[state.provider].length + 4;
7
- }
8
- export function LoginFormView({ state, width }) {
9
- const contentWidth = Math.max(30, width);
10
- if (state.step === "provider") {
11
- return e(Box, { flexDirection: "column", marginTop: 1 }, e(Text, { color: "cyan", bold: true }, fitToWidth(`Login: choose provider · saving to ${state.envPath}`, contentWidth)), ...state.providers.map((provider, index) => e(Text, { key: `provider-${provider}-${index}`, color: "white" }, e(Text, { color: index === state.selectedProviderIndex ? "black" : "white", backgroundColor: index === state.selectedProviderIndex ? "cyan" : undefined }, `${index + 1}.`.padStart(3)), e(Text, { color: "gray" }, " "), e(Text, { color: "cyan" }, provider))), e(Text, { color: "gray" }, fitToWidth("arrows select · Enter edit config · Esc close", contentWidth)));
12
- }
13
- const fields = LOGIN_FIELD_DEFINITIONS[state.provider];
14
- const maxLabel = Math.max(...fields.map((field) => field.label.length));
15
- return e(Box, { flexDirection: "column", marginTop: 1 }, e(Text, { color: "cyan", bold: true }, fitToWidth(`Login: ${state.provider} · ${state.envPath}`, contentWidth)), ...fields.map((field, index) => {
16
- const selected = index === state.selectedFieldIndex;
17
- const rawValue = state.values[field.key] ?? "";
18
- const visibleValue = formatLoginFieldValue(field, rawValue, selected ? state.cursor : undefined);
19
- const placeholder = rawValue ? "" : (field.placeholder ? ` (${field.placeholder})` : "");
20
- return e(Text, { key: field.key, color: "white" }, e(Text, { color: selected ? "black" : "white", backgroundColor: selected ? "cyan" : undefined }, `${index + 1}.`.padStart(3)), e(Text, { color: field.required ? "yellow" : "gray" }, ` ${field.label.padEnd(maxLabel)} `), e(Text, { color: field.scope === "shared" ? "blue" : "gray" }, field.scope === "shared" ? "shared " : "provider "), e(Text, { color: rawValue ? "white" : "gray" }, fitToWidth(`${visibleValue}${placeholder}`, Math.max(8, contentWidth - maxLabel - 14))));
21
- }), e(Text, { color: "gray" }, fitToWidth("Up/Down field · Left/Right cursor · type edit · Tab cycle choices · Enter save · Esc back/cancel", contentWidth)), e(Text, { color: "gray" }, fitToWidth("Provider fields save as OPENAI_* / ANTHROPIC_*; shared runtime fields save as MODEL_*.", contentWidth)));
22
- }
23
- function formatLoginFieldValue(field, value, cursor) {
24
- const display = field.secret && value ? "\u2022".repeat(Math.min(value.length, 24)) : value;
25
- if (cursor === undefined)
26
- return display;
27
- const safeCursor = Math.max(0, Math.min(cursor, display.length));
28
- const selected = display[safeCursor] ?? " ";
29
- return `${display.slice(0, safeCursor)}\u2588${selected === " " ? "" : display.slice(safeCursor + 1)}`;
30
- }
31
- function fitToWidth(value, width) {
32
- if (value.length === width)
33
- return value;
34
- if (value.length > width)
35
- return value.slice(0, width);
36
- return value.padEnd(width, " ");
37
- }
38
- //# sourceMappingURL=login-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login-view.js","sourceRoot":"","sources":["../../src/repl/login-view.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { LoginFieldDefinition, LoginFormState, LoginProviderName } from "./repl-types.js";
2
- export declare const LOGIN_PROVIDERS: LoginProviderName[];
3
- export declare const LOGIN_FIELD_DEFINITIONS: Record<LoginProviderName, LoginFieldDefinition[]>;
4
- export declare function moveLoginProviderSelection(state: LoginFormState, delta: number): LoginFormState;
5
- export declare function moveLoginFieldSelection(state: LoginFormState, delta: number): LoginFormState;
6
- export declare function cycleLoginFieldOption(state: LoginFormState, field: LoginFieldDefinition): LoginFormState;
7
- export declare function insertLoginFieldText(state: LoginFormState, field: LoginFieldDefinition, value: string): LoginFormState;
8
- export declare function deleteLoginFieldCharacter(state: LoginFormState, field: LoginFieldDefinition): LoginFormState;
9
- export declare function validateLoginForm(state: LoginFormState): string | undefined;
10
- export declare function createLoginFormState(envPath?: string): LoginFormState;
11
- export declare function loginFormForProvider(provider: LoginProviderName, envPath: string, env?: Record<string, string>): LoginFormState;
12
- export declare function parseLoginProvider(value: string | undefined): LoginProviderName | undefined;
13
- export declare function applyLoginFormToProcessEnv(state: LoginFormState): void;
14
- export declare function saveLoginFormToEnv(state: LoginFormState): Promise<void>;