@superblocksteam/vite-plugin-file-sync 2.0.41-next.30 → 2.0.41-next.32

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 (187) hide show
  1. package/dist/ai-service/agent/apis.js +1 -1
  2. package/dist/ai-service/agent/apis.js.map +1 -1
  3. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  4. package/dist/ai-service/agent/tools/build-finalize.js +15 -2
  5. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  6. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  7. package/dist/ai-service/agent/tools/debug-cache.js +3 -2
  8. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  9. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  10. package/dist/ai-service/agent/utils.js +170 -159
  11. package/dist/ai-service/agent/utils.js.map +1 -1
  12. package/dist/ai-service/app-interface/file-system-interface.d.ts.map +1 -1
  13. package/dist/ai-service/app-interface/file-system-interface.js +117 -68
  14. package/dist/ai-service/app-interface/file-system-interface.js.map +1 -1
  15. package/dist/ai-service/app-interface/linter.d.ts.map +1 -1
  16. package/dist/ai-service/app-interface/linter.js +103 -54
  17. package/dist/ai-service/app-interface/linter.js.map +1 -1
  18. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  19. package/dist/ai-service/app-interface/shell.js +227 -160
  20. package/dist/ai-service/app-interface/shell.js.map +1 -1
  21. package/dist/ai-service/artifacts/bolt.d.ts.map +1 -1
  22. package/dist/ai-service/artifacts/bolt.js +88 -30
  23. package/dist/ai-service/artifacts/bolt.js.map +1 -1
  24. package/dist/ai-service/chat/extract-history.d.ts +3 -1
  25. package/dist/ai-service/chat/extract-history.d.ts.map +1 -1
  26. package/dist/ai-service/chat/extract-history.js +6 -1
  27. package/dist/ai-service/chat/extract-history.js.map +1 -1
  28. package/dist/ai-service/context/app-context.d.ts.map +1 -1
  29. package/dist/ai-service/context/app-context.js +305 -241
  30. package/dist/ai-service/context/app-context.js.map +1 -1
  31. package/dist/ai-service/index.d.ts +1 -0
  32. package/dist/ai-service/index.d.ts.map +1 -1
  33. package/dist/ai-service/index.js +72 -59
  34. package/dist/ai-service/index.js.map +1 -1
  35. package/dist/ai-service/integration-validator.d.ts +1 -1
  36. package/dist/ai-service/integration-validator.d.ts.map +1 -1
  37. package/dist/ai-service/integration-validator.js +6 -3
  38. package/dist/ai-service/integration-validator.js.map +1 -1
  39. package/dist/ai-service/integrations/metadata/database.d.ts.map +1 -1
  40. package/dist/ai-service/integrations/metadata/database.js +1 -1
  41. package/dist/ai-service/integrations/metadata/database.js.map +1 -1
  42. package/dist/ai-service/integrations/metadata/graphql-based.js +1 -1
  43. package/dist/ai-service/integrations/metadata/graphql-based.js.map +1 -1
  44. package/dist/ai-service/integrations/metadata/open-api.js +1 -1
  45. package/dist/ai-service/integrations/metadata/open-api.js.map +1 -1
  46. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  47. package/dist/ai-service/integrations/store.js +135 -74
  48. package/dist/ai-service/integrations/store.js.map +1 -1
  49. package/dist/ai-service/llmobs/helpers.d.ts +20 -0
  50. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -0
  51. package/dist/ai-service/llmobs/helpers.js +130 -0
  52. package/dist/ai-service/llmobs/helpers.js.map +1 -0
  53. package/dist/ai-service/llmobs/index.d.ts +8 -0
  54. package/dist/ai-service/llmobs/index.d.ts.map +1 -0
  55. package/dist/ai-service/llmobs/index.js +7 -0
  56. package/dist/ai-service/llmobs/index.js.map +1 -0
  57. package/dist/ai-service/llmobs/middleware/stream-text.d.ts +60 -0
  58. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -0
  59. package/dist/ai-service/llmobs/middleware/stream-text.js +601 -0
  60. package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -0
  61. package/dist/ai-service/llmobs/tracer.d.ts +95 -0
  62. package/dist/ai-service/llmobs/tracer.d.ts.map +1 -0
  63. package/dist/ai-service/llmobs/tracer.js +341 -0
  64. package/dist/ai-service/llmobs/tracer.js.map +1 -0
  65. package/dist/ai-service/llmobs/types.d.ts +47 -0
  66. package/dist/ai-service/llmobs/types.d.ts.map +1 -0
  67. package/dist/ai-service/llmobs/types.js +2 -0
  68. package/dist/ai-service/llmobs/types.js.map +1 -0
  69. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts +3 -1
  70. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts.map +1 -1
  71. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js +5 -3
  72. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js.map +1 -1
  73. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts +3 -1
  74. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts.map +1 -1
  75. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js +3 -1
  76. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js.map +1 -1
  77. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +1 -1
  78. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
  79. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +1 -1
  80. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +1 -1
  81. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +1 -1
  82. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
  83. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
  84. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +1 -1
  85. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +1 -1
  86. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +1 -1
  87. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
  88. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
  89. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +1 -1
  90. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
  91. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +1 -1
  92. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +1 -1
  93. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
  94. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
  95. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
  96. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +1 -1
  97. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +1 -1
  98. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
  99. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
  100. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
  101. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
  102. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
  103. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
  104. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
  105. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
  106. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
  107. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
  108. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +1 -1
  109. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
  110. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +1 -1
  111. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +1 -1
  112. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts +3 -1
  113. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts.map +1 -1
  114. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js +4 -2
  115. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js.map +1 -1
  116. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts +3 -1
  117. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts.map +1 -1
  118. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js +3 -1
  119. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js.map +1 -1
  120. package/dist/ai-service/state-machine/clark-fsm.d.ts +16 -4
  121. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  122. package/dist/ai-service/state-machine/clark-fsm.js +47 -0
  123. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  124. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  125. package/dist/ai-service/state-machine/handlers/agent-planning.js +3 -5
  126. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  127. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
  128. package/dist/ai-service/state-machine/handlers/awaiting-user.js +5 -4
  129. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
  130. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  131. package/dist/ai-service/state-machine/handlers/llm-generating.js +240 -260
  132. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  133. package/dist/ai-service/state-machine/traced-fsm.d.ts +41 -70
  134. package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
  135. package/dist/ai-service/state-machine/traced-fsm.js +66 -173
  136. package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
  137. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  138. package/dist/ai-service/template-renderer.js +102 -56
  139. package/dist/ai-service/template-renderer.js.map +1 -1
  140. package/dist/ai-service/test-utils/dd-trace-helpers.d.ts +1 -0
  141. package/dist/ai-service/test-utils/dd-trace-helpers.d.ts.map +1 -1
  142. package/dist/ai-service/test-utils/dd-trace-helpers.js.map +1 -1
  143. package/dist/ai-service/test-utils/span-interceptor.d.ts +74 -0
  144. package/dist/ai-service/test-utils/span-interceptor.d.ts.map +1 -0
  145. package/dist/ai-service/test-utils/span-interceptor.js +272 -0
  146. package/dist/ai-service/test-utils/span-interceptor.js.map +1 -0
  147. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +2 -1
  148. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
  149. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +120 -63
  150. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  151. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -1
  152. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +97 -47
  153. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -1
  154. package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts.map +1 -1
  155. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js +88 -37
  156. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js.map +1 -1
  157. package/dist/ai-service/transform/shared.d.ts +4 -2
  158. package/dist/ai-service/transform/shared.d.ts.map +1 -1
  159. package/dist/ai-service/transform/shared.js +6 -3
  160. package/dist/ai-service/transform/shared.js.map +1 -1
  161. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts.map +1 -1
  162. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js +77 -26
  163. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js.map +1 -1
  164. package/dist/ai-service/types.d.ts +2 -0
  165. package/dist/ai-service/types.d.ts.map +1 -1
  166. package/dist/ai-service/types.js.map +1 -1
  167. package/dist/ai-service/util/safe-stringify.d.ts +2 -0
  168. package/dist/ai-service/util/safe-stringify.d.ts.map +1 -0
  169. package/dist/ai-service/util/safe-stringify.js +68 -0
  170. package/dist/ai-service/util/safe-stringify.js.map +1 -0
  171. package/dist/binding-extraction/extract-identifiers.d.ts +5 -2
  172. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
  173. package/dist/binding-extraction/extract-identifiers.js +7 -4
  174. package/dist/binding-extraction/extract-identifiers.js.map +1 -1
  175. package/dist/util/logger.d.ts +9 -0
  176. package/dist/util/logger.d.ts.map +1 -1
  177. package/dist/util/logger.js +64 -7
  178. package/dist/util/logger.js.map +1 -1
  179. package/package.json +8 -7
  180. package/dist/ai-service/llmobs.d.ts +0 -154
  181. package/dist/ai-service/llmobs.d.ts.map +0 -1
  182. package/dist/ai-service/llmobs.js +0 -216
  183. package/dist/ai-service/llmobs.js.map +0 -1
  184. package/dist/ai-service/util/ddog-llmobs.d.ts +0 -20
  185. package/dist/ai-service/util/ddog-llmobs.d.ts.map +0 -1
  186. package/dist/ai-service/util/ddog-llmobs.js +0 -197
  187. package/dist/ai-service/util/ddog-llmobs.js.map +0 -1
@@ -1,50 +1,20 @@
1
1
  import { type Logger } from "../../util/logger.js";
2
- import { LLMObsTracer, type LLMObsSpanKind, type ExportedLLMObsSpan } from "../llmobs.js";
3
- import { FSM, type FSMOnTransitionParams, type FSMMetadata } from "./fsm.js";
4
- /**
5
- * Configuration for a single state's tracing span.
6
- *
7
- * @property kind - The type of span (e.g., 'workflow', 'task', 'agent')
8
- * @property name - Optional custom name for the span. Defaults to the state name
9
- * @property tags - Additional tags to attach to the span
10
- */
11
- type TracedFSMSpanConfig = {
12
- kind: LLMObsSpanKind;
13
- name?: string;
14
- tags?: Record<string, any>;
15
- };
16
- /**
17
- * Tracing configuration for a Finite State Machine.
18
- *
19
- * @example
20
- * ```typescript
21
- * const tracingConfig: TracedFSMConfig<MyState> = {
22
- * state: {
23
- * 'planning': { kind: 'task', tags: { priority: 'low' } },
24
- * 'generating': { kind: 'workflow', tags: { priority: 'high' } },
25
- * 'idle': 'terminal', // Terminal states end the root span
26
- * 'failed': 'terminal'
27
- * },
28
- * rootSpan: {
29
- * name: 'GenerationProcess',
30
- * kind: 'workflow',
31
- * tags: { version: '1.0' }
32
- * }
33
- * };
34
- * ```
35
- *
36
- * @property state - Configuration for each state. Use 'terminal' for states that end the FSM lifecycle
37
- * @property rootSpan - Optional configuration for a root span that tracks the entire FSM lifecycle
38
- */
39
- export type TracedFSMConfig<S extends string> = {
40
- state: {
41
- [K in S]?: TracedFSMSpanConfig | "terminal";
42
- };
43
- rootSpan?: TracedFSMSpanConfig & {
44
- name: string;
45
- };
46
- validateFullTracingEnabled?: boolean;
2
+ import { type ExportedLLMObsSpan, type LLMObsNamedSpanOptions, LLMObsTracer } from "../llmobs/index.js";
3
+ import { FSM, type FSMConfig, type FSMState, type FSMEventBase } from "./fsm.js";
4
+ export type TracedFSMConfig<S extends FSMState, E extends FSMEventBase, C> = FSMConfig<S, E, C> & {
5
+ /**
6
+ * Create a provider function that returns tags to be added to every span.
7
+ * This can be used to attach contextual metadata such as request IDs,
8
+ * user IDs, etc. It is called at the termination of each non-terminal state,
9
+ * and at the end of the FSM lifecycle.
10
+ * @param fsm The TracedFSM instance
11
+ */
12
+ createTagProvider?: TracedFSMTagProviderFactory<S, E, C>;
13
+ /** Optional session ID to associate with all spans created by this FSM instance. */
14
+ sessionId?: string;
47
15
  };
16
+ export type TracedFSMStateSpanOptions = LLMObsNamedSpanOptions | "terminal";
17
+ export type TracedFSMTagProviderFactory<S extends FSMState, E extends FSMEventBase, C> = (fsm: TracedFSM<S, E, C>) => TagProvider;
48
18
  /**
49
19
  * FSM wrapper that emits tracing spans for each state transition.
50
20
  *
@@ -65,25 +35,12 @@ export type TracedFSMConfig<S extends string> = {
65
35
  *
66
36
  * Tracing failures are logged but do not interrupt FSM operation. The FSM will continue
67
37
  * to function normally even if the tracing infrastructure is unavailable.
68
- *
69
- * Subclasses can override {@link getSpanTags} to attach contextual metadata to every span.
70
38
  */
71
- export declare class TracedFSM<S extends string, E extends {
39
+ export declare abstract class TracedFSM<S extends string, E extends {
72
40
  type: string;
73
41
  }, C> extends FSM<S, E, C> {
74
42
  private tracing;
75
- constructor(config: {
76
- transitions: {
77
- [K in S]: Partial<Record<E["type"], S>>;
78
- };
79
- initialState: S;
80
- initialContext: C;
81
- createTransitionHandler: (fsm: TracedFSM<S, E, C>) => (params: FSMOnTransitionParams<S, E>) => void | Promise<void>;
82
- metadata?: FSMMetadata<S>;
83
- tracing: TracedFSMConfig<S>;
84
- sessionId?: string;
85
- }, tracer?: LLMObsTracer, logger?: Logger);
86
- private validateTracingConfig;
43
+ constructor(config: TracedFSMConfig<S, E, C>, tracer?: LLMObsTracer, logger?: Logger);
87
44
  get sessionId(): string | undefined;
88
45
  /**
89
46
  * Exported representation of the active root span (FSM lifecycle), if any.
@@ -92,19 +49,33 @@ export declare class TracedFSM<S extends string, E extends {
92
49
  get tracer(): LLMObsTracer;
93
50
  get logger(): Logger;
94
51
  /**
95
- * Override to provide additional tags to attach to every span created by the TracedFSM.
96
- *
97
- * This can be used to add contextual metadata relevant to your application.
98
- *
99
- * @returns A record of key-value pairs to attach as tags to each span
52
+ * Supply the span options for the long-lived root span that wraps
53
+ * the entire FSM lifecycle. Invoked once when the first state transition
54
+ * runs.
100
55
  */
101
- protected getSpanTags(): Record<string, any>;
56
+ protected abstract getRootSpanOptions(initialEvent: E): LLMObsNamedSpanOptions;
57
+ /**
58
+ * Provide the span options for the state being entered.
59
+ * Return "terminal" to finish the root span instead of
60
+ * creating a new state span.
61
+ */
62
+ protected abstract getStateSpanOptions(state: S): TracedFSMStateSpanOptions;
63
+ /**
64
+ * Sanitize the event object to remove sensitive information
65
+ * before attaching it to the trace.
66
+ * */
67
+ protected abstract sanitizeEvent(event: E): Partial<E>;
102
68
  private handleTransitionTracing;
103
69
  private startRootSpanIfNeeded;
104
- private finishRootSpan;
70
+ private finishRootSpanIfOpen;
105
71
  private startStateSpan;
106
- private finishStateSpan;
107
- private getStateSpanConfig;
72
+ private finishStateSpanIfOpen;
73
+ private startSpan;
74
+ private finishSpan;
75
+ private isTransitionParams;
108
76
  }
109
- export {};
77
+ export type Tags = {
78
+ [key: string]: any;
79
+ };
80
+ export type TagProvider = () => Tags;
110
81
  //# sourceMappingURL=traced-fsm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traced-fsm.d.ts","sourceRoot":"","sources":["../../../src/ai-service/state-machine/traced-fsm.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,YAAY,EAEZ,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAExB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,GAAG,EACH,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAEjB,MAAM,UAAU,CAAC;AAElB;;;;;;GAMG;AACH,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI;IAC9C,KAAK,EAAE;SACJ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,mBAAmB,GAAG,UAAU;KAC5C,CAAC;IACF,QAAQ,CAAC,EAAE,mBAAmB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAGlD,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAS,CACpB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1B,CAAC,CACD,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpB,OAAO,CAAC,OAAO,CAQb;gBAGA,MAAM,EAAE;QACN,WAAW,EAAE;aAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,CAAC;QACzD,YAAY,EAAE,CAAC,CAAC;QAChB,cAAc,EAAE,CAAC,CAAC;QAClB,uBAAuB,EAAE,CACvB,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACpB,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACnE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,MAAM,GAAE,YAAoC,EAC5C,MAAM,GAAE,MAAoB;IAmC9B,OAAO,CAAC,qBAAqB;IAiD7B,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED;;OAEG;IACH,IAAW,QAAQ,IAAI,kBAAkB,GAAG,SAAS,CAEpD;IAED,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;YAI9B,uBAAuB;IAuBrC,OAAO,CAAC,qBAAqB;IAkC7B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,kBAAkB;CAK3B"}
1
+ {"version":3,"file":"traced-fsm.d.ts","sourceRoot":"","sources":["../../../src/ai-service/state-machine/traced-fsm.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,GAAG,EAEH,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,eAAe,CACzB,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,YAAY,EACtB,CAAC,IACC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IACvB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,GAAG,UAAU,CAAC;AAE5E,MAAM,MAAM,2BAA2B,CACrC,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,YAAY,EACtB,CAAC,IACC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8BAAsB,SAAS,CAC7B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1B,CAAC,CACD,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpB,OAAO,CAAC,OAAO,CAQb;gBAGA,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAChC,MAAM,GAAE,YAAoC,EAC5C,MAAM,GAAE,MAAoB;IA6B9B,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED;;OAEG;IACH,IAAW,QAAQ,IAAI,kBAAkB,GAAG,SAAS,CAEpD;IAED,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CACnC,YAAY,EAAE,CAAC,GACd,sBAAsB;IAEzB;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,GAAG,yBAAyB;IAE3E;;;SAGK;IACL,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAExC,uBAAuB;IA2BrC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,kBAAkB;CAW3B;AACD,MAAM,MAAM,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { getErrorMeta, getLogger } from "../../util/logger.js";
2
- import { LLMObsTracer, } from "../llmobs.js";
2
+ import { LLMObsTracer, } from "../llmobs/index.js";
3
+ import { safeJsonStringify } from "../util/safe-stringify.js";
3
4
  import { FSM, } from "./fsm.js";
4
5
  /**
5
6
  * FSM wrapper that emits tracing spans for each state transition.
@@ -21,13 +22,11 @@ import { FSM, } from "./fsm.js";
21
22
  *
22
23
  * Tracing failures are logged but do not interrupt FSM operation. The FSM will continue
23
24
  * to function normally even if the tracing infrastructure is unavailable.
24
- *
25
- * Subclasses can override {@link getSpanTags} to attach contextual metadata to every span.
26
25
  */
27
26
  export class TracedFSM extends FSM {
28
27
  tracing;
29
28
  constructor(config, tracer = LLMObsTracer.instance, logger = getLogger()) {
30
- const { tracing: tracingConfig, sessionId, createTransitionHandler, ...rest } = config;
29
+ const { sessionId, createTransitionHandler, createTagProvider, ...rest } = config;
31
30
  const wrappedConfig = {
32
31
  ...rest,
33
32
  createTransitionHandler: (fsm) => {
@@ -39,48 +38,13 @@ export class TracedFSM extends FSM {
39
38
  },
40
39
  };
41
40
  super(wrappedConfig);
42
- this.validateTracingConfig(tracingConfig, rest.transitions);
43
41
  this.tracing = {
44
- config: tracingConfig,
45
42
  sessionId,
46
43
  tracer,
47
44
  logger,
45
+ getTags: createTagProvider?.(this) ?? (() => ({})),
48
46
  };
49
47
  }
50
- validateTracingConfig(config, transitions) {
51
- const states = Object.keys(transitions);
52
- const missingStates = [];
53
- for (const state of states) {
54
- const stateConfig = config.state[state];
55
- if (!stateConfig) {
56
- missingStates.push(state);
57
- }
58
- else if (stateConfig !== "terminal" &&
59
- typeof stateConfig === "object") {
60
- // Validate non-terminal configs have required fields
61
- if (!stateConfig.kind) {
62
- throw new Error(`Tracing config for state "${state}" is missing required 'kind' field`);
63
- }
64
- }
65
- }
66
- if (config.validateFullTracingEnabled === true &&
67
- missingStates.length > 0) {
68
- throw new Error(`Missing tracing config for states: ${missingStates.join(", ")}`);
69
- }
70
- // Validate rootSpan config if provided
71
- if (config.rootSpan) {
72
- if (!config.rootSpan.name) {
73
- throw new Error("Root span config is missing required 'name' field");
74
- }
75
- if (!config.rootSpan.kind) {
76
- throw new Error("Root span config is missing required 'kind' field");
77
- }
78
- }
79
- else if (config.validateFullTracingEnabled === true) {
80
- // If full tracing is required, rootSpan must be configured
81
- throw new Error("Tracing config is missing required 'rootSpan' configuration");
82
- }
83
- }
84
48
  get sessionId() {
85
49
  return this.tracing.sessionId;
86
50
  }
@@ -96,163 +60,92 @@ export class TracedFSM extends FSM {
96
60
  get logger() {
97
61
  return this.tracing.logger;
98
62
  }
99
- /**
100
- * Override to provide additional tags to attach to every span created by the TracedFSM.
101
- *
102
- * This can be used to add contextual metadata relevant to your application.
103
- *
104
- * @returns A record of key-value pairs to attach as tags to each span
105
- */
106
- getSpanTags() {
107
- return {};
108
- }
109
63
  async handleTransitionTracing(next, params) {
110
- this.finishStateSpan(params);
111
- const toConfig = this.getStateSpanConfig(params.to);
112
- if (!toConfig) {
113
- this.logger.debug(`No tracing config for state ${params.to}, skipping span creation`);
114
- }
115
- else if (toConfig == "terminal") {
116
- this.logger.debug(`State ${params.to} is terminal, finishing root span if active`);
117
- this.finishRootSpan(params);
64
+ this.finishStateSpanIfOpen(params);
65
+ const options = this.getStateSpanOptions(params.to);
66
+ if (options == "terminal") {
67
+ this.finishRootSpanIfOpen(params);
118
68
  }
119
69
  else {
120
70
  this.startRootSpanIfNeeded(params);
121
- this.startStateSpan(toConfig, params);
71
+ this.startStateSpan(options, params);
72
+ }
73
+ try {
74
+ await next(params);
75
+ }
76
+ catch (error) {
77
+ this.logger.error("Traced FSM transition threw an error", getErrorMeta(error));
78
+ this.finishStateSpanIfOpen(error);
79
+ this.finishRootSpanIfOpen(error);
80
+ throw error;
122
81
  }
123
- await next(params);
124
82
  }
125
83
  startRootSpanIfNeeded(params) {
126
84
  if (this.tracing.rootSpan) {
127
85
  // Root span already active
128
86
  return;
129
87
  }
130
- const config = this.tracing.config;
131
- if (!config.rootSpan) {
132
- // Root span not configured
133
- return;
134
- }
135
- this.logger.debug(`Starting root span for FSM lifecycle`);
136
- try {
137
- const rootSpanOptions = {
138
- name: config.rootSpan.name,
139
- kind: config.rootSpan.kind,
140
- sessionId: this.sessionId,
141
- tags: {
142
- "fsm.initialState": params.to,
143
- ...config.rootSpan.tags,
144
- ...this.getSpanTags(),
145
- },
146
- };
147
- const rootSpan = this.tracer.startActiveSpan(rootSpanOptions);
148
- this.tracer.annotate(rootSpan, {
149
- inputData: safeJsonStringify(params.event),
150
- });
151
- this.tracing.rootSpan = rootSpan;
152
- this.tracing.exportedRootSpan = this.tracer.exportSpan(rootSpan);
153
- }
154
- catch (error) {
155
- this.logger.error("Failed to start root span:", getErrorMeta(error));
156
- // Continue without root span - don't fail the FSM
157
- }
88
+ const config = this.getRootSpanOptions(params.event);
89
+ const span = this.startSpan(config, params);
90
+ this.tracing.rootSpan = span;
91
+ this.tracing.exportedRootSpan = this.tracer.exportSpan(span);
158
92
  }
159
- finishRootSpan(params) {
160
- const rootSpan = this.tracing.rootSpan;
161
- if (!rootSpan) {
93
+ finishRootSpanIfOpen(paramsOrError) {
94
+ const span = this.tracing.rootSpan;
95
+ if (!span) {
162
96
  // No active root span to finish
163
97
  return;
164
98
  }
165
- try {
166
- this.tracer.annotate(rootSpan, {
167
- outputData: safeJsonStringify(params.event),
168
- tags: { "fsm.terminalState": params.to },
169
- });
170
- rootSpan.finish();
171
- }
172
- catch (error) {
173
- this.logger.error("Failed to finish root span:", getErrorMeta(error));
174
- }
175
- finally {
176
- this.tracing.rootSpan = undefined;
177
- }
99
+ this.finishSpan(span, paramsOrError);
100
+ this.tracing.rootSpan = undefined;
178
101
  }
179
- startStateSpan(config, params) {
180
- this.logger.debug(`Starting span for state ${params.to}`);
181
- try {
182
- const spanOptions = {
183
- name: config.name || params.to,
184
- kind: config.kind,
185
- sessionId: this.sessionId,
186
- tags: {
187
- "fsm.fromState": params.from,
188
- ...config.tags,
189
- ...this.getSpanTags(),
190
- },
191
- };
192
- const stateSpan = this.tracer.startActiveSpan(spanOptions);
193
- this.tracer.annotate(stateSpan, {
194
- inputData: safeJsonStringify(params.event),
195
- });
196
- this.tracing.stateSpan = stateSpan;
197
- }
198
- catch (error) {
199
- this.logger.error("Failed to start state span:", getErrorMeta(error));
200
- }
102
+ startStateSpan(options, params) {
103
+ this.tracing.stateSpan = this.startSpan(options, params);
201
104
  }
202
- finishStateSpan(params) {
203
- const currentStateSpan = this.tracing.stateSpan;
204
- if (!currentStateSpan) {
105
+ finishStateSpanIfOpen(paramsOrError) {
106
+ const stateSpan = this.tracing.stateSpan;
107
+ if (!stateSpan) {
205
108
  // No active state span to finish. This should only occur on initial transition.
206
109
  return;
207
110
  }
208
- this.logger.debug(`Finishing span for state ${params.from}`);
209
- try {
210
- this.tracer.annotate(currentStateSpan, {
211
- outputData: safeJsonStringify(params.event),
212
- tags: { "fsm.toState": params.to },
111
+ this.finishSpan(stateSpan, paramsOrError);
112
+ this.tracing.stateSpan = undefined;
113
+ }
114
+ startSpan(options, params) {
115
+ if (this.sessionId) {
116
+ options.sessionId = this.sessionId;
117
+ }
118
+ const span = this.tracer.startActiveSpan(options);
119
+ const sanitizedEvent = this.sanitizeEvent(params.event);
120
+ this.tracer.annotate(span, {
121
+ inputData: safeJsonStringify(sanitizedEvent),
122
+ tags: { "fsm.fromState": params.from },
123
+ });
124
+ return span;
125
+ }
126
+ finishSpan(span, paramsOrError) {
127
+ const tags = this.tracing.getTags();
128
+ if (this.isTransitionParams(paramsOrError)) {
129
+ const sanitizedEvent = this.sanitizeEvent(paramsOrError.event);
130
+ this.tracer.annotate(span, {
131
+ outputData: safeJsonStringify(sanitizedEvent),
132
+ tags: { "fsm.toState": paramsOrError.to, ...tags },
213
133
  });
214
- currentStateSpan.finish();
215
- }
216
- catch (error) {
217
- // Log error but don't fail the transition
218
- this.logger.error("Failed to finish state span:", getErrorMeta(error));
219
134
  }
220
- finally {
221
- this.tracing.stateSpan = undefined;
135
+ else {
136
+ this.tracer.annotate(span, {
137
+ error: paramsOrError,
138
+ tags: { ...tags },
139
+ });
222
140
  }
141
+ span.finish();
223
142
  }
224
- getStateSpanConfig(state) {
225
- return this.tracing.config.state[state];
143
+ isTransitionParams(value) {
144
+ return (value !== null &&
145
+ typeof value === "object" &&
146
+ "event" in value &&
147
+ "from" in value &&
148
+ "to" in value);
226
149
  }
227
150
  }
228
- function safeJsonStringify(obj) {
229
- const seen = new WeakSet();
230
- return JSON.stringify(obj, (_key, value) => {
231
- if (typeof value === "object" && value !== null) {
232
- if (seen.has(value)) {
233
- return "[Circular Reference]";
234
- }
235
- seen.add(value);
236
- }
237
- try {
238
- JSON.stringify(value);
239
- return value;
240
- }
241
- catch (_error) {
242
- if (typeof value === "function") {
243
- return "[Function]";
244
- }
245
- if (typeof value === "symbol") {
246
- return "[Symbol]";
247
- }
248
- if (typeof value === "undefined") {
249
- return "[Undefined]";
250
- }
251
- if (typeof value === "bigint") {
252
- return `[BigInt: ${value.toString()}]`;
253
- }
254
- return "[Non-serializable]";
255
- }
256
- });
257
- }
258
151
  //# sourceMappingURL=traced-fsm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traced-fsm.js","sourceRoot":"","sources":["../../../src/ai-service/state-machine/traced-fsm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traced-fsm.js","sourceRoot":"","sources":["../../../src/ai-service/state-machine/traced-fsm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"template-renderer.d.ts","sourceRoot":"","sources":["../../src/ai-service/template-renderer.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAC;AAG5E,KAAK,YAAY,GAAG,MAAM,OAAO,SAAS,CAAC;AAI3C,qBAAa,gBAAgB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;gBAEjD,EACV,mBAA2B,GAC5B,EAAE;QACD,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B;IAiBK,oBAAoB;IAIpB,cAAc,CAAC,YAAY,EAAE,YAAY;YAkCjC,kBAAkB;CAgCjC"}
1
+ {"version":3,"file":"template-renderer.d.ts","sourceRoot":"","sources":["../../src/ai-service/template-renderer.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAC;AAI5E,KAAK,YAAY,GAAG,MAAM,OAAO,SAAS,CAAC;AAI3C,qBAAa,gBAAgB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;gBAEjD,EACV,mBAA2B,GAC5B,EAAE;QACD,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B;IAiBK,oBAAoB;IAKpB,cAAc,CAAC,YAAY,EAAE,YAAY;YAkCjC,kBAAkB;CAgCjC"}