praisonai 1.3.6 → 1.5.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 (170) hide show
  1. package/dist/agent/audio.d.ts +190 -0
  2. package/dist/agent/audio.js +302 -0
  3. package/dist/agent/index.d.ts +2 -0
  4. package/dist/agent/index.js +5 -1
  5. package/dist/ai/agent-loop.d.ts +177 -0
  6. package/dist/ai/agent-loop.js +313 -0
  7. package/dist/ai/devtools.d.ts +74 -0
  8. package/dist/ai/devtools.js +216 -0
  9. package/dist/ai/embed.d.ts +71 -0
  10. package/dist/ai/embed.js +154 -0
  11. package/dist/ai/generate-image.d.ts +66 -0
  12. package/dist/ai/generate-image.js +138 -0
  13. package/dist/ai/generate-object.d.ts +132 -0
  14. package/dist/ai/generate-object.js +206 -0
  15. package/dist/ai/generate-text.d.ts +201 -0
  16. package/dist/ai/generate-text.js +253 -0
  17. package/dist/ai/index.d.ts +27 -0
  18. package/dist/ai/index.js +140 -0
  19. package/dist/ai/mcp.d.ts +181 -0
  20. package/dist/ai/mcp.js +234 -0
  21. package/dist/ai/middleware.d.ts +110 -0
  22. package/dist/ai/middleware.js +186 -0
  23. package/dist/ai/models.d.ts +67 -0
  24. package/dist/ai/models.js +249 -0
  25. package/dist/ai/multimodal.d.ts +125 -0
  26. package/dist/ai/multimodal.js +270 -0
  27. package/dist/ai/nextjs.d.ts +122 -0
  28. package/dist/ai/nextjs.js +218 -0
  29. package/dist/ai/server.d.ts +126 -0
  30. package/dist/ai/server.js +336 -0
  31. package/dist/ai/speech.d.ts +135 -0
  32. package/dist/ai/speech.js +296 -0
  33. package/dist/ai/telemetry.d.ts +162 -0
  34. package/dist/ai/telemetry.js +311 -0
  35. package/dist/ai/tool-approval.d.ts +225 -0
  36. package/dist/ai/tool-approval.js +407 -0
  37. package/dist/ai/tools.d.ts +93 -0
  38. package/dist/ai/tools.js +89 -0
  39. package/dist/ai/types.d.ts +47 -0
  40. package/dist/ai/types.js +5 -0
  41. package/dist/ai/ui-message.d.ts +218 -0
  42. package/dist/ai/ui-message.js +291 -0
  43. package/dist/cli/commands/approval.d.ts +10 -0
  44. package/dist/cli/commands/approval.js +274 -0
  45. package/dist/cli/commands/observability.d.ts +7 -0
  46. package/dist/cli/commands/observability.js +202 -12
  47. package/dist/cli/commands/providers.d.ts +5 -2
  48. package/dist/cli/commands/providers.js +204 -5
  49. package/dist/cli/commands/tools.d.ts +11 -1
  50. package/dist/cli/commands/tools.js +450 -64
  51. package/dist/cli/output/errors.d.ts +1 -0
  52. package/dist/cli/output/errors.js +1 -0
  53. package/dist/cli/spec/cli-spec.js +17 -0
  54. package/dist/index.d.ts +21 -4
  55. package/dist/index.js +275 -19
  56. package/dist/integrations/computer-use.d.ts +182 -0
  57. package/dist/integrations/computer-use.js +356 -0
  58. package/dist/integrations/postgres.d.ts +162 -0
  59. package/dist/integrations/postgres.js +396 -0
  60. package/dist/integrations/slack.d.ts +145 -0
  61. package/dist/integrations/slack.js +270 -0
  62. package/dist/knowledge/chonkie-adapter.d.ts +99 -0
  63. package/dist/knowledge/chonkie-adapter.js +268 -0
  64. package/dist/knowledge/index.d.ts +5 -0
  65. package/dist/knowledge/index.js +29 -1
  66. package/dist/knowledge/query-engine.d.ts +136 -0
  67. package/dist/knowledge/query-engine.js +214 -0
  68. package/dist/knowledge/rag-pipeline.d.ts +192 -0
  69. package/dist/knowledge/rag-pipeline.js +283 -0
  70. package/dist/knowledge/readers.d.ts +129 -0
  71. package/dist/knowledge/readers.js +393 -0
  72. package/dist/llm/providers/ai-sdk/types.d.ts +49 -3
  73. package/dist/llm/providers/ai-sdk/types.js +169 -15
  74. package/dist/mcp/index.d.ts +188 -0
  75. package/dist/mcp/index.js +373 -0
  76. package/dist/mcp/server.d.ts +211 -0
  77. package/dist/mcp/server.js +412 -0
  78. package/dist/memory/docs-manager.d.ts +165 -0
  79. package/dist/memory/docs-manager.js +294 -0
  80. package/dist/memory/hooks.d.ts +154 -0
  81. package/dist/memory/hooks.js +228 -0
  82. package/dist/memory/rules-manager.d.ts +182 -0
  83. package/dist/memory/rules-manager.js +244 -0
  84. package/dist/observability/adapters/console.d.ts +33 -0
  85. package/dist/observability/adapters/console.js +71 -0
  86. package/dist/observability/adapters/external/arize.d.ts +20 -0
  87. package/dist/observability/adapters/external/arize.js +22 -0
  88. package/dist/observability/adapters/external/axiom.d.ts +20 -0
  89. package/dist/observability/adapters/external/axiom.js +22 -0
  90. package/dist/observability/adapters/external/braintrust.d.ts +20 -0
  91. package/dist/observability/adapters/external/braintrust.js +22 -0
  92. package/dist/observability/adapters/external/helicone.d.ts +20 -0
  93. package/dist/observability/adapters/external/helicone.js +22 -0
  94. package/dist/observability/adapters/external/laminar.d.ts +20 -0
  95. package/dist/observability/adapters/external/laminar.js +22 -0
  96. package/dist/observability/adapters/external/langfuse.d.ts +28 -0
  97. package/dist/observability/adapters/external/langfuse.js +186 -0
  98. package/dist/observability/adapters/external/langsmith.d.ts +21 -0
  99. package/dist/observability/adapters/external/langsmith.js +83 -0
  100. package/dist/observability/adapters/external/langwatch.d.ts +20 -0
  101. package/dist/observability/adapters/external/langwatch.js +22 -0
  102. package/dist/observability/adapters/external/maxim.d.ts +20 -0
  103. package/dist/observability/adapters/external/maxim.js +22 -0
  104. package/dist/observability/adapters/external/patronus.d.ts +20 -0
  105. package/dist/observability/adapters/external/patronus.js +22 -0
  106. package/dist/observability/adapters/external/scorecard.d.ts +20 -0
  107. package/dist/observability/adapters/external/scorecard.js +22 -0
  108. package/dist/observability/adapters/external/signoz.d.ts +20 -0
  109. package/dist/observability/adapters/external/signoz.js +22 -0
  110. package/dist/observability/adapters/external/traceloop.d.ts +20 -0
  111. package/dist/observability/adapters/external/traceloop.js +22 -0
  112. package/dist/observability/adapters/external/weave.d.ts +20 -0
  113. package/dist/observability/adapters/external/weave.js +22 -0
  114. package/dist/observability/adapters/index.d.ts +19 -0
  115. package/dist/observability/adapters/index.js +289 -0
  116. package/dist/observability/adapters/memory.d.ts +41 -0
  117. package/dist/observability/adapters/memory.js +190 -0
  118. package/dist/observability/adapters/noop.d.ts +25 -0
  119. package/dist/observability/adapters/noop.js +64 -0
  120. package/dist/observability/index.d.ts +39 -78
  121. package/dist/observability/index.js +99 -150
  122. package/dist/observability/types.d.ts +165 -0
  123. package/dist/observability/types.js +165 -0
  124. package/dist/tools/builtins/airweave.d.ts +32 -0
  125. package/dist/tools/builtins/airweave.js +119 -0
  126. package/dist/tools/builtins/bedrock-agentcore.d.ts +62 -0
  127. package/dist/tools/builtins/bedrock-agentcore.js +233 -0
  128. package/dist/tools/builtins/code-execution.d.ts +36 -0
  129. package/dist/tools/builtins/code-execution.js +136 -0
  130. package/dist/tools/builtins/code-mode.d.ts +54 -0
  131. package/dist/tools/builtins/code-mode.js +167 -0
  132. package/dist/tools/builtins/custom.d.ts +42 -0
  133. package/dist/tools/builtins/custom.js +195 -0
  134. package/dist/tools/builtins/exa.d.ts +53 -0
  135. package/dist/tools/builtins/exa.js +112 -0
  136. package/dist/tools/builtins/firecrawl.d.ts +56 -0
  137. package/dist/tools/builtins/firecrawl.js +158 -0
  138. package/dist/tools/builtins/index.d.ts +45 -0
  139. package/dist/tools/builtins/index.js +180 -0
  140. package/dist/tools/builtins/parallel.d.ts +30 -0
  141. package/dist/tools/builtins/parallel.js +113 -0
  142. package/dist/tools/builtins/perplexity.d.ts +32 -0
  143. package/dist/tools/builtins/perplexity.js +113 -0
  144. package/dist/tools/builtins/superagent.d.ts +66 -0
  145. package/dist/tools/builtins/superagent.js +187 -0
  146. package/dist/tools/builtins/tavily.d.ts +99 -0
  147. package/dist/tools/builtins/tavily.js +285 -0
  148. package/dist/tools/builtins/valyu.d.ts +65 -0
  149. package/dist/tools/builtins/valyu.js +193 -0
  150. package/dist/tools/index.d.ts +5 -0
  151. package/dist/tools/index.js +16 -2
  152. package/dist/tools/registry/index.d.ts +9 -0
  153. package/dist/tools/registry/index.js +28 -0
  154. package/dist/tools/registry/middleware.d.ts +43 -0
  155. package/dist/tools/registry/middleware.js +220 -0
  156. package/dist/tools/registry/registry.d.ts +92 -0
  157. package/dist/tools/registry/registry.js +280 -0
  158. package/dist/tools/registry/types.d.ts +217 -0
  159. package/dist/tools/registry/types.js +49 -0
  160. package/dist/tools/subagent.d.ts +131 -0
  161. package/dist/tools/subagent.js +185 -0
  162. package/dist/tools/tools.d.ts +74 -0
  163. package/dist/tools/tools.js +133 -0
  164. package/dist/workflows/index.d.ts +76 -1
  165. package/dist/workflows/index.js +125 -6
  166. package/dist/workflows/loop.d.ts +111 -0
  167. package/dist/workflows/loop.js +274 -0
  168. package/dist/workflows/repeat.d.ts +115 -0
  169. package/dist/workflows/repeat.js +144 -0
  170. package/package.json +4 -1
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ /**
3
+ * Repeat Pattern - Repeat a step until a condition is met
4
+ *
5
+ * Implements the evaluator-optimizer pattern where a step
6
+ * is executed repeatedly until either:
7
+ * - A condition function returns true
8
+ * - Maximum iterations are reached
9
+ *
10
+ * @example Basic usage
11
+ * ```typescript
12
+ * import { repeat, Agent } from 'praisonai';
13
+ *
14
+ * const generator = new Agent({ instructions: "Improve the text" });
15
+ *
16
+ * const result = await repeat(generator, {
17
+ * until: (ctx) => ctx.lastResult?.includes('perfect'),
18
+ * maxIterations: 5
19
+ * }).run('Make this text better');
20
+ * ```
21
+ *
22
+ * @example With custom evaluator
23
+ * ```typescript
24
+ * const result = await repeat(generator, {
25
+ * until: async (ctx) => {
26
+ * const score = await evaluateQuality(ctx.lastResult);
27
+ * return score >= 0.9;
28
+ * },
29
+ * maxIterations: 10
30
+ * }).run('Initial draft');
31
+ * ```
32
+ */
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.Repeat = void 0;
35
+ exports.repeat = repeat;
36
+ const crypto_1 = require("crypto");
37
+ /**
38
+ * Repeat class - Execute a step repeatedly until condition is met
39
+ */
40
+ class Repeat {
41
+ constructor(step, config = {}) {
42
+ this.id = (0, crypto_1.randomUUID)();
43
+ this.step = step;
44
+ this.config = {
45
+ until: config.until ?? (() => false),
46
+ maxIterations: config.maxIterations ?? 10,
47
+ onIteration: config.onIteration ?? (() => { }),
48
+ delayMs: config.delayMs ?? 0,
49
+ };
50
+ }
51
+ /**
52
+ * Execute the step with given input
53
+ */
54
+ async executeStep(input, previousResult, context) {
55
+ // Replace {{previous}} placeholder with previous result
56
+ let prompt = input;
57
+ if (previousResult !== null) {
58
+ prompt = prompt.replace(/\{\{previous\}\}/g, previousResult);
59
+ }
60
+ // Execute based on step type
61
+ if (typeof this.step === 'function') {
62
+ return await this.step(prompt, previousResult);
63
+ }
64
+ // If step has a chat method (Agent-like)
65
+ if (this.step && typeof this.step.chat === 'function') {
66
+ return await this.step.chat(prompt);
67
+ }
68
+ // If step has an execute method (WorkflowStep-like)
69
+ if (this.step && typeof this.step.execute === 'function') {
70
+ return await this.step.execute(prompt, context);
71
+ }
72
+ throw new Error('Step must be a function, Agent (with chat method), or have execute method');
73
+ }
74
+ /**
75
+ * Run the repeat pattern
76
+ */
77
+ async run(input, context) {
78
+ const allResults = [];
79
+ let lastResult = null;
80
+ let conditionMet = false;
81
+ for (let i = 0; i < this.config.maxIterations; i++) {
82
+ // Execute the step
83
+ const result = await this.executeStep(input, lastResult, context);
84
+ allResults.push(result);
85
+ lastResult = result;
86
+ // Call iteration callback
87
+ this.config.onIteration(result, i);
88
+ // Create repeat context for condition check
89
+ const repeatContext = {
90
+ lastResult: result,
91
+ iteration: i,
92
+ allResults: [...allResults],
93
+ metadata: {},
94
+ workflowContext: context,
95
+ };
96
+ // Check until condition
97
+ const shouldStop = await this.config.until(repeatContext);
98
+ if (shouldStop) {
99
+ conditionMet = true;
100
+ break;
101
+ }
102
+ // Optional delay between iterations
103
+ if (this.config.delayMs > 0 && i < this.config.maxIterations - 1) {
104
+ await this.delay(this.config.delayMs);
105
+ }
106
+ }
107
+ return {
108
+ result: lastResult ?? '',
109
+ iterations: allResults,
110
+ count: allResults.length,
111
+ conditionMet,
112
+ maxReached: !conditionMet && allResults.length >= this.config.maxIterations,
113
+ };
114
+ }
115
+ /**
116
+ * Helper to delay execution
117
+ */
118
+ delay(ms) {
119
+ return new Promise(resolve => setTimeout(resolve, ms));
120
+ }
121
+ }
122
+ exports.Repeat = Repeat;
123
+ /**
124
+ * Convenience function to create a Repeat pattern
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * import { repeat, Agent } from 'praisonai';
129
+ *
130
+ * const optimizer = new Agent({ instructions: "Improve: {{previous}}" });
131
+ *
132
+ * const result = await repeat(optimizer, {
133
+ * until: (ctx) => ctx.iteration >= 3,
134
+ * maxIterations: 5
135
+ * }).run('Initial text');
136
+ *
137
+ * console.log(result.iterations); // ['improved 1', 'improved 2', 'improved 3']
138
+ * ```
139
+ */
140
+ function repeat(step, config) {
141
+ return new Repeat(step, config);
142
+ }
143
+ // Default export
144
+ exports.default = Repeat;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "praisonai",
3
- "version": "1.3.6",
3
+ "version": "1.5.0",
4
4
  "description": "PraisonAI TypeScript AI Agents Framework - Node.js, npm, and Javascript AI Agents Framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -72,6 +72,9 @@
72
72
  "openai": "^4.81.0"
73
73
  },
74
74
  "optionalDependencies": {
75
+ "@airweave/sdk": ">=0.1.0",
76
+ "@mendable/firecrawl-js": ">=1.0.0",
77
+ "bedrock-agentcore": ">=0.1.0",
75
78
  "boxen": "^7.1.1",
76
79
  "chalk": "^4.1.2",
77
80
  "cli-table3": "^0.6.3",