Add native Pi coding agent support (#262)
* Add native Pi coding agent support in Developer Settings
- Add PiSettingsInstaller that manages a bundled TypeScript extension
at ~/.pi/agent/extensions/supacode/index.ts (uses ownership marker
to identify Supacode-managed installs)
- Add PiSettingsClient dependency for check/install/uninstall
- Add PiExtensionContent with the bundled extension source that reports
agent_start/agent_end/session_shutdown hooks via the Supacode socket
- Add .piHooks slot to AgentHookSlot and wire into SettingsFeature
- Add .pi case to SkillAgent with configDirectoryName '.pi/agent'
- Add piSkillMd to CLISkillContent for Pi CLI skill installation
- Add Pi section to DeveloperSettingsView with Hooks + CLI Skill rows
- Add pi-mark SVG asset for the section header icon
- Add PiSettingsInstallerTests and Pi-specific SettingsFeature tests
- Add identifier_name exclusions for 'id' and 'pi' in .swiftlint.yml
* Address Pi agent PR review feedback
- Collapse Pi Developer Settings section by default to match Kiro.
- Harden PiSettingsInstaller: log read failures instead of conflating
them with "not installed"; throw `.extensionNotManaged` from both
install and uninstall instead of silently flipping the UI; log stale
empty-dir cleanup.
- Drop redundant TypeScript banner comments and the narrate-what event
mapping (the top-of-file docstring is the single source of truth).
- Replace the project-wide `pi` identifier_name exclusion with a scoped
`swiftlint:disable:next` on the enum case.
- Update pi-mark.svg to the official Pi logo with an `original` template
intent so it renders like the Kiro and Claude marks.
- Expand test coverage: 7-slot + 4-skill startup checks, typed error
paths, partial/non-UTF8 marker cases, install overwrite against stale
bodies, and ownership-guard dir preservation.
---------
Co-authored-by: Stefano Bertagno <stefano@bertagno.com>
authored by