@desplega.ai/agent-fs 0.3.0 → 0.3.1

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 (62) hide show
  1. package/dist/cli.js +1 -1
  2. package/package.json +2 -2
  3. package/dist/__tests__/api-client.test.d.ts +0 -2
  4. package/dist/__tests__/api-client.test.d.ts.map +0 -1
  5. package/dist/__tests__/api-client.test.js +0 -86
  6. package/dist/__tests__/api-client.test.js.map +0 -1
  7. package/dist/__tests__/param-mapping.test.d.ts +0 -2
  8. package/dist/__tests__/param-mapping.test.d.ts.map +0 -1
  9. package/dist/__tests__/param-mapping.test.js +0 -53
  10. package/dist/__tests__/param-mapping.test.js.map +0 -1
  11. package/dist/api-client.d.ts +0 -17
  12. package/dist/api-client.d.ts.map +0 -1
  13. package/dist/api-client.js +0 -63
  14. package/dist/api-client.js.map +0 -1
  15. package/dist/commands/auth.d.ts +0 -4
  16. package/dist/commands/auth.d.ts.map +0 -1
  17. package/dist/commands/auth.js +0 -81
  18. package/dist/commands/auth.js.map +0 -1
  19. package/dist/commands/comment.d.ts +0 -4
  20. package/dist/commands/comment.d.ts.map +0 -1
  21. package/dist/commands/comment.js +0 -165
  22. package/dist/commands/comment.js.map +0 -1
  23. package/dist/commands/config-cmd.d.ts +0 -3
  24. package/dist/commands/config-cmd.d.ts.map +0 -1
  25. package/dist/commands/config-cmd.js +0 -147
  26. package/dist/commands/config-cmd.js.map +0 -1
  27. package/dist/commands/daemon.d.ts +0 -3
  28. package/dist/commands/daemon.d.ts.map +0 -1
  29. package/dist/commands/daemon.js +0 -33
  30. package/dist/commands/daemon.js.map +0 -1
  31. package/dist/commands/docs.d.ts +0 -3
  32. package/dist/commands/docs.d.ts.map +0 -1
  33. package/dist/commands/docs.js +0 -13
  34. package/dist/commands/docs.js.map +0 -1
  35. package/dist/commands/drive.d.ts +0 -4
  36. package/dist/commands/drive.d.ts.map +0 -1
  37. package/dist/commands/drive.js +0 -171
  38. package/dist/commands/drive.js.map +0 -1
  39. package/dist/commands/init.d.ts +0 -3
  40. package/dist/commands/init.d.ts.map +0 -1
  41. package/dist/commands/init.js +0 -20
  42. package/dist/commands/init.js.map +0 -1
  43. package/dist/commands/onboard.d.ts +0 -3
  44. package/dist/commands/onboard.d.ts.map +0 -1
  45. package/dist/commands/onboard.js +0 -229
  46. package/dist/commands/onboard.js.map +0 -1
  47. package/dist/commands/ops.d.ts +0 -4
  48. package/dist/commands/ops.d.ts.map +0 -1
  49. package/dist/commands/ops.js +0 -100
  50. package/dist/commands/ops.js.map +0 -1
  51. package/dist/commands/org.d.ts +0 -4
  52. package/dist/commands/org.d.ts.map +0 -1
  53. package/dist/commands/org.js +0 -84
  54. package/dist/commands/org.js.map +0 -1
  55. package/dist/formatters.d.ts +0 -11
  56. package/dist/formatters.d.ts.map +0 -1
  57. package/dist/formatters.js +0 -257
  58. package/dist/formatters.js.map +0 -1
  59. package/dist/index.d.ts +0 -3
  60. package/dist/index.d.ts.map +0 -1
  61. package/dist/index.js +0 -83
  62. package/dist/index.js.map +0 -1
@@ -1,257 +0,0 @@
1
- /**
2
- * Pretty-print formatters for CLI output.
3
- * Each op has a formatter that takes the result object and returns a human-friendly string.
4
- * MCP always returns JSON — these formatters are CLI-only.
5
- */
6
- // --- Helpers ---
7
- function formatSize(bytes) {
8
- if (bytes < 1024)
9
- return `${bytes} B`;
10
- if (bytes < 1024 * 1024)
11
- return `${(bytes / 1024).toFixed(1)} KB`;
12
- if (bytes < 1024 * 1024 * 1024)
13
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
14
- return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
15
- }
16
- function formatDate(d) {
17
- if (!d)
18
- return "-";
19
- const date = typeof d === "string" ? new Date(d) : d;
20
- if (isNaN(date.getTime()))
21
- return String(d);
22
- return date.toISOString().replace("T", " ").replace(/\.\d{3}Z$/, "Z");
23
- }
24
- function padRight(s, len) {
25
- return s.length >= len ? s : s + " ".repeat(len - s.length);
26
- }
27
- function padLeft(s, len) {
28
- return s.length >= len ? s : " ".repeat(len - s.length) + s;
29
- }
30
- // --- Per-op formatters ---
31
- function formatLs(result) {
32
- const entries = result.entries ?? [];
33
- if (entries.length === 0)
34
- return "(empty directory)";
35
- // Compute column widths
36
- const nameW = Math.max(4, ...entries.map((e) => String(e.name).length));
37
- const typeW = Math.max(4, ...entries.map((e) => String(e.type).length));
38
- const sizeW = Math.max(4, ...entries.map((e) => formatSize(e.size ?? 0).length));
39
- const header = padRight("NAME", nameW) +
40
- " " +
41
- padRight("TYPE", typeW) +
42
- " " +
43
- padLeft("SIZE", sizeW) +
44
- " " +
45
- "MODIFIED";
46
- const lines = entries.map((e) => padRight(e.name, nameW) +
47
- " " +
48
- padRight(e.type, typeW) +
49
- " " +
50
- padLeft(formatSize(e.size ?? 0), sizeW) +
51
- " " +
52
- formatDate(e.modifiedAt));
53
- return [header, ...lines].join("\n");
54
- }
55
- function formatCat(result) {
56
- const content = result.content ?? "";
57
- const lines = content.split("\n");
58
- // Remove trailing empty line from split if content ends with newline
59
- if (lines.length > 0 && lines[lines.length - 1] === "") {
60
- lines.pop();
61
- }
62
- const offset = result.offset ?? 1;
63
- const width = String(offset + lines.length - 1).length;
64
- return lines
65
- .map((line, i) => `${padLeft(String(offset + i), width)} ${line}`)
66
- .join("\n");
67
- }
68
- function formatStat(result) {
69
- const pairs = [
70
- ["Path", result.path ?? "-"],
71
- ["Size", formatSize(result.size ?? 0)],
72
- ["Content-Type", result.contentType ?? "-"],
73
- ["Author", result.author ?? "-"],
74
- ["Version", result.currentVersion != null ? String(result.currentVersion) : "-"],
75
- ["Created", formatDate(result.createdAt)],
76
- ["Modified", formatDate(result.modifiedAt)],
77
- ["Deleted", result.isDeleted ? "yes" : "no"],
78
- ];
79
- if (result.embeddingStatus) {
80
- pairs.push(["Embedding", result.embeddingStatus]);
81
- }
82
- const labelW = Math.max(...pairs.map(([k]) => k.length));
83
- return pairs.map(([k, v]) => `${padRight(k + ":", labelW + 1)} ${v}`).join("\n");
84
- }
85
- function formatLog(result) {
86
- const versions = result.versions ?? [];
87
- if (versions.length === 0)
88
- return "(no version history)";
89
- return versions
90
- .map((v) => {
91
- const parts = [`v${v.version} ${formatDate(v.createdAt)} ${v.author ?? "-"} [${v.operation}]`];
92
- if (v.message)
93
- parts.push(` ${v.message}`);
94
- if (v.diffSummary)
95
- parts.push(` ${v.diffSummary}`);
96
- return parts.join("\n");
97
- })
98
- .join("\n\n");
99
- }
100
- function formatWrite(result) {
101
- return `\u2713 wrote ${result.path} (v${result.version}, ${formatSize(result.size ?? 0)})`;
102
- }
103
- function formatEdit(result) {
104
- return `\u2713 edited ${result.path} (v${result.version}, ${result.changes} change${result.changes !== 1 ? "s" : ""})`;
105
- }
106
- function formatAppend(result) {
107
- return `\u2713 appended (v${result.version}, ${formatSize(result.size ?? 0)})`;
108
- }
109
- function formatRm(result) {
110
- return result.deleted
111
- ? `\u2713 deleted ${result.path}`
112
- : `(not found: ${result.path})`;
113
- }
114
- function formatMv(result) {
115
- return `\u2713 moved ${result.from} -> ${result.to} (v${result.version})`;
116
- }
117
- function formatCp(result) {
118
- return `\u2713 copied ${result.from} -> ${result.to} (v${result.version})`;
119
- }
120
- function formatTree(result) {
121
- const tree = result.tree ?? [];
122
- if (tree.length === 0)
123
- return "(empty)";
124
- const lines = [];
125
- function walk(entries, prefix) {
126
- for (let i = 0; i < entries.length; i++) {
127
- const entry = entries[i];
128
- const isLast = i === entries.length - 1;
129
- const connector = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
130
- const suffix = entry.type === "directory" ? "/" : "";
131
- lines.push(`${prefix}${connector}${entry.name}${suffix}`);
132
- if (entry.children && entry.children.length > 0) {
133
- const childPrefix = prefix + (isLast ? " " : "\u2502 ");
134
- walk(entry.children, childPrefix);
135
- }
136
- }
137
- }
138
- walk(tree, "");
139
- return lines.join("\n");
140
- }
141
- function formatGrep(result) {
142
- const matches = result.matches ?? [];
143
- if (matches.length === 0)
144
- return "(no matches)";
145
- return matches
146
- .map((m) => `${m.path}:${m.lineNumber}: ${m.content}`)
147
- .join("\n");
148
- }
149
- function formatFts(result) {
150
- const matches = result.matches ?? [];
151
- if (matches.length === 0) {
152
- return result.hint ? `(no matches) ${result.hint}` : "(no matches)";
153
- }
154
- const lines = matches.map((m) => `${m.path} (rank: ${typeof m.rank === "number" ? m.rank.toFixed(2) : m.rank})\n ${m.snippet}`);
155
- if (result.hint)
156
- lines.push(`\nhint: ${result.hint}`);
157
- return lines.join("\n\n");
158
- }
159
- function formatSearch(result) {
160
- const results = result.results ?? [];
161
- if (results.length === 0)
162
- return "(no results)";
163
- return results
164
- .map((r) => `${r.path} (score: ${typeof r.score === "number" ? r.score.toFixed(3) : r.score})` +
165
- (r.author ? ` by ${r.author}` : "") +
166
- `\n ${r.snippet}`)
167
- .join("\n\n");
168
- }
169
- function formatGlob(result) {
170
- const matches = result.matches ?? [];
171
- if (matches.length === 0)
172
- return "(no matches)";
173
- return matches
174
- .map((m) => `${m.path} ${formatSize(m.size ?? 0)} ${formatDate(m.modifiedAt)}`)
175
- .join("\n");
176
- }
177
- function formatDiff(result) {
178
- const changes = result.changes ?? [];
179
- if (changes.length === 0)
180
- return "(no changes)";
181
- return changes
182
- .map((c) => {
183
- const prefix = c.type === "add" ? "+" : c.type === "remove" ? "-" : " ";
184
- const lineNum = c.lineNumber != null ? `${c.lineNumber}: ` : "";
185
- return `${prefix} ${lineNum}${c.content}`;
186
- })
187
- .join("\n");
188
- }
189
- function formatTail(result) {
190
- // tail returns CatResult, same format as cat
191
- return formatCat(result);
192
- }
193
- function formatRevert(result) {
194
- return `\u2713 reverted to v${result.revertedTo} (new version: v${result.version})`;
195
- }
196
- function formatRecent(result) {
197
- const entries = result.entries ?? [];
198
- if (entries.length === 0)
199
- return "(no recent activity)";
200
- return entries
201
- .map((e) => `${e.path} v${e.version} ${formatDate(e.createdAt)} ${e.author ?? "-"} [${e.operation}]` +
202
- (e.message ? `\n ${e.message}` : ""))
203
- .join("\n\n");
204
- }
205
- function formatReindex(result) {
206
- const parts = [];
207
- parts.push(`reindexed: ${result.reindexed ?? 0}`);
208
- if (result.failed)
209
- parts.push(`failed: ${result.failed}`);
210
- if (result.skipped)
211
- parts.push(`skipped: ${result.skipped}`);
212
- return parts.join(", ");
213
- }
214
- // --- Formatter registry ---
215
- const formatters = {
216
- ls: formatLs,
217
- cat: formatCat,
218
- stat: formatStat,
219
- log: formatLog,
220
- write: formatWrite,
221
- edit: formatEdit,
222
- append: formatAppend,
223
- rm: formatRm,
224
- mv: formatMv,
225
- cp: formatCp,
226
- tree: formatTree,
227
- grep: formatGrep,
228
- fts: formatFts,
229
- search: formatSearch,
230
- glob: formatGlob,
231
- diff: formatDiff,
232
- tail: formatTail,
233
- revert: formatRevert,
234
- recent: formatRecent,
235
- reindex: formatReindex,
236
- };
237
- function formatResult(opName, result) {
238
- const formatter = formatters[opName];
239
- if (formatter) {
240
- return formatter(result);
241
- }
242
- // Fallback: JSON for unknown ops
243
- return JSON.stringify(result, null, 2);
244
- }
245
- /**
246
- * Single entry point for all CLI output.
247
- * If json is true, outputs raw JSON. Otherwise, uses the pretty-print formatter.
248
- */
249
- export function outputResult(opName, result, json) {
250
- if (json) {
251
- console.log(JSON.stringify(result, null, 2));
252
- }
253
- else {
254
- console.log(formatResult(opName, result));
255
- }
256
- }
257
- //# sourceMappingURL=formatters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env bun
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js DELETED
@@ -1,83 +0,0 @@
1
- #!/usr/bin/env bun
2
- import { Command } from "commander";
3
- import { VERSION, getConfig } from "@/core";
4
- import { ApiClient } from "./api-client.js";
5
- import { registerOpCommands } from "./commands/ops.js";
6
- import { authCommands } from "./commands/auth.js";
7
- import { daemonCommands } from "./commands/daemon.js";
8
- import { configCommands } from "./commands/config-cmd.js";
9
- import { driveCommands } from "./commands/drive.js";
10
- import { orgCommands } from "./commands/org.js";
11
- import { initCommand } from "./commands/init.js";
12
- import { onboardCommand } from "./commands/onboard.js";
13
- import { commentCommands } from "./commands/comment.js";
14
- import { docsCommand } from "./commands/docs.js";
15
- const program = new Command();
16
- program
17
- .name("agent-fs")
18
- .description("Agent-first filesystem backed by S3")
19
- .version(VERSION)
20
- .option("--org <orgId>", "Override org context")
21
- .option("--drive <driveId>", "Override drive context")
22
- .option("--json", "Output raw JSON");
23
- const client = new ApiClient();
24
- // Resolve the default org ID via the API
25
- async function getOrgId() {
26
- const orgId = program.opts().org;
27
- if (orgId)
28
- return orgId;
29
- // Check local config override (set by `org switch`)
30
- const config = getConfig();
31
- if (config.defaultOrg)
32
- return config.defaultOrg;
33
- try {
34
- const me = await client.getMe();
35
- if (me.defaultOrgId)
36
- return me.defaultOrgId;
37
- }
38
- catch (err) {
39
- if (err?.message?.includes("Cannot connect")) {
40
- console.error(err.message);
41
- process.exit(1);
42
- }
43
- }
44
- console.error("Error: No org context. Use --org or run 'agent-fs auth register'");
45
- process.exit(1);
46
- }
47
- // Register commands — docs first so it appears at top of --help
48
- program.addCommand(docsCommand());
49
- registerOpCommands(program, client, getOrgId);
50
- program.addCommand(authCommands(client));
51
- program.addCommand(daemonCommands());
52
- program.addCommand(configCommands());
53
- program.addCommand(driveCommands(client, getOrgId));
54
- program.addCommand(orgCommands(client));
55
- program.addCommand(initCommand());
56
- program.addCommand(onboardCommand());
57
- program.addCommand(commentCommands(client, getOrgId));
58
- // MCP command
59
- program
60
- .command("mcp")
61
- .description("Start MCP server (stdio)")
62
- .action(async () => {
63
- await import("@/mcp/index.js");
64
- });
65
- // Server command (foreground dev mode)
66
- program
67
- .command("server")
68
- .description("Run server in foreground (dev mode)")
69
- .action(async () => {
70
- await import("@/server/index.js");
71
- });
72
- // Show global options in subcommand help
73
- const globalHelp = `
74
- Global Options:
75
- --org <orgId> Override org context
76
- --drive <driveId> Override drive context
77
- --json Output raw JSON
78
- `;
79
- for (const cmd of program.commands) {
80
- cmd.addHelpText("after", globalHelp);
81
- }
82
- program.parse();
83
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}