@sylphx/flow 1.0.1 → 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/CHANGELOG.md +12 -0
- package/package.json +10 -9
- package/src/commands/codebase-command.ts +168 -0
- package/src/commands/flow-command.ts +1137 -0
- package/src/commands/flow-orchestrator.ts +296 -0
- package/src/commands/hook-command.ts +444 -0
- package/src/commands/init-command.ts +92 -0
- package/src/commands/init-core.ts +322 -0
- package/src/commands/knowledge-command.ts +161 -0
- package/src/commands/run-command.ts +120 -0
- package/src/components/benchmark-monitor.tsx +331 -0
- package/src/components/reindex-progress.tsx +261 -0
- package/src/composables/functional/index.ts +14 -0
- package/src/composables/functional/useEnvironment.ts +171 -0
- package/src/composables/functional/useFileSystem.ts +139 -0
- package/src/composables/index.ts +5 -0
- package/src/composables/useEnv.ts +13 -0
- package/src/composables/useRuntimeConfig.ts +27 -0
- package/src/composables/useTargetConfig.ts +45 -0
- package/src/config/ai-config.ts +376 -0
- package/src/config/constants.ts +35 -0
- package/src/config/index.ts +27 -0
- package/src/config/rules.ts +43 -0
- package/src/config/servers.ts +371 -0
- package/src/config/targets.ts +126 -0
- package/src/core/agent-loader.ts +141 -0
- package/src/core/agent-manager.ts +174 -0
- package/src/core/ai-sdk.ts +603 -0
- package/src/core/app-factory.ts +381 -0
- package/src/core/builtin-agents.ts +9 -0
- package/src/core/command-system.ts +550 -0
- package/src/core/config-system.ts +550 -0
- package/src/core/connection-pool.ts +390 -0
- package/src/core/di-container.ts +155 -0
- package/src/core/error-handling.ts +519 -0
- package/src/core/formatting/bytes.test.ts +115 -0
- package/src/core/formatting/bytes.ts +64 -0
- package/src/core/functional/async.ts +313 -0
- package/src/core/functional/either.ts +109 -0
- package/src/core/functional/error-handler.ts +135 -0
- package/src/core/functional/error-types.ts +311 -0
- package/src/core/functional/index.ts +19 -0
- package/src/core/functional/option.ts +142 -0
- package/src/core/functional/pipe.ts +189 -0
- package/src/core/functional/result.ts +204 -0
- package/src/core/functional/validation.ts +138 -0
- package/src/core/headless-display.ts +96 -0
- package/src/core/index.ts +6 -0
- package/src/core/installers/file-installer.ts +303 -0
- package/src/core/installers/mcp-installer.ts +213 -0
- package/src/core/interfaces/index.ts +22 -0
- package/src/core/interfaces/repository.interface.ts +91 -0
- package/src/core/interfaces/service.interface.ts +133 -0
- package/src/core/interfaces.ts +129 -0
- package/src/core/loop-controller.ts +200 -0
- package/src/core/result.ts +351 -0
- package/src/core/rule-loader.ts +147 -0
- package/src/core/rule-manager.ts +240 -0
- package/src/core/service-config.ts +252 -0
- package/src/core/session-service.ts +121 -0
- package/src/core/state-detector.ts +389 -0
- package/src/core/storage-factory.ts +115 -0
- package/src/core/stream-handler.ts +288 -0
- package/src/core/target-manager.ts +161 -0
- package/src/core/type-utils.ts +427 -0
- package/src/core/unified-storage.ts +456 -0
- package/src/core/upgrade-manager.ts +300 -0
- package/src/core/validation/limit.test.ts +155 -0
- package/src/core/validation/limit.ts +46 -0
- package/src/core/validation/query.test.ts +44 -0
- package/src/core/validation/query.ts +20 -0
- package/src/db/auto-migrate.ts +322 -0
- package/src/db/base-database-client.ts +144 -0
- package/src/db/cache-db.ts +218 -0
- package/src/db/cache-schema.ts +75 -0
- package/src/db/database.ts +70 -0
- package/src/db/index.ts +252 -0
- package/src/db/memory-db.ts +153 -0
- package/src/db/memory-schema.ts +29 -0
- package/src/db/schema.ts +289 -0
- package/src/db/session-repository.ts +733 -0
- package/src/domains/codebase/index.ts +5 -0
- package/src/domains/codebase/tools.ts +139 -0
- package/src/domains/index.ts +8 -0
- package/src/domains/knowledge/index.ts +10 -0
- package/src/domains/knowledge/resources.ts +537 -0
- package/src/domains/knowledge/tools.ts +174 -0
- package/src/domains/utilities/index.ts +6 -0
- package/src/domains/utilities/time/index.ts +5 -0
- package/src/domains/utilities/time/tools.ts +291 -0
- package/src/index.ts +211 -0
- package/src/services/agent-service.ts +273 -0
- package/src/services/claude-config-service.ts +252 -0
- package/src/services/config-service.ts +258 -0
- package/src/services/evaluation-service.ts +271 -0
- package/src/services/functional/evaluation-logic.ts +296 -0
- package/src/services/functional/file-processor.ts +273 -0
- package/src/services/functional/index.ts +12 -0
- package/src/services/index.ts +13 -0
- package/src/services/mcp-service.ts +432 -0
- package/src/services/memory.service.ts +476 -0
- package/src/services/search/base-indexer.ts +156 -0
- package/src/services/search/codebase-indexer-types.ts +38 -0
- package/src/services/search/codebase-indexer.ts +647 -0
- package/src/services/search/embeddings-provider.ts +455 -0
- package/src/services/search/embeddings.ts +316 -0
- package/src/services/search/functional-indexer.ts +323 -0
- package/src/services/search/index.ts +27 -0
- package/src/services/search/indexer.ts +380 -0
- package/src/services/search/knowledge-indexer.ts +422 -0
- package/src/services/search/semantic-search.ts +244 -0
- package/src/services/search/tfidf.ts +559 -0
- package/src/services/search/unified-search-service.ts +888 -0
- package/src/services/smart-config-service.ts +385 -0
- package/src/services/storage/cache-storage.ts +487 -0
- package/src/services/storage/drizzle-storage.ts +581 -0
- package/src/services/storage/index.ts +15 -0
- package/src/services/storage/lancedb-vector-storage.ts +494 -0
- package/src/services/storage/memory-storage.ts +268 -0
- package/src/services/storage/separated-storage.ts +467 -0
- package/src/services/storage/vector-storage.ts +13 -0
- package/src/shared/agents/index.ts +63 -0
- package/src/shared/files/index.ts +99 -0
- package/src/shared/index.ts +32 -0
- package/src/shared/logging/index.ts +24 -0
- package/src/shared/processing/index.ts +153 -0
- package/src/shared/types/index.ts +25 -0
- package/src/targets/claude-code.ts +574 -0
- package/src/targets/functional/claude-code-logic.ts +185 -0
- package/src/targets/functional/index.ts +6 -0
- package/src/targets/opencode.ts +529 -0
- package/src/types/agent.types.ts +32 -0
- package/src/types/api/batch.ts +108 -0
- package/src/types/api/errors.ts +118 -0
- package/src/types/api/index.ts +55 -0
- package/src/types/api/requests.ts +76 -0
- package/src/types/api/responses.ts +180 -0
- package/src/types/api/websockets.ts +85 -0
- package/src/types/api.types.ts +9 -0
- package/src/types/benchmark.ts +49 -0
- package/src/types/cli.types.ts +87 -0
- package/src/types/common.types.ts +35 -0
- package/src/types/database.types.ts +510 -0
- package/src/types/mcp-config.types.ts +448 -0
- package/src/types/mcp.types.ts +69 -0
- package/src/types/memory-types.ts +63 -0
- package/src/types/provider.types.ts +28 -0
- package/src/types/rule.types.ts +24 -0
- package/src/types/session.types.ts +214 -0
- package/src/types/target-config.types.ts +295 -0
- package/src/types/target.types.ts +140 -0
- package/src/types/todo.types.ts +25 -0
- package/src/types.ts +40 -0
- package/src/utils/advanced-tokenizer.ts +191 -0
- package/src/utils/agent-enhancer.ts +114 -0
- package/src/utils/ai-model-fetcher.ts +19 -0
- package/src/utils/async-file-operations.ts +516 -0
- package/src/utils/audio-player.ts +345 -0
- package/src/utils/cli-output.ts +266 -0
- package/src/utils/codebase-helpers.ts +211 -0
- package/src/utils/console-ui.ts +79 -0
- package/src/utils/database-errors.ts +140 -0
- package/src/utils/debug-logger.ts +49 -0
- package/src/utils/error-handler.ts +53 -0
- package/src/utils/file-operations.ts +310 -0
- package/src/utils/file-scanner.ts +259 -0
- package/src/utils/functional/array.ts +355 -0
- package/src/utils/functional/index.ts +15 -0
- package/src/utils/functional/object.ts +279 -0
- package/src/utils/functional/string.ts +281 -0
- package/src/utils/functional.ts +543 -0
- package/src/utils/help.ts +20 -0
- package/src/utils/immutable-cache.ts +106 -0
- package/src/utils/index.ts +78 -0
- package/src/utils/jsonc.ts +158 -0
- package/src/utils/logger.ts +396 -0
- package/src/utils/mcp-config.ts +249 -0
- package/src/utils/memory-tui.ts +414 -0
- package/src/utils/models-dev.ts +91 -0
- package/src/utils/notifications.ts +169 -0
- package/src/utils/object-utils.ts +51 -0
- package/src/utils/parallel-operations.ts +487 -0
- package/src/utils/paths.ts +143 -0
- package/src/utils/process-manager.ts +155 -0
- package/src/utils/prompts.ts +120 -0
- package/src/utils/search-tool-builder.ts +214 -0
- package/src/utils/secret-utils.ts +179 -0
- package/src/utils/security.ts +537 -0
- package/src/utils/session-manager.ts +168 -0
- package/src/utils/session-title.ts +87 -0
- package/src/utils/settings.ts +182 -0
- package/src/utils/simplified-errors.ts +410 -0
- package/src/utils/sync-utils.ts +159 -0
- package/src/utils/target-config.ts +570 -0
- package/src/utils/target-utils.ts +394 -0
- package/src/utils/template-engine.ts +94 -0
- package/src/utils/test-audio.ts +71 -0
- package/src/utils/todo-context.ts +46 -0
- package/src/utils/token-counter.ts +288 -0
- package/dist/index.d.ts +0 -10
- package/dist/index.js +0 -59554
- package/dist/lancedb.linux-x64-gnu-b7f0jgsz.node +0 -0
- package/dist/lancedb.linux-x64-musl-tgcv22rx.node +0 -0
- package/dist/shared/chunk-25dwp0dp.js +0 -89
- package/dist/shared/chunk-3pjb6063.js +0 -208
- package/dist/shared/chunk-4d6ydpw7.js +0 -2854
- package/dist/shared/chunk-4wjcadjk.js +0 -225
- package/dist/shared/chunk-5j4w74t6.js +0 -30
- package/dist/shared/chunk-5j8m3dh3.js +0 -58
- package/dist/shared/chunk-5thh3qem.js +0 -91
- package/dist/shared/chunk-6g9xy73m.js +0 -252
- package/dist/shared/chunk-7eq34c42.js +0 -23
- package/dist/shared/chunk-c2gwgx3r.js +0 -115
- package/dist/shared/chunk-cjd3mk4c.js +0 -1320
- package/dist/shared/chunk-g5cv6703.js +0 -368
- package/dist/shared/chunk-hpkhykhq.js +0 -574
- package/dist/shared/chunk-m2322pdk.js +0 -122
- package/dist/shared/chunk-nd5fdvaq.js +0 -26
- package/dist/shared/chunk-pgd3m6zf.js +0 -108
- package/dist/shared/chunk-qk8n91hw.js +0 -494
- package/dist/shared/chunk-rkkn8szp.js +0 -16855
- package/dist/shared/chunk-t16rfxh0.js +0 -61
- package/dist/shared/chunk-t4fbfa5v.js +0 -19
- package/dist/shared/chunk-t77h86w6.js +0 -276
- package/dist/shared/chunk-v0ez4aef.js +0 -71
- package/dist/shared/chunk-v29j2r3s.js +0 -32051
- package/dist/shared/chunk-vfbc6ew5.js +0 -765
- package/dist/shared/chunk-vmeqwm1c.js +0 -204
- package/dist/shared/chunk-x66eh37x.js +0 -137
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File processing and batch operation utilities
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { ensureDirectory, readFileSafe, writeFileSafe } from '../../utils/file-operations.js';
|
|
7
|
+
import { getLocalFileInfo } from '../files/index.js';
|
|
8
|
+
import { log } from '../logging/index.js';
|
|
9
|
+
import type { ProcessResult } from '../types/index.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Process a batch of files with content transformation
|
|
13
|
+
* @param filePaths - Array of file paths to process
|
|
14
|
+
* @param targetDir - Target directory
|
|
15
|
+
* @param extension - Target file extension
|
|
16
|
+
* @param processContent - Function to transform content
|
|
17
|
+
* @param flatten - Whether to flatten directory structure
|
|
18
|
+
* @param results - Array to store process results
|
|
19
|
+
* @param pathPrefix - Prefix for source file paths
|
|
20
|
+
*/
|
|
21
|
+
export async function processBatch(
|
|
22
|
+
filePaths: string[],
|
|
23
|
+
targetDir: string,
|
|
24
|
+
extension: string,
|
|
25
|
+
processContent: (content: string) => string,
|
|
26
|
+
flatten: boolean,
|
|
27
|
+
results: ProcessResult[],
|
|
28
|
+
pathPrefix = ''
|
|
29
|
+
): Promise<void> {
|
|
30
|
+
for (const filePath of filePaths) {
|
|
31
|
+
// filePath is now just the filename (e.g., "sdd-constitution.md")
|
|
32
|
+
// not the full path with prefix
|
|
33
|
+
const destPath = flatten
|
|
34
|
+
? path.join(targetDir, `${path.basename(filePath, path.extname(filePath))}${extension}`)
|
|
35
|
+
: path.join(targetDir, filePath);
|
|
36
|
+
|
|
37
|
+
// Ensure destination directory exists
|
|
38
|
+
const destDir = path.dirname(destPath);
|
|
39
|
+
await ensureDirectory(destDir);
|
|
40
|
+
|
|
41
|
+
const localInfo = await getLocalFileInfo(destPath);
|
|
42
|
+
const isNew = !localInfo;
|
|
43
|
+
|
|
44
|
+
// Read content from source - construct the full path from project root
|
|
45
|
+
const projectRoot = process.cwd();
|
|
46
|
+
const sourcePath = path.join(projectRoot, pathPrefix, filePath);
|
|
47
|
+
const fileContent = await readFileSafe(sourcePath);
|
|
48
|
+
if (fileContent === null) {
|
|
49
|
+
continue; // Skip if source file doesn't exist
|
|
50
|
+
}
|
|
51
|
+
let content = fileContent;
|
|
52
|
+
content = processContent(content);
|
|
53
|
+
|
|
54
|
+
const localProcessed = localInfo ? processContent(localInfo.content) : '';
|
|
55
|
+
const contentChanged = !localInfo || localProcessed !== content;
|
|
56
|
+
|
|
57
|
+
if (contentChanged) {
|
|
58
|
+
await writeFileSafe(destPath, content);
|
|
59
|
+
results.push({
|
|
60
|
+
file: path.relative(targetDir, destPath),
|
|
61
|
+
status: isNew ? 'added' : 'updated',
|
|
62
|
+
action: isNew ? 'Created' : 'Updated',
|
|
63
|
+
});
|
|
64
|
+
} else {
|
|
65
|
+
results.push({
|
|
66
|
+
file: path.relative(targetDir, destPath),
|
|
67
|
+
status: 'current',
|
|
68
|
+
action: 'Already current',
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Display processing results with optional verbose output
|
|
76
|
+
* @param results - Array of process results
|
|
77
|
+
* @param targetDir - Target directory
|
|
78
|
+
* @param agentName - Name of agent
|
|
79
|
+
* @param operation - Operation description
|
|
80
|
+
* @param verbose - Whether to show verbose output
|
|
81
|
+
* @param quiet - Whether to suppress all output
|
|
82
|
+
*/
|
|
83
|
+
export async function displayResults(
|
|
84
|
+
results: ProcessResult[],
|
|
85
|
+
targetDir: string,
|
|
86
|
+
agentName: string,
|
|
87
|
+
operation: string,
|
|
88
|
+
verbose = false,
|
|
89
|
+
quiet = false
|
|
90
|
+
): Promise<void> {
|
|
91
|
+
// If quiet mode, don't display anything
|
|
92
|
+
if (quiet) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (!verbose) {
|
|
97
|
+
// Simple summary for non-verbose mode
|
|
98
|
+
const total = results.length;
|
|
99
|
+
const changed = results.filter((r) => r.status === 'added' || r.status === 'updated').length;
|
|
100
|
+
|
|
101
|
+
if (changed > 0) {
|
|
102
|
+
console.log(`✓ ${changed} files updated`);
|
|
103
|
+
} else {
|
|
104
|
+
console.log(`✓ All ${total} files already current`);
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
console.log(`\n📊 ${operation} Results for ${agentName}`);
|
|
110
|
+
console.log('=====================================');
|
|
111
|
+
|
|
112
|
+
const grouped = results.reduce(
|
|
113
|
+
(acc, result) => {
|
|
114
|
+
if (!acc[result.status]) {
|
|
115
|
+
acc[result.status] = [];
|
|
116
|
+
}
|
|
117
|
+
acc[result.status].push(result);
|
|
118
|
+
return acc;
|
|
119
|
+
},
|
|
120
|
+
{} as Record<string, ProcessResult[]>
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
const statusOrder = ['added', 'updated', 'current', 'skipped'];
|
|
124
|
+
const statusColors = {
|
|
125
|
+
added: 'green',
|
|
126
|
+
updated: 'yellow',
|
|
127
|
+
current: 'blue',
|
|
128
|
+
skipped: 'magenta',
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
for (const status of statusOrder) {
|
|
132
|
+
const items = grouped[status];
|
|
133
|
+
if (items && items.length > 0) {
|
|
134
|
+
const color = statusColors[status as keyof typeof statusColors];
|
|
135
|
+
log(`${status.toUpperCase()} (${items.length}):`, color);
|
|
136
|
+
for (const item of items) {
|
|
137
|
+
log(` ${item.file} - ${item.action}`, color);
|
|
138
|
+
}
|
|
139
|
+
console.log('');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const total = results.length;
|
|
144
|
+
const changed = results.filter((r) => r.status === 'added' || r.status === 'updated').length;
|
|
145
|
+
|
|
146
|
+
if (changed > 0) {
|
|
147
|
+
log(`✓ ${operation} complete: ${changed}/${total} files modified`, 'green');
|
|
148
|
+
} else {
|
|
149
|
+
log(`✓ ${operation} complete: All ${total} files already current`, 'blue');
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
console.log(`📁 Target directory: ${targetDir}`);
|
|
153
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for common operations and configurations
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Re-export CommonOptions from centralized location
|
|
6
|
+
export type { CommonOptions } from '../../types/common.types.js';
|
|
7
|
+
|
|
8
|
+
export interface ProcessResult {
|
|
9
|
+
file: string;
|
|
10
|
+
status: 'added' | 'updated' | 'current' | 'skipped';
|
|
11
|
+
action: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface AgentConfig {
|
|
15
|
+
name: string;
|
|
16
|
+
dir: string;
|
|
17
|
+
extension: string;
|
|
18
|
+
stripYaml: boolean;
|
|
19
|
+
flatten: boolean;
|
|
20
|
+
description: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface AgentConfigs {
|
|
24
|
+
[key: string]: AgentConfig;
|
|
25
|
+
}
|