capsule AI-native Unix-like composition layer

capsule.yaml

3,016 bytes · 73 lines · capsule://quake0day/[email protected] raw on github

apiVersion: capsule.dev/v0.1
kind: Capsule
name: ext-http-request-logger
version: 0.1.0
type: subsystem
purpose:
  summary: 'Provides a flexible HTTP request logging middleware for Node.js applications,
    supporting various predefined and custom logging formats, and a mechanism for
    defining custom tokens to extract request/response data. This capsule encapsulates
    the core functionality of the `morgan` library.

    '
  owns:
  - The core `morgan` middleware logic.
  - Predefined logging formats (e.g., 'combined', 'dev').
  - Mechanism for defining custom tokens.
  - Project metadata, dependencies, and official documentation.
  does_not_own:
  - Development-specific configurations (e.g., linting, testing setup).
  - Continuous integration workflows.
interfaces:
  provides:
  - kind: library
    name: morgan
    description: A Node.js HTTP request logger middleware function and related utilities
      (e.g., `morgan.compile`, `morgan.format`, `morgan.token`).
  requires:
  - kind: library
    name: basic-auth
    description: Utility for parsing basic HTTP authentication headers.
  - kind: library
    name: debug
    description: Tiny Node.js debugging utility.
  - kind: library
    name: depd
    description: Deprecate a function or module.
  - kind: library
    name: on-finished
    description: Execute a callback when a HTTP request/response finishes, closes,
      or errors.
  - kind: library
    name: on-headers
    description: Execute a listener when a response is about to write headers.
agent:
  summary_for_ai: 'This capsule contains the core logic for the `morgan` HTTP request
    logger. It exposes the main `morgan` middleware function, along with `compile`,
    `format`, and `token` utilities for customizing logging behavior. An agent working
    on this should focus on adding new logging formats, custom tokens, improving performance,
    or fixing bugs related to log generation and middleware integration. Ensure changes
    maintain compatibility with existing Express.js applications.

    '
  avoid:
  - Modifying the `package.json` `devDependencies` or `scripts` directly, as these
    are managed by the `ext-http-request-logger-dev` capsule.
  - Introducing project-specific configurations that are not generalizable to an HTTP
    logger.
verification:
  invariants:
  - The `morgan` function must always return a valid Express-style middleware.
  - Predefined formats must produce consistent log outputs.
  - Custom tokens must be correctly registered and resolvable within format strings.
x-reuse:
  notes: 'The `package.json` includes `devDependencies` and `scripts` that are specific
    to the original project''s development and testing setup. Consumers lifting this
    capsule should adapt these sections or integrate them into their existing build
    systems. The `repository` and `funding` fields are specific to the original project
    and should be updated to reflect the new project''s details.

    '
x-reconstruct:
  install: install.json