jan/core/README.md
2025-10-28 17:26:27 +07:00

69 lines
2.0 KiB
Markdown

## @janhq/core
> This module includes functions for communicating with core APIs, registering app extensions, and exporting type definitions.
## Usage
### Import the package
```js
// Web / extension runtime
import * as core from '@janhq/core'
```
## Build an Extension
1. Download an extension template, for example, [https://github.com/janhq/extension-template](https://github.com/janhq/extension-template).
2. Update the source code:
1. Open `index.ts` in your code editor.
2. Rename the extension class from `SampleExtension` to your preferred extension name.
3. Import modules from the core package.
```ts
import * as core from '@janhq/core'
```
4. In the `onLoad()` method, add your code:
```ts
// Example of listening to app events and providing customized inference logic:
import * as core from '@janhq/core'
export default class MyExtension extends BaseExtension {
// On extension load
onLoad() {
core.events.on(MessageEvent.OnMessageSent, (data) => MyExtension.inference(data, this))
}
// Customized inference logic
private static inference(incomingMessage: MessageRequestData) {
// Prepare customized message content
const content: ThreadContent = {
type: ContentType.Text,
text: {
value: "I'm Jan Assistant!",
annotations: [],
},
}
// Modify message and send out
const outGoingMessage: ThreadMessage = {
...incomingMessage,
content,
}
}
}
```
3. Build the extension:
1. Navigate to the extension directory.
2. Install dependencies.
```bash
yarn install
```
3. Compile the source code. The following command keeps running in the terminal and rebuilds the extension when you modify the source code.
```bash
yarn build
```
4. Select the generated .tgz from Jan > Settings > Extension > Manual Installation.