synthos 0.1.0
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/LICENSE +21 -0
- package/README.md +71 -0
- package/bin/synthos.js +3 -0
- package/default-pages/[application].html +87 -0
- package/default-pages/[markdown].html +261 -0
- package/default-pages/[sidebar].html +89 -0
- package/default-pages/[split-application].html +133 -0
- package/default-pages/json_tools.html +176 -0
- package/default-scripts/android.terminal.json +7 -0
- package/default-scripts/linux-terminal.json +7 -0
- package/default-scripts/mac-terminal.json +7 -0
- package/default-scripts/windows-terminal.json +7 -0
- package/dist/files.d.ts +9 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +79 -0
- package/dist/files.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +9 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +59 -0
- package/dist/init.js.map +1 -0
- package/dist/pages.d.ts +6 -0
- package/dist/pages.d.ts.map +1 -0
- package/dist/pages.js +55 -0
- package/dist/pages.js.map +1 -0
- package/dist/scripts.d.ts +14 -0
- package/dist/scripts.d.ts.map +1 -0
- package/dist/scripts.js +103 -0
- package/dist/scripts.js.map +1 -0
- package/dist/service/createCompletePrompt.d.ts +4 -0
- package/dist/service/createCompletePrompt.d.ts.map +1 -0
- package/dist/service/createCompletePrompt.js +42 -0
- package/dist/service/createCompletePrompt.js.map +1 -0
- package/dist/service/generateImage.d.ts +32 -0
- package/dist/service/generateImage.d.ts.map +1 -0
- package/dist/service/generateImage.js +71 -0
- package/dist/service/generateImage.js.map +1 -0
- package/dist/service/index.d.ts +8 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +24 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/requiresSettings.d.ts +3 -0
- package/dist/service/requiresSettings.d.ts.map +1 -0
- package/dist/service/requiresSettings.js +24 -0
- package/dist/service/requiresSettings.js.map +1 -0
- package/dist/service/server.d.ts +4 -0
- package/dist/service/server.d.ts.map +1 -0
- package/dist/service/server.js +26 -0
- package/dist/service/server.js.map +1 -0
- package/dist/service/transformPage.d.ts +11 -0
- package/dist/service/transformPage.d.ts.map +1 -0
- package/dist/service/transformPage.js +119 -0
- package/dist/service/transformPage.js.map +1 -0
- package/dist/service/useApiRoutes.d.ts +4 -0
- package/dist/service/useApiRoutes.d.ts.map +1 -0
- package/dist/service/useApiRoutes.js +95 -0
- package/dist/service/useApiRoutes.js.map +1 -0
- package/dist/service/useDataRoutes.d.ts +4 -0
- package/dist/service/useDataRoutes.d.ts.map +1 -0
- package/dist/service/useDataRoutes.js +98 -0
- package/dist/service/useDataRoutes.js.map +1 -0
- package/dist/service/usePageRoutes.d.ts +5 -0
- package/dist/service/usePageRoutes.d.ts.map +1 -0
- package/dist/service/usePageRoutes.js +132 -0
- package/dist/service/usePageRoutes.js.map +1 -0
- package/dist/settings.d.ts +13 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +55 -0
- package/dist/settings.js.map +1 -0
- package/dist/synthos-cli.d.ts +2 -0
- package/dist/synthos-cli.d.ts.map +1 -0
- package/dist/synthos-cli.js +43 -0
- package/dist/synthos-cli.js.map +1 -0
- package/images/home.png +0 -0
- package/images/page-management.png +0 -0
- package/images/settings.png +0 -0
- package/images/synthos-square.png +0 -0
- package/package.json +58 -0
- package/required-pages/apis.html +347 -0
- package/required-pages/home.html +83 -0
- package/required-pages/pages.html +135 -0
- package/required-pages/scripts.html +335 -0
- package/required-pages/settings.html +158 -0
- package/src/files.ts +49 -0
- package/src/index.ts +6 -0
- package/src/init.ts +66 -0
- package/src/pages.ts +55 -0
- package/src/scripts.ts +130 -0
- package/src/service/createCompletePrompt.ts +40 -0
- package/src/service/generateImage.ts +101 -0
- package/src/service/index.ts +7 -0
- package/src/service/requiresSettings.ts +22 -0
- package/src/service/server.ts +26 -0
- package/src/service/transformPage.ts +135 -0
- package/src/service/useApiRoutes.ts +95 -0
- package/src/service/useDataRoutes.ts +97 -0
- package/src/service/usePageRoutes.ts +147 -0
- package/src/settings.ts +60 -0
- package/src/synthos-cli.ts +38 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAqE;AACrE,gDAAwB;AAExB,mBAAmB;AACnB,MAAM,MAAM,GAA+B,EAAE,CAAC;AAEvC,KAAK,UAAU,SAAS,CAAC,WAAmB,EAAE,mBAA2B;IAC5E,2CAA2C;IAC3C,MAAM,GAAG,GAAG,CAAC,MAAM,IAAA,iBAAS,EAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAElF,gEAAgE;IAChE,CAAC,MAAM,IAAA,iBAAS,EAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC/C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;IACL,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1E,mCAAmC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAEzB,OAAO,KAAK,CAAC;AACjB,CAAC;AApBD,8BAoBC;AAEM,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,IAAY,EAAE,KAAc;IACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE;QACxB,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,MAAM,IAAA,qBAAa,EAAC,QAAQ,CAAC,CAAC,EAAE;YAClC,OAAO,SAAS,CAAC;SACpB;QAED,YAAY;QACZ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAA,gBAAQ,EAAC,QAAQ,CAAC,CAAC;KAC3C;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAbD,sCAaC;AAED,SAAgB,iBAAiB,CAAC,IAAsB;IACpD,OAAO,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACxI,CAAC;AAFD,8CAEC;AAEM,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,IAAY,EAAE,OAAe;IAClF,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACvB,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAHD,sCAGC;AAED,SAAgB,eAAe,CAAC,IAAY,EAAE,OAAe;IACzD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAC3B,CAAC;AAFD,0CAEC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AgentCompletion } from 'agentm-core';
|
|
2
|
+
export interface ExecuteScriptArgs {
|
|
3
|
+
pagesFolder: string;
|
|
4
|
+
scriptId: string;
|
|
5
|
+
variables: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
export interface ExecuteScriptResponse {
|
|
8
|
+
output: string;
|
|
9
|
+
errors: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function listScripts(pagesFolder: string): Promise<string>;
|
|
12
|
+
export declare function clearCachedScripts(): void;
|
|
13
|
+
export declare function executeScript(args: ExecuteScriptArgs): Promise<AgentCompletion<ExecuteScriptResponse>>;
|
|
14
|
+
//# sourceMappingURL=scripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAKhE,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BtE;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAGD,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAoC5G"}
|
package/dist/scripts.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
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.executeScript = exports.clearCachedScripts = exports.listScripts = void 0;
|
|
7
|
+
const agentm_core_1 = require("agentm-core");
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const files_1 = require("./files");
|
|
11
|
+
async function listScripts(pagesFolder) {
|
|
12
|
+
if (!scriptsList) {
|
|
13
|
+
let list = [];
|
|
14
|
+
const folder = path_1.default.join(pagesFolder, 'scripts');
|
|
15
|
+
if (await (0, files_1.checkIfExists)(folder)) {
|
|
16
|
+
const files = (await (0, files_1.listFiles)(folder)).filter(f => f.endsWith('.json'));
|
|
17
|
+
for (const file of files) {
|
|
18
|
+
const script = await (0, files_1.loadFile)(path_1.default.join(folder, file));
|
|
19
|
+
if (script) {
|
|
20
|
+
try {
|
|
21
|
+
const parsed = JSON.parse(script);
|
|
22
|
+
const description = parsed.description ? `description: ${parsed.description}\n` : '';
|
|
23
|
+
const request = parsed.variables ? `request: ${parsed.variables}\n` : '';
|
|
24
|
+
const response = parsed.response ? `response: ${parsed.response}` : 'response: string';
|
|
25
|
+
list.push(`POST /api/scripts/${parsed.id}\n${description}${request}${response}`);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.error(err);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Cache the list
|
|
34
|
+
scriptsList = list.join('\n\n');
|
|
35
|
+
}
|
|
36
|
+
return scriptsList;
|
|
37
|
+
}
|
|
38
|
+
exports.listScripts = listScripts;
|
|
39
|
+
function clearCachedScripts() {
|
|
40
|
+
scriptsList = undefined;
|
|
41
|
+
}
|
|
42
|
+
exports.clearCachedScripts = clearCachedScripts;
|
|
43
|
+
async function executeScript(args) {
|
|
44
|
+
const { pagesFolder, scriptId, variables } = args;
|
|
45
|
+
// Load the script
|
|
46
|
+
const script = await (0, files_1.loadFile)(path_1.default.join(pagesFolder, `scripts`, `${scriptId}.json`));
|
|
47
|
+
if (!script) {
|
|
48
|
+
return { completed: false, error: new Error(`Script not found: ${scriptId}`) };
|
|
49
|
+
}
|
|
50
|
+
// Parse the script
|
|
51
|
+
let parsed;
|
|
52
|
+
try {
|
|
53
|
+
parsed = JSON.parse(script);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
return { completed: false, error: err };
|
|
57
|
+
}
|
|
58
|
+
// Substitute variables
|
|
59
|
+
const commandText = composeArguments(parsed.command, variables);
|
|
60
|
+
console.log(`Executing: ${commandText}`);
|
|
61
|
+
// Split into an array while honoring double quotes
|
|
62
|
+
const argv = commandText.match(/"[^"]*"|\S+/g) || [];
|
|
63
|
+
if (argv.length === 0) {
|
|
64
|
+
return { completed: false, error: new Error('No command specified') };
|
|
65
|
+
}
|
|
66
|
+
// Execute the process
|
|
67
|
+
try {
|
|
68
|
+
const command = argv.shift();
|
|
69
|
+
const value = await spawnProcess(command, argv);
|
|
70
|
+
return { completed: true, value };
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
return { completed: false, error: err };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.executeScript = executeScript;
|
|
77
|
+
let scriptsList = undefined;
|
|
78
|
+
function spawnProcess(command, args) {
|
|
79
|
+
return new Promise((resolve, reject) => {
|
|
80
|
+
const child = (0, child_process_1.spawn)(command, args, { shell: true });
|
|
81
|
+
let output = '';
|
|
82
|
+
const errors = [];
|
|
83
|
+
child.stdout.on('data', (data) => {
|
|
84
|
+
output += data;
|
|
85
|
+
});
|
|
86
|
+
child.stderr.on('data', (data) => {
|
|
87
|
+
errors.push(data.toString());
|
|
88
|
+
});
|
|
89
|
+
child.on('close', (code) => {
|
|
90
|
+
resolve({ output, errors });
|
|
91
|
+
});
|
|
92
|
+
child.on('error', (err) => {
|
|
93
|
+
reject(err);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function composeArguments(template, variables) {
|
|
98
|
+
return template.replace(/{{\s*([^}\s]+)\s*}}/g, (match, name) => {
|
|
99
|
+
// Convert the variable to a string and replace double quotes and line feeds with spaces
|
|
100
|
+
return (0, agentm_core_1.variableToString)(variables[name]);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCompletePrompt.d.ts","sourceRoot":"","sources":["../../src/service/createCompletePrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,cAAc,EAA4B,MAAM,aAAa,CAAC;AAGjF,eAAO,MAAM,eAAe,UAM3B,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA4BvG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCompletePrompt = exports.availableModels = void 0;
|
|
4
|
+
const agentm_core_1 = require("agentm-core");
|
|
5
|
+
const settings_1 = require("../settings");
|
|
6
|
+
exports.availableModels = [
|
|
7
|
+
'claude-3-5-sonnet-20240620',
|
|
8
|
+
'gpt-4o-mini',
|
|
9
|
+
'gpt-4o-2024-08-06',
|
|
10
|
+
'o1-mini',
|
|
11
|
+
'o1-preview'
|
|
12
|
+
];
|
|
13
|
+
async function createCompletePrompt(pagesFolder, model) {
|
|
14
|
+
// Get configuration settings
|
|
15
|
+
const settings = await (0, settings_1.loadSettings)(pagesFolder);
|
|
16
|
+
if (!settings.serviceApiKey) {
|
|
17
|
+
throw new Error('OpenAI API key not configured');
|
|
18
|
+
}
|
|
19
|
+
// Validate model
|
|
20
|
+
model = model || settings.model;
|
|
21
|
+
if (!model) {
|
|
22
|
+
throw new Error('Model not configured');
|
|
23
|
+
}
|
|
24
|
+
// Create completion functions
|
|
25
|
+
let modelInstance;
|
|
26
|
+
const apiKey = settings.serviceApiKey;
|
|
27
|
+
if (model.startsWith('claude-')) {
|
|
28
|
+
modelInstance = (0, agentm_core_1.anthropic)({ apiKey, model });
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
modelInstance = (0, agentm_core_1.openai)({ apiKey, model });
|
|
32
|
+
}
|
|
33
|
+
// Return new model instance
|
|
34
|
+
if (settings.logCompletions) {
|
|
35
|
+
return (0, agentm_core_1.logCompletePrompt)(modelInstance, true);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return modelInstance;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.createCompletePrompt = createCompletePrompt;
|
|
42
|
+
//# sourceMappingURL=createCompletePrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCompletePrompt.js","sourceRoot":"","sources":["../../src/service/createCompletePrompt.ts"],"names":[],"mappings":";;;AAAA,6CAAiF;AACjF,0CAA2C;AAE9B,QAAA,eAAe,GAAG;IAC3B,4BAA4B;IAC5B,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,YAAY;CACf,CAAC;AAEK,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,KAAc;IAC1E,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KACpD;IAED,iBAAiB;IACjB,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KAC3C;IAED,8BAA8B;IAC9B,IAAI,aAA6B,CAAC;IAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAC7B,aAAa,GAAG,IAAA,uBAAS,EAAC,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;KAC9C;SAAM;QACH,aAAa,GAAG,IAAA,oBAAM,EAAC,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;KAC3C;IAED,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,cAAc,EAAE;QACzB,OAAO,IAAA,+BAAiB,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KACjD;SAAM;QACH,OAAO,aAAa,CAAC;KACxB;AACL,CAAC;AA5BD,oDA4BC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AgentCompletion } from "agentm-core";
|
|
2
|
+
/**
|
|
3
|
+
* Arguments to configure an OpenAI chat model.
|
|
4
|
+
*/
|
|
5
|
+
export interface OpenaiGenerateImageArgs {
|
|
6
|
+
/**
|
|
7
|
+
* OpenAI API key to use for completions.
|
|
8
|
+
*/
|
|
9
|
+
apiKey: string;
|
|
10
|
+
/**
|
|
11
|
+
* Prompt to use for generating image.
|
|
12
|
+
*/
|
|
13
|
+
prompt: string;
|
|
14
|
+
/**
|
|
15
|
+
* Requested size of the generated image.
|
|
16
|
+
*/
|
|
17
|
+
shape: 'square' | 'landscape' | 'portrait';
|
|
18
|
+
/**
|
|
19
|
+
* Requested quality of the generated image.
|
|
20
|
+
*/
|
|
21
|
+
quality: 'standard' | 'hd';
|
|
22
|
+
/**
|
|
23
|
+
* Style of the generated image.
|
|
24
|
+
*/
|
|
25
|
+
style: 'vivid' | 'natural';
|
|
26
|
+
}
|
|
27
|
+
export interface GeneratedImage {
|
|
28
|
+
url: string;
|
|
29
|
+
}
|
|
30
|
+
export declare function generateDefaultImage(): Promise<AgentCompletion<GeneratedImage>>;
|
|
31
|
+
export declare function generateImage(args: OpenaiGenerateImageArgs): Promise<AgentCompletion<GeneratedImage>>;
|
|
32
|
+
//# sourceMappingURL=generateImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateImage.d.ts","sourceRoot":"","sources":["../../src/service/generateImage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;IAE3C;;OAEG;IACH,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAU/E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CA+C3G"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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.generateImage = exports.generateDefaultImage = void 0;
|
|
7
|
+
const openai_1 = __importDefault(require("openai"));
|
|
8
|
+
const agentm_core_1 = require("agentm-core");
|
|
9
|
+
const files_1 = require("../files");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
function generateDefaultImage() {
|
|
12
|
+
if (!_defaultImage) {
|
|
13
|
+
_defaultImage = new Promise(async (resolve) => {
|
|
14
|
+
const file = await (0, files_1.loadFile)(path_1.default.join(__dirname, '../../defaultImage.json'));
|
|
15
|
+
const value = JSON.parse(file);
|
|
16
|
+
resolve({ completed: true, value });
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return _defaultImage;
|
|
20
|
+
}
|
|
21
|
+
exports.generateDefaultImage = generateDefaultImage;
|
|
22
|
+
async function generateImage(args) {
|
|
23
|
+
const { apiKey, prompt, shape, quality, style } = args;
|
|
24
|
+
// Create client
|
|
25
|
+
const client = new openai_1.default({ apiKey });
|
|
26
|
+
// Identify image size
|
|
27
|
+
let size;
|
|
28
|
+
switch (shape) {
|
|
29
|
+
case 'square':
|
|
30
|
+
default:
|
|
31
|
+
size = "1024x1024";
|
|
32
|
+
break;
|
|
33
|
+
case 'landscape':
|
|
34
|
+
size = "1792x1024";
|
|
35
|
+
break;
|
|
36
|
+
case 'portrait':
|
|
37
|
+
size = "1024x1792";
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const response = await client.images.generate({
|
|
42
|
+
model: "dall-e-3",
|
|
43
|
+
response_format: "b64_json",
|
|
44
|
+
n: 1,
|
|
45
|
+
prompt,
|
|
46
|
+
size,
|
|
47
|
+
quality,
|
|
48
|
+
style
|
|
49
|
+
});
|
|
50
|
+
if (response.data.length > 0 && response.data[0].b64_json !== undefined) {
|
|
51
|
+
const url = `data:image/png;base64,${response.data[0].b64_json}`;
|
|
52
|
+
return { completed: true, value: { url } };
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return { completed: false, error: new Error('No image URL returned') };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
let error;
|
|
60
|
+
if (err instanceof openai_1.default.APIError && err.status !== undefined) {
|
|
61
|
+
error = new agentm_core_1.RequestError(err.message, err.status, err.name);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
error = err;
|
|
65
|
+
}
|
|
66
|
+
return { completed: false, error };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.generateImage = generateImage;
|
|
70
|
+
let _defaultImage;
|
|
71
|
+
//# sourceMappingURL=generateImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateImage.js","sourceRoot":"","sources":["../../src/service/generateImage.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,6CAA4D;AAC5D,oCAAoC;AACpC,gDAAwB;AAoCxB,SAAgB,oBAAoB;IAChC,IAAI,CAAC,aAAa,EAAE;QAChB,aAAa,GAAG,IAAI,OAAO,CAAkC,KAAK,EAAC,OAAO,EAAC,EAAE;YACzE,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;YACjD,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;KACN;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAVD,oDAUC;AAEM,KAAK,UAAU,aAAa,CAAC,IAA6B;IAC7D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEvD,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtC,sBAAsB;IACtB,IAAI,IAA6C,CAAC;IAClD,QAAQ,KAAK,EAAE;QACX,KAAK,QAAQ,CAAC;QACd;YACI,IAAI,GAAG,WAAW,CAAC;YACnB,MAAM;QACV,KAAK,WAAW;YACZ,IAAI,GAAG,WAAW,CAAC;YACnB,MAAM;QACV,KAAK,UAAU;YACX,IAAI,GAAG,WAAW,CAAC;YACnB,MAAM;KACb;IAED,IAAI;QACA,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1C,KAAK,EAAE,UAAU;YACjB,eAAe,EAAE,UAAU;YAC3B,CAAC,EAAE,CAAC;YACJ,MAAM;YACN,IAAI;YACJ,OAAO;YACP,KAAK;SACR,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE;YACrE,MAAM,GAAG,GAAG,yBAAyB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;YAChE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;SAC9C;aAAM;YACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC;SAC1E;KACJ;IAAC,OAAO,GAAY,EAAE;QACnB,IAAI,KAAY,CAAC;QACjB,IAAI,GAAG,YAAY,gBAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE;YAC5D,KAAK,GAAG,IAAI,0BAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;SAC/D;aAAM;YACH,KAAK,GAAG,GAAY,CAAC;SACxB;QACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KACtC;AACL,CAAC;AA/CD,sCA+CC;AAED,IAAI,aAAmE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './createCompletePrompt';
|
|
2
|
+
export * from './requiresSettings';
|
|
3
|
+
export * from './generateImage';
|
|
4
|
+
export * from './server';
|
|
5
|
+
export * from './transformPage';
|
|
6
|
+
export * from './useApiRoutes';
|
|
7
|
+
export * from './usePageRoutes';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./createCompletePrompt"), exports);
|
|
18
|
+
__exportStar(require("./requiresSettings"), exports);
|
|
19
|
+
__exportStar(require("./generateImage"), exports);
|
|
20
|
+
__exportStar(require("./server"), exports);
|
|
21
|
+
__exportStar(require("./transformPage"), exports);
|
|
22
|
+
__exportStar(require("./useApiRoutes"), exports);
|
|
23
|
+
__exportStar(require("./usePageRoutes"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,qDAAmC;AACnC,kDAAgC;AAChC,2CAAyB;AACzB,kDAAgC;AAChC,iDAA+B;AAC/B,kDAAgC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requiresSettings.d.ts","sourceRoot":"","sources":["../../src/service/requiresSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5E,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,iBAkBzG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requiresSettings = void 0;
|
|
4
|
+
const settings_1 = require("../settings");
|
|
5
|
+
async function requiresSettings(res, folder, cb) {
|
|
6
|
+
try {
|
|
7
|
+
// Ensure settings configured
|
|
8
|
+
const isConfigured = await (0, settings_1.hasConfiguredSettings)(folder);
|
|
9
|
+
if (!isConfigured) {
|
|
10
|
+
res.status(400).send('Settings not configured');
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
// Load settings
|
|
14
|
+
const settings = await (0, settings_1.loadSettings)(folder);
|
|
15
|
+
// Call the callback
|
|
16
|
+
await cb(settings);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
console.error(err);
|
|
20
|
+
res.status(500).send(err.message);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.requiresSettings = requiresSettings;
|
|
24
|
+
//# sourceMappingURL=requiresSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requiresSettings.js","sourceRoot":"","sources":["../../src/service/requiresSettings.ts"],"names":[],"mappings":";;;AAAA,0CAA4E;AAGrE,KAAK,UAAU,gBAAgB,CAAC,GAAQ,EAAE,MAAc,EAAE,EAAyC;IACtG,IAAI;QACA,6BAA6B;QAC7B,MAAM,YAAY,GAAG,MAAM,IAAA,gCAAqB,EAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,EAAE;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAChD,OAAO;SACV;QAED,gBAAgB;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,CAAC,CAAC;QAE5C,oBAAoB;QACpB,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;KACtB;IAAC,OAAO,GAAY,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;KAChD;AACL,CAAC;AAlBD,4CAkBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/service/server.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,wBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAmBzD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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.server = void 0;
|
|
7
|
+
const express_1 = __importDefault(require("express"));
|
|
8
|
+
const usePageRoutes_1 = require("./usePageRoutes");
|
|
9
|
+
const useApiRoutes_1 = require("./useApiRoutes");
|
|
10
|
+
const useDataRoutes_1 = require("./useDataRoutes");
|
|
11
|
+
function server(config) {
|
|
12
|
+
const app = (0, express_1.default)();
|
|
13
|
+
// Middleware to parse URL-encoded data (form data)
|
|
14
|
+
app.use(express_1.default.urlencoded({ extended: true }));
|
|
15
|
+
// Middleware to parse JSON data
|
|
16
|
+
app.use(express_1.default.json());
|
|
17
|
+
// Page handling routes
|
|
18
|
+
(0, usePageRoutes_1.usePageRoutes)(config, app);
|
|
19
|
+
// API routes
|
|
20
|
+
(0, useApiRoutes_1.useApiRoutes)(config, app);
|
|
21
|
+
// Data routes
|
|
22
|
+
(0, useDataRoutes_1.useDataRoutes)(config, app);
|
|
23
|
+
return app;
|
|
24
|
+
}
|
|
25
|
+
exports.server = server;
|
|
26
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/service/server.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6C;AAC7C,mDAAgD;AAChD,iDAA8C;AAE9C,mDAAgD;AAEhD,SAAgB,MAAM,CAAC,MAAqB;IACxC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,mDAAmD;IACnD,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhD,gCAAgC;IAChC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAExB,uBAAuB;IACvB,IAAA,6BAAa,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE3B,aAAa;IACb,IAAA,2BAAY,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1B,cAAc;IACd,IAAA,6BAAa,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE3B,OAAO,GAAG,CAAC;AACf,CAAC;AAnBD,wBAmBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AgentArgs, AgentCompletion } from "agentm-core";
|
|
2
|
+
export interface TransformPageArgs extends AgentArgs {
|
|
3
|
+
pagesFolder: string;
|
|
4
|
+
pageState: string;
|
|
5
|
+
message: string;
|
|
6
|
+
maxTokens: number;
|
|
7
|
+
instructions?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function transformPage(args: TransformPageArgs): Promise<AgentCompletion<string>>;
|
|
10
|
+
export declare function transformPageAsObject(args: TransformPageArgs): Promise<AgentCompletion<string>>;
|
|
11
|
+
//# sourceMappingURL=transformPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformPage.d.ts","sourceRoot":"","sources":["../../src/service/transformPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAA0D,MAAM,aAAa,CAAC;AAGjH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAmC7F;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAgBrG"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformPageAsObject = exports.transformPage = void 0;
|
|
4
|
+
const agentm_core_1 = require("agentm-core");
|
|
5
|
+
const scripts_1 = require("../scripts");
|
|
6
|
+
async function transformPage(args) {
|
|
7
|
+
// Get list of registered scripts
|
|
8
|
+
const scripts = await (0, scripts_1.listScripts)(args.pagesFolder);
|
|
9
|
+
const serverScripts = scripts.length > 0 ? `<SERVER_SCRIPTS>\n${scripts}\n\n` : '';
|
|
10
|
+
// Define system message
|
|
11
|
+
const { pageState, message, maxTokens, completePrompt } = args;
|
|
12
|
+
const system = {
|
|
13
|
+
role: 'system',
|
|
14
|
+
content: `<CURRENT_PAGE>\n${pageState}\n\n<SERVER_APIS>\n${serverAPIs}\n\n${serverScripts}<USER_MESSAGE>\n${message}`
|
|
15
|
+
};
|
|
16
|
+
// Create prompt
|
|
17
|
+
const instructions = args.instructions ? `\n\n<INSTRUCTIONS>\n${args.instructions}` : '';
|
|
18
|
+
const prompt = {
|
|
19
|
+
role: 'user',
|
|
20
|
+
content: `${goal}${instructions}`
|
|
21
|
+
};
|
|
22
|
+
// Complete prompt
|
|
23
|
+
const result = await completePrompt({ prompt, system, maxTokens });
|
|
24
|
+
if (result.completed) {
|
|
25
|
+
// Find html content
|
|
26
|
+
let start = result.value.indexOf(`<!DOCTYPE`);
|
|
27
|
+
start = start >= 0 ? start : result.value.indexOf('<html');
|
|
28
|
+
const end = result.value.lastIndexOf('</html>');
|
|
29
|
+
if (start >= 0 && end >= start) {
|
|
30
|
+
const value = result.value.substring(start, end + 7);
|
|
31
|
+
return { completed: true, value };
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return { completed: false, error: new Error('Failed to find html content') };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return { completed: false, error: result.error };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.transformPage = transformPage;
|
|
42
|
+
async function transformPageAsObject(args) {
|
|
43
|
+
// Get list of registered scripts
|
|
44
|
+
const scripts = await (0, scripts_1.listScripts)(args.pagesFolder);
|
|
45
|
+
const serverScripts = scripts.length > 0 ? `<SERVER_SCRIPTS>\n${scripts}\n\n` : '';
|
|
46
|
+
// Provide additional context
|
|
47
|
+
const { pageState, message, maxTokens, instructions, completePrompt, shouldContinue } = args;
|
|
48
|
+
const context = `<CURRENT_PAGE>\n${pageState}\n\n<SERVER_APIS>\n${serverAPIs}\n\n${serverScripts}<USER_MESSAGE>\n${message}`;
|
|
49
|
+
// Generate next page
|
|
50
|
+
const result = await (0, agentm_core_1.generateObject)({ goal, jsonSchema, maxTokens, context, instructions, completePrompt, shouldContinue });
|
|
51
|
+
if (result.completed) {
|
|
52
|
+
return { completed: true, value: result.value?.content };
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return { completed: false, error: result.error };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.transformPageAsObject = transformPageAsObject;
|
|
59
|
+
const jsonSchema = {
|
|
60
|
+
name: 'HtmlPage',
|
|
61
|
+
schema: {
|
|
62
|
+
type: 'object',
|
|
63
|
+
properties: {
|
|
64
|
+
content: {
|
|
65
|
+
type: 'string',
|
|
66
|
+
description: 'html page content to return'
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
required: ['content'],
|
|
70
|
+
additionalProperties: false
|
|
71
|
+
},
|
|
72
|
+
strict: true
|
|
73
|
+
};
|
|
74
|
+
const goal = `Generate a new web page that represents the next state of the chat based on the users message.
|
|
75
|
+
Append the the users message and a brief response from the AI to the chat panel.
|
|
76
|
+
Maintain the full conversation history in the chat panel unless asked to clear it.
|
|
77
|
+
Any details or visualizations should be rendered to the viewer panel.
|
|
78
|
+
The basic layout structure of the page needs to be maintained.
|
|
79
|
+
You're free to write any additional CSS or JavaScript to enhance the page.
|
|
80
|
+
Write an explication of your reasoning or any hidden thoughts to the thoughts div.
|
|
81
|
+
If the user asks to create something like an app, tool, game, or ui create it in the viewer panel.
|
|
82
|
+
If the user asks to draw something use canvas to draw it in the viewer panel.
|
|
83
|
+
Always return the full html content of the page.`;
|
|
84
|
+
const serverAPIs = `GET /api/data/:table
|
|
85
|
+
description: Retrieve all rows from a table
|
|
86
|
+
response: Array of JSON rows [{ id: string, ... }]
|
|
87
|
+
|
|
88
|
+
GET /api/data/:table/:id
|
|
89
|
+
description: Retrieve a single row from a table
|
|
90
|
+
response: JSON row { id: string, ... }
|
|
91
|
+
|
|
92
|
+
POST /api/data/:table
|
|
93
|
+
description: Replaces or adds a single row to a table and returns the row
|
|
94
|
+
request: JSON row { id?: string, ... }
|
|
95
|
+
response: { id: string, ... }
|
|
96
|
+
|
|
97
|
+
DELETE /api/data/:table/:id
|
|
98
|
+
description: Delete a single row from a table
|
|
99
|
+
response: { success: true }
|
|
100
|
+
|
|
101
|
+
POST /api/generate/image
|
|
102
|
+
description: Generate an image based on a prompt
|
|
103
|
+
request: { prompt: string, shape: 'square' | 'portrait' | 'landscape', style: 'vivid' | 'natural' }
|
|
104
|
+
response: { url: string }
|
|
105
|
+
|
|
106
|
+
POST /api/generate/completion
|
|
107
|
+
description: Generates a text completion based on a prompt
|
|
108
|
+
request: { prompt: string, temperature?: number }
|
|
109
|
+
response: { answer: string, explanation: string }
|
|
110
|
+
|
|
111
|
+
GET /api/pages
|
|
112
|
+
description: Retrieve a list of all pages
|
|
113
|
+
response: Array of page names [string]
|
|
114
|
+
|
|
115
|
+
POST /api/scripts/:id
|
|
116
|
+
description: Execute a script with the passed in variables
|
|
117
|
+
request: { [key: string]: string }
|
|
118
|
+
response: string`;
|
|
119
|
+
//# sourceMappingURL=transformPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformPage.js","sourceRoot":"","sources":["../../src/service/transformPage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApiRoutes.d.ts","sourceRoot":"","sources":["../../src/service/useApiRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAOxC,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAoF1E"}
|