@enjoys/context-engine 1.5.1 → 1.6.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 (145) hide show
  1. package/README.md +214 -62
  2. package/data/commands/ab.json +80 -0
  3. package/data/commands/act.json +82 -0
  4. package/data/commands/age.json +68 -0
  5. package/data/commands/argocd.json +109 -0
  6. package/data/commands/asdf.json +102 -0
  7. package/data/commands/astro.json +106 -0
  8. package/data/commands/at.json +52 -0
  9. package/data/commands/babel.json +83 -0
  10. package/data/commands/buildah.json +105 -0
  11. package/data/commands/cabal.json +114 -0
  12. package/data/commands/cdk.json +127 -0
  13. package/data/commands/changeset.json +68 -0
  14. package/data/commands/checkov.json +75 -0
  15. package/data/commands/commitlint.json +60 -0
  16. package/data/commands/concurrently.json +62 -0
  17. package/data/commands/conventional-commits.json +30 -0
  18. package/data/commands/cosign.json +103 -0
  19. package/data/commands/crane.json +109 -0
  20. package/data/commands/cron.json +29 -0
  21. package/data/commands/crystal.json +102 -0
  22. package/data/commands/csvkit.json +96 -0
  23. package/data/commands/cut.json +62 -0
  24. package/data/commands/df.json +66 -0
  25. package/data/commands/diff.json +72 -0
  26. package/data/commands/dig.json +67 -0
  27. package/data/commands/dmesg.json +65 -0
  28. package/data/commands/dotnet.json +136 -0
  29. package/data/commands/du.json +71 -0
  30. package/data/commands/echo.json +45 -0
  31. package/data/commands/eksctl.json +101 -0
  32. package/data/commands/eleventy.json +73 -0
  33. package/data/commands/entr.json +50 -0
  34. package/data/commands/env.json +43 -0
  35. package/data/commands/erlang.json +76 -0
  36. package/data/commands/esbuild.json +91 -0
  37. package/data/commands/ffmpeg.json +115 -0
  38. package/data/commands/fnm.json +100 -0
  39. package/data/commands/free.json +63 -0
  40. package/data/commands/func.json +89 -0
  41. package/data/commands/gatsby.json +106 -0
  42. package/data/commands/ghc.json +79 -0
  43. package/data/commands/ghostscript.json +77 -0
  44. package/data/commands/git-lfs.json +95 -0
  45. package/data/commands/gpg.json +112 -0
  46. package/data/commands/grafana-cli.json +97 -0
  47. package/data/commands/grpcurl.json +74 -0
  48. package/data/commands/grype.json +75 -0
  49. package/data/commands/hadolint.json +61 -0
  50. package/data/commands/head.json +48 -0
  51. package/data/commands/hexo.json +101 -0
  52. package/data/commands/hey.json +91 -0
  53. package/data/commands/hostname.json +52 -0
  54. package/data/commands/httpie.json +101 -0
  55. package/data/commands/hugo.json +106 -0
  56. package/data/commands/husky.json +52 -0
  57. package/data/commands/id.json +50 -0
  58. package/data/commands/ifconfig.json +47 -0
  59. package/data/commands/imagemagick.json +117 -0
  60. package/data/commands/inotifywait.json +70 -0
  61. package/data/commands/ip.json +103 -0
  62. package/data/commands/istioctl.json +105 -0
  63. package/data/commands/javac.json +87 -0
  64. package/data/commands/jekyll.json +105 -0
  65. package/data/commands/kill.json +57 -0
  66. package/data/commands/killall.json +60 -0
  67. package/data/commands/kind.json +98 -0
  68. package/data/commands/ko.json +89 -0
  69. package/data/commands/kustomize.json +70 -0
  70. package/data/commands/latex.json +65 -0
  71. package/data/commands/lerna.json +125 -0
  72. package/data/commands/ln.json +54 -0
  73. package/data/commands/lsof.json +69 -0
  74. package/data/commands/manifest.json +1 -1
  75. package/data/commands/miller.json +58 -0
  76. package/data/commands/mise.json +107 -0
  77. package/data/commands/mix.json +128 -0
  78. package/data/commands/mkdir.json +43 -0
  79. package/data/commands/mount.json +63 -0
  80. package/data/commands/nc.json +71 -0
  81. package/data/commands/netstat.json +74 -0
  82. package/data/commands/nim.json +104 -0
  83. package/data/commands/nohup.json +28 -0
  84. package/data/commands/nslookup.json +46 -0
  85. package/data/commands/nvm.json +91 -0
  86. package/data/commands/ocaml.json +68 -0
  87. package/data/commands/opam.json +111 -0
  88. package/data/commands/pandoc.json +100 -0
  89. package/data/commands/parallel.json +73 -0
  90. package/data/commands/patch.json +55 -0
  91. package/data/commands/ping.json +73 -0
  92. package/data/commands/podman.json +151 -0
  93. package/data/commands/postman.json +82 -0
  94. package/data/commands/pre-commit.json +101 -0
  95. package/data/commands/prometheus.json +65 -0
  96. package/data/commands/pyenv.json +87 -0
  97. package/data/commands/q.json +63 -0
  98. package/data/commands/rbenv.json +85 -0
  99. package/data/commands/rebar3.json +110 -0
  100. package/data/commands/remix.json +80 -0
  101. package/data/commands/rollup.json +74 -0
  102. package/data/commands/route.json +53 -0
  103. package/data/commands/rustc.json +90 -0
  104. package/data/commands/sam.json +122 -0
  105. package/data/commands/sdkman.json +89 -0
  106. package/data/commands/semantic-release.json +58 -0
  107. package/data/commands/semgrep.json +97 -0
  108. package/data/commands/serverless.json +121 -0
  109. package/data/commands/shellcheck.json +61 -0
  110. package/data/commands/skopeo.json +79 -0
  111. package/data/commands/socat.json +43 -0
  112. package/data/commands/sops.json +85 -0
  113. package/data/commands/sort.json +75 -0
  114. package/data/commands/sqlite-utils.json +109 -0
  115. package/data/commands/ss.json +75 -0
  116. package/data/commands/stack.json +115 -0
  117. package/data/commands/storybook.json +90 -0
  118. package/data/commands/strace.json +71 -0
  119. package/data/commands/svelte.json +89 -0
  120. package/data/commands/swc.json +73 -0
  121. package/data/commands/swiftc.json +83 -0
  122. package/data/commands/syft.json +77 -0
  123. package/data/commands/tail.json +58 -0
  124. package/data/commands/tee.json +38 -0
  125. package/data/commands/tflint.json +83 -0
  126. package/data/commands/touch.json +57 -0
  127. package/data/commands/traceroute.json +70 -0
  128. package/data/commands/tracert.json +49 -0
  129. package/data/commands/umount.json +49 -0
  130. package/data/commands/uniq.json +59 -0
  131. package/data/commands/vagrant.json +112 -0
  132. package/data/commands/vegeta.json +59 -0
  133. package/data/commands/volta.json +87 -0
  134. package/data/commands/watch.json +58 -0
  135. package/data/commands/wc.json +50 -0
  136. package/data/commands/webpack.json +94 -0
  137. package/data/commands/which.json +34 -0
  138. package/data/commands/whoami.json +27 -0
  139. package/data/commands/wrangler.json +124 -0
  140. package/data/commands/wrk.json +63 -0
  141. package/data/commands/xargs.json +66 -0
  142. package/data/commands/xsv.json +119 -0
  143. package/data/commands/zig.json +114 -0
  144. package/data/manifest.json +1 -1
  145. package/package.json +2 -2
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # @enjoys/context-engine
2
2
 
3
- Comprehensive CLI command context engine with **190 tools** and **35 languages** — completions, definitions, hovers, subcommands, options, examples, and runtime context detectors for intelligent terminal autocomplete in Monaco Editor.
3
+ Comprehensive Monaco Editor language intelligence engine with **94 languages**, **26 providers**, and **412 CLI command files (395 unique)** — completions, hover docs, definitions, code actions, code lens, document symbols, formatting, signature help, semantic tokens, inline completions, and more, all as pre-built JSON data with zero backend required.
4
4
 
5
5
  ## Why Context Engine?
6
6
 
7
7
  Traditional LSP (Language Server Protocol) setups require a backend server running a separate language server process for every language you want to support. Each language server needs its own binary installed — Go, Rust, Python, TypeScript, and so on. At scale, this makes the backend **heavy**, memory-hungry, and CPU-intensive. Supporting all languages can easily consume **1 GB+** of disk space and significant runtime resources just to keep those servers alive.
8
8
 
9
- Context Engine takes a fundamentally different approach. Instead of running language servers on the backend, it ships **pre-built, Monaco-compatible JSON data** loaded directly via API — completions, hover docs, definitions, and 190 CLI command definitions — all in a single package under **~100 MB**. No language binaries to install. No background processes to manage. No backend required for intelligence.
9
+ Context Engine takes a fundamentally different approach. Instead of running language servers on the backend, it ships **pre-built, Monaco-compatible JSON data** for **94 languages across 26 provider types** — completions, hover docs, definitions, code actions, formatting rules, semantic tokens, and 412 CLI tool definitions — all in a single package. No language binaries to install. No background processes to manage. No backend required for intelligence.
10
10
 
11
- > **Note:** Context Engine does not provide path-based intelligence (file resolution, go-to-definition across files, etc.) the way a full LSP does. It focuses on **language-aware completions, hover documentation, inline definitions, and terminal command autocomplete** — the features that matter most in web-based terminal and editor experiences, without the infrastructure overhead.
11
+ > **Note:** Context Engine does not provide path-based intelligence (file resolution, go-to-definition across files, etc.) the way a full LSP does. It focuses on **language-aware completions, hover documentation, code actions, formatting, symbols, and terminal command autocomplete** — the features that matter most in web-based terminal and editor experiences, without the infrastructure overhead.
12
12
 
13
13
  ## Install
14
14
 
@@ -19,16 +19,34 @@ npm install @enjoys/context-engine
19
19
  ## What's Inside
20
20
 
21
21
  ```
22
- data/
23
- ├── commands/ # 190 CLI tool definitions (git, docker, kubectl, nginx, systemctl, ...)
24
- │ └── *.json # subcommands, options, examples, context detectors
25
- ├── completion/ # 35 languages Monaco completions (snippets, insertText)
26
- │ └── *.json # ready-to-use CompletionItem[] for Monaco
27
- ├── definition/ # 89 languages definitions (signatures, descriptions)
28
- │ └── *.json # keyword → { signature, description, type }
29
- ├── hover/ # 35 languages hover documentation
30
- │ └── *.json # keyword { contents: [{ value }] }
31
- └── manifest.json # Language registry with file mappings
22
+ data/ # 2,444 JSON files — 94 languages × 26 providers + 256 commands
23
+ ├── codeActions/ # Quick-fix and refactoring actions
24
+ ├── codeLens/ # Inline actionable annotations (references, tests)
25
+ ├── color/ # Color picker and decorator support
26
+ ├── commands/ # 412 CLI tool definitions (git, docker, kubectl, ...)
27
+ ├── completion/ # Monaco CompletionItem[] with snippets
28
+ ├── declaration/ # Go-to-declaration data
29
+ ├── definition/ # Definitions (signatures, descriptions, types)
30
+ ├── documentHighlight/ # Symbol highlight on selection
31
+ ├── documentRangeFormatting/ # Format-selection rules
32
+ ├── documentSymbol/ # Outline / symbol tree patterns
33
+ ├── foldingRange/ # Code folding regions
34
+ ├── formatting/ # Full-document formatting rules
35
+ ├── hover/ # Hover documentation (IMarkdownString[])
36
+ ├── implementation/ # Go-to-implementation data
37
+ ├── inlayHints/ # Inline parameter/type hints
38
+ ├── inlineCompletions/ # Ghost-text inline completions
39
+ ├── linkedEditingRange/ # Linked editing (e.g. HTML tag pairs)
40
+ ├── links/ # Clickable document link patterns
41
+ ├── onTypeFormatting/ # Format-as-you-type rules
42
+ ├── rangeSemanticTokens/ # Range-scoped semantic tokens
43
+ ├── references/ # Find-all-references patterns
44
+ ├── rename/ # Symbol rename validation and patterns
45
+ ├── selectionRange/ # Smart selection expansion
46
+ ├── semanticTokens/ # Full semantic tokenization
47
+ ├── signatureHelp/ # Function signature tooltips
48
+ ├── typeDefinition/ # Go-to-type-definition data
49
+ └── manifest.json # Language registry with file mappings
32
50
  ```
33
51
 
34
52
  ---
@@ -160,7 +178,7 @@ function getDefinitionInfo(keyword) {
160
178
  ```js
161
179
  import manifest from '@enjoys/context-engine/data/manifest.json';
162
180
 
163
- // Dynamically register all 35 languages
181
+ // Dynamically register all 94 languages
164
182
  for (const lang of manifest.languages) {
165
183
  const completionData = await import(`@enjoys/context-engine/${lang.files.completion}`);
166
184
  const hoverData = await import(`@enjoys/context-engine/${lang.files.hover}`);
@@ -207,6 +225,97 @@ for (const lang of manifest.languages) {
207
225
  }
208
226
  ```
209
227
 
228
+ ### Register Additional Providers
229
+
230
+ ```js
231
+ import codeActionsData from '@enjoys/context-engine/data/codeActions/typescript.json';
232
+ import codeLensData from '@enjoys/context-engine/data/codeLens/typescript.json';
233
+ import symbolData from '@enjoys/context-engine/data/documentSymbol/typescript.json';
234
+ import highlightData from '@enjoys/context-engine/data/documentHighlight/typescript.json';
235
+ import signatureData from '@enjoys/context-engine/data/signatureHelp/typescript.json';
236
+
237
+ // ── Code Actions (Quick Fix, Refactor) ──
238
+ monaco.languages.registerCodeActionProvider('typescript', {
239
+ provideCodeActions(model, range, context) {
240
+ return {
241
+ actions: codeActionsData.codeActions.map((a) => ({
242
+ title: a.title,
243
+ kind: a.kind,
244
+ diagnostics: [],
245
+ isPreferred: a.isPreferred || false,
246
+ })),
247
+ dispose() {},
248
+ };
249
+ },
250
+ });
251
+
252
+ // ── Code Lens (References, Run Test) ──
253
+ monaco.languages.registerCodeLensProvider('typescript', {
254
+ provideCodeLenses(model) {
255
+ const lenses = [];
256
+ const text = model.getValue();
257
+ for (const pattern of codeLensData.codeLensPatterns) {
258
+ const regex = new RegExp(pattern.pattern, 'gm');
259
+ let match;
260
+ while ((match = regex.exec(text))) {
261
+ const line = model.getPositionAt(match.index).lineNumber;
262
+ lenses.push({
263
+ range: new monaco.Range(line, 1, line, 1),
264
+ command: { id: pattern.commandId, title: pattern.title },
265
+ });
266
+ }
267
+ }
268
+ return { lenses, dispose() {} };
269
+ },
270
+ });
271
+
272
+ // ── Document Symbols (Outline) ──
273
+ monaco.languages.registerDocumentSymbolProvider('typescript', {
274
+ provideDocumentSymbols(model) {
275
+ const symbols = [];
276
+ const text = model.getValue();
277
+ for (const sp of symbolData.symbolPatterns) {
278
+ const regex = new RegExp(sp.pattern, 'gm');
279
+ let match;
280
+ while ((match = regex.exec(text))) {
281
+ const pos = model.getPositionAt(match.index);
282
+ const name = match[sp.captureGroup || 1] || match[0];
283
+ symbols.push({
284
+ name,
285
+ kind: sp.kind,
286
+ range: new monaco.Range(pos.lineNumber, 1, pos.lineNumber, model.getLineMaxColumn(pos.lineNumber)),
287
+ selectionRange: new monaco.Range(pos.lineNumber, pos.column, pos.lineNumber, pos.column + name.length),
288
+ });
289
+ }
290
+ }
291
+ return symbols;
292
+ },
293
+ });
294
+
295
+ // ── Signature Help ──
296
+ monaco.languages.registerSignatureHelpProvider('typescript', {
297
+ signatureHelpTriggerCharacters: signatureData.triggerCharacters || ['(', ','],
298
+ provideSignatureHelp(model, position) {
299
+ const word = model.getWordAtPosition(position);
300
+ if (!word || !signatureData.signatures) return null;
301
+ const sig = signatureData.signatures[word.word];
302
+ if (!sig) return null;
303
+ return {
304
+ value: {
305
+ signatures: [{
306
+ label: sig.label,
307
+ parameters: (sig.params || []).map((p) => ({ label: p.label, documentation: p.documentation })),
308
+ documentation: sig.documentation,
309
+ }],
310
+ activeSignature: 0,
311
+ activeParameter: 0,
312
+ },
313
+ dispose() {},
314
+ };
315
+ },
316
+ });
317
+ ```
318
+
210
319
  ---
211
320
 
212
321
  ## Terminal Autocomplete — Command Engine API
@@ -312,7 +421,7 @@ getCategories();
312
421
  ### `count()`
313
422
 
314
423
  ```js
315
- count(); // 190
424
+ count(); // 395
316
425
  ```
317
426
 
318
427
  ### `resolveCommandPath(name)` / `dataDir`
@@ -464,8 +573,8 @@ const manifest = require('@enjoys/context-engine/data/manifest.json');
464
573
  }
465
574
  ```
466
575
 
467
- `kind` values: `15` = Snippet, `5` = Field, `14` = Keyword, `9` = Function, `12` = Value, `6` = Variable
468
- `insertTextRules`: `4` = InsertAsSnippet (supports `${1:placeholder}` tab stops)
576
+ `kind` values (CompletionItemKind): `0` = Method, `1` = Function, `2` = Constructor, `3` = Field, `4` = Variable, `5` = Class, `6` = Struct, `7` = Interface, `8` = Module, `9` = Property, `10` = Event, `11` = Operator, `12` = Unit, `13` = Value, `14` = Constant, `15` = Enum, `16` = EnumMember, `17` = Keyword, `18` = Text, `19` = Color, `20` = File, `21` = Reference, `22` = Customcolor, `23` = Folder, `24` = TypeParameter, `25` = User, `26` = Issue, `27` = Tool, `28` = Snippet
577
+ `insertTextRules`: `0` = None, `1` = KeepWhitespace, `4` = InsertAsSnippet (supports `${1:placeholder}` tab stops)
469
578
 
470
579
  ### Definition Item (`data/definition/*.json`)
471
580
 
@@ -538,40 +647,70 @@ const manifest = require('@enjoys/context-engine/data/manifest.json');
538
647
 
539
648
  ---
540
649
 
541
- ## Supported Languages (35)
650
+ ## Supported Languages (94)
651
+
652
+ Each language has up to 26 provider files — completions, hover, definitions, code actions, formatting, symbols, and more.
542
653
 
543
654
  | Category | Languages |
544
655
  |----------|-----------|
545
- | **Systems** | C, C++, Rust, Go |
546
- | **Web** | JavaScript, TypeScript, HTML, PHP, Ruby, Python, Java, C#, Lua, Perl |
547
- | **Config** | Nginx, Systemd, Dockerfile, YAML, TOML, JSON, XML, INI, Dotenv, SSH Config, Crontab, HCL, Makefile |
548
- | **Shell** | Bash, Zsh, PowerShell, Awk |
549
- | **Data** | SQL, GraphQL, Protobuf |
550
- | **Docs** | Markdown |
551
-
552
- ## Covered Commands (190)
656
+ | **Web** | JavaScript, TypeScript, HTML, CSS, Less, SCSS, React, Angular, Next.js, Nest.js, Tailwind CSS |
657
+ | **UI / Templating** | Liquid, Twig, FreeMarker2, Razor, shadcn, MDX |
658
+ | **Systems** | C, C++, Rust, Go, Swift, Objective-C |
659
+ | **JVM** | Java, Kotlin, Scala, Clojure |
660
+ | **.NET** | C#, VB, Q# |
661
+ | **Scripting** | Python, Ruby, Perl, Lua, PHP, Elixir, CoffeeScript, R |
662
+ | **Shell** | Shell/Bash, PowerShell, AWK, Azure CLI |
663
+ | **Functional** | Scheme, Julia, CameLIGO, PascaLIGO, Dart |
664
+ | **Database / Query** | SQL, MySQL, PostgreSQL, Redshift, Redis, redis-cli, Cypher, SPARQL |
665
+ | **Config / Infrastructure** | Dockerfile, Docker Compose, YAML, TOML, JSON, XML, INI, Dotenv, SSH Config, HCL, Makefile, Nginx, systemd, Caddy |
666
+ | **Docs / Markup** | Markdown, MDX, reStructuredText |
667
+ | **Data / BI** | MSDAX, Power Query, GraphQL |
668
+ | **Blockchain** | Solidity, Lexon, Bicep |
669
+ | **Hardware / Low-Level** | MIPS, SystemVerilog, WGSL, Structured Text |
670
+ | **Enterprise / Niche** | ABAP, Apex, ECL, Flow9, M3, Pascal, PLA, Postiats, SB |
671
+ | **Other** | Crontab, Protobuf, Doctest |
672
+
673
+ ## Covered Commands (412 files, 395 unique)
553
674
 
554
675
  | Category | Tools |
555
676
  |----------|-------|
556
- | **Cloud CLIs** | aws, az, gcloud, doctl, linode-cli, vercel, netlify, firebase, supabase, railway, render, flyctl, cloudflare, aws-vault, auth0, atlas |
557
- | **Container & Orchestration** | docker, docker-compose, kubectl, helm, minikube, k9s |
558
- | **Version Control** | git, gh, glab, svn, hg |
559
- | **Node.js Ecosystem** | node, npm, npx, yarn, pnpm, bun, deno, turbo, nx, vite, next, nest, nuxt, vue, expo, tsc, eslint, prettier |
560
- | **Python Ecosystem** | python, pip, pipx, poetry, pipenv, conda, pytest, uvicorn, gunicorn, django-admin, flask, alembic, locust |
561
- | **Rust & Go** | cargo, rustup, wasm-pack, go, gofmt, golangci-lint, air |
562
- | **Java/JVM** | java, gradle, mvn |
563
- | **PHP** | php, composer, artisan |
564
- | **Ruby** | gem, bundle, rails, pod, fastlane |
565
- | **Database** | psql, pg_dump, pg_restore, mysql, mongosh, redis-cli, sqlite3, cockroach, influx, clickhouse-client, dbmate, liquibase, flyway, drizzle-kit, prisma |
566
- | **DevOps & Infrastructure** | terraform, terragrunt, pulumi, packer, vault, consul, nomad, ansible |
677
+ | **Cloud CLIs & APIs** | aws, az, gcloud, doctl, linode-cli, vercel, netlify, firebase, supabase, railway, render, flyctl, cloudflare, aws-vault, auth0, stripe, twilio, sfdx, cdk, sam, serverless, eksctl, wrangler, func |
678
+ | **Containers & Orchestration** | docker, docker-compose, dockerfile, kubectl, helm, minikube, k9s, podman, buildah, skopeo, kind, kustomize, argocd, istioctl, crane, ko |
679
+ | **Version Control & Git Workflow** | git, gh, glab, svn, hg, git-lfs, husky, commitlint, semantic-release, conventional-commits, pre-commit |
680
+ | **Node.js Ecosystem** | node, npm, npx, yarn, pnpm, bun, deno, eslint, prettier, tsc, turbo, nx, vite, next, nest |
681
+ | **JS Build Tools** | webpack, esbuild, rollup, swc, babel, storybook, lerna, changeset, concurrently |
682
+ | **Frameworks** | angular, react, nextjs, nestjs, nuxt, vue, shadcn, tailwindcss, rails, artisan |
683
+ | **Static Site Generators** | hugo, jekyll, gatsby, astro, eleventy, hexo, svelte, remix |
684
+ | **Python Ecosystem** | python, pip, pipx, poetry, pipenv, conda, pytest, uvicorn, gunicorn, django-admin, flask, locust |
685
+ | **Rust & Go** | rust, cargo, rustup, wasm-pack, rustc, go, gofmt, golangci-lint, air |
686
+ | **Java/JVM** | java, javac, gradle, mvn, kotlin, scala, clojure, sdkman |
687
+ | **Haskell** | ghc, cabal, stack |
688
+ | **Elixir & Erlang** | mix, rebar3, erlang |
689
+ | **OCaml** | ocaml, opam |
690
+ | **Other Languages** | dotnet, zig, nim, crystal, swiftc, c (gcc/clang), cpp (g++), javascript, typescript, csharp, objective-c, swift, perl, lua, r, scheme, julia, pascal, tcl, vb, qsharp, coffee |
691
+ | **PHP** | php, composer, artisan, symfony, wp |
692
+ | **Ruby** | ruby, gem, bundle, rails, rake, rspec, rbenv, pod, fastlane |
693
+ | **Mobile** | adb, dart, flutter, expo, react-native, xcodebuild, fastlane |
694
+ | **Database** | sql, psql, pgsql, pg_dump, pg_restore, mysql, mongosh, redis, redis-cli, sqlite3, cockroach, influx, clickhouse-client, cypher, redshift |
695
+ | **Database ORMs/Migrations** | prisma, drizzle-kit, typeorm, sequelize, alembic, dbmate, flyway, liquibase, atlas |
696
+ | **DevOps & Infrastructure** | terraform, terragrunt, pulumi, packer, vault, consul, nomad, ansible, vagrant |
697
+ | **DevOps Quality** | shellcheck, hadolint, act, semgrep, checkov, tflint |
567
698
  | **Web Servers** | nginx, caddy, httpd, apachectl |
568
- | **System** | systemctl, journalctl, systemd-analyze, zsh, pm2, tmux, htop, btop, nvim |
569
- | **Build Tools** | make, cmake, bazel, just, bat |
570
- | **Linux Core** | ls, cp, mv, rm, cat, grep, find, sed, awk, tar, chmod, chown, ps, sudo, ssh, ssh-keygen, rsync, curl, wget, cd, scp, linux |
571
- | **Network & Security** | nmap, tcpdump, wireshark, openssl, certbot, ufw, iptables, nft |
572
- | **Package Managers** | apt, apt-get, yum, dnf, pacman, brew, choco, winget, pipx |
699
+ | **Networking** | curl, wget, rsync, ssh, ssh-keygen, ip, ss, ping, dig, nslookup, traceroute, tracert, netstat, ifconfig, route, hostname, nc, socat, nmap, tcpdump, wireshark |
700
+ | **Security** | openssl, certbot, snyk, trivy, sonar-scanner, gpg, age, sops, cosign, syft, grype |
701
+ | **System & Monitoring** | systemctl, journalctl, systemd-analyze, systemd, pm2, tmux, screen, htop, btop, top, ps, linux, crontab, kill, killall, df, du, free, lsof, mount, umount, env, watch, dmesg, strace, nohup, at, cron, hostname, prometheus, grafana-cli |
702
+ | **Linux Coreutils** | ls, cp, mv, rm, cat, find, tar, chmod, chown, cd, sudo, scp, unzip, zip, ufw, iptables, nft, mkdir, touch, echo, head, tail, wc, sort, uniq, cut, diff, patch, ln, xargs, tee, which, whoami, id |
703
+ | **Build Tools** | make, makefile, cmake, bazel, just, gradle |
704
+ | **Version Managers** | nvm, fnm, pyenv, rbenv, asdf, volta, sdkman, mise |
705
+ | **HTTP/API Testing** | httpie, ab, wrk, hey, vegeta, grpcurl, postman |
706
+ | **Data Processing** | csvkit, miller, xsv, q, sqlite-utils |
707
+ | **Media & Documents** | ffmpeg, imagemagick, pandoc, latex, ghostscript |
708
+ | **Package Managers** | apt, apt-get, yum, dnf, pacman, brew, choco, winget, pipx, composer, bundle |
573
709
  | **Testing** | jest, vitest, mocha, playwright, cypress, k6, locust |
574
- | **CI/CD** | stripe, adb |
710
+ | **Text Processing & Utilities** | grep, sed, awk, jq, yq, bat, cat, fd, fzf, rg, parallel, entr, inotifywait |
711
+ | **Text Editors** | nvim, vim |
712
+ | **Config & Data Formats** | json, xml, yaml, toml, ini, hcl, dotenv, markdown, mdx, restructuredtext, protobuf, graphql, scss, less, css, html, liquid, twig, razor, freemarker2 |
713
+ | **Niche & Specialized** | abap, bicep, azcli, cameligo, pascaligo, ecl, flow9, lexon, m3, mips, msdax, pla, postiats, powerquery, sb, sol, sparql, st, systemverilog, wgsl, doctest |
575
714
 
576
715
  ## Context Engine
577
716
 
@@ -593,25 +732,38 @@ const ctx = getContextEngine('systemctl');
593
732
 
594
733
  **Parser types:** `text` | `lines` | `json` | `csv` | `keyvalue` | `regex` | `table`
595
734
 
596
- ## Upcoming Monaco Provider Support
597
-
598
- The following Monaco providers are planned for future releases, bringing Context Engine closer to full LSP-level intelligence — all without a backend:
599
-
600
- | Provider | Status |
601
- |----------|--------|
602
- | `registerCodeActionProvider` | 🔜 Planned |
603
- | `registerDocumentHighlightProvider` | 🔜 Planned |
604
- | `registerDocumentSymbolProvider` | 🔜 Planned |
605
- | `registerLinkProvider` | 🔜 Planned |
606
- | `registerTypeDefinitionProvider` | 🔜 Planned |
607
- | `registerReferenceProvider` | 🔜 Planned |
608
- | `registerImplementationProvider` | 🔜 Planned |
609
- | `registerInlineCompletionsProvider` | 🔜 Planned |
610
- | `registerDocumentFormattingEditProvider` | 🔜 Planned |
611
- | `registerCodeLensProvider` | 🔜 Planned |
612
- | `registerColorProvider` | 🔜 Planned |
613
- | `registerDeclarationProvider` | 🔜 Planned |
614
- | `registerInlayHintsProvider` | 🔜 Planned |
735
+ ## All 26 Monaco Provider Types — Shipped
736
+
737
+ Every provider below is fully implemented for all 94 languages with spec-compliant JSON data:
738
+
739
+ | Provider | Registration Method | Data Key |
740
+ |----------|-------------------|----------|
741
+ | Completion | `registerCompletionItemProvider` | `completions[]` |
742
+ | Hover | `registerHoverProvider` | `hovers{}` |
743
+ | Definition | `registerDefinitionProvider` | `definitions{}` |
744
+ | Code Actions | `registerCodeActionProvider` | `codeActions[]` |
745
+ | Code Lens | `registerCodeLensProvider` | `codeLensPatterns[]` |
746
+ | Color | `registerColorProvider` | `colorPatterns[]` |
747
+ | Declaration | `registerDeclarationProvider` | `declarations{}` |
748
+ | Document Highlight | `registerDocumentHighlightProvider` | `highlights{}` |
749
+ | Document Symbol | `registerDocumentSymbolProvider` | `symbolPatterns[]` |
750
+ | Document Range Formatting | `registerDocumentRangeFormattingEditProvider` | `formatting{}` |
751
+ | Folding Range | `registerFoldingRangeProvider` | `foldingRules[]` |
752
+ | Formatting | `registerDocumentFormattingEditProvider` | `formatting{}` |
753
+ | Implementation | `registerImplementationProvider` | `implementations{}` |
754
+ | Inlay Hints | `registerInlayHintsProvider` | `inlayHints[]` |
755
+ | Inline Completions | `registerInlineCompletionsProvider` | `inlineCompletions[]` |
756
+ | Linked Editing Range | `registerLinkedEditingRangeProvider` | `linkedEditingPatterns[]` |
757
+ | Links | `registerLinkProvider` | `linkPatterns[]` |
758
+ | On-Type Formatting | `registerOnTypeFormattingEditProvider` | `formatting{}` |
759
+ | Range Semantic Tokens | `registerDocumentRangeSemanticTokensProvider` | `tokenTypes[]` |
760
+ | References | `registerReferenceProvider` | `referencePatterns[]` |
761
+ | Rename | `registerRenameProvider` | `renameValidation{}` |
762
+ | Selection Range | `registerSelectionRangeProvider` | `selectionRanges{}` |
763
+ | Semantic Tokens | `registerDocumentSemanticTokensProvider` | `tokenTypes[]` |
764
+ | Signature Help | `registerSignatureHelpProvider` | `signatures{}` |
765
+ | Type Definition | `registerTypeDefinitionProvider` | `typeDefinitions{}` |
766
+ | Commands (CLI) | Custom API | `subcommands[]`, `globalOptions[]` |
615
767
 
616
768
  ## License
617
769
 
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "ab",
3
+ "description": "Apache Bench — HTTP server benchmarking tool",
4
+ "category": "http-testing",
5
+ "platforms": [
6
+ "linux",
7
+ "macos",
8
+ "windows"
9
+ ],
10
+ "shells": [
11
+ "bash",
12
+ "zsh",
13
+ "fish",
14
+ "powershell"
15
+ ],
16
+ "subcommands": [],
17
+ "globalOptions": [
18
+ {
19
+ "name": "-n",
20
+ "description": "Number of requests",
21
+ "type": "number"
22
+ },
23
+ {
24
+ "name": "-c",
25
+ "description": "Concurrency level",
26
+ "type": "number"
27
+ },
28
+ {
29
+ "name": "-t",
30
+ "description": "Time limit (seconds)",
31
+ "type": "number"
32
+ },
33
+ {
34
+ "name": "-H",
35
+ "description": "Custom header",
36
+ "type": "string"
37
+ },
38
+ {
39
+ "name": "-T",
40
+ "description": "Content-Type header",
41
+ "type": "string"
42
+ },
43
+ {
44
+ "name": "-p",
45
+ "description": "POST data file",
46
+ "type": "file"
47
+ },
48
+ {
49
+ "name": "-k",
50
+ "description": "Enable keep-alive"
51
+ },
52
+ {
53
+ "name": "-s",
54
+ "description": "Timeout per request (seconds)",
55
+ "type": "number"
56
+ },
57
+ {
58
+ "name": "-g",
59
+ "description": "Output TSV (gnuplot)",
60
+ "type": "file"
61
+ },
62
+ {
63
+ "name": "-e",
64
+ "description": "Output CSV percentiles",
65
+ "type": "file"
66
+ }
67
+ ],
68
+ "examples": [
69
+ "ab -n 1000 -c 10 http://localhost:8080/",
70
+ "ab -n 5000 -c 100 -k http://localhost/",
71
+ "ab -t 30 -c 50 http://localhost:3000/api/test",
72
+ "ab -n 100 -c 10 -H 'Authorization: Bearer token' http://api.example.com/"
73
+ ],
74
+ "relatedCommands": [
75
+ "wrk",
76
+ "hey",
77
+ "vegeta",
78
+ "siege"
79
+ ]
80
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "act",
3
+ "description": "Run GitHub Actions locally",
4
+ "category": "devops",
5
+ "platforms": [
6
+ "linux",
7
+ "macos",
8
+ "windows"
9
+ ],
10
+ "shells": [
11
+ "bash",
12
+ "zsh",
13
+ "fish",
14
+ "powershell"
15
+ ],
16
+ "subcommands": [],
17
+ "globalOptions": [
18
+ {
19
+ "name": "-l",
20
+ "description": "List available actions"
21
+ },
22
+ {
23
+ "name": "-j",
24
+ "description": "Run specific job",
25
+ "type": "string"
26
+ },
27
+ {
28
+ "name": "-W",
29
+ "description": "Workflow file path",
30
+ "type": "file"
31
+ },
32
+ {
33
+ "name": "-n",
34
+ "description": "Dry run"
35
+ },
36
+ {
37
+ "name": "--secret",
38
+ "description": "Set a secret",
39
+ "type": "string"
40
+ },
41
+ {
42
+ "name": "--env",
43
+ "description": "Set an env var",
44
+ "type": "string"
45
+ },
46
+ {
47
+ "name": "-P",
48
+ "description": "Platform mapping (e.g. ubuntu-latest=image)",
49
+ "type": "string"
50
+ },
51
+ {
52
+ "name": "--artifact-server-path",
53
+ "description": "Local artifact path",
54
+ "type": "string"
55
+ },
56
+ {
57
+ "name": "-v",
58
+ "description": "Verbose output"
59
+ },
60
+ {
61
+ "name": "--container-architecture",
62
+ "description": "Force container arch",
63
+ "type": "string"
64
+ }
65
+ ],
66
+ "examples": [
67
+ "act",
68
+ "act -l",
69
+ "act -j build",
70
+ "act push",
71
+ "act pull_request",
72
+ "act -n",
73
+ "act --secret GITHUB_TOKEN=xxx",
74
+ "act -j test -P ubuntu-latest=catthehacker/ubuntu:act-latest"
75
+ ],
76
+ "relatedCommands": [
77
+ "gh",
78
+ "docker",
79
+ "nektos",
80
+ "make"
81
+ ]
82
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "age",
3
+ "description": "Simple, modern file encryption tool",
4
+ "category": "security",
5
+ "platforms": [
6
+ "linux",
7
+ "macos",
8
+ "windows"
9
+ ],
10
+ "shells": [
11
+ "bash",
12
+ "zsh",
13
+ "fish",
14
+ "powershell"
15
+ ],
16
+ "subcommands": [],
17
+ "globalOptions": [
18
+ {
19
+ "name": "-e",
20
+ "description": "Encrypt (default)"
21
+ },
22
+ {
23
+ "name": "-d",
24
+ "description": "Decrypt"
25
+ },
26
+ {
27
+ "name": "-r",
28
+ "description": "Recipient public key",
29
+ "type": "string"
30
+ },
31
+ {
32
+ "name": "-R",
33
+ "description": "Recipients file",
34
+ "type": "file"
35
+ },
36
+ {
37
+ "name": "-i",
38
+ "description": "Identity file for decryption",
39
+ "type": "file"
40
+ },
41
+ {
42
+ "name": "-o",
43
+ "description": "Output file",
44
+ "type": "file"
45
+ },
46
+ {
47
+ "name": "-a",
48
+ "description": "ASCII armor"
49
+ },
50
+ {
51
+ "name": "-p",
52
+ "description": "Passphrase encryption"
53
+ }
54
+ ],
55
+ "examples": [
56
+ "age -r age1... file.txt > file.txt.age",
57
+ "age -d -i key.txt file.txt.age > file.txt",
58
+ "age-keygen -o key.txt",
59
+ "age -p file.txt > file.txt.age",
60
+ "age -d -i key.txt -o file.txt file.txt.age"
61
+ ],
62
+ "relatedCommands": [
63
+ "gpg",
64
+ "sops",
65
+ "openssl",
66
+ "ssh"
67
+ ]
68
+ }