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.
Files changed (102) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/bin/synthos.js +3 -0
  4. package/default-pages/[application].html +87 -0
  5. package/default-pages/[markdown].html +261 -0
  6. package/default-pages/[sidebar].html +89 -0
  7. package/default-pages/[split-application].html +133 -0
  8. package/default-pages/json_tools.html +176 -0
  9. package/default-scripts/android.terminal.json +7 -0
  10. package/default-scripts/linux-terminal.json +7 -0
  11. package/default-scripts/mac-terminal.json +7 -0
  12. package/default-scripts/windows-terminal.json +7 -0
  13. package/dist/files.d.ts +9 -0
  14. package/dist/files.d.ts.map +1 -0
  15. package/dist/files.js +79 -0
  16. package/dist/files.js.map +1 -0
  17. package/dist/index.d.ts +7 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +23 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/init.d.ts +9 -0
  22. package/dist/init.d.ts.map +1 -0
  23. package/dist/init.js +59 -0
  24. package/dist/init.js.map +1 -0
  25. package/dist/pages.d.ts +6 -0
  26. package/dist/pages.d.ts.map +1 -0
  27. package/dist/pages.js +55 -0
  28. package/dist/pages.js.map +1 -0
  29. package/dist/scripts.d.ts +14 -0
  30. package/dist/scripts.d.ts.map +1 -0
  31. package/dist/scripts.js +103 -0
  32. package/dist/scripts.js.map +1 -0
  33. package/dist/service/createCompletePrompt.d.ts +4 -0
  34. package/dist/service/createCompletePrompt.d.ts.map +1 -0
  35. package/dist/service/createCompletePrompt.js +42 -0
  36. package/dist/service/createCompletePrompt.js.map +1 -0
  37. package/dist/service/generateImage.d.ts +32 -0
  38. package/dist/service/generateImage.d.ts.map +1 -0
  39. package/dist/service/generateImage.js +71 -0
  40. package/dist/service/generateImage.js.map +1 -0
  41. package/dist/service/index.d.ts +8 -0
  42. package/dist/service/index.d.ts.map +1 -0
  43. package/dist/service/index.js +24 -0
  44. package/dist/service/index.js.map +1 -0
  45. package/dist/service/requiresSettings.d.ts +3 -0
  46. package/dist/service/requiresSettings.d.ts.map +1 -0
  47. package/dist/service/requiresSettings.js +24 -0
  48. package/dist/service/requiresSettings.js.map +1 -0
  49. package/dist/service/server.d.ts +4 -0
  50. package/dist/service/server.d.ts.map +1 -0
  51. package/dist/service/server.js +26 -0
  52. package/dist/service/server.js.map +1 -0
  53. package/dist/service/transformPage.d.ts +11 -0
  54. package/dist/service/transformPage.d.ts.map +1 -0
  55. package/dist/service/transformPage.js +119 -0
  56. package/dist/service/transformPage.js.map +1 -0
  57. package/dist/service/useApiRoutes.d.ts +4 -0
  58. package/dist/service/useApiRoutes.d.ts.map +1 -0
  59. package/dist/service/useApiRoutes.js +95 -0
  60. package/dist/service/useApiRoutes.js.map +1 -0
  61. package/dist/service/useDataRoutes.d.ts +4 -0
  62. package/dist/service/useDataRoutes.d.ts.map +1 -0
  63. package/dist/service/useDataRoutes.js +98 -0
  64. package/dist/service/useDataRoutes.js.map +1 -0
  65. package/dist/service/usePageRoutes.d.ts +5 -0
  66. package/dist/service/usePageRoutes.d.ts.map +1 -0
  67. package/dist/service/usePageRoutes.js +132 -0
  68. package/dist/service/usePageRoutes.js.map +1 -0
  69. package/dist/settings.d.ts +13 -0
  70. package/dist/settings.d.ts.map +1 -0
  71. package/dist/settings.js +55 -0
  72. package/dist/settings.js.map +1 -0
  73. package/dist/synthos-cli.d.ts +2 -0
  74. package/dist/synthos-cli.d.ts.map +1 -0
  75. package/dist/synthos-cli.js +43 -0
  76. package/dist/synthos-cli.js.map +1 -0
  77. package/images/home.png +0 -0
  78. package/images/page-management.png +0 -0
  79. package/images/settings.png +0 -0
  80. package/images/synthos-square.png +0 -0
  81. package/package.json +58 -0
  82. package/required-pages/apis.html +347 -0
  83. package/required-pages/home.html +83 -0
  84. package/required-pages/pages.html +135 -0
  85. package/required-pages/scripts.html +335 -0
  86. package/required-pages/settings.html +158 -0
  87. package/src/files.ts +49 -0
  88. package/src/index.ts +6 -0
  89. package/src/init.ts +66 -0
  90. package/src/pages.ts +55 -0
  91. package/src/scripts.ts +130 -0
  92. package/src/service/createCompletePrompt.ts +40 -0
  93. package/src/service/generateImage.ts +101 -0
  94. package/src/service/index.ts +7 -0
  95. package/src/service/requiresSettings.ts +22 -0
  96. package/src/service/server.ts +26 -0
  97. package/src/service/transformPage.ts +135 -0
  98. package/src/service/useApiRoutes.ts +95 -0
  99. package/src/service/useDataRoutes.ts +97 -0
  100. package/src/service/usePageRoutes.ts +147 -0
  101. package/src/settings.ts +60 -0
  102. 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"}
@@ -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,4 @@
1
+ import { completePrompt } from 'agentm-core';
2
+ export declare const availableModels: string[];
3
+ export declare function createCompletePrompt(pagesFolder: string, model?: string): Promise<completePrompt>;
4
+ //# sourceMappingURL=createCompletePrompt.d.ts.map
@@ -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,3 @@
1
+ import { Settings } from "../settings";
2
+ export declare function requiresSettings(res: any, folder: string, cb: (settings: Settings) => Promise<void>): Promise<void>;
3
+ //# sourceMappingURL=requiresSettings.d.ts.map
@@ -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,4 @@
1
+ import { Application } from 'express';
2
+ import { SynthOSConfig } from '../init';
3
+ export declare function server(config: SynthOSConfig): Application;
4
+ //# sourceMappingURL=server.d.ts.map
@@ -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,4 @@
1
+ import { Application } from 'express';
2
+ import { SynthOSConfig } from "../init";
3
+ export declare function useApiRoutes(config: SynthOSConfig, app: Application): void;
4
+ //# sourceMappingURL=useApiRoutes.d.ts.map
@@ -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"}