# Add absPath to search results with --source flag

## Description

## Summary

Search results include `source.relPath` but not absolute paths. GUI integrations need absolute paths for:

- Open in Finder
- Open in editor
- Copy full path

## Current Workaround

Clients must:

1. Fetch all collections via GET /api/collections
2. Build a name→path map
3. Resolve: `path.resolve(collectionPath, relPath)`

This adds an extra API call and complexity.

## Proposed Solution

Add `absPath` field to search results when `--source` flag is used (CLI) or when requested via API parameter.

### CLI

```bash
gno search --json --source 'query'
# Results include: source: { relPath, absPath, ... }
```

### API

```typescript
POST /api/search
{ query: '...', includeAbsPath: true }
// Results include absPath in source object
```

## Security Note

absPath exposes filesystem structure. Only expose on loopback (already enforced).

## Files to Change

- src/pipeline/types.ts - add absPath to Source type
- src/cli/commands/search.ts - populate absPath when --source
- src/serve/routes/api.ts - populate absPath when requested
- spec/output-schemas/search-result.schema.json - add field

## Acceptance

- [ ] Implementation complete
- [ ] Tests passing
- [ ] Documentation updated

## Done summary

Implemented absolute-path source metadata in retrieval results.

Evidence in code/docs/specs:

- search and vector pipelines populate `source.absPath`
- API docs and output schemas document `absPath`
- related tests/fixtures include `absPath`

## Evidence

- Commits:
- Tests: test/fixtures/outputs/search-result-valid.json, test/mcp/tools/search.test.ts
- PRs:
