@farazirfan/costar-server-executor 1.7.37 → 1.7.38
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/agent/agent.d.ts +90 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +606 -0
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/pi-embedded-runner/run.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/run.js +2 -1
- package/dist/agent/pi-embedded-runner/run.js.map +1 -1
- package/dist/agent/pi-embedded-runner/system-prompt.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/system-prompt.js +16 -37
- package/dist/agent/pi-embedded-runner/system-prompt.js.map +1 -1
- package/dist/agent/pi-embedded-runner/tools.d.ts +4 -1
- package/dist/agent/pi-embedded-runner/tools.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/tools.js +3 -1
- package/dist/agent/pi-embedded-runner/tools.js.map +1 -1
- package/dist/agent/pi-embedded-runner/types.d.ts +4 -0
- package/dist/agent/pi-embedded-runner/types.d.ts.map +1 -1
- package/dist/cron/normalize.d.ts +31 -0
- package/dist/cron/normalize.d.ts.map +1 -0
- package/dist/cron/normalize.js +211 -0
- package/dist/cron/normalize.js.map +1 -0
- package/dist/cron/scheduler.d.ts +33 -3
- package/dist/cron/scheduler.d.ts.map +1 -1
- package/dist/cron/scheduler.js +253 -48
- package/dist/cron/scheduler.js.map +1 -1
- package/dist/heartbeat/runner.d.ts +27 -12
- package/dist/heartbeat/runner.d.ts.map +1 -1
- package/dist/heartbeat/runner.js +82 -104
- package/dist/heartbeat/runner.js.map +1 -1
- package/dist/infra/heartbeat-events-filter.d.ts +29 -0
- package/dist/infra/heartbeat-events-filter.d.ts.map +1 -0
- package/dist/infra/heartbeat-events-filter.js +80 -0
- package/dist/infra/heartbeat-events-filter.js.map +1 -0
- package/dist/infra/index.d.ts +9 -0
- package/dist/infra/index.d.ts.map +1 -0
- package/dist/infra/index.js +9 -0
- package/dist/infra/index.js.map +1 -0
- package/dist/infra/system-events.d.ts +58 -2
- package/dist/infra/system-events.d.ts.map +1 -1
- package/dist/infra/system-events.js +80 -14
- package/dist/infra/system-events.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/subagent/registry.d.ts +96 -0
- package/dist/subagent/registry.d.ts.map +1 -0
- package/dist/subagent/registry.js +180 -0
- package/dist/subagent/registry.js.map +1 -0
- package/dist/tools/complete-turn.d.ts +2 -2
- package/dist/tools/complete-turn.js +10 -10
- package/dist/tools/complete-turn.js.map +1 -1
- package/dist/tools/contacts.d.ts +13 -0
- package/dist/tools/contacts.d.ts.map +1 -0
- package/dist/tools/contacts.js +80 -0
- package/dist/tools/contacts.js.map +1 -0
- package/dist/tools/cron.d.ts +17 -2
- package/dist/tools/cron.d.ts.map +1 -1
- package/dist/tools/cron.js +117 -35
- package/dist/tools/cron.js.map +1 -1
- package/dist/tools/google-maps.d.ts +6 -6
- package/dist/tools/google-maps.d.ts.map +1 -1
- package/dist/tools/google-maps.js +207 -262
- package/dist/tools/google-maps.js.map +1 -1
- package/dist/tools/index.d.ts +17 -7
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +40 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/phone-call.d.ts +11 -0
- package/dist/tools/phone-call.d.ts.map +1 -0
- package/dist/tools/phone-call.js +151 -0
- package/dist/tools/phone-call.js.map +1 -0
- package/dist/tools/sessions-spawn.d.ts +33 -0
- package/dist/tools/sessions-spawn.d.ts.map +1 -0
- package/dist/tools/sessions-spawn.js +164 -0
- package/dist/tools/sessions-spawn.js.map +1 -0
- package/dist/tools/spotify.d.ts +12 -0
- package/dist/tools/spotify.d.ts.map +1 -0
- package/dist/tools/spotify.js +251 -0
- package/dist/tools/spotify.js.map +1 -0
- package/dist/tools/subagents.d.ts +23 -0
- package/dist/tools/subagents.d.ts.map +1 -0
- package/dist/tools/subagents.js +209 -0
- package/dist/tools/subagents.js.map +1 -0
- package/dist/tools/whatsapp.d.ts +13 -0
- package/dist/tools/whatsapp.d.ts.map +1 -0
- package/dist/tools/whatsapp.js +215 -0
- package/dist/tools/whatsapp.js.map +1 -0
- package/dist/tools/youtube.d.ts +12 -0
- package/dist/tools/youtube.d.ts.map +1 -0
- package/dist/tools/youtube.js +218 -0
- package/dist/tools/youtube.js.map +1 -0
- package/dist/utils/asterizk-auth.d.ts +43 -0
- package/dist/utils/asterizk-auth.d.ts.map +1 -0
- package/dist/utils/asterizk-auth.js +125 -0
- package/dist/utils/asterizk-auth.js.map +1 -0
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +132 -0
- package/dist/web-server.js.map +1 -1
- package/dist/workspace/index.d.ts +3 -4
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +3 -4
- package/dist/workspace/index.js.map +1 -1
- package/dist/workspace/templates.d.ts +8 -7
- package/dist/workspace/templates.d.ts.map +1 -1
- package/dist/workspace/templates.js +18 -127
- package/dist/workspace/templates.js.map +1 -1
- package/dist/workspace/workspace.d.ts +2 -4
- package/dist/workspace/workspace.d.ts.map +1 -1
- package/dist/workspace/workspace.js +7 -16
- package/dist/workspace/workspace.js.map +1 -1
- package/package.json +1 -1
- package/public/index.html +231 -0
- package/skills/docx/SKILL.md +468 -0
- package/skills/docx/scripts/__init__.py +1 -0
- package/skills/docx/scripts/accept_changes.py +181 -0
- package/skills/docx/scripts/comment.py +347 -0
- package/skills/docx/scripts/helpers/__init__.py +0 -0
- package/skills/docx/scripts/helpers/merge_runs.py +231 -0
- package/skills/docx/scripts/helpers/simplify_redlines.py +240 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/docx/scripts/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/docx/scripts/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/docx/scripts/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/docx/scripts/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/docx/scripts/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/docx/scripts/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/docx/scripts/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/docx/scripts/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/docx/scripts/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/docx/scripts/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/docx/scripts/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/docx/scripts/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/docx/scripts/ooxml/scripts/pack.py +159 -0
- package/skills/docx/scripts/ooxml/scripts/unpack.py +29 -0
- package/skills/docx/scripts/ooxml/scripts/validate.py +106 -0
- package/skills/docx/scripts/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/docx/scripts/ooxml/scripts/validation/base.py +1023 -0
- package/skills/docx/scripts/ooxml/scripts/validation/docx.py +519 -0
- package/skills/docx/scripts/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/docx/scripts/ooxml/scripts/validation/redlining.py +284 -0
- package/skills/docx/scripts/pack.py +166 -0
- package/skills/docx/scripts/templates/comments.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/docx/scripts/templates/people.xml +3 -0
- package/skills/docx/scripts/unpack.py +134 -0
- package/skills/longform-video-generation/SKILL.md +298 -0
- package/skills/longform-video-generation/references/advanced_techniques.md +474 -0
- package/skills/longform-video-generation/references/google_api_guide.md +288 -0
- package/skills/longform-video-generation/scripts/video_generator.py +579 -0
- package/skills/pdf/FORMS.md +305 -0
- package/skills/pdf/REFERENCE.md +612 -0
- package/skills/pdf/SKILL.md +293 -0
- package/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/skills/pdf/scripts/create_validation_image.py +41 -0
- package/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/skills/pdf/scripts/extract_form_structure.py +124 -0
- package/skills/pdf/scripts/fill_fillable_fields.py +116 -0
- package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +136 -0
- package/skills/pptx/SKILL.md +171 -0
- package/skills/pptx/editing.md +205 -0
- package/skills/pptx/pptxgenjs.md +377 -0
- package/skills/pptx/scripts/add_slide.py +225 -0
- package/skills/pptx/scripts/clean.py +309 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/pptx/scripts/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/pptx/scripts/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/pptx/scripts/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/pptx/scripts/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/pptx/scripts/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/pptx/scripts/ooxml/scripts/pack.py +159 -0
- package/skills/pptx/scripts/ooxml/scripts/unpack.py +29 -0
- package/skills/pptx/scripts/ooxml/scripts/validate.py +106 -0
- package/skills/pptx/scripts/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/pptx/scripts/ooxml/scripts/validation/base.py +1023 -0
- package/skills/pptx/scripts/ooxml/scripts/validation/docx.py +519 -0
- package/skills/pptx/scripts/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/pptx/scripts/ooxml/scripts/validation/redlining.py +284 -0
- package/skills/pptx/scripts/pack.py +168 -0
- package/skills/pptx/scripts/thumbnail.py +318 -0
- package/skills/pptx/scripts/unpack.py +86 -0
- package/skills/xlsx/SKILL.md +291 -0
- package/skills/xlsx/recalc.py +247 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/cron/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA2B7C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAmGxE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAgEvE"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoStar Server Executor - Cron Job Normalization
|
|
3
|
+
* Ported from OpenClaw's cron/normalize.ts
|
|
4
|
+
*
|
|
5
|
+
* Normalizes LLM-provided input for job creation and updates.
|
|
6
|
+
* Handles:
|
|
7
|
+
* - Schedule type coercion (atMs → at, kind inference)
|
|
8
|
+
* - Session target inference from payload
|
|
9
|
+
* - Default values (wakeMode, deleteAfterRun for "at" jobs)
|
|
10
|
+
* - Field trimming and validation
|
|
11
|
+
* - Legacy/misspelled field recovery
|
|
12
|
+
*
|
|
13
|
+
* CoStar adaptation: flattened fields instead of nested schedule/payload objects.
|
|
14
|
+
*/
|
|
15
|
+
// ---------- schedule normalization ----------
|
|
16
|
+
function normalizeScheduleType(raw) {
|
|
17
|
+
if (typeof raw !== "string")
|
|
18
|
+
return undefined;
|
|
19
|
+
const trimmed = raw.trim().toLowerCase();
|
|
20
|
+
if (trimmed === "at" || trimmed === "every" || trimmed === "cron")
|
|
21
|
+
return trimmed;
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
function normalizeSessionTarget(raw) {
|
|
25
|
+
if (typeof raw !== "string")
|
|
26
|
+
return undefined;
|
|
27
|
+
const trimmed = raw.trim().toLowerCase();
|
|
28
|
+
if (trimmed === "main" || trimmed === "isolated")
|
|
29
|
+
return trimmed;
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
function normalizeWakeMode(raw) {
|
|
33
|
+
if (typeof raw !== "string")
|
|
34
|
+
return undefined;
|
|
35
|
+
const trimmed = raw.trim().toLowerCase();
|
|
36
|
+
if (trimmed === "now" || trimmed === "next-heartbeat")
|
|
37
|
+
return trimmed;
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
// ---------- job create normalization ----------
|
|
41
|
+
/**
|
|
42
|
+
* Normalize input for creating a cron job.
|
|
43
|
+
* Applies defaults and infers missing fields (OpenClaw: normalizeCronJobCreate).
|
|
44
|
+
*
|
|
45
|
+
* CoStar uses flat fields instead of nested schedule/payload objects, so
|
|
46
|
+
* this normalizer works with the flat schema.
|
|
47
|
+
*/
|
|
48
|
+
export function normalizeCronJobCreate(raw) {
|
|
49
|
+
const next = { ...raw };
|
|
50
|
+
// Normalize schedule_type
|
|
51
|
+
if ("schedule_type" in next) {
|
|
52
|
+
const normalized = normalizeScheduleType(next.schedule_type);
|
|
53
|
+
if (normalized) {
|
|
54
|
+
next.schedule_type = normalized;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
delete next.schedule_type;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Infer schedule_type from fields if missing (OpenClaw: coerceSchedule kind inference)
|
|
61
|
+
if (!next.schedule_type) {
|
|
62
|
+
if (typeof next.schedule_value === "number" && next.schedule_value > 0) {
|
|
63
|
+
// Could be "at" or "every" — check if it looks like a timestamp
|
|
64
|
+
const val = next.schedule_value;
|
|
65
|
+
if (val > 1_000_000_000_000) {
|
|
66
|
+
// Looks like a unix timestamp in ms
|
|
67
|
+
next.schedule_type = "at";
|
|
68
|
+
}
|
|
69
|
+
else if (val > 1_000_000_000 && val < 10_000_000_000) {
|
|
70
|
+
// Looks like a unix timestamp in seconds — convert to ms
|
|
71
|
+
next.schedule_value = val * 1000;
|
|
72
|
+
next.schedule_type = "at";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (!next.schedule_type && typeof next.cron_expression === "string" && next.cron_expression.trim()) {
|
|
76
|
+
next.schedule_type = "cron";
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Normalize session_target
|
|
80
|
+
if ("session_target" in next) {
|
|
81
|
+
const normalized = normalizeSessionTarget(next.session_target);
|
|
82
|
+
if (normalized) {
|
|
83
|
+
next.session_target = normalized;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
delete next.session_target;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Normalize wake_mode
|
|
90
|
+
if ("wake_mode" in next) {
|
|
91
|
+
const normalized = normalizeWakeMode(next.wake_mode);
|
|
92
|
+
if (normalized) {
|
|
93
|
+
next.wake_mode = normalized;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
delete next.wake_mode;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Trim text fields
|
|
100
|
+
if (typeof next.name === "string") {
|
|
101
|
+
next.name = next.name.trim() || undefined;
|
|
102
|
+
}
|
|
103
|
+
if (typeof next.instruction === "string") {
|
|
104
|
+
next.instruction = next.instruction.trim();
|
|
105
|
+
}
|
|
106
|
+
if (typeof next.description === "string") {
|
|
107
|
+
next.description = next.description.trim() || undefined;
|
|
108
|
+
}
|
|
109
|
+
if (typeof next.cron_expression === "string") {
|
|
110
|
+
next.cron_expression = next.cron_expression.trim();
|
|
111
|
+
}
|
|
112
|
+
if (typeof next.timezone === "string") {
|
|
113
|
+
next.timezone = next.timezone.trim() || undefined;
|
|
114
|
+
}
|
|
115
|
+
// --- Apply defaults (OpenClaw: normalizeCronJobCreate applyDefaults) ---
|
|
116
|
+
// Default wakeMode to "now" for better UX (OpenClaw default)
|
|
117
|
+
if (!next.wake_mode) {
|
|
118
|
+
next.wake_mode = "now";
|
|
119
|
+
}
|
|
120
|
+
// Default enabled
|
|
121
|
+
if (typeof next.enabled !== "boolean") {
|
|
122
|
+
next.enabled = true;
|
|
123
|
+
}
|
|
124
|
+
// Infer session_target from schedule type if not set (OpenClaw: sessionTarget inference)
|
|
125
|
+
// In CoStar, instruction-based jobs default to "main" for simple reminders
|
|
126
|
+
if (!next.session_target) {
|
|
127
|
+
next.session_target = "main";
|
|
128
|
+
}
|
|
129
|
+
// Default deleteAfterRun for "at" jobs (OpenClaw: normalize.ts:427-430)
|
|
130
|
+
const scheduleType = next.schedule_type || "cron";
|
|
131
|
+
if (scheduleType === "at" && !("delete_after_run" in next)) {
|
|
132
|
+
next.delete_after_run = true;
|
|
133
|
+
}
|
|
134
|
+
// Default name from instruction (OpenClaw: inferLegacyName)
|
|
135
|
+
if (!next.name && typeof next.instruction === "string" && next.instruction.trim()) {
|
|
136
|
+
next.name = next.instruction.slice(0, 50);
|
|
137
|
+
}
|
|
138
|
+
return next;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Normalize input for updating a cron job.
|
|
142
|
+
* Does NOT apply defaults (only normalizes present fields).
|
|
143
|
+
* (OpenClaw: normalizeCronJobPatch)
|
|
144
|
+
*/
|
|
145
|
+
export function normalizeCronJobPatch(raw) {
|
|
146
|
+
const next = { ...raw };
|
|
147
|
+
// Normalize schedule_type
|
|
148
|
+
if ("schedule_type" in next) {
|
|
149
|
+
const normalized = normalizeScheduleType(next.schedule_type);
|
|
150
|
+
if (normalized) {
|
|
151
|
+
next.schedule_type = normalized;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
delete next.schedule_type;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Normalize session_target
|
|
158
|
+
if ("session_target" in next) {
|
|
159
|
+
const normalized = normalizeSessionTarget(next.session_target);
|
|
160
|
+
if (normalized) {
|
|
161
|
+
next.session_target = normalized;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
delete next.session_target;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Normalize wake_mode
|
|
168
|
+
if ("wake_mode" in next) {
|
|
169
|
+
const normalized = normalizeWakeMode(next.wake_mode);
|
|
170
|
+
if (normalized) {
|
|
171
|
+
next.wake_mode = normalized;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
delete next.wake_mode;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Trim text fields
|
|
178
|
+
if (typeof next.name === "string") {
|
|
179
|
+
const trimmed = next.name.trim();
|
|
180
|
+
next.name = trimmed || undefined;
|
|
181
|
+
}
|
|
182
|
+
if (typeof next.instruction === "string") {
|
|
183
|
+
next.instruction = next.instruction.trim();
|
|
184
|
+
}
|
|
185
|
+
if (typeof next.description === "string") {
|
|
186
|
+
next.description = next.description.trim() || undefined;
|
|
187
|
+
}
|
|
188
|
+
if (typeof next.cron_expression === "string") {
|
|
189
|
+
next.cron_expression = next.cron_expression.trim();
|
|
190
|
+
}
|
|
191
|
+
if (typeof next.timezone === "string") {
|
|
192
|
+
next.timezone = next.timezone.trim() || undefined;
|
|
193
|
+
}
|
|
194
|
+
// Normalize enabled from string (OpenClaw: normalize.ts:326-339)
|
|
195
|
+
if ("enabled" in next) {
|
|
196
|
+
if (typeof next.enabled === "string") {
|
|
197
|
+
const trimmed = next.enabled.trim().toLowerCase();
|
|
198
|
+
if (trimmed === "true")
|
|
199
|
+
next.enabled = true;
|
|
200
|
+
else if (trimmed === "false")
|
|
201
|
+
next.enabled = false;
|
|
202
|
+
else
|
|
203
|
+
delete next.enabled;
|
|
204
|
+
}
|
|
205
|
+
else if (typeof next.enabled !== "boolean") {
|
|
206
|
+
delete next.enabled;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return next;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/cron/normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/cron/scheduler.d.ts
CHANGED
|
@@ -5,10 +5,14 @@
|
|
|
5
5
|
* Uses dynamic setTimeout (not node-cron polling) with:
|
|
6
6
|
* - Anchor-based "every" intervals (prevents drift)
|
|
7
7
|
* - Exponential backoff on errors (30s → 60s → 5m → 15m → 60m)
|
|
8
|
-
* - Per-job timeout with Promise.race (default 10 min)
|
|
8
|
+
* - Per-job timeout with Promise.race (default 10 min, configurable)
|
|
9
9
|
* - Stuck job detection (clear after 2 hours)
|
|
10
10
|
* - Min refire gap (2s for cron same-second loops)
|
|
11
11
|
* - Re-arm timer during long-running jobs (prevents timer death)
|
|
12
|
+
* - Serialized state access via locking (OpenClaw: locked())
|
|
13
|
+
* - Missed job recovery on startup (OpenClaw: runMissedJobs)
|
|
14
|
+
* - Maintenance recompute vs full recompute distinction (OpenClaw: #13992, #17852)
|
|
15
|
+
* - Heartbeat retry loop for wake-now (OpenClaw: runHeartbeatOnce)
|
|
12
16
|
*
|
|
13
17
|
* Two execution paths based on session_target:
|
|
14
18
|
*
|
|
@@ -28,13 +32,14 @@ export declare class CronScheduler {
|
|
|
28
32
|
private config;
|
|
29
33
|
private agent?;
|
|
30
34
|
private heartbeatRunner?;
|
|
35
|
+
private lock;
|
|
31
36
|
private state;
|
|
32
37
|
constructor(config: CoStarConfig, heartbeatRunner?: HeartbeatRunner, agent?: Agent);
|
|
33
38
|
/**
|
|
34
39
|
* Start the cron scheduler.
|
|
35
|
-
* Arms the dynamic timer (OpenClaw: armTimer).
|
|
40
|
+
* Arms the dynamic timer and runs missed jobs (OpenClaw: armTimer + runMissedJobs).
|
|
36
41
|
*/
|
|
37
|
-
start(): void
|
|
42
|
+
start(): Promise<void>;
|
|
38
43
|
/**
|
|
39
44
|
* Stop the cron scheduler.
|
|
40
45
|
* (OpenClaw: stopTimer)
|
|
@@ -61,6 +66,14 @@ export declare class CronScheduler {
|
|
|
61
66
|
* - Always re-arm in finally
|
|
62
67
|
*/
|
|
63
68
|
private onTimer;
|
|
69
|
+
/**
|
|
70
|
+
* Run missed jobs on startup.
|
|
71
|
+
* Detects jobs that were due while the process was down and runs them,
|
|
72
|
+
* skipping one-shot "at" jobs that already ran at least once.
|
|
73
|
+
*
|
|
74
|
+
* Pattern: OpenClaw's runMissedJobs (timer.ts:422-442)
|
|
75
|
+
*/
|
|
76
|
+
private runMissedJobs;
|
|
64
77
|
/**
|
|
65
78
|
* Fetch due jobs from Supabase, compute in-memory states, run them.
|
|
66
79
|
*
|
|
@@ -78,6 +91,13 @@ export declare class CronScheduler {
|
|
|
78
91
|
*/
|
|
79
92
|
private executeJobCore;
|
|
80
93
|
private executeMainJob;
|
|
94
|
+
/**
|
|
95
|
+
* Heartbeat retry loop for wake-now mode.
|
|
96
|
+
* Waits for in-flight heartbeat requests to complete before triggering.
|
|
97
|
+
*
|
|
98
|
+
* Pattern: OpenClaw's runHeartbeatOnce retry loop (timer.ts:477-505)
|
|
99
|
+
*/
|
|
100
|
+
private heartbeatRetryLoop;
|
|
81
101
|
private executeIsolatedJob;
|
|
82
102
|
/**
|
|
83
103
|
* Ensure a job has runtime state and compute nextRunAtMs if missing.
|
|
@@ -90,6 +110,16 @@ export declare class CronScheduler {
|
|
|
90
110
|
* (OpenClaw: jobs.ts:242-261 recomputeJobNextRunAtMs)
|
|
91
111
|
*/
|
|
92
112
|
private recomputeJobNextRun;
|
|
113
|
+
/**
|
|
114
|
+
* Maintenance-only version of recompute that handles disabled jobs
|
|
115
|
+
* and stuck markers, but does NOT recompute nextRunAtMs for enabled jobs
|
|
116
|
+
* with existing values. Used during timer ticks when no due jobs were found
|
|
117
|
+
* to prevent silently advancing past-due nextRunAtMs values without execution.
|
|
118
|
+
*
|
|
119
|
+
* Pattern: OpenClaw's recomputeNextRunsForMaintenance (jobs.ts:287-299)
|
|
120
|
+
* See: #13992, #17852
|
|
121
|
+
*/
|
|
122
|
+
private recomputeNextRunsForMaintenance;
|
|
93
123
|
/**
|
|
94
124
|
* Normalize per-job tick state. Detects stuck jobs and cleans up disabled state.
|
|
95
125
|
* (OpenClaw: jobs.ts:181-216 normalizeJobTickState)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/cron/scheduler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/cron/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA8I/C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,KAAK,CAMX;gBAEU,MAAM,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,KAAK;IAUlF;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;;OAGG;IACH,IAAI,IAAI,IAAI;IAQZ;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA+BhB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAYpB;;;;;;;OAOG;YACW,OAAO;IAiCrB;;;;;;OAMG;YACW,aAAa;IAmE3B;;;;OAIG;YACW,UAAU;IAkIxB;;;OAGG;YACW,kBAAkB;IAsBhC;;;OAGG;YACW,cAAc;YAed,cAAc;IAqC5B;;;;;OAKG;YACW,kBAAkB;YAkClB,kBAAkB;IA2EhC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IAiBvC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA0EtB;;OAEG;YACW,yBAAyB;IA4BvC;;OAEG;YACW,kBAAkB;IA8BhC,SAAS;;;;;;;IAUT;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAIpC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,eAAe,CAAC,EAAE,eAAe,EACjC,KAAK,CAAC,EAAE,KAAK,GACZ,aAAa,CAEf"}
|