@memberjunction/skip-types 2.44.0 → 2.46.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 (54) hide show
  1. package/dist/agent-types.d.ts +251 -0
  2. package/dist/agent-types.d.ts.map +1 -0
  3. package/dist/agent-types.js +76 -0
  4. package/dist/agent-types.js.map +1 -0
  5. package/dist/api-types.d.ts +212 -0
  6. package/dist/api-types.d.ts.map +1 -0
  7. package/dist/api-types.js +80 -0
  8. package/dist/api-types.js.map +1 -0
  9. package/dist/artifact-types.d.ts +142 -0
  10. package/dist/artifact-types.d.ts.map +1 -0
  11. package/dist/artifact-types.js +26 -0
  12. package/dist/artifact-types.js.map +1 -0
  13. package/dist/auth-types.d.ts +39 -0
  14. package/dist/auth-types.d.ts.map +1 -0
  15. package/dist/auth-types.js +32 -0
  16. package/dist/auth-types.js.map +1 -0
  17. package/dist/component-types.d.ts +351 -0
  18. package/dist/component-types.d.ts.map +1 -0
  19. package/dist/component-types.js +28 -0
  20. package/dist/component-types.js.map +1 -0
  21. package/dist/conversation-types.d.ts +141 -0
  22. package/dist/conversation-types.d.ts.map +1 -0
  23. package/dist/conversation-types.js +46 -0
  24. package/dist/conversation-types.js.map +1 -0
  25. package/dist/entity-metadata-types.d.ts +125 -0
  26. package/dist/entity-metadata-types.d.ts.map +1 -0
  27. package/dist/entity-metadata-types.js +78 -0
  28. package/dist/entity-metadata-types.js.map +1 -0
  29. package/dist/index.d.ts +11 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +12 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/query-types.d.ts +112 -0
  34. package/dist/query-types.d.ts.map +1 -0
  35. package/dist/query-types.js +65 -0
  36. package/dist/query-types.js.map +1 -0
  37. package/dist/response-types.d.ts +156 -0
  38. package/dist/response-types.d.ts.map +1 -0
  39. package/dist/response-types.js +63 -0
  40. package/dist/response-types.js.map +1 -0
  41. package/dist/shared.d.ts +44 -0
  42. package/dist/shared.d.ts.map +1 -0
  43. package/dist/shared.js +3 -0
  44. package/dist/shared.js.map +1 -0
  45. package/dist/types.d.ts +31 -1057
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +45 -211
  48. package/dist/types.js.map +1 -1
  49. package/dist/util.d.ts +68 -0
  50. package/dist/util.d.ts.map +1 -0
  51. package/dist/util.js +201 -0
  52. package/dist/util.js.map +1 -0
  53. package/package.json +3 -3
  54. package/readme.md +19 -19
@@ -0,0 +1,142 @@
1
+ /**
2
+ * @fileoverview Artifact management types for Skip API
3
+ *
4
+ * This file contains types related to artifacts - persistent objects created and managed
5
+ * through Skip conversations. These types define the structure for:
6
+ *
7
+ * - Artifact definitions and metadata (SkipAPIArtifact)
8
+ * - Artifact type specifications (SkipAPIArtifactType)
9
+ * - Artifact versioning (SkipAPIArtifactVersion)
10
+ * - Artifact creation requests (SkipAPIArtifactRequest)
11
+ *
12
+ * Artifacts in Skip represent persistent outputs from AI interactions that can be
13
+ * saved, versioned, shared, and iterated upon. They can contain various types of
14
+ * content including reports, code, documents, or other structured data that users
15
+ * want to preserve and refine over time.
16
+ *
17
+ * The artifact system supports versioning, allowing users to see the evolution of
18
+ * AI-generated content and compare different iterations. It also includes sharing
19
+ * capabilities and user feedback mechanisms to improve future artifact generation.
20
+ *
21
+ * @author MemberJunction
22
+ * @since 2.0.0
23
+ */
24
+ /**
25
+ * Defines information about a single artifact type
26
+ */
27
+ export type SkipAPIArtifactType = {
28
+ id: string;
29
+ name: string;
30
+ description: string;
31
+ /**
32
+ * MIME type or content identifier for this artifact type
33
+ */
34
+ contentType: string;
35
+ enabled: boolean;
36
+ createdAt: Date;
37
+ updatedAt: Date;
38
+ };
39
+ /**
40
+ * Represents a specific version of an artifact, containing the actual content,
41
+ * configuration, and user feedback for that version. Each artifact can have
42
+ * multiple versions as it evolves through user interactions.
43
+ */
44
+ export type SkipAPIArtifactVersion = {
45
+ /**
46
+ * Primary key for the artifact version - globally unique
47
+ */
48
+ id: string;
49
+ /**
50
+ * Foreign key to the related artifact - not using a link to the object here to avoid circular references
51
+ */
52
+ artifactId: string;
53
+ /**
54
+ * Auto increment sequential version, start with 1 for each artifact
55
+ */
56
+ version: number;
57
+ /**
58
+ * The contents of this field are dependent on the artifact type, in some cases it might be unused, in others it might be JSON, plain text, or even base-64 encoded binary data for something like an image
59
+ */
60
+ configuration: string;
61
+ /**
62
+ * The contents of this field are dependent on the artifact type, in some cases it might be unused, in others it might be JSON, plain text, or even base-64 encoded binary data for something like an image
63
+ */
64
+ content: string;
65
+ /**
66
+ * User comments for this specific version of the artifact, used for user's own purposes and can be used as feedback loop for AI to learn from and improve future versions/responses.
67
+ */
68
+ comments: string;
69
+ createdAt: Date;
70
+ updatedAt: Date;
71
+ };
72
+ /**
73
+ * Complete artifact definition including metadata, type information, sharing settings,
74
+ * and all versions. Artifacts are the primary way to persist and version AI-generated
75
+ * content across conversations.
76
+ */
77
+ export type SkipAPIArtifact = {
78
+ /**
79
+ * Primary key for the artifact
80
+ */
81
+ id: string;
82
+ /**
83
+ * AI generated name for the artifact
84
+ */
85
+ name: string;
86
+ /**
87
+ * AI generated description for the artifact
88
+ * This is a short description of the artifact that is generated by the AI system and is used to provide context for the artifact
89
+ */
90
+ description: string;
91
+ /**
92
+ * Foreign key to the related conversation
93
+ */
94
+ conversationId: string;
95
+ /**
96
+ * Related artifact type
97
+ */
98
+ artifactType: SkipAPIArtifactType;
99
+ /**
100
+ * Defines the level of sharing the owner of this artifact (which is the owner of the related conversation) has selected for this artifact
101
+ */
102
+ sharingScope: 'None' | 'SpecificUsers' | 'Everyone' | 'Public';
103
+ /**
104
+ * Comments from the user about the artifact
105
+ */
106
+ comments: string;
107
+ /**
108
+ * Array of versions of this artifact
109
+ * This is a one-to-many relationship, where each artifact can have multiple versions
110
+ */
111
+ versions: SkipAPIArtifactVersion[];
112
+ createdAt: Date;
113
+ updatedAt: Date;
114
+ };
115
+ /**
116
+ * Defines the shape of the data that is used to request an artifact from the Skip API Server
117
+ */
118
+ export type SkipAPIArtifactRequest = {
119
+ /**
120
+ * The agent should request new_artifact if an entirely new artifact should be created. This should be selected if there are no existing artifacts in the
121
+ * conversation, OR if the user has asked for something that is not logically related to existing artifacts for the given conversation and it makes more
122
+ * sense to create a new artifact entirely.
123
+ *
124
+ * new_artifact_version, on the other hand, should be used when the user has asked for something that is logically related to an existing artifact and it is
125
+ * most logical to add a new version to that existing artifact for example iterating on various versions of a report over time.
126
+ */
127
+ action: "new_artifact" | "new_artifact_version";
128
+ /**
129
+ * This is only provided when action === 'new_artifact_version' and is used to indicate the artifact that a new version is being added to. When action == 'new_artifact'
130
+ * this property is not used.
131
+ */
132
+ artifactId?: string;
133
+ /**
134
+ * The name of the artifact or artifact version that is being created. Generated by the AI agent.
135
+ */
136
+ name: string;
137
+ /**
138
+ * The description of the artifact or artifact version that is being created. Generated by the AI agent.
139
+ */
140
+ description: string;
141
+ };
142
+ //# sourceMappingURL=artifact-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-types.d.ts","sourceRoot":"","sources":["../src/artifact-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,YAAY,EAAE,mBAAmB,CAAC;IAElC;;OAEG;IACH,YAAY,EAAE,MAAM,GAAE,eAAe,GAAE,UAAU,GAAE,QAAQ,CAAC;IAE5D;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IAEnC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;OAOG;IACH,MAAM,EAAE,cAAc,GAAG,sBAAsB,CAAC;IAEhD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACvB,CAAA"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Artifact management types for Skip API
4
+ *
5
+ * This file contains types related to artifacts - persistent objects created and managed
6
+ * through Skip conversations. These types define the structure for:
7
+ *
8
+ * - Artifact definitions and metadata (SkipAPIArtifact)
9
+ * - Artifact type specifications (SkipAPIArtifactType)
10
+ * - Artifact versioning (SkipAPIArtifactVersion)
11
+ * - Artifact creation requests (SkipAPIArtifactRequest)
12
+ *
13
+ * Artifacts in Skip represent persistent outputs from AI interactions that can be
14
+ * saved, versioned, shared, and iterated upon. They can contain various types of
15
+ * content including reports, code, documents, or other structured data that users
16
+ * want to preserve and refine over time.
17
+ *
18
+ * The artifact system supports versioning, allowing users to see the evolution of
19
+ * AI-generated content and compare different iterations. It also includes sharing
20
+ * capabilities and user feedback mechanisms to improve future artifact generation.
21
+ *
22
+ * @author MemberJunction
23
+ * @since 2.0.0
24
+ */
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ //# sourceMappingURL=artifact-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-types.js","sourceRoot":"","sources":["../src/artifact-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview Authentication and API key types for Skip API
3
+ *
4
+ * This file contains types related to authentication and API key management
5
+ * within the Skip API system. These types define the structure for:
6
+ *
7
+ * - API key specifications for different AI vendors (SkipAPIRequestAPIKey)
8
+ *
9
+ * The authentication system allows clients to provide API keys for various
10
+ * AI service providers that Skip will use on behalf of the client. This enables
11
+ * Skip to access different AI models and services while maintaining security
12
+ * by not storing these credentials permanently.
13
+ *
14
+ * The vendor driver names correspond to registered classes in the MemberJunction
15
+ * AI namespace that provide standardized interfaces to different AI providers
16
+ * such as OpenAI, Anthropic, Google, and others.
17
+ *
18
+ * @author MemberJunction
19
+ * @since 2.0.0
20
+ */
21
+ /**
22
+ * Defines the API key information for AI service providers that Skip will use
23
+ * on behalf of the client. Skip never stores these credentials - they are only
24
+ * used for the duration of the request to access the specified AI services.
25
+ */
26
+ export declare class SkipAPIRequestAPIKey {
27
+ /**
28
+ * These are the supported LLM vendors that Skip can use. These driver names map to the
29
+ * registered classes in the MemberJunction AI namespace for example the @memberjunction/ai-openai package includes
30
+ * a class called OpenAILLM that is registered with the MemberJunction AI system as a valid sub-class of BaseLLM
31
+ */
32
+ vendorDriverName: 'OpenAILLM' | 'MistralLLM' | 'GeminiLLM' | 'AnthropicLLM' | 'GroqLLM';
33
+ /**
34
+ * This is the actual API key for the specified vendor.
35
+ * NOTE: Skip NEVER stores this information, it is only used to make requests to the AI vendor of choice
36
+ */
37
+ apiKey: string;
38
+ }
39
+ //# sourceMappingURL=auth-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-types.d.ts","sourceRoot":"","sources":["../src/auth-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,qBAAa,oBAAoB;IAC7B;;;;OAIG;IACH,gBAAgB,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,CAAC;IACxF;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Authentication and API key types for Skip API
4
+ *
5
+ * This file contains types related to authentication and API key management
6
+ * within the Skip API system. These types define the structure for:
7
+ *
8
+ * - API key specifications for different AI vendors (SkipAPIRequestAPIKey)
9
+ *
10
+ * The authentication system allows clients to provide API keys for various
11
+ * AI service providers that Skip will use on behalf of the client. This enables
12
+ * Skip to access different AI models and services while maintaining security
13
+ * by not storing these credentials permanently.
14
+ *
15
+ * The vendor driver names correspond to registered classes in the MemberJunction
16
+ * AI namespace that provide standardized interfaces to different AI providers
17
+ * such as OpenAI, Anthropic, Google, and others.
18
+ *
19
+ * @author MemberJunction
20
+ * @since 2.0.0
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.SkipAPIRequestAPIKey = void 0;
24
+ /**
25
+ * Defines the API key information for AI service providers that Skip will use
26
+ * on behalf of the client. Skip never stores these credentials - they are only
27
+ * used for the duration of the request to access the specified AI services.
28
+ */
29
+ class SkipAPIRequestAPIKey {
30
+ }
31
+ exports.SkipAPIRequestAPIKey = SkipAPIRequestAPIKey;
32
+ //# sourceMappingURL=auth-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-types.js","sourceRoot":"","sources":["../src/auth-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAEH;;;;GAIG;AACH,MAAa,oBAAoB;CAYhC;AAZD,oDAYC"}
@@ -0,0 +1,351 @@
1
+ /**
2
+ * @fileoverview Component interface types for Skip API
3
+ *
4
+ * This file contains types that define the interface between Skip-generated components
5
+ * and their container applications. These types enable rich, interactive components that
6
+ * can communicate with the host MemberJunction environment. The types define:
7
+ *
8
+ * - Component callback interfaces for parent-child communication (SkipComponentCallbacks)
9
+ * - Component object interfaces that Skip components must implement (SkipComponentObject)
10
+ * - Initialization parameters and utility interfaces (SkipComponentInitParams, SkipComponentUtilities)
11
+ * - Styling and theming interfaces (SkipComponentStyles)
12
+ * - Simplified metadata and data access interfaces (SimpleMetadata, SimpleRunView, SimpleRunQuery)
13
+ *
14
+ * Components generated by Skip implement the SkipComponentObject interface and expose
15
+ * themselves globally on the window object, allowing container applications to initialize,
16
+ * refresh, and print them. The components can call back to the container through the provided
17
+ * callback functions to refresh data, open records, update user state, and send custom events.
18
+ *
19
+ * The utility interfaces provide Skip components with controlled access to the MemberJunction
20
+ * system for dynamic data access, metadata queries, and view execution without requiring
21
+ * full access to the underlying MJ APIs.
22
+ *
23
+ * @author MemberJunction
24
+ * @since 2.0.0
25
+ */
26
+ import { CompositeKey } from "@memberjunction/core";
27
+ import { SimpleDataContext } from "./shared";
28
+ import { SimpleMetadata, SimpleRunQuery, SimpleRunView } from "./shared";
29
+ /**
30
+ * This interface defines the available callback functions that a Skip component might call in the parent.
31
+ */
32
+ export interface SkipComponentCallbacks {
33
+ /**
34
+ * The component can invoke this method in the callbacks object, when provided, to refresh the data context
35
+ * and that will in turn result in the component's init function being called again with the new data context.
36
+ * @returns
37
+ */
38
+ RefreshData: () => void;
39
+ /**
40
+ * If an action occurs inside a component where it would be desirable for the containing UI to open a specific
41
+ * record, if supported, this event can be listened to and the container UI can then open the record.
42
+ * @param entityName - this is the Entity NAME from the Entity metadata, not the table name or base view name. Use Entity Metadata to provide the entity name here
43
+ * @param key - this is an array of key/value pairs representing the primary key. The format of a Composite Key is an array of KeyValuePair objects and KeyValuePair objects simply have FieldName and Value properties. In most cases entities have single-valued primary keys but this structure is here for complex entity types that have composite primary keys
44
+ * @returns
45
+ */
46
+ OpenEntityRecord: (entityName: string, key: CompositeKey) => void;
47
+ /**
48
+ * This event should be raised by the HTML component whenever something changes within the component that should be tracked as a change in state
49
+ * that will persist. userState is any valid, simple JavaScript object, meaning it can have scalars, arrays, objects, etc, it must be an object that
50
+ * can be serialized to JSON, but otherwise has no special requirements. The parent component will be responsible for tracking the user-specific states
51
+ * and passing them back to the HTML component each time it is loaded or if the user changes via the init function.
52
+ * @param userState
53
+ * @returns
54
+ */
55
+ UpdateUserState: (userState: any) => void;
56
+ /**
57
+ * Used for any other type of event notification that a component might want to send to the parent component.
58
+ * @param eventName
59
+ * @param eventData
60
+ * @returns
61
+ */
62
+ NotifyEvent: (eventName: string, eventData: any) => void;
63
+ }
64
+ /**
65
+ * This is the function signature for the initialization function provided by each Skip component via the SkipComponentObject so that a container can interact with it.
66
+ * This function is called when the component is loaded by its container. The function receives the data context, an optional userState property, and a set of callbacks that can be used to interact with the parent component.
67
+ * userState is an optional parameter that can be used to pass in any state information that the parent component wants to provide to the component that is specific
68
+ * to the CURRENT user. If the component modifies the userState, it should notify the parent component via the UserStateChanged event in the callbacks object so that the parent component can handle storage.
69
+ */
70
+ export type SkipComponentInitFunction = (params: SkipComponentInitParams) => void;
71
+ /**
72
+ * This is the function signature for the print function that is provided by the component via the SkipComponentObject
73
+ */
74
+ export type SkipComponentPrintFunction = () => void;
75
+ /**
76
+ * This is the function signature for the refresh function that is provided by the component via the SkipComponentObject
77
+ */
78
+ export type SkipComponentRefreshFunction = () => void;
79
+ /**
80
+ * Parameters that are passed to the SkipComponentInitFunction when it is called by the parent component.
81
+ */
82
+ export interface SkipComponentInitParams {
83
+ data: SimpleDataContext;
84
+ utilities?: SkipComponentUtilities;
85
+ userState?: any;
86
+ callbacks?: SkipComponentCallbacks;
87
+ styles?: SkipComponentStyles;
88
+ }
89
+ /**
90
+ * This interface defines styles that can be applied to the component. The container can provide
91
+ * styles to the top level component. The top level component can alter these styles based on
92
+ * the prompting of the user, learned notes, etc, and adjust the styles of the component accordingly. In addition
93
+ * the top level component will pass in its computed styles to each sub-component so that the sub-components
94
+ * can do the same recursively down to any level of depth. This allows sub-components to inherit styles but
95
+ * also make adjustments as required based on functional needs and user input.
96
+ */
97
+ export interface SkipComponentStyles {
98
+ colors: {
99
+ primary: string;
100
+ primaryHover: string;
101
+ primaryLight?: string;
102
+ secondary: string;
103
+ secondaryHover?: string;
104
+ success: string;
105
+ successLight?: string;
106
+ warning?: string;
107
+ warningLight?: string;
108
+ error?: string;
109
+ errorLight?: string;
110
+ info?: string;
111
+ infoLight?: string;
112
+ background: string;
113
+ surface: string;
114
+ surfaceHover?: string;
115
+ text: string;
116
+ textSecondary: string;
117
+ textTertiary?: string;
118
+ textInverse?: string;
119
+ border: string;
120
+ borderLight?: string;
121
+ borderFocus?: string;
122
+ shadow?: string;
123
+ shadowMedium?: string;
124
+ shadowLarge?: string;
125
+ [key: string]: string | undefined;
126
+ };
127
+ spacing: {
128
+ xs: string;
129
+ sm: string;
130
+ md: string;
131
+ lg: string;
132
+ xl: string;
133
+ xxl?: string;
134
+ xxxl?: string;
135
+ [key: string]: string | undefined;
136
+ };
137
+ typography: {
138
+ fontFamily: string;
139
+ fontSize: {
140
+ xs?: string;
141
+ sm: string;
142
+ md: string;
143
+ lg: string;
144
+ xl: string;
145
+ xxl?: string;
146
+ xxxl?: string;
147
+ [key: string]: string | undefined;
148
+ };
149
+ fontWeight?: {
150
+ light?: string;
151
+ regular?: string;
152
+ medium?: string;
153
+ semibold?: string;
154
+ bold?: string;
155
+ [key: string]: string | undefined;
156
+ };
157
+ lineHeight?: {
158
+ tight?: string;
159
+ normal?: string;
160
+ relaxed?: string;
161
+ [key: string]: string | undefined;
162
+ };
163
+ };
164
+ borders: {
165
+ radius: string | {
166
+ sm?: string;
167
+ md?: string;
168
+ lg?: string;
169
+ xl?: string;
170
+ full?: string;
171
+ [key: string]: string | undefined;
172
+ };
173
+ width: string | {
174
+ thin?: string;
175
+ medium?: string;
176
+ thick?: string;
177
+ [key: string]: string | undefined;
178
+ };
179
+ };
180
+ shadows?: {
181
+ sm?: string;
182
+ md?: string;
183
+ lg?: string;
184
+ xl?: string;
185
+ inner?: string;
186
+ [key: string]: string | undefined;
187
+ };
188
+ transitions?: {
189
+ fast?: string;
190
+ normal?: string;
191
+ slow?: string;
192
+ [key: string]: string | undefined;
193
+ };
194
+ overflow: string;
195
+ }
196
+ /**
197
+ * This is the interface that each Skip component will expose to the parent component and assign it a name globally on the window object so that the parent component can call it.
198
+ * The component will create this object and it will include the members defined in this interface.
199
+ */
200
+ export interface SkipComponentObject {
201
+ /**
202
+ * The React component that Angular will render directly using ReactDOM.
203
+ * This component receives props including data, userState, callbacks, utilities, and styles.
204
+ */
205
+ component: any;
206
+ /**
207
+ * The optional print function that is called when the user clicks on the print button in the parent of the component. This function will never be called by the parent before the init function so the print function
208
+ * can assume the component has been initialized;
209
+ */
210
+ print?: SkipComponentPrintFunction;
211
+ /**
212
+ * The optional refresh function that is called when the user clicks on the refresh button in the parent of the component. This function will never be called by the parent before the init function so the refresh function
213
+ */
214
+ refresh?: SkipComponentRefreshFunction;
215
+ }
216
+ /**
217
+ * This interface defines the utilities that are available to the Skip component. These utilities are used to interact with the host MemberJunction system to
218
+ * retrieve metadata, run views, and run queries. The utilities are passed into the SkipComponentInitFunction by the container.
219
+ */
220
+ export interface SkipComponentUtilities {
221
+ md: SimpleMetadata;
222
+ rv: SimpleRunView;
223
+ rq: SimpleRunQuery;
224
+ }
225
+ /**
226
+ * Defines a given option for a generated component that the user can choose. The code/componentObjectName properties are used to render the component in the UI.
227
+ */
228
+ export type SkipComponentOption = {
229
+ /**
230
+ * Full details of the generated component option including functional, technical, code, and child componentry.
231
+ */
232
+ option: SkipComponentRootSpec;
233
+ /**
234
+ * If multiple component options are provided for a given @interface SkipAPIAnalysisCompleteResponse, a "judge" AI will evaluate all the functional
235
+ * responses and will rank order them with an explanation of why they were each ranked that way. Rankings are not absolute, they are relative to the
236
+ * # of components contained within an array of SkipComponentOption types.
237
+ */
238
+ AIRank: number | undefined;
239
+ /**
240
+ * The AI's explanation of why it ranked the component the way it did. This is useful for understanding the AI's reasoning and can be used to improve future components
241
+ * as well as provide context to the user about why a particular component was chosen as the best option.
242
+ */
243
+ AIRankExplanation: string | undefined;
244
+ /**
245
+ * The user's provided feedback on the component option. Unlike the AIRank, this is a subjective rating provided by the user and is
246
+ * a number between 1 and 10, where 1 is the lowest rating and 10 is the highest rating.
247
+ */
248
+ UserRank: number | undefined;
249
+ /**
250
+ * If the host application provides a way for the user to provide feedback on the component option,
251
+ * this is the explanation of why the user rated the component the way they did if they provided feedback.
252
+ */
253
+ UserRankExplanation: string | undefined;
254
+ };
255
+ /**
256
+ * Represents a complete specification for a generated Skip component, including its structure,
257
+ * requirements, code, and nested component hierarchy
258
+ */
259
+ export type SkipComponentRootSpec = {
260
+ /**
261
+ * A description of what the component should do from a functional perspective
262
+ */
263
+ functionalRequirements: string;
264
+ /**
265
+ * A technical description of how the component is designed and implemented
266
+ */
267
+ technicalDesign: string;
268
+ /**
269
+ * The actual code for the main component, typically wrapped in an IIFE that returns
270
+ * the component object with component, print, and refresh properties
271
+ */
272
+ componentCode: string;
273
+ /**
274
+ * The name of the main component
275
+ */
276
+ componentName: string;
277
+ /**
278
+ * The type of component: report, dashboard, form, chart, table, or other. Over time this list
279
+ * might grow to include more types as Skip evolves and new component types are needed.
280
+ */
281
+ componentType: "report" | "dashboard" | "form" | "other";
282
+ /**
283
+ * The type of data access this component uses, static means that the data is provided to the component as static data during the initialization
284
+ * process described in the @interface SkipComponentObject interface, dynamic means that the component will use capabilities provided by
285
+ * the SkipComponentObject interface to dynamically access data from the MemberJunction instance that it is running within. 'both' means
286
+ * that the component can use both static and dynamic data access methods, and 'none' means that the component does not use any data (rare, but possible for example if
287
+ * a component does something other than show data or if it uses 3rd party data sources via API that are not related to the MJ instance it is running within).
288
+ */
289
+ dataAccessType: 'static' | 'dynamic' | 'both' | 'none';
290
+ /**
291
+ * A description of what this component does
292
+ */
293
+ description: string;
294
+ /**
295
+ * The callback strategy used by this component (e.g., "hybrid", "direct", "none")
296
+ */
297
+ callbackStrategy: string;
298
+ /**
299
+ * Describes the state structure managed by this component
300
+ */
301
+ stateStructure: Record<string, string>;
302
+ /**
303
+ * An array of child component specifications
304
+ */
305
+ childComponents: SkipComponentChildSpec[];
306
+ /**
307
+ * The title of the component
308
+ */
309
+ title: string;
310
+ /**
311
+ * A user-friendly explanation of what the component does
312
+ */
313
+ userExplanation: string;
314
+ /**
315
+ * A technical explanation of how the component works
316
+ */
317
+ techExplanation: string;
318
+ };
319
+ /**
320
+ * Represents a child component within a component hierarchy
321
+ */
322
+ export interface SkipComponentChildSpec {
323
+ /**
324
+ * The programmatic name of the component
325
+ */
326
+ componentName: string;
327
+ /**
328
+ * Example of the component being used in JSX format. This is used to provide a clear example on the properties and
329
+ * event handling that the component supports. This is used to teach the next AI exactly what we want it to generate for the
330
+ * child component.
331
+ */
332
+ exampleUsage: string;
333
+ /**
334
+ * The code for the child component. This is generated LATER by a separate process after the parent
335
+ * component generation is complete. When the parent component generates this is undefined.
336
+ */
337
+ componentCode?: string;
338
+ /**
339
+ * A detailed description of what this child component does
340
+ */
341
+ description: string;
342
+ /**
343
+ * The path in the state tree where this component's state is stored
344
+ */
345
+ statePath: string;
346
+ /**
347
+ * An array of sub-components (recursive structure)
348
+ */
349
+ components: SkipComponentChildSpec[];
350
+ }
351
+ //# sourceMappingURL=component-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-types.d.ts","sourceRoot":"","sources":["../src/component-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Component interface types for Skip API
4
+ *
5
+ * This file contains types that define the interface between Skip-generated components
6
+ * and their container applications. These types enable rich, interactive components that
7
+ * can communicate with the host MemberJunction environment. The types define:
8
+ *
9
+ * - Component callback interfaces for parent-child communication (SkipComponentCallbacks)
10
+ * - Component object interfaces that Skip components must implement (SkipComponentObject)
11
+ * - Initialization parameters and utility interfaces (SkipComponentInitParams, SkipComponentUtilities)
12
+ * - Styling and theming interfaces (SkipComponentStyles)
13
+ * - Simplified metadata and data access interfaces (SimpleMetadata, SimpleRunView, SimpleRunQuery)
14
+ *
15
+ * Components generated by Skip implement the SkipComponentObject interface and expose
16
+ * themselves globally on the window object, allowing container applications to initialize,
17
+ * refresh, and print them. The components can call back to the container through the provided
18
+ * callback functions to refresh data, open records, update user state, and send custom events.
19
+ *
20
+ * The utility interfaces provide Skip components with controlled access to the MemberJunction
21
+ * system for dynamic data access, metadata queries, and view execution without requiring
22
+ * full access to the underlying MJ APIs.
23
+ *
24
+ * @author MemberJunction
25
+ * @since 2.0.0
26
+ */
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ //# sourceMappingURL=component-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-types.js","sourceRoot":"","sources":["../src/component-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}