@hasna/files 0.1.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 (55) hide show
  1. package/README.md +148 -0
  2. package/dashboard/dist/assets/index-DBpbr5zm.css +1 -0
  3. package/dashboard/dist/assets/index-zazl9Rbx.js +129 -0
  4. package/dashboard/dist/index.html +13 -0
  5. package/dist/cli/index.d.ts +3 -0
  6. package/dist/cli/index.d.ts.map +1 -0
  7. package/dist/cli/index.js +46386 -0
  8. package/dist/db/collections.d.ts +8 -0
  9. package/dist/db/collections.d.ts.map +1 -0
  10. package/dist/db/database.d.ts +5 -0
  11. package/dist/db/database.d.ts.map +1 -0
  12. package/dist/db/files.d.ts +12 -0
  13. package/dist/db/files.d.ts.map +1 -0
  14. package/dist/db/machines.d.ts +6 -0
  15. package/dist/db/machines.d.ts.map +1 -0
  16. package/dist/db/peers.d.ts +15 -0
  17. package/dist/db/peers.d.ts.map +1 -0
  18. package/dist/db/projects.d.ts +8 -0
  19. package/dist/db/projects.d.ts.map +1 -0
  20. package/dist/db/resolve.d.ts +9 -0
  21. package/dist/db/resolve.d.ts.map +1 -0
  22. package/dist/db/search.d.ts +6 -0
  23. package/dist/db/search.d.ts.map +1 -0
  24. package/dist/db/sources.d.ts +17 -0
  25. package/dist/db/sources.d.ts.map +1 -0
  26. package/dist/db/tags.d.ts +8 -0
  27. package/dist/db/tags.d.ts.map +1 -0
  28. package/dist/index.d.ts +15 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +43739 -0
  31. package/dist/lib/config.d.ts +13 -0
  32. package/dist/lib/config.d.ts.map +1 -0
  33. package/dist/lib/hasher.d.ts +3 -0
  34. package/dist/lib/hasher.d.ts.map +1 -0
  35. package/dist/lib/ignore.d.ts +11 -0
  36. package/dist/lib/ignore.d.ts.map +1 -0
  37. package/dist/lib/indexer.d.ts +3 -0
  38. package/dist/lib/indexer.d.ts.map +1 -0
  39. package/dist/lib/s3.d.ts +12 -0
  40. package/dist/lib/s3.d.ts.map +1 -0
  41. package/dist/lib/sync.d.ts +19 -0
  42. package/dist/lib/sync.d.ts.map +1 -0
  43. package/dist/lib/watcher.d.ts +5 -0
  44. package/dist/lib/watcher.d.ts.map +1 -0
  45. package/dist/mcp/index.d.ts +3 -0
  46. package/dist/mcp/index.d.ts.map +1 -0
  47. package/dist/mcp/index.js +55905 -0
  48. package/dist/server/index.d.ts +3 -0
  49. package/dist/server/index.d.ts.map +1 -0
  50. package/dist/server/index.js +42191 -0
  51. package/dist/server/serve.d.ts +2 -0
  52. package/dist/server/serve.d.ts.map +1 -0
  53. package/dist/types/index.d.ts +104 -0
  54. package/dist/types/index.d.ts.map +1 -0
  55. package/package.json +77 -0
@@ -0,0 +1,2 @@
1
+ export declare function startServer(port: number): void;
2
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AA6BA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CA8J9C"}
@@ -0,0 +1,104 @@
1
+ export type SourceType = "local" | "s3";
2
+ export type FileStatus = "active" | "deleted" | "moved";
3
+ export interface Machine {
4
+ id: string;
5
+ name: string;
6
+ hostname: string;
7
+ platform: string;
8
+ arch: string;
9
+ is_current: boolean;
10
+ last_seen: string;
11
+ created_at: string;
12
+ }
13
+ export interface S3Config {
14
+ accessKeyId?: string;
15
+ secretAccessKey?: string;
16
+ sessionToken?: string;
17
+ endpoint?: string;
18
+ }
19
+ export interface Source {
20
+ id: string;
21
+ name: string;
22
+ type: SourceType;
23
+ path?: string;
24
+ bucket?: string;
25
+ prefix?: string;
26
+ region?: string;
27
+ config: S3Config;
28
+ machine_id: string;
29
+ enabled: boolean;
30
+ last_indexed_at?: string;
31
+ file_count: number;
32
+ created_at: string;
33
+ updated_at: string;
34
+ }
35
+ export interface FileRecord {
36
+ id: string;
37
+ source_id: string;
38
+ machine_id: string;
39
+ path: string;
40
+ name: string;
41
+ ext: string;
42
+ size: number;
43
+ mime: string;
44
+ hash?: string;
45
+ status: FileStatus;
46
+ indexed_at: string;
47
+ modified_at?: string;
48
+ created_at: string;
49
+ }
50
+ export interface FileWithTags extends FileRecord {
51
+ tags: string[];
52
+ }
53
+ export interface Tag {
54
+ id: string;
55
+ name: string;
56
+ color: string;
57
+ created_at: string;
58
+ }
59
+ export interface Collection {
60
+ id: string;
61
+ name: string;
62
+ description: string;
63
+ created_at: string;
64
+ updated_at: string;
65
+ }
66
+ export interface Project {
67
+ id: string;
68
+ name: string;
69
+ description: string;
70
+ created_at: string;
71
+ updated_at: string;
72
+ }
73
+ export interface SearchResult extends FileWithTags {
74
+ source_name?: string;
75
+ machine_name?: string;
76
+ rank?: number;
77
+ }
78
+ export interface ListFilesOptions {
79
+ source_id?: string;
80
+ machine_id?: string;
81
+ tag?: string;
82
+ collection_id?: string;
83
+ project_id?: string;
84
+ ext?: string;
85
+ status?: FileStatus;
86
+ limit?: number;
87
+ offset?: number;
88
+ query?: string;
89
+ after?: string;
90
+ before?: string;
91
+ min_size?: number;
92
+ max_size?: number;
93
+ sort?: "name" | "size" | "date";
94
+ sort_dir?: "asc" | "desc";
95
+ }
96
+ export interface IndexStats {
97
+ source_id: string;
98
+ added: number;
99
+ updated: number;
100
+ deleted: number;
101
+ errors: number;
102
+ duration_ms: number;
103
+ }
104
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC;AACxC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB"}
package/package.json ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "@hasna/files",
3
+ "version": "0.1.1",
4
+ "description": "Agent-first file management — index local folders and S3 buckets, tag, search, and retrieve files via CLI + MCP",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "files": "dist/cli/index.js",
10
+ "files-mcp": "dist/mcp/index.js",
11
+ "files-serve": "dist/server/index.js"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "dashboard/dist",
22
+ "LICENSE",
23
+ "README.md"
24
+ ],
25
+ "scripts": {
26
+ "build": "cd dashboard && bun run build && cd .. && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/index.ts --outdir dist --target bun && tsc --emitDeclarationOnly --outDir dist",
27
+ "build:cli": "bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk",
28
+ "build:mcp": "bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk",
29
+ "build:server": "bun build src/server/index.ts --outdir dist/server --target bun",
30
+ "build:lib": "bun build src/index.ts --outdir dist --target bun && tsc --emitDeclarationOnly --outDir dist",
31
+ "build:dashboard": "cd dashboard && bun run build",
32
+ "typecheck": "tsc --noEmit",
33
+ "test": "bun test",
34
+ "dev:cli": "bun run src/cli/index.tsx",
35
+ "dev:mcp": "bun run src/mcp/index.ts",
36
+ "dev:serve": "bun run src/server/index.ts"
37
+ },
38
+ "keywords": [
39
+ "files",
40
+ "storage",
41
+ "s3",
42
+ "mcp",
43
+ "ai",
44
+ "coding-agent",
45
+ "claude",
46
+ "sqlite",
47
+ "file-management",
48
+ "cli",
49
+ "dashboard"
50
+ ],
51
+ "author": "hasna",
52
+ "license": "MIT",
53
+ "publishConfig": {
54
+ "registry": "https://registry.npmjs.org",
55
+ "access": "public"
56
+ },
57
+ "dependencies": {
58
+ "@aws-sdk/client-s3": "^3.744.0",
59
+ "@aws-sdk/lib-storage": "^3.744.0",
60
+ "@aws-sdk/s3-request-presigner": "^3.1009.0",
61
+ "@modelcontextprotocol/sdk": "^1.10.1",
62
+ "@noble/hashes": "^1.7.2",
63
+ "chalk": "^5.4.1",
64
+ "chokidar": "^4.0.3",
65
+ "commander": "^13.1.0",
66
+ "ink": "^5.2.1",
67
+ "mime-types": "^3.0.1",
68
+ "nanoid": "^5.1.5",
69
+ "react": "^18.3.1"
70
+ },
71
+ "devDependencies": {
72
+ "@types/mime-types": "^2.1.4",
73
+ "@types/react": "^18.3.20",
74
+ "bun-types": "latest",
75
+ "typescript": "^5.8.2"
76
+ }
77
+ }