@memberjunction/core-actions 2.106.0 → 2.108.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 (95) hide show
  1. package/dist/config.d.ts +112 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +34 -2
  4. package/dist/config.js.map +1 -1
  5. package/dist/custom/ai/find-best-agent.action.d.ts +53 -0
  6. package/dist/custom/ai/find-best-agent.action.d.ts.map +1 -0
  7. package/dist/custom/ai/find-best-agent.action.js +194 -0
  8. package/dist/custom/ai/find-best-agent.action.js.map +1 -0
  9. package/dist/custom/ai/summarize-content.action.d.ts +72 -0
  10. package/dist/custom/ai/summarize-content.action.d.ts.map +1 -0
  11. package/dist/custom/ai/summarize-content.action.js +296 -0
  12. package/dist/custom/ai/summarize-content.action.js.map +1 -0
  13. package/dist/custom/code-execution/execute-code.action.d.ts +61 -0
  14. package/dist/custom/code-execution/execute-code.action.d.ts.map +1 -0
  15. package/dist/custom/code-execution/execute-code.action.js +172 -0
  16. package/dist/custom/code-execution/execute-code.action.js.map +1 -0
  17. package/dist/custom/data/csv-parser.action.js +1 -1
  18. package/dist/custom/data/csv-parser.action.js.map +1 -1
  19. package/dist/custom/data/execute-research-query.action.d.ts +114 -0
  20. package/dist/custom/data/execute-research-query.action.d.ts.map +1 -0
  21. package/dist/custom/data/execute-research-query.action.js +520 -0
  22. package/dist/custom/data/execute-research-query.action.js.map +1 -0
  23. package/dist/custom/data/explore-database-schema.action.d.ts +95 -0
  24. package/dist/custom/data/explore-database-schema.action.d.ts.map +1 -0
  25. package/dist/custom/data/explore-database-schema.action.js +499 -0
  26. package/dist/custom/data/explore-database-schema.action.js.map +1 -0
  27. package/dist/custom/data/get-entity-details.action.d.ts +63 -0
  28. package/dist/custom/data/get-entity-details.action.d.ts.map +1 -0
  29. package/dist/custom/data/get-entity-details.action.js +284 -0
  30. package/dist/custom/data/get-entity-details.action.js.map +1 -0
  31. package/dist/custom/data/get-entity-list.action.d.ts +57 -0
  32. package/dist/custom/data/get-entity-list.action.d.ts.map +1 -0
  33. package/dist/custom/data/get-entity-list.action.js +177 -0
  34. package/dist/custom/data/get-entity-list.action.js.map +1 -0
  35. package/dist/custom/files/index.d.ts +2 -0
  36. package/dist/custom/files/index.d.ts.map +1 -1
  37. package/dist/custom/files/index.js +5 -1
  38. package/dist/custom/files/index.js.map +1 -1
  39. package/dist/custom/files/list-storage-providers.action.d.ts +52 -0
  40. package/dist/custom/files/list-storage-providers.action.d.ts.map +1 -0
  41. package/dist/custom/files/list-storage-providers.action.js +175 -0
  42. package/dist/custom/files/list-storage-providers.action.js.map +1 -0
  43. package/dist/custom/files/search-storage-files.action.d.ts +61 -0
  44. package/dist/custom/files/search-storage-files.action.d.ts.map +1 -0
  45. package/dist/custom/files/search-storage-files.action.js +183 -0
  46. package/dist/custom/files/search-storage-files.action.js.map +1 -0
  47. package/dist/custom/visualization/create-svg-chart.action.d.ts +97 -0
  48. package/dist/custom/visualization/create-svg-chart.action.d.ts.map +1 -0
  49. package/dist/custom/visualization/create-svg-chart.action.js +290 -0
  50. package/dist/custom/visualization/create-svg-chart.action.js.map +1 -0
  51. package/dist/custom/visualization/create-svg-diagram.action.d.ts +151 -0
  52. package/dist/custom/visualization/create-svg-diagram.action.d.ts.map +1 -0
  53. package/dist/custom/visualization/create-svg-diagram.action.js +764 -0
  54. package/dist/custom/visualization/create-svg-diagram.action.js.map +1 -0
  55. package/dist/custom/visualization/create-svg-infographic.action.d.ts +72 -0
  56. package/dist/custom/visualization/create-svg-infographic.action.d.ts.map +1 -0
  57. package/dist/custom/visualization/create-svg-infographic.action.js +343 -0
  58. package/dist/custom/visualization/create-svg-infographic.action.js.map +1 -0
  59. package/dist/custom/visualization/create-svg-network.action.d.ts +106 -0
  60. package/dist/custom/visualization/create-svg-network.action.d.ts.map +1 -0
  61. package/dist/custom/visualization/create-svg-network.action.js +651 -0
  62. package/dist/custom/visualization/create-svg-network.action.js.map +1 -0
  63. package/dist/custom/visualization/create-svg-word-cloud.action.d.ts +94 -0
  64. package/dist/custom/visualization/create-svg-word-cloud.action.d.ts.map +1 -0
  65. package/dist/custom/visualization/create-svg-word-cloud.action.js +422 -0
  66. package/dist/custom/visualization/create-svg-word-cloud.action.js.map +1 -0
  67. package/dist/custom/visualization/shared/svg-theming.d.ts +91 -0
  68. package/dist/custom/visualization/shared/svg-theming.d.ts.map +1 -0
  69. package/dist/custom/visualization/shared/svg-theming.js +235 -0
  70. package/dist/custom/visualization/shared/svg-theming.js.map +1 -0
  71. package/dist/custom/visualization/shared/svg-types.d.ts +338 -0
  72. package/dist/custom/visualization/shared/svg-types.d.ts.map +1 -0
  73. package/dist/custom/visualization/shared/svg-types.js +11 -0
  74. package/dist/custom/visualization/shared/svg-types.js.map +1 -0
  75. package/dist/custom/visualization/shared/svg-utils.d.ts +129 -0
  76. package/dist/custom/visualization/shared/svg-utils.d.ts.map +1 -0
  77. package/dist/custom/visualization/shared/svg-utils.js +287 -0
  78. package/dist/custom/visualization/shared/svg-utils.js.map +1 -0
  79. package/dist/custom/web/google-custom-search.action.d.ts +60 -0
  80. package/dist/custom/web/google-custom-search.action.d.ts.map +1 -0
  81. package/dist/custom/web/google-custom-search.action.js +378 -0
  82. package/dist/custom/web/google-custom-search.action.js.map +1 -0
  83. package/dist/custom/web/web-page-content.action.d.ts +24 -0
  84. package/dist/custom/web/web-page-content.action.d.ts.map +1 -1
  85. package/dist/custom/web/web-page-content.action.js +90 -9
  86. package/dist/custom/web/web-page-content.action.js.map +1 -1
  87. package/dist/generated/action_subclasses.d.ts +51 -3
  88. package/dist/generated/action_subclasses.d.ts.map +1 -1
  89. package/dist/generated/action_subclasses.js +174 -90
  90. package/dist/generated/action_subclasses.js.map +1 -1
  91. package/dist/index.d.ts +14 -0
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +44 -0
  94. package/dist/index.js.map +1 -1
  95. package/package.json +30 -11
@@ -0,0 +1,52 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileStorageAction } from "./base-file-storage.action";
3
+ /**
4
+ * Action that retrieves a list of active and available file storage providers.
5
+ *
6
+ * This action returns storage providers that are:
7
+ * 1. Marked as IsActive=true in the database
8
+ * 2. Actually available/configured in the running environment
9
+ *
10
+ * This is useful for AI agents (particularly Research Agent) to discover
11
+ * what storage providers are available before attempting to search or access files.
12
+ *
13
+ * Providers are configured in the File Storage Providers entity and can include:
14
+ * - Google Drive
15
+ * - SharePoint
16
+ * - Dropbox
17
+ * - Box
18
+ * - AWS S3
19
+ * - Azure Blob Storage
20
+ * - Google Cloud Storage
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // Get all available storage providers
25
+ * await runAction({
26
+ * ActionName: 'List Storage Providers',
27
+ * Params: []
28
+ * });
29
+ *
30
+ * // Get only providers that support search
31
+ * await runAction({
32
+ * ActionName: 'List Storage Providers',
33
+ * Params: [{
34
+ * Name: 'SearchSupportedOnly',
35
+ * Value: true
36
+ * }]
37
+ * });
38
+ * ```
39
+ */
40
+ export declare class ListStorageProvidersAction extends BaseFileStorageAction {
41
+ /**
42
+ * List of storage provider driver keys that support native file search.
43
+ * Used to populate the SupportsSearch field in results.
44
+ */
45
+ private readonly SEARCH_SUPPORTED_PROVIDERS;
46
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
47
+ }
48
+ /**
49
+ * Load function to ensure the class is registered and not tree-shaken
50
+ */
51
+ export declare function LoadListStorageProvidersAction(): void;
52
+ //# sourceMappingURL=list-storage-providers.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-storage-providers.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/list-storage-providers.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAMnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBACa,0BAA2B,SAAQ,qBAAqB;IAEjE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAKzC;cAEc,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0H1F;AAED;;GAEG;AACH,wBAAgB,8BAA8B,SAG7C"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadListStorageProvidersAction = exports.ListStorageProvidersAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const global_2 = require("@memberjunction/global");
12
+ const core_1 = require("@memberjunction/core");
13
+ const storage_1 = require("@memberjunction/storage");
14
+ const base_file_storage_action_1 = require("./base-file-storage.action");
15
+ /**
16
+ * Action that retrieves a list of active and available file storage providers.
17
+ *
18
+ * This action returns storage providers that are:
19
+ * 1. Marked as IsActive=true in the database
20
+ * 2. Actually available/configured in the running environment
21
+ *
22
+ * This is useful for AI agents (particularly Research Agent) to discover
23
+ * what storage providers are available before attempting to search or access files.
24
+ *
25
+ * Providers are configured in the File Storage Providers entity and can include:
26
+ * - Google Drive
27
+ * - SharePoint
28
+ * - Dropbox
29
+ * - Box
30
+ * - AWS S3
31
+ * - Azure Blob Storage
32
+ * - Google Cloud Storage
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // Get all available storage providers
37
+ * await runAction({
38
+ * ActionName: 'List Storage Providers',
39
+ * Params: []
40
+ * });
41
+ *
42
+ * // Get only providers that support search
43
+ * await runAction({
44
+ * ActionName: 'List Storage Providers',
45
+ * Params: [{
46
+ * Name: 'SearchSupportedOnly',
47
+ * Value: true
48
+ * }]
49
+ * });
50
+ * ```
51
+ */
52
+ let ListStorageProvidersAction = class ListStorageProvidersAction extends base_file_storage_action_1.BaseFileStorageAction {
53
+ /**
54
+ * List of storage provider driver keys that support native file search.
55
+ * Used to populate the SupportsSearch field in results.
56
+ */
57
+ SEARCH_SUPPORTED_PROVIDERS = [
58
+ 'Google Drive Storage',
59
+ 'SharePoint Storage',
60
+ 'Dropbox Storage',
61
+ 'Box Storage'
62
+ ];
63
+ async InternalRunAction(params) {
64
+ // Optional parameter to filter only providers that support search
65
+ const searchSupportedOnly = this.getBooleanParam(params, "searchsupportedonly", false);
66
+ try {
67
+ // Query for active file storage providers from database
68
+ const rv = new core_1.RunView();
69
+ const result = await rv.RunView({
70
+ EntityName: 'File Storage Providers',
71
+ ExtraFilter: "IsActive=1",
72
+ OrderBy: 'Priority, Name',
73
+ ResultType: 'entity_object'
74
+ }, params.ContextUser);
75
+ if (!result.Success) {
76
+ return this.createErrorResult(`Failed to retrieve storage providers: ${result.ErrorMessage}`, "QUERY_FAILED");
77
+ }
78
+ const dbProviders = result.Results || [];
79
+ const availableProviders = [];
80
+ // Check which providers are actually available in the running environment
81
+ for (const provider of dbProviders) {
82
+ const supportsSearch = this.SEARCH_SUPPORTED_PROVIDERS.includes(provider.ServerDriverKey);
83
+ // Skip if filtering for search-only and this provider doesn't support it
84
+ if (searchSupportedOnly && !supportsSearch) {
85
+ continue;
86
+ }
87
+ try {
88
+ // Instantiate the provider and check if it's properly configured
89
+ const driver = global_2.MJGlobal.Instance.ClassFactory.CreateInstance(storage_1.FileStorageBase, provider.ServerDriverKey);
90
+ if (driver) {
91
+ // Provider is registered - check if it has required configuration
92
+ const isConfigured = driver.IsConfigured;
93
+ availableProviders.push({
94
+ Name: provider.Name,
95
+ Description: provider.Description || '',
96
+ ServerDriverKey: provider.ServerDriverKey,
97
+ SupportsSearch: supportsSearch,
98
+ IsConfigured: isConfigured,
99
+ ConfigurationError: isConfigured ? undefined : 'Missing required configuration (API keys, credentials, etc.)'
100
+ });
101
+ }
102
+ else {
103
+ // Provider exists in DB but not registered in class factory
104
+ availableProviders.push({
105
+ Name: provider.Name,
106
+ Description: provider.Description || '',
107
+ ServerDriverKey: provider.ServerDriverKey,
108
+ SupportsSearch: supportsSearch,
109
+ IsConfigured: false,
110
+ ConfigurationError: 'Provider not registered in class factory'
111
+ });
112
+ }
113
+ }
114
+ catch (error) {
115
+ // Provider exists in DB but failed to instantiate
116
+ const errorMessage = error instanceof Error ? error.message : String(error);
117
+ availableProviders.push({
118
+ Name: provider.Name,
119
+ Description: provider.Description || '',
120
+ ServerDriverKey: provider.ServerDriverKey,
121
+ SupportsSearch: supportsSearch,
122
+ IsConfigured: false,
123
+ ConfigurationError: `Instantiation failed: ${errorMessage}`
124
+ });
125
+ }
126
+ }
127
+ // Calculate counts
128
+ const configuredProviders = availableProviders.filter(p => p.IsConfigured);
129
+ const searchSupportedCount = configuredProviders.filter(p => p.SupportsSearch).length;
130
+ const totalCount = availableProviders.length;
131
+ const configuredCount = configuredProviders.length;
132
+ // Create detailed result message
133
+ let message = `Found ${totalCount} active storage provider(s) in database`;
134
+ if (configuredCount < totalCount) {
135
+ message += `, ${configuredCount} configured and available`;
136
+ }
137
+ else {
138
+ message += `, all configured and available`;
139
+ }
140
+ if (searchSupportedOnly) {
141
+ message += ` with search support`;
142
+ }
143
+ else {
144
+ message += ` (${searchSupportedCount} support search)`;
145
+ }
146
+ // Return results
147
+ return {
148
+ Success: true,
149
+ ResultCode: "SUCCESS",
150
+ Message: message,
151
+ Providers: availableProviders,
152
+ TotalCount: totalCount,
153
+ ConfiguredCount: configuredCount,
154
+ SearchSupportedCount: searchSupportedCount
155
+ };
156
+ }
157
+ catch (error) {
158
+ const errorMessage = error instanceof Error ? error.message : String(error);
159
+ return this.createErrorResult(`Failed to list storage providers: ${errorMessage}`, "LIST_FAILED");
160
+ }
161
+ }
162
+ };
163
+ exports.ListStorageProvidersAction = ListStorageProvidersAction;
164
+ exports.ListStorageProvidersAction = ListStorageProvidersAction = __decorate([
165
+ (0, global_1.RegisterClass)(base_file_storage_action_1.BaseFileStorageAction, "List Storage Providers")
166
+ ], ListStorageProvidersAction);
167
+ /**
168
+ * Load function to ensure the class is registered and not tree-shaken
169
+ */
170
+ function LoadListStorageProvidersAction() {
171
+ // This function call ensures the class decorator executes
172
+ global_2.MJGlobal.Instance.ClassFactory.GetRegistration(base_file_storage_action_1.BaseFileStorageAction, "List Storage Providers");
173
+ }
174
+ exports.LoadListStorageProvidersAction = LoadListStorageProvidersAction;
175
+ //# sourceMappingURL=list-storage-providers.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-storage-providers.action.js","sourceRoot":"","sources":["../../../src/custom/files/list-storage-providers.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileStorageAction } from "./base-file-storage.action";
3
+ /**
4
+ * Action that searches for files across configured storage providers
5
+ * using each provider's native search capabilities.
6
+ *
7
+ * This action leverages MJStorage's SearchFiles method which uses:
8
+ * - Google Drive: Drive API search with content indexing
9
+ * - SharePoint: Microsoft Graph Search with KQL queries
10
+ * - Dropbox: Search API v2 with filename and content search
11
+ * - Box: Box Search API with Boolean operators
12
+ *
13
+ * Providers without native search (AWS S3, Azure Blob, GCS) will return errors.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // Basic file search
18
+ * await runAction({
19
+ * ActionName: 'Search Storage Files',
20
+ * Params: [{
21
+ * Name: 'Query',
22
+ * Value: 'quarterly report'
23
+ * }, {
24
+ * Name: 'StorageProvider',
25
+ * Value: 'Google Drive - Marketing'
26
+ * }]
27
+ * });
28
+ *
29
+ * // Advanced search with filters
30
+ * await runAction({
31
+ * ActionName: 'Search Storage Files',
32
+ * Params: [{
33
+ * Name: 'Query',
34
+ * Value: 'budget 2024'
35
+ * }, {
36
+ * Name: 'StorageProvider',
37
+ * Value: 'SharePoint - Finance'
38
+ * }, {
39
+ * Name: 'FileTypes',
40
+ * Value: 'pdf,xlsx'
41
+ * }, {
42
+ * Name: 'PathPrefix',
43
+ * Value: 'documents/finance'
44
+ * }, {
45
+ * Name: 'SearchContent',
46
+ * Value: true
47
+ * }, {
48
+ * Name: 'MaxResults',
49
+ * Value: 50
50
+ * }]
51
+ * });
52
+ * ```
53
+ */
54
+ export declare class SearchStorageFilesAction extends BaseFileStorageAction {
55
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
56
+ }
57
+ /**
58
+ * Load function to ensure the class is registered and not tree-shaken
59
+ */
60
+ export declare function LoadSearchStorageFilesAction(): void;
61
+ //# sourceMappingURL=search-storage-files.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-storage-files.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/search-storage-files.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAQnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBACa,wBAAyB,SAAQ,qBAAqB;cAE/C,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkI1F;AAED;;GAEG;AACH,wBAAgB,4BAA4B,SAG3C"}
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadSearchStorageFilesAction = exports.SearchStorageFilesAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const global_2 = require("@memberjunction/global");
12
+ const storage_1 = require("@memberjunction/storage");
13
+ const base_file_storage_action_1 = require("./base-file-storage.action");
14
+ /**
15
+ * Action that searches for files across configured storage providers
16
+ * using each provider's native search capabilities.
17
+ *
18
+ * This action leverages MJStorage's SearchFiles method which uses:
19
+ * - Google Drive: Drive API search with content indexing
20
+ * - SharePoint: Microsoft Graph Search with KQL queries
21
+ * - Dropbox: Search API v2 with filename and content search
22
+ * - Box: Box Search API with Boolean operators
23
+ *
24
+ * Providers without native search (AWS S3, Azure Blob, GCS) will return errors.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * // Basic file search
29
+ * await runAction({
30
+ * ActionName: 'Search Storage Files',
31
+ * Params: [{
32
+ * Name: 'Query',
33
+ * Value: 'quarterly report'
34
+ * }, {
35
+ * Name: 'StorageProvider',
36
+ * Value: 'Google Drive - Marketing'
37
+ * }]
38
+ * });
39
+ *
40
+ * // Advanced search with filters
41
+ * await runAction({
42
+ * ActionName: 'Search Storage Files',
43
+ * Params: [{
44
+ * Name: 'Query',
45
+ * Value: 'budget 2024'
46
+ * }, {
47
+ * Name: 'StorageProvider',
48
+ * Value: 'SharePoint - Finance'
49
+ * }, {
50
+ * Name: 'FileTypes',
51
+ * Value: 'pdf,xlsx'
52
+ * }, {
53
+ * Name: 'PathPrefix',
54
+ * Value: 'documents/finance'
55
+ * }, {
56
+ * Name: 'SearchContent',
57
+ * Value: true
58
+ * }, {
59
+ * Name: 'MaxResults',
60
+ * Value: 50
61
+ * }]
62
+ * });
63
+ * ```
64
+ */
65
+ let SearchStorageFilesAction = class SearchStorageFilesAction extends base_file_storage_action_1.BaseFileStorageAction {
66
+ async InternalRunAction(params) {
67
+ // Required parameters
68
+ const query = this.getStringParam(params, "query");
69
+ if (!query) {
70
+ return this.createErrorResult("Query parameter is required", "MISSING_QUERY");
71
+ }
72
+ // Get storage driver (uses StorageProvider parameter via base class)
73
+ const { driver, error } = await this.getDriverFromParams(params);
74
+ if (error) {
75
+ return error;
76
+ }
77
+ // Optional parameters
78
+ const maxResults = this.getNumericParam(params, "maxresults", 100);
79
+ const pathPrefix = this.getStringParam(params, "pathprefix");
80
+ const searchContent = this.getBooleanParam(params, "searchcontent", false);
81
+ const modifiedAfterStr = this.getStringParam(params, "modifiedafter");
82
+ const modifiedBeforeStr = this.getStringParam(params, "modifiedbefore");
83
+ // Parse file types (comma-separated)
84
+ const fileTypesParam = this.getStringParam(params, "filetypes");
85
+ const fileTypes = fileTypesParam
86
+ ? fileTypesParam.split(',').map(ft => ft.trim()).filter(ft => ft.length > 0)
87
+ : undefined;
88
+ // Parse dates
89
+ let modifiedAfter;
90
+ let modifiedBefore;
91
+ if (modifiedAfterStr) {
92
+ const date = new Date(modifiedAfterStr);
93
+ if (!isNaN(date.getTime())) {
94
+ modifiedAfter = date;
95
+ }
96
+ else {
97
+ return this.createErrorResult(`Invalid ModifiedAfter date format: ${modifiedAfterStr}. Use ISO 8601 format (e.g., '2024-01-01')`, "INVALID_DATE_FORMAT");
98
+ }
99
+ }
100
+ if (modifiedBeforeStr) {
101
+ const date = new Date(modifiedBeforeStr);
102
+ if (!isNaN(date.getTime())) {
103
+ modifiedBefore = date;
104
+ }
105
+ else {
106
+ return this.createErrorResult(`Invalid ModifiedBefore date format: ${modifiedBeforeStr}. Use ISO 8601 format (e.g., '2024-12-31')`, "INVALID_DATE_FORMAT");
107
+ }
108
+ }
109
+ try {
110
+ // Build search options
111
+ const searchOptions = {
112
+ maxResults,
113
+ searchContent
114
+ };
115
+ if (fileTypes) {
116
+ searchOptions.fileTypes = fileTypes;
117
+ }
118
+ if (pathPrefix) {
119
+ searchOptions.pathPrefix = pathPrefix;
120
+ }
121
+ if (modifiedAfter) {
122
+ searchOptions.modifiedAfter = modifiedAfter;
123
+ }
124
+ if (modifiedBefore) {
125
+ searchOptions.modifiedBefore = modifiedBefore;
126
+ }
127
+ // Perform the search
128
+ const searchResults = await driver.SearchFiles(query, searchOptions);
129
+ // Format results for output
130
+ const formattedResults = searchResults.results.map((file) => ({
131
+ Path: file.path,
132
+ Name: file.name,
133
+ Size: file.size,
134
+ ContentType: file.contentType,
135
+ LastModified: file.lastModified.toISOString(),
136
+ Relevance: file.relevance,
137
+ Excerpt: file.excerpt,
138
+ MatchInFilename: file.matchInFilename,
139
+ CustomMetadata: file.customMetadata,
140
+ ProviderData: file.providerData
141
+ }));
142
+ // Create success result with detailed information
143
+ const resultData = {
144
+ SearchResults: formattedResults,
145
+ ResultCount: searchResults.results.length,
146
+ TotalMatches: searchResults.totalMatches,
147
+ HasMore: searchResults.hasMore,
148
+ NextPageToken: searchResults.nextPageToken,
149
+ Query: query,
150
+ SearchOptions: searchOptions
151
+ };
152
+ return {
153
+ Success: true,
154
+ ResultCode: "SUCCESS",
155
+ Message: `Found ${searchResults.results.length} file(s) matching query '${query}'`,
156
+ // Store detailed results in message as JSON for now (ActionResultSimple doesn't have Results property)
157
+ ...resultData
158
+ };
159
+ }
160
+ catch (error) {
161
+ // Handle specific error types
162
+ if (error instanceof storage_1.UnsupportedOperationError) {
163
+ return this.createErrorResult(`Storage provider does not support file search. Providers with search support: Google Drive, SharePoint, Dropbox, Box. Consider using a different provider or List Objects action with filtering.`, "SEARCH_NOT_SUPPORTED");
164
+ }
165
+ // Handle other errors
166
+ const errorMessage = error instanceof Error ? error.message : String(error);
167
+ return this.createErrorResult(`Search failed: ${errorMessage}`, "SEARCH_FAILED");
168
+ }
169
+ }
170
+ };
171
+ exports.SearchStorageFilesAction = SearchStorageFilesAction;
172
+ exports.SearchStorageFilesAction = SearchStorageFilesAction = __decorate([
173
+ (0, global_1.RegisterClass)(base_file_storage_action_1.BaseFileStorageAction, "Search Storage Files")
174
+ ], SearchStorageFilesAction);
175
+ /**
176
+ * Load function to ensure the class is registered and not tree-shaken
177
+ */
178
+ function LoadSearchStorageFilesAction() {
179
+ // This function call ensures the class decorator executes
180
+ global_2.MJGlobal.Instance.ClassFactory.GetRegistration(base_file_storage_action_1.BaseFileStorageAction, "Search Storage Files");
181
+ }
182
+ exports.LoadSearchStorageFilesAction = LoadSearchStorageFilesAction;
183
+ //# sourceMappingURL=search-storage-files.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-storage-files.action.js","sourceRoot":"","sources":["../../../src/custom/files/search-storage-files.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /**
4
+ * Action that generates SVG charts from data using Vega-Lite.
5
+ * Supports various chart types including bar, line, pie, scatter, area, and more.
6
+ *
7
+ * This action is designed for AI agents and workflows to create publication-quality
8
+ * visualizations from structured data without writing visualization code.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // Simple bar chart
13
+ * await runAction({
14
+ * ActionName: 'Create SVG Chart',
15
+ * Params: [
16
+ * { Name: 'ChartType', Value: 'bar' },
17
+ * { Name: 'Data', Value: JSON.stringify([
18
+ * { category: 'A', value: 28 },
19
+ * { category: 'B', value: 55 },
20
+ * { category: 'C', value: 43 }
21
+ * ]) },
22
+ * { Name: 'XField', Value: 'category' },
23
+ * { Name: 'YField', Value: 'value' },
24
+ * { Name: 'Title', Value: 'Sample Bar Chart' }
25
+ * ]
26
+ * });
27
+ *
28
+ * // Pie chart
29
+ * await runAction({
30
+ * ActionName: 'Create SVG Chart',
31
+ * Params: [
32
+ * { Name: 'ChartType', Value: 'pie' },
33
+ * { Name: 'Data', Value: JSON.stringify([
34
+ * { category: 'LLM', count: 67 },
35
+ * { category: 'Embeddings', count: 10 }
36
+ * ]) },
37
+ * { Name: 'ThetaField', Value: 'count' },
38
+ * { Name: 'ColorField', Value: 'category' },
39
+ * { Name: 'Width', Value: '400' },
40
+ * { Name: 'Height', Value: '300' }
41
+ * ]
42
+ * });
43
+ * ```
44
+ */
45
+ export declare class CreateSVGChartAction extends BaseAction {
46
+ /**
47
+ * Generates an SVG chart from the provided data and configuration
48
+ *
49
+ * @param params - The action parameters containing:
50
+ * - ChartType: Type of chart (bar, line, pie, scatter, area, etc.)
51
+ * - Data: JSON array of data objects
52
+ * - XField: Field name for X axis (for bar, line, scatter, area)
53
+ * - YField: Field name for Y axis (for bar, line, scatter, area)
54
+ * - ThetaField: Field name for pie slice size (for pie charts)
55
+ * - ColorField: Field name for color encoding (optional)
56
+ * - Title: Chart title (optional)
57
+ * - Width: Chart width in pixels (optional, default: 400)
58
+ * - Height: Chart height in pixels (optional, default: 300)
59
+ * - VegaLiteSpec: Full Vega-Lite JSON spec (optional, overrides other params)
60
+ *
61
+ * @returns A promise resolving to an ActionResultSimple with:
62
+ * - Success: true if chart was generated successfully
63
+ * - ResultCode: "SUCCESS" or error code
64
+ * - Message: The SVG string or error message
65
+ */
66
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
67
+ /**
68
+ * Builds a Vega-Lite specification from action parameters
69
+ */
70
+ private buildVegaLiteSpec;
71
+ /**
72
+ * Builds encoding for Cartesian charts (bar, line, scatter, area)
73
+ */
74
+ private buildCartesianEncoding;
75
+ /**
76
+ * Builds encoding for pie/arc charts
77
+ */
78
+ private buildPieEncoding;
79
+ /**
80
+ * Infers the Vega-Lite field type from field name
81
+ */
82
+ private inferFieldType;
83
+ /**
84
+ * Helper to safely parse JSON that might already be an object
85
+ */
86
+ private parseJSON;
87
+ /**
88
+ * Helper to get parameter value by name (case-insensitive)
89
+ */
90
+ private getParamValue;
91
+ }
92
+ /**
93
+ * Loader function to ensure the CreateSVGChartAction class is included in the bundle.
94
+ * This prevents tree-shaking from removing the class during the build process.
95
+ */
96
+ export declare function LoadCreateSVGChartAction(): void;
97
+ //# sourceMappingURL=create-svg-chart.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-svg-chart.action.d.ts","sourceRoot":"","sources":["../../../src/custom/visualization/create-svg-chart.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAMrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBACa,oBAAqB,SAAQ,UAAU;IAChD;;;;;;;;;;;;;;;;;;;OAmBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmEvF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,SAAS;IAuBjB;;OAEG;IACH,OAAO,CAAC,aAAa;CASxB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,SAEvC"}