{"id":26101602,"url":"https://github.com/pairprogio/synscript","last_synced_at":"2025-04-12T15:51:40.746Z","repository":{"id":261628760,"uuid":"863136449","full_name":"pAIrprogio/synscript","owner":"pAIrprogio","description":"Libraries for immutable and chainable LLM compatible scripting","archived":false,"fork":false,"pushed_at":"2025-04-04T08:46:07.000Z","size":1240,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-04T08:48:19.294Z","etag":null,"topics":["filesystem","llm","nodejs","openai","script"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pAIrprogio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-25T19:21:29.000Z","updated_at":"2025-04-04T08:46:10.000Z","dependencies_parsed_at":"2024-12-20T10:37:54.731Z","dependency_job_id":"38e87433-90a5-48f4-8d87-7a23c7bf2b7d","html_url":"https://github.com/pAIrprogio/synscript","commit_stats":null,"previous_names":["pairprogio/synscript"],"tags_count":361,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pAIrprogio%2Fsynscript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pAIrprogio%2Fsynscript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pAIrprogio%2Fsynscript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pAIrprogio%2Fsynscript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pAIrprogio","download_url":"https://codeload.github.com/pAIrprogio/synscript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248591983,"owners_count":21130160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["filesystem","llm","nodejs","openai","script"],"created_at":"2025-03-09T18:50:04.230Z","updated_at":"2025-04-12T15:51:40.734Z","avatar_url":"https://github.com/pAIrprogio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synstack\n\nA collection of packages for fast iterations on LLM scripts, workflows, and applications. Synstack provides strongly-typed, chainable, and immutable APIs for common operations needed when building AI/LLM integrations.\n\n## Want an example?\n\nCheck out the [reforge](https://github.com/pAIrprogio/synscript/tree/main/reforge) folder to see how we use synstack to build itself.\n\n## Quick Start\n\nInstall these recommended packages:\n\n```bash\nnpm install @synstack/llm @synstack/fs @synstack/text @synstack/fs-cache @synstack/xml\n\nyarn add @synstack/llm @synstack/fs @synstack/text @synstack/fs-cache @synstack/xml\n\npnpm add @synstack/llm @synstack/fs @synstack/text @synstack/fs-cache @synstack/xml\n```\n\n## Packages\n\n### Core Packages\n\n#### AI/LLM Operations\n\n- [@synstack/llm](./packages/llm/README.md) - Immutable, chainable, and type-safe wrapper of Vercel's AI SDK\n  - Template-based message builders for different roles (system, user, assistant)\n  - Support for text, images, and file handling in messages\n  - Automatic MIME type detection and file processing\n\n#### File System Operations\n\n- [@synstack/fs](./packages/fs/README.md) - Strongly-typed, chainable file system operations\n\n  - Support for multiple formats (JSON, YAML, XML)\n  - Advanced path manipulation\n  - Type-safe file operations with schema validation\n  - Directory operations and file finding utilities\n\n- [@synstack/fs-cache](./packages/fs-cache/README.md) - Human-friendly file system caching\n\n  - Cache expensive function results between program runs\n  - Type-safe disk caching with clean file system management\n  - Readable cache entries\n\n- [@synstack/git](./packages/git/README.md) - Git utilities for AI prompting and automation\n  - List git-tracked files\n  - View specific commit changes\n  - Integration with fs package\n\n#### System Utilities\n\n- [@synstack/enhance](./packages/enhance/README.md) - Proxy-based utilities to enhance objects and functions\n- [@synstack/glob](./packages/glob/README.md) - Type-safe glob pattern matching and file filtering\n\n  - File finding with exclusion support\n  - Pattern matching and capturing\n  - Reusable filters\n\n- [@synstack/path](./packages/path/README.md) - Advanced path manipulation utilities\n  - Type-safe path resolution\n  - Path relationships and manipulation\n  - Extension handling and MIME type detection\n\n### Content Processing\n\n#### Web and Data Fetching\n\n- [@synstack/web](./packages/web/README.md) - Web utilities for content processing\n  - Fetch and validate JSON data with schema validation\n  - Extract article content using Mozilla's Readability\n  - Error handling for article extraction\n  - Plain text content retrieval\n\n#### Data Formats\n\n- [@synstack/json](./packages/json/README.md) - Type-safe JSON operations with schema validation\n\n  - Serialization with pretty printing\n  - Type-safe deserialization\n  - Zod schema validation\n\n- [@synstack/yaml](./packages/yaml/README.md) - Type-safe YAML processing\n- [@synstack/xml](./packages/xml/README.md) - Non-ISO XML parser with text preservation\n\n  - Handles invalid XML gracefully\n  - Preserves original text structure\n  - Simple node-based API\n\n- [@synstack/markdown](./packages/markdown/README.md) - Type-safe markdown processing\n  - HTML to markdown conversion\n  - YAML frontmatter handling\n  - Type-safe document management\n\n#### Text Processing\n\n- [@synstack/text](./packages/text/README.md) - Advanced string templating with async support\n  - Parallel resolution of promises and arrays\n  - Automatic indentation preservation and formatting\n  - Support for callable values and non-string objects\n  - Type-safe handling of embedded content blocks\n- [@synstack/str](./packages/str/README.md) - Advanced chainable string manipulation\n\n#### Functional Programming\n\n- [@synstack/pipe](./packages/pipe/README.md) - Simple type-safe pipe utility\n- [@synstack/resolved](./packages/resolved/README.md) - Piping utility preserving sync/async state\n\n# Dependency Graph\n\n```mermaid\ngraph TD\n  %% Packages\n  enhance[\"@synstack/enhance\"]\n  fs[\"@synstack/fs\"]\n  fs_cache[\"@synstack/fs-cache\"]\n  git[\"@synstack/git\"]\n  glob[\"@synstack/glob\"]\n  json[\"@synstack/json\"]\n  llm[\"@synstack/llm\"]\n  markdown[\"@synstack/markdown\"]\n  path[\"@synstack/path\"]\n  pipe[\"@synstack/pipe\"]\n  reforge[\"@synstack/reforge\"]\n  resolved[\"@synstack/resolved\"]\n  str[\"@synstack/str\"]\n  text[\"@synstack/text\"]\n  web[\"@synstack/web\"]\n  xml[\"@synstack/xml\"]\n  yaml[\"@synstack/yaml\"]\n\n  fs --\u003e enhance\n  fs --\u003e git\n  fs --\u003e glob\n  fs --\u003e json\n  fs --\u003e path\n  fs --\u003e pipe\n  fs --\u003e str\n  fs --\u003e xml\n  fs --\u003e yaml\n\n  fs_cache --\u003e fs\n  git --\u003e enhance\n  glob --\u003e path\n  llm --\u003e resolved\n  llm --\u003e text\n  llm --\u003e fs_cache\n  markdown --\u003e yaml\n  path --\u003e pipe\n  pipe --\u003e enhance\n  str --\u003e pipe\n  text --\u003e json\n  text --\u003e resolved\n  text --\u003e str\n  reforge --\u003e json\n\n  %% External Dependencies\n  web --\u003e readability[\"@mozilla/readability\"]\n  web --\u003e linkedom\n  xml --\u003e immer\n  yaml --\u003e yaml_pkg[\"yaml\"]\n  llm --\u003e zod_json[\"zod-to-json-schema\"]\n  str --\u003e change_case[\"change-case\"]\n  glob --\u003e minimatch[\"minimatch\"]\n  glob --\u003e glob_pkg[\"glob\"]\n\n  %% Styling\n  classDef default fill:#f9f,stroke:#333,stroke-width:2px,color:#000;\n  classDef external fill:#bbf,stroke:#333,stroke-width:1px,color:#000;\n  class readability,linkedom,immer,yaml_pkg,zod_json,change_case,minimatch,glob_pkg external\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpairprogio%2Fsynscript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpairprogio%2Fsynscript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpairprogio%2Fsynscript/lists"}