@rtsee/messenger-signaling 0.0.124 → 0.0.126
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/dist/messenger-signaling/src/interfaces/ozzy/tasks/Task.d.ts +8 -0
- package/dist/messenger-signaling/src/interfaces/ozzy/tasks/Task.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/RTSeeMessengerSignaling.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/RTSeeMessengerSignaling.js +28 -0
- package/dist/messenger-signaling/src/models/RTSeeMessengerSignaling.js.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryCreatorTask.d.ts +1 -45
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryCreatorTask.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryCreatorTask.js +15 -372
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryCreatorTask.js.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryRepairTask.d.ts +1 -24
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryRepairTask.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryRepairTask.js +15 -670
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryRepairTask.js.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryTranslateInPlaceTask.d.ts +1 -20
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryTranslateInPlaceTask.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryTranslateInPlaceTask.js +15 -460
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryTranslateInPlaceTask.js.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryTranslatorTask.d.ts +1 -24
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryTranslatorTask.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryTranslatorTask.js +15 -200
- package/dist/messenger-signaling/src/models/ozzy/tasks/StoryTranslatorTask.js.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/Task.d.ts +16 -3
- package/dist/messenger-signaling/src/models/ozzy/tasks/Task.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/Task.js +72 -7
- package/dist/messenger-signaling/src/models/ozzy/tasks/Task.js.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/TaskAction.d.ts +54 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/TaskAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/TaskAction.js +204 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/TaskAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/TasksManager.d.ts +16 -2
- package/dist/messenger-signaling/src/models/ozzy/tasks/TasksManager.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/TasksManager.js +76 -4
- package/dist/messenger-signaling/src/models/ozzy/tasks/TasksManager.js.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateSlideAction.d.ts +10 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateSlideAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateSlideAction.js +24 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateSlideAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateStoryAction.d.ts +10 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateStoryAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateStoryAction.js +24 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateStoryAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateStoryElementAction.d.ts +15 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateStoryElementAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateStoryElementAction.js +29 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/CreateStoryElementAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/EditSlideAction.d.ts +9 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/EditSlideAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/EditSlideAction.js +25 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/EditSlideAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/EditStoryAction.d.ts +9 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/EditStoryAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/EditStoryAction.js +24 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/EditStoryAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/LoadStorySlidesAction.d.ts +19 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/LoadStorySlidesAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/LoadStorySlidesAction.js +35 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/LoadStorySlidesAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/ResolveAgentAction.d.ts +19 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/ResolveAgentAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/ResolveAgentAction.js +34 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/ResolveAgentAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/index.d.ts +8 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/index.js +24 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/common/actions/index.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/index.d.ts +6 -4
- package/dist/messenger-signaling/src/models/ozzy/tasks/index.d.ts.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/index.js +6 -4
- package/dist/messenger-signaling/src/models/ozzy/tasks/index.js.map +1 -1
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/StoryCreatorTask.d.ts +33 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/StoryCreatorTask.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/StoryCreatorTask.js +154 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/StoryCreatorTask.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/actions/GenerateStoryDraftAction.d.ts +47 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/actions/GenerateStoryDraftAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/actions/GenerateStoryDraftAction.js +231 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/actions/GenerateStoryDraftAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/actions/index.d.ts +2 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/actions/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/actions/index.js +18 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/actions/index.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/index.d.ts +3 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/index.js +19 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-creator/index.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/StoryRepairTask.d.ts +20 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/StoryRepairTask.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/StoryRepairTask.js +370 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/StoryRepairTask.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/GenerateStoryRepairDraftAction.d.ts +45 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/GenerateStoryRepairDraftAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/GenerateStoryRepairDraftAction.js +246 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/GenerateStoryRepairDraftAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/LoadStoryForRepairAction.d.ts +23 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/LoadStoryForRepairAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/LoadStoryForRepairAction.js +71 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/LoadStoryForRepairAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/SanitizeStoryImagesAction.d.ts +13 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/SanitizeStoryImagesAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/SanitizeStoryImagesAction.js +38 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/SanitizeStoryImagesAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/UpdateStoryElementAction.d.ts +14 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/UpdateStoryElementAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/UpdateStoryElementAction.js +29 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/UpdateStoryElementAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/index.d.ts +5 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/index.js +21 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/actions/index.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/index.d.ts +3 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/index.js +19 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-repair/index.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/StoryTranslateInPlaceTask.d.ts +16 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/StoryTranslateInPlaceTask.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/StoryTranslateInPlaceTask.js +181 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/StoryTranslateInPlaceTask.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/LoadStoryForTranslationAction.d.ts +61 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/LoadStoryForTranslationAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/LoadStoryForTranslationAction.js +165 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/LoadStoryForTranslationAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveElementTranslationAction.d.ts +18 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveElementTranslationAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveElementTranslationAction.js +67 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveElementTranslationAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveSlideTranslationAction.d.ts +13 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveSlideTranslationAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveSlideTranslationAction.js +33 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveSlideTranslationAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveStoryTranslationAction.d.ts +10 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveStoryTranslationAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveStoryTranslationAction.js +28 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/SaveStoryTranslationAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/TranslateStoryInPlaceLlmAction.d.ts +17 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/TranslateStoryInPlaceLlmAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/TranslateStoryInPlaceLlmAction.js +143 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/TranslateStoryInPlaceLlmAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/index.d.ts +6 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/index.js +22 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/actions/index.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/index.d.ts +3 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/index.js +19 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translate-in-place/index.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/StoryTranslatorTask.d.ts +16 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/StoryTranslatorTask.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/StoryTranslatorTask.js +94 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/StoryTranslatorTask.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/CloneStoryAction.d.ts +14 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/CloneStoryAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/CloneStoryAction.js +26 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/CloneStoryAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/TranslateStoryContentAction.d.ts +24 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/TranslateStoryContentAction.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/TranslateStoryContentAction.js +91 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/TranslateStoryContentAction.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/index.d.ts +3 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/index.js +19 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/actions/index.js.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/index.d.ts +3 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/index.d.ts.map +1 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/index.js +19 -0
- package/dist/messenger-signaling/src/models/ozzy/tasks/story-translator/index.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,203 +1,18 @@
|
|
|
1
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
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
exports.getStoryTranslatorTask = getStoryTranslatorTask;
|
|
5
|
-
const common_1 = require("@rtsee/common");
|
|
6
|
-
const Task_js_1 = require("./Task.js");
|
|
7
|
-
const MAX_SLIDES_PER_STORY = 500;
|
|
8
|
-
const MIN_OUTPUT_TOKENS = 1024;
|
|
9
|
-
const MAX_OUTPUT_TOKENS = 32000;
|
|
10
|
-
/**
|
|
11
|
-
* Kept short on purpose: the system prompt is billed on every call,
|
|
12
|
-
* the payload itself carries all the content.
|
|
13
|
-
*/
|
|
14
|
-
function buildSystemPrompt(language) {
|
|
15
|
-
return `You are a professional literary translator of children's and family stories.
|
|
16
|
-
Translate every string value of the user's JSON into ${language.name} (${language.code}).
|
|
17
|
-
|
|
18
|
-
Rules:
|
|
19
|
-
- Translate faithfully and completely: never summarize, shorten, add, or explain anything.
|
|
20
|
-
- Keep the tone, style, rhythm, humor, and age-appropriate vocabulary of the original; the result must read as if originally written in ${language.name}.
|
|
21
|
-
- Adapt character and place names the way published ${language.name} translations do (conventional forms or natural transliteration). Translate each name consistently across all fields.
|
|
22
|
-
- Preserve paragraph breaks, line breaks, dialogue punctuation conventions of ${language.name}, emojis, and any markup.
|
|
23
|
-
- If a value is already in ${language.name}, polish it lightly but keep its meaning.
|
|
24
|
-
- Keep JSON keys and "id" values unchanged; return exactly the same slides in the same order.
|
|
25
|
-
|
|
26
|
-
Respond with ONLY the minified JSON object of the same shape: {"name":string,"description":string,"slides":[{"id":number,"text":string}]}`;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Clones a story with all its slides and translates the clone (name, description, slides' text)
|
|
30
|
-
* into the target language with a single LLM call.
|
|
31
|
-
*/
|
|
32
|
-
class StoryTranslatorTask extends Task_js_1.OzzyTask {
|
|
33
|
-
presentation;
|
|
34
|
-
constructor(options, presentation) {
|
|
35
|
-
super(options);
|
|
36
|
-
this.presentation = presentation;
|
|
37
|
-
}
|
|
38
|
-
async execute() {
|
|
39
|
-
const language = this.validateInput();
|
|
40
|
-
const agent = await this.resolveAgent();
|
|
41
|
-
this.log(`Cloning story "${this.input.storyName || this.input.storyId}"...`);
|
|
42
|
-
const clone = await this.presentation.cloneStory(this.transport, { storyId: this.input.storyId });
|
|
43
|
-
this.log(`Story cloned (id: ${clone.id}), loading slides...`);
|
|
44
|
-
const slides = await this.loadSlides(clone.id);
|
|
45
|
-
this.log(`Loaded ${slides.length} slide(s).`);
|
|
46
|
-
const payload = {
|
|
47
|
-
name: clone.name || '',
|
|
48
|
-
description: clone.description || '',
|
|
49
|
-
slides: slides
|
|
50
|
-
.map((slide, index) => ({ id: index + 1, text: slide.text || '' }))
|
|
51
|
-
// empty slides (e.g. image-only) don't need to be paid for
|
|
52
|
-
.filter((s) => !!s.text.trim()),
|
|
53
|
-
};
|
|
54
|
-
const translation = await this.translate(payload, language, agent);
|
|
55
|
-
const name = translation.name || clone.name;
|
|
56
|
-
const description = translation.description || clone.description || '';
|
|
57
|
-
this.log('Saving translated story...');
|
|
58
|
-
await this.presentation.editStory(this.transport, {
|
|
59
|
-
...clone,
|
|
60
|
-
name,
|
|
61
|
-
description,
|
|
62
|
-
});
|
|
63
|
-
const translatedTexts = new Map(translation.slides.map((s) => [s.id, s.text]));
|
|
64
|
-
let missing = 0;
|
|
65
|
-
for (let i = 0; i < slides.length; i++) {
|
|
66
|
-
const slide = slides[i];
|
|
67
|
-
if (!slide.text?.trim()) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
const text = translatedTexts.get(i + 1);
|
|
71
|
-
if (!text) {
|
|
72
|
-
missing++;
|
|
73
|
-
this.log(`Slide ${i + 1} is missing in the translation, keeping the original text.`, 'warn');
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
try {
|
|
77
|
-
await this.presentation.editSlide(this.transport, {
|
|
78
|
-
...slide,
|
|
79
|
-
name: slide.name || `${name} #${slide.slideNumber || i + 1}`,
|
|
80
|
-
text,
|
|
81
|
-
});
|
|
82
|
-
this.log(`Slide ${i + 1}/${slides.length} saved.`);
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
missing++;
|
|
86
|
-
this.log(`Failed to save slide ${i + 1}: ${e?.message || e}`, 'warn');
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (missing) {
|
|
90
|
-
this.log(`${missing} slide(s) were left untranslated, please review them in the editor.`, 'warn');
|
|
91
|
-
}
|
|
92
|
-
this.log(`Story translated to ${language.name}.`);
|
|
93
|
-
return {
|
|
94
|
-
storyId: clone.id,
|
|
95
|
-
originalStoryId: this.input.storyId,
|
|
96
|
-
language: language.code,
|
|
97
|
-
name,
|
|
98
|
-
description,
|
|
99
|
-
slidesCount: slides.length,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
validateInput() {
|
|
103
|
-
if (!this.input?.storyId) {
|
|
104
|
-
throw new Error('Story is required.');
|
|
105
|
-
}
|
|
106
|
-
if (!this.input?.agentId) {
|
|
107
|
-
throw new Error('Agent is required.');
|
|
108
|
-
}
|
|
109
|
-
const language = (0, common_1.getStoryTranslatorLanguage)(this.input.language);
|
|
110
|
-
if (!language) {
|
|
111
|
-
throw new Error(`Unsupported language "${this.input?.language}".`);
|
|
112
|
-
}
|
|
113
|
-
return language;
|
|
114
|
-
}
|
|
115
|
-
async loadSlides(storyId) {
|
|
116
|
-
const response = await this.presentation.getSlides(this.transport, {
|
|
117
|
-
storyId,
|
|
118
|
-
slideNumber: -1,
|
|
119
|
-
direction: 'front',
|
|
120
|
-
limit: MAX_SLIDES_PER_STORY,
|
|
121
|
-
});
|
|
122
|
-
return [...(response?.slides || [])].sort((a, b) => (a.slideNumber || 0) - (b.slideNumber || 0));
|
|
123
|
-
}
|
|
124
|
-
async resolveAgent() {
|
|
125
|
-
this.log('Resolving selected agent...');
|
|
126
|
-
const member = await this.context.getChatMember(this.chatId, this.input.agentId);
|
|
127
|
-
if (!member || !member.isAgent || !member.agentConfiguration) {
|
|
128
|
-
throw new Error('Selected agent is not an agentic member of this chat.');
|
|
129
|
-
}
|
|
130
|
-
return member;
|
|
131
|
-
}
|
|
132
|
-
async translate(payload, language, agent) {
|
|
133
|
-
const prompt = JSON.stringify(payload);
|
|
134
|
-
// the agent's own system prompt is intentionally not sent: it's billed on every call
|
|
135
|
-
// and a persona could bias a faithful translation, only its model is used
|
|
136
|
-
const model = agent.agentConfiguration.model?.model;
|
|
137
|
-
this.log(`Asking ${agent.name || agent.agentConfiguration.name} (${model || 'default model'}) ` +
|
|
138
|
-
`to translate ${payload.slides.length} slide(s) to ${language.name}...`);
|
|
139
|
-
const { text, cost } = await this.context.ozzy.complete({
|
|
140
|
-
prompt,
|
|
141
|
-
systemPrompt: buildSystemPrompt(language),
|
|
142
|
-
transport: this.transport,
|
|
143
|
-
model,
|
|
144
|
-
agentId: agent.id,
|
|
145
|
-
maxTokens: this.estimateMaxTokens(prompt),
|
|
146
|
-
});
|
|
147
|
-
if (cost) {
|
|
148
|
-
const fmt = (n) => (n || 0).toLocaleString('en-US');
|
|
149
|
-
this.log(`Token usage: ${fmt(cost.inputTokens)} in / ${fmt(cost.outputTokens)} out / ${fmt(cost.totalTokens)} total`, 'info', cost);
|
|
150
|
-
}
|
|
151
|
-
return this.parseTranslation(text, payload);
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Output is roughly as long as the input; Cyrillic tokenizes ~1.5-2x heavier than latin,
|
|
155
|
-
* so leave enough headroom to never truncate the JSON (only produced tokens are billed).
|
|
156
|
-
*/
|
|
157
|
-
estimateMaxTokens(prompt) {
|
|
158
|
-
const estimated = Math.ceil(prompt.length * 1.5) + 512;
|
|
159
|
-
return Math.min(MAX_OUTPUT_TOKENS, Math.max(MIN_OUTPUT_TOKENS, estimated));
|
|
160
|
-
}
|
|
161
|
-
parseTranslation(text, original) {
|
|
162
|
-
if (!text || !text.trim()) {
|
|
163
|
-
throw new Error('Translation response is empty.');
|
|
164
|
-
}
|
|
165
|
-
const start = text.indexOf('{');
|
|
166
|
-
const end = text.lastIndexOf('}');
|
|
167
|
-
if (start === -1 || end <= start) {
|
|
168
|
-
throw new Error('No JSON object found in the translation response.');
|
|
169
|
-
}
|
|
170
|
-
let candidate = text.substring(start, end + 1).trim();
|
|
171
|
-
candidate = candidate.replace(/^```json\s*/i, '').replace(/```$/i, '').trim();
|
|
172
|
-
let parsed;
|
|
173
|
-
try {
|
|
174
|
-
parsed = JSON.parse(candidate);
|
|
175
|
-
}
|
|
176
|
-
catch (firstError) {
|
|
177
|
-
// Attempt to clean trailing commas before closing braces/brackets
|
|
178
|
-
const cleaned = candidate.replace(/,\s*([\]}])/g, '$1');
|
|
179
|
-
parsed = JSON.parse(cleaned);
|
|
180
|
-
}
|
|
181
|
-
const originalIds = new Set(original.slides.map((s) => s.id));
|
|
182
|
-
const slides = (Array.isArray(parsed.slides) ? parsed.slides : [])
|
|
183
|
-
.map((s) => ({ id: Number(s?.id), text: `${s?.text ?? ''}`.trim() }))
|
|
184
|
-
.filter((s) => originalIds.has(s.id) && !!s.text);
|
|
185
|
-
if (original.slides.length && !slides.length) {
|
|
186
|
-
throw new Error('Translation response contains no slides.');
|
|
187
|
-
}
|
|
188
|
-
return {
|
|
189
|
-
name: `${parsed.name ?? ''}`.trim(),
|
|
190
|
-
description: `${parsed.description ?? ''}`.trim(),
|
|
191
|
-
slides,
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
exports.StoryTranslatorTask = StoryTranslatorTask;
|
|
196
|
-
function getStoryTranslatorTask(presentation) {
|
|
197
|
-
return {
|
|
198
|
-
name: common_1.STORY_TRANSLATOR_TASK_NAME,
|
|
199
|
-
description: 'Clones a Story with its Slides and translates the clone into another language.',
|
|
200
|
-
create: (options) => new StoryTranslatorTask(options, presentation),
|
|
201
|
-
};
|
|
202
|
-
}
|
|
17
|
+
__exportStar(require("./story-translator/index.js"), exports);
|
|
203
18
|
//# sourceMappingURL=StoryTranslatorTask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoryTranslatorTask.js","sourceRoot":"","sources":["../../../../../../src/models/ozzy/tasks/StoryTranslatorTask.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StoryTranslatorTask.js","sourceRoot":"","sources":["../../../../../../src/models/ozzy/tasks/StoryTranslatorTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { IOzzyTask, IOzzyTaskError, IOzzyTaskInfo, IOzzyTaskLog, OzzyTaskEvents, OzzyTaskLogLevel, OzzyTaskStatus } from "@rtsee/common";
|
|
1
|
+
import { IOzzyTask, IOzzyTaskActionPrompt, IOzzyTaskError, IOzzyTaskInfo, IOzzyTaskLog, OzzyTaskEvents, OzzyTaskLogLevel, OzzyTaskStatus } from "@rtsee/common";
|
|
2
2
|
import { IRTSeeTransport } from "@rtsee/core";
|
|
3
3
|
import { IOzzyTaskContext, IOzzyTaskOptions } from "@rtsee/messenger-signaling";
|
|
4
|
+
import type { OzzyTaskAction } from "./TaskAction.js";
|
|
4
5
|
/**
|
|
5
6
|
* Base server-side executable controlled by Ozzy.
|
|
6
|
-
* Extend it and implement `execute()`; use `this.
|
|
7
|
+
* Extend it and implement `execute()`; use `this.runAction(...)` to execute atomic actions.
|
|
7
8
|
*
|
|
8
9
|
* Lifecycle: init() -> run() [beforeExecute -> execute -> onSuccess | onError]
|
|
9
|
-
* Inputs / outputs /
|
|
10
|
+
* Inputs / outputs / action payloads are stored in s3, their paths are persisted to Postgres.
|
|
10
11
|
*/
|
|
11
12
|
export declare abstract class OzzyTask<I = any, O = any> implements IOzzyTask<I, O> {
|
|
12
13
|
id: string;
|
|
@@ -18,6 +19,8 @@ export declare abstract class OzzyTask<I = any, O = any> implements IOzzyTask<I,
|
|
|
18
19
|
logsPath?: string;
|
|
19
20
|
errors: IOzzyTaskError[];
|
|
20
21
|
logs: IOzzyTaskLog[];
|
|
22
|
+
actions: OzzyTaskAction[];
|
|
23
|
+
prompts: IOzzyTaskActionPrompt[];
|
|
21
24
|
status: OzzyTaskStatus;
|
|
22
25
|
chatId: string;
|
|
23
26
|
workflowId?: string;
|
|
@@ -25,12 +28,21 @@ export declare abstract class OzzyTask<I = any, O = any> implements IOzzyTask<I,
|
|
|
25
28
|
createdBy?: string;
|
|
26
29
|
createdAt?: Date;
|
|
27
30
|
protected context: IOzzyTaskContext;
|
|
31
|
+
private pendingPrompts;
|
|
28
32
|
constructor(options: IOzzyTaskOptions<I>);
|
|
29
33
|
abstract execute(): Promise<O>;
|
|
30
34
|
get transport(): IRTSeeTransport;
|
|
31
35
|
get isRunning(): boolean;
|
|
36
|
+
getContext(): IOzzyTaskContext;
|
|
32
37
|
/** Switch execution context, e.g. when another chat member presses "execute" */
|
|
33
38
|
setContext(context: IOzzyTaskContext): void;
|
|
39
|
+
/** Execute an atomic OzzyTaskAction and track it on this task */
|
|
40
|
+
protected runAction<A extends OzzyTaskAction<any, any>>(action: A): Promise<Awaited<ReturnType<A['execute']>>>;
|
|
41
|
+
/**
|
|
42
|
+
* Send an interactive prompt to the chat room and wait for a chat member to respond.
|
|
43
|
+
*/
|
|
44
|
+
prompt<P = any, R = any>(name: string, data?: P, action?: OzzyTaskAction): Promise<R>;
|
|
45
|
+
resolvePrompt<R = any>(promptId: string, response: R, resolvedBy?: string): IOzzyTaskActionPrompt | null;
|
|
34
46
|
/** Restore persisted state (used when the task is loaded from storage) */
|
|
35
47
|
hydrate(info: IOzzyTaskInfo<I, O>): void;
|
|
36
48
|
/** Persist the task (input -> s3, record -> Postgres) and notify the chat */
|
|
@@ -49,4 +61,5 @@ export declare abstract class OzzyTask<I = any, O = any> implements IOzzyTask<I,
|
|
|
49
61
|
private propagateToS3Location;
|
|
50
62
|
private saveUpdates;
|
|
51
63
|
}
|
|
64
|
+
export { OzzyTask as RTSeeTask };
|
|
52
65
|
//# sourceMappingURL=Task.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../../../../../src/models/ozzy/tasks/Task.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EAEd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAa,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../../../../../src/models/ozzy/tasks/Task.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OzzyTask = void 0;
|
|
3
|
+
exports.RTSeeTask = exports.OzzyTask = void 0;
|
|
4
4
|
const common_1 = require("@rtsee/common");
|
|
5
5
|
const core_1 = require("@rtsee/core");
|
|
6
6
|
/**
|
|
7
7
|
* Base server-side executable controlled by Ozzy.
|
|
8
|
-
* Extend it and implement `execute()`; use `this.
|
|
8
|
+
* Extend it and implement `execute()`; use `this.runAction(...)` to execute atomic actions.
|
|
9
9
|
*
|
|
10
10
|
* Lifecycle: init() -> run() [beforeExecute -> execute -> onSuccess | onError]
|
|
11
|
-
* Inputs / outputs /
|
|
11
|
+
* Inputs / outputs / action payloads are stored in s3, their paths are persisted to Postgres.
|
|
12
12
|
*/
|
|
13
13
|
class OzzyTask {
|
|
14
14
|
id;
|
|
@@ -20,6 +20,8 @@ class OzzyTask {
|
|
|
20
20
|
logsPath = '';
|
|
21
21
|
errors = [];
|
|
22
22
|
logs = [];
|
|
23
|
+
actions = [];
|
|
24
|
+
prompts = [];
|
|
23
25
|
status = common_1.OzzyTaskStatus.CREATED;
|
|
24
26
|
chatId;
|
|
25
27
|
workflowId;
|
|
@@ -27,6 +29,7 @@ class OzzyTask {
|
|
|
27
29
|
createdBy;
|
|
28
30
|
createdAt;
|
|
29
31
|
context;
|
|
32
|
+
pendingPrompts = new Map();
|
|
30
33
|
constructor(options) {
|
|
31
34
|
this.id = options.id || core_1.RTSeeCore.uuidv4();
|
|
32
35
|
this.name = options.name;
|
|
@@ -46,10 +49,65 @@ class OzzyTask {
|
|
|
46
49
|
get isRunning() {
|
|
47
50
|
return this.status === common_1.OzzyTaskStatus.IN_PROGRESS;
|
|
48
51
|
}
|
|
52
|
+
getContext() {
|
|
53
|
+
return this.context;
|
|
54
|
+
}
|
|
49
55
|
/** Switch execution context, e.g. when another chat member presses "execute" */
|
|
50
56
|
setContext(context) {
|
|
51
57
|
this.context = context;
|
|
52
58
|
}
|
|
59
|
+
/** Execute an atomic OzzyTaskAction and track it on this task */
|
|
60
|
+
async runAction(action) {
|
|
61
|
+
this.actions.push(action);
|
|
62
|
+
return (await action.run());
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Send an interactive prompt to the chat room and wait for a chat member to respond.
|
|
66
|
+
*/
|
|
67
|
+
prompt(name, data, action) {
|
|
68
|
+
const promptModel = {
|
|
69
|
+
id: core_1.RTSeeCore.uuidv4(),
|
|
70
|
+
taskId: this.id,
|
|
71
|
+
actionId: action?.id,
|
|
72
|
+
name,
|
|
73
|
+
data,
|
|
74
|
+
resolved: false,
|
|
75
|
+
createdAt: new Date(),
|
|
76
|
+
};
|
|
77
|
+
this.prompts.push(promptModel);
|
|
78
|
+
return new Promise((resolve, reject) => {
|
|
79
|
+
this.pendingPrompts.set(promptModel.id, {
|
|
80
|
+
prompt: promptModel,
|
|
81
|
+
action,
|
|
82
|
+
resolve,
|
|
83
|
+
reject,
|
|
84
|
+
});
|
|
85
|
+
this.context.emit(common_1.OzzyTaskEvents.ACTION_PROMPT, {
|
|
86
|
+
chatId: this.chatId,
|
|
87
|
+
task: this.toInfo(false),
|
|
88
|
+
action: action?.toInfo(false),
|
|
89
|
+
prompt: promptModel,
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
resolvePrompt(promptId, response, resolvedBy) {
|
|
94
|
+
const pending = this.pendingPrompts.get(promptId);
|
|
95
|
+
if (!pending) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
this.pendingPrompts.delete(promptId);
|
|
99
|
+
pending.prompt.response = response;
|
|
100
|
+
pending.prompt.resolved = true;
|
|
101
|
+
pending.prompt.resolvedBy = resolvedBy;
|
|
102
|
+
this.context.emit(common_1.OzzyTaskEvents.ACTION_PROMPT, {
|
|
103
|
+
chatId: this.chatId,
|
|
104
|
+
task: this.toInfo(false),
|
|
105
|
+
action: pending.action?.toInfo(false),
|
|
106
|
+
prompt: pending.prompt,
|
|
107
|
+
});
|
|
108
|
+
pending.resolve(response);
|
|
109
|
+
return pending.prompt;
|
|
110
|
+
}
|
|
53
111
|
/** Restore persisted state (used when the task is loaded from storage) */
|
|
54
112
|
hydrate(info) {
|
|
55
113
|
this.inputPath = info.inputPath || '';
|
|
@@ -116,6 +174,9 @@ class OzzyTask {
|
|
|
116
174
|
createdAt: this.createdAt,
|
|
117
175
|
input: undefined,
|
|
118
176
|
};
|
|
177
|
+
if (this.prompts.length) {
|
|
178
|
+
info.prompts = this.prompts;
|
|
179
|
+
}
|
|
119
180
|
if (includePayloads) {
|
|
120
181
|
info.input = this.input;
|
|
121
182
|
info.output = this.output;
|
|
@@ -157,12 +218,14 @@ class OzzyTask {
|
|
|
157
218
|
this.status = common_1.OzzyTaskStatus.IN_PROGRESS;
|
|
158
219
|
this.errors = [];
|
|
159
220
|
this.logs = [];
|
|
221
|
+
this.actions = [];
|
|
222
|
+
this.prompts = [];
|
|
223
|
+
this.pendingPrompts.clear();
|
|
160
224
|
this.output = undefined;
|
|
161
225
|
await this.saveUpdates();
|
|
162
226
|
this.emitEvent(common_1.OzzyTaskEvents.TASK_STARTED);
|
|
163
227
|
}
|
|
164
228
|
async onSuccess() {
|
|
165
|
-
this.log('Task finished successfully.');
|
|
166
229
|
this.status = common_1.OzzyTaskStatus.SUCCESS;
|
|
167
230
|
await this.propagateToS3Location();
|
|
168
231
|
await this.saveUpdates();
|
|
@@ -172,9 +235,11 @@ class OzzyTask {
|
|
|
172
235
|
console.error(`[OzzyTask] ${this.name} (${this.id}) failed:`, e.message);
|
|
173
236
|
this.status = common_1.OzzyTaskStatus.FAIL;
|
|
174
237
|
this.errors.push(e);
|
|
175
|
-
this.
|
|
238
|
+
for (const pending of this.pendingPrompts.values()) {
|
|
239
|
+
pending.reject(new Error(e.message));
|
|
240
|
+
}
|
|
241
|
+
this.pendingPrompts.clear();
|
|
176
242
|
try {
|
|
177
|
-
this.logsPath = await this.context.storage.putTaskPayload(this.transport, this.id, 'logs', this.logs);
|
|
178
243
|
await this.saveUpdates();
|
|
179
244
|
}
|
|
180
245
|
catch (persistError) {
|
|
@@ -185,7 +250,6 @@ class OzzyTask {
|
|
|
185
250
|
async propagateToS3Location() {
|
|
186
251
|
const storage = this.context.storage;
|
|
187
252
|
this.outputPath = await storage.putTaskPayload(this.transport, this.id, 'output', this.output ?? null);
|
|
188
|
-
this.logsPath = await storage.putTaskPayload(this.transport, this.id, 'logs', this.logs);
|
|
189
253
|
}
|
|
190
254
|
async saveUpdates() {
|
|
191
255
|
await this.context.storage.updateTask(this.transport, {
|
|
@@ -199,4 +263,5 @@ class OzzyTask {
|
|
|
199
263
|
}
|
|
200
264
|
}
|
|
201
265
|
exports.OzzyTask = OzzyTask;
|
|
266
|
+
exports.RTSeeTask = OzzyTask;
|
|
202
267
|
//# sourceMappingURL=Task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Task.js","sourceRoot":"","sources":["../../../../../../src/models/ozzy/tasks/Task.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Task.js","sourceRoot":"","sources":["../../../../../../src/models/ozzy/tasks/Task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { IOzzyTaskAction, IOzzyTaskActionInfo, IOzzyTaskError, IOzzyTaskLog, OzzyTaskEvents, OzzyTaskLogLevel, OzzyTaskStatus } from "@rtsee/common";
|
|
2
|
+
import { IRTSeeTransport } from "@rtsee/core";
|
|
3
|
+
import { IOzzyTaskActionOptions, IOzzyTaskContext } from "../../../interfaces/ozzy/tasks/Task.js";
|
|
4
|
+
import type { OzzyTask } from "./Task.js";
|
|
5
|
+
/**
|
|
6
|
+
* Base server-side atomic action executed as part of an OzzyTask.
|
|
7
|
+
* Inputs, outputs, and logs are persisted to S3 (`${taskId}/actions/${actionId}/...`)
|
|
8
|
+
* and tracked in the `OzzyTaskAction` Postgres table with a foreign key to `OzzyTask`.
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class OzzyTaskAction<I = any, O = any> implements IOzzyTaskAction<I, O> {
|
|
11
|
+
id: string;
|
|
12
|
+
taskId: string;
|
|
13
|
+
name: string;
|
|
14
|
+
input: I;
|
|
15
|
+
inputPath: string;
|
|
16
|
+
output?: O;
|
|
17
|
+
outputPath?: string;
|
|
18
|
+
logsPath?: string;
|
|
19
|
+
errors: IOzzyTaskError[];
|
|
20
|
+
logs: IOzzyTaskLog[];
|
|
21
|
+
status: OzzyTaskStatus;
|
|
22
|
+
createdBy?: string;
|
|
23
|
+
createdAt?: Date;
|
|
24
|
+
terminateOnError: boolean;
|
|
25
|
+
protected task: OzzyTask;
|
|
26
|
+
constructor(options: IOzzyTaskActionOptions<I>);
|
|
27
|
+
abstract execute(): Promise<O>;
|
|
28
|
+
get context(): IOzzyTaskContext;
|
|
29
|
+
get transport(): IRTSeeTransport;
|
|
30
|
+
get chatId(): string;
|
|
31
|
+
get isRunning(): boolean;
|
|
32
|
+
hydrate(info: IOzzyTaskActionInfo<I, O>): void;
|
|
33
|
+
/** Persist the action (input -> S3, record -> Postgres) */
|
|
34
|
+
init(): Promise<void>;
|
|
35
|
+
run(): Promise<O>;
|
|
36
|
+
toInfo(includePayloads?: boolean): IOzzyTaskActionInfo<I, O>;
|
|
37
|
+
/**
|
|
38
|
+
* Stream a log line for this action to all chat members.
|
|
39
|
+
* 'chunk' logs are live-only (e.g. LLM tokens) and are not persisted.
|
|
40
|
+
*/
|
|
41
|
+
protected log<T = any>(message: string, level?: OzzyTaskLogLevel, data?: T): void;
|
|
42
|
+
/**
|
|
43
|
+
* Emit an interactive prompt to the chat room and await response from any chat member.
|
|
44
|
+
*/
|
|
45
|
+
protected prompt<P = any, R = any>(name: string, data?: P): Promise<R>;
|
|
46
|
+
protected emitEvent(event: OzzyTaskEvents, log?: IOzzyTaskLog): void;
|
|
47
|
+
private beforeExecute;
|
|
48
|
+
private onSuccess;
|
|
49
|
+
private onError;
|
|
50
|
+
private propagateToS3Location;
|
|
51
|
+
private saveUpdates;
|
|
52
|
+
}
|
|
53
|
+
export { OzzyTaskAction as RTSeeTaskAction };
|
|
54
|
+
//# sourceMappingURL=TaskAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskAction.d.ts","sourceRoot":"","sources":["../../../../../../src/models/ozzy/tasks/TaskAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,cAAc,EAEd,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAa,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;GAIG;AACH,8BAAsB,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAE,YAAW,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAM;IACvB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAM;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAM;IACvB,MAAM,EAAE,cAAc,EAAE,CAAM;IAC9B,IAAI,EAAE,YAAY,EAAE,CAAM;IAC1B,MAAM,EAAE,cAAc,CAA0B;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAQ;IAEjC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAEb,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAY9C,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;IAE9B,IAAI,OAAO,IAAI,gBAAgB,CAE9B;IAED,IAAI,SAAS,IAAI,eAAe,CAE/B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAkB9C,2DAA2D;IACrD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBrB,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAkBvB,MAAM,CAAC,eAAe,GAAE,OAAc,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAwBlE;;;OAGG;IACH,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,gBAAyB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAoBzF;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAItE,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI;YAiBtD,aAAa;YAQb,SAAS;YAQT,OAAO;YAsBP,qBAAqB;YAkBrB,WAAW;CAW1B;AAED,OAAO,EAAE,cAAc,IAAI,eAAe,EAAE,CAAC"}
|