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":"info_gatherer.js","sourceRoot":"","sources":["../../../src/skills/builtin/info_gatherer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAqBnE;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IACtC,YAAY,GAA8B,IAAI,GAAG,EAAE,CAAC;IAE5D;;OAEG;IACH,YAAY,MAAoB;QAC9B,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,0GAA0G;IAC1G,WAAW;QACT,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,iHAAiH;YACnH,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,CAAC,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC;YAC3D,YAAY,EAAE;gBACZ,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,8FAA8F;oBAChG,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;4BAChF,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;4BACxF,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oDAAoD,EAAE;4BAChG,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,kGAAkG;6BAChH;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,2DAA2D;6BACzE;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;qBAClC;iBACF;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,6EAA6E;iBAChF;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2DAA2D;iBAC9D;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,mEAAmE;iBACtE;aACF;SACF,CAAC;IACJ,CAAC;IAED,yGAAyG;IACzG,QAAQ;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAoB,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CACxC,sBAAsB,EACtB,0CAA0C,CAC3C,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAU,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAEvE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,kDAAkD;QAClD,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;gBACvB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ;gBAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC;YAEF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAA0B;YACnC;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EACT,iGAAiG;gBACnG,UAAU;gBACV,QAAQ,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;gBAChE,OAAO,EAAE,CAAC,IAA6B,EAAE,OAAgC,EAAE,EAAE;oBAC3E,MAAM,MAAM,GAAa,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAiB,EAAE,CAAC;oBAEnC,sBAAsB;oBACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAE/B,wBAAwB;wBACxB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACnB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gCACtG,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,qCAAqC,CAAC,CAAC;gCACjE,SAAS;4BACX,CAAC;wBACH,CAAC;wBAED,6CAA6C;wBAC7C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BAC1C,SAAS;wBACX,CAAC;wBAED,wCAAwC;wBACxC,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BAClD,IAAI,CAAC;gCACH,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gCAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oCACvB,MAAM,CAAC,IAAI,CACT,IAAI,KAAK,CAAC,IAAI,YAAY,KAAK,uCAAuC,CACvE,CAAC;oCACF,SAAS;gCACX,CAAC;4BACH,CAAC;4BAAC,MAAM,CAAC;gCACP,uCAAuC;4BACzC,CAAC;wBACH,CAAC;wBAED,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC3E,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,OAAO,IAAI,mBAAmB,CAC5B,yDAAyD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,CACzH,CAAC;oBACJ,CAAC;oBAED,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,IAAI,mBAAmB,CAC5B,+EAA+E,CAChF,CAAC;oBACJ,CAAC;oBAED,wDAAwD;oBACxD,MAAM,MAAM,GAAI,OAAO,CAAC,SAAS,CAAwB,IAAI,SAAS,CAAC;oBACvE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE;wBAC5B,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;wBAChC,GAAG,SAAS;qBACb,CAAC,CAAC;oBAEH,mDAAmD;oBACnD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;yBAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;yBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEd,MAAM,MAAM,GAAG,IAAI,mBAAmB,CACpC,GAAG,mBAAmB,WAAW,YAAY,GAAG,CACjD,CAAC;oBAEF,kCAAkC;oBAClC,IAAI,aAAa,EAAE,CAAC;wBAClB,MAAM,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;oBACxD,CAAC;oBAED,OAAO,MAAM,CAAC;gBAChB,CAAC;aACF;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EACT,kHAAkH;gBACpH,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,CAAC,KAA8B,EAAE,OAAgC,EAAE,EAAE;oBAC5E,MAAM,MAAM,GAAI,OAAO,CAAC,SAAS,CAAwB,IAAI,SAAS,CAAC;oBACvE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAE3C,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5C,OAAO,IAAI,mBAAmB,CAC5B,qDAAqD,CACtD,CAAC;oBACJ,CAAC;oBAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;yBACjC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;yBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEd,OAAO,IAAI,mBAAmB,CAC5B,oCAAoC,OAAO,GAAG,CAC/C,CAAC;gBACJ,CAAC;aACF;SACF,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4FAA4F;IAC5F,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAoB,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAqB,SAAS,EAAE,SAAS,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,CAAC,IAAI,CACV,uFAAuF,CACxF,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CACV,wCAAwC,QAAQ,GAAG,CACpD,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CACV,2CAA2C,QAAQ,GAAG,CACvD,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,CAAC,IAAI,CACV,mFAAmF,EACnF,kEAAkE,EAClE,0EAA0E,CAC3E,CAAC;QAEF,OAAO;YACL;gBACE,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,kFAAkF;gBACxF,OAAO;aACR;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,MAAe;QAC/B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Joke Skill - Tells random jokes from a built-in collection.
3
+ *
4
+ * Tier 1 built-in skill: no external dependencies required.
5
+ * Contains a curated set of jokes across multiple categories.
6
+ */
7
+ import { SkillBase } from '../SkillBase.js';
8
+ import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
9
+ /**
10
+ * Tells random jokes from a curated built-in collection.
11
+ *
12
+ * Tier 1 built-in skill with no external dependencies. Includes general,
13
+ * programming, and dad joke categories.
14
+ */
15
+ export declare class JokeSkill extends SkillBase {
16
+ /**
17
+ * @param config - Optional configuration (no config keys used by this skill).
18
+ */
19
+ constructor(config?: SkillConfig);
20
+ /** @returns Manifest with skill metadata and tags. */
21
+ getManifest(): SkillManifest;
22
+ /** @returns A single `tell_joke` tool that returns a random joke with optional category filter. */
23
+ getTools(): SkillToolDefinition[];
24
+ /** @returns Prompt section instructing the AI how to deliver jokes. */
25
+ getPromptSections(): SkillPromptSection[];
26
+ }
27
+ /**
28
+ * Factory function for creating JokeSkill instances.
29
+ * @param config - Optional skill configuration.
30
+ * @returns A new JokeSkill instance.
31
+ */
32
+ export declare function createSkill(config?: SkillConfig): JokeSkill;
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Joke Skill - Tells random jokes from a built-in collection.
3
+ *
4
+ * Tier 1 built-in skill: no external dependencies required.
5
+ * Contains a curated set of jokes across multiple categories.
6
+ */
7
+ import { SkillBase } from '../SkillBase.js';
8
+ import { SwaigFunctionResult } from '../../SwaigFunctionResult.js';
9
+ const JOKES = [
10
+ // General
11
+ {
12
+ category: 'general',
13
+ setup: 'Why did the scarecrow win an award?',
14
+ punchline: 'Because he was outstanding in his field.',
15
+ },
16
+ {
17
+ category: 'general',
18
+ setup: 'What do you call a fake noodle?',
19
+ punchline: 'An impasta.',
20
+ },
21
+ {
22
+ category: 'general',
23
+ setup: 'Why did the bicycle fall over?',
24
+ punchline: 'Because it was two-tired.',
25
+ },
26
+ // Programming
27
+ {
28
+ category: 'programming',
29
+ setup: 'Why do programmers prefer dark mode?',
30
+ punchline: 'Because light attracts bugs.',
31
+ },
32
+ {
33
+ category: 'programming',
34
+ setup: 'What is a programmer\'s favorite hangout place?',
35
+ punchline: 'Foo Bar.',
36
+ },
37
+ {
38
+ category: 'programming',
39
+ setup: 'Why do Java developers wear glasses?',
40
+ punchline: 'Because they can\'t C#.',
41
+ },
42
+ {
43
+ category: 'programming',
44
+ setup: 'How many programmers does it take to change a light bulb?',
45
+ punchline: 'None. That\'s a hardware problem.',
46
+ },
47
+ // Dad jokes
48
+ {
49
+ category: 'dad',
50
+ setup: 'I\'m reading a book about anti-gravity.',
51
+ punchline: 'It\'s impossible to put down.',
52
+ },
53
+ {
54
+ category: 'dad',
55
+ setup: 'What did the ocean say to the beach?',
56
+ punchline: 'Nothing, it just waved.',
57
+ },
58
+ {
59
+ category: 'dad',
60
+ setup: 'Why don\'t skeletons fight each other?',
61
+ punchline: 'They don\'t have the guts.',
62
+ },
63
+ ];
64
+ const VALID_CATEGORIES = ['general', 'programming', 'dad'];
65
+ /**
66
+ * Tells random jokes from a curated built-in collection.
67
+ *
68
+ * Tier 1 built-in skill with no external dependencies. Includes general,
69
+ * programming, and dad joke categories.
70
+ */
71
+ export class JokeSkill extends SkillBase {
72
+ /**
73
+ * @param config - Optional configuration (no config keys used by this skill).
74
+ */
75
+ constructor(config) {
76
+ super('joke', config);
77
+ }
78
+ /** @returns Manifest with skill metadata and tags. */
79
+ getManifest() {
80
+ return {
81
+ name: 'joke',
82
+ description: 'Tells random jokes from a built-in collection across several categories.',
83
+ version: '1.0.0',
84
+ tags: ['entertainment', 'joke', 'humor'],
85
+ };
86
+ }
87
+ /** @returns A single `tell_joke` tool that returns a random joke with optional category filter. */
88
+ getTools() {
89
+ return [
90
+ {
91
+ name: 'tell_joke',
92
+ description: 'Tell a random joke. Optionally specify a category to get a joke from that category.',
93
+ parameters: {
94
+ category: {
95
+ type: 'string',
96
+ description: 'Joke category: "general", "programming", or "dad". If not specified, a random joke from any category is returned.',
97
+ },
98
+ },
99
+ handler: (args) => {
100
+ const category = args.category;
101
+ let pool = JOKES;
102
+ if (category && typeof category === 'string') {
103
+ const normalized = category.toLowerCase().trim();
104
+ if (!VALID_CATEGORIES.includes(normalized)) {
105
+ return new SwaigFunctionResult(`Unknown joke category "${category}". Available categories are: ${VALID_CATEGORIES.join(', ')}.`);
106
+ }
107
+ pool = JOKES.filter((j) => j.category === normalized);
108
+ }
109
+ if (pool.length === 0) {
110
+ return new SwaigFunctionResult('Sorry, I could not find any jokes for that category.');
111
+ }
112
+ const joke = pool[Math.floor(Math.random() * pool.length)];
113
+ return new SwaigFunctionResult(`${joke.setup} ... ${joke.punchline}`);
114
+ },
115
+ },
116
+ ];
117
+ }
118
+ /** @returns Prompt section instructing the AI how to deliver jokes. */
119
+ getPromptSections() {
120
+ return [
121
+ {
122
+ title: 'Jokes',
123
+ body: 'You have the ability to tell jokes to lighten the mood.',
124
+ bullets: [
125
+ 'Use the tell_joke tool when a user asks for a joke or when humor is appropriate.',
126
+ 'Available joke categories: general, programming, and dad jokes.',
127
+ 'If the user asks for a specific type of joke, pass the category parameter.',
128
+ 'Deliver the joke naturally: say the setup, pause briefly, then deliver the punchline.',
129
+ ],
130
+ },
131
+ ];
132
+ }
133
+ }
134
+ /**
135
+ * Factory function for creating JokeSkill instances.
136
+ * @param config - Optional skill configuration.
137
+ * @returns A new JokeSkill instance.
138
+ */
139
+ export function createSkill(config) {
140
+ return new JokeSkill(config);
141
+ }
142
+ //# sourceMappingURL=joke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joke.js","sourceRoot":"","sources":["../../../src/skills/builtin/joke.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAYnE,MAAM,KAAK,GAAW;IACpB,UAAU;IACV;QACE,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,qCAAqC;QAC5C,SAAS,EAAE,0CAA0C;KACtD;IACD;QACE,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,iCAAiC;QACxC,SAAS,EAAE,aAAa;KACzB;IACD;QACE,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,gCAAgC;QACvC,SAAS,EAAE,2BAA2B;KACvC;IACD,cAAc;IACd;QACE,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,sCAAsC;QAC7C,SAAS,EAAE,8BAA8B;KAC1C;IACD;QACE,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,iDAAiD;QACxD,SAAS,EAAE,UAAU;KACtB;IACD;QACE,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,sCAAsC;QAC7C,SAAS,EAAE,yBAAyB;KACrC;IACD;QACE,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,2DAA2D;QAClE,SAAS,EAAE,mCAAmC;KAC/C;IACD,YAAY;IACZ;QACE,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,yCAAyC;QAChD,SAAS,EAAE,+BAA+B;KAC3C;IACD;QACE,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,sCAAsC;QAC7C,SAAS,EAAE,yBAAyB;KACrC;IACD;QACE,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,wCAAwC;QAC/C,SAAS,EAAE,4BAA4B;KACxC;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,OAAO,SAAU,SAAQ,SAAS;IACtC;;OAEG;IACH,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,sDAAsD;IACtD,WAAW;QACT,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,mGAAmG;IACnG,QAAQ;QACN,OAAO;YACL;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EACT,qFAAqF;gBACvF,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,mHAAmH;qBACtH;iBACF;gBACD,OAAO,EAAE,CAAC,IAA6B,EAAE,EAAE;oBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;oBAErD,IAAI,IAAI,GAAG,KAAK,CAAC;oBAEjB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;wBAEjD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC3C,OAAO,IAAI,mBAAmB,CAC5B,0BAA0B,QAAQ,gCAAgC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjG,CAAC;wBACJ,CAAC;wBAED,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;oBACxD,CAAC;oBAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtB,OAAO,IAAI,mBAAmB,CAC5B,sDAAsD,CACvD,CAAC;oBACJ,CAAC;oBAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC;oBAE5D,OAAO,IAAI,mBAAmB,CAC5B,GAAG,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,SAAS,EAAE,CACtC,CAAC;gBACJ,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,iBAAiB;QACf,OAAO;YACL;gBACE,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,yDAAyD;gBAC/D,OAAO,EAAE;oBACP,kFAAkF;oBAClF,iEAAiE;oBACjE,4EAA4E;oBAC5E,uFAAuF;iBACxF;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Math Skill - Evaluates mathematical expressions safely.
3
+ *
4
+ * Tier 1 built-in skill: no external dependencies required.
5
+ * Uses a safe parser that only allows digits, basic arithmetic operators,
6
+ * parentheses, decimal points, and spaces.
7
+ */
8
+ import { SkillBase } from '../SkillBase.js';
9
+ import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
10
+ /**
11
+ * Evaluates mathematical expressions safely using a sandboxed parser.
12
+ *
13
+ * Tier 1 built-in skill with no external dependencies. Only allows digits,
14
+ * basic arithmetic operators, parentheses, decimal points, and spaces.
15
+ */
16
+ export declare class MathSkill extends SkillBase {
17
+ /**
18
+ * @param config - Optional configuration (no config keys used by this skill).
19
+ */
20
+ constructor(config?: SkillConfig);
21
+ /** @returns Manifest with skill metadata and tags. */
22
+ getManifest(): SkillManifest;
23
+ /** @returns A single `calculate` tool that evaluates a math expression string. */
24
+ getTools(): SkillToolDefinition[];
25
+ /** @returns Prompt section instructing the AI how to use the calculate tool. */
26
+ getPromptSections(): SkillPromptSection[];
27
+ }
28
+ /**
29
+ * Factory function for creating MathSkill instances.
30
+ * @param config - Optional skill configuration.
31
+ * @returns A new MathSkill instance.
32
+ */
33
+ export declare function createSkill(config?: SkillConfig): MathSkill;
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Math Skill - Evaluates mathematical expressions safely.
3
+ *
4
+ * Tier 1 built-in skill: no external dependencies required.
5
+ * Uses a safe parser that only allows digits, basic arithmetic operators,
6
+ * parentheses, decimal points, and spaces.
7
+ */
8
+ import { SkillBase } from '../SkillBase.js';
9
+ import { SwaigFunctionResult } from '../../SwaigFunctionResult.js';
10
+ /**
11
+ * Validate that an expression contains only safe mathematical characters.
12
+ * Allowed: digits (0-9), operators (+, -, *, /, ^, %), parentheses, decimal points, spaces.
13
+ * @param expr - The expression string to validate.
14
+ * @returns True if the expression contains only allowed characters.
15
+ */
16
+ function isSafeExpression(expr) {
17
+ return /^[\d+\-*/^%().\s]+$/.test(expr);
18
+ }
19
+ /**
20
+ * Safely evaluate a mathematical expression.
21
+ * Replaces ^ with ** for exponentiation, then evaluates using Function constructor
22
+ * after validating the expression contains only safe characters.
23
+ * @param expr - The mathematical expression to evaluate.
24
+ * @returns The computed numeric result.
25
+ */
26
+ function safeEvaluate(expr) {
27
+ const trimmed = expr.trim();
28
+ if (trimmed.length === 0) {
29
+ throw new Error('Expression is empty.');
30
+ }
31
+ if (!isSafeExpression(trimmed)) {
32
+ throw new Error('Expression contains invalid characters. Only digits, operators (+, -, *, /, ^, %), parentheses, decimal points, and spaces are allowed.');
33
+ }
34
+ // Replace ^ with ** for exponentiation support
35
+ const normalized = trimmed.replace(/\^/g, '**');
36
+ // Use Function constructor (safer than eval, and we have already validated the input)
37
+ const fn = new Function(`"use strict"; return (${normalized});`);
38
+ const result = fn();
39
+ if (typeof result !== 'number' || !isFinite(result)) {
40
+ throw new Error('Expression did not evaluate to a finite number.');
41
+ }
42
+ return result;
43
+ }
44
+ /**
45
+ * Evaluates mathematical expressions safely using a sandboxed parser.
46
+ *
47
+ * Tier 1 built-in skill with no external dependencies. Only allows digits,
48
+ * basic arithmetic operators, parentheses, decimal points, and spaces.
49
+ */
50
+ export class MathSkill extends SkillBase {
51
+ /**
52
+ * @param config - Optional configuration (no config keys used by this skill).
53
+ */
54
+ constructor(config) {
55
+ super('math', config);
56
+ }
57
+ /** @returns Manifest with skill metadata and tags. */
58
+ getManifest() {
59
+ return {
60
+ name: 'math',
61
+ description: 'Evaluates mathematical expressions with basic arithmetic operations.',
62
+ version: '1.0.0',
63
+ tags: ['utility', 'math', 'calculator'],
64
+ };
65
+ }
66
+ /** @returns A single `calculate` tool that evaluates a math expression string. */
67
+ getTools() {
68
+ return [
69
+ {
70
+ name: 'calculate',
71
+ description: 'Evaluate a mathematical expression. Supports basic arithmetic: addition (+), subtraction (-), multiplication (*), division (/), exponentiation (^), modulo (%), and parentheses for grouping.',
72
+ parameters: {
73
+ expression: {
74
+ type: 'string',
75
+ description: 'The mathematical expression to evaluate (e.g., "2 + 3 * 4", "100 / (5 + 5)", "2 ^ 10").',
76
+ },
77
+ },
78
+ required: ['expression'],
79
+ handler: (args) => {
80
+ const expression = args.expression;
81
+ if (!expression || typeof expression !== 'string') {
82
+ return new SwaigFunctionResult('Please provide a mathematical expression to evaluate.');
83
+ }
84
+ try {
85
+ const result = safeEvaluate(expression);
86
+ return new SwaigFunctionResult(`The result of ${expression.trim()} is ${result}.`);
87
+ }
88
+ catch (err) {
89
+ const message = err instanceof Error ? err.message : String(err);
90
+ return new SwaigFunctionResult(`Could not evaluate the expression "${expression}": ${message}`);
91
+ }
92
+ },
93
+ },
94
+ ];
95
+ }
96
+ /** @returns Prompt section instructing the AI how to use the calculate tool. */
97
+ getPromptSections() {
98
+ return [
99
+ {
100
+ title: 'Mathematical Calculations',
101
+ body: 'You have the ability to perform mathematical calculations.',
102
+ bullets: [
103
+ 'Use the calculate tool to evaluate mathematical expressions.',
104
+ 'Supported operations: addition (+), subtraction (-), multiplication (*), division (/), exponentiation (^), and modulo (%).',
105
+ 'Parentheses can be used for grouping, e.g., (2 + 3) * 4.',
106
+ 'When a user asks you to compute something, use this tool rather than attempting mental math.',
107
+ ],
108
+ },
109
+ ];
110
+ }
111
+ }
112
+ /**
113
+ * Factory function for creating MathSkill instances.
114
+ * @param config - Optional skill configuration.
115
+ * @returns A new MathSkill instance.
116
+ */
117
+ export function createSkill(config) {
118
+ return new MathSkill(config);
119
+ }
120
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../../src/skills/builtin/math.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * MCP Gateway Skill - Placeholder for Model Context Protocol integration.
3
+ *
4
+ * Tier 3 built-in skill: stub implementation for future MCP server gateway.
5
+ * This skill will eventually allow agents to invoke tools exposed by MCP
6
+ * (Model Context Protocol) servers, enabling integration with external
7
+ * tool providers via the MCP standard.
8
+ */
9
+ import { SkillBase } from '../SkillBase.js';
10
+ import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
11
+ /**
12
+ * Placeholder skill for future Model Context Protocol (MCP) server integration.
13
+ *
14
+ * Tier 3 stub implementation. When fully implemented, this skill will allow
15
+ * agents to invoke tools exposed by external MCP servers. Currently provides
16
+ * a non-functional `mcp_invoke` tool that returns a "not yet implemented" message.
17
+ */
18
+ export declare class McpGatewaySkill extends SkillBase {
19
+ /**
20
+ * @param config - Optional configuration (reserved for future MCP server settings).
21
+ */
22
+ constructor(config?: SkillConfig);
23
+ /** @returns Manifest with placeholder metadata for the MCP gateway. */
24
+ getManifest(): SkillManifest;
25
+ /** @returns A single placeholder `mcp_invoke` tool (not yet functional). */
26
+ getTools(): SkillToolDefinition[];
27
+ /** @returns Prompt section explaining the MCP gateway placeholder status. */
28
+ getPromptSections(): SkillPromptSection[];
29
+ }
30
+ /**
31
+ * Factory function for creating McpGatewaySkill instances.
32
+ * @param config - Optional skill configuration.
33
+ * @returns A new McpGatewaySkill instance.
34
+ */
35
+ export declare function createSkill(config?: SkillConfig): McpGatewaySkill;
@@ -0,0 +1,85 @@
1
+ /**
2
+ * MCP Gateway Skill - Placeholder for Model Context Protocol integration.
3
+ *
4
+ * Tier 3 built-in skill: stub implementation for future MCP server gateway.
5
+ * This skill will eventually allow agents to invoke tools exposed by MCP
6
+ * (Model Context Protocol) servers, enabling integration with external
7
+ * tool providers via the MCP standard.
8
+ */
9
+ import { SkillBase } from '../SkillBase.js';
10
+ import { SwaigFunctionResult } from '../../SwaigFunctionResult.js';
11
+ /**
12
+ * Placeholder skill for future Model Context Protocol (MCP) server integration.
13
+ *
14
+ * Tier 3 stub implementation. When fully implemented, this skill will allow
15
+ * agents to invoke tools exposed by external MCP servers. Currently provides
16
+ * a non-functional `mcp_invoke` tool that returns a "not yet implemented" message.
17
+ */
18
+ export class McpGatewaySkill extends SkillBase {
19
+ /**
20
+ * @param config - Optional configuration (reserved for future MCP server settings).
21
+ */
22
+ constructor(config) {
23
+ super('mcp_gateway', config);
24
+ }
25
+ /** @returns Manifest with placeholder metadata for the MCP gateway. */
26
+ getManifest() {
27
+ return {
28
+ name: 'mcp_gateway',
29
+ description: 'MCP protocol gateway (placeholder). Will provide integration with Model Context Protocol servers for external tool invocation.',
30
+ version: '0.1.0',
31
+ author: 'SignalWire',
32
+ tags: ['mcp', 'gateway', 'protocol', 'tools', 'integration', 'placeholder'],
33
+ };
34
+ }
35
+ /** @returns A single placeholder `mcp_invoke` tool (not yet functional). */
36
+ getTools() {
37
+ return [
38
+ {
39
+ name: 'mcp_invoke',
40
+ description: 'Invoke a method on an MCP (Model Context Protocol) server. Currently a placeholder for future implementation.',
41
+ parameters: {
42
+ server: {
43
+ type: 'string',
44
+ description: 'The MCP server name or URL to connect to.',
45
+ },
46
+ method: {
47
+ type: 'string',
48
+ description: 'The method/tool name to invoke on the MCP server.',
49
+ },
50
+ params: {
51
+ type: 'object',
52
+ description: 'Parameters to pass to the MCP method.',
53
+ },
54
+ },
55
+ required: ['server', 'method'],
56
+ handler: () => {
57
+ return new SwaigFunctionResult('MCP gateway is not yet implemented. Configure MCP servers to use this skill.');
58
+ },
59
+ },
60
+ ];
61
+ }
62
+ /** @returns Prompt section explaining the MCP gateway placeholder status. */
63
+ getPromptSections() {
64
+ return [
65
+ {
66
+ title: 'MCP Gateway (Placeholder)',
67
+ body: 'The MCP gateway skill is available but not yet fully implemented.',
68
+ bullets: [
69
+ 'The mcp_invoke tool is a placeholder for future MCP (Model Context Protocol) integration.',
70
+ 'When implemented, it will allow you to invoke tools from external MCP servers.',
71
+ 'If a user asks about MCP functionality, let them know it is planned for a future release.',
72
+ ],
73
+ },
74
+ ];
75
+ }
76
+ }
77
+ /**
78
+ * Factory function for creating McpGatewaySkill instances.
79
+ * @param config - Optional skill configuration.
80
+ * @returns A new McpGatewaySkill instance.
81
+ */
82
+ export function createSkill(config) {
83
+ return new McpGatewaySkill(config);
84
+ }
85
+ //# sourceMappingURL=mcp_gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp_gateway.js","sourceRoot":"","sources":["../../../src/skills/builtin/mcp_gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C;;OAEG;IACH,YAAY,MAAoB;QAC9B,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,uEAAuE;IACvE,WAAW;QACT,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,gIAAgI;YAC7I,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC;SAC5E,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,QAAQ;QACN,OAAO;YACL;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EACT,+GAA+G;gBACjH,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2CAA2C;qBACzD;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,mDAAmD;qBACjE;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uCAAuC;qBACrD;iBACF;gBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAC9B,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,IAAI,mBAAmB,CAC5B,8EAA8E,CAC/E,CAAC;gBACJ,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,iBAAiB;QACf,OAAO;YACL;gBACE,KAAK,EAAE,2BAA2B;gBAClC,IAAI,EAAE,mEAAmE;gBACzE,OAAO,EAAE;oBACP,2FAA2F;oBAC3F,gFAAgF;oBAChF,2FAA2F;iBAC5F;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Native Vector Search Skill - In-memory document search using TF-IDF-like scoring.
3
+ *
4
+ * Tier 3 built-in skill: no external dependencies or API keys required.
5
+ * Implements a simple text-matching algorithm based on word overlap scoring
6
+ * (TF-IDF inspired) to search through a set of in-memory documents.
7
+ * Suitable for small to medium document collections.
8
+ */
9
+ import { SkillBase } from '../SkillBase.js';
10
+ import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
11
+ /**
12
+ * In-memory document search using TF-IDF-like word overlap scoring.
13
+ *
14
+ * Tier 3 built-in skill with no external dependencies or API keys required.
15
+ * Documents are provided via the `documents` config array and indexed at
16
+ * construction time. Suitable for small to medium document collections.
17
+ */
18
+ export declare class NativeVectorSearchSkill extends SkillBase {
19
+ private _documents;
20
+ private _tokenizedDocs;
21
+ private _docTfs;
22
+ private _idf;
23
+ private _indexed;
24
+ /**
25
+ * @param config - Optional configuration; supports `documents` array of {id, text, metadata?}.
26
+ */
27
+ constructor(config?: SkillConfig);
28
+ /** @returns Manifest with config schema for the documents array. */
29
+ getManifest(): SkillManifest;
30
+ /**
31
+ * Load and index documents from configuration.
32
+ */
33
+ private _loadDocuments;
34
+ /** @returns A single `search_documents` tool that searches indexed documents by text similarity. */
35
+ getTools(): SkillToolDefinition[];
36
+ /** @returns Prompt section describing the local document search capabilities. */
37
+ getPromptSections(): SkillPromptSection[];
38
+ }
39
+ /**
40
+ * Factory function for creating NativeVectorSearchSkill instances.
41
+ * @param config - Optional skill configuration.
42
+ * @returns A new NativeVectorSearchSkill instance.
43
+ */
44
+ export declare function createSkill(config?: SkillConfig): NativeVectorSearchSkill;