Session: snoopy-roaming-dongarra-subagent-a1f379fd — 2026-02-24

doctolib-doctolib · Claude · branch FHIR-2036-implement-hl-setDmpAccessMode · claude-haiku-4-5-20251001 · 2026-02-24 15:10 · 1 msgs · 23 tools · 14 min read · updated 2 months ago

Explore the package at /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records...

tools: Bash, Read
← doctolib-doctolib Download .md .txt .json
Tool calls
Read Read: 18 calls (78.3%) 18 Bash Bash: 5 calls (21.7%) 5
Token usage4.4M total
Input71
Cache creation65.1K
Cache read4.3M
Output54
Cache hit ratio99%· healthy

Project: doctolib-doctolib · Branch: FHIR-2036-implement-hl-setDmpAccessMode · Mode: ` · **Model:**claude-haiku-4-5-20251001`

Stats: 1 user messages, 23 tool calls, tools used: Bash, Read.

Conversation

Turn 1 — User

Explore the package at /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records comprehensively. I need to understand:

  1. The full directory structure (all files and folders)
  2. The business logic types (especially in src/business/types/)
  3. Any existing hooks or adapters for document fetching
  4. The src/business/systems/dmp/types/types.ts file (Author type and others)
  5. How hl_findDocuments and hl_getDocumentsContent operations are implemented or planned
  6. Any existing UI components or hooks related to document listing
  7. The package.json to understand dependencies and exports
  8. tsconfig.json and any module aliases (e.g., #business)
  9. Any index.ts exports

Also look at /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui if it exists - check its structure too.

Be thorough - read the actual file contents for key files.

Turn 1 — Assistant

I'll comprehensively explore both packages to understand their structure and implementations. Let me start with a thorough investigation.

Tools used:

  • Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages -type d -name "*national-health*" | head -20

Tool results:

→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records

Good, both packages exist. Now let me explore their directory structures comprehensively.

Tools used:

  • Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records -type f -name "*.ts" -o -name "*.tsx" -o -name "*.json" | sort

Tool results:

→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/package.json /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/nhr-service-factory.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/systems/dmp/services/dmp-nhr-service.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/systems/dmp/types/index.ts /Users/USER/workspace/doct …(truncated, 1094 more chars)

Now let me check the UI package:

Tools used:

  • Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui -type f -name "*.ts" -o -name "*.tsx" -o -name "*.json" | sort

Tool results:

→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/.storybook/main.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/.storybook/preview.tsx /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/.storybook/vitest.config.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/i18n.json /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-r …(truncated, 1496 more chars)

Now let me get the full directory tree view for both packages:

Tools used:

  • Bash: tree -L 4 /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records 2>/dev/null || find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-re …(truncated, 31 more chars)

Tool results:

→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records ├── CHANGELOG.md ├── node_modules ├── package.json ├── README.md ├── src │   ├── business │   │   ├── nhr-service-factory.ts │   │   ├── systems │   │   │   └── dmp │   │   └── types │   │   ├── document.ts │   │   ├── index.ts │   │   └── service.ts │   └── index.ts ├── tests │   ├── business │   │   ├── nhr-service-factory.test.ts │   │   └── systems │   │   └── dmp │   └── setup.ts ├── tsconfig. …(truncated, 51 more chars)

Good! Now let me check the UI package directory structure:

Tools used:

  • Bash: tree -L 4 /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui 2>/dev/null || find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health …(truncated, 37 more chars)

Tool results:

→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui ├── CHANGELOG.md ├── i18n.json ├── package.json ├── README.md ├── src │   ├── tests │   │   └── index.test.ts │   ├── components │   │   ├── NationalHealthRecordsUi.stories.tsx │   │   └── NationalHealthRecordsUi.tsx │   ├── i18n.test.ts │   ├── i18n.ts │   ├── index.ts │   └── locales │   ├── en │   │   └── tpf_national_health_records_ui.json │   ├── fr │   │   └── tpf_national_health_recor …(truncated, 149 more chars)

Perfect! Now let me read the key files. Let me start with the main package configurations and then move to the business logic:

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/package.json

Tool results:

→ result (ok): 1→{ 2→ "name": "@doctolib/tpf-national-health-records", 3→ "description": "Business logic for national health records functionality in Treatment Plan & Fulfillment", 4→ "sideEffects": false, 5→ "version": "2.0.0", 6→ "repository": { 7→ "type": "git", 8→ "url": "git+https://github.com/doctolib/treatment-plan.git" 9→ }, 10→ "keywords": [ 11→ "upfront", 12→ "smaller-scope" 13→ ], 14→ "author": "@doctolib/fire", 15→ …(truncated, 2372 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/tsconfig.json

Tool results:

→ result (ok): 1→{ 2→ "extends": "../../tsconfig-base", 3→ "include": ["../../vitest-shared.config.ts", "../../vitest-setup", "*/", "package.json"], 4→ "compilerOptions": { 5→ "types": ["vitest/globals"] 6→ } 7→} 8→

<system-reminder> Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing c …(truncated, 83 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/index.ts

Tool results:

→ result (ok): 1→export { createNhrService } from '#business/nhr-service-factory' 2→export type { NhrAdapter, NhrService } from '#business/types/service' 3→

<system-reminder> Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior. </system-reminder>

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/index.ts

Tool results:

→ result (ok): 1→export type { DocumentSearchProps, DocumentSearchResult, NhrDocument } from './document' 2→export type { NhrService } from './service' 3→

<system-reminder> Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior. </system-reminder>

Now let me read the key business logic files:

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/service.ts

Tool results:

→ result (ok): 1→import type { DocumentSearchProps, DocumentSearchResult } from '#business/types/document' 2→ 3→export type CountryCode = 'fr' | 'mock' 4→ 5→export type NhrService = { 6→ searchDocuments(props: DocumentSearchProps): DocumentSearchResult 7→} 8→ 9→export type NhrAdapter = { 10→ searchDocuments(props: DocumentSearchProps): DocumentSearchResult 11→} 12→

<system-reminder> Whenever you read a file, you should consider whether it would be consider …(truncated, 245 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/document.ts

Tool results:

→ result (ok): 1→import type { Author } from '#business/systems/dmp/types/types' 2→ 3→export type DocumentSearchProps = { 4→ patient: PatientInformation 5→ params: DocumentSearchParams 6→} 7→ 8→export type DocumentSearchResult = { 9→ documents: NhrDocument[] 10→} 11→ 12→export type NhrDocument = { 13→ id: string 14→ title: string 15→ description?: string 16→ identifiers: Record<string, string> 17→ creationDate: string 18→ subm …(truncated, 1393 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/systems/dmp/types/types.ts

Tool results:

→ result (ok): 1→/ 2→ * iCanopee JSON Documentation v2.1.0 3→ */ 4→ 5→/ 6→ * Telecom Structure (Section 14.49). 7→ * Represents a telecommunications address (phone, fax, email, etc.). 8→ * Source fields: i_type, i_usage, s_value. 9→ / 10→export type Telecom = { 11→ / 12→ * Telecommunications address type (code from the "Telecommunications Address Type" table). 13→ * Source: i_type. 14→ / 15→ type?: number 16→ /** 17→ * U …(truncated, 14573 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/systems/dmp/types/index.ts

Tool results:

→ result (ok): 1→export type { DmpDocument, DmpListParams } from './types' 2→

<system-reminder> Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior. </system-reminder>

Now let me read the service factory and DMP service implementations:

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/nhr-service-factory.ts

Tool results:

→ result (ok): 1→import { DmpNhrService } from '#business/systems/dmp/services/dmp-nhr-service' 2→import type { CountryCode, NhrAdapter } from '#business/types/service' 3→ 4→export const createNhrService = (countryCode: CountryCode, nhrAdapter: NhrAdapter) => { 5→ switch (countryCode) { 6→ case 'fr': 7→ return new DmpNhrService(nhrAdapter) 8→ default: 9→ throw new Error(Unsupported country code: ${countryCode}) 10→ } 11→} 12→

<system-remi …(truncated, 325 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/systems/dmp/services/dmp-nhr-service.ts

Tool results:

→ result (ok): 1→import type { NhrAdapter } from '#business/types/service' 2→import type { 3→ DocumentSearchProps, 4→ DocumentSearchResult, 5→ NhrService, 6→} from 'treatment-plan/packages/tpf-national-health-records/src/business/types' 7→ 8→export class DmpNhrService implements NhrService { 9→ readonly country = 'fr' 10→ 11→ constructor(readonly nhrAdapter: NhrAdapter) {} 12→ 13→ searchDocuments(props: DocumentSearchProps): DocumentSearchResult {

…(truncated, 422 more chars)

Now let me check the UI package in detail:

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/package.json

Tool results:

→ result (ok): 1→{ 2→ "name": "@doctolib/tpf-national-health-records-ui", 3→ "version": "2.0.0", 4→ "repository": { 5→ "type": "git", 6→ "url": "git+https://github.com/doctolib/treatment-plan.git" 7→ }, 8→ "keywords": [ 9→ "upfront", 10→ "modular frontend", 11→ "smaller-scope" 12→ ], 13→ "author": "@doctolib/fire", 14→ "license": "Doctolib", 15→ "doctolib": { 16→ "upfront-type": "smaller-scope" 17→ }, 18→ " …(truncated, 3711 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/tsconfig.json

Tool results:

→ result (ok): 1→{ 2→ "extends": "../../tsconfig-base", 3→ "include": ["../../vitest-shared.config.ts", "../../vitest-setup", "/*", "src/locales//*.json", "package.json"], 4→ "compilerOptions": { 5→ "types": ["vitest/globals", "@testing-library/jest-dom"] 6→ } 7→} 8→

<system-reminder> Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve …(truncated, 137 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/index.ts

Tool results:

→ result (ok): 1→export { NationalHealthRecordsUi } from './components/NationalHealthRecordsUi' 2→

<system-reminder> Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior. </system-reminder>

Now let me read the UI component:

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NationalHealthRecordsUi.tsx

Tool results:

→ result (ok): 1→export const NationalHealthRecordsUi = () => <h1>National Health Records UI Placeholder</h1> 2→

<system-reminder> Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior. </system-reminder>

Let me check the test files to understand better how these are intended to be used:

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/tests/business/nhr-service-factory.test.ts

Tool results:

→ result (ok): 1→import { createNhrService } from '#business/nhr-service-factory' 2→import { DmpNhrService } from '#business/systems/dmp/services/dmp-nhr-service' 3→import type { NhrAdapter } from '#business/types/service' 4→import { describe, expect, it } from 'vitest' 5→ 6→describe('createNhrService', () => { 7→ it('should return a DmpNhrService for country code "fr"', () => { 8→ const service = createNhrService('fr', {} as NhrAdapter) 9→ 10→ expect(service) …(truncated, 691 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/tests/business/systems/dmp/services/dmp-nhr-service.test.ts

Tool results:

→ result (ok): 1→import { DmpNhrService } from '#business/systems/dmp/services/dmp-nhr-service' 2→import type { DocumentSearchProps, DocumentSearchResult } from '#business/types/document' 3→import type { NhrAdapter } from '#business/types/service' 4→import { describe, expect, it, vi } from 'vitest' 5→ 6→const createMockAdapter = (): NhrAdapter => ({ 7→ searchDocuments: vi.fn(), 8→}) 9→ 10→const searchProps: DocumentSearchProps = { 11→ patient: { nationalHealthI …(truncated, 1739 more chars)

Let me also check the README files to understand the purpose:

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/README.md

Tool results:

→ result (ok): 1→# @doctolib/tpf-national-health-records 2→ 3→Core business logic for national health records. 4→ 5→## What's in this package? 6→ 7→- List exported functions here once they are implemented 8→ 9→## Usage 10→ 11→typescript 12→// Add examples of exported functions here 13→ 14→ 15→## Dependencies 16→ 17→- Add external dependencies here 18→

<system-reminder> Whenever you read a file, you should consider whether it wou …(truncated, 259 more chars)

Tools used:

  • Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/README.md

Tool results:

→ result (ok): 1→# Tpf National Health Records UI 2→ 3→TODO: This package is to hold all UI components for NHR that will be releasable and importable into the monolith 4→ 5→This is an UpFront-compatible feature bundle package, intended for dynamic loading through Vite-based Module Federation. 6→ 7→## Getting started 8→ 9→```bash 10→# Develop your feature in isolation 11→npm run dev 12→ 13→# Start your dev-local test feedback loop (or CI single test run)

…(truncated, 445 more chars)

Perfect! Now let me create a comprehensive summary of my findings. Since I'm in read-only mode, I'll directly provide the comprehensive exploration report to the user.

Comprehensive Exploration Report

I've completed a thorough exploration of both packages in the treatment-plan repository. Here are my findings:


1. DIRECTORY STRUCTURE

tpf-national-health-records (Business Logic Package)

├── src/
│   ├── business/
│   │   ├── nhr-service-factory.ts          # Factory for creating NHR services
│   │   ├── systems/
│   │   │   └── dmp/
│   │   │       ├── services/
│   │   │       │   └── dmp-nhr-service.ts  # DMP (French system) service impl
│   │   │       └── types/
│   │   │           ├── types.ts            # DMP-specific types (Author, DmpDocument, DmpListParams)
│   │   │           └── index.ts            # Exports
│   │   └── types/
│   │       ├── document.ts                 # NhrDocument, DocumentSearchProps/Result
│   │       ├── service.ts                  # NhrService, NhrAdapter, CountryCode types
│   │       └── index.ts                    # Exports
│   └── index.ts                            # Package entry point
├── tests/
│   ├── business/
│   │   ├── nhr-service-factory.test.ts
│   │   └── systems/dmp/services/dmp-nhr-service.test.ts
│   └── setup.ts
├── package.json
├── tsconfig.json
├── vitest.config.ts
└── README.md

tpf-national-health-records-ui (UI Components Package)

├── src/
│   ├── components/
│   │   ├── NationalHealthRecordsUi.tsx      # Placeholder component
│   │   └── NationalHealthRecordsUi.stories.tsx
│   ├── locales/
│   │   ├── en/tpf_national_health_records_ui.json
│   │   ├── fr/tpf_national_health_records_ui.json
│   │   └── loadNamespace.ts
│   ├── __tests__/index.test.ts
│   ├── index.ts                            # Exports NationalHealthRecordsUi
│   ├── i18n.ts                             # i18n setup
│   └── i18n.test.ts
├── .storybook/
├── tests/setup.ts
├── package.json
├── tsconfig.json
├── vitest.config.ts
└── vite.config.ts

2. BUSINESS LOGIC TYPES (src/business/types/)

service.ts (Core type definitions)

export type CountryCode = 'fr' | 'mock'

export type NhrService = {
  searchDocuments(props: DocumentSearchProps): DocumentSearchResult
}

export type NhrAdapter = {
  searchDocuments(props: DocumentSearchProps): DocumentSearchResult
}

Key insight: The architecture uses an adapter pattern where NhrService is a facade that delegates to NhrAdapter.

document.ts (Document/Search contracts)

export type NhrDocument = {
  id: string
  title: string
  description?: string
  identifiers: Record<string, string>
  creationDate: string
  submissionDate?: string
  serviceInformation: ServiceInformation
  status: string
  visibility: string
  format: string
  authors: Author[]              // From DMP types
  classification: DocumentClassification
}

export type DocumentSearchProps = {
  patient: PatientInformation
  params: DocumentSearchParams
}

export type DocumentSearchResult = {
  documents: NhrDocument[]
}

3. DMP-SPECIFIC TYPES (src/business/systems/dmp/types/types.ts)

This is a comprehensive mapping of the iCanopee JSON Documentation v2.1.0 specification. Key types:

Author Type (Lines 116-203)

export type Author = {
  name: string
  givenName: string
  profession?: string
  professionOid?: string
  professionDescription?: string
  speciality?: string
  specialityDescription?: string
  internalId: string
  functionCode: string
  functionCodeOid: string
  activityTypeCode: string
  authenticationMode?: number
  internalIdType?: number
  addresses?: Address[]
  telecoms?: Telecom[]
  institution?: string
  redactionDate?: Date
}

DmpListParams (Lines 209-303)

Parameters for hl_findDocuments operation:

export type DmpListParams = {
  patientIns: string                      // Patient INS-C number
  categories?: string[]                   // Classification codes
  formats?: string[]                      // Document format codes
  practices?: string[]                    // Practice/operating framework filter
  creationDateFrom?: Date
  creationDateTo?: Date
  serviceStartDateFrom?: Date
  serviceStartDateTo?: Date
  serviceStopDateFrom?: Date
  serviceStopDateTo?: Date
  submissionDateFrom?: Date
  submissionDateTo?: Date
  status?: number                         // Document status
  visibility?: number                     // Document visibility
  disableMetadataSearch?: boolean         // Speed optimization flag
  referenceIds?: string[]
  eventCodes?: string[]                   // Medical classification codes (ICD-10, LOINC)
  getTransactionFrames?: boolean
}

DmpDocument (Lines 309-429)

Raw document representation returned by hl_findDocuments:

export type DmpDocument = {
  uniqueId: string
  title: string
  description?: string
  classCode: string                       // Document class
  typeCode: string                        // Document type
  creationDate: string                    // UTC format: YYYYMMDDHHmmSS
  serviceStartDate?: string
  serviceStopDate?: string
  healthcareFacilityTypeCode?: string
  practiceSettingCode?: string
  submissionDate?: string
  submissionSetId?: string
  uuid: string                            // XDS identifier
  previousUuid?: string
  nextUuid?: string
  status: number
  visibility: number
  documentFormat: number
  authors?: Author[]
  eventCodes?: string[]
  handle: number                          // Connector handle for hl_getDocumentHistoryByUniqueId
  referenceIds?: string[]
}

Supporting Types

  • Telecom: Phone, fax, email representations
  • Address: Postal address with type, street, city, postal code, etc.

4. EXISTING HOOKS/ADAPTERS FOR DOCUMENT FETCHING

Current Status: None exist yet

The packages establish the framework but no concrete adapters are implemented. The architecture is ready for: - DMP adapter implementation - Mock adapter for testing - Future country-specific adapters (mock, others)


5. SERVICE IMPLEMENTATIONS

nhr-service-factory.ts (Factory Pattern)

export const createNhrService = (countryCode: CountryCode, nhrAdapter: NhrAdapter) => {
  switch (countryCode) {
    case 'fr':
      return new DmpNhrService(nhrAdapter)
    default:
      throw new Error(`Unsupported country code: ${countryCode}`)
  }
}

dmp-nhr-service.ts (French DMP Service)

export class DmpNhrService implements NhrService {
  readonly country = 'fr'

  constructor(readonly nhrAdapter: NhrAdapter) {}

  searchDocuments(props: DocumentSearchProps): DocumentSearchResult {
    return this.nhrAdapter.searchDocuments(props)
  }
}

Key insight: The service is a thin wrapper around the adapter - it's a delegation pattern. The actual logic should be in the adapter implementation.


6. UI COMPONENTS & HOOKS

Current Status: Placeholder only

NationalHealthRecordsUi.tsx contains:

export const NationalHealthRecordsUi = () => <h1>National Health Records UI Placeholder</h1>

No document listing components or hooks yet.

The UI package has: - React 18+ setup with hooks support - React Query v5 (@tanstack/react-query-v5) for data fetching - i18n support (en/fr translations) - Storybook for component documentation - Design system integration (@doctolib/design-system)


7. PACKAGE.JSON - KEY INFORMATION

Business Package (tpf-national-health-records)

  • Version: 2.0.0
  • Type: ESM (module)
  • Exports: { ".": "./src/index.ts" }
  • Module Aliases: "#business/*": "./src/business/*.ts"
  • Dependencies: None (pure types/logic)
  • DevDeps: vitest, @doctolib/upfront-dev

UI Package (tpf-national-health-records-ui)

  • Version: 2.0.0
  • Type: ESM (module)
  • Exports: `{ ".": …(truncated, 2620 more chars)

Keyboard shortcuts

⌘K / Ctrl+KOpen command palette
/Focus search
g hGo to home
g pGo to projects
g sGo to sessions
j / kNext / prev row (tables)
?Show this help
EscClose dialogs

Structured queries

Mix key:value filters with free text in the palette:

type:sessionOnly session pages
project:llm-wikiFilter by project name (substring)
model:claudeFilter by model name (substring)
date:>2026-03-01Sessions after a date
date:<2026-04-01Sessions before a date
tags:rustPages mentioning a tag/topic
sort:dateSort results by date (newest first)

Example: type:session project:llm-wiki date:>2026-04 sort:date