@via-dev/via 0.1.1 → 0.1.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
CHANGED
|
@@ -1,12 +1,82 @@
|
|
|
1
1
|
# Via
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Via helps you reuse real project patterns instead of rewriting boilerplate.
|
|
4
|
+
|
|
5
|
+
It learns from your existing codebase and lets you recreate modules
|
|
6
|
+
without repeated AI calls or fragile templates.
|
|
7
|
+
|
|
8
|
+
> Your code is the source of truth — not scaffolds, not prompts.
|
|
9
|
+
|
|
10
|
+
## Quick start
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install -g @via-dev/via
|
|
14
|
+
|
|
15
|
+
cd existing-project
|
|
16
|
+
via learn
|
|
17
|
+
via list
|
|
18
|
+
via users create accounts
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Why Via exists
|
|
22
|
+
|
|
23
|
+
Via was created to solve a very specific problem:
|
|
24
|
+
|
|
25
|
+
> Reusing existing code patterns should **not** require repeated AI calls.
|
|
26
|
+
|
|
27
|
+
In many workflows today, AI is used every time you:
|
|
28
|
+
- generate a similar module
|
|
29
|
+
- rename an entity
|
|
30
|
+
- recreate CRUD logic
|
|
31
|
+
- scaffold the same structure with minor changes
|
|
32
|
+
|
|
33
|
+
This leads to:
|
|
34
|
+
- unnecessary token usage
|
|
35
|
+
- repeated costs for the same logic
|
|
36
|
+
- unpredictable output
|
|
37
|
+
- reliance on AI for problems that are already solved in your codebase
|
|
38
|
+
|
|
39
|
+
### Via’s approach
|
|
40
|
+
|
|
41
|
+
Via uses AI **once**, only to *understand* your project structure.
|
|
42
|
+
|
|
43
|
+
After that:
|
|
44
|
+
- the learned patterns are stored locally
|
|
45
|
+
- generation is deterministic
|
|
46
|
+
- no AI calls are required
|
|
47
|
+
- no tokens are consumed
|
|
48
|
+
|
|
49
|
+
If a pattern already exists in your project, Via reuses it directly
|
|
50
|
+
instead of asking an AI model to regenerate it again.
|
|
51
|
+
|
|
52
|
+
### What this means in practice
|
|
53
|
+
|
|
54
|
+
- AI helps with **discovery**, not repetition
|
|
55
|
+
- Your existing code becomes the source of truth
|
|
56
|
+
- You don’t pay tokens for minimal changes
|
|
57
|
+
- You get consistent output every time
|
|
58
|
+
- Via works offline once learning is complete
|
|
59
|
+
|
|
60
|
+
This gives you the benefits of AI **without turning it into a runtime dependency**.
|
|
61
|
+
|
|
62
|
+
### AI is optional
|
|
63
|
+
|
|
64
|
+
If you already know the module boundaries:
|
|
65
|
+
- you can run `via learn <folder_path>`
|
|
66
|
+
- select the entry file manually
|
|
67
|
+
- and skip AI entirely
|
|
68
|
+
|
|
69
|
+
Via will trace dependencies and build the module deterministically.
|
|
70
|
+
|
|
71
|
+
AI is there when you need it - not when you don’t.
|
|
72
|
+
|
|
73
|
+
|
|
4
74
|
|
|
5
75
|
## Key Features
|
|
6
76
|
|
|
7
77
|
- **Pattern Learning**: Extract specific folders or components from your project and save them as reusable modules.
|
|
8
78
|
- **Smart Renaming**: When creating a new instance of a module, Via automatically renames files, classes, variables, and imports while preserving the original casing (PascalCase, camelCase, kebab-case, etc.) and handling plurality.
|
|
9
|
-
- **AI-
|
|
79
|
+
- **AI-Assisted (Optional)**: Uses AI only for pattern discovery — never for repeated generation.
|
|
10
80
|
- **Web UI**: A built-in documentation server to browse and manage your saved modules.
|
|
11
81
|
|
|
12
82
|
## Supported Technologies
|
|
@@ -16,15 +86,74 @@ Currently, Via is optimized for backend patterns in the following ecosystems:
|
|
|
16
86
|
- **Express.js**
|
|
17
87
|
- **Hono.js**
|
|
18
88
|
- **NestJS**
|
|
19
|
-
- **Next.js** (API routes and backend logic)
|
|
89
|
+
- **Next.js** (Beta - API routes and backend logic)
|
|
20
90
|
|
|
21
|
-
## Installation
|
|
22
91
|
|
|
23
|
-
|
|
92
|
+
## AI support (optional, transparent, and secure)
|
|
24
93
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
94
|
+
Via can use AI to detect modules and patterns from large or complex codebases.
|
|
95
|
+
AI is **optional** and used only during the learning phase.
|
|
96
|
+
|
|
97
|
+
### Supported AI providers
|
|
98
|
+
|
|
99
|
+
Via supports multiple providers out of the box:
|
|
100
|
+
|
|
101
|
+
- **OpenAI** (GPT models)
|
|
102
|
+
- **Anthropic** (Claude models)
|
|
103
|
+
- **Google** (Gemini)
|
|
104
|
+
- **Ollama** (locally running open-source models)
|
|
105
|
+
|
|
106
|
+
This can be selected or modified using `via config` command.
|
|
107
|
+
|
|
108
|
+
### What data is sent to AI
|
|
109
|
+
|
|
110
|
+
When AI is enabled, **Via sends only project metadata**, never your source code.
|
|
111
|
+
|
|
112
|
+
This includes:
|
|
113
|
+
- folder paths
|
|
114
|
+
- file names
|
|
115
|
+
- file relationships and imports
|
|
116
|
+
- detected symbols and keywords
|
|
117
|
+
- structural summaries
|
|
118
|
+
|
|
119
|
+
❌ **Your actual code is never sent to any AI provider.**
|
|
120
|
+
|
|
121
|
+
This design ensures:
|
|
122
|
+
- code privacy
|
|
123
|
+
- security for private repositories
|
|
124
|
+
- safe usage in enterprise environments
|
|
125
|
+
|
|
126
|
+
### When AI is used
|
|
127
|
+
|
|
128
|
+
- AI is used **only during `via learn`** and only if a path is not provided
|
|
129
|
+
- AI helps detect:
|
|
130
|
+
- logical modules
|
|
131
|
+
- entry files
|
|
132
|
+
- structural boundaries
|
|
133
|
+
- AI is **not used** during:
|
|
134
|
+
- module generation
|
|
135
|
+
- listing modules
|
|
136
|
+
- removing modules
|
|
137
|
+
|
|
138
|
+
All generation after learning is **deterministic and offline-friendly**.
|
|
139
|
+
|
|
140
|
+
### No lock-in, predictable costs
|
|
141
|
+
|
|
142
|
+
- You choose the AI provider and model
|
|
143
|
+
- No background AI calls
|
|
144
|
+
- No surprise token usage
|
|
145
|
+
- Once learning is complete, Via works without AI
|
|
146
|
+
|
|
147
|
+
This gives you the benefits of AI-assisted understanding
|
|
148
|
+
without runtime dependency or exposing your code.
|
|
149
|
+
|
|
150
|
+
### Local models with Ollama
|
|
151
|
+
|
|
152
|
+
Via also supports locally running models via **Ollama**.
|
|
153
|
+
This is ideal for:
|
|
154
|
+
- offline environments
|
|
155
|
+
- highly sensitive codebases
|
|
156
|
+
- zero API cost workflows
|
|
28
157
|
|
|
29
158
|
## Usage
|
|
30
159
|
|
|
@@ -61,6 +190,24 @@ Explore your learned modules in a beautiful web interface.
|
|
|
61
190
|
via ui
|
|
62
191
|
```
|
|
63
192
|
|
|
193
|
+
### 5. Remove a Module
|
|
194
|
+
Delete a saved module
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# General syntax: via <module_name> create <new_name>
|
|
198
|
+
via remove <name>
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 5. Configure AI Provider
|
|
202
|
+
|
|
203
|
+
Configure the AI provider if in AI mode (`via learn` without path)
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# General syntax: via <module_name> create <new_name>
|
|
207
|
+
via config
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
|
|
64
211
|
## Command Reference
|
|
65
212
|
|
|
66
213
|
| Command | Description |
|
package/dist/cli.js
CHANGED
|
File without changes
|
|
@@ -8,6 +8,14 @@ const path_1 = require("path");
|
|
|
8
8
|
const paths_1 = require("../../utils/paths");
|
|
9
9
|
const zlib_1 = require("zlib");
|
|
10
10
|
const layout_1 = require("./templates/layout");
|
|
11
|
+
function normalizePaths(node) {
|
|
12
|
+
if (node.path) {
|
|
13
|
+
node.path = node.path.replace(/\\/g, '/');
|
|
14
|
+
}
|
|
15
|
+
if (node.dependencies) {
|
|
16
|
+
node.dependencies.forEach(normalizePaths);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
11
19
|
const createApp = () => {
|
|
12
20
|
const app = new hono_1.Hono();
|
|
13
21
|
app.use("/*", (0, cors_1.cors)());
|
|
@@ -24,6 +32,9 @@ const createApp = () => {
|
|
|
24
32
|
if ((0, fs_1.existsSync)(viaPath)) {
|
|
25
33
|
const compressed = (0, fs_1.readFileSync)(viaPath);
|
|
26
34
|
const data = JSON.parse((0, zlib_1.gunzipSync)(compressed).toString());
|
|
35
|
+
if (data.deps) {
|
|
36
|
+
normalizePaths(data.deps);
|
|
37
|
+
}
|
|
27
38
|
return {
|
|
28
39
|
name,
|
|
29
40
|
id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/commands/ui/server.ts"],"names":[],"mappings":";;;AACA,+BAA4B;AAC5B,oCAAiC;AACjC,2BAA8C;AAC9C,+BAA4B;AAC5B,6CAAmD;AACnD,+BAAkC;AAClC,+CAA+C;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/commands/ui/server.ts"],"names":[],"mappings":";;;AACA,+BAA4B;AAC5B,oCAAiC;AACjC,2BAA8C;AAC9C,+BAA4B;AAC5B,6CAAmD;AACnD,+BAAkC;AAClC,+CAA+C;AAE/C,SAAS,cAAc,CAAC,IAAS;IAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC;AAEM,MAAM,SAAS,GAAG,GAAG,EAAE;IAC1B,MAAM,GAAG,GAAG,IAAI,WAAI,EAAE,CAAC;IACvB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAA,WAAI,GAAE,CAAC,CAAC;IAEtB,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,cAAc,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC9C,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG,IAAA,iBAAY,EAAC,OAAO,CAAC,CAAC;oBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAU,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC3D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;oBACD,OAAO;wBACH,IAAI;wBACJ,EAAE;wBACF,GAAG,IAAI;qBACV,CAAC;gBACN,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3F,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAS,GAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AA1CW,QAAA,SAAS,aA0CpB"}
|
|
@@ -66,7 +66,7 @@ function getNestedDependencies(entryFilePath, project, visited = new Set()) {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
return {
|
|
69
|
-
path: entryFilePath.replace(/^[/\\]virtual[/\\]?/, ''),
|
|
69
|
+
path: entryFilePath.replace(/^[/\\]virtual[/\\]?/, '').replace(/\\/g, '/'),
|
|
70
70
|
content,
|
|
71
71
|
dependencies,
|
|
72
72
|
exportedNames,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-dependencies.js","sourceRoot":"","sources":["../../../src/utils/add/get-dependencies.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"get-dependencies.js","sourceRoot":"","sources":["../../../src/utils/add/get-dependencies.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@via-dev/via",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Via is a CLI tool
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "Via is a CLI tool that learns real project patterns and lets you reuse them without boilerplate or templates.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|