marifold 0.60.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 (110) hide show
  1. package/LICENSE +674 -0
  2. package/dist/auth/ChatGptAuth.d.ts +17 -0
  3. package/dist/auth/ChatGptAuth.d.ts.map +1 -0
  4. package/dist/auth/ChatGptAuth.js +215 -0
  5. package/dist/auth/ChatGptAuth.js.map +1 -0
  6. package/dist/auth/GitHubCopilotAuth.d.ts +10 -0
  7. package/dist/auth/GitHubCopilotAuth.d.ts.map +1 -0
  8. package/dist/auth/GitHubCopilotAuth.js +118 -0
  9. package/dist/auth/GitHubCopilotAuth.js.map +1 -0
  10. package/dist/auth/XaiAuth.d.ts +27 -0
  11. package/dist/auth/XaiAuth.d.ts.map +1 -0
  12. package/dist/auth/XaiAuth.js +280 -0
  13. package/dist/auth/XaiAuth.js.map +1 -0
  14. package/dist/commands/RuntimeFactory.d.ts +8 -0
  15. package/dist/commands/RuntimeFactory.d.ts.map +1 -0
  16. package/dist/commands/RuntimeFactory.js +13 -0
  17. package/dist/commands/RuntimeFactory.js.map +1 -0
  18. package/dist/commands/agent.d.ts +4 -0
  19. package/dist/commands/agent.d.ts.map +1 -0
  20. package/dist/commands/agent.js +130 -0
  21. package/dist/commands/agent.js.map +1 -0
  22. package/dist/commands/ask.d.ts +4 -0
  23. package/dist/commands/ask.d.ts.map +1 -0
  24. package/dist/commands/ask.js +57 -0
  25. package/dist/commands/ask.js.map +1 -0
  26. package/dist/commands/channel.d.ts +8 -0
  27. package/dist/commands/channel.d.ts.map +1 -0
  28. package/dist/commands/channel.js +114 -0
  29. package/dist/commands/channel.js.map +1 -0
  30. package/dist/commands/chat.d.ts +4 -0
  31. package/dist/commands/chat.d.ts.map +1 -0
  32. package/dist/commands/chat.js +352 -0
  33. package/dist/commands/chat.js.map +1 -0
  34. package/dist/commands/config.d.ts +18 -0
  35. package/dist/commands/config.d.ts.map +1 -0
  36. package/dist/commands/config.js +228 -0
  37. package/dist/commands/config.js.map +1 -0
  38. package/dist/commands/doctor.d.ts +11 -0
  39. package/dist/commands/doctor.d.ts.map +1 -0
  40. package/dist/commands/doctor.js +86 -0
  41. package/dist/commands/doctor.js.map +1 -0
  42. package/dist/commands/init.d.ts +4 -0
  43. package/dist/commands/init.d.ts.map +1 -0
  44. package/dist/commands/init.js +135 -0
  45. package/dist/commands/init.js.map +1 -0
  46. package/dist/commands/model.d.ts +4 -0
  47. package/dist/commands/model.d.ts.map +1 -0
  48. package/dist/commands/model.js +384 -0
  49. package/dist/commands/model.js.map +1 -0
  50. package/dist/commands/profile.d.ts +4 -0
  51. package/dist/commands/profile.d.ts.map +1 -0
  52. package/dist/commands/profile.js +231 -0
  53. package/dist/commands/profile.js.map +1 -0
  54. package/dist/commands/provider.d.ts +4 -0
  55. package/dist/commands/provider.d.ts.map +1 -0
  56. package/dist/commands/provider.js +254 -0
  57. package/dist/commands/provider.js.map +1 -0
  58. package/dist/commands/schedule.d.ts +4 -0
  59. package/dist/commands/schedule.d.ts.map +1 -0
  60. package/dist/commands/schedule.js +141 -0
  61. package/dist/commands/schedule.js.map +1 -0
  62. package/dist/commands/service.d.ts +15 -0
  63. package/dist/commands/service.d.ts.map +1 -0
  64. package/dist/commands/service.js +421 -0
  65. package/dist/commands/service.js.map +1 -0
  66. package/dist/commands/session.d.ts +4 -0
  67. package/dist/commands/session.d.ts.map +1 -0
  68. package/dist/commands/session.js +171 -0
  69. package/dist/commands/session.js.map +1 -0
  70. package/dist/commands/status.d.ts +4 -0
  71. package/dist/commands/status.d.ts.map +1 -0
  72. package/dist/commands/status.js +59 -0
  73. package/dist/commands/status.js.map +1 -0
  74. package/dist/index.d.ts +3 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +74 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/input/InteractivePrompt.d.ts +9 -0
  79. package/dist/input/InteractivePrompt.d.ts.map +1 -0
  80. package/dist/input/InteractivePrompt.js +101 -0
  81. package/dist/input/InteractivePrompt.js.map +1 -0
  82. package/dist/input/ModelPicker.d.ts +34 -0
  83. package/dist/input/ModelPicker.d.ts.map +1 -0
  84. package/dist/input/ModelPicker.js +327 -0
  85. package/dist/input/ModelPicker.js.map +1 -0
  86. package/dist/input/PromptAbort.d.ts +11 -0
  87. package/dist/input/PromptAbort.d.ts.map +1 -0
  88. package/dist/input/PromptAbort.js +28 -0
  89. package/dist/input/PromptAbort.js.map +1 -0
  90. package/dist/input/SecretPrompt.d.ts +3 -0
  91. package/dist/input/SecretPrompt.d.ts.map +1 -0
  92. package/dist/input/SecretPrompt.js +61 -0
  93. package/dist/input/SecretPrompt.js.map +1 -0
  94. package/dist/input/TerminalSelect.d.ts +17 -0
  95. package/dist/input/TerminalSelect.d.ts.map +1 -0
  96. package/dist/input/TerminalSelect.js +153 -0
  97. package/dist/input/TerminalSelect.js.map +1 -0
  98. package/dist/output/ConsolePrinter.d.ts +12 -0
  99. package/dist/output/ConsolePrinter.d.ts.map +1 -0
  100. package/dist/output/ConsolePrinter.js +69 -0
  101. package/dist/output/ConsolePrinter.js.map +1 -0
  102. package/dist/output/TerminalStyle.d.ts +11 -0
  103. package/dist/output/TerminalStyle.d.ts.map +1 -0
  104. package/dist/output/TerminalStyle.js +41 -0
  105. package/dist/output/TerminalStyle.js.map +1 -0
  106. package/dist/service/ServiceProcess.d.ts +45 -0
  107. package/dist/service/ServiceProcess.d.ts.map +1 -0
  108. package/dist/service/ServiceProcess.js +288 -0
  109. package/dist/service/ServiceProcess.js.map +1 -0
  110. package/package.json +34 -0
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.serviceProcessPaths = serviceProcessPaths;
37
+ exports.ensureServiceProcessDir = ensureServiceProcessDir;
38
+ exports.claimServiceProcess = claimServiceProcess;
39
+ exports.markServiceProcessRunning = markServiceProcessRunning;
40
+ exports.releaseServiceProcess = releaseServiceProcess;
41
+ exports.getActiveServiceProcess = getActiveServiceProcess;
42
+ exports.stopActiveServiceProcess = stopActiveServiceProcess;
43
+ exports.readRecentServiceLog = readRecentServiceLog;
44
+ const crypto = __importStar(require("crypto"));
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ const core_1 = require("@marifold/core");
48
+ const STATE_DIR_ENV = 'MARIFOLD_SERVICE_STATE_DIR';
49
+ const LOCK_WAIT_MS = 2_000;
50
+ const STALE_LOCK_MS = 1_000;
51
+ const LOCK_RETRY_MS = 10;
52
+ const LOG_READ_BYTES = 256 * 1024;
53
+ function serviceProcessPaths() {
54
+ const dir = process.env[STATE_DIR_ENV] ?? path.join((0, core_1.marifoldHome)(), 'service');
55
+ return {
56
+ dir,
57
+ state: path.join(dir, 'state.json'),
58
+ log: path.join(dir, 'service.log'),
59
+ lock: path.join(dir, 'state.lock'),
60
+ };
61
+ }
62
+ function ensureServiceProcessDir(paths = serviceProcessPaths()) {
63
+ fs.mkdirSync(paths.dir, { recursive: true, mode: 0o700 });
64
+ }
65
+ function claimServiceProcess(mode, configPath, paths = serviceProcessPaths(), launch) {
66
+ return withStateLock(paths, () => {
67
+ const existing = readStateFile(paths.state);
68
+ if (existing && isProcessRunning(existing.pid)) {
69
+ throw new Error(`Marifold service is already running (PID ${existing.pid}, ${existing.mode}).`);
70
+ }
71
+ if (fs.existsSync(paths.state))
72
+ fs.unlinkSync(paths.state);
73
+ const state = {
74
+ version: 1,
75
+ instanceId: crypto.randomUUID(),
76
+ pid: process.pid,
77
+ mode,
78
+ status: 'starting',
79
+ startedAt: new Date().toISOString(),
80
+ configPath,
81
+ ...(launch ? { launch } : {}),
82
+ };
83
+ writeStateFile(paths.state, state);
84
+ return state;
85
+ });
86
+ }
87
+ function markServiceProcessRunning(owner, address, paths = serviceProcessPaths()) {
88
+ return withStateLock(paths, () => {
89
+ const current = readStateFile(paths.state);
90
+ if (!current || current.instanceId !== owner.instanceId) {
91
+ throw new Error('Marifold service ownership changed while it was starting.');
92
+ }
93
+ const running = { ...current, status: 'running', address };
94
+ writeStateFile(paths.state, running);
95
+ return running;
96
+ });
97
+ }
98
+ function releaseServiceProcess(owner, paths = serviceProcessPaths()) {
99
+ withStateLock(paths, () => {
100
+ const current = readStateFile(paths.state);
101
+ if (current?.instanceId === owner.instanceId)
102
+ fs.unlinkSync(paths.state);
103
+ });
104
+ }
105
+ function getActiveServiceProcess(paths = serviceProcessPaths()) {
106
+ return withStateLock(paths, () => {
107
+ const state = readStateFile(paths.state);
108
+ if (state && isProcessRunning(state.pid))
109
+ return state;
110
+ if (fs.existsSync(paths.state))
111
+ fs.unlinkSync(paths.state);
112
+ return undefined;
113
+ });
114
+ }
115
+ async function stopActiveServiceProcess(timeoutMs = 7_000, paths = serviceProcessPaths()) {
116
+ const state = getActiveServiceProcess(paths);
117
+ if (!state)
118
+ return undefined;
119
+ try {
120
+ process.kill(state.pid, 'SIGTERM');
121
+ }
122
+ catch (error) {
123
+ if (!isNoSuchProcessError(error))
124
+ throw error;
125
+ }
126
+ const deadline = Date.now() + timeoutMs;
127
+ while (Date.now() < deadline) {
128
+ if (!isProcessRunning(state.pid)) {
129
+ getActiveServiceProcess(paths);
130
+ return state;
131
+ }
132
+ await delay(50);
133
+ }
134
+ throw new Error(`Marifold service (PID ${state.pid}) did not stop within ${timeoutMs}ms.`);
135
+ }
136
+ function readRecentServiceLog(lineCount = 100, paths = serviceProcessPaths()) {
137
+ if (!fs.existsSync(paths.log))
138
+ return undefined;
139
+ const stat = fs.statSync(paths.log);
140
+ if (stat.size === 0)
141
+ return '';
142
+ const bytes = Math.min(stat.size, LOG_READ_BYTES);
143
+ const buffer = Buffer.alloc(bytes);
144
+ const fd = fs.openSync(paths.log, 'r');
145
+ try {
146
+ fs.readSync(fd, buffer, 0, bytes, stat.size - bytes);
147
+ }
148
+ finally {
149
+ fs.closeSync(fd);
150
+ }
151
+ let text = buffer.toString('utf8');
152
+ if (bytes < stat.size) {
153
+ const firstNewline = text.indexOf('\n');
154
+ text = firstNewline >= 0 ? text.slice(firstNewline + 1) : '';
155
+ }
156
+ return text.trimEnd().split(/\r?\n/).slice(-lineCount).join('\n');
157
+ }
158
+ function withStateLock(paths, action) {
159
+ ensureServiceProcessDir(paths);
160
+ const deadline = Date.now() + LOCK_WAIT_MS;
161
+ while (true) {
162
+ try {
163
+ fs.mkdirSync(paths.lock, { mode: 0o700 });
164
+ break;
165
+ }
166
+ catch (error) {
167
+ if (!isAlreadyExistsError(error))
168
+ throw error;
169
+ const stat = safeStat(paths.lock);
170
+ if (stat && Date.now() - stat.mtimeMs > STALE_LOCK_MS) {
171
+ try {
172
+ fs.rmdirSync(paths.lock);
173
+ }
174
+ catch {
175
+ // Another process recovered or acquired the lock first.
176
+ }
177
+ continue;
178
+ }
179
+ if (Date.now() >= deadline)
180
+ throw new Error('Timed out waiting for the Marifold service state lock.');
181
+ sleepSync(LOCK_RETRY_MS);
182
+ }
183
+ }
184
+ try {
185
+ return action();
186
+ }
187
+ finally {
188
+ try {
189
+ fs.rmdirSync(paths.lock);
190
+ }
191
+ catch {
192
+ // A later state operation can recover an abandoned empty lock directory.
193
+ }
194
+ }
195
+ }
196
+ function readStateFile(filePath) {
197
+ if (!fs.existsSync(filePath))
198
+ return undefined;
199
+ try {
200
+ const raw = JSON.parse(fs.readFileSync(filePath, 'utf8'));
201
+ if (!isServiceProcessState(raw))
202
+ return undefined;
203
+ return raw;
204
+ }
205
+ catch {
206
+ return undefined;
207
+ }
208
+ }
209
+ function writeStateFile(filePath, state) {
210
+ const tempPath = `${filePath}.${process.pid}.${crypto.randomBytes(4).toString('hex')}.tmp`;
211
+ try {
212
+ fs.writeFileSync(tempPath, `${JSON.stringify(state, null, 2)}\n`, { mode: 0o600 });
213
+ fs.renameSync(tempPath, filePath);
214
+ }
215
+ finally {
216
+ if (fs.existsSync(tempPath))
217
+ fs.unlinkSync(tempPath);
218
+ }
219
+ }
220
+ function isServiceProcessState(value) {
221
+ if (!value || typeof value !== 'object')
222
+ return false;
223
+ const state = value;
224
+ return state.version === 1
225
+ && typeof state.instanceId === 'string'
226
+ && Number.isInteger(state.pid)
227
+ && Number(state.pid) > 0
228
+ && (state.mode === 'foreground' || state.mode === 'daemon')
229
+ && (state.status === 'starting' || state.status === 'running')
230
+ && typeof state.startedAt === 'string'
231
+ && typeof state.configPath === 'string'
232
+ && (state.address === undefined || typeof state.address === 'string')
233
+ && (state.launch === undefined || isServiceLaunchOptions(state.launch));
234
+ }
235
+ function isServiceLaunchOptions(value) {
236
+ if (!value || typeof value !== 'object')
237
+ return false;
238
+ const launch = value;
239
+ return typeof launch.host === 'string'
240
+ && typeof launch.port === 'string'
241
+ && typeof launch.cwd === 'string'
242
+ && typeof launch.log === 'boolean'
243
+ && (launch.publicAccess === undefined || typeof launch.publicAccess === 'boolean')
244
+ && Array.isArray(launch.corsOrigins)
245
+ && launch.corsOrigins.every(origin => typeof origin === 'string')
246
+ && (launch.webDir === undefined || typeof launch.webDir === 'string')
247
+ && (launch.tokenSource === 'config' || launch.tokenSource === 'env' || launch.tokenSource === 'raw')
248
+ && (launch.tokenSource === 'env'
249
+ ? typeof launch.tokenEnv === 'string' && launch.tokenEnv.length > 0
250
+ : launch.tokenEnv === undefined);
251
+ }
252
+ function isProcessRunning(pid) {
253
+ try {
254
+ process.kill(pid, 0);
255
+ return true;
256
+ }
257
+ catch (error) {
258
+ return isPermissionError(error);
259
+ }
260
+ }
261
+ function safeStat(filePath) {
262
+ try {
263
+ return fs.statSync(filePath);
264
+ }
265
+ catch {
266
+ return undefined;
267
+ }
268
+ }
269
+ function sleepSync(milliseconds) {
270
+ const buffer = new Int32Array(new SharedArrayBuffer(4));
271
+ Atomics.wait(buffer, 0, 0, milliseconds);
272
+ }
273
+ function delay(milliseconds) {
274
+ return new Promise(resolve => setTimeout(resolve, milliseconds));
275
+ }
276
+ function isAlreadyExistsError(error) {
277
+ return isNodeError(error) && error.code === 'EEXIST';
278
+ }
279
+ function isNoSuchProcessError(error) {
280
+ return isNodeError(error) && error.code === 'ESRCH';
281
+ }
282
+ function isPermissionError(error) {
283
+ return isNodeError(error) && error.code === 'EPERM';
284
+ }
285
+ function isNodeError(error) {
286
+ return error instanceof Error && 'code' in error;
287
+ }
288
+ //# sourceMappingURL=ServiceProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceProcess.js","sourceRoot":"","sources":["../../src/service/ServiceProcess.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "marifold",
3
+ "version": "0.60.0",
4
+ "description": "Marifold CLI",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "marifold": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "dependencies": {
14
+ "commander": "^15.0.0",
15
+ "@marifold/core": "0.60.0",
16
+ "@marifold/service": "0.60.0",
17
+ "@marifold/tui": "0.60.0"
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "^24.13.3",
21
+ "typescript": "^7.0.2",
22
+ "vitest": "^4.1.10"
23
+ },
24
+ "engines": {
25
+ "node": ">=24.0.0 <25"
26
+ },
27
+ "license": "GPL-3.0-only",
28
+ "scripts": {
29
+ "build": "tsc && chmod +x dist/index.js",
30
+ "cli": "node dist/index.js",
31
+ "typecheck": "tsc --noEmit",
32
+ "test": "vitest run --passWithNoTests"
33
+ }
34
+ }