Skip to main content

A modular system prompt composition framework for AI assistants

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Prompt Composer

A modular system prompt composition framework that intelligently generates system prompts for AI assistants based on available tools, task complexity, and contextual information.

Language Support

  • Python: pip install system-prompt-composer
  • Node.js: npm install system-prompt-composer (native bindings - no Python required!)

Quick Start

Python

import system_prompt_composer
import json

request = {
    "user_prompt": "Help me analyze this code",
    "mcp_config": {"mcpServers": {...}},
    "session_state": {"tool_call_count": 0}
}

response = system_prompt_composer.compose_system_prompt(json.dumps(request))
result = json.loads(response)
print(result["system_prompt"])

Node.js (Native)

const { composeSystemPrompt } = require('system-prompt-composer');

const request = {
  user_prompt: "Help me analyze this code",
  mcp_config: { mcpServers: {...} },
  session_state: { tool_call_count: 0 }
};

const response = await composeSystemPrompt(request);
console.log(response.system_prompt);

๐Ÿ“– For detailed Node.js documentation, see node/README.md

Project Structure

prompt-composer/
โ”œโ”€โ”€ core/              # Rust core implementation
โ”‚   โ”œโ”€โ”€ lib.rs         # Main library with NAPI bindings
โ”‚   โ”œโ”€โ”€ types.rs       # Type definitions
โ”‚   โ”œโ”€โ”€ composition.rs # Prompt composition logic
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ python/            # Python package (PyO3 bindings)
โ”œโ”€โ”€ node/              # Node.js package (native NAPI-RS bindings)
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ index.js       # Native bindings wrapper
โ”‚   โ””โ”€โ”€ index.d.ts     # TypeScript definitions
โ”œโ”€โ”€ prompts/           # Modular prompt library
โ”‚   โ”œโ”€โ”€ domains/       # Domain-specific prompts
โ”‚   โ””โ”€โ”€ behaviors/     # Behavioral guidance prompts
โ””โ”€โ”€ README.md          # This file

Features

  • ๐Ÿง  Intelligent prompts that adapt to available MCP tools
  • ๐Ÿ“‹ Automatic task planning for complex requests
  • ๐ŸŽฏ Context-aware guidance for different domains (programming, analysis, filesystem, etc.)
  • ๐Ÿ“Š Progress monitoring for multi-step workflows
  • ๐Ÿ”„ Modular design with composable prompt components
  • โšก High performance with Rust core
  • ๐ŸŒ Multi-language support (Python, Node.js)

Installation

Python Package

pip install system-prompt-composer

Node.js Package (Native - No Python Required!)

npm install system-prompt-composer

The Node.js package now uses native Rust bindings via NAPI-RS, eliminating the Python dependency!

API Reference

Core Functions

composeSystemPrompt(request)

Generate an intelligent system prompt based on available tools and context.

Parameters:

  • request.user_prompt (string): The user's request
  • request.mcp_config (object): MCP server configuration with mcpServers
  • request.session_state (object): Current session state including tool_call_count
  • request.domain_hints (array, optional): Domain hints like ["programming", "analysis"]
  • request.task_complexity (string, optional): "Simple", "Complex", or "Auto"

Returns:

{
  system_prompt: "Generated prompt text...",
  source: "native",
  version: "1.1.0",
  // ... additional metadata
}

listAvailableDomains()

Returns array of available domain modules: ["programming", "analysis", "filesystem", "system"]

listAvailableBehaviors()

Returns array of available behavior modules: ["planning", "progress", "reasoning", "tools"]

getStatus()

Returns system status and configuration information.

isAvailable()

Always returns true for native bindings.

Architecture

Native Node.js Architecture (NEW):

Node.js โ†’ NAPI-RS โ†’ Rust Core

Python Architecture:

Python โ†’ PyO3 โ†’ Rust Core  

Key Benefits of Native Bindings:

  • โœ… No Python dependency for Node.js users
  • โœ… Native performance - direct Rust execution
  • โœ… Simple deployment - just npm install
  • โœ… Better error handling
  • โœ… Cross-platform binary distribution
  • โœ… Smaller bundle size

Development

Building Native Node.js Package

cd node/
npm install
npm run build        # Build release binaries
npm run build:debug  # Build debug binaries
npm test            # Run tests

Python Development

cd python/
pip install -e .

Rust Core Development

cargo build --release
cargo test
cargo build --features nodejs  # For Node.js bindings
cargo build --features python  # For Python bindings

Publishing

Node.js (npm)

cd node/
npm run build       # Build native binaries
npm publish --access public

Python (PyPI)

cd python/
pip install build twine
python -m build
twine upload dist/*

Contributing

Contributions welcome! The project uses:

  • Rust for the core prompt composition engine
  • NAPI-RS for Node.js native bindings
  • PyO3 for Python bindings
  • Modular prompts in the prompts/ directory

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

system_prompt_composer-1.0.8-cp312-cp312-manylinux_2_34_x86_64.whl (555.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

File details

Details for the file system_prompt_composer-1.0.8-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for system_prompt_composer-1.0.8-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 226398b311acb023ef64db4c42ff72bbaac15a2e77407f471e7d4baadadc64fa
MD5 29a66b00bcb2af90a7f0ea5807db75b5
BLAKE2b-256 419b75620d817021c21aeae2463652965a268d7a354bb7f3f553450ba8cb592c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page