@delfos-ai/cli 1.0.3
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.
- package/README.md +93 -0
- package/dist/api/delfos-api.client.d.ts +32 -0
- package/dist/api/delfos-api.client.d.ts.map +1 -0
- package/dist/api/delfos-api.client.js +43 -0
- package/dist/api/delfos-api.client.js.map +1 -0
- package/dist/commands/login.command.d.ts +15 -0
- package/dist/commands/login.command.d.ts.map +1 -0
- package/dist/commands/login.command.js +164 -0
- package/dist/commands/login.command.js.map +1 -0
- package/dist/commands/logout.command.d.ts +8 -0
- package/dist/commands/logout.command.d.ts.map +1 -0
- package/dist/commands/logout.command.js +46 -0
- package/dist/commands/logout.command.js.map +1 -0
- package/dist/commands/mcp/mcp-memory.command.d.ts +11 -0
- package/dist/commands/mcp/mcp-memory.command.d.ts.map +1 -0
- package/dist/commands/mcp/mcp-memory.command.js +22 -0
- package/dist/commands/mcp/mcp-memory.command.js.map +1 -0
- package/dist/commands/memory/index.d.ts +3 -0
- package/dist/commands/memory/index.d.ts.map +1 -0
- package/dist/commands/memory/index.js +14 -0
- package/dist/commands/memory/index.js.map +1 -0
- package/dist/commands/memory/memory-index.command.d.ts +3 -0
- package/dist/commands/memory/memory-index.command.d.ts.map +1 -0
- package/dist/commands/memory/memory-index.command.js +57 -0
- package/dist/commands/memory/memory-index.command.js.map +1 -0
- package/dist/commands/memory/memory-init.command.d.ts +3 -0
- package/dist/commands/memory/memory-init.command.d.ts.map +1 -0
- package/dist/commands/memory/memory-init.command.js +72 -0
- package/dist/commands/memory/memory-init.command.js.map +1 -0
- package/dist/commands/memory/memory-read.command.d.ts +3 -0
- package/dist/commands/memory/memory-read.command.d.ts.map +1 -0
- package/dist/commands/memory/memory-read.command.js +52 -0
- package/dist/commands/memory/memory-read.command.js.map +1 -0
- package/dist/commands/memory/memory-status.command.d.ts +7 -0
- package/dist/commands/memory/memory-status.command.d.ts.map +1 -0
- package/dist/commands/memory/memory-status.command.js +43 -0
- package/dist/commands/memory/memory-status.command.js.map +1 -0
- package/dist/commands/memory/memory-write.command.d.ts +3 -0
- package/dist/commands/memory/memory-write.command.d.ts.map +1 -0
- package/dist/commands/memory/memory-write.command.js +66 -0
- package/dist/commands/memory/memory-write.command.js.map +1 -0
- package/dist/config/cli-config.d.ts +13 -0
- package/dist/config/cli-config.d.ts.map +1 -0
- package/dist/config/cli-config.js +31 -0
- package/dist/config/cli-config.js.map +1 -0
- package/dist/config/memory.config.d.ts +61 -0
- package/dist/config/memory.config.d.ts.map +1 -0
- package/dist/config/memory.config.js +22 -0
- package/dist/config/memory.config.js.map +1 -0
- package/dist/features/memory-index/index.d.ts +5 -0
- package/dist/features/memory-index/index.d.ts.map +1 -0
- package/dist/features/memory-index/index.js +3 -0
- package/dist/features/memory-index/index.js.map +1 -0
- package/dist/features/memory-index/memory-index.schema.d.ts +96 -0
- package/dist/features/memory-index/memory-index.schema.d.ts.map +1 -0
- package/dist/features/memory-index/memory-index.schema.js +14 -0
- package/dist/features/memory-index/memory-index.schema.js.map +1 -0
- package/dist/features/memory-index/vault-indexer.d.ts +17 -0
- package/dist/features/memory-index/vault-indexer.d.ts.map +1 -0
- package/dist/features/memory-index/vault-indexer.js +140 -0
- package/dist/features/memory-index/vault-indexer.js.map +1 -0
- package/dist/features/memory-init/vault-scaffolder.d.ts +20 -0
- package/dist/features/memory-init/vault-scaffolder.d.ts.map +1 -0
- package/dist/features/memory-init/vault-scaffolder.js +109 -0
- package/dist/features/memory-init/vault-scaffolder.js.map +1 -0
- package/dist/features/memory-read/index.d.ts +4 -0
- package/dist/features/memory-read/index.d.ts.map +1 -0
- package/dist/features/memory-read/index.js +3 -0
- package/dist/features/memory-read/index.js.map +1 -0
- package/dist/features/memory-read/memory-read.schema.d.ts +79 -0
- package/dist/features/memory-read/memory-read.schema.d.ts.map +1 -0
- package/dist/features/memory-read/memory-read.schema.js +25 -0
- package/dist/features/memory-read/memory-read.schema.js.map +1 -0
- package/dist/features/memory-read/rag-reader.d.ts +8 -0
- package/dist/features/memory-read/rag-reader.d.ts.map +1 -0
- package/dist/features/memory-read/rag-reader.js +79 -0
- package/dist/features/memory-read/rag-reader.js.map +1 -0
- package/dist/features/memory-server/config-loader.d.ts +6 -0
- package/dist/features/memory-server/config-loader.d.ts.map +1 -0
- package/dist/features/memory-server/config-loader.js +39 -0
- package/dist/features/memory-server/config-loader.js.map +1 -0
- package/dist/features/memory-server/index.d.ts +5 -0
- package/dist/features/memory-server/index.d.ts.map +1 -0
- package/dist/features/memory-server/index.js +4 -0
- package/dist/features/memory-server/index.js.map +1 -0
- package/dist/features/memory-server/memory-server.d.ts +6 -0
- package/dist/features/memory-server/memory-server.d.ts.map +1 -0
- package/dist/features/memory-server/memory-server.js +197 -0
- package/dist/features/memory-server/memory-server.js.map +1 -0
- package/dist/features/memory-server/memory-server.schema.d.ts +194 -0
- package/dist/features/memory-server/memory-server.schema.d.ts.map +1 -0
- package/dist/features/memory-server/memory-server.schema.js +58 -0
- package/dist/features/memory-server/memory-server.schema.js.map +1 -0
- package/dist/features/memory-server/tools/memory-index.handler.d.ts +10 -0
- package/dist/features/memory-server/tools/memory-index.handler.d.ts.map +1 -0
- package/dist/features/memory-server/tools/memory-index.handler.js +27 -0
- package/dist/features/memory-server/tools/memory-index.handler.js.map +1 -0
- package/dist/features/memory-server/tools/memory-read.handler.d.ts +10 -0
- package/dist/features/memory-server/tools/memory-read.handler.d.ts.map +1 -0
- package/dist/features/memory-server/tools/memory-read.handler.js +33 -0
- package/dist/features/memory-server/tools/memory-read.handler.js.map +1 -0
- package/dist/features/memory-server/tools/memory-status.handler.d.ts +9 -0
- package/dist/features/memory-server/tools/memory-status.handler.d.ts.map +1 -0
- package/dist/features/memory-server/tools/memory-status.handler.js +35 -0
- package/dist/features/memory-server/tools/memory-status.handler.js.map +1 -0
- package/dist/features/memory-server/tools/memory-write.handler.d.ts +8 -0
- package/dist/features/memory-server/tools/memory-write.handler.d.ts.map +1 -0
- package/dist/features/memory-server/tools/memory-write.handler.js +42 -0
- package/dist/features/memory-server/tools/memory-write.handler.js.map +1 -0
- package/dist/features/memory-shared/chunker.d.ts +16 -0
- package/dist/features/memory-shared/chunker.d.ts.map +1 -0
- package/dist/features/memory-shared/chunker.js +93 -0
- package/dist/features/memory-shared/chunker.js.map +1 -0
- package/dist/features/memory-shared/markdown-parser.d.ts +7 -0
- package/dist/features/memory-shared/markdown-parser.d.ts.map +1 -0
- package/dist/features/memory-shared/markdown-parser.js +24 -0
- package/dist/features/memory-shared/markdown-parser.js.map +1 -0
- package/dist/features/memory-shared/vault-path-validator.d.ts +14 -0
- package/dist/features/memory-shared/vault-path-validator.d.ts.map +1 -0
- package/dist/features/memory-shared/vault-path-validator.js +56 -0
- package/dist/features/memory-shared/vault-path-validator.js.map +1 -0
- package/dist/features/memory-shared/vault-scanner.d.ts +8 -0
- package/dist/features/memory-shared/vault-scanner.d.ts.map +1 -0
- package/dist/features/memory-shared/vault-scanner.js +35 -0
- package/dist/features/memory-shared/vault-scanner.js.map +1 -0
- package/dist/features/memory-shared/vault-slug.d.ts +9 -0
- package/dist/features/memory-shared/vault-slug.d.ts.map +1 -0
- package/dist/features/memory-shared/vault-slug.js +17 -0
- package/dist/features/memory-shared/vault-slug.js.map +1 -0
- package/dist/features/memory-write/index.d.ts +6 -0
- package/dist/features/memory-write/index.d.ts.map +1 -0
- package/dist/features/memory-write/index.js +4 -0
- package/dist/features/memory-write/index.js.map +1 -0
- package/dist/features/memory-write/memory-write.schema.d.ts +36 -0
- package/dist/features/memory-write/memory-write.schema.d.ts.map +1 -0
- package/dist/features/memory-write/memory-write.schema.js +14 -0
- package/dist/features/memory-write/memory-write.schema.js.map +1 -0
- package/dist/features/memory-write/note-formatter.d.ts +11 -0
- package/dist/features/memory-write/note-formatter.d.ts.map +1 -0
- package/dist/features/memory-write/note-formatter.js +38 -0
- package/dist/features/memory-write/note-formatter.js.map +1 -0
- package/dist/features/memory-write/vault-writer.d.ts +6 -0
- package/dist/features/memory-write/vault-writer.d.ts.map +1 -0
- package/dist/features/memory-write/vault-writer.js +61 -0
- package/dist/features/memory-write/vault-writer.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/embeddings/embedding-provider.d.ts +9 -0
- package/dist/infrastructure/embeddings/embedding-provider.d.ts.map +1 -0
- package/dist/infrastructure/embeddings/embedding-provider.js +5 -0
- package/dist/infrastructure/embeddings/embedding-provider.js.map +1 -0
- package/dist/infrastructure/embeddings/local-embedding.provider.d.ts +18 -0
- package/dist/infrastructure/embeddings/local-embedding.provider.d.ts.map +1 -0
- package/dist/infrastructure/embeddings/local-embedding.provider.js +38 -0
- package/dist/infrastructure/embeddings/local-embedding.provider.js.map +1 -0
- package/dist/infrastructure/logger/index.d.ts +21 -0
- package/dist/infrastructure/logger/index.d.ts.map +1 -0
- package/dist/infrastructure/logger/index.js +116 -0
- package/dist/infrastructure/logger/index.js.map +1 -0
- package/dist/infrastructure/vector-db/chroma.adapter.d.ts +76 -0
- package/dist/infrastructure/vector-db/chroma.adapter.d.ts.map +1 -0
- package/dist/infrastructure/vector-db/chroma.adapter.js +137 -0
- package/dist/infrastructure/vector-db/chroma.adapter.js.map +1 -0
- package/dist/utils/config.d.ts +13 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +13 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/pkce.d.ts +17 -0
- package/dist/utils/pkce.d.ts.map +1 -0
- package/dist/utils/pkce.js +28 -0
- package/dist/utils/pkce.js.map +1 -0
- package/dist/utils/port.d.ts +7 -0
- package/dist/utils/port.d.ts.map +1 -0
- package/dist/utils/port.js +33 -0
- package/dist/utils/port.js.map +1 -0
- package/package.json +59 -0
- package/templates/.gitkeep +0 -0
- package/templates/obsidian-vault/AI-Context/global-rules.md +129 -0
- package/templates/obsidian-vault/AI-Context/tool-preferences.md +128 -0
- package/templates/obsidian-vault/Patterns/architecture-patterns.md +147 -0
- package/templates/obsidian-vault/Patterns/coding-standards.md +90 -0
- package/templates/obsidian-vault/Projects/example-project/Decisions/example-decision.md +51 -0
- package/templates/obsidian-vault/Projects/example-project/Migrations/example-migration.md +85 -0
- package/templates/obsidian-vault/Projects/example-project/Overview.md +43 -0
- package/templates/obsidian-vault/Projects/example-project/Sessions/session-1.md +66 -0
- package/templates/obsidian-vault/Templates/decision.md +57 -0
- package/templates/obsidian-vault/Templates/migration.md +86 -0
- package/templates/obsidian-vault/Templates/session.md +87 -0
package/README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Delfos CLI
|
|
2
|
+
|
|
3
|
+
CLI oficial do Delfos AI Layers para gerenciamento de memória RAG e autenticação na nuvem.
|
|
4
|
+
|
|
5
|
+
## Instalação
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @delfos-ai/cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Uso
|
|
12
|
+
|
|
13
|
+
### Autenticação
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Login via navegador (OAuth)
|
|
17
|
+
delfos login --browser
|
|
18
|
+
|
|
19
|
+
# Login com credenciais (API key)
|
|
20
|
+
delfos login --email user@example.com --api-key YOUR_KEY
|
|
21
|
+
|
|
22
|
+
# Logout
|
|
23
|
+
delfos logout
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Memória RAG
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Inicializar vault
|
|
30
|
+
delfos memory init --vault-path ~/my-vault
|
|
31
|
+
|
|
32
|
+
# Indexar vault
|
|
33
|
+
delfos memory index
|
|
34
|
+
|
|
35
|
+
# Buscar notas
|
|
36
|
+
delfos memory read "database decisions"
|
|
37
|
+
|
|
38
|
+
# Criar nota
|
|
39
|
+
delfos memory write "Use PostgreSQL" "## Decision\nWe will use PostgreSQL..." \
|
|
40
|
+
--folder "Projects/my-project/Decisions" \
|
|
41
|
+
--tags "architecture,database"
|
|
42
|
+
|
|
43
|
+
# Status
|
|
44
|
+
delfos memory status
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### MCP Server
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Iniciar MCP server
|
|
51
|
+
delfos mcp-server
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Configurar no IDE:
|
|
55
|
+
```json
|
|
56
|
+
// ~/.windsurf/mcp.json
|
|
57
|
+
{
|
|
58
|
+
"mcpServers": {
|
|
59
|
+
"delfos-memory": {
|
|
60
|
+
"command": "delfos",
|
|
61
|
+
"args": ["mcp-server"]
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Configuração
|
|
68
|
+
|
|
69
|
+
Config armazenada em `~/.delfos/config.json`:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"apiBaseUrl": "https://api.delfos.ai",
|
|
74
|
+
"token": "eyJhbGciOiJIUzI1NiIs...",
|
|
75
|
+
"userId": "uuid",
|
|
76
|
+
"email": "user@example.com"
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Requisitos
|
|
81
|
+
|
|
82
|
+
- Node.js 22+
|
|
83
|
+
- npm
|
|
84
|
+
|
|
85
|
+
## Documentação
|
|
86
|
+
|
|
87
|
+
- [Documentação completa](https://docs.delfos.ai/cli)
|
|
88
|
+
- [Backend API](https://api.delfos.ai/docs)
|
|
89
|
+
- [Repositório](https://github.com/delfos-io/delfos-cli)
|
|
90
|
+
|
|
91
|
+
## Licença
|
|
92
|
+
|
|
93
|
+
MIT
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { CliConfig } from '../config/cli-config.js';
|
|
2
|
+
export interface LoginResponse {
|
|
3
|
+
access_token: string;
|
|
4
|
+
refresh_token: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ObsidianConnection {
|
|
7
|
+
id: string;
|
|
8
|
+
vault_name: string;
|
|
9
|
+
vault_path: string;
|
|
10
|
+
connection_type: 'mcp' | 'cli';
|
|
11
|
+
sync_status: 'connected' | 'synced' | 'disconnected' | 'error';
|
|
12
|
+
last_sync_at: string | null;
|
|
13
|
+
mcp_server_url: string | null;
|
|
14
|
+
is_active: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface UpsertConnectionData {
|
|
17
|
+
vault_name: string;
|
|
18
|
+
vault_path: string;
|
|
19
|
+
connection_type: 'mcp' | 'cli';
|
|
20
|
+
sync_status: 'connected' | 'disconnected' | 'error';
|
|
21
|
+
mcp_server_url?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class DelfosApiClient {
|
|
24
|
+
private readonly config;
|
|
25
|
+
constructor(config: CliConfig);
|
|
26
|
+
login(email: string, password: string): Promise<LoginResponse>;
|
|
27
|
+
createObsidianConnection(data: UpsertConnectionData): Promise<ObsidianConnection>;
|
|
28
|
+
listObsidianConnections(): Promise<ObsidianConnection[]>;
|
|
29
|
+
deleteObsidianConnection(id: string): Promise<void>;
|
|
30
|
+
private apiFetch;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=delfos-api.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delfos-api.client.d.ts","sourceRoot":"","sources":["../../src/api/delfos-api.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKzD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,KAAK,GAAG,KAAK,CAAC;IAC/B,WAAW,EAAE,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,CAAC;IAC/D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,KAAK,GAAG,KAAK,CAAC;IAC/B,WAAW,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAExC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAU9D,wBAAwB,CAC5B,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,kBAAkB,CAAC;IAUxB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAUxD,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAS3C,QAAQ;CAsBvB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createSliceLogger } from '../infrastructure/logger/index.js';
|
|
2
|
+
const logger = createSliceLogger('delfos-api-client');
|
|
3
|
+
export class DelfosApiClient {
|
|
4
|
+
config;
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.config = config;
|
|
7
|
+
}
|
|
8
|
+
async login(email, password) {
|
|
9
|
+
const result = await this.apiFetch(this.config.directusUrl, '/auth/login', { method: 'POST', body: JSON.stringify({ email, password }) });
|
|
10
|
+
logger.debug({ email }, 'login successful');
|
|
11
|
+
return result.data;
|
|
12
|
+
}
|
|
13
|
+
async createObsidianConnection(data) {
|
|
14
|
+
const result = await this.apiFetch(this.config.apiBaseUrl, '/api/v1/cli/obsidian-connections', { method: 'POST', body: JSON.stringify(data) }, this.config.token);
|
|
15
|
+
return result.data;
|
|
16
|
+
}
|
|
17
|
+
async listObsidianConnections() {
|
|
18
|
+
const result = await this.apiFetch(this.config.apiBaseUrl, '/api/v1/cli/obsidian-connections', { method: 'GET' }, this.config.token);
|
|
19
|
+
return result.data;
|
|
20
|
+
}
|
|
21
|
+
async deleteObsidianConnection(id) {
|
|
22
|
+
await this.apiFetch(this.config.apiBaseUrl, `/api/v1/cli/obsidian-connections/${id}`, { method: 'DELETE' }, this.config.token);
|
|
23
|
+
}
|
|
24
|
+
async apiFetch(baseUrl, path, init, bearerToken) {
|
|
25
|
+
const url = `${baseUrl}${path}`;
|
|
26
|
+
const res = await fetch(url, {
|
|
27
|
+
...init,
|
|
28
|
+
headers: {
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
...(bearerToken ? { Authorization: `Bearer ${bearerToken}` } : {}),
|
|
31
|
+
...(init?.headers ?? {}),
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
if (!res.ok) {
|
|
35
|
+
const body = await res.text().catch(() => '');
|
|
36
|
+
throw new Error(`DelfosApiClient: [${res.status}] ${path}: ${body}`);
|
|
37
|
+
}
|
|
38
|
+
if (res.status === 204)
|
|
39
|
+
return undefined;
|
|
40
|
+
return res.json();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=delfos-api.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delfos-api.client.js","sourceRoot":"","sources":["../../src/api/delfos-api.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,MAAM,MAAM,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AA0BtD,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,QAAgB;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,aAAa,EACb,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAC9D,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,IAA0B;QAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,kCAAkC,EAClC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAChC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,kCAAkC,EAClC,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAAU;QACvC,MAAM,IAAI,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,oCAAoC,EAAE,EAAE,EACxC,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,OAAe,EACf,IAAY,EACZ,IAAkB,EAClB,WAAoB;QAEpB,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;aACzB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAC;QAC9C,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* login.command.ts — CLI command `delfos login`.
|
|
3
|
+
* Authenticates directly with Directus or stores an API key.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
export interface LoginOptions {
|
|
7
|
+
email?: string;
|
|
8
|
+
password?: string;
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
browser?: boolean;
|
|
11
|
+
timeout?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare const loginCommand: Command;
|
|
14
|
+
export declare function runLogin(options: LoginOptions): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=login.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.command.d.ts","sourceRoot":"","sources":["../../src/commands/login.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,YAAY,SAYN,CAAC;AAEpB,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DnE"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* login.command.ts — CLI command `delfos login`.
|
|
3
|
+
* Authenticates directly with Directus or stores an API key.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import * as http from 'node:http';
|
|
8
|
+
import { readConfig, writeConfig } from '../config/cli-config.js';
|
|
9
|
+
import { DelfosApiClient } from '../api/delfos-api.client.js';
|
|
10
|
+
import { createSliceLogger } from '../infrastructure/logger/index.js';
|
|
11
|
+
import { generateCodeVerifier, generateCodeChallenge, generateState, } from '../utils/pkce.js';
|
|
12
|
+
import { findAvailablePort } from '../utils/port.js';
|
|
13
|
+
import { storeToken, CONFIG_PATH } from '../utils/config.js';
|
|
14
|
+
const logger = createSliceLogger('login-cli');
|
|
15
|
+
export const loginCommand = new Command('login')
|
|
16
|
+
.description('Authenticate with the Delfos platform')
|
|
17
|
+
.option('--email <email>', 'Email address')
|
|
18
|
+
.option('--password <password>', 'Password')
|
|
19
|
+
.option('--api-key <key>', 'API key (for service accounts and CI)')
|
|
20
|
+
.option('--browser', 'Use browser-based OAuth flow')
|
|
21
|
+
.option('--timeout <seconds>', 'Browser auth timeout in seconds', parseInt, 300)
|
|
22
|
+
.action(runLogin);
|
|
23
|
+
export async function runLogin(options) {
|
|
24
|
+
if (options.browser) {
|
|
25
|
+
await loginWithBrowser(options.timeout ?? 300);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
// --api-key mode: store directly, skip Directus auth
|
|
30
|
+
if (options.apiKey) {
|
|
31
|
+
writeConfig({ token: options.apiKey });
|
|
32
|
+
// eslint-disable-next-line no-console
|
|
33
|
+
console.log(chalk.green('✓ API key stored successfully'));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
// Resolve email + password from flags or interactive prompt
|
|
37
|
+
let email = options.email;
|
|
38
|
+
let password = options.password;
|
|
39
|
+
if (!email || !password) {
|
|
40
|
+
const { default: inquirer } = await import('inquirer');
|
|
41
|
+
const prompts = [];
|
|
42
|
+
if (!email)
|
|
43
|
+
prompts.push({ type: 'input', name: 'email', message: 'Email:' });
|
|
44
|
+
if (!password)
|
|
45
|
+
prompts.push({
|
|
46
|
+
type: 'password',
|
|
47
|
+
name: 'password',
|
|
48
|
+
message: 'Password:',
|
|
49
|
+
});
|
|
50
|
+
const answers = await inquirer.prompt(prompts);
|
|
51
|
+
email = email ?? answers.email;
|
|
52
|
+
password = password ?? answers.password;
|
|
53
|
+
}
|
|
54
|
+
const config = readConfig();
|
|
55
|
+
const client = new DelfosApiClient(config);
|
|
56
|
+
const { access_token } = await client.login(email, password);
|
|
57
|
+
// Fetch user identity from Directus
|
|
58
|
+
const meRes = await fetch(`${config.directusUrl}/users/me`, {
|
|
59
|
+
headers: { Authorization: `Bearer ${access_token}` },
|
|
60
|
+
});
|
|
61
|
+
if (!meRes.ok) {
|
|
62
|
+
throw new Error(`Failed to fetch user info: ${meRes.status}`);
|
|
63
|
+
}
|
|
64
|
+
const { data: user } = (await meRes.json());
|
|
65
|
+
writeConfig({ token: access_token, userId: user.id, email: user.email });
|
|
66
|
+
// eslint-disable-next-line no-console
|
|
67
|
+
console.log(chalk.green('✓ Logged in successfully'));
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
logger.error({ err }, 'Login failed');
|
|
71
|
+
// eslint-disable-next-line no-console
|
|
72
|
+
console.error(chalk.red('✗ Login failed:'), err instanceof Error ? err.message : String(err));
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async function loginWithBrowser(timeoutSeconds) {
|
|
77
|
+
const verifier = generateCodeVerifier();
|
|
78
|
+
const challenge = generateCodeChallenge(verifier);
|
|
79
|
+
const state = generateState();
|
|
80
|
+
const port = await findAvailablePort(8787);
|
|
81
|
+
const config = readConfig();
|
|
82
|
+
const appUrl = config.appUrl ?? 'https://app.delfos.ai';
|
|
83
|
+
let timer;
|
|
84
|
+
return new Promise((resolve, reject) => {
|
|
85
|
+
const server = http.createServer(async (req, res) => {
|
|
86
|
+
const url = new URL(req.url, `http://localhost:${port}`);
|
|
87
|
+
if (url.pathname !== '/callback') {
|
|
88
|
+
res.writeHead(404);
|
|
89
|
+
res.end();
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const code = url.searchParams.get('code');
|
|
93
|
+
const returnedState = url.searchParams.get('state');
|
|
94
|
+
const error = url.searchParams.get('error');
|
|
95
|
+
if (error) {
|
|
96
|
+
res.writeHead(302, {
|
|
97
|
+
Location: `${appUrl}/cli-auth/callback?error=${error}`,
|
|
98
|
+
});
|
|
99
|
+
res.end();
|
|
100
|
+
server.close();
|
|
101
|
+
clearTimeout(timer);
|
|
102
|
+
logger.error(chalk.red('Authentication cancelled'));
|
|
103
|
+
reject(new Error(`Authentication cancelled: ${error}`));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (returnedState !== state) {
|
|
107
|
+
res.writeHead(400);
|
|
108
|
+
res.end('Invalid state');
|
|
109
|
+
server.close();
|
|
110
|
+
clearTimeout(timer);
|
|
111
|
+
reject(new Error('CSRF state mismatch'));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const { token, userId, email } = await exchangeCodeForToken(code, verifier);
|
|
116
|
+
storeToken({ token, userId, email });
|
|
117
|
+
res.writeHead(302, {
|
|
118
|
+
Location: `${appUrl}/cli-auth/callback?success=true`,
|
|
119
|
+
});
|
|
120
|
+
res.end();
|
|
121
|
+
server.close(() => {
|
|
122
|
+
clearTimeout(timer);
|
|
123
|
+
logger.info(chalk.green(`✓ Authenticated as ${email}. Token stored at ${CONFIG_PATH}`));
|
|
124
|
+
resolve();
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
res.writeHead(500);
|
|
129
|
+
res.end('Exchange failed');
|
|
130
|
+
server.close();
|
|
131
|
+
clearTimeout(timer);
|
|
132
|
+
reject(err);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
server.listen(port, '127.0.0.1', () => {
|
|
136
|
+
timer = setTimeout(() => {
|
|
137
|
+
server.close();
|
|
138
|
+
logger.error(`Browser auth timed out after ${timeoutSeconds}s. Run 'delfos login --browser' again.`);
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}, timeoutSeconds * 1000);
|
|
141
|
+
timer.unref();
|
|
142
|
+
const authUrl = `${appUrl}/cli-auth?code_challenge=${challenge}&state=${state}&port=${port}`;
|
|
143
|
+
import('open')
|
|
144
|
+
.then(({ default: open }) => open(authUrl))
|
|
145
|
+
.then(() => logger.info(`Opening browser... If it doesn't open, visit:\n${authUrl}`))
|
|
146
|
+
.catch((err) => logger.error({ err }, 'Failed to open browser'));
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
async function exchangeCodeForToken(code, verifier) {
|
|
151
|
+
const config = readConfig();
|
|
152
|
+
const apiBaseUrl = config.apiBaseUrl ?? 'https://api.delfos.ai';
|
|
153
|
+
const res = await fetch(`${apiBaseUrl}/api/v1/cli/auth/exchange`, {
|
|
154
|
+
method: 'POST',
|
|
155
|
+
headers: { 'Content-Type': 'application/json' },
|
|
156
|
+
body: JSON.stringify({ code, code_verifier: verifier }),
|
|
157
|
+
});
|
|
158
|
+
if (!res.ok) {
|
|
159
|
+
const body = await res.text();
|
|
160
|
+
throw new Error(`Exchange failed [${res.status}]: ${body}`);
|
|
161
|
+
}
|
|
162
|
+
return res.json();
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=login.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.command.js","sourceRoot":"","sources":["../../src/commands/login.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* logout.command.ts — CLI command `delfos logout`.
|
|
3
|
+
* Removes the stored token from ~/.delfos/config.json after confirmation.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
export declare const logoutCommand: Command;
|
|
7
|
+
export declare function runLogout(): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=logout.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.command.d.ts","sourceRoot":"","sources":["../../src/commands/logout.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SAEN,CAAC;AAErB,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAuC/C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* logout.command.ts — CLI command `delfos logout`.
|
|
3
|
+
* Removes the stored token from ~/.delfos/config.json after confirmation.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import { readConfig, writeConfig } from '../config/cli-config.js';
|
|
8
|
+
import { createSliceLogger } from '../infrastructure/logger/index.js';
|
|
9
|
+
const logger = createSliceLogger('logout-cli');
|
|
10
|
+
export const logoutCommand = new Command('logout')
|
|
11
|
+
.description('Log out from the Delfos platform')
|
|
12
|
+
.action(runLogout);
|
|
13
|
+
export async function runLogout() {
|
|
14
|
+
try {
|
|
15
|
+
const config = readConfig();
|
|
16
|
+
if (!config.token) {
|
|
17
|
+
// eslint-disable-next-line no-console
|
|
18
|
+
console.log(chalk.yellow('You are not currently logged in'));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const { default: inquirer } = await import('inquirer');
|
|
22
|
+
const { confirmed } = await inquirer.prompt([
|
|
23
|
+
{
|
|
24
|
+
type: 'confirm',
|
|
25
|
+
name: 'confirmed',
|
|
26
|
+
message: 'Are you sure you want to log out?',
|
|
27
|
+
default: true,
|
|
28
|
+
},
|
|
29
|
+
]);
|
|
30
|
+
if (!confirmed) {
|
|
31
|
+
// eslint-disable-next-line no-console
|
|
32
|
+
console.log(chalk.gray('Logout cancelled'));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
writeConfig({ token: undefined, userId: undefined });
|
|
36
|
+
// eslint-disable-next-line no-console
|
|
37
|
+
console.log(chalk.green('✓ Logged out successfully'));
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
logger.error({ err }, 'Logout failed');
|
|
41
|
+
// eslint-disable-next-line no-console
|
|
42
|
+
console.error(chalk.red('✗ Logout failed:'), err instanceof Error ? err.message : String(err));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=logout.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.command.js","sourceRoot":"","sources":["../../src/commands/logout.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,SAAS,CAAC,CAAC;AAErB,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC1C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,mCAAmC;gBAC5C,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAErD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;QACvC,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAC7B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACjD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mcp-memory.command.ts — CLI command `delfos mcp memory`.
|
|
3
|
+
* Starts the delfos-memory MCP server.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
export interface McpMemoryOptions {
|
|
7
|
+
vaultPath?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const mcpMemoryCommand: Command;
|
|
10
|
+
export declare function runMcpMemory(options: McpMemoryOptions): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=mcp-memory.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-memory.command.d.ts","sourceRoot":"","sources":["../../../src/commands/mcp/mcp-memory.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,SAGN,CAAC;AAExB,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mcp-memory.command.ts — CLI command `delfos mcp memory`.
|
|
3
|
+
* Starts the delfos-memory MCP server.
|
|
4
|
+
*/
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import { startMemoryServer } from '../../features/memory-server/memory-server.js';
|
|
7
|
+
import { createSliceLogger } from '../../infrastructure/logger/index.js';
|
|
8
|
+
const logger = createSliceLogger('mcp-memory-cli');
|
|
9
|
+
export const mcpMemoryCommand = new Command('memory')
|
|
10
|
+
.description('Start the delfos-memory MCP server')
|
|
11
|
+
.option('--vault-path <path>', 'Vault path (default: current directory)')
|
|
12
|
+
.action(runMcpMemory);
|
|
13
|
+
export async function runMcpMemory(options) {
|
|
14
|
+
try {
|
|
15
|
+
await startMemoryServer(options.vaultPath);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
logger.error({ err }, 'MCP memory server failed to start');
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=mcp-memory.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-memory.command.js","sourceRoot":"","sources":["../../../src/commands/mcp/mcp-memory.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AAMnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClD,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC;KACxE,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,mCAAmC,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SAMQ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { memoryInitCommand } from './memory-init.command.js';
|
|
3
|
+
import { memoryIndexCommand } from './memory-index.command.js';
|
|
4
|
+
import { memoryReadCommand } from './memory-read.command.js';
|
|
5
|
+
import { memoryWriteCommand } from './memory-write.command.js';
|
|
6
|
+
import { memoryStatusCommand } from './memory-status.command.js';
|
|
7
|
+
export const memoryCommand = new Command('memory')
|
|
8
|
+
.description('Manage Delfos memory — index, read, write, init, and status')
|
|
9
|
+
.addCommand(memoryInitCommand)
|
|
10
|
+
.addCommand(memoryIndexCommand)
|
|
11
|
+
.addCommand(memoryReadCommand)
|
|
12
|
+
.addCommand(memoryWriteCommand)
|
|
13
|
+
.addCommand(memoryStatusCommand);
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,6DAA6D,CAAC;KAC1E,UAAU,CAAC,iBAAiB,CAAC;KAC7B,UAAU,CAAC,kBAAkB,CAAC;KAC9B,UAAU,CAAC,iBAAiB,CAAC;KAC7B,UAAU,CAAC,kBAAkB,CAAC;KAC9B,UAAU,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-index.command.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/memory-index.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,eAAO,MAAM,kBAAkB,SA6D3B,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { readConfig } from '../../config/cli-config.js';
|
|
3
|
+
import { chromaDBAdapter } from '../../infrastructure/vector-db/chroma.adapter.js';
|
|
4
|
+
import { localEmbeddingProvider } from '../../infrastructure/embeddings/local-embedding.provider.js';
|
|
5
|
+
import { indexVault } from '../../features/memory-index/vault-indexer.js';
|
|
6
|
+
import { loadMemoryConfig } from '../../features/memory-server/config-loader.js';
|
|
7
|
+
import { createSliceLogger } from '../../infrastructure/logger/index.js';
|
|
8
|
+
const logger = createSliceLogger('memory-index-command');
|
|
9
|
+
export const memoryIndexCommand = new Command('index')
|
|
10
|
+
.description('Index an Obsidian vault into ChromaDB')
|
|
11
|
+
.option('--mode <mode>', 'Index mode: full or incremental', 'incremental')
|
|
12
|
+
.option('--vault-path <path>', 'Override vault path from config')
|
|
13
|
+
.action(async (options) => {
|
|
14
|
+
try {
|
|
15
|
+
const rawMode = options.mode ?? 'incremental';
|
|
16
|
+
if (rawMode !== 'full' && rawMode !== 'incremental') {
|
|
17
|
+
console.error(`Invalid --mode value: "${rawMode}". Must be "full" or "incremental".`);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const mode = rawMode;
|
|
21
|
+
const vaultPath = options.vaultPath;
|
|
22
|
+
const memoryConfig = await loadMemoryConfig(vaultPath);
|
|
23
|
+
const cliPersistDir = readConfig().chromaPersistDir;
|
|
24
|
+
const config = cliPersistDir
|
|
25
|
+
? {
|
|
26
|
+
...memoryConfig,
|
|
27
|
+
vector_db: {
|
|
28
|
+
...memoryConfig.vector_db,
|
|
29
|
+
persist_dir: cliPersistDir,
|
|
30
|
+
},
|
|
31
|
+
}
|
|
32
|
+
: memoryConfig;
|
|
33
|
+
console.log(`Indexing vault: ${config.vault_path} (mode: ${mode})`);
|
|
34
|
+
const startTime = Date.now();
|
|
35
|
+
const result = await indexVault(config, mode, chromaDBAdapter, localEmbeddingProvider);
|
|
36
|
+
const duration = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
37
|
+
console.log(`✓ Scanned ${result.total_notes} notes`);
|
|
38
|
+
console.log(`✓ ${result.indexed} notes modified since last index`);
|
|
39
|
+
console.log(`✓ ${result.skipped} notes skipped`);
|
|
40
|
+
if (result.errors > 0) {
|
|
41
|
+
console.warn(`⚠ ${result.errors} notes failed to index`);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.log('✓ 0 errors');
|
|
45
|
+
}
|
|
46
|
+
console.log(`Indexed ${result.indexed} notes in ${duration}s`);
|
|
47
|
+
if (result.errors > 0) {
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
logger.error({ err }, 'Indexing failed');
|
|
53
|
+
console.error('Indexing failed:', err instanceof Error ? err.message : String(err));
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=memory-index.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-index.command.js","sourceRoot":"","sources":["../../../src/commands/memory/memory-index.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-init.command.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/memory-init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,iBAAiB,SA6F1B,CAAC"}
|