@framers/agentos-ext-channel-pinterest 0.1.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 (39) hide show
  1. package/LICENSE +98 -0
  2. package/dist/PinterestChannelAdapter.d.ts +32 -0
  3. package/dist/PinterestChannelAdapter.d.ts.map +1 -0
  4. package/dist/PinterestChannelAdapter.js +123 -0
  5. package/dist/PinterestChannelAdapter.js.map +1 -0
  6. package/dist/PinterestService.d.ts +111 -0
  7. package/dist/PinterestService.d.ts.map +1 -0
  8. package/dist/PinterestService.js +251 -0
  9. package/dist/PinterestService.js.map +1 -0
  10. package/dist/index.d.ts +30 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +91 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/tools/analytics.d.ts +46 -0
  15. package/dist/tools/analytics.d.ts.map +1 -0
  16. package/dist/tools/analytics.js +50 -0
  17. package/dist/tools/analytics.js.map +1 -0
  18. package/dist/tools/board.d.ts +57 -0
  19. package/dist/tools/board.d.ts.map +1 -0
  20. package/dist/tools/board.js +76 -0
  21. package/dist/tools/board.js.map +1 -0
  22. package/dist/tools/pin.d.ts +82 -0
  23. package/dist/tools/pin.d.ts.map +1 -0
  24. package/dist/tools/pin.js +78 -0
  25. package/dist/tools/pin.js.map +1 -0
  26. package/dist/tools/schedule.d.ts +68 -0
  27. package/dist/tools/schedule.d.ts.map +1 -0
  28. package/dist/tools/schedule.js +74 -0
  29. package/dist/tools/schedule.js.map +1 -0
  30. package/dist/tools/search.d.ts +41 -0
  31. package/dist/tools/search.d.ts.map +1 -0
  32. package/dist/tools/search.js +49 -0
  33. package/dist/tools/search.js.map +1 -0
  34. package/dist/tools/trending.d.ts +35 -0
  35. package/dist/tools/trending.d.ts.map +1 -0
  36. package/dist/tools/trending.js +38 -0
  37. package/dist/tools/trending.js.map +1 -0
  38. package/manifest.json +30 -0
  39. package/package.json +38 -0
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @fileoverview Pinterest Channel Extension for AgentOS.
3
+ *
4
+ * Provides content publishing and discovery via Pinterest API v5,
5
+ * plus ITool descriptors for pin creation, board management,
6
+ * search, trending, analytics, and scheduling.
7
+ *
8
+ * @module @framers/agentos-ext-channel-pinterest
9
+ */
10
+ import type { ExtensionContext, ExtensionPack } from '@framers/agentos';
11
+ import { PinterestService, type PinterestConfig } from './PinterestService';
12
+ import { PinterestChannelAdapter } from './PinterestChannelAdapter';
13
+ import { PinterestPinTool } from './tools/pin';
14
+ import { PinterestBoardTool } from './tools/board';
15
+ import { PinterestSearchTool } from './tools/search';
16
+ import { PinterestTrendingTool } from './tools/trending';
17
+ import { PinterestAnalyticsTool } from './tools/analytics';
18
+ import { PinterestScheduleTool } from './tools/schedule';
19
+ export interface PinterestChannelOptions {
20
+ accessToken?: string;
21
+ accessTokenEnv?: string;
22
+ defaultBoardId?: string;
23
+ priority?: number;
24
+ }
25
+ export declare function createExtensionPack(context: ExtensionContext): ExtensionPack;
26
+ export { PinterestService, PinterestChannelAdapter };
27
+ export { PinterestPinTool, PinterestBoardTool, PinterestSearchTool, PinterestTrendingTool, PinterestAnalyticsTool, PinterestScheduleTool };
28
+ export type { PinterestConfig };
29
+ export default createExtensionPack;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,CA4C5E;AAED,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;AAC3I,YAAY,EAAE,eAAe,EAAE,CAAC;AAChC,eAAe,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /**
4
+ * @fileoverview Pinterest Channel Extension for AgentOS.
5
+ *
6
+ * Provides content publishing and discovery via Pinterest API v5,
7
+ * plus ITool descriptors for pin creation, board management,
8
+ * search, trending, analytics, and scheduling.
9
+ *
10
+ * @module @framers/agentos-ext-channel-pinterest
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.PinterestScheduleTool = exports.PinterestAnalyticsTool = exports.PinterestTrendingTool = exports.PinterestSearchTool = exports.PinterestBoardTool = exports.PinterestPinTool = exports.PinterestChannelAdapter = exports.PinterestService = void 0;
14
+ exports.createExtensionPack = createExtensionPack;
15
+ const PinterestService_1 = require("./PinterestService");
16
+ Object.defineProperty(exports, "PinterestService", { enumerable: true, get: function () { return PinterestService_1.PinterestService; } });
17
+ const PinterestChannelAdapter_1 = require("./PinterestChannelAdapter");
18
+ Object.defineProperty(exports, "PinterestChannelAdapter", { enumerable: true, get: function () { return PinterestChannelAdapter_1.PinterestChannelAdapter; } });
19
+ const pin_1 = require("./tools/pin");
20
+ Object.defineProperty(exports, "PinterestPinTool", { enumerable: true, get: function () { return pin_1.PinterestPinTool; } });
21
+ const board_1 = require("./tools/board");
22
+ Object.defineProperty(exports, "PinterestBoardTool", { enumerable: true, get: function () { return board_1.PinterestBoardTool; } });
23
+ const search_1 = require("./tools/search");
24
+ Object.defineProperty(exports, "PinterestSearchTool", { enumerable: true, get: function () { return search_1.PinterestSearchTool; } });
25
+ const trending_1 = require("./tools/trending");
26
+ Object.defineProperty(exports, "PinterestTrendingTool", { enumerable: true, get: function () { return trending_1.PinterestTrendingTool; } });
27
+ const analytics_1 = require("./tools/analytics");
28
+ Object.defineProperty(exports, "PinterestAnalyticsTool", { enumerable: true, get: function () { return analytics_1.PinterestAnalyticsTool; } });
29
+ const schedule_1 = require("./tools/schedule");
30
+ Object.defineProperty(exports, "PinterestScheduleTool", { enumerable: true, get: function () { return schedule_1.PinterestScheduleTool; } });
31
+ function resolveAccessToken(options, secrets) {
32
+ if (options.accessToken)
33
+ return options.accessToken;
34
+ // Check secrets map from registry
35
+ if (secrets?.['pinterest.accessToken'])
36
+ return secrets['pinterest.accessToken'];
37
+ // Environment variable fallback
38
+ const envName = options.accessTokenEnv ?? 'PINTEREST_ACCESS_TOKEN';
39
+ const envValue = process.env[envName];
40
+ if (envValue)
41
+ return envValue;
42
+ // Common variations
43
+ for (const v of ['PINTEREST_ACCESS_TOKEN', 'PINTEREST_TOKEN']) {
44
+ if (process.env[v])
45
+ return process.env[v];
46
+ }
47
+ throw new Error('Pinterest access token not found. Provide via options.accessToken, secrets["pinterest.accessToken"], or PINTEREST_ACCESS_TOKEN env var.');
48
+ }
49
+ function createExtensionPack(context) {
50
+ const options = (context.options ?? {});
51
+ const accessToken = resolveAccessToken(options, options.secrets);
52
+ const config = { accessToken };
53
+ const service = new PinterestService_1.PinterestService(config);
54
+ const adapter = new PinterestChannelAdapter_1.PinterestChannelAdapter(service);
55
+ const pinTool = new pin_1.PinterestPinTool(service);
56
+ const boardTool = new board_1.PinterestBoardTool(service);
57
+ const searchTool = new search_1.PinterestSearchTool(service);
58
+ const trendingTool = new trending_1.PinterestTrendingTool(service);
59
+ const analyticsTool = new analytics_1.PinterestAnalyticsTool(service);
60
+ const scheduleTool = new schedule_1.PinterestScheduleTool(service);
61
+ const priority = options.priority ?? 50;
62
+ return {
63
+ name: '@framers/agentos-ext-channel-pinterest',
64
+ version: '0.1.0',
65
+ descriptors: [
66
+ { id: 'pinterestPin', kind: 'tool', priority, payload: pinTool },
67
+ { id: 'pinterestBoard', kind: 'tool', priority, payload: boardTool },
68
+ { id: 'pinterestSearch', kind: 'tool', priority, payload: searchTool },
69
+ { id: 'pinterestTrending', kind: 'tool', priority, payload: trendingTool },
70
+ { id: 'pinterestAnalytics', kind: 'tool', priority, payload: analyticsTool },
71
+ { id: 'pinterestSchedule', kind: 'tool', priority, payload: scheduleTool },
72
+ { id: 'pinterestChannel', kind: 'messaging-channel', priority, payload: adapter },
73
+ ],
74
+ onActivate: async () => {
75
+ await service.initialize();
76
+ await adapter.initialize({
77
+ platform: 'pinterest',
78
+ credential: accessToken,
79
+ params: options.defaultBoardId ? { boardId: options.defaultBoardId } : undefined,
80
+ });
81
+ context.logger?.info('[PinterestChannel] Extension activated');
82
+ },
83
+ onDeactivate: async () => {
84
+ await adapter.shutdown();
85
+ await service.shutdown();
86
+ context.logger?.info('[PinterestChannel] Extension deactivated');
87
+ },
88
+ };
89
+ }
90
+ exports.default = createExtensionPack;
91
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @fileoverview ITool for Pinterest pin and board analytics.
3
+ */
4
+ import type { ITool, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
5
+ import type { PinterestService } from '../PinterestService';
6
+ export declare class PinterestAnalyticsTool implements ITool {
7
+ private readonly service;
8
+ readonly id = "pinterestAnalytics";
9
+ readonly name = "pinterestAnalytics";
10
+ readonly displayName = "Pin Analytics";
11
+ readonly description = "Get performance metrics for a Pinterest pin or board (impressions, saves, clicks, closeups).";
12
+ readonly category = "social";
13
+ readonly version = "0.1.0";
14
+ readonly hasSideEffects = false;
15
+ readonly inputSchema: {
16
+ type: "object";
17
+ required: readonly ["id", "type", "startDate", "endDate"];
18
+ properties: {
19
+ id: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ type: {
24
+ type: string;
25
+ enum: string[];
26
+ description: string;
27
+ };
28
+ startDate: {
29
+ type: string;
30
+ description: string;
31
+ };
32
+ endDate: {
33
+ type: string;
34
+ description: string;
35
+ };
36
+ };
37
+ };
38
+ constructor(service: PinterestService);
39
+ execute(args: {
40
+ id: string;
41
+ type: 'pin' | 'board';
42
+ startDate: string;
43
+ endDate: string;
44
+ }, _context: ToolExecutionContext): Promise<ToolExecutionResult>;
45
+ }
46
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,qBAAa,sBAAuB,YAAW,KAAK;IAwBtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAvBpC,SAAgB,EAAE,wBAAwB;IAC1C,SAAgB,IAAI,wBAAwB;IAC5C,SAAgB,WAAW,mBAAmB;IAC9C,SAAgB,WAAW,kGAAkG;IAC7H,SAAgB,QAAQ,YAAY;IACpC,SAAgB,OAAO,WAAW;IAClC,SAAgB,cAAc,SAAS;IAEvC,SAAgB,WAAW;;;;;;;;;;;;;;;;;;;;;;MAazB;gBAE2B,OAAO,EAAE,gBAAgB;IAEhD,OAAO,CACX,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAC/E,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAchC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /**
4
+ * @fileoverview ITool for Pinterest pin and board analytics.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PinterestAnalyticsTool = void 0;
8
+ class PinterestAnalyticsTool {
9
+ constructor(service) {
10
+ this.service = service;
11
+ this.id = 'pinterestAnalytics';
12
+ this.name = 'pinterestAnalytics';
13
+ this.displayName = 'Pin Analytics';
14
+ this.description = 'Get performance metrics for a Pinterest pin or board (impressions, saves, clicks, closeups).';
15
+ this.category = 'social';
16
+ this.version = '0.1.0';
17
+ this.hasSideEffects = false;
18
+ this.inputSchema = {
19
+ type: 'object',
20
+ required: ['id', 'type', 'startDate', 'endDate'],
21
+ properties: {
22
+ id: { type: 'string', description: 'Pin ID or Board ID' },
23
+ type: {
24
+ type: 'string',
25
+ enum: ['pin', 'board'],
26
+ description: 'Whether to fetch analytics for a pin or board',
27
+ },
28
+ startDate: { type: 'string', description: 'Start date (YYYY-MM-DD)' },
29
+ endDate: { type: 'string', description: 'End date (YYYY-MM-DD)' },
30
+ },
31
+ };
32
+ }
33
+ async execute(args, _context) {
34
+ try {
35
+ let analytics;
36
+ if (args.type === 'board') {
37
+ analytics = await this.service.getBoardAnalytics(args.id, args.startDate, args.endDate);
38
+ }
39
+ else {
40
+ analytics = await this.service.getPinAnalytics(args.id, args.startDate, args.endDate);
41
+ }
42
+ return { success: true, data: analytics };
43
+ }
44
+ catch (error) {
45
+ return { success: false, error: error.message };
46
+ }
47
+ }
48
+ }
49
+ exports.PinterestAnalyticsTool = PinterestAnalyticsTool;
50
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;GAEG;;;AAKH,MAAa,sBAAsB;IAwBjC,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QAvBtC,OAAE,GAAG,oBAAoB,CAAC;QAC1B,SAAI,GAAG,oBAAoB,CAAC;QAC5B,gBAAW,GAAG,eAAe,CAAC;QAC9B,gBAAW,GAAG,8FAA8F,CAAC;QAC7G,aAAQ,GAAG,QAAQ,CAAC;QACpB,YAAO,GAAG,OAAO,CAAC;QAClB,mBAAc,GAAG,KAAK,CAAC;QAEvB,gBAAW,GAAG;YAC5B,IAAI,EAAE,QAAiB;YACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAU;YACzD,UAAU,EAAE;gBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBACzD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;oBACtB,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACrE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;aAClE;SACF,CAAC;IAEuD,CAAC;IAE1D,KAAK,CAAC,OAAO,CACX,IAA+E,EAC/E,QAA8B;QAE9B,IAAI,CAAC;YACH,IAAI,SAAS,CAAC;YACd,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxF,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AA3CD,wDA2CC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @fileoverview ITool for creating and managing Pinterest boards.
3
+ */
4
+ import type { ITool, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
5
+ import type { PinterestService } from '../PinterestService';
6
+ export declare class PinterestBoardTool implements ITool {
7
+ private readonly service;
8
+ readonly id = "pinterestBoard";
9
+ readonly name = "pinterestBoard";
10
+ readonly displayName = "Manage Board";
11
+ readonly description = "Create, list, or delete Pinterest boards.";
12
+ readonly category = "social";
13
+ readonly version = "0.1.0";
14
+ readonly hasSideEffects = true;
15
+ readonly inputSchema: {
16
+ type: "object";
17
+ required: readonly ["action"];
18
+ properties: {
19
+ action: {
20
+ type: string;
21
+ enum: string[];
22
+ description: string;
23
+ };
24
+ name: {
25
+ type: string;
26
+ description: string;
27
+ };
28
+ description: {
29
+ type: string;
30
+ description: string;
31
+ };
32
+ privacy: {
33
+ type: string;
34
+ enum: string[];
35
+ description: string;
36
+ };
37
+ boardId: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ maxResults: {
42
+ type: string;
43
+ description: string;
44
+ };
45
+ };
46
+ };
47
+ constructor(service: PinterestService);
48
+ execute(args: {
49
+ action: 'create' | 'list' | 'listPins' | 'delete';
50
+ name?: string;
51
+ description?: string;
52
+ privacy?: 'PUBLIC' | 'PROTECTED' | 'SECRET';
53
+ boardId?: string;
54
+ maxResults?: number;
55
+ }, _context: ToolExecutionContext): Promise<ToolExecutionResult>;
56
+ }
57
+ //# sourceMappingURL=board.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/tools/board.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,qBAAa,kBAAmB,YAAW,KAAK;IA8BlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IA7BpC,SAAgB,EAAE,oBAAoB;IACtC,SAAgB,IAAI,oBAAoB;IACxC,SAAgB,WAAW,kBAAkB;IAC7C,SAAgB,WAAW,+CAA+C;IAC1E,SAAgB,QAAQ,YAAY;IACpC,SAAgB,OAAO,WAAW;IAClC,SAAgB,cAAc,QAAQ;IAEtC,SAAgB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmBzB;gBAE2B,OAAO,EAAE,gBAAgB;IAEhD,OAAO,CACX,IAAI,EAAE;QACJ,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;QAClD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,EACD,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CA+BhC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /**
4
+ * @fileoverview ITool for creating and managing Pinterest boards.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PinterestBoardTool = void 0;
8
+ class PinterestBoardTool {
9
+ constructor(service) {
10
+ this.service = service;
11
+ this.id = 'pinterestBoard';
12
+ this.name = 'pinterestBoard';
13
+ this.displayName = 'Manage Board';
14
+ this.description = 'Create, list, or delete Pinterest boards.';
15
+ this.category = 'social';
16
+ this.version = '0.1.0';
17
+ this.hasSideEffects = true;
18
+ this.inputSchema = {
19
+ type: 'object',
20
+ required: ['action'],
21
+ properties: {
22
+ action: {
23
+ type: 'string',
24
+ enum: ['create', 'list', 'listPins', 'delete'],
25
+ description: 'Board action to perform',
26
+ },
27
+ name: { type: 'string', description: 'Board name (required for create)' },
28
+ description: { type: 'string', description: 'Board description' },
29
+ privacy: {
30
+ type: 'string',
31
+ enum: ['PUBLIC', 'PROTECTED', 'SECRET'],
32
+ description: 'Board privacy setting',
33
+ },
34
+ boardId: { type: 'string', description: 'Board ID (required for listPins, delete)' },
35
+ maxResults: { type: 'number', description: 'Max results to return' },
36
+ },
37
+ };
38
+ }
39
+ async execute(args, _context) {
40
+ try {
41
+ switch (args.action) {
42
+ case 'create': {
43
+ if (!args.name)
44
+ throw new Error('name is required for create action');
45
+ const board = await this.service.createBoard({
46
+ name: args.name,
47
+ description: args.description,
48
+ privacy: args.privacy,
49
+ });
50
+ return { success: true, data: board };
51
+ }
52
+ case 'list': {
53
+ const boards = await this.service.getBoards();
54
+ return { success: true, data: { boards, count: boards.length } };
55
+ }
56
+ case 'listPins': {
57
+ if (!args.boardId)
58
+ throw new Error('boardId is required for listPins action');
59
+ const pins = await this.service.getBoardPins(args.boardId, args.maxResults);
60
+ return { success: true, data: { pins, count: pins.length } };
61
+ }
62
+ case 'delete': {
63
+ if (!args.boardId)
64
+ throw new Error('boardId is required for delete action');
65
+ await this.service.deleteBoard(args.boardId);
66
+ return { success: true, data: { deleted: true, boardId: args.boardId } };
67
+ }
68
+ }
69
+ }
70
+ catch (error) {
71
+ return { success: false, error: error.message };
72
+ }
73
+ }
74
+ }
75
+ exports.PinterestBoardTool = PinterestBoardTool;
76
+ //# sourceMappingURL=board.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/tools/board.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;GAEG;;;AAKH,MAAa,kBAAkB;IA8B7B,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QA7BtC,OAAE,GAAG,gBAAgB,CAAC;QACtB,SAAI,GAAG,gBAAgB,CAAC;QACxB,gBAAW,GAAG,cAAc,CAAC;QAC7B,gBAAW,GAAG,2CAA2C,CAAC;QAC1D,aAAQ,GAAG,QAAQ,CAAC;QACpB,YAAO,GAAG,OAAO,CAAC;QAClB,mBAAc,GAAG,IAAI,CAAC;QAEtB,gBAAW,GAAG;YAC5B,IAAI,EAAE,QAAiB;YACvB,QAAQ,EAAE,CAAC,QAAQ,CAAU;YAC7B,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;oBAC9C,WAAW,EAAE,yBAAyB;iBACvC;gBACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBACzE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBACjE,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;oBACvC,WAAW,EAAE,uBAAuB;iBACrC;gBACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;gBACpF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;aACrE;SACF,CAAC;IAEuD,CAAC;IAE1D,KAAK,CAAC,OAAO,CACX,IAOC,EACD,QAA8B;QAE9B,IAAI,CAAC;YACH,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBACtE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;wBAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;qBACtB,CAAC,CAAC;oBACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACxC,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnE,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,IAAI,CAAC,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBAC9E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC/D,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBAC5E,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAzED,gDAyEC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @fileoverview ITool for creating pins on Pinterest.
3
+ */
4
+ import type { ITool, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
5
+ import type { PinterestService } from '../PinterestService';
6
+ export declare class PinterestPinTool implements ITool {
7
+ private readonly service;
8
+ readonly id = "pinterestPin";
9
+ readonly name = "pinterestPin";
10
+ readonly displayName = "Create Pin";
11
+ readonly description = "Create a pin on Pinterest with an image, video, or carousel of images.";
12
+ readonly category = "social";
13
+ readonly version = "0.1.0";
14
+ readonly hasSideEffects = true;
15
+ readonly inputSchema: {
16
+ type: "object";
17
+ required: readonly ["boardId", "mediaType", "mediaUrl"];
18
+ properties: {
19
+ boardId: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ title: {
24
+ type: string;
25
+ description: string;
26
+ };
27
+ description: {
28
+ type: string;
29
+ description: string;
30
+ };
31
+ link: {
32
+ type: string;
33
+ description: string;
34
+ };
35
+ mediaType: {
36
+ type: string;
37
+ enum: string[];
38
+ description: string;
39
+ };
40
+ mediaUrl: {
41
+ type: string;
42
+ description: string;
43
+ };
44
+ mediaUrls: {
45
+ type: string;
46
+ items: {
47
+ type: string;
48
+ };
49
+ description: string;
50
+ };
51
+ coverImageUrl: {
52
+ type: string;
53
+ description: string;
54
+ };
55
+ altText: {
56
+ type: string;
57
+ description: string;
58
+ };
59
+ hashtags: {
60
+ type: string;
61
+ items: {
62
+ type: string;
63
+ };
64
+ description: string;
65
+ };
66
+ };
67
+ };
68
+ constructor(service: PinterestService);
69
+ execute(args: {
70
+ boardId: string;
71
+ title?: string;
72
+ description?: string;
73
+ link?: string;
74
+ mediaType: 'image' | 'video' | 'carousel';
75
+ mediaUrl: string;
76
+ mediaUrls?: string[];
77
+ coverImageUrl?: string;
78
+ altText?: string;
79
+ hashtags?: string[];
80
+ }, _context: ToolExecutionContext): Promise<ToolExecutionResult>;
81
+ }
82
+ //# sourceMappingURL=pin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin.d.ts","sourceRoot":"","sources":["../../src/tools/pin.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,qBAAa,gBAAiB,YAAW,KAAK;IAsChC,OAAO,CAAC,QAAQ,CAAC,OAAO;IArCpC,SAAgB,EAAE,kBAAkB;IACpC,SAAgB,IAAI,kBAAkB;IACtC,SAAgB,WAAW,gBAAgB;IAC3C,SAAgB,WAAW,4EAA4E;IACvG,SAAgB,QAAQ,YAAY;IACpC,SAAgB,OAAO,WAAW;IAClC,SAAgB,cAAc,QAAQ;IAEtC,SAAgB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BzB;gBAE2B,OAAO,EAAE,gBAAgB;IAEhD,OAAO,CACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;QAC1C,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,EACD,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CA+BhC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /**
4
+ * @fileoverview ITool for creating pins on Pinterest.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PinterestPinTool = void 0;
8
+ class PinterestPinTool {
9
+ constructor(service) {
10
+ this.service = service;
11
+ this.id = 'pinterestPin';
12
+ this.name = 'pinterestPin';
13
+ this.displayName = 'Create Pin';
14
+ this.description = 'Create a pin on Pinterest with an image, video, or carousel of images.';
15
+ this.category = 'social';
16
+ this.version = '0.1.0';
17
+ this.hasSideEffects = true;
18
+ this.inputSchema = {
19
+ type: 'object',
20
+ required: ['boardId', 'mediaType', 'mediaUrl'],
21
+ properties: {
22
+ boardId: { type: 'string', description: 'Board ID to pin to' },
23
+ title: { type: 'string', description: 'Pin title' },
24
+ description: { type: 'string', description: 'Pin description' },
25
+ link: { type: 'string', description: 'Destination URL' },
26
+ mediaType: {
27
+ type: 'string',
28
+ enum: ['image', 'video', 'carousel'],
29
+ description: 'Type of media: image, video, or carousel',
30
+ },
31
+ mediaUrl: { type: 'string', description: 'Primary media URL (image URL or video ID)' },
32
+ mediaUrls: {
33
+ type: 'array',
34
+ items: { type: 'string' },
35
+ description: 'Multiple image URLs for carousel pins',
36
+ },
37
+ coverImageUrl: { type: 'string', description: 'Cover image URL for video pins' },
38
+ altText: { type: 'string', description: 'Alt text for accessibility' },
39
+ hashtags: {
40
+ type: 'array',
41
+ items: { type: 'string' },
42
+ description: 'Hashtags to append to description',
43
+ },
44
+ },
45
+ };
46
+ }
47
+ async execute(args, _context) {
48
+ try {
49
+ let mediaSource;
50
+ switch (args.mediaType) {
51
+ case 'image':
52
+ mediaSource = { sourceType: 'image_url', url: args.mediaUrl };
53
+ break;
54
+ case 'video':
55
+ mediaSource = { sourceType: 'video_id', videoId: args.mediaUrl, coverImageUrl: args.coverImageUrl };
56
+ break;
57
+ case 'carousel':
58
+ mediaSource = { sourceType: 'multiple_image_urls', urls: args.mediaUrls ?? [args.mediaUrl] };
59
+ break;
60
+ }
61
+ const result = await this.service.createPin({
62
+ boardId: args.boardId,
63
+ title: args.title,
64
+ description: args.description,
65
+ link: args.link,
66
+ mediaSource,
67
+ altText: args.altText,
68
+ hashtags: args.hashtags,
69
+ });
70
+ return { success: true, data: result };
71
+ }
72
+ catch (error) {
73
+ return { success: false, error: error.message };
74
+ }
75
+ }
76
+ }
77
+ exports.PinterestPinTool = PinterestPinTool;
78
+ //# sourceMappingURL=pin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin.js","sourceRoot":"","sources":["../../src/tools/pin.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;GAEG;;;AAKH,MAAa,gBAAgB;IAsC3B,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QArCtC,OAAE,GAAG,cAAc,CAAC;QACpB,SAAI,GAAG,cAAc,CAAC;QACtB,gBAAW,GAAG,YAAY,CAAC;QAC3B,gBAAW,GAAG,wEAAwE,CAAC;QACvF,aAAQ,GAAG,QAAQ,CAAC;QACpB,YAAO,GAAG,OAAO,CAAC;QAClB,mBAAc,GAAG,IAAI,CAAC;QAEtB,gBAAW,GAAG;YAC5B,IAAI,EAAE,QAAiB;YACvB,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAU;YACvD,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAC9D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;gBACnD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBAC/D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBACxD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;oBACpC,WAAW,EAAE,0CAA0C;iBACxD;gBACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACtF,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,uCAAuC;iBACrD;gBACD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBAChF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACtE,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,mCAAmC;iBACjD;aACF;SACF,CAAC;IAEuD,CAAC;IAE1D,KAAK,CAAC,OAAO,CACX,IAWC,EACD,QAA8B;QAE9B,IAAI,CAAC;YACH,IAAI,WAAgB,CAAC;YAErB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,KAAK,OAAO;oBACV,WAAW,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC9D,MAAM;gBACR,KAAK,OAAO;oBACV,WAAW,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACpG,MAAM;gBACR,KAAK,UAAU;oBACb,WAAW,GAAG,EAAE,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7F,MAAM;YACV,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AArFD,4CAqFC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @fileoverview ITool for scheduling pins on Pinterest.
3
+ */
4
+ import type { ITool, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
5
+ import type { PinterestService } from '../PinterestService';
6
+ export declare class PinterestScheduleTool implements ITool {
7
+ private readonly service;
8
+ readonly id = "pinterestSchedule";
9
+ readonly name = "pinterestSchedule";
10
+ readonly displayName = "Schedule Pin";
11
+ readonly description = "Schedule a pin for future publishing on Pinterest.";
12
+ readonly category = "social";
13
+ readonly version = "0.1.0";
14
+ readonly hasSideEffects = true;
15
+ readonly inputSchema: {
16
+ type: "object";
17
+ required: readonly ["boardId", "mediaUrl", "publishAt"];
18
+ properties: {
19
+ boardId: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ title: {
24
+ type: string;
25
+ description: string;
26
+ };
27
+ description: {
28
+ type: string;
29
+ description: string;
30
+ };
31
+ link: {
32
+ type: string;
33
+ description: string;
34
+ };
35
+ mediaUrl: {
36
+ type: string;
37
+ description: string;
38
+ };
39
+ altText: {
40
+ type: string;
41
+ description: string;
42
+ };
43
+ hashtags: {
44
+ type: string;
45
+ items: {
46
+ type: string;
47
+ };
48
+ description: string;
49
+ };
50
+ publishAt: {
51
+ type: string;
52
+ description: string;
53
+ };
54
+ };
55
+ };
56
+ constructor(service: PinterestService);
57
+ execute(args: {
58
+ boardId: string;
59
+ title?: string;
60
+ description?: string;
61
+ link?: string;
62
+ mediaUrl: string;
63
+ altText?: string;
64
+ hashtags?: string[];
65
+ publishAt: string;
66
+ }, _context: ToolExecutionContext): Promise<ToolExecutionResult>;
67
+ }
68
+ //# sourceMappingURL=schedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,qBAAa,qBAAsB,YAAW,KAAK;IA4BrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IA3BpC,SAAgB,EAAE,uBAAuB;IACzC,SAAgB,IAAI,uBAAuB;IAC3C,SAAgB,WAAW,kBAAkB;IAC7C,SAAgB,WAAW,wDAAwD;IACnF,SAAgB,QAAQ,YAAY;IACpC,SAAgB,OAAO,WAAW;IAClC,SAAgB,cAAc,QAAQ;IAEtC,SAAgB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiBzB;gBAE2B,OAAO,EAAE,gBAAgB;IAEhD,OAAO,CACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,EACD,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAoChC"}