@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.
Files changed (244) hide show
  1. package/dist/agent/agent.d.ts +90 -0
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/agent.js +606 -0
  4. package/dist/agent/agent.js.map +1 -1
  5. package/dist/agent/pi-embedded-runner/run.d.ts.map +1 -1
  6. package/dist/agent/pi-embedded-runner/run.js +2 -1
  7. package/dist/agent/pi-embedded-runner/run.js.map +1 -1
  8. package/dist/agent/pi-embedded-runner/system-prompt.d.ts.map +1 -1
  9. package/dist/agent/pi-embedded-runner/system-prompt.js +16 -37
  10. package/dist/agent/pi-embedded-runner/system-prompt.js.map +1 -1
  11. package/dist/agent/pi-embedded-runner/tools.d.ts +4 -1
  12. package/dist/agent/pi-embedded-runner/tools.d.ts.map +1 -1
  13. package/dist/agent/pi-embedded-runner/tools.js +3 -1
  14. package/dist/agent/pi-embedded-runner/tools.js.map +1 -1
  15. package/dist/agent/pi-embedded-runner/types.d.ts +4 -0
  16. package/dist/agent/pi-embedded-runner/types.d.ts.map +1 -1
  17. package/dist/cron/normalize.d.ts +31 -0
  18. package/dist/cron/normalize.d.ts.map +1 -0
  19. package/dist/cron/normalize.js +211 -0
  20. package/dist/cron/normalize.js.map +1 -0
  21. package/dist/cron/scheduler.d.ts +33 -3
  22. package/dist/cron/scheduler.d.ts.map +1 -1
  23. package/dist/cron/scheduler.js +253 -48
  24. package/dist/cron/scheduler.js.map +1 -1
  25. package/dist/heartbeat/runner.d.ts +27 -12
  26. package/dist/heartbeat/runner.d.ts.map +1 -1
  27. package/dist/heartbeat/runner.js +82 -104
  28. package/dist/heartbeat/runner.js.map +1 -1
  29. package/dist/infra/heartbeat-events-filter.d.ts +29 -0
  30. package/dist/infra/heartbeat-events-filter.d.ts.map +1 -0
  31. package/dist/infra/heartbeat-events-filter.js +80 -0
  32. package/dist/infra/heartbeat-events-filter.js.map +1 -0
  33. package/dist/infra/index.d.ts +9 -0
  34. package/dist/infra/index.d.ts.map +1 -0
  35. package/dist/infra/index.js +9 -0
  36. package/dist/infra/index.js.map +1 -0
  37. package/dist/infra/system-events.d.ts +58 -2
  38. package/dist/infra/system-events.d.ts.map +1 -1
  39. package/dist/infra/system-events.js +80 -14
  40. package/dist/infra/system-events.js.map +1 -1
  41. package/dist/server.d.ts.map +1 -1
  42. package/dist/server.js +2 -1
  43. package/dist/server.js.map +1 -1
  44. package/dist/subagent/registry.d.ts +96 -0
  45. package/dist/subagent/registry.d.ts.map +1 -0
  46. package/dist/subagent/registry.js +180 -0
  47. package/dist/subagent/registry.js.map +1 -0
  48. package/dist/tools/complete-turn.d.ts +2 -2
  49. package/dist/tools/complete-turn.js +10 -10
  50. package/dist/tools/complete-turn.js.map +1 -1
  51. package/dist/tools/contacts.d.ts +13 -0
  52. package/dist/tools/contacts.d.ts.map +1 -0
  53. package/dist/tools/contacts.js +80 -0
  54. package/dist/tools/contacts.js.map +1 -0
  55. package/dist/tools/cron.d.ts +17 -2
  56. package/dist/tools/cron.d.ts.map +1 -1
  57. package/dist/tools/cron.js +117 -35
  58. package/dist/tools/cron.js.map +1 -1
  59. package/dist/tools/google-maps.d.ts +6 -6
  60. package/dist/tools/google-maps.d.ts.map +1 -1
  61. package/dist/tools/google-maps.js +207 -262
  62. package/dist/tools/google-maps.js.map +1 -1
  63. package/dist/tools/index.d.ts +17 -7
  64. package/dist/tools/index.d.ts.map +1 -1
  65. package/dist/tools/index.js +40 -9
  66. package/dist/tools/index.js.map +1 -1
  67. package/dist/tools/phone-call.d.ts +11 -0
  68. package/dist/tools/phone-call.d.ts.map +1 -0
  69. package/dist/tools/phone-call.js +151 -0
  70. package/dist/tools/phone-call.js.map +1 -0
  71. package/dist/tools/sessions-spawn.d.ts +33 -0
  72. package/dist/tools/sessions-spawn.d.ts.map +1 -0
  73. package/dist/tools/sessions-spawn.js +164 -0
  74. package/dist/tools/sessions-spawn.js.map +1 -0
  75. package/dist/tools/spotify.d.ts +12 -0
  76. package/dist/tools/spotify.d.ts.map +1 -0
  77. package/dist/tools/spotify.js +251 -0
  78. package/dist/tools/spotify.js.map +1 -0
  79. package/dist/tools/subagents.d.ts +23 -0
  80. package/dist/tools/subagents.d.ts.map +1 -0
  81. package/dist/tools/subagents.js +209 -0
  82. package/dist/tools/subagents.js.map +1 -0
  83. package/dist/tools/whatsapp.d.ts +13 -0
  84. package/dist/tools/whatsapp.d.ts.map +1 -0
  85. package/dist/tools/whatsapp.js +215 -0
  86. package/dist/tools/whatsapp.js.map +1 -0
  87. package/dist/tools/youtube.d.ts +12 -0
  88. package/dist/tools/youtube.d.ts.map +1 -0
  89. package/dist/tools/youtube.js +218 -0
  90. package/dist/tools/youtube.js.map +1 -0
  91. package/dist/utils/asterizk-auth.d.ts +43 -0
  92. package/dist/utils/asterizk-auth.d.ts.map +1 -0
  93. package/dist/utils/asterizk-auth.js +125 -0
  94. package/dist/utils/asterizk-auth.js.map +1 -0
  95. package/dist/web-server.d.ts.map +1 -1
  96. package/dist/web-server.js +132 -0
  97. package/dist/web-server.js.map +1 -1
  98. package/dist/workspace/index.d.ts +3 -4
  99. package/dist/workspace/index.d.ts.map +1 -1
  100. package/dist/workspace/index.js +3 -4
  101. package/dist/workspace/index.js.map +1 -1
  102. package/dist/workspace/templates.d.ts +8 -7
  103. package/dist/workspace/templates.d.ts.map +1 -1
  104. package/dist/workspace/templates.js +18 -127
  105. package/dist/workspace/templates.js.map +1 -1
  106. package/dist/workspace/workspace.d.ts +2 -4
  107. package/dist/workspace/workspace.d.ts.map +1 -1
  108. package/dist/workspace/workspace.js +7 -16
  109. package/dist/workspace/workspace.js.map +1 -1
  110. package/package.json +1 -1
  111. package/public/index.html +231 -0
  112. package/skills/docx/SKILL.md +468 -0
  113. package/skills/docx/scripts/__init__.py +1 -0
  114. package/skills/docx/scripts/accept_changes.py +181 -0
  115. package/skills/docx/scripts/comment.py +347 -0
  116. package/skills/docx/scripts/helpers/__init__.py +0 -0
  117. package/skills/docx/scripts/helpers/merge_runs.py +231 -0
  118. package/skills/docx/scripts/helpers/simplify_redlines.py +240 -0
  119. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  120. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  121. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  122. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  123. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  124. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  125. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  126. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  127. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  128. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  129. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  130. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  131. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  132. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  133. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  134. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  135. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  136. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  137. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  138. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  139. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  140. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  141. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  142. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  143. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  144. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  145. package/skills/docx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  146. package/skills/docx/scripts/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  147. package/skills/docx/scripts/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  148. package/skills/docx/scripts/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  149. package/skills/docx/scripts/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  150. package/skills/docx/scripts/ooxml/schemas/mce/mc.xsd +75 -0
  151. package/skills/docx/scripts/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  152. package/skills/docx/scripts/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  153. package/skills/docx/scripts/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  154. package/skills/docx/scripts/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  155. package/skills/docx/scripts/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  156. package/skills/docx/scripts/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  157. package/skills/docx/scripts/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  158. package/skills/docx/scripts/ooxml/scripts/pack.py +159 -0
  159. package/skills/docx/scripts/ooxml/scripts/unpack.py +29 -0
  160. package/skills/docx/scripts/ooxml/scripts/validate.py +106 -0
  161. package/skills/docx/scripts/ooxml/scripts/validation/__init__.py +15 -0
  162. package/skills/docx/scripts/ooxml/scripts/validation/base.py +1023 -0
  163. package/skills/docx/scripts/ooxml/scripts/validation/docx.py +519 -0
  164. package/skills/docx/scripts/ooxml/scripts/validation/pptx.py +315 -0
  165. package/skills/docx/scripts/ooxml/scripts/validation/redlining.py +284 -0
  166. package/skills/docx/scripts/pack.py +166 -0
  167. package/skills/docx/scripts/templates/comments.xml +3 -0
  168. package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  169. package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  170. package/skills/docx/scripts/templates/commentsIds.xml +3 -0
  171. package/skills/docx/scripts/templates/people.xml +3 -0
  172. package/skills/docx/scripts/unpack.py +134 -0
  173. package/skills/longform-video-generation/SKILL.md +298 -0
  174. package/skills/longform-video-generation/references/advanced_techniques.md +474 -0
  175. package/skills/longform-video-generation/references/google_api_guide.md +288 -0
  176. package/skills/longform-video-generation/scripts/video_generator.py +579 -0
  177. package/skills/pdf/FORMS.md +305 -0
  178. package/skills/pdf/REFERENCE.md +612 -0
  179. package/skills/pdf/SKILL.md +293 -0
  180. package/skills/pdf/scripts/check_bounding_boxes.py +70 -0
  181. package/skills/pdf/scripts/check_fillable_fields.py +12 -0
  182. package/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  183. package/skills/pdf/scripts/create_validation_image.py +41 -0
  184. package/skills/pdf/scripts/extract_form_field_info.py +152 -0
  185. package/skills/pdf/scripts/extract_form_structure.py +124 -0
  186. package/skills/pdf/scripts/fill_fillable_fields.py +116 -0
  187. package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +136 -0
  188. package/skills/pptx/SKILL.md +171 -0
  189. package/skills/pptx/editing.md +205 -0
  190. package/skills/pptx/pptxgenjs.md +377 -0
  191. package/skills/pptx/scripts/add_slide.py +225 -0
  192. package/skills/pptx/scripts/clean.py +309 -0
  193. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  194. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  195. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  196. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  197. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  198. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  199. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  200. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  201. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  202. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  203. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  204. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  205. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  206. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  207. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  208. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  209. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  210. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  211. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  212. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  213. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  214. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  215. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  216. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  217. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  218. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  219. package/skills/pptx/scripts/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  220. package/skills/pptx/scripts/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  221. package/skills/pptx/scripts/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  222. package/skills/pptx/scripts/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  223. package/skills/pptx/scripts/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  224. package/skills/pptx/scripts/ooxml/schemas/mce/mc.xsd +75 -0
  225. package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  226. package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  227. package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  228. package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  229. package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  230. package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  231. package/skills/pptx/scripts/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  232. package/skills/pptx/scripts/ooxml/scripts/pack.py +159 -0
  233. package/skills/pptx/scripts/ooxml/scripts/unpack.py +29 -0
  234. package/skills/pptx/scripts/ooxml/scripts/validate.py +106 -0
  235. package/skills/pptx/scripts/ooxml/scripts/validation/__init__.py +15 -0
  236. package/skills/pptx/scripts/ooxml/scripts/validation/base.py +1023 -0
  237. package/skills/pptx/scripts/ooxml/scripts/validation/docx.py +519 -0
  238. package/skills/pptx/scripts/ooxml/scripts/validation/pptx.py +315 -0
  239. package/skills/pptx/scripts/ooxml/scripts/validation/redlining.py +284 -0
  240. package/skills/pptx/scripts/pack.py +168 -0
  241. package/skills/pptx/scripts/thumbnail.py +318 -0
  242. package/skills/pptx/scripts/unpack.py +86 -0
  243. package/skills/xlsx/SKILL.md +291 -0
  244. package/skills/xlsx/recalc.py +247 -0
@@ -10,11 +10,11 @@
10
10
  */
11
11
  import { Type } from "@sinclair/typebox";
12
12
  import { jsonResult } from "../utils/tool-helpers.js";
13
- /** Stores the most recent complete_turn call data */
13
+ /** Stores the most recent complete_task call data */
14
14
  let _lastTurnSummary = null;
15
15
  /**
16
16
  * Get the last turn summary (called by heartbeat runner after the turn).
17
- * Returns null if the LLM never called complete_turn.
17
+ * Returns null if the LLM never called complete_task.
18
18
  */
19
19
  export function getLastTurnSummary() {
20
20
  return _lastTurnSummary;
@@ -28,7 +28,7 @@ export function clearTurnSummary() {
28
28
  // ═══════════════════════════════════════════════════
29
29
  // TOOL DEFINITION
30
30
  // ═══════════════════════════════════════════════════
31
- const CompleteTurnSchema = Type.Object({
31
+ const CompleteTaskSchema = Type.Object({
32
32
  title: Type.String({
33
33
  description: "Short title (5-10 words) describing what you did. Example: 'Email check and Bitcoin price monitoring'",
34
34
  }),
@@ -36,19 +36,19 @@ const CompleteTurnSchema = Type.Object({
36
36
  description: "Thorough account of what happened — write naturally, like telling a colleague what happened while they were away. This is the only record of your work.",
37
37
  }),
38
38
  });
39
- export function createCompleteTurnTool() {
39
+ export function createCompleteTaskTool() {
40
40
  return {
41
- label: "Complete Turn",
42
- name: "complete_turn",
43
- description: "Call this as your LAST tool call in every turn to log what you did. Provide a short title and a thorough summary. This is the only record of your work — stored for future recall by both executors. Write naturally, no technical terms.",
44
- parameters: CompleteTurnSchema,
41
+ label: "Complete Task",
42
+ name: "complete_task",
43
+ description: "Call this as your LAST tool call in every turn to log what you did. Provide a short title and a thorough summary. This is the only record of your work — stored for future recall. Write naturally, no technical terms.",
44
+ parameters: CompleteTaskSchema,
45
45
  execute: async (_toolCallId, params) => {
46
46
  const title = params.title?.trim() || "Untitled turn";
47
47
  const summary = params.summary?.trim() || "No summary provided.";
48
48
  // Store for the runner to pick up
49
49
  _lastTurnSummary = { title, summary };
50
- console.log(`[COMPLETE_TURN] Title: ${title}`);
51
- console.log(`[COMPLETE_TURN] Summary: ${summary.slice(0, 200)}`);
50
+ console.log(`[COMPLETE_TASK] Title: ${title}`);
51
+ console.log(`[COMPLETE_TASK] Summary: ${summary.slice(0, 200)}`);
52
52
  return jsonResult({
53
53
  status: "logged",
54
54
  title,
@@ -1 +1 @@
1
- {"version":3,"file":"complete-turn.js","sourceRoot":"","sources":["../../src/tools/complete-turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAWtD,qDAAqD;AACrD,IAAI,gBAAgB,GAAuB,IAAI,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED,sDAAsD;AACtD,kBAAkB;AAClB,sDAAsD;AAEtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;QACjB,WAAW,EACT,uGAAuG;KAC1G,CAAC;IACF,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;QACnB,WAAW,EACT,yJAAyJ;KAC5J,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,2OAA2O;QAC7O,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,MAA+B,EAAE,EAAE;YACtE,MAAM,KAAK,GAAI,MAAM,CAAC,KAAgB,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC;YAClE,MAAM,OAAO,GAAI,MAAM,CAAC,OAAkB,EAAE,IAAI,EAAE,IAAI,sBAAsB,CAAC;YAE7E,kCAAkC;YAClC,gBAAgB,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAEtC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAEjE,OAAO,UAAU,CAAC;gBAChB,MAAM,EAAE,QAAQ;gBAChB,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO;aACxE,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"complete-turn.js","sourceRoot":"","sources":["../../src/tools/complete-turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAWtD,qDAAqD;AACrD,IAAI,gBAAgB,GAAuB,IAAI,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED,sDAAsD;AACtD,kBAAkB;AAClB,sDAAsD;AAEtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;QACjB,WAAW,EACT,uGAAuG;KAC1G,CAAC;IACF,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;QACnB,WAAW,EACT,yJAAyJ;KAC5J,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,yNAAyN;QAC3N,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,MAA+B,EAAE,EAAE;YACtE,MAAM,KAAK,GAAI,MAAM,CAAC,KAAgB,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC;YAClE,MAAM,OAAO,GAAI,MAAM,CAAC,OAAkB,EAAE,IAAI,EAAE,IAAI,sBAAsB,CAAC;YAE7E,kCAAkC;YAClC,gBAAgB,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAEtC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAEjE,OAAO,UAAU,CAAC;gBAChB,MAAM,EAAE,QAAQ;gBAChB,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO;aACxE,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CoStar Server Executor - Contacts Search Tool
3
+ *
4
+ * Search user's contacts via Asterizk API.
5
+ * Endpoint: POST /samantha/api/v1/contacts/search/{userEmail}
6
+ *
7
+ * Returns contacts with name, email, phone, WhatsApp JID.
8
+ * Use this tool BEFORE making phone calls or sending WhatsApp messages
9
+ * to get the correct phone number or JID.
10
+ */
11
+ import type { AnyAgentTool } from "../types/tool.js";
12
+ export declare function createContactsSearchTool(): AnyAgentTool;
13
+ //# sourceMappingURL=contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA6BrD,wBAAgB,wBAAwB,IAAI,YAAY,CA4DvD"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * CoStar Server Executor - Contacts Search Tool
3
+ *
4
+ * Search user's contacts via Asterizk API.
5
+ * Endpoint: POST /samantha/api/v1/contacts/search/{userEmail}
6
+ *
7
+ * Returns contacts with name, email, phone, WhatsApp JID.
8
+ * Use this tool BEFORE making phone calls or sending WhatsApp messages
9
+ * to get the correct phone number or JID.
10
+ */
11
+ import { Type } from "@sinclair/typebox";
12
+ import { jsonResult, readStringParam } from "../utils/tool-helpers.js";
13
+ import { getUserEmail, asterizkFetch, handleAsterizkApiError } from "../utils/asterizk-auth.js";
14
+ const ContactsSearchSchema = Type.Object({
15
+ q: Type.Optional(Type.String({ description: "General search query (searches across name, email, phone)." })),
16
+ name: Type.Optional(Type.String({ description: "Filter by contact name." })),
17
+ email: Type.Optional(Type.String({ description: "Filter by email address." })),
18
+ phone: Type.Optional(Type.String({ description: "Filter by phone number." })),
19
+ contact_type: Type.Optional(Type.Union([
20
+ Type.Literal("email"),
21
+ Type.Literal("whatsapp"),
22
+ Type.Literal("phonebook"),
23
+ ], { description: "Filter by contact type. Optional." })),
24
+ });
25
+ export function createContactsSearchTool() {
26
+ return {
27
+ name: "contacts_search",
28
+ label: "Search Contacts",
29
+ description: "Search the user's contacts by name, email, phone number, or general query. Returns contact details including WhatsApp JID and phone numbers. Always search contacts before making calls or sending WhatsApp messages to get the correct number.",
30
+ parameters: ContactsSearchSchema,
31
+ execute: async (_toolCallId, params) => {
32
+ const q = readStringParam(params, "q");
33
+ const name = readStringParam(params, "name");
34
+ const email = readStringParam(params, "email");
35
+ const phone = readStringParam(params, "phone");
36
+ const contactType = readStringParam(params, "contact_type");
37
+ try {
38
+ const userEmail = getUserEmail();
39
+ console.log(`[CONTACTS] Searching contacts for ${userEmail} (q: "${q || name || email || phone}")`);
40
+ const body = {};
41
+ if (q)
42
+ body.q = q;
43
+ if (name)
44
+ body.name = name;
45
+ if (email)
46
+ body.email = email;
47
+ if (phone)
48
+ body.phone = phone;
49
+ if (contactType)
50
+ body.contact_type = contactType;
51
+ const response = await asterizkFetch(`/samantha/api/v1/contacts/search/${encodeURIComponent(userEmail)}`, { body });
52
+ if (!response.ok) {
53
+ const errText = await response.text();
54
+ throw new Error(`Contacts search failed (${response.status}): ${errText}`);
55
+ }
56
+ const data = await response.json();
57
+ // Flatten grouped contacts for easier consumption
58
+ const contacts = Array.isArray(data) ? data : (data.contacts || data.results || []);
59
+ const flattened = contacts.map((c) => ({
60
+ name: c.name,
61
+ email: c.email || null,
62
+ phone: c.phone_number || c.phone || null,
63
+ whatsapp_jid: c.whatsapp_jid || null,
64
+ contact_type: c.contact_type || null,
65
+ }));
66
+ console.log(`[CONTACTS] Found ${flattened.length} contacts`);
67
+ return jsonResult({
68
+ query: q || name || email || phone || "(all)",
69
+ count: flattened.length,
70
+ contacts: flattened,
71
+ });
72
+ }
73
+ catch (error) {
74
+ console.error(`[CONTACTS] Error:`, error);
75
+ return jsonResult(handleAsterizkApiError(error, "contacts_search"));
76
+ }
77
+ },
78
+ };
79
+ }
80
+ //# sourceMappingURL=contacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,22 @@
1
1
  /**
2
2
  * CoStar Server Executor - Cron Tool
3
- * Cloned from OpenClaw's agents/tools/cron-tool.ts
4
- * Adapted for Supabase-backed storage instead of gateway RPC
3
+ * Ported from OpenClaw's agents/tools/cron-tool.ts
4
+ *
5
+ * Differences from OpenClaw:
6
+ * - Uses Supabase-backed storage instead of gateway RPC
7
+ * - Flat schema (snake_case fields) instead of nested job/payload/schedule objects
8
+ * - No delivery system (CoStar uses agent.injectIsolatedResult instead)
9
+ * - No agentId/sessionKey per job (CoStar uses user_id with single agent)
10
+ * - No contextMessages (no gateway chat.history endpoint)
11
+ *
12
+ * Matched with OpenClaw:
13
+ * - Same actions: status, list, add, update, remove, run, runs, wake
14
+ * - Same schedule types: at, every, cron
15
+ * - Same session targets: main, isolated
16
+ * - Same wake modes: now, next-heartbeat
17
+ * - Same normalization (schedule coercion, field inference, defaults)
18
+ * - Same runMode (due/force) for manual triggers
19
+ * - Flat-params recovery for non-frontier models
5
20
  */
6
21
  import type { AnyAgentTool } from "../types/tool.js";
7
22
  export type CronToolDeps = {
@@ -1 +1 @@
1
- {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/tools/cron.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA8CrD,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACxH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACjF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD,CAAC;AAIF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAiQ/D"}
1
+ {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/tools/cron.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAkDrD,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACxH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACjF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD,CAAC;AA2BF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAgT/D"}
@@ -1,11 +1,27 @@
1
1
  /**
2
2
  * CoStar Server Executor - Cron Tool
3
- * Cloned from OpenClaw's agents/tools/cron-tool.ts
4
- * Adapted for Supabase-backed storage instead of gateway RPC
3
+ * Ported from OpenClaw's agents/tools/cron-tool.ts
4
+ *
5
+ * Differences from OpenClaw:
6
+ * - Uses Supabase-backed storage instead of gateway RPC
7
+ * - Flat schema (snake_case fields) instead of nested job/payload/schedule objects
8
+ * - No delivery system (CoStar uses agent.injectIsolatedResult instead)
9
+ * - No agentId/sessionKey per job (CoStar uses user_id with single agent)
10
+ * - No contextMessages (no gateway chat.history endpoint)
11
+ *
12
+ * Matched with OpenClaw:
13
+ * - Same actions: status, list, add, update, remove, run, runs, wake
14
+ * - Same schedule types: at, every, cron
15
+ * - Same session targets: main, isolated
16
+ * - Same wake modes: now, next-heartbeat
17
+ * - Same normalization (schedule coercion, field inference, defaults)
18
+ * - Same runMode (due/force) for manual triggers
19
+ * - Flat-params recovery for non-frontier models
5
20
  */
6
21
  import { Type } from "@sinclair/typebox";
7
22
  import { jsonResult, readStringParam } from "../utils/tool-helpers.js";
8
- import { getActiveCronJobs, getAllCronJobs, createCronJob, updateCronJob, deleteCronJob, getCronJobHistoryByJobId, runCronJobNow, } from "../supabase/cron-jobs.js";
23
+ import { normalizeCronJobCreate, normalizeCronJobPatch } from "../cron/normalize.js";
24
+ import { getActiveCronJobs, getAllCronJobs, createCronJob, updateCronJob, deleteCronJob, getCronJobById, getCronJobHistoryByJobId, runCronJobNow, } from "../supabase/cron-jobs.js";
9
25
  // ---------- constants (from OpenClaw cron-tool.ts) ----------
10
26
  const CRON_ACTIONS = ["status", "list", "add", "update", "remove", "run", "runs", "wake"];
11
27
  // ---------- schema (flattened, runtime validates per-action) ----------
@@ -21,19 +37,42 @@ const CronToolSchema = Type.Object({
21
37
  schedule_type: Type.Optional(Type.String({ description: "Schedule type: at, every, cron (default: cron)" })),
22
38
  schedule_value: Type.Optional(Type.Number({ description: "For 'every' type: interval in ms. For 'at' type: unix timestamp ms" })),
23
39
  timezone: Type.Optional(Type.String({ description: "Timezone for cron expression (e.g. 'America/New_York')" })),
24
- session_target: Type.Optional(Type.String({ description: "Session target: main or isolated (default: main)" })),
25
- wake_mode: Type.Optional(Type.String({ description: "Wake mode: now or next-heartbeat (default: next-heartbeat)" })),
40
+ session_target: Type.Optional(Type.String({ description: "Session target: main (simple relay via heartbeat, default) or isolated (full agent turn in separate session)" })),
41
+ wake_mode: Type.Optional(Type.String({ description: "Wake mode: now or next-heartbeat (default: now)" })),
26
42
  enabled: Type.Optional(Type.Boolean({ description: "Whether the job is enabled (default: true)" })),
27
- delete_after_run: Type.Optional(Type.Boolean({ description: "If true, delete one-shot 'at' jobs after successful execution (default: false)" })),
43
+ delete_after_run: Type.Optional(Type.Boolean({ description: "If true, delete one-shot 'at' jobs after successful execution (default: true for 'at' jobs)" })),
28
44
  // update / remove / run / runs
29
45
  jobId: Type.Optional(Type.String({ description: "Job ID for update/remove/run/runs actions" })),
30
46
  id: Type.Optional(Type.String({ description: "Alias for jobId (backward compat)" })),
31
47
  // update patch fields
32
48
  patch: Type.Optional(Type.Object({}, { additionalProperties: true, description: "Patch object for update action" })),
49
+ // run
50
+ runMode: Type.Optional(Type.String({ description: "Run mode: 'force' (default) runs immediately, 'due' only runs if actually due" })),
33
51
  // wake
34
52
  text: Type.Optional(Type.String({ description: "Wake event text (for wake action)" })),
35
53
  mode: Type.Optional(Type.String({ description: "Wake mode: now or next-heartbeat (for wake action)" })),
36
54
  });
55
+ // ---------- helpers ----------
56
+ /**
57
+ * Job field keys that non-frontier models might flatten to top-level params.
58
+ * (OpenClaw: cron-tool.ts:291-309 JOB_KEYS)
59
+ *
60
+ * CoStar uses snake_case fields vs OpenClaw's camelCase, but the concept is the same:
61
+ * detect when the LLM puts job properties alongside `action` instead of as separate params.
62
+ */
63
+ const JOB_FIELD_KEYS = new Set([
64
+ "name",
65
+ "description",
66
+ "cron_expression",
67
+ "instruction",
68
+ "schedule_type",
69
+ "schedule_value",
70
+ "timezone",
71
+ "session_target",
72
+ "wake_mode",
73
+ "enabled",
74
+ "delete_after_run",
75
+ ]);
37
76
  // ---------- tool factory ----------
38
77
  export function createCronTool(deps) {
39
78
  return {
@@ -44,26 +83,36 @@ export function createCronTool(deps) {
44
83
  ACTIONS:
45
84
  - status: Check cron scheduler status
46
85
  - list: List jobs (use includeDisabled:true to include disabled/paused)
47
- - add: Create job (requires name, instruction + schedule params)
86
+ - add: Create job (requires instruction + schedule params)
48
87
  - update: Modify job (requires jobId + patch object with fields to change)
49
88
  - remove: Delete job (requires jobId)
50
- - run: Trigger job immediately (requires jobId)
89
+ - run: Trigger job immediately (requires jobId, optional runMode: "force"|"due")
51
90
  - runs: Get job run history (requires jobId)
52
91
  - wake: Send wake event to trigger heartbeat (requires text, optional mode)
53
92
 
54
93
  SCHEDULE TYPES (schedule_type):
55
- - "at": One-shot at specific time. Use for reminders. schedule_value = unix timestamp ms. Use delete_after_run=true.
94
+ - "at": One-shot at specific time. Use for reminders. schedule_value = unix timestamp ms. Automatically uses delete_after_run=true.
56
95
  - "cron": Standard cron expression (default). cron_expression examples: "0 9 * * *" (daily 9am), "0 9 * * 1-5" (weekdays)
57
96
  - "every": Recurring interval. schedule_value = interval in ms (e.g. 3600000 = 1 hour)
58
97
 
98
+ ISO timestamps without an explicit timezone are treated as UTC.
99
+
100
+ SESSION TARGET (session_target):
101
+ - "main" (default): Instruction enqueued as system event → heartbeat processes it in the main conversation. Best for reminders, simple notifications, quick checks. The instruction is relayed as-is.
102
+ - "isolated": Runs a full agent turn in a separate session with all tools available. Best for heavy tasks (research, multi-step work, long-running analysis). Result is announced back to main session.
103
+
59
104
  CRITICAL RULES:
60
- - For reminders: write the instruction as it should read when it fires (e.g. "Remind the user about their lunch meeting"). Include context — the execution session has no prior conversation history.
61
- - One-shot reminders schedule_type="at" with delete_after_run=true
105
+ - For reminders: use session_target="main". Write the instruction as it should read when it fires (e.g. "Remind the user about their lunch meeting"). Include context — there is no prior conversation.
106
+ - For complex tasks: use session_target="isolated". The agent gets a dedicated session with full tool access.
107
+ - One-shot reminders → schedule_type="at" with delete_after_run=true (default for "at" jobs)
108
+ - Default: prefer main session unless the user explicitly wants isolated execution for complex tasks.
62
109
  - The user's client app may also create cron jobs — they appear in the same jobs list.
63
110
 
64
- WAKE MODES (for wake action):
65
- - "next-heartbeat" (default): Enqueue text, process on next heartbeat
66
- - "now": Enqueue text and trigger heartbeat immediately`,
111
+ WAKE MODES (wake_mode for add, or mode for wake action):
112
+ - "now" (default for new jobs): Enqueue and trigger heartbeat immediately
113
+ - "next-heartbeat": Enqueue, process on next heartbeat interval
114
+
115
+ Use jobId as the canonical identifier; id is accepted for compatibility.`,
67
116
  parameters: CronToolSchema,
68
117
  execute: async (_toolCallId, params) => {
69
118
  const action = readStringParam(params, "action", { required: true });
@@ -113,32 +162,34 @@ WAKE MODES (for wake action):
113
162
  }
114
163
  // ── add ──
115
164
  case "add": {
116
- const name = readStringParam(params, "name");
117
- const cronExpression = readStringParam(params, "cron_expression");
118
- const instruction = readStringParam(params, "instruction");
165
+ // Normalize input (OpenClaw: normalizeCronJobCreate)
166
+ // Handles schedule coercion, field trimming, defaults, type inference
167
+ const normalized = normalizeCronJobCreate(params);
168
+ const instruction = readStringParam(normalized, "instruction");
119
169
  if (!instruction) {
120
170
  throw new Error("instruction is required for add action");
121
171
  }
122
- const scheduleType = readStringParam(params, "schedule_type") || "cron";
172
+ const scheduleType = normalized.schedule_type || "cron";
173
+ const cronExpression = readStringParam(normalized, "cron_expression");
123
174
  // Validate schedule based on type
124
175
  if (scheduleType === "cron" && !cronExpression) {
125
176
  throw new Error("cron_expression is required for cron schedule type");
126
177
  }
127
- if ((scheduleType === "every" || scheduleType === "at") && !params.schedule_value) {
178
+ if ((scheduleType === "every" || scheduleType === "at") && !normalized.schedule_value) {
128
179
  throw new Error("schedule_value is required for every/at schedule types");
129
180
  }
130
181
  const job = await createCronJob(deps.userId, {
131
- name: name || instruction.slice(0, 50),
132
- description: readStringParam(params, "description"),
182
+ name: (readStringParam(normalized, "name") || instruction.slice(0, 50)),
183
+ description: readStringParam(normalized, "description"),
133
184
  cron_expression: cronExpression || "",
134
185
  instruction,
135
186
  schedule_type: scheduleType,
136
- schedule_value: typeof params.schedule_value === "number" ? params.schedule_value : undefined,
137
- timezone: readStringParam(params, "timezone"),
138
- session_target: (readStringParam(params, "session_target") || "main"),
139
- wake_mode: (readStringParam(params, "wake_mode") || "next-heartbeat"),
140
- enabled: params.enabled !== false,
141
- delete_after_run: params.delete_after_run === true,
187
+ schedule_value: typeof normalized.schedule_value === "number" ? normalized.schedule_value : undefined,
188
+ timezone: readStringParam(normalized, "timezone"),
189
+ session_target: (normalized.session_target || "main"),
190
+ wake_mode: (normalized.wake_mode || "now"),
191
+ enabled: normalized.enabled !== false,
192
+ delete_after_run: normalized.delete_after_run === true,
142
193
  });
143
194
  return jsonResult({
144
195
  ok: true,
@@ -162,16 +213,17 @@ WAKE MODES (for wake action):
162
213
  if (!jobId) {
163
214
  throw new Error("jobId is required for update action (id accepted for compat)");
164
215
  }
165
- const patch = params.patch || {};
166
- // Also accept top-level fields as patch (OpenClaw compat)
167
- const topLevelPatch = { ...patch };
168
- for (const key of ["name", "description", "cron_expression", "instruction", "schedule_type",
169
- "schedule_value", "timezone", "session_target", "wake_mode", "enabled", "delete_after_run"]) {
170
- if (params[key] !== undefined && !(key in topLevelPatch)) {
171
- topLevelPatch[key] = params[key];
216
+ const rawPatch = params.patch || {};
217
+ // Also accept top-level fields as patch (OpenClaw compat + flat-params recovery)
218
+ const mergedPatch = { ...rawPatch };
219
+ for (const key of JOB_FIELD_KEYS) {
220
+ if (params[key] !== undefined && !(key in mergedPatch)) {
221
+ mergedPatch[key] = params[key];
172
222
  }
173
223
  }
174
- const updated = await updateCronJob(jobId, topLevelPatch);
224
+ // Normalize patch (OpenClaw: normalizeCronJobPatch)
225
+ const normalizedPatch = normalizeCronJobPatch(mergedPatch);
226
+ const updated = await updateCronJob(jobId, normalizedPatch);
175
227
  return jsonResult({
176
228
  ok: true,
177
229
  action: "updated",
@@ -197,6 +249,35 @@ WAKE MODES (for wake action):
197
249
  if (!jobId) {
198
250
  throw new Error("jobId is required for run action (id accepted for compat)");
199
251
  }
252
+ // OpenClaw: runMode "due" only runs if actually due, "force" (default) runs immediately
253
+ const runMode = params.runMode === "due" || params.runMode === "force"
254
+ ? params.runMode
255
+ : "force";
256
+ if (runMode === "due") {
257
+ // Check if job is actually due before triggering
258
+ const job = await getCronJobById(jobId);
259
+ if (!job) {
260
+ throw new Error(`Cron job not found: ${jobId}`);
261
+ }
262
+ if (job.enabled === false) {
263
+ return jsonResult({
264
+ ok: true,
265
+ ran: false,
266
+ reason: "disabled",
267
+ jobId,
268
+ });
269
+ }
270
+ const nextRunAt = job.next_run_at ? new Date(job.next_run_at).getTime() : null;
271
+ if (nextRunAt && nextRunAt > Date.now()) {
272
+ return jsonResult({
273
+ ok: true,
274
+ ran: false,
275
+ reason: "not-due",
276
+ jobId,
277
+ nextRunAt: job.next_run_at,
278
+ });
279
+ }
280
+ }
200
281
  // Mark job as due now so the scheduler picks it up
201
282
  await runCronJobNow(jobId);
202
283
  // Also trigger directly if handler available
@@ -210,6 +291,7 @@ WAKE MODES (for wake action):
210
291
  }
211
292
  return jsonResult({
212
293
  ok: true,
294
+ ran: true,
213
295
  action: "triggered",
214
296
  jobId,
215
297
  message: "Job has been triggered for immediate execution",
@@ -1 +1 @@
1
- {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/tools/cron.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/tools/cron.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * CoStar Server Executor - Google Maps Tools
3
- * Based on ProjectX's GoogleMapsService
2
+ * CoStar Server Executor - Google Maps Tool
4
3
  *
5
- * Provides: google_maps_search, google_maps_directions, geocode
4
+ * Search places, get directions, geocode addresses using Google Maps APIs.
5
+ * Uses: Places API, Directions API, Geocoding API.
6
+ *
7
+ * Requires: GOOGLE_MAPS_API_KEY env var.
6
8
  */
7
9
  import type { AnyAgentTool } from "../types/tool.js";
8
- export declare function createGoogleMapsSearchTool(): AnyAgentTool;
9
- export declare function createGoogleMapsDirectionsTool(): AnyAgentTool;
10
- export declare function createGeocodeTool(): AnyAgentTool;
10
+ export declare function createGoogleMapsTool(): AnyAgentTool;
11
11
  //# sourceMappingURL=google-maps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"google-maps.d.ts","sourceRoot":"","sources":["../../src/tools/google-maps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA4BrD,wBAAgB,0BAA0B,IAAI,YAAY,CAiFzD;AAED,wBAAgB,8BAA8B,IAAI,YAAY,CAkH7D;AAED,wBAAgB,iBAAiB,IAAI,YAAY,CA+FhD"}
1
+ {"version":3,"file":"google-maps.d.ts","sourceRoot":"","sources":["../../src/tools/google-maps.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA0FrD,wBAAgB,oBAAoB,IAAI,YAAY,CA0NnD"}