maxun-sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -0
- package/dist/builders/extract-builder.d.ts +34 -0
- package/dist/builders/extract-builder.d.ts.map +1 -0
- package/dist/builders/extract-builder.js +71 -0
- package/dist/builders/extract-builder.js.map +1 -0
- package/dist/builders/workflow-builder.d.ts +92 -0
- package/dist/builders/workflow-builder.d.ts.map +1 -0
- package/dist/builders/workflow-builder.js +207 -0
- package/dist/builders/workflow-builder.js.map +1 -0
- package/dist/client/maxun-client.d.ts +74 -0
- package/dist/client/maxun-client.d.ts.map +1 -0
- package/dist/client/maxun-client.js +210 -0
- package/dist/client/maxun-client.js.map +1 -0
- package/dist/extract.d.ts +54 -0
- package/dist/extract.d.ts.map +1 -0
- package/dist/extract.js +81 -0
- package/dist/extract.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/index.d.ts +12 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +32 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/providers/anthropic.d.ts +13 -0
- package/dist/llm/providers/anthropic.d.ts.map +1 -0
- package/dist/llm/providers/anthropic.js +61 -0
- package/dist/llm/providers/anthropic.js.map +1 -0
- package/dist/llm/providers/base.d.ts +30 -0
- package/dist/llm/providers/base.d.ts.map +1 -0
- package/dist/llm/providers/base.js +27 -0
- package/dist/llm/providers/base.js.map +1 -0
- package/dist/llm/providers/ollama.d.ts +14 -0
- package/dist/llm/providers/ollama.d.ts.map +1 -0
- package/dist/llm/providers/ollama.js +56 -0
- package/dist/llm/providers/ollama.js.map +1 -0
- package/dist/llm/providers/openai.d.ts +13 -0
- package/dist/llm/providers/openai.d.ts.map +1 -0
- package/dist/llm/providers/openai.js +58 -0
- package/dist/llm/providers/openai.js.map +1 -0
- package/dist/llm/types.d.ts +25 -0
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +6 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/robot/robot.d.ts +82 -0
- package/dist/robot/robot.d.ts.map +1 -0
- package/dist/robot/robot.js +128 -0
- package/dist/robot/robot.js.map +1 -0
- package/dist/scrape.d.ts +30 -0
- package/dist/scrape.d.ts.map +1 -0
- package/dist/scrape.js +39 -0
- package/dist/scrape.js.map +1 -0
- package/dist/types/index.d.ts +162 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OllamaProvider = void 0;
|
|
4
|
+
const ollama_1 = require("ollama");
|
|
5
|
+
const base_1 = require("./base");
|
|
6
|
+
/**
|
|
7
|
+
* Ollama provider for local LLM inference
|
|
8
|
+
* Supports Llama, Mistral, and other open-source models
|
|
9
|
+
*/
|
|
10
|
+
class OllamaProvider extends base_1.BaseLLMProvider {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
super(config);
|
|
13
|
+
this.client = new ollama_1.Ollama({
|
|
14
|
+
host: config.baseUrl || process.env.OLLAMA_HOST || 'http://localhost:11434'
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async chat(messages) {
|
|
18
|
+
try {
|
|
19
|
+
const response = await this.client.chat({
|
|
20
|
+
model: this.config.model || 'llama3.1',
|
|
21
|
+
messages: messages.map(msg => ({
|
|
22
|
+
role: msg.role,
|
|
23
|
+
content: msg.content
|
|
24
|
+
})),
|
|
25
|
+
options: {
|
|
26
|
+
temperature: this.config.temperature || 0.7,
|
|
27
|
+
num_predict: this.config.maxTokens || 2048
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
content: response.message.content,
|
|
32
|
+
usage: {
|
|
33
|
+
promptTokens: response.prompt_eval_count || 0,
|
|
34
|
+
completionTokens: response.eval_count || 0,
|
|
35
|
+
totalTokens: (response.prompt_eval_count || 0) + (response.eval_count || 0)
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new Error(`Ollama API error: ${error.message || error}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
validateConfig() {
|
|
44
|
+
if (!this.config.baseUrl && !process.env.OLLAMA_HOST) {
|
|
45
|
+
console.warn('Ollama baseUrl not provided, using default: http://localhost:11434');
|
|
46
|
+
}
|
|
47
|
+
if (!this.config.model) {
|
|
48
|
+
console.warn('Ollama model not specified, using default: llama3.1');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
getProviderName() {
|
|
52
|
+
return 'Ollama';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.OllamaProvider = OllamaProvider;
|
|
56
|
+
//# sourceMappingURL=ollama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/llm/providers/ollama.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,iCAAyC;AAGzC;;;GAGG;AACH,MAAa,cAAe,SAAQ,sBAAe;IAGjD,YAAY,MAAiB;QAC3B,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,wBAAwB;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAsB;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACtC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU;gBACtC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;gBACH,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG;oBAC3C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI;iBAC3C;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;gBACjC,KAAK,EAAE;oBACL,YAAY,EAAE,QAAQ,CAAC,iBAAiB,IAAI,CAAC;oBAC7C,gBAAgB,EAAE,QAAQ,CAAC,UAAU,IAAI,CAAC;oBAC1C,WAAW,EAAE,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;iBAC5E;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAnDD,wCAmDC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseLLMProvider } from './base';
|
|
2
|
+
import { LLMMessage, LLMResponse, LLMConfig } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* OpenAI provider for GPT models
|
|
5
|
+
*/
|
|
6
|
+
export declare class OpenAIProvider extends BaseLLMProvider {
|
|
7
|
+
private client;
|
|
8
|
+
constructor(config: LLMConfig);
|
|
9
|
+
chat(messages: LLMMessage[]): Promise<LLMResponse>;
|
|
10
|
+
validateConfig(): void;
|
|
11
|
+
getProviderName(): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACjD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,SAAS;IASvB,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA2BxD,cAAc,IAAI,IAAI;IAUtB,eAAe,IAAI,MAAM;CAG1B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OpenAIProvider = void 0;
|
|
7
|
+
const openai_1 = __importDefault(require("openai"));
|
|
8
|
+
const base_1 = require("./base");
|
|
9
|
+
/**
|
|
10
|
+
* OpenAI provider for GPT models
|
|
11
|
+
*/
|
|
12
|
+
class OpenAIProvider extends base_1.BaseLLMProvider {
|
|
13
|
+
constructor(config) {
|
|
14
|
+
super(config);
|
|
15
|
+
this.client = new openai_1.default({
|
|
16
|
+
apiKey: config.apiKey || process.env.OPENAI_API_KEY,
|
|
17
|
+
baseURL: config.baseUrl // Allows custom endpoints
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async chat(messages) {
|
|
21
|
+
try {
|
|
22
|
+
const response = await this.client.chat.completions.create({
|
|
23
|
+
model: this.config.model || 'gpt-4o-mini',
|
|
24
|
+
messages: messages.map(msg => ({
|
|
25
|
+
role: msg.role,
|
|
26
|
+
content: msg.content
|
|
27
|
+
})),
|
|
28
|
+
temperature: this.config.temperature || 0.7,
|
|
29
|
+
max_tokens: this.config.maxTokens || 4096
|
|
30
|
+
});
|
|
31
|
+
const choice = response.choices[0];
|
|
32
|
+
return {
|
|
33
|
+
content: choice.message.content || '',
|
|
34
|
+
usage: {
|
|
35
|
+
promptTokens: response.usage?.prompt_tokens || 0,
|
|
36
|
+
completionTokens: response.usage?.completion_tokens || 0,
|
|
37
|
+
totalTokens: response.usage?.total_tokens || 0
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
throw new Error(`OpenAI API error: ${error.message || error}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
validateConfig() {
|
|
46
|
+
if (!this.config.apiKey && !process.env.OPENAI_API_KEY) {
|
|
47
|
+
throw new Error('OpenAI API key required. Set OPENAI_API_KEY environment variable or provide apiKey in config.');
|
|
48
|
+
}
|
|
49
|
+
if (!this.config.model) {
|
|
50
|
+
console.warn('OpenAI model not specified, using default: gpt-4o-mini');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
getProviderName() {
|
|
54
|
+
return 'OpenAI';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.OpenAIProvider = OpenAIProvider;
|
|
58
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/llm/providers/openai.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,iCAAyC;AAGzC;;GAEG;AACH,MAAa,cAAe,SAAQ,sBAAe;IAGjD,YAAY,MAAiB;QAC3B,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;YACnD,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,0BAA0B;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAsB;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,aAAa;gBACzC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;gBACH,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG;gBAC3C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI;aAC1C,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEnC,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE;gBACrC,KAAK,EAAE;oBACL,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;oBAChD,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC;oBACxD,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;iBAC/C;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;QACnH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AApDD,wCAoDC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Provider Configuration
|
|
3
|
+
*/
|
|
4
|
+
export type LLMProvider = 'anthropic' | 'openai' | 'ollama';
|
|
5
|
+
export interface LLMConfig {
|
|
6
|
+
provider: LLMProvider;
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
baseUrl?: string;
|
|
9
|
+
model?: string;
|
|
10
|
+
temperature?: number;
|
|
11
|
+
maxTokens?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface LLMMessage {
|
|
14
|
+
role: 'system' | 'user' | 'assistant';
|
|
15
|
+
content: string;
|
|
16
|
+
}
|
|
17
|
+
export interface LLMResponse {
|
|
18
|
+
content: string;
|
|
19
|
+
usage?: {
|
|
20
|
+
promptTokens: number;
|
|
21
|
+
completionTokens: number;
|
|
22
|
+
totalTokens: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Robot class - represents a saved workflow that can be executed
|
|
3
|
+
*/
|
|
4
|
+
import { RunResult, RobotData, ScheduleConfig, WebhookConfig, ExecutionOptions, Run } from '../types';
|
|
5
|
+
import { Client } from '../client/maxun-client';
|
|
6
|
+
export declare class Robot {
|
|
7
|
+
protected client: Client;
|
|
8
|
+
protected robotData: RobotData;
|
|
9
|
+
constructor(client: Client, robotData: RobotData);
|
|
10
|
+
/**
|
|
11
|
+
* Get the robot ID
|
|
12
|
+
*/
|
|
13
|
+
get id(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Get the robot name
|
|
16
|
+
*/
|
|
17
|
+
get name(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Get the full robot data
|
|
20
|
+
*/
|
|
21
|
+
getData(): RobotData;
|
|
22
|
+
/**
|
|
23
|
+
* Execute the robot
|
|
24
|
+
*/
|
|
25
|
+
run(options?: ExecutionOptions): Promise<RunResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Get all runs for this robot
|
|
28
|
+
*/
|
|
29
|
+
getRuns(): Promise<Run[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Get a specific run
|
|
32
|
+
*/
|
|
33
|
+
getRun(runId: string): Promise<Run>;
|
|
34
|
+
/**
|
|
35
|
+
* Get the latest run
|
|
36
|
+
*/
|
|
37
|
+
getLatestRun(): Promise<Run | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Abort a running or queued run
|
|
40
|
+
*/
|
|
41
|
+
abort(runId: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Schedule the robot for periodic execution
|
|
44
|
+
*/
|
|
45
|
+
schedule(config: ScheduleConfig): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Remove the schedule
|
|
48
|
+
*/
|
|
49
|
+
unschedule(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Add a webhook
|
|
52
|
+
*/
|
|
53
|
+
addWebhook(webhook: WebhookConfig): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Update the robot's workflow or metadata
|
|
56
|
+
*/
|
|
57
|
+
update(updates: {
|
|
58
|
+
meta?: Partial<RobotData['recording_meta']>;
|
|
59
|
+
workflow?: any[];
|
|
60
|
+
}): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Get all webhooks for this robot
|
|
63
|
+
*/
|
|
64
|
+
getWebhooks(): WebhookConfig[] | null;
|
|
65
|
+
/**
|
|
66
|
+
* Remove all webhooks
|
|
67
|
+
*/
|
|
68
|
+
removeWebhooks(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Get schedule configuration
|
|
71
|
+
*/
|
|
72
|
+
getSchedule(): ScheduleConfig | null;
|
|
73
|
+
/**
|
|
74
|
+
* Delete the robot
|
|
75
|
+
*/
|
|
76
|
+
delete(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Refresh robot data from server
|
|
79
|
+
*/
|
|
80
|
+
refresh(): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=robot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robot.d.ts","sourceRoot":"","sources":["../../src/robot/robot.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACtG,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,qBAAa,KAAK;IAChB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;gBAEnB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAKhD;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACG,GAAG,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIzD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAI/B;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAYzC;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvG;;OAEG;IACH,WAAW,IAAI,aAAa,EAAE,GAAG,IAAI;IAIrC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC;;OAEG;IACH,WAAW,IAAI,cAAc,GAAG,IAAI;IAIpC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Robot class - represents a saved workflow that can be executed
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Robot = void 0;
|
|
7
|
+
class Robot {
|
|
8
|
+
constructor(client, robotData) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
this.robotData = robotData;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get the robot ID
|
|
14
|
+
*/
|
|
15
|
+
get id() {
|
|
16
|
+
return this.robotData.recording_meta.id;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the robot name
|
|
20
|
+
*/
|
|
21
|
+
get name() {
|
|
22
|
+
return this.robotData.recording_meta.name;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the full robot data
|
|
26
|
+
*/
|
|
27
|
+
getData() {
|
|
28
|
+
return this.robotData;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Execute the robot
|
|
32
|
+
*/
|
|
33
|
+
async run(options) {
|
|
34
|
+
return await this.client.executeRobot(this.id, options);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get all runs for this robot
|
|
38
|
+
*/
|
|
39
|
+
async getRuns() {
|
|
40
|
+
return await this.client.getRuns(this.id);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get a specific run
|
|
44
|
+
*/
|
|
45
|
+
async getRun(runId) {
|
|
46
|
+
return await this.client.getRun(this.id, runId);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get the latest run
|
|
50
|
+
*/
|
|
51
|
+
async getLatestRun() {
|
|
52
|
+
const runs = await this.getRuns();
|
|
53
|
+
if (runs.length === 0)
|
|
54
|
+
return null;
|
|
55
|
+
// Sort by startedAt descending
|
|
56
|
+
runs.sort((a, b) => new Date(b.startedAt).getTime() - new Date(a.startedAt).getTime());
|
|
57
|
+
return runs[0];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Abort a running or queued run
|
|
61
|
+
*/
|
|
62
|
+
async abort(runId) {
|
|
63
|
+
await this.client.abortRun(this.id, runId);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Schedule the robot for periodic execution
|
|
67
|
+
*/
|
|
68
|
+
async schedule(config) {
|
|
69
|
+
const updated = await this.client.scheduleRobot(this.id, config);
|
|
70
|
+
this.robotData = updated;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Remove the schedule
|
|
74
|
+
*/
|
|
75
|
+
async unschedule() {
|
|
76
|
+
const updated = await this.client.unscheduleRobot(this.id);
|
|
77
|
+
this.robotData = updated;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Add a webhook
|
|
81
|
+
*/
|
|
82
|
+
async addWebhook(webhook) {
|
|
83
|
+
const updated = await this.client.addWebhook(this.id, webhook);
|
|
84
|
+
this.robotData = updated;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Update the robot's workflow or metadata
|
|
88
|
+
*/
|
|
89
|
+
async update(updates) {
|
|
90
|
+
const updated = await this.client.updateRobot(this.id, updates);
|
|
91
|
+
this.robotData = updated;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get all webhooks for this robot
|
|
95
|
+
*/
|
|
96
|
+
getWebhooks() {
|
|
97
|
+
return this.robotData.webhooks || null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Remove all webhooks
|
|
101
|
+
*/
|
|
102
|
+
async removeWebhooks() {
|
|
103
|
+
const updated = await this.client.updateRobot(this.id, {
|
|
104
|
+
webhooks: null,
|
|
105
|
+
});
|
|
106
|
+
this.robotData = updated;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get schedule configuration
|
|
110
|
+
*/
|
|
111
|
+
getSchedule() {
|
|
112
|
+
return this.robotData.schedule || null;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Delete the robot
|
|
116
|
+
*/
|
|
117
|
+
async delete() {
|
|
118
|
+
await this.client.deleteRobot(this.id);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Refresh robot data from server
|
|
122
|
+
*/
|
|
123
|
+
async refresh() {
|
|
124
|
+
this.robotData = await this.client.getRobot(this.id);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.Robot = Robot;
|
|
128
|
+
//# sourceMappingURL=robot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robot.js","sourceRoot":"","sources":["../../src/robot/robot.ts"],"names":[],"mappings":"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"}
|
package/dist/scrape.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scrape - Main class for the Scrape SDK
|
|
3
|
+
*/
|
|
4
|
+
import { Config, Format } from './types';
|
|
5
|
+
import { Robot } from './robot/robot';
|
|
6
|
+
export interface ScrapeOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Output formats for scraping
|
|
9
|
+
* - 'markdown': Page content in markdown format
|
|
10
|
+
* - 'html': Page content in HTML format
|
|
11
|
+
* - 'screenshot-visible': Screenshot of visible viewport
|
|
12
|
+
* - 'screenshot-fullpage': Full page screenshot
|
|
13
|
+
*
|
|
14
|
+
* Default: ['markdown']
|
|
15
|
+
*/
|
|
16
|
+
formats?: Format[];
|
|
17
|
+
}
|
|
18
|
+
export declare class Scrape {
|
|
19
|
+
private client;
|
|
20
|
+
constructor(config: Config);
|
|
21
|
+
/**
|
|
22
|
+
* Create a new scraping robot
|
|
23
|
+
* @param name - Name of the scraping robot
|
|
24
|
+
* @param url - URL to scrape
|
|
25
|
+
* @param options - Optional scraping options (formats)
|
|
26
|
+
* @returns Promise<Robot>
|
|
27
|
+
*/
|
|
28
|
+
create(name: string, url: string, options?: ScrapeOptions): Promise<Robot>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=scrape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../src/scrape.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAA2B,MAAM,EAAE,MAAM,SAAS,CAAC;AAElE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;CAmBjF"}
|
package/dist/scrape.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Scrape - Main class for the Scrape SDK
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Scrape = void 0;
|
|
7
|
+
const maxun_client_1 = require("./client/maxun-client");
|
|
8
|
+
const robot_1 = require("./robot/robot");
|
|
9
|
+
class Scrape {
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.client = new maxun_client_1.Client(config);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a new scraping robot
|
|
15
|
+
* @param name - Name of the scraping robot
|
|
16
|
+
* @param url - URL to scrape
|
|
17
|
+
* @param options - Optional scraping options (formats)
|
|
18
|
+
* @returns Promise<Robot>
|
|
19
|
+
*/
|
|
20
|
+
async create(name, url, options) {
|
|
21
|
+
if (!url) {
|
|
22
|
+
throw new Error('URL is required');
|
|
23
|
+
}
|
|
24
|
+
const workflowFile = {
|
|
25
|
+
meta: {
|
|
26
|
+
name,
|
|
27
|
+
id: `robot_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
|
|
28
|
+
robotType: 'scrape',
|
|
29
|
+
url,
|
|
30
|
+
formats: options?.formats || ['markdown'],
|
|
31
|
+
},
|
|
32
|
+
workflow: [],
|
|
33
|
+
};
|
|
34
|
+
const robot = await this.client.createRobot(workflowFile);
|
|
35
|
+
return new robot_1.Robot(this.client, robot);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.Scrape = Scrape;
|
|
39
|
+
//# sourceMappingURL=scrape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrape.js","sourceRoot":"","sources":["../src/scrape.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,wDAA+C;AAG/C,yCAAsC;AAetC,MAAa,MAAM;IAGjB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,GAAW,EAAE,OAAuB;QAC7D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,YAAY,GAAiB;YACjC,IAAI,EAAE;gBACJ,IAAI;gBACJ,EAAE,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACpE,SAAS,EAAE,QAAQ;gBACnB,GAAG;gBACH,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC;aACnC;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC1D,OAAO,IAAI,aAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;CACF;AAjCD,wBAiCC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified type definitions for Maxun SDK
|
|
3
|
+
*/
|
|
4
|
+
export type RobotType = 'extract' | 'scrape';
|
|
5
|
+
export type RobotMode = 'normal' | 'bulk';
|
|
6
|
+
export type Format = 'markdown' | 'html' | 'screenshot-visible' | 'screenshot-fullpage';
|
|
7
|
+
export type RunStatus = 'running' | 'queued' | 'success' | 'failed' | 'aborting' | 'aborted';
|
|
8
|
+
export type TimeUnit = 'MINUTES' | 'HOURS' | 'DAYS' | 'WEEKS' | 'MONTHS';
|
|
9
|
+
export interface RobotMeta {
|
|
10
|
+
name: string;
|
|
11
|
+
id: string;
|
|
12
|
+
robotType?: RobotType;
|
|
13
|
+
mode?: RobotMode;
|
|
14
|
+
url?: string;
|
|
15
|
+
formats?: Format[];
|
|
16
|
+
subscriptionLevel?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface Where {
|
|
19
|
+
url?: string;
|
|
20
|
+
cookies?: Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
value: string;
|
|
23
|
+
domain?: string;
|
|
24
|
+
}>;
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
}
|
|
27
|
+
export interface What {
|
|
28
|
+
action: string;
|
|
29
|
+
args?: any[];
|
|
30
|
+
name?: string;
|
|
31
|
+
actionId?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface WhereWhatPair {
|
|
34
|
+
id?: string;
|
|
35
|
+
where: Where;
|
|
36
|
+
what: What[];
|
|
37
|
+
}
|
|
38
|
+
export type Workflow = WhereWhatPair[];
|
|
39
|
+
export interface WorkflowFile {
|
|
40
|
+
meta?: RobotMeta;
|
|
41
|
+
workflow: Workflow;
|
|
42
|
+
}
|
|
43
|
+
export interface RobotData {
|
|
44
|
+
id: string;
|
|
45
|
+
userId?: number;
|
|
46
|
+
recording_meta: RobotMeta;
|
|
47
|
+
recording: {
|
|
48
|
+
meta: RobotMeta;
|
|
49
|
+
workflow: Workflow;
|
|
50
|
+
};
|
|
51
|
+
google_sheet_email?: string | null;
|
|
52
|
+
google_sheet_name?: string | null;
|
|
53
|
+
airtable_base_id?: string | null;
|
|
54
|
+
airtable_table_name?: string | null;
|
|
55
|
+
schedule?: ScheduleConfig | null;
|
|
56
|
+
webhooks?: WebhookConfig[] | null;
|
|
57
|
+
proxy_url?: string | null;
|
|
58
|
+
proxy_username?: string | null;
|
|
59
|
+
proxy_password?: string | null;
|
|
60
|
+
createdAt?: string;
|
|
61
|
+
updatedAt?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface Run {
|
|
64
|
+
id: string;
|
|
65
|
+
status: RunStatus;
|
|
66
|
+
robotMetaId: string;
|
|
67
|
+
runId: string;
|
|
68
|
+
startedAt: string;
|
|
69
|
+
finishedAt: string | null;
|
|
70
|
+
serializableOutput?: {
|
|
71
|
+
scrapeSchema?: Record<string, any>;
|
|
72
|
+
scrapeList?: Record<string, any>[];
|
|
73
|
+
};
|
|
74
|
+
binaryOutput?: Record<string, string>;
|
|
75
|
+
error?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface ScheduleConfig {
|
|
78
|
+
runEvery: number;
|
|
79
|
+
runEveryUnit: TimeUnit;
|
|
80
|
+
timezone: string;
|
|
81
|
+
startFrom?: 'SUNDAY' | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY';
|
|
82
|
+
dayOfMonth?: number;
|
|
83
|
+
atTimeStart?: string;
|
|
84
|
+
atTimeEnd?: string;
|
|
85
|
+
cronExpression?: string;
|
|
86
|
+
lastRunAt?: string;
|
|
87
|
+
nextRunAt?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface WebhookConfig {
|
|
90
|
+
url: string;
|
|
91
|
+
events?: string[];
|
|
92
|
+
headers?: Record<string, string>;
|
|
93
|
+
}
|
|
94
|
+
export interface Config {
|
|
95
|
+
apiKey: string;
|
|
96
|
+
baseUrl?: string;
|
|
97
|
+
}
|
|
98
|
+
export interface ApiResponse<T> {
|
|
99
|
+
data?: T;
|
|
100
|
+
error?: string;
|
|
101
|
+
message?: string;
|
|
102
|
+
}
|
|
103
|
+
export interface RunResult {
|
|
104
|
+
data: {
|
|
105
|
+
textData?: Record<string, any>;
|
|
106
|
+
listData?: Record<string, any>[];
|
|
107
|
+
markdown?: string;
|
|
108
|
+
html?: string;
|
|
109
|
+
binaryOutput?: Record<string, string>;
|
|
110
|
+
};
|
|
111
|
+
screenshots?: string[];
|
|
112
|
+
status: RunStatus;
|
|
113
|
+
runId: string;
|
|
114
|
+
}
|
|
115
|
+
export interface ExecutionOptions {
|
|
116
|
+
params?: Record<string, any>;
|
|
117
|
+
webhook?: WebhookConfig;
|
|
118
|
+
timeout?: number;
|
|
119
|
+
waitForCompletion?: boolean;
|
|
120
|
+
}
|
|
121
|
+
export declare class MaxunError extends Error {
|
|
122
|
+
statusCode?: number | undefined;
|
|
123
|
+
details?: any | undefined;
|
|
124
|
+
constructor(message: string, statusCode?: number | undefined, details?: any | undefined);
|
|
125
|
+
}
|
|
126
|
+
export interface ExtractFields {
|
|
127
|
+
[fieldName: string]: string;
|
|
128
|
+
}
|
|
129
|
+
export interface ExtractListConfig {
|
|
130
|
+
selector: string;
|
|
131
|
+
pagination?: PaginationConfig;
|
|
132
|
+
maxItems?: number;
|
|
133
|
+
}
|
|
134
|
+
export interface PaginationConfig {
|
|
135
|
+
type: 'scrollDown' | 'clickNext' | 'clickLoadMore' | 'scrollUp';
|
|
136
|
+
selector?: string | null;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* LLM Provider Configuration
|
|
140
|
+
*/
|
|
141
|
+
export type LLMProvider = 'anthropic' | 'openai' | 'ollama';
|
|
142
|
+
export interface LLMConfig {
|
|
143
|
+
provider: LLMProvider;
|
|
144
|
+
apiKey?: string;
|
|
145
|
+
baseUrl?: string;
|
|
146
|
+
model?: string;
|
|
147
|
+
temperature?: number;
|
|
148
|
+
maxTokens?: number;
|
|
149
|
+
}
|
|
150
|
+
export interface LLMMessage {
|
|
151
|
+
role: 'system' | 'user' | 'assistant';
|
|
152
|
+
content: string;
|
|
153
|
+
}
|
|
154
|
+
export interface LLMResponse {
|
|
155
|
+
content: string;
|
|
156
|
+
usage?: {
|
|
157
|
+
promptTokens: number;
|
|
158
|
+
completionTokens: number;
|
|
159
|
+
totalTokens: number;
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|