npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

kiss-ai-stack-client

v0.1.0-a26

Published

<div style="text-align: left; margin-bottom: 20px;"> <img src="https://kiss-ai-stack.github.io/kissaistack.svg" alt="KISS AI Stack Banner" style="max-width: auto; height: 250px"> </div>

Readme

KISS AI Stack - JS Client SDK

The KISS AI Stack Client provides an easy-to-use interface for interacting with the KISS AI Stack Server, supporting RESTful and WebSocket APIs to manage Stack session lifecycle and execute tasks.


Features

  • REST client for session management, query execution, and document storage.
  • WebSocket client for real-time interactions with the Stack.

Getting Started

Nota Bene:
It is recommended to use this client in a proxy service for better security.

Requirements

  • Node.js (>= 14.x)

Installation

  1. Install the kiss-ai-stack-client package:
npm install [email protected]
  1. Initialize the client:
  • REST API client
const { RestEvent } = require('kiss-ai-stack-client');

// host name without mentioning protocol, i.e. example.com, localhost:8080
// secure_protocol, whether to use https or http
const client = new RestEvent({
  hostname: "your-server-hostname",
  secureProtocol: true,
});
  • WebSocket based client
const { WebSocketEvent } = require('kiss-ai-stack-client');

// host name without mentioning protocol, i.e. example.com, localhost:8080
// secure_protocol, whether to use wss or ws
const client = new WebSocketEvent({
  hostname: "your-server-hostname",
  secureProtocol: true,
});

Usage

1. Authorize a Stack Session

Create or refresh a Stack session:

To authorize the session, if you have saved a previous client_id and client_secret, send them to get a new access token. Only the persistent scope supports this. The temporary scope will deactivate the client upon lifecycle ending.
Just send the scope only to generate a new client and keep it saved for persistent sessions.

let session = await client.authorizeStack({ scope: "temporary" });  // scopes - 'temporary', 'persistent'

// or, get a new access token for a previous 'persistent session'
session = await client.authorizeStack({ clientId: "your-client-id", clientSecret: "your-client-secret" });

2. Bootstrap the Stack

Initialize the Stack session for task execution:

This step is a must to start the Stack session.

const response = await client.bootstrapStack({ data: "Hello, Stack!" });

3. Generate an Answer

Send a query and receive the Stack's response:

const response = await client.generateAnswer({ data: "What is the weather today?" });

4. Store Documents

Upload files with optional metadata for storage:

const files = ["path/to/document1.txt", "path/to/document2.pdf"];
const metadata = { category: "example" };
const response = await client.storeData({ files, metadata });
const answer = await client.generateAnswer({ data: 'Give me a summary of example documents' });

5. Destroy the Stack Session

Close the current session (will clean up stored documents in temporary session if it has):

const response = await client.destroyStack({ data: "Goodbye!" });

License

This project is licensed under the MIT License.