open-index/open-npm huggingface dataset:
npm package: @smilique/said
Description: Autonomous AI agent with Telegram integration and extensible skills
Latest version: 1.0.20

# sAId - Smart AI Assistant

A modular AI agent with Telegram integration, Web UI, job scheduling, and extensible skills system.

## Features

- **Telegram Bot** - Chat with the AI assistant via Telegram
- **Multiple LLM Providers** - OpenCode (MiniMax, GPT, Claude, etc.) or MiniMax
- **Web UI** - Manage and configure the agent via browser at http://localhost:3000
- **Job Scheduler** - Schedule recurring tasks
- **Skills System** - Extensible skills (file edit, web surf, API calls, tool calls)

## Installation

```bash
# Clone and install dependencies
npm install

# Build all packages
npm run build
```

## Configuration

### Quick Setup

Run the interactive setup wizard:

```bash
npm run setup
```

This will prompt you for:
- Telegram bot token (get from @BotFather on Telegram)
- LLM provider selection (opencode or minimax)
- API key for the selected provider

### Manual Configuration

Edit the `.env` file:

```bash
# Telegram Bot
TELEGRAM_BOT_TOKEN=your_bot_token_here

# Provider (opencode or minimax)
SAID_PROVIDER=opencode

# OpenCode Configuration
OPENCODE_BASE_URL=https://opencode.ai/zen/v1
OPENCODE_API_KEY=your_opencode_api_key
OPENCODE_MODEL=minimax-m2.5-free

# Or MiniMax Configuration
# MINIMAX_API_KEY=your_minimax_api_key
# MINIMAX_MODEL=MiniMax-Text-01
```

### Available Models

**OpenCode** (via https://opencode.ai/zen/v1):
- MiniMax: `minimax-m2.5-free`, `minimax-m2.5`, `minimax-m2.1-free`, `minimax-m2.1`
- GPT: `gpt-5.3-codex`, `gpt-5.2`, `gpt-5.1`, etc.
- Claude: `opus-4-6`, `sonnet-4-6`, `haiku-4-5`, etc.
- Gemini: `gemini-3.1-pro`, `gemini-3-flash`
- And more...

## Usage

### Start the Agent

```bash
npm run start
```

The bot will:
- Connect to Telegram
- Start the Web UI at http://localhost:3000
- Initialize the scheduler

### Telegram Commands

- Send a message to your bot to chat with the AI
- The agent maintains conversation context

### Web UI

Open http://localhost:3000 in your browser to:
- View agent status
- Manage configuration
- View conversation history
- Manage skills
- Schedule jobs

### Skills

The agent includes built-in skills:

- **file-edit** - Read, write, and edit files
- **web-surf** - Fetch URLs and extract content
- **api-call** - Make HTTP requests to external APIs
- **tool-call** - Execute custom tools

Skills can be invoked using: `[[skill-name:action]]` syntax in messages.

## Development

```bash
# Build all packages
npm run build

# Start in development mode
npm run start

# Run setup wizard
npm run setup
```

## Architecture

```
packages/
├── core/              # Base service, config, app framework
├── adapter-telegram/  # Telegram bot integration
├── provider-opencode/ # OpenCode LLM provider
├── provider-minimax/  # MiniMax LLM provider
├── agent/             # AI agent with skills support
├── skills/            # Skill framework and implementations
├── scheduler/         # Job scheduling service
├── web-ui/            # Web dashboard
└── main/              # Application entry point
```
npm package: @smilt/isfalse
Description: Checks if a boolean is true or false
Author: Smil
Latest version: 1.1.1

<h1 align="center">isFalse</h1>
<p align="center"><em>Checks if a boolean is true or false</em></p>

## Why use this package?
This is the most elegant and simplest way of figuring out if a boolean is false, without using complicated `if` statements!

## Features
* Check if a boolean is true or false
* yeah that's pretty much it...

## How to install?
Using your favorite node package manager, some examples below:
```sh
bun install -g @smilt/isfalse
pnpm add -g @smilt/isfalse
npm add -g @smilt/isfalse
```

## Example Usage (Typescript)
```js
import isFalse from '@smilt/isfalse'

const variable1 = false
const variable2 = true

console.log(isFalse(variable1)) // Returns: false
console.log(isFalse(variable2)) // Returns: true
```

## License
[MIT License](LICENSE)
npm package: @sminnee/vuebox
Description: Simple API client/server base
Latest version: 0.0.5

# Vuebox

This is a simple opinionated client/server base I'm using for a few projects.

- Front-end is Vue v3 with SSR
- Back-end is a combined ExpressJS server handling both SSR and the API
- API is a simple JSON API backed by SQLite and direct file storage for media
- Mail is handled with SendGrid

## Usage

index.html in the project root, of the form:

```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <link rel="icon" type="image/x-icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!--head-html-->
  </head>

  <body>
    <div id="app"><!--app-html--></div>
    <script type="module" src="/src/entry-client.ts"></script>
  </body>
</html>
```

`server/` and `client/` folders in your projects to store sources.

`server/index.ts` should be something like this:

```ts
import { createServer } from "@sminnee/vuebox";
import appApi from "./server/api";
import "dotenv/config";

createServer({
  createAppApi: appApi,
  dataPath: "data",
  emailTemplate: "server/resources/email-template.html",
  siteSettings: {
    siteName: "Example site",
    fromAddress: "Example site <info@example.com>",
    notifyAddress: process.env.NOTIFY_EMAIL ?? "sam@example.com",
  },
}).then(({ app, port }) => {
  app.listen(port, () => {
    console.info(`http://localhost:${port}/`);
  });
});
```

`server/api.ts` something like this. addListingsRoutes is adding additional routes to the API:

```ts
import { appApi as baseApi, type ApiConfig } from "@sminnee/vuebox";

import { addListingsRoutes } from "./listings";
import { DataAdapter } from "./dataAdapter";

export default async function appApi(config: ApiConfig<DataAdapter>) {
  const { appApi, services } = await baseApi({ ...config, dataAdapter: DataAdapter });

  addListingsRoutes(appApi, services);

  return { appApi, services };
}
```
npm package: @smip/ngx-sticky-sidebar
Description: Angular library for making smart and high performance sticky sidebars.
Author: Aleksandr Sokolov
Latest version: 0.0.3

# Ngx Sticky Sidebar

Angular library for making smart and high performance sticky sidebars.

Library based on [Pure JavaScript plugin Sticky Sidebar](https://github.com/abouolia/sticky-sidebar)

## [Demo](https://smip.github.io/ngx-sticky-sidebar/dist/ngx-sticky-sidebar)

## Installation

Run `npm install @smip/ngx-sticky-sidebar -S`

Add `NgxStickySidebarModule` import to your module: 

```
import { NgxStickySidebarModule } from '@smip/ngx-sticky-sidebar';

...

@NgModule({
  imports: [
    ...
    NgxStickySidebarModule
    ...
  ],
  ...
})
```

Highly recommend install [ResizeSensor.js](https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js) to use with `sticky-sidebar`.

More info [here](https://github.com/abouolia/sticky-sidebar#usage-with-resizesensorjs)

### Instalation ResizeSensor.js

`npm install css-element-queries -S`

Add `"./node_modules/css-element-queries/src/ResizeSensor.js"` to `angular.json` in section `scripts`.

## Usage

Add `stickySidebar` directive to element witch will be sticky

```
<div class="main-content">
    <div stickySidebar
          containerSelector=".main-content"
          innerWrapperSelector=".sidebar__inner">
        <div class="sidebar__inner">
            <!-- Content goes here -->
        </div>
    </div>
    <div class="content">
        <!-- Content goes here -->
    </div>
</div>
```

Note that inner sidebar wrapper `.sidebar__inner` is optional but highly recommended, if you don't write it yourself, the script will create one for you under class name inner-wrapper-sticky. but this may cause many problems.

### UpdateSticky

`updateSticky` - subject to force re-calculation of all cached dimensions of sidebar, container and viewport and update position of sidebar according to the new dimensions.

#### Example

Template:

```angular2html
<div
      stickySidebar
      updateSticky="updateSticky">
</div>
```

Component:

```typescript
import {Subject} from 'rxjs/Subject';

export class SomeComponent {
    updateSticky: Subject<boolean> = new Subject();
    updateMethod(){
      this.updateSticky.next(true);
    }
}
```

### Options

All parameters are set through the corresponding attributes. For example:

```angular2html
<div
      stickySidebar
      containerSelector=".main-content"
      innerWrapperSelector=".sidebar__inner">
</div>
```

About options you could read [here](https://abouolia.github.io/sticky-sidebar/)

### Global options

Additionally you could set all or same parameters globally, via including module with method `withConfig`:

```
import { NgxStickySidebarModule } from '@smip/ngx-sticky-sidebar';

...
@NgModule({
  imports: [
    ...
    NgxStickySidebarModule.withConfig({
          minWidth: 992
          })
    ...
  ],
  ...
})
```

## Issues
If you have questions or issues feel free to create new an topic in [issues](https://github.com/Smip/ngx-sticky-sidebar/issues).

## License

Licensed under [MIT](https://opensource.org/licenses/MIT).
npm package: @smirciat1/dx-react-scheduler-material-ui
Description: Material-UI templates for DevExtreme React Scheduler component
Author: Developer Express Inc.
Latest version: 2.6.5

# DevExtreme React Scheduler Material-UI

A template suite used to render the React Scheduler based on Material-UI components.

[Website](https://devexpress.github.io/devextreme-reactive/react/scheduler/) | [Demos](https://devexpress.github.io/devextreme-reactive/react/scheduler/demos/) | [Docs](https://devexpress.github.io/devextreme-reactive/react/scheduler/docs/)
npm package: @smirk/zotenv
Description: A type-safe env-loader with runtime validation
Author: evanhsu@gmail.com
Latest version: 1.2.0

# zotenv

A type-safe env-loader with runtime validation built with [Zod](https://github.com/colinhacks/zod).

Use this library to perform validation of your .env values on application startup. For projects with
a large number of env vars, you can separate them into different runtime variables.

## Installing

    npm install @smirk/zotenv

## Getting Started

Explore the example for ideas on how to get started:

    npm run example

## Usage

```typescript
// postgresConfig.ts
import { loadEnv } from "@smirk/zotenv";
import { z } from "zod";

// Define the schema for your env vars using a Zod Schema
const postgresConfigSchema = z.object({
  PG_HOST: z.string(),
  PG_PORT: z.number().gte(1024).lte(65535).default(5432),
});

// Use Zod's infer helper to create a Typescript Type for the Config object
// that will be built from your env vars
type PostgresConfig = z.infer<typeof postgresConfigSchema>;

// Load and validate data from your .env file
const postgresConfig = loadEnv(postgresConfigSchema);

export { postgresConfig, PostgresConfig };
```

```typescript
// index.ts
import { postgresConfig, PostgresConfig } from "./postgresConfig";
import { Client } from "pg";

async function connectToPostgres(config: PostgresConfig) {
  const postgresClient = new Client({
    host: config.PG_HOST,
    port: config.PG_PORT,
  });

  await postgresClient.connect();
  return postgresClient;
}

connectToPostgres(postgresConfig);
```

```env
# .env

PG_HOST=localhost
PG_PORT=5432
```
npm package: @smirnovanv/links
Description: Downloads files via links
Latest version: 3.0.14

[![codecov](https://codecov.io/gh/smirnovanv/node-basics/branch/master/graph/badge.svg)](https://codecov.io/gh/smirnovanv/node-basics)

AVAILABLE SCRIPTS

```bash
# to transfer ts into js
npm run build 
``` 

```bash
# to run the project
node index.js ... 
```
```bash
# example links: 
node dist/index.js https://filesamples.com/samples/document/txt/sample3.txt https://filesamples.com/samples/document/txt/sample2.txt https://filesamples.com/samples/document/txt/sample1.txt
```

```bash
# to test the project via jest
npm run test 

# to test the project via eslint
npm run lint 

# to update as a patch
npm run release-patch

# to update minor version
npm run release-minor

# to update major version
npm run release-major

```