@usestratus/sdk 1.6.0 → 1.9.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 (59) hide show
  1. package/README.md +109 -2
  2. package/dist/ai-sdk/index.d.ts +294 -0
  3. package/dist/ai-sdk/index.d.ts.map +1 -0
  4. package/dist/ai-sdk/index.js +741 -0
  5. package/dist/ai-sdk/index.js.map +1 -0
  6. package/dist/azure/index.d.ts +4 -4
  7. package/dist/azure/index.d.ts.map +1 -1
  8. package/dist/azure/index.js +1 -1
  9. package/dist/azure/index.js.map +1 -1
  10. package/dist/azure/responses-model.js +15 -5
  11. package/dist/azure/responses-model.js.map +1 -1
  12. package/dist/core/codemode/index.d.ts +1 -2
  13. package/dist/core/codemode/index.d.ts.map +1 -1
  14. package/dist/core/codemode/index.js.map +1 -1
  15. package/dist/core/index.d.ts +41 -34
  16. package/dist/core/index.d.ts.map +1 -1
  17. package/dist/core/index.js +18 -15
  18. package/dist/core/index.js.map +1 -1
  19. package/dist/core/run.d.ts.map +1 -1
  20. package/dist/core/run.js +1 -1
  21. package/dist/core/run.js.map +1 -1
  22. package/dist/core/session.d.ts.map +1 -1
  23. package/dist/core/session.js.map +1 -1
  24. package/dist/core/subagent.js +1 -1
  25. package/dist/core/subagent.js.map +1 -1
  26. package/dist/core/types.d.ts +4 -1
  27. package/dist/core/types.d.ts.map +1 -1
  28. package/dist/core/utils/zod.d.ts.map +1 -1
  29. package/dist/core/utils/zod.js.map +1 -1
  30. package/dist/core/validate-agent.d.ts.map +1 -1
  31. package/dist/core/validate-agent.js.map +1 -1
  32. package/dist/core/workflow-draft.d.ts +32 -0
  33. package/dist/core/workflow-draft.d.ts.map +1 -0
  34. package/dist/core/workflow-draft.js +84 -0
  35. package/dist/core/workflow-draft.js.map +1 -0
  36. package/dist/core/workflow-manager.d.ts +25 -0
  37. package/dist/core/workflow-manager.d.ts.map +1 -0
  38. package/dist/core/workflow-manager.js +178 -0
  39. package/dist/core/workflow-manager.js.map +1 -0
  40. package/dist/core/workflow-saved.d.ts +21 -0
  41. package/dist/core/workflow-saved.d.ts.map +1 -0
  42. package/dist/core/workflow-saved.js +79 -0
  43. package/dist/core/workflow-saved.js.map +1 -0
  44. package/dist/core/workflow.d.ts +262 -0
  45. package/dist/core/workflow.d.ts.map +1 -0
  46. package/dist/core/workflow.js +560 -0
  47. package/dist/core/workflow.js.map +1 -0
  48. package/dist/effect/index.d.ts +39 -0
  49. package/dist/effect/index.d.ts.map +1 -0
  50. package/dist/effect/index.js +90 -0
  51. package/dist/effect/index.js.map +1 -0
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +1 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/testing/index.d.ts +1 -1
  57. package/dist/testing/index.d.ts.map +1 -1
  58. package/dist/testing/index.js.map +1 -1
  59. package/package.json +19 -5
@@ -0,0 +1,90 @@
1
+ import { Data, Effect } from "effect";
2
+ import { resumeRun, run, stream, } from "../core/run";
3
+ import { tool } from "../core/tool";
4
+ export class StratusEffectError extends Data.TaggedError("StratusEffectError") {
5
+ }
6
+ function errorMessage(cause) {
7
+ if (cause instanceof Error)
8
+ return cause.message;
9
+ return String(cause);
10
+ }
11
+ function toStratusEffectError(cause) {
12
+ return new StratusEffectError({
13
+ message: errorMessage(cause),
14
+ cause,
15
+ });
16
+ }
17
+ function withEffectSignal(options, signal) {
18
+ return { ...(options ?? {}), signal: options?.signal ?? signal };
19
+ }
20
+ function provideLayer(self, layer) {
21
+ if (!layer) {
22
+ return self;
23
+ }
24
+ return Effect.provide(self, layer);
25
+ }
26
+ function runProvided(self, layer, signal) {
27
+ return Effect.runPromise(provideLayer(self, layer), signal ? { signal } : undefined);
28
+ }
29
+ function responseToStream(response) {
30
+ return (async function* () {
31
+ if (response.content) {
32
+ yield { type: "content_delta", content: response.content };
33
+ }
34
+ for (const toolCall of response.toolCalls) {
35
+ yield {
36
+ type: "tool_call_start",
37
+ toolCall: { id: toolCall.id, name: toolCall.function.name },
38
+ };
39
+ yield {
40
+ type: "tool_call_delta",
41
+ toolCallId: toolCall.id,
42
+ arguments: toolCall.function.arguments,
43
+ };
44
+ yield { type: "tool_call_done", toolCallId: toolCall.id };
45
+ }
46
+ yield { type: "done", response };
47
+ })();
48
+ }
49
+ export function effectTool(config) {
50
+ return tool({
51
+ name: config.name,
52
+ description: config.description,
53
+ parameters: config.parameters,
54
+ execute: (context, params, options) => runProvided(config.execute(context, params, options), config.layer, options?.signal),
55
+ timeout: config.timeout,
56
+ isEnabled: config.isEnabled,
57
+ needsApproval: config.needsApproval,
58
+ retries: config.retries,
59
+ });
60
+ }
61
+ export function effectModel(config) {
62
+ return {
63
+ getResponse: (request, options) => runProvided(config.getResponse(request, options), config.layer, options?.signal),
64
+ async *getStreamedResponse(request, options) {
65
+ const iterable = config.getStreamedResponse
66
+ ? await runProvided(config.getStreamedResponse(request, options), config.layer, options?.signal)
67
+ : responseToStream(await runProvided(config.getResponse(request, options), config.layer, options?.signal));
68
+ yield* iterable;
69
+ },
70
+ };
71
+ }
72
+ export function runEffect(agent, input, options) {
73
+ return Effect.tryPromise({
74
+ try: (signal) => run(agent, input, withEffectSignal(options, signal)),
75
+ catch: toStratusEffectError,
76
+ });
77
+ }
78
+ export function resumeRunEffect(interrupted, approvals, options) {
79
+ return Effect.tryPromise({
80
+ try: (signal) => resumeRun(interrupted, approvals, withEffectSignal(options, signal)),
81
+ catch: toStratusEffectError,
82
+ });
83
+ }
84
+ export function streamEffect(agent, input, options) {
85
+ return Effect.try({
86
+ try: () => stream(agent, input, options),
87
+ catch: toStratusEffectError,
88
+ });
89
+ }
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/effect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAc,MAAM,QAAQ,CAAC;AAWlD,OAAO,EAEN,SAAS,EACT,GAAG,EAGH,MAAM,GAEN,MAAM,aAAa,CAAC;AACrB,OAAO,EAA8C,IAAI,EAAE,MAAM,cAAc,CAAC;AAGhF,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAG3E;CAAG;AAmCL,SAAS,YAAY,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC3C,OAAO,IAAI,kBAAkB,CAAC;QAC7B,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC5B,KAAK;KACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACxB,OAA6B,EAC7B,MAAmB;IAEnB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAK,EAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,YAAY,CACpB,IAA2C,EAC3C,KAAiD;IAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,IAAsC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAA6C,CAAC;AAChF,CAAC;AAED,SAAS,WAAW,CACnB,IAA2C,EAC3C,KAA4D,EAC5D,MAAoB;IAEpB,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAuB;IAChD,OAAO,CAAC,KAAK,SAAS,CAAC;QACtB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM;gBACL,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;aAC3D,CAAC;YACF,MAAM;gBACL,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;aACtC,CAAC;YACF,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;QAC3D,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC,CAAC,EAAE,CAAC;AACN,CAAC;AAED,MAAM,UAAU,UAAU,CACzB,MAAgE;IAEhE,OAAO,IAAI,CAAC;QACX,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CACrC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;QACrF,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,OAAO,EAAE,MAAM,CAAC,OAAO;KACvB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,MAA8C;IAE9C,OAAO;QACN,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CACjC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;QACjF,KAAK,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB;gBAC1C,CAAC,CAAC,MAAM,WAAW,CACjB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,EAC5C,MAAM,CAAC,KAAK,EACZ,OAAO,EAAE,MAAM,CACf;gBACF,CAAC,CAAC,gBAAgB,CAChB,MAAM,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CACtF,CAAC;YACJ,KAAK,CAAC,CAAC,QAAQ,CAAC;QACjB,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CACxB,KAA+B,EAC/B,KAA6B,EAC7B,OAAuC;IAEvC,OAAO,MAAM,CAAC,UAAU,CAAC;QACxB,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,KAAK,EAAE,oBAAoB;KAC3B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC9B,WAA0C,EAC1C,SAAyB,EACzB,OAAuC;IAEvC,OAAO,MAAM,CAAC,UAAU,CAAC;QACxB,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,SAAS,CAAoB,WAAW,EAAE,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxF,KAAK,EAAE,oBAAoB;KAC3B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,KAA+B,EAC/B,KAA6B,EAC7B,OAA0C;IAE1C,OAAO,MAAM,CAAC,GAAG,CAAC;QACjB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;QACxC,KAAK,EAAE,oBAAoB;KAC3B,CAAC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./core/index";
2
1
  export * from "./azure/index";
2
+ export * from "./core/index";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./core/index";
2
1
  export * from "./azure/index";
2
+ export * from "./core/index";
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -1,4 +1,4 @@
1
- export { createMockModel } from "./mock-model";
2
1
  export type { CapturedMockModel, MockModelOptions } from "./mock-model";
2
+ export { createMockModel } from "./mock-model";
3
3
  export { textResponse, toolCallResponse } from "./response-builders";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usestratus/sdk",
3
- "version": "1.6.0",
3
+ "version": "1.9.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -17,6 +17,14 @@
17
17
  "types": "./dist/azure/index.d.ts",
18
18
  "import": "./dist/azure/index.js"
19
19
  },
20
+ "./effect": {
21
+ "types": "./dist/effect/index.d.ts",
22
+ "import": "./dist/effect/index.js"
23
+ },
24
+ "./ai-sdk": {
25
+ "types": "./dist/ai-sdk/index.d.ts",
26
+ "import": "./dist/ai-sdk/index.js"
27
+ },
20
28
  "./testing": {
21
29
  "types": "./dist/testing/index.d.ts",
22
30
  "import": "./dist/testing/index.js"
@@ -39,16 +47,22 @@
39
47
  "scripts": {
40
48
  "build": "tsc -p tsconfig.build.json",
41
49
  "typecheck": "tsc --noEmit",
42
- "lint": "eslint .",
43
- "lint:fix": "eslint . --fix",
44
- "format": "prettier --write .",
45
- "format:check": "prettier --check .",
50
+ "lint": "biome check .",
51
+ "lint:fix": "biome check --write .",
46
52
  "test": "bun test"
47
53
  },
48
54
  "peerDependencies": {
55
+ "effect": "^3.21.2",
49
56
  "zod": "^4.0.0"
50
57
  },
58
+ "peerDependenciesMeta": {
59
+ "effect": {
60
+ "optional": true
61
+ }
62
+ },
51
63
  "devDependencies": {
64
+ "@types/node": "^25.9.1",
65
+ "effect": "^3.21.2",
52
66
  "zod": "^4.0.0"
53
67
  }
54
68
  }