@delfos-ai/cli 1.0.5 → 1.0.9

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 (148) hide show
  1. package/README.md +1 -2
  2. package/dist/api/__tests__/delfos-api.client.test.d.ts +2 -0
  3. package/dist/api/__tests__/delfos-api.client.test.d.ts.map +1 -0
  4. package/dist/api/__tests__/delfos-api.client.test.js +64 -0
  5. package/dist/api/__tests__/delfos-api.client.test.js.map +1 -0
  6. package/dist/api/delfos-api.client.d.ts +4 -1
  7. package/dist/api/delfos-api.client.d.ts.map +1 -1
  8. package/dist/api/delfos-api.client.js +44 -1
  9. package/dist/api/delfos-api.client.js.map +1 -1
  10. package/dist/commands/login.command.d.ts.map +1 -1
  11. package/dist/commands/login.command.js +15 -9
  12. package/dist/commands/login.command.js.map +1 -1
  13. package/dist/commands/logout.command.d.ts.map +1 -1
  14. package/dist/commands/logout.command.js +5 -5
  15. package/dist/commands/logout.command.js.map +1 -1
  16. package/dist/commands/memory/memory-init.command.d.ts +6 -0
  17. package/dist/commands/memory/memory-init.command.d.ts.map +1 -1
  18. package/dist/commands/memory/memory-init.command.js +40 -8
  19. package/dist/commands/memory/memory-init.command.js.map +1 -1
  20. package/dist/commands/setup/platform.d.ts +12 -0
  21. package/dist/commands/setup/platform.d.ts.map +1 -0
  22. package/dist/commands/setup/platform.js +67 -0
  23. package/dist/commands/setup/platform.js.map +1 -0
  24. package/dist/commands/setup/setup-context.d.ts +27 -0
  25. package/dist/commands/setup/setup-context.d.ts.map +1 -0
  26. package/dist/commands/setup/setup-context.js +45 -0
  27. package/dist/commands/setup/setup-context.js.map +1 -0
  28. package/dist/commands/setup/setup-wizard.d.ts +2 -0
  29. package/dist/commands/setup/setup-wizard.d.ts.map +1 -0
  30. package/dist/commands/setup/setup-wizard.js +75 -0
  31. package/dist/commands/setup/setup-wizard.js.map +1 -0
  32. package/dist/commands/setup/setup.command.d.ts +3 -0
  33. package/dist/commands/setup/setup.command.d.ts.map +1 -0
  34. package/dist/commands/setup/setup.command.js +6 -0
  35. package/dist/commands/setup/setup.command.js.map +1 -0
  36. package/dist/commands/setup/steps/authenticate.d.ts +6 -0
  37. package/dist/commands/setup/steps/authenticate.d.ts.map +1 -0
  38. package/dist/commands/setup/steps/authenticate.js +91 -0
  39. package/dist/commands/setup/steps/authenticate.js.map +1 -0
  40. package/dist/commands/setup/steps/check-chromadb.d.ts +3 -0
  41. package/dist/commands/setup/steps/check-chromadb.d.ts.map +1 -0
  42. package/dist/commands/setup/steps/check-chromadb.js +208 -0
  43. package/dist/commands/setup/steps/check-chromadb.js.map +1 -0
  44. package/dist/commands/setup/steps/check-docker.d.ts +3 -0
  45. package/dist/commands/setup/steps/check-docker.d.ts.map +1 -0
  46. package/dist/commands/setup/steps/check-docker.js +238 -0
  47. package/dist/commands/setup/steps/check-docker.js.map +1 -0
  48. package/dist/commands/setup/steps/check-node.d.ts +3 -0
  49. package/dist/commands/setup/steps/check-node.d.ts.map +1 -0
  50. package/dist/commands/setup/steps/check-node.js +34 -0
  51. package/dist/commands/setup/steps/check-node.js.map +1 -0
  52. package/dist/commands/setup/steps/configure-mcp.d.ts +6 -0
  53. package/dist/commands/setup/steps/configure-mcp.d.ts.map +1 -0
  54. package/dist/commands/setup/steps/configure-mcp.js +189 -0
  55. package/dist/commands/setup/steps/configure-mcp.js.map +1 -0
  56. package/dist/commands/setup/steps/configure-vault.d.ts +6 -0
  57. package/dist/commands/setup/steps/configure-vault.d.ts.map +1 -0
  58. package/dist/commands/setup/steps/configure-vault.js +165 -0
  59. package/dist/commands/setup/steps/configure-vault.js.map +1 -0
  60. package/dist/commands/setup/steps/index-vault.d.ts +6 -0
  61. package/dist/commands/setup/steps/index-vault.d.ts.map +1 -0
  62. package/dist/commands/setup/steps/index-vault.js +66 -0
  63. package/dist/commands/setup/steps/index-vault.js.map +1 -0
  64. package/dist/commands/setup/steps/init-vault.d.ts +6 -0
  65. package/dist/commands/setup/steps/init-vault.d.ts.map +1 -0
  66. package/dist/commands/setup/steps/init-vault.js +68 -0
  67. package/dist/commands/setup/steps/init-vault.js.map +1 -0
  68. package/dist/commands/setup/steps/summary.d.ts +3 -0
  69. package/dist/commands/setup/steps/summary.d.ts.map +1 -0
  70. package/dist/commands/setup/steps/summary.js +66 -0
  71. package/dist/commands/setup/steps/summary.js.map +1 -0
  72. package/dist/commands/setup/steps/welcome.d.ts +3 -0
  73. package/dist/commands/setup/steps/welcome.d.ts.map +1 -0
  74. package/dist/commands/setup/steps/welcome.js +61 -0
  75. package/dist/commands/setup/steps/welcome.js.map +1 -0
  76. package/dist/config/__tests__/cli-config.test.d.ts +2 -0
  77. package/dist/config/__tests__/cli-config.test.d.ts.map +1 -0
  78. package/dist/config/__tests__/cli-config.test.js +44 -0
  79. package/dist/config/__tests__/cli-config.test.js.map +1 -0
  80. package/dist/config/cli-config.d.ts +1 -1
  81. package/dist/config/cli-config.d.ts.map +1 -1
  82. package/dist/config/cli-config.js +40 -4
  83. package/dist/config/cli-config.js.map +1 -1
  84. package/dist/config/memory.config.d.ts +5 -5
  85. package/dist/config/memory.config.js +1 -1
  86. package/dist/config/memory.config.js.map +1 -1
  87. package/dist/features/memory-index/memory-index.schema.d.ts +4 -4
  88. package/dist/features/memory-init/index.d.ts +3 -0
  89. package/dist/features/memory-init/index.d.ts.map +1 -0
  90. package/dist/features/memory-init/index.js +2 -0
  91. package/dist/features/memory-init/index.js.map +1 -0
  92. package/dist/features/memory-read/memory-read.schema.d.ts +10 -10
  93. package/dist/features/memory-read/rag-reader.js +2 -2
  94. package/dist/features/memory-read/rag-reader.js.map +1 -1
  95. package/dist/features/memory-server/config-loader.js +1 -1
  96. package/dist/features/memory-server/config-loader.js.map +1 -1
  97. package/dist/features/memory-server/memory-server.d.ts.map +1 -1
  98. package/dist/features/memory-server/memory-server.js +22 -0
  99. package/dist/features/memory-server/memory-server.js.map +1 -1
  100. package/dist/features/memory-server/memory-server.schema.d.ts +17 -20
  101. package/dist/features/memory-server/memory-server.schema.d.ts.map +1 -1
  102. package/dist/features/memory-server/memory-server.schema.js +0 -1
  103. package/dist/features/memory-server/memory-server.schema.js.map +1 -1
  104. package/dist/features/memory-server/tools/memory-read.handler.js +1 -1
  105. package/dist/features/memory-server/tools/memory-read.handler.js.map +1 -1
  106. package/dist/features/memory-shared/__tests__/chunker.test.d.ts +2 -0
  107. package/dist/features/memory-shared/__tests__/chunker.test.d.ts.map +1 -0
  108. package/dist/features/memory-shared/__tests__/chunker.test.js +24 -0
  109. package/dist/features/memory-shared/__tests__/chunker.test.js.map +1 -0
  110. package/dist/features/memory-shared/__tests__/vault-slug.test.d.ts +2 -0
  111. package/dist/features/memory-shared/__tests__/vault-slug.test.d.ts.map +1 -0
  112. package/dist/features/memory-shared/__tests__/vault-slug.test.js +13 -0
  113. package/dist/features/memory-shared/__tests__/vault-slug.test.js.map +1 -0
  114. package/dist/features/memory-write/memory-write.schema.d.ts +2 -2
  115. package/dist/features/memory-write/vault-writer.d.ts.map +1 -1
  116. package/dist/features/memory-write/vault-writer.js +3 -0
  117. package/dist/features/memory-write/vault-writer.js.map +1 -1
  118. package/dist/index.js +3 -0
  119. package/dist/index.js.map +1 -1
  120. package/dist/infrastructure/crypto/crypto.d.ts +11 -0
  121. package/dist/infrastructure/crypto/crypto.d.ts.map +1 -0
  122. package/dist/infrastructure/crypto/crypto.js +57 -0
  123. package/dist/infrastructure/crypto/crypto.js.map +1 -0
  124. package/dist/infrastructure/embeddings/__tests__/local-embedding.provider.test.d.ts +2 -0
  125. package/dist/infrastructure/embeddings/__tests__/local-embedding.provider.test.d.ts.map +1 -0
  126. package/dist/infrastructure/embeddings/__tests__/local-embedding.provider.test.js +62 -0
  127. package/dist/infrastructure/embeddings/__tests__/local-embedding.provider.test.js.map +1 -0
  128. package/dist/infrastructure/embeddings/local-embedding.provider.d.ts +0 -3
  129. package/dist/infrastructure/embeddings/local-embedding.provider.d.ts.map +1 -1
  130. package/dist/infrastructure/embeddings/local-embedding.provider.js +7 -4
  131. package/dist/infrastructure/embeddings/local-embedding.provider.js.map +1 -1
  132. package/dist/infrastructure/logger/__tests__/logger.test.d.ts +2 -0
  133. package/dist/infrastructure/logger/__tests__/logger.test.d.ts.map +1 -0
  134. package/dist/infrastructure/logger/__tests__/logger.test.js +65 -0
  135. package/dist/infrastructure/logger/__tests__/logger.test.js.map +1 -0
  136. package/dist/infrastructure/vector-db/__tests__/chroma.adapter.test.d.ts +2 -0
  137. package/dist/infrastructure/vector-db/__tests__/chroma.adapter.test.d.ts.map +1 -0
  138. package/dist/infrastructure/vector-db/__tests__/chroma.adapter.test.js +153 -0
  139. package/dist/infrastructure/vector-db/__tests__/chroma.adapter.test.js.map +1 -0
  140. package/dist/infrastructure/vector-db/chroma.adapter.d.ts +3 -8
  141. package/dist/infrastructure/vector-db/chroma.adapter.d.ts.map +1 -1
  142. package/dist/infrastructure/vector-db/chroma.adapter.js +56 -60
  143. package/dist/infrastructure/vector-db/chroma.adapter.js.map +1 -1
  144. package/dist/utils/config.d.ts +2 -2
  145. package/dist/utils/config.d.ts.map +1 -1
  146. package/dist/utils/config.js +6 -2
  147. package/dist/utils/config.js.map +1 -1
  148. package/package.json +15 -9
@@ -0,0 +1,45 @@
1
+ import * as fs from 'node:fs';
2
+ import * as os from 'node:os';
3
+ import * as path from 'node:path';
4
+ import { detectPlatform } from './platform.js';
5
+ const SETUP_STATE_DIR = path.join(os.homedir(), '.delfos');
6
+ const SETUP_STATE_PATH = path.join(SETUP_STATE_DIR, 'setup-state.json');
7
+ export function loadSetupState() {
8
+ try {
9
+ const content = fs.readFileSync(SETUP_STATE_PATH, 'utf-8');
10
+ return JSON.parse(content);
11
+ }
12
+ catch {
13
+ // Return defaults if file doesn't exist or is invalid
14
+ return {
15
+ completedSteps: [],
16
+ results: {},
17
+ vaultPath: null,
18
+ chromaHost: 'localhost',
19
+ chromaPort: 8000,
20
+ chromaMethod: 'none',
21
+ mcpConfigured: false,
22
+ authenticated: false,
23
+ platform: detectPlatform(),
24
+ startedAt: new Date().toISOString(),
25
+ };
26
+ }
27
+ }
28
+ export function saveSetupState(ctx) {
29
+ const dir = path.dirname(SETUP_STATE_PATH);
30
+ if (!fs.existsSync(dir)) {
31
+ fs.mkdirSync(dir, { recursive: true });
32
+ }
33
+ fs.writeFileSync(SETUP_STATE_PATH, JSON.stringify(ctx, null, 2));
34
+ }
35
+ export function clearSetupState() {
36
+ try {
37
+ if (fs.existsSync(SETUP_STATE_PATH)) {
38
+ fs.unlinkSync(SETUP_STATE_PATH);
39
+ }
40
+ }
41
+ catch {
42
+ // Ignore errors if file doesn't exist
43
+ }
44
+ }
45
+ //# sourceMappingURL=setup-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-context.js","sourceRoot":"","sources":["../../../src/commands/setup/setup-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA4B/C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;AAExE,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;QACtD,OAAO;YACL,cAAc,EAAE,EAAE;YAClB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,WAAW;YACvB,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,MAAM;YACpB,aAAa,EAAE,KAAK;YACpB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,cAAc,EAAE;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAiB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runSetupWizard(): Promise<void>;
2
+ //# sourceMappingURL=setup-wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../../../src/commands/setup/setup-wizard.ts"],"names":[],"mappings":"AAiBA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA4EpD"}
@@ -0,0 +1,75 @@
1
+ import { clearSetupState, loadSetupState, saveSetupState, } from './setup-context.js';
2
+ import { checkChromaDB } from './steps/check-chromadb.js';
3
+ import { checkDocker } from './steps/check-docker.js';
4
+ import { checkNode } from './steps/check-node.js';
5
+ import { configureMcp } from './steps/configure-mcp.js';
6
+ import { configureVault } from './steps/configure-vault.js';
7
+ import { indexVaultStep } from './steps/index-vault.js';
8
+ import { initVault } from './steps/init-vault.js';
9
+ import { showSummary } from './steps/summary.js';
10
+ import { showWelcome } from './steps/welcome.js';
11
+ import { authenticate } from './steps/authenticate.js';
12
+ export async function runSetupWizard() {
13
+ const ctx = loadSetupState();
14
+ // Show welcome banner
15
+ await showWelcome(ctx);
16
+ // Define all 8 steps (steps 1-3 implemented in Sub-PRD 2, 4-6 implemented in Sub-PRD 3, 7-8 implemented in Sub-PRD 4)
17
+ const steps = [
18
+ { id: 'check-node', label: 'Node.js', run: checkNode },
19
+ { id: 'check-docker', label: 'Docker', run: checkDocker },
20
+ { id: 'check-chromadb', label: 'ChromaDB', run: checkChromaDB },
21
+ { id: 'configure-vault', label: 'Vault Path', run: configureVault },
22
+ { id: 'init-vault', label: 'Vault Init', run: initVault },
23
+ { id: 'index-vault', label: 'Vault Indexing', run: indexVaultStep },
24
+ { id: 'configure-mcp', label: 'MCP Servers', run: configureMcp },
25
+ { id: 'authenticate', label: 'Authentication', run: authenticate },
26
+ ];
27
+ // Register SIGINT handler for graceful shutdown
28
+ const sigintHandler = () => {
29
+ saveSetupState(ctx);
30
+ process.exit(130);
31
+ };
32
+ process.on('SIGINT', sigintHandler);
33
+ // Run steps sequentially
34
+ for (const step of steps) {
35
+ // Skip if already completed
36
+ if (ctx.completedSteps.includes(step.id)) {
37
+ continue;
38
+ }
39
+ // Run step
40
+ const result = await step.run(ctx);
41
+ ctx.results[step.id] = result;
42
+ ctx.completedSteps.push(step.id);
43
+ saveSetupState(ctx);
44
+ // Handle failures based on step type
45
+ if (result.status === 'fail') {
46
+ if (step.id === 'check-node') {
47
+ // Node.js check failure is fatal
48
+ console.error('Node.js version check failed. Please install Node.js 22 or higher.');
49
+ process.exit(1);
50
+ }
51
+ if (step.id === 'check-chromadb') {
52
+ // ChromaDB check failure - prompt to continue
53
+ const { default: inquirer } = await import('inquirer');
54
+ const { continueWithoutChroma } = await inquirer.prompt([
55
+ {
56
+ type: 'confirm',
57
+ name: 'continueWithoutChroma',
58
+ message: 'ChromaDB is not available. Continue without RAG indexing?',
59
+ default: false,
60
+ },
61
+ ]);
62
+ if (!continueWithoutChroma) {
63
+ process.exit(1);
64
+ }
65
+ }
66
+ }
67
+ }
68
+ // Remove SIGINT handler
69
+ process.off('SIGINT', sigintHandler);
70
+ // Show summary
71
+ await showSummary(ctx);
72
+ // Clear state on completion
73
+ clearSetupState();
74
+ }
75
+ //# sourceMappingURL=setup-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../../src/commands/setup/setup-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const setupCommand: Command;
3
+ //# sourceMappingURL=setup.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.command.d.ts","sourceRoot":"","sources":["../../../src/commands/setup/setup.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,YAAY,SAIA,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ import { runSetupWizard } from './setup-wizard.js';
3
+ export const setupCommand = new Command('setup')
4
+ .description('Interactive setup wizard — configures all Delfos CLI dependencies')
5
+ .action(runSetupWizard);
6
+ //# sourceMappingURL=setup.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.command.js","sourceRoot":"","sources":["../../../src/commands/setup/setup.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CACV,mEAAmE,CACpE;KACA,MAAM,CAAC,cAAc,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * authenticate.ts — Step 8: Optional authentication with Delfos platform.
3
+ */
4
+ import type { SetupContext, StepResult } from '../setup-context.js';
5
+ export declare function authenticate(ctx: SetupContext): Promise<StepResult>;
6
+ //# sourceMappingURL=authenticate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../../../../src/commands/setup/steps/authenticate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEpE,wBAAsB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CA0FzE"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * authenticate.ts — Step 8: Optional authentication with Delfos platform.
3
+ */
4
+ import chalk from 'chalk';
5
+ import { readConfig } from '../../../config/cli-config.js';
6
+ import { runLogin } from '../../login.command.js';
7
+ export async function authenticate(ctx) {
8
+ try {
9
+ // Check if already authenticated
10
+ const config = readConfig();
11
+ if (config.token) {
12
+ return { status: 'pass', message: 'Already authenticated' };
13
+ }
14
+ // Prompt user for optional authentication
15
+ const { default: inquirer } = await import('inquirer');
16
+ const { shouldAuth } = await inquirer.prompt([
17
+ {
18
+ type: 'confirm',
19
+ name: 'shouldAuth',
20
+ message: 'Authenticate with the Delfos platform? (optional, for cloud sync)',
21
+ default: false,
22
+ },
23
+ ]);
24
+ if (!shouldAuth) {
25
+ return { status: 'skip', message: "Skipped — run 'delfos login' later" };
26
+ }
27
+ // Override process.exit to prevent wizard termination on login failure/timeout.
28
+ // loginWithBrowser() calls process.exit(1) on timeout but never rejects its
29
+ // Promise, so we race against a guard timeout to guarantee the await settles.
30
+ //
31
+ // During the override window, the wizard's SIGINT handler would call the stub
32
+ // process.exit — so we temporarily replace it with a local handler that aborts
33
+ // the login and restores everything cleanly.
34
+ const LOGIN_GUARD_MS = 130_000;
35
+ const originalExit = process.exit;
36
+ let loginFailed = false;
37
+ let guardTimer;
38
+ // Save and remove existing SIGINT listeners so Ctrl+C during login is handled locally
39
+ const existingSignalListeners = process.listeners('SIGINT');
40
+ process.removeAllListeners('SIGINT');
41
+ const localSigintHandler = () => {
42
+ loginFailed = true;
43
+ };
44
+ process.on('SIGINT', localSigintHandler);
45
+ process.exit = ((_code) => {
46
+ loginFailed = true;
47
+ });
48
+ try {
49
+ const guardPromise = new Promise((resolve) => {
50
+ guardTimer = setTimeout(() => {
51
+ loginFailed = true;
52
+ resolve();
53
+ }, LOGIN_GUARD_MS);
54
+ });
55
+ await Promise.race([
56
+ runLogin({ browser: true, timeout: 120 }).catch(() => {
57
+ loginFailed = true;
58
+ }),
59
+ guardPromise,
60
+ ]);
61
+ }
62
+ catch {
63
+ loginFailed = true;
64
+ }
65
+ finally {
66
+ clearTimeout(guardTimer);
67
+ process.exit = originalExit;
68
+ process.removeListener('SIGINT', localSigintHandler);
69
+ for (const listener of existingSignalListeners) {
70
+ process.on('SIGINT', listener);
71
+ }
72
+ }
73
+ if (loginFailed) {
74
+ ctx.authenticated = false;
75
+ console.log(chalk.yellow('⚠ Auth failed or timed out'));
76
+ return {
77
+ status: 'fail',
78
+ message: 'Auth failed — run delfos login later',
79
+ };
80
+ }
81
+ ctx.authenticated = true;
82
+ return { status: 'pass', message: 'Authenticated via browser' };
83
+ }
84
+ catch (error) {
85
+ return {
86
+ status: 'fail',
87
+ message: error instanceof Error ? error.message : String(error),
88
+ };
89
+ }
90
+ }
91
+ //# sourceMappingURL=authenticate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../../src/commands/setup/steps/authenticate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SetupContext, StepResult } from '../setup-context.js';
2
+ export declare function checkChromaDB(ctx: SetupContext): Promise<StepResult>;
3
+ //# sourceMappingURL=check-chromadb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-chromadb.d.ts","sourceRoot":"","sources":["../../../../src/commands/setup/steps/check-chromadb.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAuIpE,wBAAsB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CA8H1E"}
@@ -0,0 +1,208 @@
1
+ import { execSync } from 'node:child_process';
2
+ import chalk from 'chalk';
3
+ import { writeConfig } from '../../../config/cli-config.js';
4
+ async function checkHeartbeat(host, port) {
5
+ const url = `http://${host}:${port}/api/v1/heartbeat`;
6
+ const fallbackUrl = `http://${host}:${port}/api/v1`;
7
+ try {
8
+ const response = await fetch(url, {
9
+ signal: AbortSignal.timeout(3000),
10
+ });
11
+ return response.ok;
12
+ }
13
+ catch {
14
+ // Try fallback for older ChromaDB versions
15
+ try {
16
+ const response = await fetch(fallbackUrl, {
17
+ signal: AbortSignal.timeout(3000),
18
+ });
19
+ return response.ok;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ }
26
+ async function pollHeartbeat(host, port, maxSeconds = 30) {
27
+ const { default: ora } = await import('ora');
28
+ const spinner = ora('Waiting for ChromaDB to start...').start();
29
+ const startTime = Date.now();
30
+ const interval = 2000; // 2 seconds
31
+ while (Date.now() - startTime < maxSeconds * 1000) {
32
+ const isAlive = await checkHeartbeat(host, port);
33
+ if (isAlive) {
34
+ spinner.succeed('ChromaDB is responding');
35
+ return true;
36
+ }
37
+ await new Promise((resolve) => setTimeout(resolve, interval));
38
+ }
39
+ spinner.fail('ChromaDB did not start within timeout');
40
+ return false;
41
+ }
42
+ async function startChromaContainer(port) {
43
+ const { default: ora } = await import('ora');
44
+ const spinner = ora('Starting ChromaDB container...').start();
45
+ try {
46
+ // Check if container exists
47
+ const containerStatus = execSync('docker ps -a --filter name=delfos-chromadb --format "{{.Status}}"', { stdio: 'pipe', encoding: 'utf-8' }).trim();
48
+ if (containerStatus) {
49
+ // Container exists
50
+ if (containerStatus.includes('Exited')) {
51
+ // Stopped - start it
52
+ execSync('docker start delfos-chromadb', { stdio: 'pipe' });
53
+ spinner.succeed('ChromaDB container started');
54
+ return { success: true, message: 'Container started' };
55
+ }
56
+ else if (containerStatus.includes('Up')) {
57
+ // Running but unreachable - likely port conflict
58
+ spinner.stop();
59
+ return {
60
+ success: false,
61
+ message: 'Container running but unreachable (port conflict?)',
62
+ };
63
+ }
64
+ }
65
+ // Create new container
66
+ const command = `docker run -d --name delfos-chromadb --restart unless-stopped -p ${port}:8000 -v delfos-chroma-data:/chroma/chroma chromadb/chroma:latest`;
67
+ execSync(command, { stdio: 'pipe' });
68
+ spinner.succeed('ChromaDB container created and started');
69
+ return { success: true, message: 'Container created' };
70
+ }
71
+ catch (error) {
72
+ const errorMessage = error instanceof Error ? error.message : String(error);
73
+ spinner.fail(`Failed to start ChromaDB: ${errorMessage}`);
74
+ return { success: false, message: errorMessage };
75
+ }
76
+ }
77
+ async function promptCustomHostPort() {
78
+ const { default: inquirer } = await import('inquirer');
79
+ const { custom } = await inquirer.prompt([
80
+ {
81
+ type: 'confirm',
82
+ name: 'custom',
83
+ message: 'Use custom ChromaDB host:port?',
84
+ default: false,
85
+ },
86
+ ]);
87
+ if (!custom) {
88
+ return { host: 'localhost', port: 8000, accepted: false };
89
+ }
90
+ const { hostPort } = await inquirer.prompt([
91
+ {
92
+ type: 'input',
93
+ name: 'hostPort',
94
+ message: 'Enter ChromaDB host:port (e.g., localhost:8000)',
95
+ default: 'localhost:8000',
96
+ validate: (input) => {
97
+ const parts = input.split(':');
98
+ if (parts.length !== 2) {
99
+ return 'Invalid format. Use host:port (e.g., localhost:8000)';
100
+ }
101
+ const port = parseInt(parts[1], 10);
102
+ if (isNaN(port) || port < 1 || port > 65535) {
103
+ return 'Invalid port number';
104
+ }
105
+ return true;
106
+ },
107
+ },
108
+ ]);
109
+ const [host, portStr] = hostPort.split(':');
110
+ const port = parseInt(portStr, 10);
111
+ return { host, port, accepted: true };
112
+ }
113
+ export async function checkChromaDB(ctx) {
114
+ const host = ctx.chromaHost;
115
+ const port = ctx.chromaPort;
116
+ // Heartbeat check
117
+ const isAlive = await checkHeartbeat(host, port);
118
+ if (isAlive) {
119
+ ctx.chromaMethod = 'docker';
120
+ console.log(chalk.green('✓'), ` ChromaDB running at ${host}:${port}`);
121
+ return { status: 'pass', message: `${host}:${port}` };
122
+ }
123
+ // Check if Docker was skipped
124
+ const dockerResult = ctx.results['check-docker'];
125
+ if (dockerResult?.status !== 'pass') {
126
+ ctx.chromaMethod = 'none';
127
+ console.log(chalk.yellow('⚠'), ' Docker unavailable — ChromaDB skipped');
128
+ console.log(chalk.yellow('\nAlternative: Install ChromaDB via pip'));
129
+ console.log(chalk.gray(' pip install chromadb && chroma run --host localhost --port 8000 --path ~/.delfos/chroma-data'));
130
+ return {
131
+ status: 'skip',
132
+ message: 'Docker unavailable — install ChromaDB manually',
133
+ };
134
+ }
135
+ // Docker is available - offer to start ChromaDB
136
+ console.log(chalk.yellow('⚠'), ` ChromaDB not reachable at ${host}:${port}`);
137
+ const { default: inquirer } = await import('inquirer');
138
+ const { action } = await inquirer.prompt([
139
+ {
140
+ type: 'list',
141
+ name: 'action',
142
+ message: 'Start ChromaDB via Docker?',
143
+ choices: [
144
+ { name: 'Yes (default)', value: 'yes' },
145
+ { name: 'Custom host:port', value: 'custom' },
146
+ { name: 'Skip', value: 'skip' },
147
+ ],
148
+ default: 'yes',
149
+ },
150
+ ]);
151
+ if (action === 'skip') {
152
+ ctx.chromaMethod = 'none';
153
+ console.log(chalk.yellow('⚠'), ' Skipped — RAG indexing will not work');
154
+ return {
155
+ status: 'skip',
156
+ message: 'Skipped by user',
157
+ };
158
+ }
159
+ if (action === 'custom') {
160
+ const { host: customHost, port: customPort, accepted, } = await promptCustomHostPort();
161
+ if (!accepted) {
162
+ return checkChromaDB(ctx); // Retry with default
163
+ }
164
+ ctx.chromaHost = customHost;
165
+ ctx.chromaPort = customPort;
166
+ const customAlive = await checkHeartbeat(customHost, customPort);
167
+ if (customAlive) {
168
+ ctx.chromaMethod = 'docker';
169
+ console.log(chalk.green('✓'), ` ChromaDB running at ${customHost}:${customPort}`);
170
+ return { status: 'pass', message: `${customHost}:${customPort}` };
171
+ }
172
+ console.log(chalk.red('✗'), ` ChromaDB not reachable at ${customHost}:${customPort}`);
173
+ return {
174
+ status: 'fail',
175
+ message: `ChromaDB not reachable at ${customHost}:${customPort}`,
176
+ };
177
+ }
178
+ // Start ChromaDB via Docker
179
+ const startResult = await startChromaContainer(port);
180
+ if (!startResult.success) {
181
+ return {
182
+ status: 'fail',
183
+ message: startResult.message,
184
+ };
185
+ }
186
+ // Poll for heartbeat
187
+ const alive = await pollHeartbeat(host, port, 30);
188
+ if (!alive) {
189
+ return {
190
+ status: 'fail',
191
+ message: 'ChromaDB container started but not responding',
192
+ };
193
+ }
194
+ // Save config
195
+ try {
196
+ await writeConfig({ chromaPersistDir: 'delfos-chroma-data' });
197
+ }
198
+ catch (error) {
199
+ console.log(chalk.yellow('\nWarning: Failed to save ChromaDB config'), error instanceof Error ? error.message : String(error));
200
+ }
201
+ ctx.chromaMethod = 'docker';
202
+ console.log(chalk.green('✓'), ` ChromaDB running at ${host}:${port} (docker)`);
203
+ return {
204
+ status: 'pass',
205
+ message: `${host}:${port} (docker)`,
206
+ };
207
+ }
208
+ //# sourceMappingURL=check-chromadb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-chromadb.js","sourceRoot":"","sources":["../../../../src/commands/setup/steps/check-chromadb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SetupContext, StepResult } from '../setup-context.js';
2
+ export declare function checkDocker(ctx: SetupContext): Promise<StepResult>;
3
+ //# sourceMappingURL=check-docker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-docker.d.ts","sourceRoot":"","sources":["../../../../src/commands/setup/steps/check-docker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAmLpE,wBAAsB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CA0HxE"}