@mrpatronz/nexusflow 0.2.18 → 1.3.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 (236) hide show
  1. package/README.md +27 -3
  2. package/dist/analyzers/index.d.ts +23 -0
  3. package/dist/analyzers/index.d.ts.map +1 -1
  4. package/dist/analyzers/index.js +62 -0
  5. package/dist/analyzers/index.js.map +1 -1
  6. package/dist/commands/commands.test.js +20 -6
  7. package/dist/commands/commands.test.js.map +1 -1
  8. package/dist/commands/commit.d.ts +2 -0
  9. package/dist/commands/commit.d.ts.map +1 -1
  10. package/dist/commands/commit.js +27 -5
  11. package/dist/commands/commit.js.map +1 -1
  12. package/dist/commands/diff.d.ts +9 -2
  13. package/dist/commands/diff.d.ts.map +1 -1
  14. package/dist/commands/diff.js +36 -12
  15. package/dist/commands/diff.js.map +1 -1
  16. package/dist/commands/doctor.js +2 -2
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/handoff.js +2 -2
  19. package/dist/commands/handoff.js.map +1 -1
  20. package/dist/commands/refresh.d.ts +4 -2
  21. package/dist/commands/refresh.d.ts.map +1 -1
  22. package/dist/commands/refresh.js +20 -36
  23. package/dist/commands/refresh.js.map +1 -1
  24. package/dist/commands/schedule.d.ts +35 -0
  25. package/dist/commands/schedule.d.ts.map +1 -0
  26. package/dist/commands/schedule.js +151 -0
  27. package/dist/commands/schedule.js.map +1 -0
  28. package/dist/commands/sync.d.ts.map +1 -1
  29. package/dist/commands/sync.js +58 -50
  30. package/dist/commands/sync.js.map +1 -1
  31. package/dist/core/analysis-cache.d.ts +58 -0
  32. package/dist/core/analysis-cache.d.ts.map +1 -0
  33. package/dist/core/analysis-cache.js +116 -0
  34. package/dist/core/analysis-cache.js.map +1 -0
  35. package/dist/core/analysis-cache.test.d.ts +2 -0
  36. package/dist/core/analysis-cache.test.d.ts.map +1 -0
  37. package/dist/core/analysis-cache.test.js +108 -0
  38. package/dist/core/analysis-cache.test.js.map +1 -0
  39. package/dist/core/refresh.d.ts +41 -0
  40. package/dist/core/refresh.d.ts.map +1 -0
  41. package/dist/core/refresh.js +60 -0
  42. package/dist/core/refresh.js.map +1 -0
  43. package/dist/core/scheduler.d.ts +117 -0
  44. package/dist/core/scheduler.d.ts.map +1 -0
  45. package/dist/core/scheduler.js +247 -0
  46. package/dist/core/scheduler.js.map +1 -0
  47. package/dist/core/scheduler.test.d.ts +2 -0
  48. package/dist/core/scheduler.test.d.ts.map +1 -0
  49. package/dist/core/scheduler.test.js +111 -0
  50. package/dist/core/scheduler.test.js.map +1 -0
  51. package/dist/core/sync.d.ts +50 -0
  52. package/dist/core/sync.d.ts.map +1 -0
  53. package/dist/core/sync.js +92 -0
  54. package/dist/core/sync.js.map +1 -0
  55. package/dist/core/workspace-state.d.ts +51 -0
  56. package/dist/core/workspace-state.d.ts.map +1 -0
  57. package/dist/core/workspace-state.js +108 -0
  58. package/dist/core/workspace-state.js.map +1 -0
  59. package/dist/core/workspace-state.test.d.ts +2 -0
  60. package/dist/core/workspace-state.test.d.ts.map +1 -0
  61. package/dist/core/workspace-state.test.js +84 -0
  62. package/dist/core/workspace-state.test.js.map +1 -0
  63. package/dist/generators/index.d.ts +7 -1
  64. package/dist/generators/index.d.ts.map +1 -1
  65. package/dist/generators/index.js +14 -1
  66. package/dist/generators/index.js.map +1 -1
  67. package/dist/gui/assets/index-Bdbld6yY.css +1 -0
  68. package/dist/gui/assets/index-D8iJPvnk.js +26 -0
  69. package/dist/gui/index.html +2 -2
  70. package/dist/index.js +107 -4
  71. package/dist/index.js.map +1 -1
  72. package/dist/mcp/server.d.ts.map +1 -1
  73. package/dist/mcp/server.js +42 -0
  74. package/dist/mcp/server.js.map +1 -1
  75. package/dist/server.d.ts.map +1 -1
  76. package/dist/server.js +175 -13
  77. package/dist/server.js.map +1 -1
  78. package/dist/server.test.js +66 -0
  79. package/dist/server.test.js.map +1 -1
  80. package/dist/types.d.ts +31 -0
  81. package/dist/types.d.ts.map +1 -1
  82. package/dist/utils/multi-git.d.ts +54 -8
  83. package/dist/utils/multi-git.d.ts.map +1 -1
  84. package/dist/utils/multi-git.js +129 -21
  85. package/dist/utils/multi-git.js.map +1 -1
  86. package/dist/utils/multi-git.test.d.ts +2 -0
  87. package/dist/utils/multi-git.test.d.ts.map +1 -0
  88. package/dist/utils/multi-git.test.js +125 -0
  89. package/dist/utils/multi-git.test.js.map +1 -0
  90. package/package.json +13 -1
  91. package/.agents/skills/ccc/SKILL.md +0 -71
  92. package/.agents/skills/ccc/references/management.md +0 -110
  93. package/.agents/skills/ccc/references/settings.md +0 -126
  94. package/.github/dependabot.yml +0 -52
  95. package/.github/workflows/ci.yml +0 -44
  96. package/.github/workflows/dependabot-merge.yml +0 -53
  97. package/.github/workflows/release-desktop.yml +0 -67
  98. package/.github/workflows/release-npm.yml +0 -65
  99. package/.github/workflows/release-vscode.yml +0 -61
  100. package/.vscode/launch.json +0 -17
  101. package/.vscode/tasks.json +0 -17
  102. package/GETTING_STARTED.md +0 -114
  103. package/desktop/build-installer.js +0 -228
  104. package/desktop/build.js +0 -118
  105. package/desktop/installer/nexusflow.iss +0 -35
  106. package/desktop/neutralino.config.json +0 -39
  107. package/desktop/package-lock.json +0 -1060
  108. package/desktop/package.json +0 -14
  109. package/dist/gui/assets/index-CB-jWded.css +0 -1
  110. package/dist/gui/assets/index-DDXpZZu3.js +0 -25
  111. package/extension/media/icon.svg +0 -1
  112. package/extension/package-lock.json +0 -6044
  113. package/extension/package.json +0 -117
  114. package/extension/src/extension.ts +0 -653
  115. package/extension/tsconfig.json +0 -21
  116. package/gui/README.md +0 -73
  117. package/gui/e2e/wizard.spec.ts +0 -346
  118. package/gui/eslint.config.js +0 -26
  119. package/gui/index.html +0 -17
  120. package/gui/package-lock.json +0 -3079
  121. package/gui/package.json +0 -36
  122. package/gui/playwright.config.ts +0 -41
  123. package/gui/public/app_logo.png +0 -0
  124. package/gui/public/favicon.svg +0 -1
  125. package/gui/public/icons.svg +0 -24
  126. package/gui/src/App.css +0 -1
  127. package/gui/src/App.tsx +0 -3632
  128. package/gui/src/assets/hero.png +0 -0
  129. package/gui/src/assets/react.svg +0 -1
  130. package/gui/src/assets/vite.svg +0 -1
  131. package/gui/src/features/changes/ChangesViewer.tsx +0 -388
  132. package/gui/src/features/knowledge/KnowledgeBase.tsx +0 -84
  133. package/gui/src/features/onboarding/OnboardingWizard.tsx +0 -230
  134. package/gui/src/features/plan/ImplementationPlan.tsx +0 -32
  135. package/gui/src/features/services/ServiceConsole.tsx +0 -250
  136. package/gui/src/features/sessions/SessionHistory.tsx +0 -195
  137. package/gui/src/features/workspace/WorkspaceList.tsx +0 -666
  138. package/gui/src/index.css +0 -152
  139. package/gui/src/main.tsx +0 -94
  140. package/gui/src/types.ts +0 -62
  141. package/gui/tsconfig.app.json +0 -25
  142. package/gui/tsconfig.json +0 -7
  143. package/gui/tsconfig.node.json +0 -24
  144. package/gui/vite.config.ts +0 -12
  145. package/resources/workflows/plan-implement-review.md +0 -8
  146. package/resources/workflows/research-verify.md +0 -6
  147. package/resources/workflows/solo-developer.md +0 -3
  148. package/scripts/simulate-workspaces.ts +0 -55
  149. package/skills-lock.json +0 -11
  150. package/src/analyzers/detect-apis.ts +0 -290
  151. package/src/analyzers/detect-deps.ts +0 -315
  152. package/src/analyzers/detect-existing.ts +0 -74
  153. package/src/analyzers/detect-ports.ts +0 -110
  154. package/src/analyzers/index.ts +0 -97
  155. package/src/analyzers/messaging-analyzer.ts +0 -254
  156. package/src/analyzers/readme-summarizer.ts +0 -102
  157. package/src/analyzers/run-analyzer.ts +0 -269
  158. package/src/analyzers/tech-stack.ts +0 -283
  159. package/src/commands/adapter.ts +0 -348
  160. package/src/commands/add-repo.ts +0 -156
  161. package/src/commands/commands.test.ts +0 -156
  162. package/src/commands/commit.ts +0 -131
  163. package/src/commands/config.ts +0 -52
  164. package/src/commands/create.ts +0 -204
  165. package/src/commands/desktop.ts +0 -128
  166. package/src/commands/diff.ts +0 -125
  167. package/src/commands/doctor.ts +0 -370
  168. package/src/commands/handoff.ts +0 -266
  169. package/src/commands/init.ts +0 -134
  170. package/src/commands/list.ts +0 -46
  171. package/src/commands/logs.ts +0 -63
  172. package/src/commands/mcp.ts +0 -94
  173. package/src/commands/open.ts +0 -129
  174. package/src/commands/refresh.ts +0 -137
  175. package/src/commands/remove.ts +0 -98
  176. package/src/commands/start.ts +0 -117
  177. package/src/commands/status.ts +0 -54
  178. package/src/commands/stop.ts +0 -55
  179. package/src/commands/sync.ts +0 -147
  180. package/src/commands/tui.ts +0 -484
  181. package/src/commands/ui.ts +0 -111
  182. package/src/core/adapters/local-storage.ts +0 -66
  183. package/src/core/adapters/obsidian-storage.ts +0 -151
  184. package/src/core/adapters/registry.ts +0 -44
  185. package/src/core/adapters/storage.test.ts +0 -174
  186. package/src/core/adapters/vault-storage.ts +0 -86
  187. package/src/core/config.test.ts +0 -96
  188. package/src/core/config.ts +0 -140
  189. package/src/core/graph.ts +0 -344
  190. package/src/core/plugins/index.ts +0 -17
  191. package/src/core/plugins/loader.ts +0 -36
  192. package/src/core/ports/storage.ts +0 -71
  193. package/src/core/scanner.test.ts +0 -61
  194. package/src/core/scanner.ts +0 -91
  195. package/src/core/storage.ts +0 -37
  196. package/src/core/workspace.ts +0 -487
  197. package/src/core/worktree.ts +0 -120
  198. package/src/generators/antigravity.ts +0 -32
  199. package/src/generators/base.ts +0 -243
  200. package/src/generators/claude.ts +0 -34
  201. package/src/generators/codex.ts +0 -48
  202. package/src/generators/copilot.ts +0 -56
  203. package/src/generators/cursor.ts +0 -44
  204. package/src/generators/diff-context.ts +0 -75
  205. package/src/generators/index.ts +0 -322
  206. package/src/generators/map-generator.test.ts +0 -159
  207. package/src/generators/map-generator.ts +0 -539
  208. package/src/generators/plan-generator.ts +0 -483
  209. package/src/generators/skills-generator.ts +0 -259
  210. package/src/index.ts +0 -539
  211. package/src/mcp/server.ts +0 -294
  212. package/src/orchestration/detect.ts +0 -313
  213. package/src/orchestration/index.ts +0 -7
  214. package/src/orchestration/runner.ts +0 -283
  215. package/src/server.test.ts +0 -618
  216. package/src/server.ts +0 -1314
  217. package/src/types.ts +0 -415
  218. package/src/utils/detect-ai.test.ts +0 -44
  219. package/src/utils/detect-ai.ts +0 -84
  220. package/src/utils/detect-editors.test.ts +0 -48
  221. package/src/utils/detect-editors.ts +0 -57
  222. package/src/utils/git.test.ts +0 -74
  223. package/src/utils/git.ts +0 -117
  224. package/src/utils/local-ai.test.ts +0 -130
  225. package/src/utils/local-ai.ts +0 -116
  226. package/src/utils/multi-git.ts +0 -313
  227. package/src/utils/prompts.ts +0 -209
  228. package/src/utils/session-finder.ts +0 -483
  229. package/src/utils/system-scanner.test.ts +0 -89
  230. package/src/utils/system-scanner.ts +0 -96
  231. package/src/utils/update-check.ts +0 -286
  232. package/src/utils/workflow-advisor.ts +0 -118
  233. package/src/utils/workflows.test.ts +0 -114
  234. package/src/utils/workflows.ts +0 -178
  235. package/tsconfig.json +0 -19
  236. package/vitest.config.ts +0 -14
@@ -1,126 +0,0 @@
1
- # ccc Settings
2
-
3
- Configuration lives in two YAML files, both created automatically by `ccc init`.
4
-
5
- ## User-Level Settings (`~/.cocoindex_code/global_settings.yml`)
6
-
7
- Shared across all projects. Controls the embedding model and extra environment variables for the daemon.
8
-
9
- ```yaml
10
- embedding:
11
- provider: sentence-transformers # or "litellm" (default when provider is omitted)
12
- model: Snowflake/snowflake-arctic-embed-xs
13
- device: mps # optional: cpu, cuda, mps (auto-detected if omitted)
14
- min_interval_ms: 300 # optional: pace LiteLLM embedding requests to reduce 429s; defaults to 5 for LiteLLM
15
-
16
- envs: # extra environment variables for the daemon
17
- OPENAI_API_KEY: your-key # only needed if not already in the shell environment
18
- ```
19
-
20
- ### Fields
21
-
22
- | Field | Description |
23
- |-------|-------------|
24
- | `embedding.provider` | `sentence-transformers` for local models, `litellm` (or omit) for cloud/remote models |
25
- | `embedding.model` | Model identifier — format depends on provider (see examples below) |
26
- | `embedding.device` | Optional. `cpu`, `cuda`, or `mps`. Auto-detected if omitted. Only relevant for `sentence-transformers`. |
27
- | `embedding.min_interval_ms` | Optional. Minimum delay between LiteLLM embedding requests in milliseconds. Defaults to `5` for LiteLLM and is ignored by `sentence-transformers`. Set explicitly to override the default. |
28
- | `envs` | Key-value map of environment variables injected into the daemon. Use for API keys not already in the shell environment. |
29
-
30
- ### Embedding Model Examples
31
-
32
- **Local (sentence-transformers, no API key needed):**
33
-
34
- ```yaml
35
- embedding:
36
- provider: sentence-transformers
37
- model: Snowflake/snowflake-arctic-embed-xs # default, lightweight
38
- ```
39
-
40
- ```yaml
41
- embedding:
42
- provider: sentence-transformers
43
- model: nomic-ai/CodeRankEmbed # better code retrieval, needs GPU (~1 GB VRAM)
44
- ```
45
-
46
- **Ollama (local):**
47
-
48
- ```yaml
49
- embedding:
50
- model: ollama/nomic-embed-text
51
- ```
52
-
53
- **OpenAI:**
54
-
55
- ```yaml
56
- embedding:
57
- model: text-embedding-3-small
58
- min_interval_ms: 300
59
- envs:
60
- OPENAI_API_KEY: your-api-key
61
- ```
62
-
63
- **Gemini:**
64
-
65
- ```yaml
66
- embedding:
67
- model: gemini/gemini-embedding-001
68
- envs:
69
- GEMINI_API_KEY: your-api-key
70
- ```
71
-
72
- **Voyage (code-optimized):**
73
-
74
- ```yaml
75
- embedding:
76
- model: voyage/voyage-code-3
77
- envs:
78
- VOYAGE_API_KEY: your-api-key
79
- ```
80
-
81
- For the full list of supported cloud providers and model identifiers, see [LiteLLM Embedding Models](https://docs.litellm.ai/docs/embedding/supported_embedding).
82
-
83
- ### Important
84
-
85
- Switching embedding models changes vector dimensions — you must re-index after changing the model:
86
-
87
- ```bash
88
- ccc reset && ccc index
89
- ```
90
-
91
- ## Project-Level Settings (`<project>/.cocoindex_code/settings.yml`)
92
-
93
- Per-project. Controls which files to index. Created by `ccc init` and automatically added to `.gitignore`.
94
-
95
- ```yaml
96
- include_patterns:
97
- - "**/*.py"
98
- - "**/*.js"
99
- - "**/*.ts"
100
- # ... (sensible defaults for 28+ file types)
101
-
102
- exclude_patterns:
103
- - "**/.*" # hidden directories
104
- - "**/__pycache__"
105
- - "**/node_modules"
106
- - "**/dist"
107
- # ...
108
-
109
- language_overrides:
110
- - ext: inc # treat .inc files as PHP
111
- lang: php
112
- ```
113
-
114
- ### Fields
115
-
116
- | Field | Description |
117
- |-------|-------------|
118
- | `include_patterns` | Glob patterns for files to index. Defaults cover common languages (Python, JS/TS, Rust, Go, Java, C/C++, C#, SQL, Shell, Markdown, PHP, Lua, etc.). |
119
- | `exclude_patterns` | Glob patterns for files/directories to skip. Defaults exclude hidden dirs, `node_modules`, `dist`, `__pycache__`, `vendor`, etc. |
120
- | `language_overrides` | List of `{ext, lang}` pairs to override language detection for specific file extensions. |
121
-
122
- ### Editing Tips
123
-
124
- - To index additional file types, append glob patterns to `include_patterns` (e.g. `"**/*.proto"`).
125
- - To exclude a directory, append to `exclude_patterns` (e.g. `"**/generated"`).
126
- - After editing, run `ccc index` to re-index with the new settings.
@@ -1,52 +0,0 @@
1
- version: 2
2
- updates:
3
- # 1. Root npm dependencies
4
- - package-ecosystem: "npm"
5
- directory: "/"
6
- schedule:
7
- interval: "daily"
8
- time: "03:00"
9
- open-pull-requests-limit: 10
10
- reviewers:
11
- - "antan87"
12
- groups:
13
- root-minor-patch:
14
- patterns:
15
- - "*"
16
- update-types:
17
- - "minor"
18
- - "patch"
19
-
20
- # 2. GUI npm dependencies
21
- - package-ecosystem: "npm"
22
- directory: "/gui"
23
- schedule:
24
- interval: "daily"
25
- time: "03:00"
26
- open-pull-requests-limit: 10
27
- reviewers:
28
- - "antan87"
29
- groups:
30
- gui-minor-patch:
31
- patterns:
32
- - "*"
33
- update-types:
34
- - "minor"
35
- - "patch"
36
-
37
- # 3. VS Code Extension npm dependencies
38
- - package-ecosystem: "npm"
39
- directory: "/extension"
40
- schedule:
41
- interval: "daily"
42
- time: "03:00"
43
- open-pull-requests-limit: 10
44
- reviewers:
45
- - "antan87"
46
- groups:
47
- extension-minor-patch:
48
- patterns:
49
- - "*"
50
- update-types:
51
- - "minor"
52
- - "patch"
@@ -1,44 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: [main]
6
- pull_request:
7
- branches: [main]
8
-
9
- jobs:
10
- build-and-test:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - name: Checkout Repository
14
- uses: actions/checkout@v4
15
-
16
- - name: Setup Node.js
17
- uses: actions/setup-node@v4
18
- with:
19
- node-version: 22
20
-
21
- - name: Install Dependencies
22
- run: npm ci
23
-
24
- - name: Install GUI Dependencies
25
- run: npm ci --prefix gui
26
-
27
- - name: Install Extension Dependencies
28
- run: npm ci --prefix extension
29
-
30
- - name: Build Project
31
- run: npm run build
32
-
33
- - name: Compile VS Code Extension
34
- run: npm run extension:compile
35
-
36
- - name: Run Tests
37
- run: npm test
38
-
39
- - name: Install Playwright Browsers
40
- run: npx playwright install chromium --with-deps
41
- working-directory: gui
42
-
43
- - name: Run GUI E2E Tests
44
- run: npm run test:gui
@@ -1,53 +0,0 @@
1
- name: Dependabot Auto-Merge and Version Bump
2
-
3
- on:
4
- pull_request_target:
5
- types: [opened, reopened, synchronize]
6
- branches: [main]
7
-
8
- permissions:
9
- contents: write
10
- pull-requests: write
11
-
12
- jobs:
13
- dependabot:
14
- runs-on: ubuntu-latest
15
- if: github.actor == 'dependabot[bot]'
16
- steps:
17
- - name: Checkout PR branch
18
- uses: actions/checkout@v4
19
- with:
20
- ref: ${{ github.event.pull_request.head.ref }}
21
- fetch-depth: 0
22
-
23
- - name: Setup Node.js
24
- uses: actions/setup-node@v4
25
- with:
26
- node-version: 20
27
-
28
- - name: Bump Version
29
- run: |
30
- # Configure Git
31
- git config user.name "github-actions[bot]"
32
- git config user.email "github-actions[bot]@users.noreply.github.com"
33
-
34
- # Fetch main to compare versions
35
- git fetch origin main:main
36
-
37
- MAIN_VERSION=$(git show main:package.json | node -e "console.log(JSON.parse(require('fs').readFileSync(0, 'utf-8')).version)")
38
- PR_VERSION=$(node -e "console.log(JSON.parse(require('fs').readFileSync('package.json', 'utf-8')).version)")
39
-
40
- if [ "$PR_VERSION" = "$MAIN_VERSION" ]; then
41
- echo "Version has not been bumped yet. Bumping patch version..."
42
- npm version patch --no-git-tag-version
43
- git add package.json package-lock.json
44
- git commit -m "chore: bump version for dependabot update"
45
- git push origin HEAD:${{ github.event.pull_request.head.ref }}
46
- else
47
- echo "Version is already bumped ($PR_VERSION vs main $MAIN_VERSION). Skipping bump."
48
- fi
49
-
50
- - name: Enable Auto-Merge
51
- run: gh pr merge --auto --merge "${{ github.event.pull_request.html_url }}"
52
- env:
53
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,67 +0,0 @@
1
- name: Release — Desktop Installer
2
-
3
- on:
4
- workflow_run:
5
- workflows: [CI]
6
- branches: [main]
7
- types: [completed]
8
-
9
- permissions:
10
- contents: write
11
-
12
- jobs:
13
- build-installer:
14
- if: github.event.workflow_run.conclusion == 'success'
15
- runs-on: windows-latest
16
- steps:
17
- - name: Checkout Repository
18
- uses: actions/checkout@v4
19
- with:
20
- ref: ${{ github.event.workflow_run.head_sha }}
21
-
22
- - name: Setup Node.js
23
- uses: actions/setup-node@v4
24
- with:
25
- node-version: 22
26
- registry-url: 'https://registry.npmjs.org/'
27
-
28
- - name: Install Dependencies
29
- run: npm ci
30
-
31
- - name: Install GUI Dependencies
32
- run: npm ci --prefix gui
33
-
34
- - name: Install Desktop Dependencies
35
- run: npm ci --prefix desktop
36
-
37
- - name: Build Desktop GUI
38
- run: npm run build --prefix gui
39
-
40
- - name: Build Desktop Binaries
41
- run: npm run build --prefix desktop
42
-
43
- - name: Build Standalone Installer
44
- run: npm run build:installer --prefix desktop
45
-
46
- - name: Check npm version
47
- id: check-version
48
- shell: bash
49
- run: |
50
- VERSION=$(node -e "console.log(require('./package.json').version)")
51
- echo "version=$VERSION" >> $GITHUB_OUTPUT
52
- if npm info @mrpatronz/nexusflow@$VERSION --json >/dev/null 2>&1; then
53
- echo "is_new=false" >> $GITHUB_OUTPUT
54
- echo "Version $VERSION already published. Skipping installer upload."
55
- else
56
- echo "is_new=true" >> $GITHUB_OUTPUT
57
- echo "Version $VERSION is new."
58
- fi
59
- env:
60
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
61
-
62
- - name: Upload installer to GitHub Release
63
- if: steps.check-version.outputs.is_new == 'true'
64
- uses: softprops/action-gh-release@v2
65
- with:
66
- tag_name: v${{ steps.check-version.outputs.version }}
67
- files: desktop/dist-installer-output/NexusFlowSetup.exe
@@ -1,65 +0,0 @@
1
- name: Release — npm
2
-
3
- on:
4
- workflow_run:
5
- workflows: [CI]
6
- branches: [main]
7
- types: [completed]
8
-
9
- permissions:
10
- contents: write
11
-
12
- jobs:
13
- publish-npm:
14
- if: github.event.workflow_run.conclusion == 'success'
15
- runs-on: ubuntu-latest
16
- steps:
17
- - name: Checkout Repository
18
- uses: actions/checkout@v4
19
- with:
20
- ref: ${{ github.event.workflow_run.head_sha }}
21
-
22
- - name: Setup Node.js
23
- uses: actions/setup-node@v4
24
- with:
25
- node-version: 22
26
- registry-url: 'https://registry.npmjs.org/'
27
-
28
- - name: Install Dependencies
29
- run: npm ci
30
-
31
- - name: Install GUI Dependencies
32
- run: npm ci --prefix gui
33
-
34
- - name: Build Project
35
- run: npm run build
36
-
37
- - name: Check version
38
- id: check-version
39
- run: |
40
- VERSION=$(node -e "console.log(require('./package.json').version)")
41
- echo "version=$VERSION" >> $GITHUB_OUTPUT
42
- if npm info @mrpatronz/nexusflow@$VERSION --json >/dev/null 2>&1; then
43
- echo "is_new=false" >> $GITHUB_OUTPUT
44
- echo "Version $VERSION is already published on npm. Skipping."
45
- else
46
- echo "is_new=true" >> $GITHUB_OUTPUT
47
- echo "Version $VERSION is new."
48
- fi
49
- env:
50
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
51
-
52
- - name: Publish to npm
53
- if: steps.check-version.outputs.is_new == 'true'
54
- run: npm publish --access public
55
- env:
56
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
57
-
58
- - name: Create GitHub Release
59
- if: steps.check-version.outputs.is_new == 'true'
60
- uses: softprops/action-gh-release@v2
61
- with:
62
- tag_name: v${{ steps.check-version.outputs.version }}
63
- name: Release v${{ steps.check-version.outputs.version }}
64
- generate_release_notes: true
65
- target_commitish: ${{ github.event.workflow_run.head_sha }}
@@ -1,61 +0,0 @@
1
- name: Release — VS Code Extension
2
-
3
- on:
4
- workflow_run:
5
- workflows: [CI]
6
- branches: [main]
7
- types: [completed]
8
-
9
- permissions:
10
- id-token: write # required for OIDC token request
11
- contents: read
12
-
13
- jobs:
14
- publish-extension:
15
- if: github.event.workflow_run.conclusion == 'success'
16
- runs-on: ubuntu-latest
17
- steps:
18
- - name: Checkout Repository
19
- uses: actions/checkout@v4
20
- with:
21
- ref: ${{ github.event.workflow_run.head_sha }}
22
-
23
- - name: Setup Node.js
24
- uses: actions/setup-node@v4
25
- with:
26
- node-version: 22
27
-
28
- - name: Install Extension Dependencies
29
- run: npm ci --prefix extension
30
-
31
- - name: Azure Login (OIDC — no stored secrets)
32
- uses: azure/login@v2
33
- with:
34
- client-id: ${{ secrets.AZURE_CLIENT_ID }}
35
- tenant-id: ${{ secrets.AZURE_TENANT_ID }}
36
- allow-no-subscriptions: true
37
-
38
- - name: Check extension version
39
- id: check-version
40
- working-directory: extension
41
- run: |
42
- VERSION=$(node -e "console.log(require('./package.json').version)")
43
- echo "version=$VERSION" >> $GITHUB_OUTPUT
44
- PUBLISHED=$(npx vsce show nexusflow.nexusflow-vscode --json 2>/dev/null \
45
- | node -e "
46
- const d=require('fs').readFileSync(0,'utf8');
47
- try { process.exit(JSON.parse(d).versions?.['$VERSION'] ? 0 : 1); }
48
- catch { process.exit(1); }
49
- " && echo "true" || echo "false")
50
- if [ "$PUBLISHED" = "true" ]; then
51
- echo "is_new=false" >> $GITHUB_OUTPUT
52
- echo "Extension version $VERSION already published. Skipping."
53
- else
54
- echo "is_new=true" >> $GITHUB_OUTPUT
55
- echo "Extension version $VERSION is new."
56
- fi
57
-
58
- - name: Publish to VS Code Marketplace
59
- if: steps.check-version.outputs.is_new == 'true'
60
- working-directory: extension
61
- run: npx vsce publish --no-dependencies --azure-credential
@@ -1,17 +0,0 @@
1
- {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "name": "Launch Extension",
6
- "type": "extensionHost",
7
- "request": "launch",
8
- "args": [
9
- "--extensionDevelopmentPath=${workspaceRoot}/extension"
10
- ],
11
- "outFiles": [
12
- "${workspaceRoot}/extension/dist/**/*.js"
13
- ],
14
- "preLaunchTask": "npm: extension-compile"
15
- }
16
- ]
17
- }
@@ -1,17 +0,0 @@
1
- {
2
- "version": "2.0.0",
3
- "tasks": [
4
- {
5
- "type": "npm",
6
- "script": "extension:compile",
7
- "group": {
8
- "kind": "build",
9
- "isDefault": true
10
- },
11
- "label": "npm: extension-compile",
12
- "problemMatcher": [
13
- "$tsc"
14
- ]
15
- }
16
- ]
17
- }
@@ -1,114 +0,0 @@
1
- # NexusFlow — Getting Started Guide
2
-
3
- Welcome to **NexusFlow**! This guide will walk you through the system, explain its core workflows, and show you how to leverage multi-repository workspaces and agentic orchestration to accelerate feature development.
4
-
5
- ---
6
-
7
- ## 💡 What is NexusFlow?
8
-
9
- When developing complex features in modern systems, you often need to touch multiple repositories simultaneously (e.g., modifying a shared package, updating a backend REST API, and updating a frontend application).
10
-
11
- Traditional AI assistant setups only give the assistant context of a single repository. NexusFlow solves this by:
12
- 1. **Grouping Repositories**: Creating a dedicated workspace using **git worktrees** on a unified feature branch name.
13
- 2. **Generating AI Context**: Writing specialized configurations (`CLAUDE.md`, `AGENTS.md`, Copilot guidelines, and Cursor rules) that outline the workspace architecture.
14
- 3. **Smart Codebase Analysis**: Scanning tech stacks, ports, and API endpoints so the AI instantly understands the codebase boundaries.
15
- 4. **Service Orchestration**: Running, stopping, and logging all projects simultaneously from a single place.
16
-
17
- ---
18
-
19
- ## 🚀 Step-by-Step Workflow
20
-
21
- Here is how to get started with your first feature workspace.
22
-
23
- ```mermaid
24
- flowchart TD
25
- A["1. Run Web GUI or CLI"] --> B["2. Fill Feature Details & Pick Repos"]
26
- B --> C["3. Workspace Created\n(Git Worktrees + Context generated)"]
27
- C --> D["4. AI Agent Initializes\n(Fills nexusflow-overview.md + questions)"]
28
- D --> E["5. Confirm Assumptions & Spin up services"]
29
- ```
30
-
31
- ### 1. Initialize NexusFlow
32
- First, initialize the default configuration on your machine:
33
- ```bash
34
- nexusflow init
35
- ```
36
- This sets up `~/.nexusflow/config.json` with default settings:
37
- * **Development Directory**: Where your git repositories are located (defaults to `~/dev`).
38
- * **Workspaces Directory**: Where your worktrees will be created (defaults to `~/dev/workspaces`).
39
-
40
- ---
41
-
42
- ### 2. Launch the Web Dashboard
43
- NexusFlow comes with a rich, interactive Web Dashboard. Launch it by running:
44
- ```bash
45
- nexusflow ui
46
- ```
47
- This starts the local backend server on port `3000` and automatically opens the browser.
48
-
49
- ---
50
-
51
- ### 3. Create a Feature Workspace
52
- On the dashboard (or via the `nexusflow create` CLI command):
53
- 1. **Branch name**: Enter your branch name (e.g. `feature/user-profiles`). Slashes are supported!
54
- 2. **Description**: Describe the feature you are building. The AI assistant will read this to compile the plan.
55
- 3. **Pick Repositories**: Choose which repositories you need to modify or reference.
56
- 4. **Assistant Selection**: Select which AI coding assistants you plan to use (Claude Code, Antigravity, Cursor, etc.).
57
- 5. **Click Build Workspace**: NexusFlow will fetch origin updates, create local branches, spin up git worktrees under `workspaces/feature/user-profiles`, run tech analyses, and write context configurations.
58
-
59
- ---
60
-
61
- ### 4. The Agentic Initialization (Universal Context)
62
- Once the workspace is built, open it in your preferred AI assistant.
63
-
64
- Whichever AI harness you use, **the agent's very first instructions** are to:
65
- 1. Scan the workspace projects.
66
- 2. Create a universal reference file: **`nexusflow-overview.md`**.
67
- 3. Write down its assumptions of what each project does, how they interact, and their responsibilities.
68
- 4. List any **Clarifying Questions** it needs you to answer before coding.
69
-
70
- **Your Action**: Review the generated `nexusflow-overview.md`, answer the assistant's questions directly in the chat or file, and confirm its assumptions. This ensures you and the agent are aligned before a single line of code is modified.
71
-
72
- ---
73
-
74
- ### 5. Orchestrate Local Services
75
- You don't need to open five terminal windows to start your backend, frontend, databases, or libraries.
76
-
77
- **On the Web Dashboard:**
78
- * Expand your active workspace to see all detected services (e.g. node scripts, dotnet servers, python hosts).
79
- * Click **Start All** to spin them up.
80
- * View aggregate console streams inside the tabbed retro-terminal output screen.
81
-
82
- **Via the CLI:**
83
- * Navigate to your workspace directory and run:
84
- ```bash
85
- nexusflow start
86
- ```
87
- * Check logs or stop services with:
88
- ```bash
89
- nexusflow logs
90
- nexusflow stop
91
- ```
92
-
93
- ---
94
-
95
- ## 🛠️ CLI Reference
96
-
97
- Here is a summary of the command-line interface:
98
-
99
- | Command | Usage | Description |
100
- | :--- | :--- | :--- |
101
- | **`nexusflow ui`** | `nexusflow ui [-p <port>]` | Starts the backend Hono API server and opens the GUI Dashboard. |
102
- | **`nexusflow create`** | `nexusflow create` | Launches the interactive step-by-step terminal wizard to build a workspace. |
103
- | **`nexusflow list`** | `nexusflow list` / `nexusflow ls` | Lists all active feature workspaces discovered on your machine. |
104
- | **`nexusflow open`** | `nexusflow open` | Prompts you to pick an active workspace and opens it in your editor. |
105
- | **`nexusflow start`** | `nexusflow start [path]` | Starts background processes for all projects in the workspace. |
106
- | **`nexusflow stop`** | `nexusflow stop [path]` | Kills all running processes for the workspace. |
107
- | **`nexusflow logs`** | `nexusflow logs [path] [-n <lines>]` | Tails output log files for all service processes in the workspace. |
108
- | **`nexusflow status`** | `nexusflow status [path]` | Displays running/stopped statuses and PIDs for each service. |
109
- | **`nexusflow init`** | `nexusflow init` | Creates or edits the global config file. |
110
- | **`nexusflow diff`** | `nexusflow diff` | Displays pending code changes across all active workspace repositories. |
111
- | **`nexusflow commit`** | `nexusflow commit` | Automates cross-repository git commit and branch pushes in the workspace. |
112
- | **`nexusflow sync`** | `nexusflow sync` | Syncs and rebases all workspace worktrees with default base branches. |
113
- | **`nexusflow refresh`**| `nexusflow refresh` | Regenerates architecture maps, task plans, and AI context files. |
114
- | **`nexusflow doctor`** | `nexusflow doctor` | Assesses and reports diagnostics of the current workspace setup. |