@auto-engineer/cli 0.13.3 → 0.15.0

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 (158) hide show
  1. package/CHANGELOG.md +9 -863
  2. package/README.md +161 -203
  3. package/dist/bin/auto.js +4 -4
  4. package/dist/bin/auto.js.map +1 -1
  5. package/dist/src/config-loader.d.ts +12 -0
  6. package/dist/src/config-loader.d.ts.map +1 -0
  7. package/dist/src/config-loader.js +24 -0
  8. package/dist/src/config-loader.js.map +1 -0
  9. package/dist/src/file-syncer/crypto/jwe-encryptor.d.ts.map +1 -0
  10. package/dist/src/{server/file-syncer → file-syncer}/crypto/jwe-encryptor.js +1 -1
  11. package/dist/src/file-syncer/crypto/jwe-encryptor.js.map +1 -0
  12. package/dist/src/file-syncer/crypto/provider-resolver.d.ts.map +1 -0
  13. package/dist/src/{server/file-syncer → file-syncer}/crypto/provider-resolver.js +2 -2
  14. package/dist/src/file-syncer/crypto/provider-resolver.js.map +1 -0
  15. package/dist/src/file-syncer/discovery/bareImports.d.ts +3 -0
  16. package/dist/src/file-syncer/discovery/bareImports.d.ts.map +1 -0
  17. package/dist/src/file-syncer/discovery/bareImports.js.map +1 -0
  18. package/dist/src/{server/file-syncer → file-syncer}/discovery/dts.d.ts +1 -1
  19. package/dist/src/file-syncer/discovery/dts.d.ts.map +1 -0
  20. package/dist/src/file-syncer/discovery/dts.js.map +1 -0
  21. package/dist/src/file-syncer/index.d.ts.map +1 -0
  22. package/dist/src/{server/file-syncer → file-syncer}/index.js +6 -6
  23. package/dist/src/file-syncer/index.js.map +1 -0
  24. package/dist/src/{server/file-syncer → file-syncer}/sync/resolveSyncFileSet.d.ts +1 -1
  25. package/dist/src/file-syncer/sync/resolveSyncFileSet.d.ts.map +1 -0
  26. package/dist/src/{server/file-syncer → file-syncer}/sync/resolveSyncFileSet.js +2 -2
  27. package/dist/src/file-syncer/sync/resolveSyncFileSet.js.map +1 -0
  28. package/dist/src/file-syncer/types/wire.d.ts.map +1 -0
  29. package/dist/src/file-syncer/types/wire.js.map +1 -0
  30. package/dist/src/{server/file-syncer → file-syncer}/utils/hash.d.ts +1 -1
  31. package/dist/src/file-syncer/utils/hash.d.ts.map +1 -0
  32. package/dist/src/file-syncer/utils/hash.js.map +1 -0
  33. package/dist/src/file-syncer/utils/path.d.ts.map +1 -0
  34. package/dist/src/{server/file-syncer → file-syncer}/utils/path.js +2 -2
  35. package/dist/src/file-syncer/utils/path.js.map +1 -0
  36. package/dist/src/index.d.ts +1 -1
  37. package/dist/src/index.d.ts.map +1 -1
  38. package/dist/src/index.js +294 -416
  39. package/dist/src/index.js.map +1 -1
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +8 -50
  42. package/dist/src/dsl/index.d.ts +0 -71
  43. package/dist/src/dsl/index.d.ts.map +0 -1
  44. package/dist/src/dsl/index.js +0 -504
  45. package/dist/src/dsl/index.js.map +0 -1
  46. package/dist/src/dsl/types.d.ts +0 -39
  47. package/dist/src/dsl/types.d.ts.map +0 -1
  48. package/dist/src/dsl/types.js +0 -2
  49. package/dist/src/dsl/types.js.map +0 -1
  50. package/dist/src/dsl-exports.d.ts +0 -5
  51. package/dist/src/dsl-exports.d.ts.map +0 -1
  52. package/dist/src/dsl-exports.js +0 -4
  53. package/dist/src/dsl-exports.js.map +0 -1
  54. package/dist/src/plugin-loader.d.ts +0 -84
  55. package/dist/src/plugin-loader.d.ts.map +0 -1
  56. package/dist/src/plugin-loader.js +0 -801
  57. package/dist/src/plugin-loader.js.map +0 -1
  58. package/dist/src/server/command-metadata-service.d.ts +0 -27
  59. package/dist/src/server/command-metadata-service.d.ts.map +0 -1
  60. package/dist/src/server/command-metadata-service.js +0 -69
  61. package/dist/src/server/command-metadata-service.js.map +0 -1
  62. package/dist/src/server/command-registry.d.ts +0 -21
  63. package/dist/src/server/command-registry.d.ts.map +0 -1
  64. package/dist/src/server/command-registry.js +0 -58
  65. package/dist/src/server/command-registry.js.map +0 -1
  66. package/dist/src/server/config-loader.d.ts +0 -16
  67. package/dist/src/server/config-loader.d.ts.map +0 -1
  68. package/dist/src/server/config-loader.js +0 -106
  69. package/dist/src/server/config-loader.js.map +0 -1
  70. package/dist/src/server/event-processor.d.ts +0 -45
  71. package/dist/src/server/event-processor.d.ts.map +0 -1
  72. package/dist/src/server/event-processor.js +0 -287
  73. package/dist/src/server/event-processor.js.map +0 -1
  74. package/dist/src/server/file-syncer/crypto/jwe-encryptor.d.ts.map +0 -1
  75. package/dist/src/server/file-syncer/crypto/jwe-encryptor.js.map +0 -1
  76. package/dist/src/server/file-syncer/crypto/provider-resolver.d.ts.map +0 -1
  77. package/dist/src/server/file-syncer/crypto/provider-resolver.js.map +0 -1
  78. package/dist/src/server/file-syncer/discovery/bareImports.d.ts +0 -3
  79. package/dist/src/server/file-syncer/discovery/bareImports.d.ts.map +0 -1
  80. package/dist/src/server/file-syncer/discovery/bareImports.js.map +0 -1
  81. package/dist/src/server/file-syncer/discovery/dts.d.ts.map +0 -1
  82. package/dist/src/server/file-syncer/discovery/dts.js.map +0 -1
  83. package/dist/src/server/file-syncer/index.d.ts.map +0 -1
  84. package/dist/src/server/file-syncer/index.js.map +0 -1
  85. package/dist/src/server/file-syncer/sync/resolveSyncFileSet.d.ts.map +0 -1
  86. package/dist/src/server/file-syncer/sync/resolveSyncFileSet.js.map +0 -1
  87. package/dist/src/server/file-syncer/types/wire.d.ts.map +0 -1
  88. package/dist/src/server/file-syncer/types/wire.js.map +0 -1
  89. package/dist/src/server/file-syncer/utils/hash.d.ts.map +0 -1
  90. package/dist/src/server/file-syncer/utils/hash.js.map +0 -1
  91. package/dist/src/server/file-syncer/utils/path.d.ts.map +0 -1
  92. package/dist/src/server/file-syncer/utils/path.js.map +0 -1
  93. package/dist/src/server/http-routes.d.ts +0 -30
  94. package/dist/src/server/http-routes.d.ts.map +0 -1
  95. package/dist/src/server/http-routes.js +0 -394
  96. package/dist/src/server/http-routes.js.map +0 -1
  97. package/dist/src/server/sandbox-landing-page.html +0 -367
  98. package/dist/src/server/server.d.ts +0 -106
  99. package/dist/src/server/server.d.ts.map +0 -1
  100. package/dist/src/server/server.js +0 -255
  101. package/dist/src/server/server.js.map +0 -1
  102. package/dist/src/server/services/child-process-manager.d.ts +0 -27
  103. package/dist/src/server/services/child-process-manager.d.ts.map +0 -1
  104. package/dist/src/server/services/child-process-manager.js +0 -126
  105. package/dist/src/server/services/child-process-manager.js.map +0 -1
  106. package/dist/src/server/services/index.d.ts +0 -3
  107. package/dist/src/server/services/index.d.ts.map +0 -1
  108. package/dist/src/server/services/index.js +0 -2
  109. package/dist/src/server/services/index.js.map +0 -1
  110. package/dist/src/server/services/interface.d.ts +0 -6
  111. package/dist/src/server/services/interface.d.ts.map +0 -1
  112. package/dist/src/server/services/interface.js +0 -2
  113. package/dist/src/server/services/interface.js.map +0 -1
  114. package/dist/src/server/settled-tracker.d.ts +0 -29
  115. package/dist/src/server/settled-tracker.d.ts.map +0 -1
  116. package/dist/src/server/settled-tracker.js +0 -203
  117. package/dist/src/server/settled-tracker.js.map +0 -1
  118. package/dist/src/server/state-manager.d.ts +0 -24
  119. package/dist/src/server/state-manager.d.ts.map +0 -1
  120. package/dist/src/server/state-manager.js +0 -56
  121. package/dist/src/server/state-manager.js.map +0 -1
  122. package/dist/src/server/websocket-handler.d.ts +0 -5
  123. package/dist/src/server/websocket-handler.d.ts.map +0 -1
  124. package/dist/src/server/websocket-handler.js +0 -40
  125. package/dist/src/server/websocket-handler.js.map +0 -1
  126. package/dist/src/utils/analytics.d.ts +0 -21
  127. package/dist/src/utils/analytics.d.ts.map +0 -1
  128. package/dist/src/utils/analytics.js +0 -41
  129. package/dist/src/utils/analytics.js.map +0 -1
  130. package/dist/src/utils/config.d.ts +0 -11
  131. package/dist/src/utils/config.d.ts.map +0 -1
  132. package/dist/src/utils/config.js +0 -50
  133. package/dist/src/utils/config.js.map +0 -1
  134. package/dist/src/utils/correlation-id.d.ts +0 -3
  135. package/dist/src/utils/correlation-id.d.ts.map +0 -1
  136. package/dist/src/utils/correlation-id.js +0 -7
  137. package/dist/src/utils/correlation-id.js.map +0 -1
  138. package/dist/src/utils/errors.d.ts +0 -22
  139. package/dist/src/utils/errors.d.ts.map +0 -1
  140. package/dist/src/utils/errors.js +0 -50
  141. package/dist/src/utils/errors.js.map +0 -1
  142. package/dist/src/utils/get-package-version.d.ts +0 -7
  143. package/dist/src/utils/get-package-version.d.ts.map +0 -1
  144. package/dist/src/utils/get-package-version.js +0 -31
  145. package/dist/src/utils/get-package-version.js.map +0 -1
  146. package/dist/src/utils/terminal.d.ts +0 -13
  147. package/dist/src/utils/terminal.d.ts.map +0 -1
  148. package/dist/src/utils/terminal.js +0 -85
  149. package/dist/src/utils/terminal.js.map +0 -1
  150. /package/dist/src/{server/file-syncer → file-syncer}/crypto/jwe-encryptor.d.ts +0 -0
  151. /package/dist/src/{server/file-syncer → file-syncer}/crypto/provider-resolver.d.ts +0 -0
  152. /package/dist/src/{server/file-syncer → file-syncer}/discovery/bareImports.js +0 -0
  153. /package/dist/src/{server/file-syncer → file-syncer}/discovery/dts.js +0 -0
  154. /package/dist/src/{server/file-syncer → file-syncer}/index.d.ts +0 -0
  155. /package/dist/src/{server/file-syncer → file-syncer}/types/wire.d.ts +0 -0
  156. /package/dist/src/{server/file-syncer → file-syncer}/types/wire.js +0 -0
  157. /package/dist/src/{server/file-syncer → file-syncer}/utils/hash.js +0 -0
  158. /package/dist/src/{server/file-syncer → file-syncer}/utils/path.d.ts +0 -0
package/README.md CHANGED
@@ -1,283 +1,241 @@
1
1
  # @auto-engineer/cli
2
2
 
3
- CLI interface for Auto Engineer - a plugin-based command-line tool for building applications with AI assistance.
4
-
5
- ## Features
6
-
7
- - Plugin-based architecture - Install only the functionality you need
8
- - POSIX-compliant command line arguments
9
- - Interactive prompts and error messages
10
- - Colored output with graceful degradation
11
- - Progress spinners and prompts
12
- - Structured output in JSON format
13
- - Cross-platform compatibility
14
- - Configuration precedence (CLI args > env vars > config files)
15
- - Analytics with opt-in
16
- - Error handling with error codes
17
- - Debug mode for troubleshooting
3
+ Command-line interface for Auto Engineer, a tool for building applications with Narrative Driven Development.
4
+
5
+ ---
6
+
7
+ ## Purpose
8
+
9
+ The CLI orchestrates a pipeline-based architecture that loads plugins, starts development servers, and synchronizes files between local development and remote sandboxes. It serves as the primary entry point for running Auto Engineer workflows.
10
+
11
+ ---
18
12
 
19
13
  ## Installation
20
14
 
21
15
  ```bash
22
- # Install globally
16
+ # Global
23
17
  npm install -g @auto-engineer/cli
24
18
 
25
- # Or use with npx
19
+ # Or via npx
26
20
  npx @auto-engineer/cli
27
-
28
- # Or with pnpm
29
- pnpm install -g @auto-engineer/cli
30
21
  ```
31
22
 
32
- ## Plugin System
33
-
34
- The CLI uses a plugin-based architecture. Install only the functionality you need:
35
-
36
- ### Quick Start
37
-
38
- 1. Install the CLI:
23
+ ## Quick Start
39
24
 
40
25
  ```bash
41
- npm install -g @auto-engineer/cli
26
+ # Step 1: Create a config file
27
+ cat > auto.config.ts << 'EOF'
28
+ import { define } from '@auto-engineer/pipeline';
29
+
30
+ export const plugins = [
31
+ '@auto-engineer/narrative',
32
+ '@auto-engineer/server-generator-apollo-emmett',
33
+ ];
34
+
35
+ export const pipeline = define('my-pipeline')
36
+ .on('SchemaExported')
37
+ .emit('GenerateServer', (e) => ({
38
+ modelPath: e.data.outputPath,
39
+ destination: e.data.directory,
40
+ }))
41
+ .build();
42
+ EOF
43
+
44
+ # Step 2: Start the server
45
+ auto start
46
+
47
+ # Step 3: View the pipeline diagram
48
+ auto diagram
42
49
  ```
43
50
 
44
- 2. Install plugins for your use case:
51
+ ---
45
52
 
46
- ```bash
47
- # For server development
48
- npm install @auto-engineer/flow @auto-engineer/server-generator-apollo-emmett @auto-engineer/server-implementer
53
+ ## How-to Guides
49
54
 
50
- # For frontend development
51
- npm install @auto-engineer/frontend-generator-react-graphql @auto-engineer/frontend-implementer
55
+ ### Start the Pipeline Server
52
56
 
53
- # For validation and testing
54
- npm install @auto-engineer/server-checks @auto-engineer/frontend-checks
57
+ ```bash
58
+ auto start
59
+ # or simply
60
+ auto
55
61
  ```
56
62
 
57
- 3. Create configuration (`auto.config.ts`):
63
+ ### Dispatch a Command
58
64
 
59
- ```typescript
60
- export default {
61
- plugins: [
62
- '@auto-engineer/flow',
63
- '@auto-engineer/server-generator-apollo-emmett',
64
- '@auto-engineer/server-implementer',
65
- ],
66
-
67
- // Optional: Handle command conflicts
68
- aliases: {
69
- // 'command:alias': '@auto-engineer/package-name'
70
- },
71
- };
65
+ ```bash
66
+ auto dispatch GenerateServer --data '{"modelPath": "./schema.json", "destination": "."}'
72
67
  ```
73
68
 
74
- 4. Run commands:
69
+ ### Check Server Status
75
70
 
76
71
  ```bash
77
- auto create:example shopping-assistant
78
- auto export:schema ./.context ./flows
79
- auto generate:server .context/schema.json .
72
+ auto status
80
73
  ```
81
74
 
82
- ## Available Plugins
83
-
84
- | Plugin | Commands | Description |
85
- | ------------------------------------------------- | ------------------------------------------ | ----------------------------------- |
86
- | `@auto-engineer/flow` | `create:example`, `export:schema` | Flow modeling and schema export |
87
- | `@auto-engineer/server-generator-apollo-emmett` | `generate:server` | Server code generation |
88
- | `@auto-engineer/server-implementer` | `implement:server`, `implement:slice` | AI server implementation |
89
- | `@auto-engineer/frontend-generator-react-graphql` | `generate:client`, `copy:example` | React client scaffolding |
90
- | `@auto-engineer/frontend-implementer` | `implement:client` | AI client implementation |
91
- | `@auto-engineer/information-architect` | `generate:ia` | Information architecture generation |
92
- | `@auto-engineer/design-system-importer` | `import:design-system` | Figma design system import |
93
- | `@auto-engineer/server-checks` | `check:types`, `check:lint`, `check:tests` | Server validation |
94
- | `@auto-engineer/frontend-checks` | `check:client` | Frontend validation |
95
-
96
- ## Configuration
97
-
98
- ### Plugin Configuration
75
+ ### Connect to Existing Server
99
76
 
100
- The CLI looks for an `auto.config.ts` file in your project root:
101
-
102
- ```typescript
103
- // auto.config.ts
104
- export default {
105
- // List of npm packages to load as plugins
106
- plugins: [
107
- '@auto-engineer/flow',
108
- '@auto-engineer/server-generator-apollo-emmett',
109
- // ... more plugins
110
- ],
111
-
112
- // Optional: Override command aliases when conflicts occur
113
- aliases: {
114
- 'create:example': '@auto-engineer/flow',
115
- // ... more overrides
116
- },
117
- };
77
+ ```bash
78
+ auto dispatch MyCommand --host http://localhost:5555 --data '{}'
118
79
  ```
119
80
 
120
- ### Handling Conflicts
121
-
122
- When multiple plugins register the same command alias, you'll receive an error with instructions:
81
+ ### Configure for CI/CD
123
82
 
124
- ```
125
- Command alias conflicts detected!
126
-
127
- Multiple packages are trying to register the same command aliases.
128
- Please add alias overrides to your auto.config.ts file:
129
-
130
- export default {
131
- plugins: [
132
- '@auto-engineer/package-a',
133
- '@auto-engineer/package-b',
134
- ],
135
- aliases: {
136
- // Map the conflicting command to the package that should handle it
137
- 'conflicting:command': '@auto-engineer/package-a',
138
- }
139
- };
83
+ ```bash
84
+ auto start --port 8080 --config ./ci.config.ts
140
85
  ```
141
86
 
142
- The alias resolution works per command, not per package. Each package can expose multiple commands, and you resolve conflicts for specific command aliases. For example, if both `server-checks` and `another-package` provide a `check:types` command, you specify which package handles that specific command.
87
+ ---
143
88
 
144
- ## Commands
89
+ ## CLI Reference
145
90
 
146
- Commands are provided by installed plugins. Run `auto --help` to see available commands based on your configuration.
91
+ ### Commands
147
92
 
148
- ### Common Plugin Commands
93
+ #### `auto start`
149
94
 
150
- Flow Development (requires `@auto-engineer/flow`)
95
+ Start the pipeline server with loaded config (default command).
151
96
 
152
- - `create:example <name>` - Create an example project
153
- - `export:schema <context> <flows>` - Export flow schemas
97
+ ```bash
98
+ auto start [options]
99
+ ```
154
100
 
155
- Server Generation (requires respective plugins)
101
+ | Option | Alias | Type | Default | Description |
102
+ |--------|-------|------|---------|-------------|
103
+ | `--port` | `-p` | number | 5555 | Server port |
104
+ | `--debug` | `-d` | boolean | false | Enable debug mode |
105
+ | `--config` | `-c` | string | auto.config.ts | Path to config file |
156
106
 
157
- - `generate:server <schema> <dest>` - Generate server from schema
158
- - `implement:server <server-dir>` - AI implements server
107
+ #### `auto dispatch <command>`
159
108
 
160
- Frontend Generation (requires respective plugins)
109
+ Dispatch a command to the pipeline server.
161
110
 
162
- - `generate:ia <context> <flows...>` - Generate Information Architecture
163
- - `generate:client <starter> <client> <ia> <gql> [vars]` - Generate React client
164
- - `implement:client <client> <context> <principles> <design>` - AI implements client
111
+ ```bash
112
+ auto dispatch <command> [options]
113
+ ```
165
114
 
166
- Validation & Testing (requires check plugins)
115
+ | Option | Type | Default | Description |
116
+ |--------|------|---------|-------------|
117
+ | `--data` | string | `{}` | Command data as JSON |
118
+ | `--host` | string | localhost | Connect to existing server |
167
119
 
168
- - `check:types <directory>` - TypeScript type checking
169
- - `check:tests <directory>` - Run test suites
170
- - `check:lint <directory> [--fix]` - Linting with optional auto-fix
171
- - `check:client <client-dir>` - Full frontend validation
120
+ #### `auto status`
172
121
 
173
- ## Global Options
122
+ Check pipeline server health and registry status.
174
123
 
175
- - `-v, --version` - Show version number
176
- - `-d, --debug` - Enable debug mode
177
- - `--no-color` - Disable colored output
178
- - `--json` - Output in JSON format
179
- - `--api-token <token>` - API token for external services
180
- - `--project-path <path>` - Project path to work with
124
+ ```bash
125
+ auto status
126
+ ```
181
127
 
182
- ## Environment Variables
128
+ #### `auto diagram`
183
129
 
184
- Set these in your `.env` file or environment:
130
+ Open the pipeline diagram in a browser.
185
131
 
186
132
  ```bash
187
- # AI Provider Keys (need at least one)
188
- ANTHROPIC_API_KEY=sk-ant-...
189
- OPENAI_API_KEY=sk-...
190
- GEMINI_API_KEY=...
191
- XAI_API_KEY=...
192
-
193
- # Debugging
194
- DEBUG=cli:* # Debug CLI operations
195
- DEBUG=cli:plugin-loader # Debug plugin loading
196
-
197
- # Configuration
198
- NO_COLOR=1 # Disable colored output
199
- AUTO_ENGINEER_ANALYTICS=false # Disable usage analytics
133
+ auto diagram
200
134
  ```
201
135
 
202
- ## Creating a Plugin
203
-
204
- Plugins are npm packages that export a `CLI_MANIFEST`:
136
+ ### Configuration File
205
137
 
206
138
  ```typescript
207
- // your-plugin/src/cli-manifest.ts
208
- export const CLI_MANIFEST = {
209
- commands: {
210
- 'your:command': {
211
- handler: () => import('./commands/your-command'),
212
- description: 'Description of your command',
213
- },
214
- },
215
- };
216
-
217
- // your-plugin/src/index.ts
218
- export { CLI_MANIFEST } from './cli-manifest';
219
- export * from './commands/your-command';
139
+ // auto.config.ts
140
+ import { define } from '@auto-engineer/pipeline';
141
+
142
+ export const fileId = 'my-project';
143
+
144
+ export const plugins = [
145
+ '@auto-engineer/narrative',
146
+ '@auto-engineer/server-generator-apollo-emmett',
147
+ ];
148
+
149
+ export const pipeline = define('my-pipeline')
150
+ .on('SchemaExported')
151
+ .emit('GenerateServer', (e) => ({
152
+ modelPath: e.data.outputPath,
153
+ destination: e.data.directory,
154
+ }))
155
+ .build();
220
156
  ```
221
157
 
222
- The command handler should export a function that handles the command:
158
+ ---
223
159
 
224
- ```typescript
225
- // your-plugin/src/commands/your-command.ts
226
- export async function handleYourCommand(command: { type: string; data: any; timestamp: Date; requestId: string }) {
227
- // Implementation
228
- }
229
- ```
160
+ ## Troubleshooting
230
161
 
231
- ## Built-in Commands
162
+ ### Server Won't Start
232
163
 
233
- When no `auto.config.ts` is present, the CLI falls back to built-in commands that work with locally available packages.
164
+ **Symptom:** `No pipeline config found` error
234
165
 
235
- ## Error Codes
166
+ **Cause:** Missing auto.config.ts file in current directory
236
167
 
237
- Auto-engineer uses standardized error codes for easy troubleshooting:
168
+ **Solution:**
238
169
 
239
- - `E4001` - Validation error
240
- - `E4002` - Configuration error
241
- - `E4003` - Invalid API token
242
- - `E4004` - Invalid project path
243
- - `E5001` - Runtime error
244
- - `E9999` - Unknown error
170
+ ```bash
171
+ # Create a minimal config
172
+ cat > auto.config.ts << 'EOF'
173
+ export const plugins = [];
174
+ export const pipeline = { nodes: [] };
175
+ EOF
176
+ ```
245
177
 
246
- ## Analytics
178
+ ### Port Already in Use
247
179
 
248
- Auto-engineer collects anonymous usage analytics to improve the tool:
180
+ **Symptom:** Server fails to bind to port
249
181
 
250
- - Anonymous - No personal information is collected
251
- - Transparent - You can see what data is collected in debug mode
252
- - Controllable - You can disable anytime
182
+ **Cause:** Another process is using the port
253
183
 
254
- To disable analytics:
184
+ **Solution:**
255
185
 
256
186
  ```bash
257
- export AUTO_ENGINEER_ANALYTICS=false
187
+ auto start --port 5556
258
188
  ```
259
189
 
260
- ## Debugging
190
+ ### Plugin Not Loading
191
+
192
+ **Symptom:** Command handlers not found
261
193
 
262
- Enable debug output to troubleshoot issues:
194
+ **Cause:** Plugin package not installed or COMMANDS not exported
195
+
196
+ **Solution:**
263
197
 
264
198
  ```bash
265
- # Debug everything
266
- DEBUG=* auto create:example test
199
+ pnpm add @auto-engineer/my-plugin
200
+ ```
267
201
 
268
- # Debug plugin loading
269
- DEBUG=cli:plugin-loader auto --help
202
+ ### Enable Debug Logging
270
203
 
271
- # Debug specific plugins
272
- DEBUG=flow:* auto export:schema ./context ./flows
204
+ ```bash
205
+ DEBUG=auto:* auto start
273
206
  ```
274
207
 
275
- ## License
208
+ ---
276
209
 
277
- Part of the Auto Engineer monorepo. Licensed under [Elastic License 2.0](../../LICENSE.md).
210
+ ## Architecture
278
211
 
279
- ## Support
212
+ ```
213
+ src/
214
+ ├── index.ts
215
+ ├── file-syncer/
216
+ │ └── index.ts
217
+ └── bin/
218
+ └── auto.js
219
+ ```
280
220
 
281
- - Discord: [Join our community](https://discord.gg/B8BKcKMRm8)
282
- - Documentation: [GitHub Wiki](https://github.com/SamHatoum/auto-engineer/wiki)
283
- - Issues: [GitHub Issues](https://github.com/SamHatoum/auto-engineer/issues)
221
+ ### Server Endpoints
222
+
223
+ | Endpoint | Description |
224
+ |----------|-------------|
225
+ | `/health` | Server health check |
226
+ | `/registry` | List registered handlers |
227
+ | `/pipeline` | Pipeline state |
228
+ | `/pipeline/diagram` | Visual diagram |
229
+ | `/events` | SSE stream |
230
+ | `ws://<syncPort>` | File sync WebSocket |
231
+
232
+ ### Dependencies
233
+
234
+ | Package | Usage |
235
+ |---------|-------|
236
+ | `@auto-engineer/pipeline` | Pipeline server infrastructure |
237
+ | `@auto-engineer/narrative` | File discovery for sync |
238
+ | `@auto-engineer/file-store` | Virtual file system |
239
+ | `commander` | CLI argument parsing |
240
+ | `socket.io` | WebSocket communication |
241
+ | `chokidar` | File system watching |
package/dist/bin/auto.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { spawn } from 'child_process';
3
- import { resolve, dirname } from 'path';
4
- import { fileURLToPath } from 'url';
2
+ import { spawn } from 'node:child_process';
3
+ import { dirname, resolve } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const __dirname = dirname(__filename);
7
7
  const srcPath = resolve(__dirname, '..', 'src', 'index.js');
8
8
  const node = spawn('node', [srcPath, ...process.argv.slice(2)], { stdio: 'inherit' });
9
9
  node.on('exit', (code) => {
10
- process.exit(code || 0);
10
+ process.exit(code ?? 0);
11
11
  });
12
12
  //# sourceMappingURL=auto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../bin/auto.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAEtF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IACvB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../bin/auto.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAEtF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IACvB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export interface AutoConfig {
2
+ fileId?: string;
3
+ plugins?: string[];
4
+ fileSync?: {
5
+ enabled?: boolean;
6
+ dir?: string;
7
+ extensions?: string[];
8
+ };
9
+ token?: string;
10
+ }
11
+ export declare function loadAutoConfig(configPath: string): Promise<AutoConfig>;
12
+ //# sourceMappingURL=config-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqB5E"}
@@ -0,0 +1,24 @@
1
+ import createJiti from 'jiti';
2
+ let configLoading = false;
3
+ export async function loadAutoConfig(configPath) {
4
+ if (configLoading) {
5
+ return { fileId: '', plugins: [] };
6
+ }
7
+ try {
8
+ configLoading = true;
9
+ const jiti = createJiti(import.meta.url, {
10
+ interopDefault: true,
11
+ moduleCache: false,
12
+ });
13
+ const configModule = await jiti.import(configPath);
14
+ return configModule.default ?? configModule;
15
+ }
16
+ catch (error) {
17
+ console.error('Failed to load config:', error);
18
+ throw error;
19
+ }
20
+ finally {
21
+ configLoading = false;
22
+ }
23
+ }
24
+ //# sourceMappingURL=config-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,MAAM,CAAC;AAa9B,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB;IACrD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,CAAC;QACH,aAAa,GAAG,IAAI,CAAC;QAErB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACvC,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAwC,UAAU,CAAC,CAAC;QAC1F,OAAO,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwe-encryptor.d.ts","sourceRoot":"","sources":["../../../../src/file-syncer/crypto/jwe-encryptor.ts"],"names":[],"mappings":"AAyDA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB3F;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -1,6 +1,6 @@
1
+ import createDebug from 'debug';
1
2
  import { EncryptJWT, importJWK } from 'jose';
2
3
  import fetch from 'node-fetch';
3
- import createDebug from 'debug';
4
4
  const debug = createDebug('auto:cli:jwe-encryptor');
5
5
  const PUBLIC_JWKS_URL = 'https://sync-sandbox.rami-632.workers.dev/.well-known/jwks.json';
6
6
  const PUBLIC_KEY_CACHE_TTL_MS = 60 * 60 * 300; // 1h
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwe-encryptor.js","sourceRoot":"","sources":["../../../../src/file-syncer/crypto/jwe-encryptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-resolver.d.ts","sourceRoot":"","sources":["../../../../src/file-syncer/crypto/provider-resolver.ts"],"names":[],"mappings":"AAIA,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF;IACE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE,CAAC;AA6BN,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAoBzD;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAe3C"}
@@ -1,6 +1,6 @@
1
- import dotenv from 'dotenv';
2
- import { resolve } from 'path';
3
1
  import crypto from 'node:crypto';
2
+ import { resolve } from 'node:path';
3
+ import dotenv from 'dotenv';
4
4
  export var AIProvider;
5
5
  (function (AIProvider) {
6
6
  AIProvider["OpenAI"] = "openai";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../../../../src/file-syncer/crypto/provider-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;IACjB,yBAAW,CAAA;IACX,+BAAiB,CAAA;AACnB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAWD,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,SAAS,SAAS;IAChB,IAAI,SAAS;QAAE,OAAO;IACtB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACxD,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACnD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAC/D,IACE,IAAI,KAAK,SAAS;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,OAAO,KAAK,SAAS;QACrB,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,MAAM,GAAG,CAAC;QACjB,YAAY,KAAK,SAAS;QAC1B,YAAY,CAAC,MAAM,GAAG,CAAC,EACvB,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,SAAS,EAAE,CAAC;IACZ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS,CAAC;IAExD,MAAM,MAAM,GAA4D;QACtE,CAAC,UAAU,CAAC,SAAS,EAAE,mBAAmB,CAAC;QAC3C,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC;QACrC,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC;QACrC,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC;KAChC,CAAC;IAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;IAEjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,SAAS,EAAE,CAAC;IACZ,MAAM,IAAI,GAAG;QACX,mBAAmB;QACnB,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,sBAAsB;QACtB,0BAA0B;QAC1B,yBAAyB;QACzB,+BAA+B;QAC/B,kBAAkB;KACnB,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { NodeFileStore } from '@auto-engineer/file-store/node';
2
+ export declare function collectBareImportsFromFiles(files: string[], vfs: NodeFileStore): Promise<string[]>;
3
+ //# sourceMappingURL=bareImports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bareImports.d.ts","sourceRoot":"","sources":["../../../../src/file-syncer/discovery/bareImports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAiBpE,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBxG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bareImports.js","sourceRoot":"","sources":["../../../../src/file-syncer/discovery/bareImports.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAClB,iGAAiG,CAAC;AAEpG,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/F,CAAC;AACD,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAAe,EAAE,GAAkB;IACnF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QACnD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { NodeFileStore } from '@auto-engineer/file-store/node';
1
+ import type { NodeFileStore } from '@auto-engineer/file-store/node';
2
2
  export declare function readJsonIfExists(vfs: NodeFileStore, p: string): Promise<Record<string, unknown> | null>;
3
3
  export declare function exists(vfs: NodeFileStore, p: string): Promise<boolean>;
4
4
  export declare function typesAlias(pkg: string): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dts.d.ts","sourceRoot":"","sources":["../../../../src/file-syncer/discovery/dts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAMpE,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAQ7G;AAED,wBAAsB,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9C;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CAYpE;AAED,yEAAyE;AACzE,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBjH;AAED,iGAAiG;AACjG,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAuCnB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dts.js","sourceRoot":"","sources":["../../../../src/file-syncer/discovery/dts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/file-syncer/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAa1D,qBAAa,UAAU;IACrB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,mBAAmB,CAAqC;IAChE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,eAAe,CAAuB;gBAElC,EAAE,EAAE,cAAc,EAAE,QAAQ,SAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE;IAQtE,KAAK,IAAI,IAAI;YA8VC,kBAAkB;IAiBhC,IAAI,IAAI,IAAI;CAWb"}
@@ -1,13 +1,13 @@
1
+ import path from 'node:path';
2
+ import { NodeFileStore } from '@auto-engineer/file-store/node';
1
3
  import chokidar from 'chokidar';
2
- import path from 'path';
3
4
  import createDebug from 'debug';
4
- import { NodeFileStore } from '@auto-engineer/file-store/node';
5
- import { resolveSyncFileSet } from './sync/resolveSyncFileSet.js';
6
5
  import { loadAutoConfig } from '../config-loader.js';
7
- import { md5, readBase64, statSize } from './utils/hash.js';
8
- import { toWirePath, fromWirePath, rebuildWirePathCache } from './utils/path.js';
9
6
  import { createJWE } from './crypto/jwe-encryptor.js';
10
7
  import { getActiveProvider, getProviderEnvHash } from './crypto/provider-resolver.js';
8
+ import { resolveSyncFileSet } from './sync/resolveSyncFileSet.js';
9
+ import { md5, readBase64, statSize } from './utils/hash.js';
10
+ import { fromWirePath, rebuildWirePathCache, toWirePath } from './utils/path.js';
11
11
  const debug = createDebug('auto:cli:file-syncer');
12
12
  export class FileSyncer {
13
13
  constructor(io, watchDir = '.', _extensions) {
@@ -53,7 +53,7 @@ export class FileSyncer {
53
53
  catch (error) {
54
54
  debug('Failed to encrypt credentials, continuing without: %O', error);
55
55
  }
56
- return JSON.stringify(configWithCreds, (key, value) => {
56
+ return JSON.stringify(configWithCreds, (_key, value) => {
57
57
  if (typeof value === 'function') {
58
58
  const funcName = value.name;
59
59
  return `[Function: ${funcName != null ? funcName : 'anonymous'}]`;