@hiai-gg/hiai-docs 0.0.1 → 0.0.6

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.
@@ -29,6 +29,22 @@ jobs:
29
29
  - uses: oven-sh/setup-bun@v2
30
30
  with:
31
31
  bun-version: latest
32
+ - name: Configure workspaces for CI
33
+ run: |
34
+ bun -e "
35
+ const fs = require('fs');
36
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
37
+ pkg.workspaces = pkg.workspaces.filter(w => !w.includes('hiai-ui'));
38
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
39
+ "
40
+ bun -e "
41
+ const fs = require('fs');
42
+ const pkg = JSON.parse(fs.readFileSync('frontend/package.json', 'utf8'));
43
+ if (pkg.dependencies && pkg.dependencies['@hiai-gg/hiai-ui']) {
44
+ pkg.dependencies['@hiai-gg/hiai-ui'] = '^0.0.1';
45
+ }
46
+ fs.writeFileSync('frontend/package.json', JSON.stringify(pkg, null, 2));
47
+ "
32
48
  - run: bun install
33
49
  - run: bun run lint
34
50
 
@@ -43,6 +59,22 @@ jobs:
43
59
  - uses: oven-sh/setup-bun@v2
44
60
  with:
45
61
  bun-version: latest
62
+ - name: Configure workspaces for CI
63
+ run: |
64
+ bun -e "
65
+ const fs = require('fs');
66
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
67
+ pkg.workspaces = pkg.workspaces.filter(w => !w.includes('hiai-ui'));
68
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
69
+ "
70
+ bun -e "
71
+ const fs = require('fs');
72
+ const pkg = JSON.parse(fs.readFileSync('frontend/package.json', 'utf8'));
73
+ if (pkg.dependencies && pkg.dependencies['@hiai-gg/hiai-ui']) {
74
+ pkg.dependencies['@hiai-gg/hiai-ui'] = '^0.0.1';
75
+ }
76
+ fs.writeFileSync('frontend/package.json', JSON.stringify(pkg, null, 2));
77
+ "
46
78
  - run: bun install
47
79
  - run: bun run typecheck
48
80
 
@@ -86,6 +118,22 @@ jobs:
86
118
  - uses: oven-sh/setup-bun@v2
87
119
  with:
88
120
  bun-version: latest
121
+ - name: Configure workspaces for CI
122
+ run: |
123
+ bun -e "
124
+ const fs = require('fs');
125
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
126
+ pkg.workspaces = pkg.workspaces.filter(w => !w.includes('hiai-ui'));
127
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
128
+ "
129
+ bun -e "
130
+ const fs = require('fs');
131
+ const pkg = JSON.parse(fs.readFileSync('frontend/package.json', 'utf8'));
132
+ if (pkg.dependencies && pkg.dependencies['@hiai-gg/hiai-ui']) {
133
+ pkg.dependencies['@hiai-gg/hiai-ui'] = '^0.0.1';
134
+ }
135
+ fs.writeFileSync('frontend/package.json', JSON.stringify(pkg, null, 2));
136
+ "
89
137
  - run: bun install
90
138
  - run: cd packages/db && bun run db:migrate
91
139
  - run: bun run test
@@ -96,9 +144,32 @@ jobs:
96
144
  docker-build:
97
145
  name: Docker Build & Scan
98
146
  runs-on: ubuntu-latest
147
+ permissions:
148
+ contents: read
149
+ security-events: write
99
150
  steps:
100
151
  - name: Checkout
101
152
  uses: actions/checkout@v4
153
+ - name: Setup Bun
154
+ uses: oven-sh/setup-bun@v2
155
+ with:
156
+ bun-version: latest
157
+ - name: Configure workspaces for CI
158
+ run: |
159
+ bun -e "
160
+ const fs = require('fs');
161
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
162
+ pkg.workspaces = pkg.workspaces.filter(w => !w.includes('hiai-ui'));
163
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
164
+ "
165
+ bun -e "
166
+ const fs = require('fs');
167
+ const pkg = JSON.parse(fs.readFileSync('frontend/package.json', 'utf8'));
168
+ if (pkg.dependencies && pkg.dependencies['@hiai-gg/hiai-ui']) {
169
+ pkg.dependencies['@hiai-gg/hiai-ui'] = '^0.0.1';
170
+ }
171
+ fs.writeFileSync('frontend/package.json', JSON.stringify(pkg, null, 2));
172
+ "
102
173
 
103
174
  # Materialise a synthetic .env so `docker compose config` resolves vars
104
175
  - name: Prepare .env for compose validation
@@ -185,34 +256,32 @@ jobs:
185
256
 
186
257
  # F) Security scan — Trivy (preferred; Docker Scout as fallback)
187
258
  - name: Security scan with Trivy
188
- uses: aquasecurity/trivy-action@0.24.0
259
+ uses: aquasecurity/trivy-action@v0.24.0
189
260
  with:
190
261
  image-ref: hiai-docs/api:ci-${{ github.sha }}
191
- format: "table"
262
+ format: "sarif"
192
263
  exit-code: "0" # warn-only on PRs; tighten to "1" on protected branches
193
264
  ignore-unfixed: true
194
265
  vuln-type: "os,library"
195
266
  severity: "CRITICAL,HIGH"
196
267
  output: "trivy-api.sarif"
197
268
  - name: Upload Trivy SARIF (backend)
198
- if: always()
199
269
  uses: github/codeql-action/upload-sarif@v3
200
270
  with:
201
271
  sarif_file: trivy-api.sarif
202
272
  category: trivy-api
203
273
 
204
274
  - name: Security scan frontend with Trivy
205
- uses: aquasecurity/trivy-action@0.24.0
275
+ uses: aquasecurity/trivy-action@v0.24.0
206
276
  with:
207
277
  image-ref: hiai-docs/web:ci-${{ github.sha }}
208
- format: "table"
278
+ format: "sarif"
209
279
  exit-code: "0"
210
280
  ignore-unfixed: true
211
281
  vuln-type: "os,library"
212
282
  severity: "CRITICAL,HIGH"
213
283
  output: "trivy-web.sarif"
214
284
  - name: Upload Trivy SARIF (frontend)
215
- if: always()
216
285
  uses: github/codeql-action/upload-sarif@v3
217
286
  with:
218
287
  sarif_file: trivy-web.sarif
@@ -245,19 +314,49 @@ jobs:
245
314
  docker push vgalibov/hiai-docs:web-${{ github.ref_name }}
246
315
 
247
316
  # ---------------------------------------------------------------------------
248
- # 5. Publish NPM — publish package `@hiai-gg/hiai-docs` to NPM
317
+ # 5. Publish NPM — publish package `@hiai-gg/hiai-docs` to NPM (Tokenless OIDC)
249
318
  # ---------------------------------------------------------------------------
250
319
  publish-npm:
251
320
  name: Publish NPM Package
252
321
  needs: [lint, typecheck, test, docker-build]
253
322
  if: startsWith(github.ref, 'refs/tags/v')
254
323
  runs-on: ubuntu-latest
324
+ permissions:
325
+ contents: write
326
+ id-token: write
255
327
  steps:
256
328
  - uses: actions/checkout@v4
329
+
257
330
  - uses: oven-sh/setup-bun@v2
258
331
  with:
259
332
  bun-version: latest
260
333
 
334
+ - uses: actions/setup-node@v4
335
+ with:
336
+ node-version: "22"
337
+ registry-url: "https://registry.npmjs.org"
338
+
339
+ # npm OIDC trusted publishing (tokenless) requires npm >= 11.5.1.
340
+ - name: Upgrade npm for OIDC trusted publishing
341
+ run: npm install -g npm@latest
342
+
343
+ - name: Configure workspaces for CI
344
+ run: |
345
+ bun -e "
346
+ const fs = require('fs');
347
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
348
+ pkg.workspaces = pkg.workspaces.filter(w => !w.includes('hiai-ui'));
349
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
350
+ "
351
+ bun -e "
352
+ const fs = require('fs');
353
+ const pkg = JSON.parse(fs.readFileSync('frontend/package.json', 'utf8'));
354
+ if (pkg.dependencies && pkg.dependencies['@hiai-gg/hiai-ui']) {
355
+ pkg.dependencies['@hiai-gg/hiai-ui'] = '^0.0.1';
356
+ }
357
+ fs.writeFileSync('frontend/package.json', JSON.stringify(pkg, null, 2));
358
+ "
359
+
261
360
  - name: Install dependencies
262
361
  run: bun install
263
362
 
@@ -277,7 +376,11 @@ jobs:
277
376
  fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
278
377
  "
279
378
 
280
- - name: Publish to NPM
281
- run: bun publish --no-git-checks --access public
282
- env:
283
- NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
379
+ - name: Publish to npm
380
+ run: |
381
+ version=$(node -p "require('./package.json').version")
382
+ if npm view "@hiai-gg/hiai-docs@${version}" version >/dev/null 2>&1; then
383
+ echo "::notice::@hiai-gg/hiai-docs@${version} already on npm — skipping."
384
+ else
385
+ npm publish --access public --provenance --ignore-scripts
386
+ fi
@@ -2,17 +2,19 @@ FROM oven/bun:1.3.14-alpine AS base
2
2
  WORKDIR /app
3
3
 
4
4
  # --- Install dependencies ---
5
- # A root install creates /app/node_modules with hoisted deps. Then per-workspace
6
- # installs populate each package's local node_modules. This is required because
7
- # bun's resolver, when run from a workspace package, only looks in that
8
- # package's own node_modules (not the parent's) and the build runs from
9
- # /app/backend/, so it needs backend/node_modules with workspace symlinks.
5
+ # A single root install creates /app/node_modules with hoisted deps and
6
+ # populates the workspace symlinks for backend/, frontend/, and packages/db/.
7
+ # We then run per-workspace `bun install` for backend and packages/db so each
8
+ # package gets its own local node_modules. Bun's bundler looks in the
9
+ # workspace's own node_modules first when running from that directory, so the
10
+ # per-workspace installs are what the build/runtime actually resolve against
11
+ # (with the root node_modules providing hoisted fallback for shared deps and
12
+ # workspace:* links like @hiai-docs/db).
10
13
  FROM base AS deps
11
14
  COPY package.json bun.lock* ./
12
15
  COPY backend/package.json ./backend/
13
16
  COPY frontend/package.json ./frontend/
14
17
  COPY packages/db/package.json ./packages/db/
15
- COPY .packages/hiai-ui /packages/hiai-ui
16
18
  ENV BUN_INSTALL_CONCURRENCY=1
17
19
  RUN bun install --no-verify
18
20
  RUN bun install --cwd backend --no-verify
@@ -24,10 +26,10 @@ RUN bun install --cwd packages/db --no-verify
24
26
  # pull packages/db from the build context because the deps stage only has
25
27
  # its package.json (just enough for `bun install` to discover it).
26
28
  FROM base AS build
29
+ COPY package.json tsconfig.json ./
27
30
  COPY --from=deps /app/node_modules ./node_modules
28
31
  COPY --from=deps /app/backend/node_modules ./backend/node_modules
29
32
  COPY --from=deps /app/packages/db/node_modules ./packages/db/node_modules
30
- COPY --from=deps /packages/hiai-ui /packages/hiai-ui
31
33
  COPY packages/db/ ./packages/db/
32
34
  COPY backend/src ./backend/src
33
35
  COPY backend/tsconfig.json ./backend/
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@hiai-docs/backend",
3
- "version": "0.1.0",
3
+ "version": "0.0.6",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "scripts": {
8
8
  "dev": "bun run --watch src/index.ts",
9
- "build": "bun build src/index.ts --outdir dist --target bun",
9
+ "build": "bun build src/index.ts --outdir dist --target bun --external drizzle-orm --external drizzle-orm/* --external postgres",
10
10
  "start": "bun run dist/index.js",
11
11
  "lint": "biome check src/",
12
12
  "lint:fix": "biome check --fix src/",
@@ -69,7 +69,7 @@ const swaggerConfig = {
69
69
  documentation: {
70
70
  info: {
71
71
  title: "hiai-docs API",
72
- version: "0.1.0",
72
+ version: "0.0.6",
73
73
  description:
74
74
  "Self-hosted AI-first documentation platform. Full-text + semantic search, version history, sharing, and folder organization.",
75
75
  contact: { name: "hiai-gg", url: "https://github.com/hiai-gg/hiai-docs" },
@@ -6,18 +6,16 @@ COPY package.json bun.lock* ./
6
6
  COPY frontend/package.json ./frontend/
7
7
  COPY backend/package.json ./backend/
8
8
  COPY packages/db/package.json ./packages/db/
9
- COPY .packages/hiai-ui /packages/hiai-ui
10
9
  ENV BUN_INSTALL_CONCURRENCY=1
11
10
  RUN bun install --no-verify
12
- RUN cd /packages/hiai-ui && bunx svelte-kit sync
13
11
 
14
12
  # Build
15
13
  FROM base AS build
14
+ COPY package.json tsconfig.json ./
16
15
  COPY --from=deps /app/node_modules ./node_modules
17
16
  COPY --from=deps /app/frontend/node_modules ./frontend/node_modules
18
17
  COPY --from=deps /app/backend/node_modules ./backend/node_modules
19
18
  COPY --from=deps /app/packages/db/node_modules ./packages/db/node_modules
20
- COPY --from=deps /packages/hiai-ui /packages/hiai-ui
21
19
  COPY frontend/ ./frontend/
22
20
  COPY packages/db/ ./packages/db/
23
21
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hiai-docs/frontend",
3
- "version": "0.1.0",
3
+ "version": "0.0.6",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -10,11 +10,11 @@
10
10
  "preview": "vite preview",
11
11
  "lint": "biome check src/",
12
12
  "lint:fix": "biome check --fix src/",
13
- "typecheck": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
14
- "test": "bun test --path-ignore-patterns='*node_modules*' src/"
13
+ "typecheck": "paraglide-js compile --project ./project.inlang --outdir ./src/lib/paraglide && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
14
+ "test": "paraglide-js compile --project ./project.inlang --outdir ./src/lib/paraglide && svelte-kit sync && bun test --path-ignore-patterns='*node_modules*' src/"
15
15
  },
16
16
  "dependencies": {
17
- "@hiai-gg/hiai-ui": "workspace:*",
17
+ "@hiai-gg/hiai-ui": "^0.0.1",
18
18
  "@inlang/paraglide-js": "^2.19.0",
19
19
  "@tiptap/core": "^3.26.1",
20
20
  "@tiptap/extension-code-block-lowlight": "^3.26.1",
@@ -67,4 +67,4 @@
67
67
  "typescript": "^5.8.0",
68
68
  "vite": "^8.0.16"
69
69
  }
70
- }
70
+ }
@@ -5,7 +5,7 @@
5
5
  "./node_modules/@inlang/plugin-m-function-matcher/dist/index.js"
6
6
  ],
7
7
  "plugin.inlang.messageFormat": {
8
- "pathPattern": "/mnt/ai_data/projects/hiai-docs/frontend/messages/{languageTag}.json"
8
+ "pathPattern": "./messages/{languageTag}.json"
9
9
  },
10
10
  "sourceLanguageTag": "en",
11
11
  "languageTags": ["en"]
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@hiai-gg/hiai-docs",
3
- "version": "0.0.1",
3
+ "version": "0.0.6",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "The lightweight, AI-native self-hosted knowledge base — built-in RAG, hybrid semantic search, and a clean REST API for AI agents.",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/hiai-gg/hiai-docs.git"
9
+ "url": "https://github.com/HiAi-gg/hiai-docs"
10
10
  },
11
11
  "homepage": "https://github.com/hiai-gg/hiai-docs#readme",
12
12
  "bugs": {
@@ -36,4 +36,4 @@
36
36
  "start": "docker compose up -d",
37
37
  "stop": "docker compose down"
38
38
  }
39
- }
39
+ }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@hiai-gg/hiai-docs",
3
- "version": "0.0.1",
3
+ "version": "0.0.6",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "The lightweight, AI-native self-hosted knowledge base — built-in RAG, hybrid semantic search, and a clean REST API for AI agents.",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/hiai-gg/hiai-docs.git"
9
+ "url": "https://github.com/HiAi-gg/hiai-docs"
10
10
  },
11
11
  "homepage": "https://github.com/hiai-gg/hiai-docs#readme",
12
12
  "bugs": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hiai-docs/db",
3
- "version": "0.1.0",
3
+ "version": "0.0.6",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,3 +1,6 @@
1
+ CREATE EXTENSION IF NOT EXISTS vector;
2
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;
3
+ --> statement-breakpoint
1
4
  CREATE TABLE "accounts" (
2
5
  "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
6
  "user_id" uuid NOT NULL,
package/run_ci.sh ADDED
@@ -0,0 +1,17 @@
1
+ cd /mnt/ai_data/projects/hiai-docs
2
+ bun -e "
3
+ const fs = require('fs');
4
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
5
+ pkg.workspaces = pkg.workspaces.filter(w => !w.includes('hiai-ui'));
6
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
7
+ "
8
+ bun -e "
9
+ const fs = require('fs');
10
+ const pkg = JSON.parse(fs.readFileSync('frontend/package.json', 'utf8'));
11
+ if (pkg.dependencies && pkg.dependencies['@hiai-gg/hiai-ui']) {
12
+ pkg.dependencies['@hiai-gg/hiai-ui'] = '^0.0.1';
13
+ }
14
+ fs.writeFileSync('frontend/package.json', JSON.stringify(pkg, null, 2));
15
+ "
16
+ bun install
17
+ bun run test
@@ -1,61 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(git mv *)",
5
- "Bash(echo \"rm exit: $?\")",
6
- "Bash(sudo rm -rf .svelte-kit/types)",
7
- "Bash(echo \"exit $?\")",
8
- "Bash(docker exec *)",
9
- "Bash(curl -fsS -o /dev/null -w \"frontend:%{http_code}\\\\n\" http://localhost:50701/)",
10
- "Bash(curl -fsS -o /dev/null -w \"api-health:%{http_code}\\\\n\" http://localhost:50700/api/health)",
11
- "Bash(bunx @biomejs/biome check --max-diagnostics=none 'frontend/src/routes/\\(app\\)/+page.svelte' 'frontend/src/routes/\\(app\\)/docs/[id]/+page.svelte' frontend/src/lib/components/sidebar/TagList.svelte frontend/src/lib/components/sidebar/RecentDocs.svelte frontend/src/lib/stores/tag-store.svelte.ts frontend/src/lib/components/editor/EditorToolbar.svelte frontend/src/lib/components/editor/LinkDialog.svelte frontend/src/lib/api/settings.ts backend/src/api/routes/attachments.ts backend/src/api/routes/documents.ts)",
12
- "mcp__plugin_playwright_playwright__browser_navigate",
13
- "Bash(timeout 300 bunx playwright install chromium)",
14
- "Bash(timeout 300 bunx playwright install chrome)",
15
- "Bash(curl -s -o /dev/null -w \"GET /api/health -> %{http_code}\\\\n\" http://localhost:50700/api/health)",
16
- "Bash(curl -s -o /dev/null -w \"GET /api/auth/get-session -> %{http_code}\\\\n\" http://localhost:50700/api/auth/get-session)",
17
- "Bash(curl -s -o /dev/null -w \"GET /api/attachments/00000000-0000-0000-0000-000000000000/raw -> %{http_code} \\(404=route exists, no such id\\)\\\\n\" http://localhost:50700/api/attachments/00000000-0000-0000-0000-000000000000/raw)",
18
- "Bash(curl -s -o /dev/null -w \"GET /api/documents \\(no auth\\) -> %{http_code} \\(401 expected\\)\\\\n\" http://localhost:50700/api/documents)",
19
- "Bash(timeout 180 bun add --cwd frontend @tiptap/extension-table@^3.26.1)",
20
- "Bash(timeout 180 bun add --cwd frontend @tiptap/extension-table@3.26.1)",
21
- "Bash(curl -s -o /dev/null -w \"/register -> %{http_code}\\\\n\" http://localhost:50701/register)",
22
- "Bash(curl -s -o /dev/null -w \"/docs/probe -> %{http_code}\\\\n\" http://localhost:50701/docs/00000000-0000-0000-0000-000000000000)",
23
- "Bash(rm -f cj.txt img.png got_proxy.bin got_direct.bin)",
24
- "Bash(curl -s -c cj.txt -b cj.txt -X POST http://localhost:50701/api/auth/sign-up/email -H 'Content-Type: application/json' -d '{\"name\":\"Img Test\",\"email\":\"__TRACKED_VAR__\",\"password\":\"password12345\"}' -w '\\\\nHTTP %{http_code}\\\\n')",
25
- "Bash(curl -s -o /dev/null -w \"/search -> %{http_code}\\\\n\" \"http://localhost:50701/search?q=test\")",
26
- "Bash(curl -s -o /dev/null -w \"/ \\(dash\\) -> %{http_code}\\\\n\" http://localhost:50701/)",
27
- "Bash(curl -s -o /dev/null -w \"/ -> %{http_code}\\\\n\" http://localhost:50701/)",
28
- "Bash(curl -s -o /dev/null -w \"/login -> %{http_code}\\\\n\" http://localhost:50701/login)",
29
- "Bash(curl -s \"http://localhost:50701/api/share/PnWzf7hNeAZA_Aqdntkl3\")",
30
- "Bash(python3 -c ' *)",
31
- "Bash(git checkout *)",
32
- "Bash(grep -n '>Import<\\\\|Import$\\\\|>All<\\\\|All$\\\\|<Upload' \"frontend/src/routes/\\(app\\)/+page.svelte\")",
33
- "Bash(git --no-pager diff stash@{0} -- \"frontend/src/routes/\\(app\\)/docs/[id]/+page.svelte\")",
34
- "Bash(git --no-pager diff \"stash@{0}\" -- \":\\(literal\\)frontend/src/routes/\\(app\\)/docs/[id]/+page.svelte\")",
35
- "Bash(git --no-pager diff \"stash@{0}\" -- backend/src/api/routes/documents.ts)",
36
- "Bash(git --no-pager diff \"stash@{0}\" -- frontend/package.json)",
37
- "Bash(git --no-pager diff \"stash@{0}\" -- backend/src/lib/auth.ts)",
38
- "Bash(git --no-pager diff \"stash@{0}\" -- backend/src/lib/config.ts)",
39
- "Bash(git --no-pager diff \"stash@{0}\" -- frontend/src/routes/+layout.svelte)",
40
- "Bash(git --no-pager diff \"stash@{0}\" -- frontend/src/routes/settings/+page.svelte)",
41
- "Bash(grep -iE \"\\\\.env|secret|credential|\\\\.pem|\\\\.key$|id_rsa\")",
42
- "Bash(git rm *)",
43
- "Bash(awk '{print $NF}')",
44
- "Bash(grep -ivE \"change-me|process\\\\.env|envSchema|z\\\\.string|placeholder|example|//|\\\\*|_SECRET=|_KEY=|_PASSWORD=|aipassword|minioadmin|description:|api-key-user|API_KEY=$|SECRET=change\")",
45
- "Bash(grep -iE \"\\\\.env$|secret|\\\\.pem|\\\\.key$|credential\")",
46
- "Bash(curl -s -o /dev/null -w \"/docs test -> %{http_code}\\\\n\" \"http://localhost:50701/docs/test\")",
47
- "Bash(grep -n \"^## \\\\|^---$\" README.md)"
48
- ]
49
- },
50
- "enabledMcpjsonServers": [
51
- "playwright",
52
- "stitch",
53
- "sequential-thinking",
54
- "firecrawl",
55
- "rag",
56
- "context7",
57
- "mempalace",
58
- "websearch",
59
- "grep_app"
60
- ]
61
- }