@elyracode/coding-agent 0.5.0 → 0.5.2

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.
@@ -2047,6 +2047,11 @@ export class InteractiveMode {
2047
2047
  await this.shutdown();
2048
2048
  return;
2049
2049
  }
2050
+ if (text === "/packages" || text === "/ext") {
2051
+ this.editor.setText("");
2052
+ await this.handlePackageBrowser();
2053
+ return;
2054
+ }
2050
2055
  // Handle bash command (! for normal, !! for excluded from context)
2051
2056
  if (text.startsWith("!")) {
2052
2057
  const isExcluded = text.startsWith("!!");
@@ -3933,6 +3938,46 @@ export class InteractiveMode {
3933
3938
  // =========================================================================
3934
3939
  // Command handlers
3935
3940
  // =========================================================================
3941
+ handlePackageBrowser() {
3942
+ const packages = [
3943
+ "@elyracode/stack-tall -- TALL: Livewire 4, Flux UI, Alpine.js, Tailwind",
3944
+ "@elyracode/stack-vilt -- VILT: Vue 3, Inertia.js, Laravel, Tailwind",
3945
+ "@elyracode/stack-rilt -- RILT: React 19, Inertia.js 2, Laravel, shadcn/ui",
3946
+ "@elyracode/stack-primevue -- PrimeVue 4: 80+ UI components for Vue 3",
3947
+ "@elyracode/stack-filament -- Filament v5: admin panels, CRUD, tables, forms",
3948
+ "@elyracode/stack-laravel-ai -- Laravel AI SDK: agents, sub-agents, embeddings",
3949
+ "@elyracode/db-tools -- Database: MySQL, ClickHouse, SQLite, schema discovery",
3950
+ "@elyracode/laravel-starters -- Laravel starter kits from GitHub",
3951
+ "@elyracode/flux-ui -- Flux UI: component index, Blade converter, page gen",
3952
+ "@elyracode/doctor -- Project health: audit, deps, code debt, auto-heal",
3953
+ "@elyracode/http-tools -- HTTP: API testing, docs fetching, OpenAPI parsing",
3954
+ "@elyracode/design-tools -- Design: browser preview, screenshots, Tailwind QA",
3955
+ "@elyracode/subagents -- Subagents: scout, reviewer, planner, worker, oracle",
3956
+ "@elyracode/git-intel -- Git: session briefings, commit messages, PR descriptions",
3957
+ "@elyracode/test-gen -- Testing: Pest for Laravel, Vitest for TypeScript",
3958
+ "@elyracode/perf-tools -- Performance: N+1 queries, slow queries, indexes",
3959
+ "@elyracode/i18n-tools -- Localization: hardcoded strings, missing translations",
3960
+ ];
3961
+ this.showSelector((done) => {
3962
+ const selector = new ExtensionSelectorComponent("Install Extension", packages, (selected) => {
3963
+ done();
3964
+ const pkgName = selected.split(" -- ")[0];
3965
+ this.showStatus(`Installing ${pkgName}...`);
3966
+ try {
3967
+ spawnSync("elyra", ["install", `npm:${pkgName}`], {
3968
+ cwd: process.cwd(),
3969
+ timeout: 60000,
3970
+ stdio: "pipe",
3971
+ });
3972
+ this.showStatus(`Installed ${pkgName}. Run /reload to activate.`);
3973
+ }
3974
+ catch {
3975
+ this.showError(`Failed to install ${pkgName}`);
3976
+ }
3977
+ }, () => done());
3978
+ return { component: selector, focus: selector };
3979
+ });
3980
+ }
3936
3981
  async handleReloadCommand() {
3937
3982
  if (this.session.isStreaming) {
3938
3983
  this.showWarning("Wait for the current response to finish before reloading.");