frida-pi-studio 0.6.1
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/CHANGELOG.md +100 -0
- package/LICENSE +21 -0
- package/README.md +149 -0
- package/assets/logo.png +0 -0
- package/assets/logo.svg +35 -0
- package/docs/feature-catalog.md +148 -0
- package/docs/theme-gallery.html +197 -0
- package/package.json +126 -0
- package/packages/setup/bin/setup.mjs +430 -0
- package/packages/studio/extensions/branding.ts +153 -0
- package/packages/studio/extensions/frida-eval.ts +135 -0
- package/packages/studio/extensions/frida-footer.ts +98 -0
- package/packages/studio/extensions/frida-uris.ts +148 -0
- package/packages/studio/prompts/.gitkeep +0 -0
- package/packages/studio/prompts/rol-datos-ia.md +19 -0
- package/packages/studio/prompts/rol-dev.md +20 -0
- package/packages/studio/prompts/rol-fullstack.md +20 -0
- package/packages/studio/prompts/rol-seguridad.md +19 -0
- package/packages/studio/skills/.gitkeep +0 -0
- package/packages/studio/skills/gh-quoting/SKILL.md +49 -0
- package/packages/studio/skills/learn-review/SKILL.md +58 -0
- package/packages/studio/themes/arctic-aurora.json +84 -0
- package/packages/studio/themes/aurora-circuit.json +85 -0
- package/packages/studio/themes/frida.json +48 -0
- package/packages/studio/themes/violet-breakwater.json +83 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Cambios notables de **frida-pi-studio**. Formato [Keep a Changelog](https://keepachangelog.com/es/1.1.0/);
|
|
4
|
+
versionado [SemVer](https://semver.org/lang/es/); cada versión = tag git
|
|
5
|
+
annotated + [GitHub Release](https://github.com/efuentesp/frida-pi-studio/releases)
|
|
6
|
+
(los releases enlazan los issues cerrados; los commits los referencian con `Refs #N`).
|
|
7
|
+
|
|
8
|
+
Secciones de versiones publicadas: **inmutables**. Lo nuevo entra por
|
|
9
|
+
`[Unreleased]` (regenerable con el skill `changelog` del operador).
|
|
10
|
+
|
|
11
|
+
## [Unreleased]
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Empaquetado para npm público: allowlist `files` (sin gobernanza interna en el tarball), sin `private`, y `overrides` que resuelven los peers mal declarados upstream — el artefacto instala sin `legacy-peer-deps` y sin GitHub (verificado en contenedor). El publish queda en manos del dueño.
|
|
16
|
+
|
|
17
|
+
## [0.6.0] — 2026-09-07
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- Web remote por Tailscale: `/remote` comparte la sesión live (URL + QR) solo dentro del tailnet del equipo — pairing sin exposición a internet (decisión de seguridad del dueño).
|
|
22
|
+
- Banner personalizable: `banner.txt` del usuario reemplaza el arte del header conservando subtítulo y hints; el arte default del kit sigue verificado con figlet.
|
|
23
|
+
|
|
24
|
+
## [0.5.0] — 2026-09-06
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- CI en GitHub Actions: E2E de instalación por git (el camino exacto del equipo, con el token del runner) y verificación de compatibilidad contra pi pineado (0.84/0.85) en cada push/PR.
|
|
29
|
+
- Git guard en el kit: guard rails contra operaciones destructivas de git en las máquinas del equipo.
|
|
30
|
+
- Logo FRIDA-STUDIO: SVG como fuente y PNG como artefacto regenerado, embebido en el README.
|
|
31
|
+
- `--doctor` del setup: diagnostica prerequisitos, layout managed, kit instalado y theme activo, sin instalar nada.
|
|
32
|
+
- Telemetría del kit: timing por prompt y uso agregado en SQLite con dashboard local (adopción de extensiones monopi sobre pi stock).
|
|
33
|
+
- Perfiles del kit: `--profile lite` instala la variante marca + núcleo (vía Package Filtering de pi, reversible a `full`).
|
|
34
|
+
- Importadores de otros harness: `--scan-imports` detecta rules de Claude Code/Cursor/Cline/Copilot/Windsurf y `--import` las fusiona en `AGENTS.md` con procedencia e idempotencia.
|
|
35
|
+
- Learn → skill: skill learn-review que revisa lecciones recurrentes de la memoria y propone su promoción a skills del kit vía issue (con evidencia y borrador listo para revisar).
|
|
36
|
+
- URIs del equipo: herramienta read_uri — pr://N, issue://N y diff://N del repo actual se leen como archivos (una interfaz para el modelo en vez de flags de gh).
|
|
37
|
+
|
|
38
|
+
## [0.4.0] — 2026-09-06
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- Theme `arctic-aurora` como default del kit — paleta aurora boreal (cian hielo, fondos azul-glaciar), del kit MIT awesome-pi-themes de isashi. La paleta cálida `frida` queda seleccionable; el header se colorea con el accent del theme activo.
|
|
43
|
+
- Comando `/frida` — identidad del kit en un panel: versión, theme activo, modelo y cómo actualizar.
|
|
44
|
+
- Banner responsivo — arte completo en terminales anchas; en estrechas, banner compacto que avisa cuántas columnas faltan (el arte jamás se trunca ni se degrada en silencio).
|
|
45
|
+
- Footer FRIDA — status bar propia con marca + modelo + % de contexto + rama git, refresco cada 30 segundos.
|
|
46
|
+
- Meta-installer — el setup resuelve la última versión y el transporte correcto (HTTPS con credenciales gh, o llave SSH), soporta `--version` (pin), `--theme`, `--local`, `--remove` y `--completions` (bash/zsh/fish), y verifica la instalación con `pi list` (smoke post-instalación).
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- `pi-powerline-footer` sale del bundle (27 extensiones): el footer FRIDA propio toma el slot para no pelear por él — quien lo prefiera lo instala aparte.
|
|
51
|
+
|
|
52
|
+
## [0.3.0] — 2026-09-06
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
|
|
56
|
+
- Regla de máxima prioridad: nada se instala en el equipo base (MacBook) del dueño — toda prueba o instalación del kit corre en contenedor o ambiente separado desechable.
|
|
57
|
+
- Tareas en background (`/bg`) y safe-mode ante el crash de una extensión (adopción de extensiones monopi sobre pi stock, validada en contenedor).
|
|
58
|
+
- Plantillas de rol como punto de partida por perfil: `/rol-dev`, `/rol-fullstack`, `/rol-datos-ia` y `/rol-seguridad`.
|
|
59
|
+
- Catálogo de features del kit por capacidad, con tiers (docs/feature-catalog.md).
|
|
60
|
+
- Roadmap con ideas futuras priorizadas por valor; lo que se decide construir se promueve a issue.
|
|
61
|
+
- Plantilla de issue para proponer nueva funcionalidad (junto a las de ajuste de extensiones y bugs).
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
|
|
65
|
+
- Fuente única de versión realineada: la raíz quedó en 0.1.0 al taggear v0.2.0; de vuelta alineada con `KIT_VERSION` sincronizado.
|
|
66
|
+
- Verificación de arte del runbook: falso positivo por líneas vacías del extractor — ahora filtra ambos lados.
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
|
|
70
|
+
- Todo cambio del repo (nueva funcionalidad, ajuste, eliminación, defecto) nace en un issue y aterriza en el CHANGELOG antes de su versión.
|
|
71
|
+
- Regla de vehículos de implementación y sync con prefix sintético en contenedor: adoptar extensiones de terceros sobre pi stock sin instalar nada en el host.
|
|
72
|
+
- Estrategia de distribución decidida tras investigar oh-my-pi y monopi: meta-installer npx sobre pi stock (fork y binarios descartados).
|
|
73
|
+
|
|
74
|
+
## [0.2.0] — 2026-09-05
|
|
75
|
+
|
|
76
|
+
### Added
|
|
77
|
+
|
|
78
|
+
- CHANGELOG y política de versionado con fuente única (el `package.json` raíz; `sync-kit.mjs` sincroniza `KIT_VERSION`).
|
|
79
|
+
- Plantillas de issues para el equipo: alta/baja de extensiones del kit y bugs de branding/theme/setup.
|
|
80
|
+
- GitHub Releases como canal público de cada versión.
|
|
81
|
+
|
|
82
|
+
### Changed
|
|
83
|
+
|
|
84
|
+
- Pruebas de instalación/E2E del kit pasan a contenedores Docker desechables (no contaminan el host del operador).
|
|
85
|
+
- El kit NO se despliega a los hosts propios del dueño: sus servidores espejan el prefix del Mac; el kit es solo para equipos externos y su instalación es manual.
|
|
86
|
+
|
|
87
|
+
### Fixed
|
|
88
|
+
|
|
89
|
+
- Comando de instalación por git: la forma sin `git@` (`git:github.com:usuario/repo`) generaba una URL inválida ("port number…") — el comando correcto es `git:git@github.com:efuentesp/frida-pi-studio@vX.Y.Z` (#1).
|
|
90
|
+
- Instalación por git del paquete: la raíz del repo ES el paquete pi (manifest + dependencias + `.npmrc` en la raíz) — antes vivían en `packages/studio/` y el clon no cargaba nada.
|
|
91
|
+
|
|
92
|
+
## [0.1.0] — 2026-09-05
|
|
93
|
+
|
|
94
|
+
### Added
|
|
95
|
+
|
|
96
|
+
- Kit `frida-pi-studio`: las 25 extensiones del stack en un solo paquete pi (skills y prompts incluidos).
|
|
97
|
+
- Header de marca `FRIDA-STUDIO` con comandos `/header-frida` y `/header-pi` para alternar con el nativo de pi.
|
|
98
|
+
- Theme `frida` (paleta cálida: naranja/rosa/teal sobre fondos oscuros).
|
|
99
|
+
- CLI `frida-pi-studio-setup`: bootstrap de una línea (`--check` para dry-run; activa el theme sin tocar el resto de settings).
|
|
100
|
+
- Runbook de release (`docs/release.md`) y documentación jerárquica DOX por paquete.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Edgar F. Fuentes Perea
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# FRIDA-PI-STUDIO
|
|
2
|
+
|
|
3
|
+
<p align="center"><img src="assets/logo.png" width="112" alt="FRIDA-STUDIO"></p>
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
███████╗██████╗ ██╗██████╗ █████╗ ███████╗████████╗██╗ ██╗██████╗ ██╗ ██████╗
|
|
7
|
+
██╔════╝██╔══██╗██║██╔══██╗██╔══██╗ ██╔════╝╚══██╔══╝██║ ██║██╔══██╗██║██╔═══██╗
|
|
8
|
+
█████╗ ██████╔╝██║██║ ██║███████║█████╗███████╗ ██║ ██║ ██║██║ ██║██║██║ ██║
|
|
9
|
+
██╔══╝ ██╔══██╗██║██║ ██║██╔══██║╚════╝╚════██║ ██║ ██║ ██║██║ ██║██║██║ ██║
|
|
10
|
+
██║ ██║ ██║██║██████╔╝██║ ██║ ███████║ ██║ ╚██████╔╝██████╔╝██║╚██████╔╝
|
|
11
|
+
╚═╝ ╚═╝ ╚═╝╚═╝╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Distribución de marca de **pi** para el equipo: un solo paquete instala todo
|
|
15
|
+
el stack de extensiones, el theme `arctic-aurora` y el header FRIDA-STUDIO.
|
|
16
|
+
|
|
17
|
+
## Requisitos
|
|
18
|
+
|
|
19
|
+
- **Node.js ≥ 24** (`node --version`)
|
|
20
|
+
- **pi** instalado — layout managed:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
curl -fsSL https://pi.dev/install.sh | PI_EXPERIMENTAL=1 sh
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
⚠️ `PI_EXPERIMENTAL=1` es obligatorio: sin él instala por npm y `pi update`
|
|
27
|
+
deja de funcionar.
|
|
28
|
+
- Acceso a este repo (privado) — ver [Acceso del equipo](#acceso-del-equipo-repo-privado).
|
|
29
|
+
|
|
30
|
+
## Acceso del equipo (repo privado)
|
|
31
|
+
|
|
32
|
+
**Dueño del repo — invitar con acceso de solo lectura:**
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
gh api -X PUT repos/efuentesp/frida-pi-studio/collaborators/USUARIO -f permission=read
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
El invitado acepta por correo/notificación. Invitaciones pendientes:
|
|
39
|
+
`gh api repos/efuentesp/frida-pi-studio/invitations`.
|
|
40
|
+
|
|
41
|
+
**Miembro — una vez aceptada la invitación:**
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
gh auth login # Protocol: HTTPS · "Authenticate Git with your GitHub credentials?" → Yes
|
|
45
|
+
# si ya tenías sesión sin eso:
|
|
46
|
+
gh auth setup-git
|
|
47
|
+
# verifica acceso:
|
|
48
|
+
gh repo view efuentesp/frida-pi-studio --json name -q .name # → frida-pi-studio
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Con rol **Read** el miembro puede clonar, instalar el kit, actualizar
|
|
52
|
+
(`pi update --extensions`) y **abrir issues** (el canal para pedir
|
|
53
|
+
ajustes) — pero no pushear.
|
|
54
|
+
|
|
55
|
+
## Instalación
|
|
56
|
+
|
|
57
|
+
Según cómo autentiques contra GitHub:
|
|
58
|
+
|
|
59
|
+
**Con `gh auth login` (HTTPS)** — la forma con slash:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pi install git:github.com/efuentesp/frida-pi-studio@v0.4.0
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Con llave SSH** (`ssh -T git@github.com` te saluda) — la forma scp:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
pi install git:git@github.com:efuentesp/frida-pi-studio@v0.4.0
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
⚠️ Nunca `git:github.com:efuentesp/…` (dos puntos sin `git@`): genera
|
|
72
|
+
una URL inválida ("port number…"). Y no mezcles: la forma scp en una
|
|
73
|
+
máquina sin llave SSH falla con "Permission denied (publickey)" (exit
|
|
74
|
+
128 — mismo código que la URL rota, otra causa).
|
|
75
|
+
|
|
76
|
+
**Sin acceso a este repo (vía npm público):**
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
pi install npm:frida-pi-studio # o bootstrap: npx frida-pi-studio
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
*(disponible desde el primer `npm publish` — en preparación, issue #34;
|
|
83
|
+
el repo privado sigue siendo la fuente y la vía del equipo)*
|
|
84
|
+
|
|
85
|
+
(equipo: última versión en [releases](https://github.com/efuentesp/frida-pi-studio/releases))
|
|
86
|
+
|
|
87
|
+
Alternativa con bootstrap (verifica prerequisitos, instala el kit y activa
|
|
88
|
+
el theme `arctic-aurora`):
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npx github:efuentesp/frida-pi-studio # full (todo)
|
|
92
|
+
npx github:efuentesp/frida-pi-studio --profile lite # marca + núcleo
|
|
93
|
+
npx github:efuentesp/frida-pi-studio --import # viene de Claude Code/Cursor? importa tus rules
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Qué incluye
|
|
97
|
+
|
|
98
|
+
- **31 extensiones** del stack en un paquete: pi-lens, pi-telegram,
|
|
99
|
+
pi-extensible-workflows, rpiv (workflow, todo, advisor, i18n, web-tools…),
|
|
100
|
+
supi-context/web, pi-subagents, pi-worktree, pi-hermes-memory, `/bg`
|
|
101
|
+
(tareas en background), safe-mode (watchdog), git guard, telemetría (timing y uso en
|
|
102
|
+
SQLite) y más — con sus skills y
|
|
103
|
+
prompts. Inventario completo por capacidad:
|
|
104
|
+
[docs/feature-catalog.md](docs/feature-catalog.md).
|
|
105
|
+
- **Identidad propia**: header FRIDA-STUDIO responsivo, footer FRIDA
|
|
106
|
+
(marca + modelo + contexto + branch) y `/frida` (versión, theme y
|
|
107
|
+
cómo actualizar) — extensiones del kit, no de terceros.
|
|
108
|
+
- **Theme `arctic-aurora`** (default): paleta aurora boreal — cian hielo,
|
|
109
|
+
verdes suaves, fondos azul-glaciar. Del kit de themes MIT
|
|
110
|
+
[awesome-pi-themes](https://github.com/isashi/awesome-pi-themes).
|
|
111
|
+
El header FRIDA-STUDIO se colorea con su accent.
|
|
112
|
+
- **3 themes seleccionables** — `frida` (cálida), `aurora-circuit` y
|
|
113
|
+
`violet-breakwater` — con [galería local de
|
|
114
|
+
previews](docs/theme-gallery.html) para elegir antes de activar
|
|
115
|
+
(`--theme <nombre>` o `/settings`).
|
|
116
|
+
- **Header FRIDA-STUDIO**: banner de marca al iniciar. Alterna con el
|
|
117
|
+
nativo de pi: `/header-frida` ↔ `/header-pi`.
|
|
118
|
+
- **Plantillas de rol**: `/rol-dev`, `/rol-fullstack`, `/rol-datos-ia`,
|
|
119
|
+
`/rol-seguridad` — punto de partida probado por perfil.
|
|
120
|
+
|
|
121
|
+
## Después de instalar (one-time, por máquina)
|
|
122
|
+
|
|
123
|
+
Estos pasos llevan credenciales y **nunca van en el repo**:
|
|
124
|
+
|
|
125
|
+
1. Proveedor: `pi auth login` (o export de la API key del proveedor).
|
|
126
|
+
2. Telegram (opcional): `/telegram-setup` en la sesión pi a conectar.
|
|
127
|
+
3. devengine (opcional): `export FRIDA_DEV_ENGINE_API_KEY=…`.
|
|
128
|
+
|
|
129
|
+
## Actualizar
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
pi update --extensions # sin pin (recommended)
|
|
133
|
+
# o fijar versión:
|
|
134
|
+
pi install git:git@github.com:efuentesp/frida-pi-studio@vX.Y.Z
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Cambios por versión: [CHANGELOG.md](CHANGELOG.md).
|
|
138
|
+
|
|
139
|
+
## Pedir ajustes / reportar bugs
|
|
140
|
+
|
|
141
|
+
[Abre un issue](https://github.com/efuentesp/frida-pi-studio/issues/new/choose) —
|
|
142
|
+
hay plantillas para alta/baja de extensiones y para bugs. El operador del
|
|
143
|
+
kit los trabaja y salen en el siguiente release.
|
|
144
|
+
|
|
145
|
+
## Para el operador
|
|
146
|
+
|
|
147
|
+
Documentación jerárquica (DOX): [AGENTS.md](AGENTS.md) →
|
|
148
|
+
`packages/studio/AGENTS.md` · `packages/setup/AGENTS.md`. Runbook de
|
|
149
|
+
release: [docs/release.md](docs/release.md).
|
package/assets/logo.png
ADDED
|
Binary file
|
package/assets/logo.svg
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" width="96" height="96">
|
|
2
|
+
<!--
|
|
3
|
+
FRIDA-STUDIO — logo fuente (vector). El raster (logo.png) es un
|
|
4
|
+
ARTEFACTO regenerado de aquí (patrón omp: nunca se edita el PNG).
|
|
5
|
+
Paletas del kit: cálida frida (naranja/rosa) + arctic-aurora (cian
|
|
6
|
+
hielo sobre azul-glaciar), partidos por la diagonal — la "aurora"
|
|
7
|
+
que cruza el estudio.
|
|
8
|
+
-->
|
|
9
|
+
<title>FRIDA-STUDIO</title>
|
|
10
|
+
<defs>
|
|
11
|
+
<linearGradient id="warm" x1="0" y1="0" x2="1" y2="1">
|
|
12
|
+
<stop offset="0" stop-color="#f97316" />
|
|
13
|
+
<stop offset="1" stop-color="#ec4899" />
|
|
14
|
+
</linearGradient>
|
|
15
|
+
<linearGradient id="aurora" x1="1" y1="1" x2="0" y2="0">
|
|
16
|
+
<stop offset="0" stop-color="#0891b2" />
|
|
17
|
+
<stop offset="1" stop-color="#67e8f9" />
|
|
18
|
+
</linearGradient>
|
|
19
|
+
</defs>
|
|
20
|
+
<!-- lienzo: azul-glaciar del theme default -->
|
|
21
|
+
<rect x="2" y="2" width="92" height="92" rx="20" fill="#0f2027" />
|
|
22
|
+
<!-- mitad cálida (frida) arriba-izquierda -->
|
|
23
|
+
<path d="M22 6 h52 a16 16 0 0 1 16 16 v0 L22 90 Z" fill="url(#aurora)" opacity="0" />
|
|
24
|
+
<path d="M6 74 V22 a16 16 0 0 1 16-16 h52 L6 74 Z" fill="url(#warm)" />
|
|
25
|
+
<!-- mitad aurora abajo-derecha -->
|
|
26
|
+
<path d="M90 22 v52 a16 16 0 0 1-16 16 H22 Z" fill="url(#aurora)" />
|
|
27
|
+
<!-- línea de aurora: trazo claro que parte la casa -->
|
|
28
|
+
<path d="M74 6 L6 74" stroke="#f8fdff" stroke-width="2.5" opacity="0.9" />
|
|
29
|
+
<!-- glifo F construido con rects (determinista, sin fuentes) -->
|
|
30
|
+
<g fill="#0f2027">
|
|
31
|
+
<rect x="40" y="26" width="9" height="44" rx="2" />
|
|
32
|
+
<rect x="40" y="26" width="26" height="9" rx="2" />
|
|
33
|
+
<rect x="40" y="43" width="19" height="7" rx="2" />
|
|
34
|
+
</g>
|
|
35
|
+
</svg>
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# feature-catalog.md — Catálogo de features del kit
|
|
2
|
+
|
|
3
|
+
Inventario canónico de lo que instala **frida-pi-studio**, por
|
|
4
|
+
capacidad: qué comando, tool o atajo añade cada pieza. Complemento de
|
|
5
|
+
largo alance del [README](../README.md); mantenerlo al día es parte
|
|
6
|
+
del ciclo de cada issue que añada/cambie/quite funcionalidad.
|
|
7
|
+
|
|
8
|
+
## Marca y experiencia (propios)
|
|
9
|
+
|
|
10
|
+
- **Header FRIDA-STUDIO** — banner de marca al arrancar; alterna con
|
|
11
|
+
el nativo con `/header-frida` y `/header-pi` (`extensions/branding.ts`).
|
|
12
|
+
- **Banner personalizable** — `${PI_CODING_AGENT_DIR:-~/.pi/agent}/frida/
|
|
13
|
+
banner.txt` reemplaza el arte del header (subtítulo FRIDA y hints se
|
|
14
|
+
conservan); mismo comportamiento responsivo que el arte default.
|
|
15
|
+
- **Theme `arctic-aurora`** (default) — paleta aurora boreal (cian
|
|
16
|
+
hielo `#67e8f9`, fondos azul-glaciar); el header toma su accent
|
|
17
|
+
(`themes/`, de [awesome-pi-themes](https://github.com/isashi/awesome-pi-themes), MIT).
|
|
18
|
+
- **Themes seleccionables** — `frida` (cálida), `aurora-circuit` y
|
|
19
|
+
`violet-breakwater` (`--theme <nombre>`); **galería local** con
|
|
20
|
+
swatches de los 4 themes: `docs/theme-gallery.html` (regenerable con
|
|
21
|
+
`packages/studio/scripts/gen-theme-gallery.mjs`).
|
|
22
|
+
- **Plantillas de rol** — `/rol-dev`, `/rol-fullstack`, `/rol-datos-ia`,
|
|
23
|
+
`/rol-seguridad`: punto de partida probado por perfil (`prompts/`).
|
|
24
|
+
- **Footer FRIDA** — status bar con marca + modelo + % de contexto +
|
|
25
|
+
rama git, refresco cada 30s (`extensions/frida-footer.ts`; extensión
|
|
26
|
+
propia — pi-powerline-footer sale del bundle para no pelear por el
|
|
27
|
+
slot: quien lo prefiera, `pi install npm:pi-powerline-footer`).
|
|
28
|
+
- **`/frida`** — identidad del kit: versión, theme activo, modelo y
|
|
29
|
+
cómo actualizar (`extensions/branding.ts`).
|
|
30
|
+
|
|
31
|
+
## Sesión y productividad
|
|
32
|
+
|
|
33
|
+
- **Tareas en background** — `/bg` y Ctrl+Shift+B: comandos largos
|
|
34
|
+
(builds, tests) sin bloquear la sesión; notificación al terminar
|
|
35
|
+
(`@monopi/background-tasks`).
|
|
36
|
+
- **Todo estructurado** — lista de tareas multi-paso con estados y
|
|
37
|
+
dependencias (`@juiceshsharp/rpiv-todo`).
|
|
38
|
+
- **Preguntas al usuario** — preguntas estructuradas con opciones en
|
|
39
|
+
vez de ambigüedad (`@juicesharp/rpiv-ask-user-question`).
|
|
40
|
+
- **Argumentos en skills** — placeholders `$1`/`$ARGUMENTS` y
|
|
41
|
+
sustitución `` !`cmd` `` al invocar skills (`@juiceshsharp/rpiv-args`).
|
|
42
|
+
- **Suite de procesos** — code review, changelog, commits, handoffs,
|
|
43
|
+
triage de PRs (`@juiceshsharp/rpiv-pi`).
|
|
44
|
+
- **Workflows multi-agente** — pipelines deterministas con subagents
|
|
45
|
+
(`@juiceshsharp/rpiv-workflow`, `pi-extensible-workflows`).
|
|
46
|
+
- **Subagents + Agent Hub** — ejecución paralela y orquestación;
|
|
47
|
+
**FleetView** (`↓` en prompt vacío) con roster de todos los agentes,
|
|
48
|
+
transcript en vivo, steering inline (`Enter`) y stop sin abortar la
|
|
49
|
+
sesión padre (`x`); `@mención` para dirigirte a un agente, tipos
|
|
50
|
+
propios en `.pi/agents/`, aislamiento por worktree y jobs agendados
|
|
51
|
+
(`@tintinweb/pi-subagents`).
|
|
52
|
+
- **Worktrees** — gestión segura de git worktrees y cambio de
|
|
53
|
+
workspace (`@narumitw/pi-worktree`).
|
|
54
|
+
|
|
55
|
+
## Datos y cálculo
|
|
56
|
+
|
|
57
|
+
- **Kernel JS persistente** — herramienta `eval_js`: lo que se define
|
|
58
|
+
en una llamada (variables, funciones) vive en la siguiente, por
|
|
59
|
+
sesión — munging de JSON, cálculos y transformaciones sin salir del
|
|
60
|
+
chat; aislado por `node:vm` con timeout de 10s y `reset` para
|
|
61
|
+
empezar de cero (`extensions/frida-eval.ts`).
|
|
62
|
+
|
|
63
|
+
## Inteligencia de código
|
|
64
|
+
|
|
65
|
+
- **AST y diagnósticos** — búsqueda estructurada, diagnósticos LSP,
|
|
66
|
+
reglas tree-sitter/ast-grep, navegación (`pi-lens`).
|
|
67
|
+
- **Búsqueda fuzzy** — find/grep rapidísimos sobre rutas y contenido
|
|
68
|
+
(`@ff-labs/pi-fff`).
|
|
69
|
+
- **URIs del equipo** — herramienta `read_uri`: `pr://N`, `issue://N` y
|
|
70
|
+
`diff://N` se leen como archivos — una sola interfaz en vez de
|
|
71
|
+
aprender flags de gh (`extensions/frida-uris.ts`).
|
|
72
|
+
|
|
73
|
+
## Contexto, memoria y web
|
|
74
|
+
|
|
75
|
+
- **Memoria persistente** — recuerda entre sesiones (preferencias,
|
|
76
|
+
convenciones, lecciones) (`pi-hermes-memory`).
|
|
77
|
+
- **Presión de contexto** — reportes en vivo de uso de tokens
|
|
78
|
+
(`@mrclrchtr/supi-context`).
|
|
79
|
+
- **Web → Markdown** — páginas públicas a Markdown y docs Context7
|
|
80
|
+
enfocadas (`@mrclrchtr/supi-web`).
|
|
81
|
+
- **Web tools** — búsqueda y fetch web (`@juiceshsharp/rpiv-web-tools`).
|
|
82
|
+
- **Multi-idioma** — UI e interacción en español/inglés
|
|
83
|
+
(`@juiceshsharp/rpiv-i18n`).
|
|
84
|
+
- **Navegador real** — automatización de browser/sitios con sesión
|
|
85
|
+
(`pi-agent-browser-native`).
|
|
86
|
+
|
|
87
|
+
## Sesiones compartidas
|
|
88
|
+
|
|
89
|
+
- **Web remote (Tailscale)** — `/remote` publica la sesión live con URL
|
|
90
|
+
y QR **solo dentro del tailnet del equipo** (decisión de seguridad:
|
|
91
|
+
nada expuesto a internet, cero relay externo) — pairing sin salir del
|
|
92
|
+
perímetro (`@monopi/remote-tailscale`; `web-server` es su librería).
|
|
93
|
+
|
|
94
|
+
## Telemetría del uso
|
|
95
|
+
|
|
96
|
+
- **Timing por prompt** — duración y diagnóstico por turno
|
|
97
|
+
(`@monopi/diagnostics`).
|
|
98
|
+
- **Uso en SQLite + dashboard local** — qué extensiones/skills se usan
|
|
99
|
+
de verdad, evidencia para priorizar el roadmap
|
|
100
|
+
(`@monopi/analytics-extension`; `analytics-db` es su librería).
|
|
101
|
+
|
|
102
|
+
## Robustez y gobierno
|
|
103
|
+
|
|
104
|
+
- **Safe-mode** — el kit degrada y avisa si una extensión crashea, en
|
|
105
|
+
vez de tumbar la sesión (`@monopi/extension-watchdog`;
|
|
106
|
+
`@monopi/extension-shared` es su librería interna).
|
|
107
|
+
- **Git guard** — guard rails contra operaciones destructivas de git
|
|
108
|
+
(`@monopi/extension-git-guard`).
|
|
109
|
+
- **Permisos** — enforcement de permisos por herramienta
|
|
110
|
+
(`@gotgenes/pi-permission-system`).
|
|
111
|
+
- **Segunda opinión** — un modelo revisor revisa antes de actuar
|
|
112
|
+
(`@juiceshsharp/rpiv-advisor`).
|
|
113
|
+
|
|
114
|
+
## Comunicación e integraciones
|
|
115
|
+
|
|
116
|
+
- **Telegram** — turnos y entrega vía Telegram (`@llblab/pi-telegram`).
|
|
117
|
+
- **Sync de config** — settings de pi sincronizados entre máquinas vía
|
|
118
|
+
repo privado (`@jachy/pi-git-sync`).
|
|
119
|
+
- **MCP** — adaptador de servidores Model Context Protocol
|
|
120
|
+
(`pi-mcp-adapter`).
|
|
121
|
+
- **NotebookLM** — notebooks, sources y artifacts de Google
|
|
122
|
+
(`@bacnh85/pi-notebooklm`).
|
|
123
|
+
- **Generación de imágenes** — vía Antigravity/Gemini (`pi-antigravity`).
|
|
124
|
+
- **Skills referenciables** — `$skill_name` en cualquier prompt
|
|
125
|
+
(`pi-multi-skills`).
|
|
126
|
+
|
|
127
|
+
## Aprendizaje del equipo
|
|
128
|
+
|
|
129
|
+
- **Learn → skill** — `/skill:learn-review` revisa las lecciones
|
|
130
|
+
recurrentes de la memoria persistente y propone su promoción a
|
|
131
|
+
skills curadas del kit vía issue (`skills/learn-review`).
|
|
132
|
+
- **gh-quoting** — primera skill nacida de lecciones reales del
|
|
133
|
+
equipo: bodies de `gh` a prueba de shell (heredoc quoted, jamás
|
|
134
|
+
backticks en argumentos interpolables) (`skills/gh-quoting`).
|
|
135
|
+
|
|
136
|
+
## Onboarding
|
|
137
|
+
|
|
138
|
+
- **Importadores de harness ajenos** — `--scan-imports` detecta rules
|
|
139
|
+
de Claude Code, Cursor, Cline, Copilot y Windsurf en el proyecto;
|
|
140
|
+
`--import` las fusiona en `AGENTS.md` (que pi lee nativo) con
|
|
141
|
+
procedencia, backup e idempotencia (setup CLI, issue #16).
|
|
142
|
+
|
|
143
|
+
## Tiers
|
|
144
|
+
|
|
145
|
+
| Tier | Contenido | Estado |
|
|
146
|
+
| --- | --- | --- |
|
|
147
|
+
| **Default** | Todo lo de arriba (bundle único) | Actual |
|
|
148
|
+
| **Lite** | Marca + núcleo: header/footer/themes/roles + búsqueda + todo/ask/args + `/bg` + watchdog + permisos + git guard + timing | `--profile lite` en el setup (Package Filtering de pi) |
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="es">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>FRIDA-STUDIO — galería de themes</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root {
|
|
8
|
+
color-scheme: dark;
|
|
9
|
+
}
|
|
10
|
+
body {
|
|
11
|
+
font-family: ui-monospace, "SF Mono", Menlo, monospace;
|
|
12
|
+
background: #0f2027;
|
|
13
|
+
color: #f8fdff;
|
|
14
|
+
margin: 2rem auto;
|
|
15
|
+
max-width: 56rem;
|
|
16
|
+
padding: 0 1rem;
|
|
17
|
+
}
|
|
18
|
+
h1 {
|
|
19
|
+
color: #67e8f9;
|
|
20
|
+
}
|
|
21
|
+
p.intro {
|
|
22
|
+
color: #a8c8d5;
|
|
23
|
+
line-height: 1.5;
|
|
24
|
+
}
|
|
25
|
+
.grid {
|
|
26
|
+
display: grid;
|
|
27
|
+
grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
|
|
28
|
+
gap: 1rem;
|
|
29
|
+
}
|
|
30
|
+
.card {
|
|
31
|
+
background: #14303a;
|
|
32
|
+
border: 1px solid #24424b;
|
|
33
|
+
border-radius: 0.6rem;
|
|
34
|
+
padding: 1rem;
|
|
35
|
+
}
|
|
36
|
+
.card h2 {
|
|
37
|
+
margin: 0 0 0.75rem;
|
|
38
|
+
font-size: 1.05rem;
|
|
39
|
+
color: #cffafe;
|
|
40
|
+
}
|
|
41
|
+
.swatches {
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-wrap: wrap;
|
|
44
|
+
gap: 0.4rem;
|
|
45
|
+
}
|
|
46
|
+
.chip {
|
|
47
|
+
display: inline-flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: 0.35rem;
|
|
50
|
+
background: #0a171d;
|
|
51
|
+
border-radius: 0.4rem;
|
|
52
|
+
padding: 0.2rem 0.45rem;
|
|
53
|
+
font-size: 0.72rem;
|
|
54
|
+
}
|
|
55
|
+
.chip i {
|
|
56
|
+
width: 0.85rem;
|
|
57
|
+
height: 0.85rem;
|
|
58
|
+
border-radius: 0.25rem;
|
|
59
|
+
display: inline-block;
|
|
60
|
+
border: 1px solid #24424b;
|
|
61
|
+
}
|
|
62
|
+
.chip code {
|
|
63
|
+
color: #6e8995;
|
|
64
|
+
}
|
|
65
|
+
pre {
|
|
66
|
+
background: #0a171d;
|
|
67
|
+
border-radius: 0.4rem;
|
|
68
|
+
padding: 0.5rem 0.6rem;
|
|
69
|
+
font-size: 0.72rem;
|
|
70
|
+
overflow-x: auto;
|
|
71
|
+
color: #86efac;
|
|
72
|
+
margin: 0.8rem 0 0;
|
|
73
|
+
}
|
|
74
|
+
</style>
|
|
75
|
+
</head>
|
|
76
|
+
<body>
|
|
77
|
+
<h1>FRIDA-STUDIO — galería de themes</h1>
|
|
78
|
+
<p class="intro">
|
|
79
|
+
Vista previa de los 4 themes del kit. Prueba cualquiera sin instalar nada
|
|
80
|
+
con el comando de cada tarjeta; para hacerlo tu default:
|
|
81
|
+
<code>settings.json → "theme": "<nombre>"</code> (o
|
|
82
|
+
<code>--theme</code> por sesión). Página regenerable:
|
|
83
|
+
<code>node packages/studio/scripts/gen-theme-gallery.mjs</code>
|
|
84
|
+
</p>
|
|
85
|
+
<div class="grid">
|
|
86
|
+
<article class="card">
|
|
87
|
+
<h2>arctic-aurora</h2>
|
|
88
|
+
<div class="swatches">
|
|
89
|
+
<span class="chip" title="accent"
|
|
90
|
+
><i style="background: #67e8f9"></i>accent<code>#67e8f9</code></span
|
|
91
|
+
>
|
|
92
|
+
<span class="chip" title="success"
|
|
93
|
+
><i style="background: #86efac"></i>success<code
|
|
94
|
+
>#86efac</code
|
|
95
|
+
></span
|
|
96
|
+
>
|
|
97
|
+
<span class="chip" title="warning"
|
|
98
|
+
><i style="background: #fde68a"></i>warning<code
|
|
99
|
+
>#fde68a</code
|
|
100
|
+
></span
|
|
101
|
+
>
|
|
102
|
+
<span class="chip" title="error"
|
|
103
|
+
><i style="background: #fda4af"></i>error<code>#fda4af</code></span
|
|
104
|
+
>
|
|
105
|
+
<span class="chip" title="muted"
|
|
106
|
+
><i style="background: #a8c8d5"></i>muted<code>#a8c8d5</code></span
|
|
107
|
+
>
|
|
108
|
+
<span class="chip" title="selectedBg"
|
|
109
|
+
><i style="background: #1d4652"></i>selectedBg<code
|
|
110
|
+
>#1d4652</code
|
|
111
|
+
></span
|
|
112
|
+
>
|
|
113
|
+
</div>
|
|
114
|
+
<pre>pi --theme ./packages/studio/themes/arctic-aurora.json</pre>
|
|
115
|
+
</article>
|
|
116
|
+
<article class="card">
|
|
117
|
+
<h2>aurora-circuit</h2>
|
|
118
|
+
<div class="swatches">
|
|
119
|
+
<span class="chip" title="accent"
|
|
120
|
+
><i style="background: #3fe7ff"></i>accent<code>#3fe7ff</code></span
|
|
121
|
+
>
|
|
122
|
+
<span class="chip" title="success"
|
|
123
|
+
><i style="background: #55f7c2"></i>success<code
|
|
124
|
+
>#55f7c2</code
|
|
125
|
+
></span
|
|
126
|
+
>
|
|
127
|
+
<span class="chip" title="warning"
|
|
128
|
+
><i style="background: #ffd166"></i>warning<code
|
|
129
|
+
>#ffd166</code
|
|
130
|
+
></span
|
|
131
|
+
>
|
|
132
|
+
<span class="chip" title="error"
|
|
133
|
+
><i style="background: #ff6f7d"></i>error<code>#ff6f7d</code></span
|
|
134
|
+
>
|
|
135
|
+
<span class="chip" title="muted"
|
|
136
|
+
><i style="background: #b8ccd5"></i>muted<code>#b8ccd5</code></span
|
|
137
|
+
>
|
|
138
|
+
<span class="chip" title="selectedBg"
|
|
139
|
+
><i style="background: #1f4350"></i>selectedBg<code
|
|
140
|
+
>#1f4350</code
|
|
141
|
+
></span
|
|
142
|
+
>
|
|
143
|
+
</div>
|
|
144
|
+
<pre>pi --theme ./packages/studio/themes/aurora-circuit.json</pre>
|
|
145
|
+
</article>
|
|
146
|
+
<article class="card">
|
|
147
|
+
<h2>frida</h2>
|
|
148
|
+
<div class="swatches">
|
|
149
|
+
<span class="chip" title="accent"
|
|
150
|
+
><i style="background: #ff5533"></i>accent<code>#ff5533</code></span
|
|
151
|
+
>
|
|
152
|
+
<span class="chip" title="success"
|
|
153
|
+
><i style="background: #2ec4b6"></i>success<code
|
|
154
|
+
>#2ec4b6</code
|
|
155
|
+
></span
|
|
156
|
+
>
|
|
157
|
+
<span class="chip" title="warning"
|
|
158
|
+
><i style="background: #ffd166"></i>warning<code
|
|
159
|
+
>#ffd166</code
|
|
160
|
+
></span
|
|
161
|
+
>
|
|
162
|
+
</div>
|
|
163
|
+
<pre>pi --theme ./packages/studio/themes/frida.json</pre>
|
|
164
|
+
</article>
|
|
165
|
+
<article class="card">
|
|
166
|
+
<h2>violet-breakwater</h2>
|
|
167
|
+
<div class="swatches">
|
|
168
|
+
<span class="chip" title="accent"
|
|
169
|
+
><i style="background: #b999ff"></i>accent<code>#b999ff</code></span
|
|
170
|
+
>
|
|
171
|
+
<span class="chip" title="success"
|
|
172
|
+
><i style="background: #8ce4c1"></i>success<code
|
|
173
|
+
>#8ce4c1</code
|
|
174
|
+
></span
|
|
175
|
+
>
|
|
176
|
+
<span class="chip" title="warning"
|
|
177
|
+
><i style="background: #f0c86d"></i>warning<code
|
|
178
|
+
>#f0c86d</code
|
|
179
|
+
></span
|
|
180
|
+
>
|
|
181
|
+
<span class="chip" title="error"
|
|
182
|
+
><i style="background: #ff8d9d"></i>error<code>#ff8d9d</code></span
|
|
183
|
+
>
|
|
184
|
+
<span class="chip" title="muted"
|
|
185
|
+
><i style="background: #b3c2d6"></i>muted<code>#b3c2d6</code></span
|
|
186
|
+
>
|
|
187
|
+
<span class="chip" title="selectedBg"
|
|
188
|
+
><i style="background: #243449"></i>selectedBg<code
|
|
189
|
+
>#243449</code
|
|
190
|
+
></span
|
|
191
|
+
>
|
|
192
|
+
</div>
|
|
193
|
+
<pre>pi --theme ./packages/studio/themes/violet-breakwater.json</pre>
|
|
194
|
+
</article>
|
|
195
|
+
</div>
|
|
196
|
+
</body>
|
|
197
|
+
</html>
|