signalwire-agents 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/CLAUDE.md +112 -0
  2. package/README.md +417 -0
  3. package/dist/AgentBase.d.ts +481 -0
  4. package/dist/AgentBase.js +1155 -0
  5. package/dist/AgentBase.js.map +1 -0
  6. package/dist/AgentServer.d.ts +60 -0
  7. package/dist/AgentServer.js +128 -0
  8. package/dist/AgentServer.js.map +1 -0
  9. package/dist/AuthHandler.d.ts +56 -0
  10. package/dist/AuthHandler.js +119 -0
  11. package/dist/AuthHandler.js.map +1 -0
  12. package/dist/ConfigLoader.d.ts +68 -0
  13. package/dist/ConfigLoader.js +150 -0
  14. package/dist/ConfigLoader.js.map +1 -0
  15. package/dist/ContextBuilder.d.ts +431 -0
  16. package/dist/ContextBuilder.js +751 -0
  17. package/dist/ContextBuilder.js.map +1 -0
  18. package/dist/DataMap.d.ts +179 -0
  19. package/dist/DataMap.js +321 -0
  20. package/dist/DataMap.js.map +1 -0
  21. package/dist/Logger.d.ts +91 -0
  22. package/dist/Logger.js +191 -0
  23. package/dist/Logger.js.map +1 -0
  24. package/dist/PomBuilder.d.ts +144 -0
  25. package/dist/PomBuilder.js +249 -0
  26. package/dist/PomBuilder.js.map +1 -0
  27. package/dist/PromptManager.d.ts +85 -0
  28. package/dist/PromptManager.js +108 -0
  29. package/dist/PromptManager.js.map +1 -0
  30. package/dist/SchemaUtils.d.ts +42 -0
  31. package/dist/SchemaUtils.js +148 -0
  32. package/dist/SchemaUtils.js.map +1 -0
  33. package/dist/ServerlessAdapter.d.ts +100 -0
  34. package/dist/ServerlessAdapter.js +166 -0
  35. package/dist/ServerlessAdapter.js.map +1 -0
  36. package/dist/SessionManager.d.ts +86 -0
  37. package/dist/SessionManager.js +155 -0
  38. package/dist/SessionManager.js.map +1 -0
  39. package/dist/SslConfig.d.ts +77 -0
  40. package/dist/SslConfig.js +100 -0
  41. package/dist/SslConfig.js.map +1 -0
  42. package/dist/SwaigFunction.d.ts +88 -0
  43. package/dist/SwaigFunction.js +125 -0
  44. package/dist/SwaigFunction.js.map +1 -0
  45. package/dist/SwaigFunctionResult.d.ts +442 -0
  46. package/dist/SwaigFunctionResult.js +735 -0
  47. package/dist/SwaigFunctionResult.js.map +1 -0
  48. package/dist/SwmlBuilder.d.ts +37 -0
  49. package/dist/SwmlBuilder.js +55 -0
  50. package/dist/SwmlBuilder.js.map +1 -0
  51. package/dist/cli/agent-loader.d.ts +22 -0
  52. package/dist/cli/agent-loader.js +106 -0
  53. package/dist/cli/agent-loader.js.map +1 -0
  54. package/dist/cli/mock-data.d.ts +37 -0
  55. package/dist/cli/mock-data.js +79 -0
  56. package/dist/cli/mock-data.js.map +1 -0
  57. package/dist/cli/swaig-test.d.ts +32 -0
  58. package/dist/cli/swaig-test.js +405 -0
  59. package/dist/cli/swaig-test.js.map +1 -0
  60. package/dist/index.d.ts +36 -0
  61. package/dist/index.js +44 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/prefabs/ConciergeAgent.d.ts +64 -0
  64. package/dist/prefabs/ConciergeAgent.js +188 -0
  65. package/dist/prefabs/ConciergeAgent.js.map +1 -0
  66. package/dist/prefabs/FAQBotAgent.d.ts +68 -0
  67. package/dist/prefabs/FAQBotAgent.js +206 -0
  68. package/dist/prefabs/FAQBotAgent.js.map +1 -0
  69. package/dist/prefabs/InfoGathererAgent.d.ts +73 -0
  70. package/dist/prefabs/InfoGathererAgent.js +202 -0
  71. package/dist/prefabs/InfoGathererAgent.js.map +1 -0
  72. package/dist/prefabs/ReceptionistAgent.d.ts +65 -0
  73. package/dist/prefabs/ReceptionistAgent.js +205 -0
  74. package/dist/prefabs/ReceptionistAgent.js.map +1 -0
  75. package/dist/prefabs/SurveyAgent.d.ts +84 -0
  76. package/dist/prefabs/SurveyAgent.js +324 -0
  77. package/dist/prefabs/SurveyAgent.js.map +1 -0
  78. package/dist/prefabs/index.d.ts +13 -0
  79. package/dist/prefabs/index.js +14 -0
  80. package/dist/prefabs/index.js.map +1 -0
  81. package/dist/skills/SkillBase.d.ts +134 -0
  82. package/dist/skills/SkillBase.js +105 -0
  83. package/dist/skills/SkillBase.js.map +1 -0
  84. package/dist/skills/SkillManager.d.ts +83 -0
  85. package/dist/skills/SkillManager.js +159 -0
  86. package/dist/skills/SkillManager.js.map +1 -0
  87. package/dist/skills/SkillRegistry.d.ts +105 -0
  88. package/dist/skills/SkillRegistry.js +195 -0
  89. package/dist/skills/SkillRegistry.js.map +1 -0
  90. package/dist/skills/builtin/api_ninjas_trivia.d.ts +35 -0
  91. package/dist/skills/builtin/api_ninjas_trivia.js +161 -0
  92. package/dist/skills/builtin/api_ninjas_trivia.js.map +1 -0
  93. package/dist/skills/builtin/claude_skills.d.ts +34 -0
  94. package/dist/skills/builtin/claude_skills.js +156 -0
  95. package/dist/skills/builtin/claude_skills.js.map +1 -0
  96. package/dist/skills/builtin/custom_skills.d.ts +59 -0
  97. package/dist/skills/builtin/custom_skills.js +231 -0
  98. package/dist/skills/builtin/custom_skills.js.map +1 -0
  99. package/dist/skills/builtin/datasphere.d.ts +34 -0
  100. package/dist/skills/builtin/datasphere.js +163 -0
  101. package/dist/skills/builtin/datasphere.js.map +1 -0
  102. package/dist/skills/builtin/datasphere_serverless.d.ts +54 -0
  103. package/dist/skills/builtin/datasphere_serverless.js +155 -0
  104. package/dist/skills/builtin/datasphere_serverless.js.map +1 -0
  105. package/dist/skills/builtin/datetime.d.ts +31 -0
  106. package/dist/skills/builtin/datetime.js +95 -0
  107. package/dist/skills/builtin/datetime.js.map +1 -0
  108. package/dist/skills/builtin/google_maps.d.ts +33 -0
  109. package/dist/skills/builtin/google_maps.js +233 -0
  110. package/dist/skills/builtin/google_maps.js.map +1 -0
  111. package/dist/skills/builtin/index.d.ts +28 -0
  112. package/dist/skills/builtin/index.js +75 -0
  113. package/dist/skills/builtin/index.js.map +1 -0
  114. package/dist/skills/builtin/info_gatherer.d.ts +52 -0
  115. package/dist/skills/builtin/info_gatherer.js +237 -0
  116. package/dist/skills/builtin/info_gatherer.js.map +1 -0
  117. package/dist/skills/builtin/joke.d.ts +32 -0
  118. package/dist/skills/builtin/joke.js +142 -0
  119. package/dist/skills/builtin/joke.js.map +1 -0
  120. package/dist/skills/builtin/math.d.ts +33 -0
  121. package/dist/skills/builtin/math.js +120 -0
  122. package/dist/skills/builtin/math.js.map +1 -0
  123. package/dist/skills/builtin/mcp_gateway.d.ts +35 -0
  124. package/dist/skills/builtin/mcp_gateway.js +85 -0
  125. package/dist/skills/builtin/mcp_gateway.js.map +1 -0
  126. package/dist/skills/builtin/native_vector_search.d.ts +44 -0
  127. package/dist/skills/builtin/native_vector_search.js +248 -0
  128. package/dist/skills/builtin/native_vector_search.js.map +1 -0
  129. package/dist/skills/builtin/play_background_file.d.ts +34 -0
  130. package/dist/skills/builtin/play_background_file.js +135 -0
  131. package/dist/skills/builtin/play_background_file.js.map +1 -0
  132. package/dist/skills/builtin/spider.d.ts +34 -0
  133. package/dist/skills/builtin/spider.js +164 -0
  134. package/dist/skills/builtin/spider.js.map +1 -0
  135. package/dist/skills/builtin/swml_transfer.d.ts +44 -0
  136. package/dist/skills/builtin/swml_transfer.js +204 -0
  137. package/dist/skills/builtin/swml_transfer.js.map +1 -0
  138. package/dist/skills/builtin/weather_api.d.ts +34 -0
  139. package/dist/skills/builtin/weather_api.js +136 -0
  140. package/dist/skills/builtin/weather_api.js.map +1 -0
  141. package/dist/skills/builtin/web_search.d.ts +34 -0
  142. package/dist/skills/builtin/web_search.js +141 -0
  143. package/dist/skills/builtin/web_search.js.map +1 -0
  144. package/dist/skills/builtin/wikipedia_search.d.ts +34 -0
  145. package/dist/skills/builtin/wikipedia_search.js +166 -0
  146. package/dist/skills/builtin/wikipedia_search.js.map +1 -0
  147. package/dist/skills/index.d.ts +11 -0
  148. package/dist/skills/index.js +10 -0
  149. package/dist/skills/index.js.map +1 -0
  150. package/dist/types.d.ts +85 -0
  151. package/dist/types.js +5 -0
  152. package/dist/types.js.map +1 -0
  153. package/docs/agent-guide.md +869 -0
  154. package/docs/api-reference.md +2419 -0
  155. package/docs/architecture.md +843 -0
  156. package/docs/cli-guide.md +579 -0
  157. package/docs/configuration.md +422 -0
  158. package/docs/contexts-guide.md +787 -0
  159. package/docs/datamap-guide.md +1141 -0
  160. package/docs/prefabs-guide.md +830 -0
  161. package/docs/security.md +436 -0
  162. package/docs/serverless-guide.md +513 -0
  163. package/docs/skills-guide.md +845 -0
  164. package/docs/swaig-reference.md +1627 -0
  165. package/examples/call-flow.ts +60 -0
  166. package/examples/contexts-steps.ts +62 -0
  167. package/examples/datamap-tools.ts +52 -0
  168. package/examples/dynamic-config.ts +51 -0
  169. package/examples/multi-agent.ts +67 -0
  170. package/examples/pom-prompt.ts +68 -0
  171. package/examples/simple-agent.ts +33 -0
  172. package/package.json +35 -0
  173. package/src/AgentBase.ts +1279 -0
  174. package/src/AgentServer.ts +149 -0
  175. package/src/AuthHandler.ts +141 -0
  176. package/src/ConfigLoader.ts +165 -0
  177. package/src/ContextBuilder.ts +796 -0
  178. package/src/DataMap.ts +365 -0
  179. package/src/Logger.ts +197 -0
  180. package/src/PomBuilder.ts +298 -0
  181. package/src/PromptManager.ts +133 -0
  182. package/src/SchemaUtils.ts +170 -0
  183. package/src/ServerlessAdapter.ts +218 -0
  184. package/src/SessionManager.ts +161 -0
  185. package/src/SslConfig.ts +118 -0
  186. package/src/SwaigFunction.ts +168 -0
  187. package/src/SwaigFunctionResult.ts +864 -0
  188. package/src/SwmlBuilder.ts +62 -0
  189. package/src/cli/agent-loader.ts +122 -0
  190. package/src/cli/mock-data.ts +110 -0
  191. package/src/cli/swaig-test.ts +440 -0
  192. package/src/index.ts +99 -0
  193. package/src/prefabs/ConciergeAgent.ts +251 -0
  194. package/src/prefabs/FAQBotAgent.ts +263 -0
  195. package/src/prefabs/InfoGathererAgent.ts +276 -0
  196. package/src/prefabs/ReceptionistAgent.ts +277 -0
  197. package/src/prefabs/SurveyAgent.ts +413 -0
  198. package/src/prefabs/index.ts +23 -0
  199. package/src/skills/SkillBase.ts +184 -0
  200. package/src/skills/SkillManager.ts +177 -0
  201. package/src/skills/SkillRegistry.ts +231 -0
  202. package/src/skills/builtin/api_ninjas_trivia.ts +230 -0
  203. package/src/skills/builtin/claude_skills.ts +239 -0
  204. package/src/skills/builtin/custom_skills.ts +326 -0
  205. package/src/skills/builtin/datasphere.ts +225 -0
  206. package/src/skills/builtin/datasphere_serverless.ts +194 -0
  207. package/src/skills/builtin/datetime.ts +115 -0
  208. package/src/skills/builtin/google_maps.ts +347 -0
  209. package/src/skills/builtin/index.ts +79 -0
  210. package/src/skills/builtin/info_gatherer.ts +331 -0
  211. package/src/skills/builtin/joke.ts +180 -0
  212. package/src/skills/builtin/math.ts +150 -0
  213. package/src/skills/builtin/mcp_gateway.ts +99 -0
  214. package/src/skills/builtin/native_vector_search.ts +327 -0
  215. package/src/skills/builtin/play_background_file.ts +189 -0
  216. package/src/skills/builtin/spider.ts +232 -0
  217. package/src/skills/builtin/swml_transfer.ts +285 -0
  218. package/src/skills/builtin/weather_api.ts +193 -0
  219. package/src/skills/builtin/web_search.ts +212 -0
  220. package/src/skills/builtin/wikipedia_search.ts +248 -0
  221. package/src/skills/index.ts +12 -0
  222. package/src/types.ts +99 -0
  223. package/tests/AgentBase.test.ts +693 -0
  224. package/tests/AgentServer.test.ts +102 -0
  225. package/tests/AuthHandler.test.ts +121 -0
  226. package/tests/ConfigLoader.test.ts +121 -0
  227. package/tests/DataMap.test.ts +286 -0
  228. package/tests/Logger.test.ts +218 -0
  229. package/tests/PomBuilder.test.ts +164 -0
  230. package/tests/ProxyDetection.test.ts +185 -0
  231. package/tests/SchemaUtils.test.ts +106 -0
  232. package/tests/ServerlessAdapter.test.ts +200 -0
  233. package/tests/SessionManager.test.ts +139 -0
  234. package/tests/SslConfig.test.ts +97 -0
  235. package/tests/SwaigFunctionResult.test.ts +298 -0
  236. package/tests/cli/mock-data.test.ts +94 -0
  237. package/tests/cli/swaig-test.test.ts +96 -0
  238. package/tests/prefabs/prefabs.test.ts +854 -0
  239. package/tests/setup.ts +6 -0
  240. package/tests/skills/SkillBase.test.ts +118 -0
  241. package/tests/skills/SkillManager.test.ts +164 -0
  242. package/tests/skills/SkillRegistry.test.ts +124 -0
  243. package/tests/skills/builtin.test.ts +924 -0
  244. package/tsconfig.json +18 -0
  245. package/vitest.config.ts +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom_skills.js","sourceRoot":"","sources":["../../../src/skills/builtin/custom_skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AA4CnE;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IACtC,iBAAiB,GAA0B,IAAI,GAAG,EAAE,CAAC;IACrD,kBAAkB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAE5D;;OAEG;IACH,YAAY,MAAoB;QAC9B,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,WAAW;QACT,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,yIAAyI;YAC3I,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC;YACjD,YAAY,EAAE;gBACZ,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,wIAAwI;oBAC1I,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;4BACpE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;4BAC5E,UAAU,EAAE;gCACV,IAAI,EAAE,OAAO;gCACb,WAAW,EAAE,4DAA4D;6BAC1E;4BACD,YAAY,EAAE;gCACZ,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,6IAA6I;6BAChJ;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,OAAO;gCACb,WAAW,EAAE,oCAAoC;6BAClD;4BACD,kBAAkB,EAAE;gCAClB,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,6DAA6D;6BAC3E;4BACD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE;4BAC/E,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,8BAA8B;6BAC5C;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC;qBAClD;iBACF;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kEAAkE;iBAChF;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAErC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,gEAAgE;gBAChE,kEAAkE;gBAClE,MAAM,OAAO,GAAG,IAAI,QAAQ,CAC1B,MAAM,EACN,SAAS,EACT,qBAAqB,EACrB,OAAO,CAAC,YAAY,CAKV,CAAC;gBAEb,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,MAA2C,CAAC;QACpE,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,oGAAoG;IACpG,QAAQ;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,KAAK,GAA0B,EAAE,CAAC;QAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,+BAA+B;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,SAAS,EAAE,CAAC;gBACd,oDAAoD;gBACpD,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;oBAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,GAAG,EAAE;wBACZ,OAAO,IAAI,mBAAmB,CAC5B,gBAAgB,OAAO,CAAC,IAAI,kDAAkD,SAAS,8CAA8C,CACtI,CAAC;oBACJ,CAAC;iBACF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO,EAAE,KAAK,EACZ,IAA6B,EAC7B,OAAgC,EAChC,EAAE;oBACF,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;wBAEzE,uBAAuB;wBACvB,IAAI,MAAM,YAAY,mBAAmB,EAAE,CAAC;4BAC1C,OAAO,MAAM,CAAC;wBAChB,CAAC;wBAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC/B,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;wBACzC,CAAC;wBAED,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;4BACzC,OAAO,MAAiC,CAAC;wBAC3C,CAAC;wBAED,OAAO,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;oBACtD,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACjE,OAAO,IAAI,mBAAmB,CAC5B,gBAAgB,OAAO,CAAC,IAAI,kCAAkC,OAAO,EAAE,CACxE,CAAC;oBACJ,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+EAA+E;IAC/E,iBAAiB;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAA2C,CAAC;QAEpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,IAAI,cAAc,CAAC;QACxD,MAAM,IAAI,GACR,UAAU,CAAC,WAAW;YACtB,mDAAmD,CAAC;QAEtD,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE5D,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CACV,GAAG,OAAO,CAAC,IAAI,0CAA0C,OAAO,CAAC,WAAW,EAAE,CAC/E,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO;YACL;gBACE,KAAK;gBACL,IAAI;gBACJ,OAAO;aACR;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,OAA6B;QAE7B,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;gBACnB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * DataSphere Skill - Searches SignalWire DataSphere for knowledge base content.
3
+ *
4
+ * Tier 3 built-in skill: requires SIGNALWIRE_PROJECT_ID, SIGNALWIRE_TOKEN,
5
+ * and SIGNALWIRE_SPACE environment variables. Uses the SignalWire DataSphere
6
+ * API to perform semantic search across uploaded documents.
7
+ */
8
+ import { SkillBase } from '../SkillBase.js';
9
+ import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
10
+ /**
11
+ * Searches SignalWire DataSphere for knowledge base content using semantic search.
12
+ *
13
+ * Tier 3 built-in skill. Requires `SIGNALWIRE_PROJECT_ID`, `SIGNALWIRE_TOKEN`,
14
+ * and `SIGNALWIRE_SPACE` environment variables. Supports `max_results` and
15
+ * `distance_threshold` config options.
16
+ */
17
+ export declare class DataSphereSkill extends SkillBase {
18
+ /**
19
+ * @param config - Optional configuration; supports `max_results` and `distance_threshold`.
20
+ */
21
+ constructor(config?: SkillConfig);
22
+ /** @returns Manifest declaring SignalWire credentials as required env vars. */
23
+ getManifest(): SkillManifest;
24
+ /** @returns A single `search_datasphere` tool that performs semantic search on uploaded documents. */
25
+ getTools(): SkillToolDefinition[];
26
+ /** @returns Prompt section describing DataSphere knowledge base search capabilities. */
27
+ getPromptSections(): SkillPromptSection[];
28
+ }
29
+ /**
30
+ * Factory function for creating DataSphereSkill instances.
31
+ * @param config - Optional skill configuration.
32
+ * @returns A new DataSphereSkill instance.
33
+ */
34
+ export declare function createSkill(config?: SkillConfig): DataSphereSkill;
@@ -0,0 +1,163 @@
1
+ /**
2
+ * DataSphere Skill - Searches SignalWire DataSphere for knowledge base content.
3
+ *
4
+ * Tier 3 built-in skill: requires SIGNALWIRE_PROJECT_ID, SIGNALWIRE_TOKEN,
5
+ * and SIGNALWIRE_SPACE environment variables. Uses the SignalWire DataSphere
6
+ * API to perform semantic search across uploaded documents.
7
+ */
8
+ import { SkillBase } from '../SkillBase.js';
9
+ import { SwaigFunctionResult } from '../../SwaigFunctionResult.js';
10
+ /**
11
+ * Searches SignalWire DataSphere for knowledge base content using semantic search.
12
+ *
13
+ * Tier 3 built-in skill. Requires `SIGNALWIRE_PROJECT_ID`, `SIGNALWIRE_TOKEN`,
14
+ * and `SIGNALWIRE_SPACE` environment variables. Supports `max_results` and
15
+ * `distance_threshold` config options.
16
+ */
17
+ export class DataSphereSkill extends SkillBase {
18
+ /**
19
+ * @param config - Optional configuration; supports `max_results` and `distance_threshold`.
20
+ */
21
+ constructor(config) {
22
+ super('datasphere', config);
23
+ }
24
+ /** @returns Manifest declaring SignalWire credentials as required env vars. */
25
+ getManifest() {
26
+ return {
27
+ name: 'datasphere',
28
+ description: 'Searches SignalWire DataSphere for knowledge base content using semantic search across uploaded documents.',
29
+ version: '1.0.0',
30
+ author: 'SignalWire',
31
+ tags: ['search', 'datasphere', 'signalwire', 'knowledge', 'rag', 'external'],
32
+ requiredEnvVars: ['SIGNALWIRE_PROJECT_ID', 'SIGNALWIRE_TOKEN', 'SIGNALWIRE_SPACE'],
33
+ configSchema: {
34
+ max_results: {
35
+ type: 'number',
36
+ description: 'Maximum number of results to return. Defaults to 5.',
37
+ default: 5,
38
+ },
39
+ distance_threshold: {
40
+ type: 'number',
41
+ description: 'Maximum distance threshold for results (0-1, lower is more similar). Defaults to 0.7.',
42
+ default: 0.7,
43
+ },
44
+ },
45
+ };
46
+ }
47
+ /** @returns A single `search_datasphere` tool that performs semantic search on uploaded documents. */
48
+ getTools() {
49
+ const maxResults = this.getConfig('max_results', 5);
50
+ const distanceThreshold = this.getConfig('distance_threshold', 0.7);
51
+ return [
52
+ {
53
+ name: 'search_datasphere',
54
+ description: 'Search the SignalWire DataSphere knowledge base for relevant information. Returns the most relevant text chunks from uploaded documents.',
55
+ parameters: {
56
+ query: {
57
+ type: 'string',
58
+ description: 'The question or topic to search for in the knowledge base.',
59
+ },
60
+ document_id: {
61
+ type: 'string',
62
+ description: 'Optional: limit search to a specific document by its ID.',
63
+ },
64
+ },
65
+ required: ['query'],
66
+ handler: async (args) => {
67
+ const query = args.query;
68
+ const documentId = args.document_id;
69
+ if (!query || typeof query !== 'string' || query.trim().length === 0) {
70
+ return new SwaigFunctionResult('Please provide a query to search the knowledge base.');
71
+ }
72
+ const projectId = process.env['SIGNALWIRE_PROJECT_ID'];
73
+ const token = process.env['SIGNALWIRE_TOKEN'];
74
+ const space = process.env['SIGNALWIRE_SPACE'];
75
+ if (!projectId || !token || !space) {
76
+ return new SwaigFunctionResult('DataSphere is not configured. The SIGNALWIRE_PROJECT_ID, SIGNALWIRE_TOKEN, and SIGNALWIRE_SPACE environment variables are required.');
77
+ }
78
+ try {
79
+ const spaceHost = space.includes('.') ? space : `${space}.signalwire.com`;
80
+ const url = `https://${spaceHost}/api/datasphere/documents/search`;
81
+ const requestBody = {
82
+ query: query.trim(),
83
+ count: maxResults,
84
+ distance: distanceThreshold,
85
+ };
86
+ if (documentId && typeof documentId === 'string' && documentId.trim().length > 0) {
87
+ requestBody['document_id'] = documentId.trim();
88
+ }
89
+ const authHeader = Buffer.from(`${projectId}:${token}`).toString('base64');
90
+ const response = await fetch(url, {
91
+ method: 'POST',
92
+ headers: {
93
+ 'Content-Type': 'application/json',
94
+ 'Authorization': `Basic ${authHeader}`,
95
+ },
96
+ body: JSON.stringify(requestBody),
97
+ });
98
+ if (!response.ok) {
99
+ const errorText = await response.text();
100
+ let errorMsg;
101
+ try {
102
+ const errorData = JSON.parse(errorText);
103
+ errorMsg = errorData.error ?? errorData.message ?? `HTTP ${response.status}`;
104
+ }
105
+ catch {
106
+ errorMsg = `HTTP ${response.status}: ${errorText.slice(0, 200)}`;
107
+ }
108
+ return new SwaigFunctionResult(`DataSphere search failed: ${errorMsg}`);
109
+ }
110
+ const data = (await response.json());
111
+ if (!data.results || data.results.length === 0) {
112
+ return new SwaigFunctionResult(`No relevant results found in the knowledge base for "${query}".`);
113
+ }
114
+ const parts = [
115
+ `Knowledge base results for "${query}" (${data.results.length} results):`,
116
+ '',
117
+ ];
118
+ for (let i = 0; i < data.results.length; i++) {
119
+ const result = data.results[i];
120
+ const score = (1 - result.score).toFixed(2);
121
+ parts.push(`--- Result ${i + 1} (relevance: ${score}) ---`);
122
+ parts.push(result.text.trim());
123
+ if (result.document_id) {
124
+ parts.push(`[Document: ${result.document_id}]`);
125
+ }
126
+ parts.push('');
127
+ }
128
+ return new SwaigFunctionResult(parts.join('\n').trim());
129
+ }
130
+ catch (err) {
131
+ const message = err instanceof Error ? err.message : String(err);
132
+ return new SwaigFunctionResult(`Failed to search DataSphere for "${query}": ${message}`);
133
+ }
134
+ },
135
+ },
136
+ ];
137
+ }
138
+ /** @returns Prompt section describing DataSphere knowledge base search capabilities. */
139
+ getPromptSections() {
140
+ return [
141
+ {
142
+ title: 'Knowledge Base Search (DataSphere)',
143
+ body: 'You have access to a knowledge base of documents that can be searched for relevant information.',
144
+ bullets: [
145
+ 'Use the search_datasphere tool when the user asks questions that might be answered by internal documentation or uploaded knowledge.',
146
+ 'Results are ranked by relevance. Higher relevance scores indicate better matches.',
147
+ 'You can optionally search within a specific document by providing its ID.',
148
+ 'Synthesize information from multiple results when appropriate.',
149
+ 'If no results are found, let the user know and suggest rephrasing their question.',
150
+ ],
151
+ },
152
+ ];
153
+ }
154
+ }
155
+ /**
156
+ * Factory function for creating DataSphereSkill instances.
157
+ * @param config - Optional skill configuration.
158
+ * @returns A new DataSphereSkill instance.
159
+ */
160
+ export function createSkill(config) {
161
+ return new DataSphereSkill(config);
162
+ }
163
+ //# sourceMappingURL=datasphere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasphere.js","sourceRoot":"","sources":["../../../src/skills/builtin/datasphere.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * DataSphere Serverless Skill - Searches SignalWire DataSphere using a DataMap.
3
+ *
4
+ * Tier 3 built-in skill: requires SIGNALWIRE_PROJECT_ID, SIGNALWIRE_TOKEN,
5
+ * and SIGNALWIRE_SPACE environment variables. Unlike the standard datasphere
6
+ * skill, this uses a DataMap to execute the search server-side without
7
+ * requiring a webhook endpoint. Ideal for serverless or edge deployments.
8
+ */
9
+ import { SkillBase } from '../SkillBase.js';
10
+ import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
11
+ /**
12
+ * Searches SignalWire DataSphere using a server-side DataMap for serverless execution.
13
+ *
14
+ * Tier 3 built-in skill. Requires `SIGNALWIRE_PROJECT_ID`, `SIGNALWIRE_TOKEN`,
15
+ * and `SIGNALWIRE_SPACE` environment variables. Unlike the standard DataSphere
16
+ * skill, this generates a DataMap configuration that SignalWire executes directly
17
+ * without needing a webhook endpoint. Supports `max_results`, `distance_threshold`,
18
+ * and `document_id` config options.
19
+ */
20
+ export declare class DataSphereServerlessSkill extends SkillBase {
21
+ /**
22
+ * @param config - Optional configuration; supports `max_results`, `distance_threshold`, `document_id`.
23
+ */
24
+ constructor(config?: SkillConfig);
25
+ /** @returns Manifest declaring SignalWire credentials as required env vars. */
26
+ getManifest(): SkillManifest;
27
+ /**
28
+ * Build the DataMap-based SWAIG function definition for server-side
29
+ * DataSphere search. This generates a data_map configuration that
30
+ * SignalWire executes directly, without needing a webhook callback.
31
+ */
32
+ private buildDataMapFunction;
33
+ /**
34
+ * Return a stub tool definition since this skill uses DataMap-based execution.
35
+ * The actual DataMap function is provided by getDataMapTools().
36
+ * @returns A single stub `search_datasphere` tool that explains its DataMap nature.
37
+ */
38
+ getTools(): SkillToolDefinition[];
39
+ /**
40
+ * Get DataMap-based tool definitions for server-side execution.
41
+ * These are registered directly in the SWML output as data_map functions
42
+ * rather than as webhook-backed SWAIG tools.
43
+ * @returns Array containing the DataSphere search DataMap function definition.
44
+ */
45
+ getDataMapTools(): Record<string, unknown>[];
46
+ /** @returns Prompt section describing serverless DataSphere search capabilities. */
47
+ getPromptSections(): SkillPromptSection[];
48
+ }
49
+ /**
50
+ * Factory function for creating DataSphereServerlessSkill instances.
51
+ * @param config - Optional skill configuration.
52
+ * @returns A new DataSphereServerlessSkill instance.
53
+ */
54
+ export declare function createSkill(config?: SkillConfig): DataSphereServerlessSkill;
@@ -0,0 +1,155 @@
1
+ /**
2
+ * DataSphere Serverless Skill - Searches SignalWire DataSphere using a DataMap.
3
+ *
4
+ * Tier 3 built-in skill: requires SIGNALWIRE_PROJECT_ID, SIGNALWIRE_TOKEN,
5
+ * and SIGNALWIRE_SPACE environment variables. Unlike the standard datasphere
6
+ * skill, this uses a DataMap to execute the search server-side without
7
+ * requiring a webhook endpoint. Ideal for serverless or edge deployments.
8
+ */
9
+ import { SkillBase } from '../SkillBase.js';
10
+ import { SwaigFunctionResult } from '../../SwaigFunctionResult.js';
11
+ import { DataMap } from '../../DataMap.js';
12
+ /**
13
+ * Searches SignalWire DataSphere using a server-side DataMap for serverless execution.
14
+ *
15
+ * Tier 3 built-in skill. Requires `SIGNALWIRE_PROJECT_ID`, `SIGNALWIRE_TOKEN`,
16
+ * and `SIGNALWIRE_SPACE` environment variables. Unlike the standard DataSphere
17
+ * skill, this generates a DataMap configuration that SignalWire executes directly
18
+ * without needing a webhook endpoint. Supports `max_results`, `distance_threshold`,
19
+ * and `document_id` config options.
20
+ */
21
+ export class DataSphereServerlessSkill extends SkillBase {
22
+ /**
23
+ * @param config - Optional configuration; supports `max_results`, `distance_threshold`, `document_id`.
24
+ */
25
+ constructor(config) {
26
+ super('datasphere_serverless', config);
27
+ }
28
+ /** @returns Manifest declaring SignalWire credentials as required env vars. */
29
+ getManifest() {
30
+ return {
31
+ name: 'datasphere_serverless',
32
+ description: 'Searches SignalWire DataSphere using a server-side DataMap. No webhook endpoint required; executes entirely on the SignalWire platform.',
33
+ version: '1.0.0',
34
+ author: 'SignalWire',
35
+ tags: ['search', 'datasphere', 'signalwire', 'knowledge', 'rag', 'serverless', 'datamap'],
36
+ requiredEnvVars: ['SIGNALWIRE_PROJECT_ID', 'SIGNALWIRE_TOKEN', 'SIGNALWIRE_SPACE'],
37
+ configSchema: {
38
+ max_results: {
39
+ type: 'number',
40
+ description: 'Maximum number of results to return. Defaults to 5.',
41
+ default: 5,
42
+ },
43
+ distance_threshold: {
44
+ type: 'number',
45
+ description: 'Maximum distance threshold for results (0-1, lower is more similar). Defaults to 0.7.',
46
+ default: 0.7,
47
+ },
48
+ document_id: {
49
+ type: 'string',
50
+ description: 'Optional: restrict search to a specific document ID.',
51
+ },
52
+ },
53
+ };
54
+ }
55
+ /**
56
+ * Build the DataMap-based SWAIG function definition for server-side
57
+ * DataSphere search. This generates a data_map configuration that
58
+ * SignalWire executes directly, without needing a webhook callback.
59
+ */
60
+ buildDataMapFunction() {
61
+ const maxResults = this.getConfig('max_results', 5);
62
+ const distanceThreshold = this.getConfig('distance_threshold', 0.7);
63
+ const documentId = this.getConfig('document_id', undefined);
64
+ const dm = new DataMap('search_datasphere');
65
+ dm.enableEnvExpansion(true);
66
+ dm.purpose('Search the SignalWire DataSphere knowledge base for relevant information. ' +
67
+ 'Returns the most relevant text chunks from uploaded documents.');
68
+ dm.parameter('query', 'string', 'The question or topic to search for in the knowledge base.', {
69
+ required: true,
70
+ });
71
+ // Build the request body
72
+ const requestBody = {
73
+ query: '%{args.query}',
74
+ count: maxResults,
75
+ distance: distanceThreshold,
76
+ };
77
+ if (documentId) {
78
+ requestBody['document_id'] = documentId;
79
+ }
80
+ // Configure the webhook to call the DataSphere API
81
+ dm.webhook('POST', 'https://${ENV.SIGNALWIRE_SPACE}.signalwire.com/api/datasphere/documents/search', {
82
+ headers: {
83
+ 'Content-Type': 'application/json',
84
+ 'Authorization': 'Basic ${ENV.SIGNALWIRE_AUTH}',
85
+ },
86
+ });
87
+ dm.body(requestBody);
88
+ dm.output(new SwaigFunctionResult('Knowledge base results for the query: %{array[0].text} %{array[1].text} %{array[2].text}'));
89
+ dm.errorKeys(['error', 'message']);
90
+ dm.fallbackOutput(new SwaigFunctionResult('No relevant results found in the knowledge base. Try rephrasing your question.'));
91
+ return dm.toSwaigFunction();
92
+ }
93
+ /**
94
+ * Return a stub tool definition since this skill uses DataMap-based execution.
95
+ * The actual DataMap function is provided by getDataMapTools().
96
+ * @returns A single stub `search_datasphere` tool that explains its DataMap nature.
97
+ */
98
+ getTools() {
99
+ // DataMap-based skills do not use handler-based tools.
100
+ // The tool is provided via getDataMapTools() instead.
101
+ // We return a stub handler that explains this to prevent confusion
102
+ // if something tries to invoke it as a regular tool.
103
+ return [
104
+ {
105
+ name: 'search_datasphere',
106
+ description: 'Search the SignalWire DataSphere knowledge base for relevant information. (Serverless DataMap mode)',
107
+ parameters: {
108
+ query: {
109
+ type: 'string',
110
+ description: 'The question or topic to search for in the knowledge base.',
111
+ },
112
+ },
113
+ required: ['query'],
114
+ handler: () => {
115
+ return new SwaigFunctionResult('This tool is configured for serverless DataMap execution. ' +
116
+ 'It should be registered as a data_map function, not invoked via webhook.');
117
+ },
118
+ },
119
+ ];
120
+ }
121
+ /**
122
+ * Get DataMap-based tool definitions for server-side execution.
123
+ * These are registered directly in the SWML output as data_map functions
124
+ * rather than as webhook-backed SWAIG tools.
125
+ * @returns Array containing the DataSphere search DataMap function definition.
126
+ */
127
+ getDataMapTools() {
128
+ return [this.buildDataMapFunction()];
129
+ }
130
+ /** @returns Prompt section describing serverless DataSphere search capabilities. */
131
+ getPromptSections() {
132
+ return [
133
+ {
134
+ title: 'Knowledge Base Search (DataSphere - Serverless)',
135
+ body: 'You have access to a knowledge base of documents that can be searched for relevant information. Searches are executed server-side for optimal performance.',
136
+ bullets: [
137
+ 'Use the search_datasphere tool when the user asks questions that might be answered by internal documentation or uploaded knowledge.',
138
+ 'Results are ranked by relevance and returned automatically.',
139
+ 'This search runs entirely on the SignalWire platform without requiring external webhooks.',
140
+ 'Synthesize information from the results when appropriate.',
141
+ 'If no results are found, let the user know and suggest rephrasing their question.',
142
+ ],
143
+ },
144
+ ];
145
+ }
146
+ }
147
+ /**
148
+ * Factory function for creating DataSphereServerlessSkill instances.
149
+ * @param config - Optional skill configuration.
150
+ * @returns A new DataSphereServerlessSkill instance.
151
+ */
152
+ export function createSkill(config) {
153
+ return new DataSphereServerlessSkill(config);
154
+ }
155
+ //# sourceMappingURL=datasphere_serverless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasphere_serverless.js","sourceRoot":"","sources":["../../../src/skills/builtin/datasphere_serverless.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * DateTime Skill - Provides current date/time with optional timezone support.
3
+ *
4
+ * Tier 1 built-in skill: no external dependencies required.
5
+ */
6
+ import { SkillBase } from '../SkillBase.js';
7
+ import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
8
+ /**
9
+ * Provides the current date and time with optional timezone support.
10
+ *
11
+ * Tier 1 built-in skill with no external dependencies. Supports all IANA
12
+ * timezone identifiers via the Intl.DateTimeFormat API.
13
+ */
14
+ export declare class DateTimeSkill extends SkillBase {
15
+ /**
16
+ * @param config - Optional configuration (no config keys used by this skill).
17
+ */
18
+ constructor(config?: SkillConfig);
19
+ /** @returns Manifest with skill metadata and tags. */
20
+ getManifest(): SkillManifest;
21
+ /** @returns A single `get_datetime` tool that returns the current date/time in a given timezone. */
22
+ getTools(): SkillToolDefinition[];
23
+ /** @returns Prompt section instructing the AI how to use the datetime tool. */
24
+ getPromptSections(): SkillPromptSection[];
25
+ }
26
+ /**
27
+ * Factory function for creating DateTimeSkill instances.
28
+ * @param config - Optional skill configuration.
29
+ * @returns A new DateTimeSkill instance.
30
+ */
31
+ export declare function createSkill(config?: SkillConfig): DateTimeSkill;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * DateTime Skill - Provides current date/time with optional timezone support.
3
+ *
4
+ * Tier 1 built-in skill: no external dependencies required.
5
+ */
6
+ import { SkillBase } from '../SkillBase.js';
7
+ import { SwaigFunctionResult } from '../../SwaigFunctionResult.js';
8
+ /**
9
+ * Provides the current date and time with optional timezone support.
10
+ *
11
+ * Tier 1 built-in skill with no external dependencies. Supports all IANA
12
+ * timezone identifiers via the Intl.DateTimeFormat API.
13
+ */
14
+ export class DateTimeSkill extends SkillBase {
15
+ /**
16
+ * @param config - Optional configuration (no config keys used by this skill).
17
+ */
18
+ constructor(config) {
19
+ super('datetime', config);
20
+ }
21
+ /** @returns Manifest with skill metadata and tags. */
22
+ getManifest() {
23
+ return {
24
+ name: 'datetime',
25
+ description: 'Provides current date and time information with timezone support.',
26
+ version: '1.0.0',
27
+ tags: ['utility', 'datetime', 'timezone'],
28
+ };
29
+ }
30
+ /** @returns A single `get_datetime` tool that returns the current date/time in a given timezone. */
31
+ getTools() {
32
+ return [
33
+ {
34
+ name: 'get_datetime',
35
+ description: 'Get the current date and time. Optionally specify a timezone to get the time in that timezone.',
36
+ parameters: {
37
+ timezone: {
38
+ type: 'string',
39
+ description: 'IANA timezone identifier (e.g., America/New_York, Europe/London, Asia/Tokyo). Defaults to UTC if not specified.',
40
+ },
41
+ },
42
+ handler: (args) => {
43
+ const timezone = args.timezone ?? 'UTC';
44
+ const now = new Date();
45
+ try {
46
+ const dateFormatter = new Intl.DateTimeFormat('en-US', {
47
+ timeZone: timezone,
48
+ weekday: 'long',
49
+ year: 'numeric',
50
+ month: 'long',
51
+ day: 'numeric',
52
+ });
53
+ const timeFormatter = new Intl.DateTimeFormat('en-US', {
54
+ timeZone: timezone,
55
+ hour: '2-digit',
56
+ minute: '2-digit',
57
+ second: '2-digit',
58
+ hour12: true,
59
+ timeZoneName: 'short',
60
+ });
61
+ const dateStr = dateFormatter.format(now);
62
+ const timeStr = timeFormatter.format(now);
63
+ return new SwaigFunctionResult(`The current date and time in ${timezone} is: ${dateStr}, ${timeStr}.`);
64
+ }
65
+ catch {
66
+ return new SwaigFunctionResult(`Invalid timezone "${timezone}". Please use a valid IANA timezone identifier such as America/New_York, Europe/London, or Asia/Tokyo.`);
67
+ }
68
+ },
69
+ },
70
+ ];
71
+ }
72
+ /** @returns Prompt section instructing the AI how to use the datetime tool. */
73
+ getPromptSections() {
74
+ return [
75
+ {
76
+ title: 'Date and Time',
77
+ body: 'You have the ability to check the current date and time.',
78
+ bullets: [
79
+ 'Use the get_datetime tool to retrieve the current date and time.',
80
+ 'You can specify a timezone using IANA timezone identifiers (e.g., America/New_York, Europe/London, Asia/Tokyo).',
81
+ 'If no timezone is specified, UTC is used by default.',
82
+ ],
83
+ },
84
+ ];
85
+ }
86
+ }
87
+ /**
88
+ * Factory function for creating DateTimeSkill instances.
89
+ * @param config - Optional skill configuration.
90
+ * @returns A new DateTimeSkill instance.
91
+ */
92
+ export function createSkill(config) {
93
+ return new DateTimeSkill(config);
94
+ }
95
+ //# sourceMappingURL=datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/skills/builtin/datetime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C;;OAEG;IACH,YAAY,MAAoB;QAC9B,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,sDAAsD;IACtD,WAAW;QACT,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,mEAAmE;YAChF,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,oGAAoG;IACpG,QAAQ;QACN,OAAO;YACL;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EACT,gGAAgG;gBAClG,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,iHAAiH;qBACpH;iBACF;gBACD,OAAO,EAAE,CAAC,IAA6B,EAAE,EAAE;oBACzC,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,KAAK,CAAC;oBAChE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;oBAEvB,IAAI,CAAC;wBACH,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;4BACrD,QAAQ,EAAE,QAAQ;4BAClB,OAAO,EAAE,MAAM;4BACf,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,MAAM;4BACb,GAAG,EAAE,SAAS;yBACf,CAAC,CAAC;wBAEH,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;4BACrD,QAAQ,EAAE,QAAQ;4BAClB,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,SAAS;4BACjB,MAAM,EAAE,SAAS;4BACjB,MAAM,EAAE,IAAI;4BACZ,YAAY,EAAE,OAAO;yBACtB,CAAC,CAAC;wBAEH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAE1C,OAAO,IAAI,mBAAmB,CAC5B,gCAAgC,QAAQ,QAAQ,OAAO,KAAK,OAAO,GAAG,CACvE,CAAC;oBACJ,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,IAAI,mBAAmB,CAC5B,qBAAqB,QAAQ,wGAAwG,CACtI,CAAC;oBACJ,CAAC;gBACH,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,iBAAiB;QACf,OAAO;YACL;gBACE,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,0DAA0D;gBAChE,OAAO,EAAE;oBACP,kEAAkE;oBAClE,iHAAiH;oBACjH,sDAAsD;iBACvD;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Google Maps Skill - Provides directions and place search via Google Maps APIs.
3
+ *
4
+ * Tier 3 built-in skill: requires GOOGLE_MAPS_API_KEY environment variable.
5
+ * Uses Google Directions API for route information and Google Places API
6
+ * for place search and discovery.
7
+ */
8
+ import { SkillBase } from '../SkillBase.js';
9
+ import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
10
+ /**
11
+ * Provides driving/walking/transit directions and place search via Google Maps APIs.
12
+ *
13
+ * Tier 3 built-in skill. Requires the `GOOGLE_MAPS_API_KEY` environment variable.
14
+ * Supports a `default_mode` config option ("driving"|"walking"|"bicycling"|"transit").
15
+ */
16
+ export declare class GoogleMapsSkill extends SkillBase {
17
+ /**
18
+ * @param config - Optional configuration; supports `default_mode` for travel mode.
19
+ */
20
+ constructor(config?: SkillConfig);
21
+ /** @returns Manifest declaring GOOGLE_MAPS_API_KEY as required and config schema for default_mode. */
22
+ getManifest(): SkillManifest;
23
+ /** @returns Two tools: `get_directions` for route info and `find_place` for place discovery. */
24
+ getTools(): SkillToolDefinition[];
25
+ /** @returns Prompt section describing directions and place search capabilities. */
26
+ getPromptSections(): SkillPromptSection[];
27
+ }
28
+ /**
29
+ * Factory function for creating GoogleMapsSkill instances.
30
+ * @param config - Optional skill configuration.
31
+ * @returns A new GoogleMapsSkill instance.
32
+ */
33
+ export declare function createSkill(config?: SkillConfig): GoogleMapsSkill;