@contractspec/integration.providers-impls 1.56.0 → 1.57.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 (154) hide show
  1. package/README.md +115 -1
  2. package/dist/_virtual/{rolldown_runtime.js → _rolldown/runtime.js} +3 -3
  3. package/dist/analytics.d.ts +9 -0
  4. package/dist/analytics.d.ts.map +1 -0
  5. package/dist/analytics.js +3 -0
  6. package/dist/calendar.d.ts +1 -0
  7. package/dist/calendar.d.ts.map +1 -1
  8. package/dist/calendar.js +1 -1
  9. package/dist/database.d.ts +9 -0
  10. package/dist/database.d.ts.map +1 -0
  11. package/dist/database.js +3 -0
  12. package/dist/email.d.ts +1 -0
  13. package/dist/email.d.ts.map +1 -1
  14. package/dist/email.js +1 -1
  15. package/dist/embedding.d.ts +1 -0
  16. package/dist/embedding.d.ts.map +1 -1
  17. package/dist/embedding.js +1 -1
  18. package/dist/impls/elevenlabs-voice.d.ts.map +1 -1
  19. package/dist/impls/fal-voice.d.ts +29 -0
  20. package/dist/impls/fal-voice.d.ts.map +1 -0
  21. package/dist/impls/fal-voice.js +88 -0
  22. package/dist/impls/fal-voice.js.map +1 -0
  23. package/dist/impls/fathom-meeting-recorder.d.ts +42 -0
  24. package/dist/impls/fathom-meeting-recorder.d.ts.map +1 -0
  25. package/dist/impls/fathom-meeting-recorder.js +145 -0
  26. package/dist/impls/fathom-meeting-recorder.js.map +1 -0
  27. package/dist/impls/fathom-meeting-recorder.mapper.d.ts +9 -0
  28. package/dist/impls/fathom-meeting-recorder.mapper.d.ts.map +1 -0
  29. package/dist/impls/fathom-meeting-recorder.mapper.js +42 -0
  30. package/dist/impls/fathom-meeting-recorder.mapper.js.map +1 -0
  31. package/dist/impls/fathom-meeting-recorder.types.d.ts +24 -0
  32. package/dist/impls/fathom-meeting-recorder.types.d.ts.map +1 -0
  33. package/dist/impls/fathom-meeting-recorder.types.js +0 -0
  34. package/dist/impls/fathom-meeting-recorder.utils.d.ts +15 -0
  35. package/dist/impls/fathom-meeting-recorder.utils.d.ts.map +1 -0
  36. package/dist/impls/fathom-meeting-recorder.utils.js +56 -0
  37. package/dist/impls/fathom-meeting-recorder.utils.js.map +1 -0
  38. package/dist/impls/fathom-meeting-recorder.webhooks.d.ts +8 -0
  39. package/dist/impls/fathom-meeting-recorder.webhooks.d.ts.map +1 -0
  40. package/dist/impls/fathom-meeting-recorder.webhooks.js +25 -0
  41. package/dist/impls/fathom-meeting-recorder.webhooks.js.map +1 -0
  42. package/dist/impls/fireflies-meeting-recorder.d.ts +28 -0
  43. package/dist/impls/fireflies-meeting-recorder.d.ts.map +1 -0
  44. package/dist/impls/fireflies-meeting-recorder.js +152 -0
  45. package/dist/impls/fireflies-meeting-recorder.js.map +1 -0
  46. package/dist/impls/fireflies-meeting-recorder.queries.d.ts +7 -0
  47. package/dist/impls/fireflies-meeting-recorder.queries.d.ts.map +1 -0
  48. package/dist/impls/fireflies-meeting-recorder.queries.js +84 -0
  49. package/dist/impls/fireflies-meeting-recorder.queries.js.map +1 -0
  50. package/dist/impls/fireflies-meeting-recorder.types.d.ts +35 -0
  51. package/dist/impls/fireflies-meeting-recorder.types.d.ts.map +1 -0
  52. package/dist/impls/fireflies-meeting-recorder.types.js +0 -0
  53. package/dist/impls/fireflies-meeting-recorder.utils.d.ts +8 -0
  54. package/dist/impls/fireflies-meeting-recorder.utils.d.ts.map +1 -0
  55. package/dist/impls/fireflies-meeting-recorder.utils.js +36 -0
  56. package/dist/impls/fireflies-meeting-recorder.utils.js.map +1 -0
  57. package/dist/impls/gcs-storage.d.ts.map +1 -1
  58. package/dist/impls/gmail-inbound.d.ts.map +1 -1
  59. package/dist/impls/gmail-outbound.d.ts.map +1 -1
  60. package/dist/impls/google-calendar.d.ts.map +1 -1
  61. package/dist/impls/gradium-voice.d.ts +26 -0
  62. package/dist/impls/gradium-voice.d.ts.map +1 -0
  63. package/dist/impls/gradium-voice.js +80 -0
  64. package/dist/impls/gradium-voice.js.map +1 -0
  65. package/dist/impls/granola-meeting-recorder.d.ts +27 -0
  66. package/dist/impls/granola-meeting-recorder.d.ts.map +1 -0
  67. package/dist/impls/granola-meeting-recorder.js +145 -0
  68. package/dist/impls/granola-meeting-recorder.js.map +1 -0
  69. package/dist/impls/granola-meeting-recorder.types.d.ts +50 -0
  70. package/dist/impls/granola-meeting-recorder.types.d.ts.map +1 -0
  71. package/dist/impls/granola-meeting-recorder.types.js +0 -0
  72. package/dist/impls/index.d.ts +15 -2
  73. package/dist/impls/index.js +18 -5
  74. package/dist/impls/jira.d.ts +25 -0
  75. package/dist/impls/jira.d.ts.map +1 -0
  76. package/dist/impls/jira.js +114 -0
  77. package/dist/impls/jira.js.map +1 -0
  78. package/dist/impls/linear.d.ts +24 -0
  79. package/dist/impls/linear.d.ts.map +1 -0
  80. package/dist/impls/linear.js +75 -0
  81. package/dist/impls/linear.js.map +1 -0
  82. package/dist/impls/mistral-embedding.d.ts.map +1 -1
  83. package/dist/impls/mistral-llm.d.ts.map +1 -1
  84. package/dist/impls/notion.d.ts +27 -0
  85. package/dist/impls/notion.d.ts.map +1 -0
  86. package/dist/impls/notion.js +126 -0
  87. package/dist/impls/notion.js.map +1 -0
  88. package/dist/impls/posthog-reader.d.ts +26 -0
  89. package/dist/impls/posthog-reader.d.ts.map +1 -0
  90. package/dist/impls/posthog-reader.js +141 -0
  91. package/dist/impls/posthog-reader.js.map +1 -0
  92. package/dist/impls/posthog-utils.d.ts +8 -0
  93. package/dist/impls/posthog-utils.d.ts.map +1 -0
  94. package/dist/impls/posthog-utils.js +30 -0
  95. package/dist/impls/posthog-utils.js.map +1 -0
  96. package/dist/impls/posthog.d.ts +40 -0
  97. package/dist/impls/posthog.d.ts.map +1 -0
  98. package/dist/impls/posthog.js +122 -0
  99. package/dist/impls/posthog.js.map +1 -0
  100. package/dist/impls/postmark-email.d.ts.map +1 -1
  101. package/dist/impls/powens-client.d.ts.map +1 -1
  102. package/dist/impls/powens-openbanking.d.ts +1 -1
  103. package/dist/impls/powens-openbanking.d.ts.map +1 -1
  104. package/dist/impls/provider-factory.d.ts +10 -2
  105. package/dist/impls/provider-factory.d.ts.map +1 -1
  106. package/dist/impls/provider-factory.js +143 -2
  107. package/dist/impls/provider-factory.js.map +1 -1
  108. package/dist/impls/qdrant-vector.d.ts.map +1 -1
  109. package/dist/impls/stripe-payments.d.ts.map +1 -1
  110. package/dist/impls/supabase-psql.d.ts +28 -0
  111. package/dist/impls/supabase-psql.d.ts.map +1 -0
  112. package/dist/impls/supabase-psql.js +111 -0
  113. package/dist/impls/supabase-psql.js.map +1 -0
  114. package/dist/impls/supabase-vector.d.ts +36 -0
  115. package/dist/impls/supabase-vector.d.ts.map +1 -0
  116. package/dist/impls/supabase-vector.js +149 -0
  117. package/dist/impls/supabase-vector.js.map +1 -0
  118. package/dist/impls/tldv-meeting-recorder.d.ts +25 -0
  119. package/dist/impls/tldv-meeting-recorder.d.ts.map +1 -0
  120. package/dist/impls/tldv-meeting-recorder.js +131 -0
  121. package/dist/impls/tldv-meeting-recorder.js.map +1 -0
  122. package/dist/impls/twilio-sms.d.ts.map +1 -1
  123. package/dist/index.d.ts +29 -8
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +44 -6
  126. package/dist/index.js.map +1 -1
  127. package/dist/llm.d.ts +1 -0
  128. package/dist/llm.d.ts.map +1 -1
  129. package/dist/llm.js +1 -1
  130. package/dist/meeting-recorder.d.ts +9 -0
  131. package/dist/meeting-recorder.d.ts.map +1 -0
  132. package/dist/meeting-recorder.js +3 -0
  133. package/dist/openbanking.d.ts +1 -0
  134. package/dist/openbanking.d.ts.map +1 -1
  135. package/dist/openbanking.js +1 -1
  136. package/dist/payments.d.ts +1 -0
  137. package/dist/payments.d.ts.map +1 -1
  138. package/dist/payments.js +1 -1
  139. package/dist/project-management.d.ts +9 -0
  140. package/dist/project-management.d.ts.map +1 -0
  141. package/dist/project-management.js +3 -0
  142. package/dist/sms.d.ts +1 -0
  143. package/dist/sms.d.ts.map +1 -1
  144. package/dist/sms.js +1 -1
  145. package/dist/storage.d.ts +1 -0
  146. package/dist/storage.d.ts.map +1 -1
  147. package/dist/storage.js +1 -1
  148. package/dist/vector-store.d.ts +1 -0
  149. package/dist/vector-store.d.ts.map +1 -1
  150. package/dist/vector-store.js +1 -1
  151. package/dist/voice.d.ts +1 -0
  152. package/dist/voice.d.ts.map +1 -1
  153. package/dist/voice.js +1 -1
  154. package/package.json +64 -12
@@ -0,0 +1,24 @@
1
+ import { project_management_d_exports } from "../project-management.js";
2
+ import { LinearClient } from "@linear/sdk";
3
+
4
+ //#region src/impls/linear.d.ts
5
+ interface LinearProjectManagementProviderOptions {
6
+ apiKey: string;
7
+ teamId?: string;
8
+ projectId?: string;
9
+ assigneeId?: string;
10
+ stateId?: string;
11
+ labelIds?: string[];
12
+ tagLabelMap?: Record<string, string>;
13
+ client?: LinearClient;
14
+ }
15
+ declare class LinearProjectManagementProvider implements project_management_d_exports.ProjectManagementProvider {
16
+ private readonly client;
17
+ private readonly defaults;
18
+ constructor(options: LinearProjectManagementProviderOptions);
19
+ createWorkItem(input: project_management_d_exports.ProjectManagementWorkItemInput): Promise<project_management_d_exports.ProjectManagementWorkItem>;
20
+ createWorkItems(items: project_management_d_exports.ProjectManagementWorkItemInput[]): Promise<project_management_d_exports.ProjectManagementWorkItem[]>;
21
+ }
22
+ //#endregion
23
+ export { LinearProjectManagementProvider, LinearProjectManagementProviderOptions };
24
+ //# sourceMappingURL=linear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear.d.ts","names":[],"sources":["../../src/impls/linear.ts"],"mappings":";;;;UAQiB,sCAAA;EACf,MAAA;EACA,MAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,QAAA;EACA,WAAA,GAAc,MAAA;EACd,MAAA,GAAS,YAAA;AAAA;AAAA,cAWE,+BAAA,YAA2C,4BAAA,CAAA,yBAAA;EAAA,iBACrC,MAAA;EAAA,iBACA,QAAA;cAKL,OAAA,EAAS,sCAAA;EAaf,cAAA,CACJ,KAAA,EAAO,4BAAA,CAAA,8BAAA,GACN,OAAA,CAAQ,4BAAA,CAAA,yBAAA;EAiCL,eAAA,CACJ,KAAA,EAAO,4BAAA,CAAA,8BAAA,KACN,OAAA,CAAQ,4BAAA,CAAA,yBAAA;AAAA"}
@@ -0,0 +1,75 @@
1
+ import { LinearClient } from "@linear/sdk";
2
+
3
+ //#region src/impls/linear.ts
4
+ const PRIORITY_MAP = {
5
+ urgent: 1,
6
+ high: 2,
7
+ medium: 3,
8
+ low: 4,
9
+ none: 0
10
+ };
11
+ var LinearProjectManagementProvider = class {
12
+ client;
13
+ defaults;
14
+ constructor(options) {
15
+ this.client = options.client ?? new LinearClient({ apiKey: options.apiKey });
16
+ this.defaults = {
17
+ teamId: options.teamId,
18
+ projectId: options.projectId,
19
+ assigneeId: options.assigneeId,
20
+ stateId: options.stateId,
21
+ labelIds: options.labelIds,
22
+ tagLabelMap: options.tagLabelMap
23
+ };
24
+ }
25
+ async createWorkItem(input) {
26
+ const teamId = this.defaults.teamId;
27
+ if (!teamId) throw new Error("Linear teamId is required to create work items.");
28
+ const issue = await (await this.client.createIssue({
29
+ teamId,
30
+ title: input.title,
31
+ description: input.description,
32
+ priority: mapPriority(input.priority),
33
+ estimate: input.estimate,
34
+ assigneeId: input.assigneeId ?? this.defaults.assigneeId,
35
+ projectId: input.projectId ?? this.defaults.projectId,
36
+ stateId: this.defaults.stateId,
37
+ labelIds: resolveLabelIds(this.defaults, input.tags)
38
+ })).issue;
39
+ const state = issue ? await issue.state : void 0;
40
+ return {
41
+ id: issue?.id ?? "",
42
+ title: issue?.title ?? input.title,
43
+ url: issue?.url ?? void 0,
44
+ status: state?.name ?? void 0,
45
+ priority: input.priority,
46
+ tags: input.tags,
47
+ projectId: input.projectId ?? this.defaults.projectId,
48
+ externalId: input.externalId,
49
+ metadata: input.metadata
50
+ };
51
+ }
52
+ async createWorkItems(items) {
53
+ const created = [];
54
+ for (const item of items) created.push(await this.createWorkItem(item));
55
+ return created;
56
+ }
57
+ };
58
+ function mapPriority(priority) {
59
+ if (!priority) return void 0;
60
+ return PRIORITY_MAP[priority] ?? void 0;
61
+ }
62
+ function resolveLabelIds(defaults, tags) {
63
+ const labelIds = /* @__PURE__ */ new Set();
64
+ (defaults.labelIds ?? []).forEach((id) => labelIds.add(id));
65
+ if (tags && defaults.tagLabelMap) tags.forEach((tag) => {
66
+ const mapped = defaults.tagLabelMap?.[tag];
67
+ if (mapped) labelIds.add(mapped);
68
+ });
69
+ const merged = [...labelIds];
70
+ return merged.length > 0 ? merged : void 0;
71
+ }
72
+
73
+ //#endregion
74
+ export { LinearProjectManagementProvider };
75
+ //# sourceMappingURL=linear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear.js","names":[],"sources":["../../src/impls/linear.ts"],"sourcesContent":["import { LinearClient } from '@linear/sdk';\nimport type {\n ProjectManagementProvider,\n ProjectManagementWorkItem,\n ProjectManagementWorkItemInput,\n ProjectManagementWorkItemPriority,\n} from '../project-management';\n\nexport interface LinearProjectManagementProviderOptions {\n apiKey: string;\n teamId?: string;\n projectId?: string;\n assigneeId?: string;\n stateId?: string;\n labelIds?: string[];\n tagLabelMap?: Record<string, string>;\n client?: LinearClient;\n}\n\nconst PRIORITY_MAP: Record<ProjectManagementWorkItemPriority, number> = {\n urgent: 1,\n high: 2,\n medium: 3,\n low: 4,\n none: 0,\n};\n\nexport class LinearProjectManagementProvider implements ProjectManagementProvider {\n private readonly client: LinearClient;\n private readonly defaults: Omit<\n LinearProjectManagementProviderOptions,\n 'apiKey' | 'client'\n >;\n\n constructor(options: LinearProjectManagementProviderOptions) {\n this.client =\n options.client ?? new LinearClient({ apiKey: options.apiKey });\n this.defaults = {\n teamId: options.teamId,\n projectId: options.projectId,\n assigneeId: options.assigneeId,\n stateId: options.stateId,\n labelIds: options.labelIds,\n tagLabelMap: options.tagLabelMap,\n };\n }\n\n async createWorkItem(\n input: ProjectManagementWorkItemInput\n ): Promise<ProjectManagementWorkItem> {\n const teamId = this.defaults.teamId;\n if (!teamId) {\n throw new Error('Linear teamId is required to create work items.');\n }\n\n const payload = await this.client.createIssue({\n teamId,\n title: input.title,\n description: input.description,\n priority: mapPriority(input.priority),\n estimate: input.estimate,\n assigneeId: input.assigneeId ?? this.defaults.assigneeId,\n projectId: input.projectId ?? this.defaults.projectId,\n stateId: this.defaults.stateId,\n labelIds: resolveLabelIds(this.defaults, input.tags),\n });\n\n const issue = await payload.issue;\n const state = issue ? await issue.state : undefined;\n return {\n id: issue?.id ?? '',\n title: issue?.title ?? input.title,\n url: issue?.url ?? undefined,\n status: state?.name ?? undefined,\n priority: input.priority,\n tags: input.tags,\n projectId: input.projectId ?? this.defaults.projectId,\n externalId: input.externalId,\n metadata: input.metadata,\n };\n }\n\n async createWorkItems(\n items: ProjectManagementWorkItemInput[]\n ): Promise<ProjectManagementWorkItem[]> {\n const created: ProjectManagementWorkItem[] = [];\n for (const item of items) {\n created.push(await this.createWorkItem(item));\n }\n return created;\n }\n}\n\nfunction mapPriority(\n priority?: ProjectManagementWorkItemPriority\n): number | undefined {\n if (!priority) return undefined;\n return PRIORITY_MAP[priority] ?? undefined;\n}\n\nfunction resolveLabelIds(\n defaults: Pick<\n LinearProjectManagementProviderOptions,\n 'labelIds' | 'tagLabelMap'\n >,\n tags?: string[]\n): string[] | undefined {\n const labelIds = new Set<string>();\n (defaults.labelIds ?? []).forEach((id) => labelIds.add(id));\n if (tags && defaults.tagLabelMap) {\n tags.forEach((tag) => {\n const mapped = defaults.tagLabelMap?.[tag];\n if (mapped) labelIds.add(mapped);\n });\n }\n const merged = [...labelIds];\n return merged.length > 0 ? merged : undefined;\n}\n"],"mappings":";;;AAmBA,MAAM,eAAkE;CACtE,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,KAAK;CACL,MAAM;CACP;AAED,IAAa,kCAAb,MAAkF;CAChF,AAAiB;CACjB,AAAiB;CAKjB,YAAY,SAAiD;AAC3D,OAAK,SACH,QAAQ,UAAU,IAAI,aAAa,EAAE,QAAQ,QAAQ,QAAQ,CAAC;AAChE,OAAK,WAAW;GACd,QAAQ,QAAQ;GAChB,WAAW,QAAQ;GACnB,YAAY,QAAQ;GACpB,SAAS,QAAQ;GACjB,UAAU,QAAQ;GAClB,aAAa,QAAQ;GACtB;;CAGH,MAAM,eACJ,OACoC;EACpC,MAAM,SAAS,KAAK,SAAS;AAC7B,MAAI,CAAC,OACH,OAAM,IAAI,MAAM,kDAAkD;EAepE,MAAM,QAAQ,OAZE,MAAM,KAAK,OAAO,YAAY;GAC5C;GACA,OAAO,MAAM;GACb,aAAa,MAAM;GACnB,UAAU,YAAY,MAAM,SAAS;GACrC,UAAU,MAAM;GAChB,YAAY,MAAM,cAAc,KAAK,SAAS;GAC9C,WAAW,MAAM,aAAa,KAAK,SAAS;GAC5C,SAAS,KAAK,SAAS;GACvB,UAAU,gBAAgB,KAAK,UAAU,MAAM,KAAK;GACrD,CAAC,EAE0B;EAC5B,MAAM,QAAQ,QAAQ,MAAM,MAAM,QAAQ;AAC1C,SAAO;GACL,IAAI,OAAO,MAAM;GACjB,OAAO,OAAO,SAAS,MAAM;GAC7B,KAAK,OAAO,OAAO;GACnB,QAAQ,OAAO,QAAQ;GACvB,UAAU,MAAM;GAChB,MAAM,MAAM;GACZ,WAAW,MAAM,aAAa,KAAK,SAAS;GAC5C,YAAY,MAAM;GAClB,UAAU,MAAM;GACjB;;CAGH,MAAM,gBACJ,OACsC;EACtC,MAAM,UAAuC,EAAE;AAC/C,OAAK,MAAM,QAAQ,MACjB,SAAQ,KAAK,MAAM,KAAK,eAAe,KAAK,CAAC;AAE/C,SAAO;;;AAIX,SAAS,YACP,UACoB;AACpB,KAAI,CAAC,SAAU,QAAO;AACtB,QAAO,aAAa,aAAa;;AAGnC,SAAS,gBACP,UAIA,MACsB;CACtB,MAAM,2BAAW,IAAI,KAAa;AAClC,EAAC,SAAS,YAAY,EAAE,EAAE,SAAS,OAAO,SAAS,IAAI,GAAG,CAAC;AAC3D,KAAI,QAAQ,SAAS,YACnB,MAAK,SAAS,QAAQ;EACpB,MAAM,SAAS,SAAS,cAAc;AACtC,MAAI,OAAQ,UAAS,IAAI,OAAO;GAChC;CAEJ,MAAM,SAAS,CAAC,GAAG,SAAS;AAC5B,QAAO,OAAO,SAAS,IAAI,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"mistral-embedding.d.ts","names":[],"sources":["../../src/impls/mistral-embedding.ts"],"sourcesContent":[],"mappings":";;;;UAQiB,+BAAA;;EAAA,YAAA,CAAA,EAAA,MAAA;EAOJ,SAAA,CAAA,EAAA,MAAA;EAIU,MAAA,CAAA,EAPZ,OAOY;;AAiBV,cArBA,wBAAA,YAAoC,mBAAA,CAAA,iBAqBpC,CAAA;EAAR,iBAAA,MAAA;EA4BQ,iBAAA,YAAA;EAAR,WAAA,CAAA,OAAA,EA7CkB,+BA6ClB;EAjD4C,cAAA,CAAA,SAAA,EAmBlC,mBAAA,CAAA,iBAnBkC,EAAA,EAAA,QAAA,EAAA;IAAiB,KAAA,CAAA,EAAA,MAAA;MAqB7D,QAAQ,mBAAA,CAAA;;;MA4BR,QAAQ,mBAAA,CAAA"}
1
+ {"version":3,"file":"mistral-embedding.d.ts","names":[],"sources":["../../src/impls/mistral-embedding.ts"],"mappings":";;;;UAQiB,+BAAA;EACf,MAAA;EACA,YAAA;EACA,SAAA;EACA,MAAA,GAAS,OAAA;AAAA;AAAA,cAGE,wBAAA,YAAoC,mBAAA,CAAA,iBAAA;EAAA,iBAC9B,MAAA;EAAA,iBACA,YAAA;cAEL,OAAA,EAAS,+BAAA;EAcf,cAAA,CACJ,SAAA,EAAW,mBAAA,CAAA,iBAAA,IACX,OAAA;IAAY,KAAA;EAAA,IACX,OAAA,CAAQ,mBAAA,CAAA,eAAA;EAyBL,UAAA,CACJ,KAAA,UACA,OAAA;IAAY,KAAA;EAAA,IACX,OAAA,CAAQ,mBAAA,CAAA,eAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"mistral-llm.d.ts","names":[],"sources":["../../src/impls/mistral-llm.ts"],"sourcesContent":[],"mappings":";;;;UAciB,yBAAA;;EAAA,YAAA,CAAA,EAAA,MAAA;EAQJ,SAAA,CAAA,EAAA,MAAA;EAIU,MAAA,CAAA,EARZ,OAQY;EAkBT,eAAA,CAAA,EAAA,MAAA;;AAED,cAxBA,kBAAA,YAA8B,aAAA,CAAA,WAwB9B,CAAA;EAAR,iBAAA,MAAA;EAOS,iBAAA,YAAA;EACD,WAAA,CAAA,OAAA,EA5BU,yBA4BV;EACM,IAAA,CAAA,QAAA,EAXL,aAAA,CAAA,UAWK,EAAA,EAAA,OAAA,CAAA,EAVN,aAAA,CAAA,cAUM,CAAA,EATd,OASc,CATN,aAAA,CAAA,WASM,CAAA;EAAd,MAAA,CAAA,QAAA,EAFS,aAAA,CAAA,UAET,EAAA,EAAA,OAAA,CAAA,EADQ,aAAA,CAAA,cACR,CAAA,EAAA,aAAA,CAAc,aAAA,CAAA,cAAd,CAAA;EAuFU,WAAA,CAAA,SAAA,EAAA,aAAA,CAAA,UAAA,EAAA,CAAA,EACV,OADU,CAAA;IACV,YAAA,EAAA,MAAA;EAzHsC,CAAA,CAAA;EAAW,QAAA,gBAAA"}
1
+ {"version":3,"file":"mistral-llm.d.ts","names":[],"sources":["../../src/impls/mistral-llm.ts"],"mappings":";;;;UAciB,yBAAA;EACf,MAAA;EACA,YAAA;EACA,SAAA;EACA,MAAA,GAAS,OAAA;EACT,eAAA;AAAA;AAAA,cAGW,kBAAA,YAA8B,aAAA,CAAA,WAAA;EAAA,iBACxB,MAAA;EAAA,iBACA,YAAA;cAEL,OAAA,EAAS,yBAAA;EAiBf,IAAA,CACJ,QAAA,EAAU,aAAA,CAAA,UAAA,IACV,OAAA,GAAS,aAAA,CAAA,cAAA,GACR,OAAA,CAAQ,aAAA,CAAA,WAAA;EAMJ,MAAA,CACL,QAAA,EAAU,aAAA,CAAA,UAAA,IACV,OAAA,GAAS,aAAA,CAAA,cAAA,GACR,aAAA,CAAc,aAAA,CAAA,cAAA;EAsFX,WAAA,CACJ,SAAA,EAAW,aAAA,CAAA,UAAA,KACV,OAAA;IAAU,YAAA;EAAA;EAAA,QAIL,gBAAA;EAAA,QAiDA,gBAAA;EAAA,QAuBA,SAAA;EAAA,QAWA,oBAAA;EAAA,QAiCA,mBAAA;EAAA,QAgBA,gBAAA;EAAA,QAmCA,WAAA;EAAA,QAQA,gBAAA;AAAA"}
@@ -0,0 +1,27 @@
1
+ import { project_management_d_exports } from "../project-management.js";
2
+ import { Client } from "@notionhq/client";
3
+
4
+ //#region src/impls/notion.d.ts
5
+ interface NotionProjectManagementProviderOptions {
6
+ apiKey: string;
7
+ databaseId?: string;
8
+ summaryParentPageId?: string;
9
+ titleProperty?: string;
10
+ statusProperty?: string;
11
+ priorityProperty?: string;
12
+ tagsProperty?: string;
13
+ dueDateProperty?: string;
14
+ descriptionProperty?: string;
15
+ client?: Client;
16
+ }
17
+ declare class NotionProjectManagementProvider implements project_management_d_exports.ProjectManagementProvider {
18
+ private readonly client;
19
+ private readonly defaults;
20
+ constructor(options: NotionProjectManagementProviderOptions);
21
+ createWorkItem(input: project_management_d_exports.ProjectManagementWorkItemInput): Promise<project_management_d_exports.ProjectManagementWorkItem>;
22
+ createWorkItems(items: project_management_d_exports.ProjectManagementWorkItemInput[]): Promise<project_management_d_exports.ProjectManagementWorkItem[]>;
23
+ private createSummaryPage;
24
+ }
25
+ //#endregion
26
+ export { NotionProjectManagementProvider, NotionProjectManagementProviderOptions };
27
+ //# sourceMappingURL=notion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notion.d.ts","names":[],"sources":["../../src/impls/notion.ts"],"mappings":";;;;UAOiB,sCAAA;EACf,MAAA;EACA,UAAA;EACA,mBAAA;EACA,aAAA;EACA,cAAA;EACA,gBAAA;EACA,YAAA;EACA,eAAA;EACA,mBAAA;EACA,MAAA,GAAS,MAAA;AAAA;AAAA,cAyBE,+BAAA,YAA2C,4BAAA,CAAA,yBAAA;EAAA,iBACrC,MAAA;EAAA,iBACA,QAAA;cAKL,OAAA,EAAS,sCAAA;EAcf,cAAA,CACJ,KAAA,EAAO,4BAAA,CAAA,8BAAA,GACN,OAAA,CAAQ,4BAAA,CAAA,yBAAA;EA2CL,eAAA,CACJ,KAAA,EAAO,4BAAA,CAAA,8BAAA,KACN,OAAA,CAAQ,4BAAA,CAAA,yBAAA;EAAA,QAQG,iBAAA;AAAA"}
@@ -0,0 +1,126 @@
1
+ import { Client } from "@notionhq/client";
2
+
3
+ //#region src/impls/notion.ts
4
+ var NotionProjectManagementProvider = class {
5
+ client;
6
+ defaults;
7
+ constructor(options) {
8
+ this.client = options.client ?? new Client({ auth: options.apiKey });
9
+ this.defaults = {
10
+ databaseId: options.databaseId,
11
+ summaryParentPageId: options.summaryParentPageId,
12
+ titleProperty: options.titleProperty,
13
+ statusProperty: options.statusProperty,
14
+ priorityProperty: options.priorityProperty,
15
+ tagsProperty: options.tagsProperty,
16
+ dueDateProperty: options.dueDateProperty,
17
+ descriptionProperty: options.descriptionProperty
18
+ };
19
+ }
20
+ async createWorkItem(input) {
21
+ if (input.type === "summary" && this.defaults.summaryParentPageId) return this.createSummaryPage(input);
22
+ const databaseId = this.defaults.databaseId;
23
+ if (!databaseId) throw new Error("Notion databaseId is required to create work items.");
24
+ const properties = { [this.defaults.titleProperty ?? "Name"]: buildTitleProperty(input.title) };
25
+ applySelect(properties, this.defaults.statusProperty, input.status);
26
+ applySelect(properties, this.defaults.priorityProperty, input.priority);
27
+ applyMultiSelect(properties, this.defaults.tagsProperty, input.tags);
28
+ applyDate(properties, this.defaults.dueDateProperty, input.dueDate);
29
+ applyRichText(properties, this.defaults.descriptionProperty, input.description);
30
+ const page = await this.client.pages.create({
31
+ parent: {
32
+ type: "database_id",
33
+ database_id: databaseId
34
+ },
35
+ properties
36
+ });
37
+ return {
38
+ id: page.id,
39
+ title: input.title,
40
+ url: "url" in page ? page.url : void 0,
41
+ status: input.status,
42
+ priority: input.priority,
43
+ tags: input.tags,
44
+ projectId: databaseId,
45
+ externalId: input.externalId,
46
+ metadata: input.metadata
47
+ };
48
+ }
49
+ async createWorkItems(items) {
50
+ const created = [];
51
+ for (const item of items) created.push(await this.createWorkItem(item));
52
+ return created;
53
+ }
54
+ async createSummaryPage(input) {
55
+ const parentId = this.defaults.summaryParentPageId;
56
+ if (!parentId) throw new Error("Notion summaryParentPageId is required for summaries.");
57
+ const summaryProperties = { title: buildTitleProperty(input.title) };
58
+ const page = await this.client.pages.create({
59
+ parent: {
60
+ type: "page_id",
61
+ page_id: parentId
62
+ },
63
+ properties: summaryProperties
64
+ });
65
+ if (input.description) {
66
+ const children = buildParagraphBlocks(input.description);
67
+ if (children.length > 0) await this.client.blocks.children.append({
68
+ block_id: page.id,
69
+ children
70
+ });
71
+ }
72
+ return {
73
+ id: page.id,
74
+ title: input.title,
75
+ url: "url" in page ? page.url : void 0,
76
+ status: input.status,
77
+ priority: input.priority,
78
+ tags: input.tags,
79
+ projectId: parentId,
80
+ externalId: input.externalId,
81
+ metadata: input.metadata
82
+ };
83
+ }
84
+ };
85
+ function buildTitleProperty(title) {
86
+ return { title: [{
87
+ type: "text",
88
+ text: { content: title }
89
+ }] };
90
+ }
91
+ function buildRichText(text) {
92
+ return { rich_text: [{
93
+ type: "text",
94
+ text: { content: text }
95
+ }] };
96
+ }
97
+ function applySelect(properties, property, value) {
98
+ if (!property || !value) return;
99
+ properties[property] = { select: { name: value } };
100
+ }
101
+ function applyMultiSelect(properties, property, values) {
102
+ if (!property || !values || values.length === 0) return;
103
+ properties[property] = { multi_select: values.map((value) => ({ name: value })) };
104
+ }
105
+ function applyDate(properties, property, value) {
106
+ if (!property || !value) return;
107
+ properties[property] = { date: { start: value.toISOString() } };
108
+ }
109
+ function applyRichText(properties, property, value) {
110
+ if (!property || !value) return;
111
+ properties[property] = buildRichText(value);
112
+ }
113
+ function buildParagraphBlocks(text) {
114
+ return text.split(/\r?\n/).filter((line) => line.trim()).map((line) => ({
115
+ object: "block",
116
+ type: "paragraph",
117
+ paragraph: { rich_text: [{
118
+ type: "text",
119
+ text: { content: line }
120
+ }] }
121
+ }));
122
+ }
123
+
124
+ //#endregion
125
+ export { NotionProjectManagementProvider };
126
+ //# sourceMappingURL=notion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notion.js","names":[],"sources":["../../src/impls/notion.ts"],"sourcesContent":["import { Client } from '@notionhq/client';\nimport type {\n ProjectManagementProvider,\n ProjectManagementWorkItem,\n ProjectManagementWorkItemInput,\n} from '../project-management';\n\nexport interface NotionProjectManagementProviderOptions {\n apiKey: string;\n databaseId?: string;\n summaryParentPageId?: string;\n titleProperty?: string;\n statusProperty?: string;\n priorityProperty?: string;\n tagsProperty?: string;\n dueDateProperty?: string;\n descriptionProperty?: string;\n client?: Client;\n}\n\ntype NotionPageCreateParams = Parameters<Client['pages']['create']>[0];\ntype NotionPropertyRecord = Extract<\n NotionPageCreateParams['properties'],\n Record<string, { type?: string }>\n>;\ntype NotionPropertyValue = NotionPropertyRecord[string];\ntype NotionTitleProperty = Extract<NotionPropertyValue, { title: unknown[] }>;\ntype NotionRichTextProperty = Extract<\n NotionPropertyValue,\n { rich_text: unknown[] }\n>;\ntype NotionSelectProperty = Extract<NotionPropertyValue, { select: unknown }>;\ntype NotionMultiSelectProperty = Extract<\n NotionPropertyValue,\n { multi_select: unknown }\n>;\ntype NotionDateProperty = Extract<NotionPropertyValue, { date: unknown }>;\ntype NotionAppendChildrenParams = Parameters<\n Client['blocks']['children']['append']\n>[0];\ntype NotionBlockChildren = NotionAppendChildrenParams['children'];\n\nexport class NotionProjectManagementProvider implements ProjectManagementProvider {\n private readonly client: Client;\n private readonly defaults: Omit<\n NotionProjectManagementProviderOptions,\n 'apiKey' | 'client'\n >;\n\n constructor(options: NotionProjectManagementProviderOptions) {\n this.client = options.client ?? new Client({ auth: options.apiKey });\n this.defaults = {\n databaseId: options.databaseId,\n summaryParentPageId: options.summaryParentPageId,\n titleProperty: options.titleProperty,\n statusProperty: options.statusProperty,\n priorityProperty: options.priorityProperty,\n tagsProperty: options.tagsProperty,\n dueDateProperty: options.dueDateProperty,\n descriptionProperty: options.descriptionProperty,\n };\n }\n\n async createWorkItem(\n input: ProjectManagementWorkItemInput\n ): Promise<ProjectManagementWorkItem> {\n if (input.type === 'summary' && this.defaults.summaryParentPageId) {\n return this.createSummaryPage(input);\n }\n\n const databaseId = this.defaults.databaseId;\n if (!databaseId) {\n throw new Error('Notion databaseId is required to create work items.');\n }\n\n const titleProperty = this.defaults.titleProperty ?? 'Name';\n const properties: NotionPropertyRecord = {\n [titleProperty]: buildTitleProperty(input.title),\n };\n\n applySelect(properties, this.defaults.statusProperty, input.status);\n applySelect(properties, this.defaults.priorityProperty, input.priority);\n applyMultiSelect(properties, this.defaults.tagsProperty, input.tags);\n applyDate(properties, this.defaults.dueDateProperty, input.dueDate);\n applyRichText(\n properties,\n this.defaults.descriptionProperty,\n input.description\n );\n\n const page = await this.client.pages.create({\n parent: { type: 'database_id', database_id: databaseId },\n properties,\n });\n\n return {\n id: page.id,\n title: input.title,\n url: 'url' in page ? (page.url as string | undefined) : undefined,\n status: input.status,\n priority: input.priority,\n tags: input.tags,\n projectId: databaseId,\n externalId: input.externalId,\n metadata: input.metadata,\n };\n }\n\n async createWorkItems(\n items: ProjectManagementWorkItemInput[]\n ): Promise<ProjectManagementWorkItem[]> {\n const created: ProjectManagementWorkItem[] = [];\n for (const item of items) {\n created.push(await this.createWorkItem(item));\n }\n return created;\n }\n\n private async createSummaryPage(\n input: ProjectManagementWorkItemInput\n ): Promise<ProjectManagementWorkItem> {\n const parentId = this.defaults.summaryParentPageId;\n if (!parentId) {\n throw new Error('Notion summaryParentPageId is required for summaries.');\n }\n\n const summaryProperties: NotionPropertyRecord = {\n title: buildTitleProperty(input.title),\n };\n const page = await this.client.pages.create({\n parent: { type: 'page_id', page_id: parentId },\n properties: summaryProperties,\n });\n\n if (input.description) {\n const children = buildParagraphBlocks(input.description);\n if (children.length > 0) {\n await this.client.blocks.children.append({\n block_id: page.id,\n children,\n });\n }\n }\n\n return {\n id: page.id,\n title: input.title,\n url: 'url' in page ? (page.url as string | undefined) : undefined,\n status: input.status,\n priority: input.priority,\n tags: input.tags,\n projectId: parentId,\n externalId: input.externalId,\n metadata: input.metadata,\n };\n }\n}\n\nfunction buildTitleProperty(title: string): NotionTitleProperty {\n return {\n title: [\n {\n type: 'text' as const,\n text: { content: title },\n },\n ],\n };\n}\n\nfunction buildRichText(text: string): NotionRichTextProperty {\n return {\n rich_text: [\n {\n type: 'text' as const,\n text: { content: text },\n },\n ],\n };\n}\n\nfunction applySelect(\n properties: NotionPropertyRecord,\n property: string | undefined,\n value: string | undefined\n) {\n if (!property || !value) return;\n const next: NotionSelectProperty = {\n select: { name: value },\n };\n properties[property] = next;\n}\n\nfunction applyMultiSelect(\n properties: NotionPropertyRecord,\n property: string | undefined,\n values?: string[]\n) {\n if (!property || !values || values.length === 0) return;\n const next: NotionMultiSelectProperty = {\n multi_select: values.map((value) => ({ name: value })),\n };\n properties[property] = next;\n}\n\nfunction applyDate(\n properties: NotionPropertyRecord,\n property: string | undefined,\n value?: Date\n) {\n if (!property || !value) return;\n const next: NotionDateProperty = {\n date: { start: value.toISOString() },\n };\n properties[property] = next;\n}\n\nfunction applyRichText(\n properties: NotionPropertyRecord,\n property: string | undefined,\n value?: string\n) {\n if (!property || !value) return;\n properties[property] = buildRichText(value);\n}\n\nfunction buildParagraphBlocks(text: string): NotionBlockChildren {\n const lines = text.split(/\\r?\\n/).filter((line) => line.trim());\n return lines.map((line) => ({\n object: 'block' as const,\n type: 'paragraph' as const,\n paragraph: {\n rich_text: [\n {\n type: 'text' as const,\n text: { content: line },\n },\n ],\n },\n }));\n}\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { analytics_d_exports } from "../analytics.js";
2
+
3
+ //#region src/impls/posthog-reader.d.ts
4
+ interface PosthogReaderClient {
5
+ request<T = unknown>(request: analytics_d_exports.AnalyticsRequest): Promise<analytics_d_exports.AnalyticsResponse<T>>;
6
+ }
7
+ interface PosthogAnalyticsReaderOptions {
8
+ projectId?: string | number;
9
+ client: PosthogReaderClient;
10
+ }
11
+ declare class PosthogAnalyticsReader implements analytics_d_exports.AnalyticsReader {
12
+ private readonly projectId?;
13
+ private readonly client;
14
+ constructor(options: PosthogAnalyticsReaderOptions);
15
+ queryHogQL(input: analytics_d_exports.AnalyticsQueryInput): Promise<analytics_d_exports.AnalyticsQueryResult>;
16
+ getEvents(input: analytics_d_exports.GetEventsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsEvent>>;
17
+ getPersons(input: analytics_d_exports.GetPersonsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsPerson>>;
18
+ getInsights(input: analytics_d_exports.GetInsightsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsInsight>>;
19
+ getInsightResult(input: analytics_d_exports.GetInsightResultInput): Promise<analytics_d_exports.AnalyticsInsight>;
20
+ getCohorts(input: analytics_d_exports.GetCohortsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsCohort>>;
21
+ getFeatureFlags(input: analytics_d_exports.GetFeatureFlagsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsFeatureFlag>>;
22
+ getAnnotations(input: analytics_d_exports.GetAnnotationsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsAnnotation>>;
23
+ }
24
+ //#endregion
25
+ export { PosthogAnalyticsReader, PosthogAnalyticsReaderOptions, PosthogReaderClient };
26
+ //# sourceMappingURL=posthog-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posthog-reader.d.ts","names":[],"sources":["../../src/impls/posthog-reader.ts"],"mappings":";;;UAuBiB,mBAAA;EACf,OAAA,cACE,OAAA,EAAS,mBAAA,CAAA,gBAAA,GACR,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,CAAA;AAAA;AAAA,UAGd,6BAAA;EACf,SAAA;EACA,MAAA,EAAQ,mBAAA;AAAA;AAAA,cAGG,sBAAA,YAAkC,mBAAA,CAAA,eAAA;EAAA,iBAC5B,SAAA;EAAA,iBACA,MAAA;cAEL,OAAA,EAAS,6BAAA;EAKf,UAAA,CAAW,KAAA,EAAO,mBAAA,CAAA,mBAAA,GAAsB,OAAA,CAAQ,mBAAA,CAAA,oBAAA;EAgBhD,SAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,cAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,cAAA;EAuBvB,UAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,eAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,eAAA;EAoBvB,WAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,gBAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,gBAAA;EAgBvB,gBAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,qBAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,gBAAA;EASL,UAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,eAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,eAAA;EAevB,eAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,oBAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,oBAAA;EAgBvB,cAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,mBAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,mBAAA;AAAA"}
@@ -0,0 +1,141 @@
1
+ //#region src/impls/posthog-reader.ts
2
+ var PosthogAnalyticsReader = class {
3
+ projectId;
4
+ client;
5
+ constructor(options) {
6
+ this.projectId = options.projectId;
7
+ this.client = options.client;
8
+ }
9
+ async queryHogQL(input) {
10
+ const projectId = resolveProjectId(void 0, this.projectId);
11
+ return (await this.client.request({
12
+ method: "POST",
13
+ path: `/api/projects/${projectId}/query`,
14
+ body: { query: {
15
+ kind: "HogQLQuery",
16
+ query: input.query,
17
+ values: input.values
18
+ } }
19
+ })).data;
20
+ }
21
+ async getEvents(input) {
22
+ const projectId = resolveProjectId(input.projectId, this.projectId);
23
+ return (await this.client.request({
24
+ method: "GET",
25
+ path: `/api/projects/${projectId}/events/`,
26
+ query: {
27
+ event: input.event ?? resolveSingleEvent(input.events),
28
+ events: resolveEventList(input.events),
29
+ distinct_id: input.distinctId,
30
+ order_by: input.orderBy,
31
+ limit: input.limit,
32
+ offset: input.offset,
33
+ properties: input.properties ? JSON.stringify(input.properties) : void 0,
34
+ ...buildEventDateQuery(input.dateRange)
35
+ }
36
+ })).data;
37
+ }
38
+ async getPersons(input) {
39
+ const projectId = resolveProjectId(input.projectId, this.projectId);
40
+ return (await this.client.request({
41
+ method: "GET",
42
+ path: `/api/projects/${projectId}/persons/`,
43
+ query: {
44
+ cohort_id: input.cohortId,
45
+ search: input.search,
46
+ limit: input.limit,
47
+ offset: input.offset,
48
+ properties: input.properties ? JSON.stringify(input.properties) : void 0
49
+ }
50
+ })).data;
51
+ }
52
+ async getInsights(input) {
53
+ const projectId = resolveProjectId(input.projectId, this.projectId);
54
+ return (await this.client.request({
55
+ method: "GET",
56
+ path: `/api/projects/${projectId}/insights/`,
57
+ query: {
58
+ insight: input.insightType,
59
+ limit: input.limit,
60
+ offset: input.offset
61
+ }
62
+ })).data;
63
+ }
64
+ async getInsightResult(input) {
65
+ const projectId = resolveProjectId(input.projectId, this.projectId);
66
+ return (await this.client.request({
67
+ method: "GET",
68
+ path: `/api/projects/${projectId}/insights/${input.insightId}/`
69
+ })).data;
70
+ }
71
+ async getCohorts(input) {
72
+ const projectId = resolveProjectId(input.projectId, this.projectId);
73
+ return (await this.client.request({
74
+ method: "GET",
75
+ path: `/api/projects/${projectId}/cohorts/`,
76
+ query: {
77
+ limit: input.limit,
78
+ offset: input.offset
79
+ }
80
+ })).data;
81
+ }
82
+ async getFeatureFlags(input) {
83
+ const projectId = resolveProjectId(input.projectId, this.projectId);
84
+ return (await this.client.request({
85
+ method: "GET",
86
+ path: `/api/projects/${projectId}/feature_flags/`,
87
+ query: {
88
+ active: input.active,
89
+ limit: input.limit,
90
+ offset: input.offset
91
+ }
92
+ })).data;
93
+ }
94
+ async getAnnotations(input) {
95
+ const projectId = resolveProjectId(input.projectId, this.projectId);
96
+ return (await this.client.request({
97
+ method: "GET",
98
+ path: `/api/projects/${projectId}/annotations/`,
99
+ query: {
100
+ limit: input.limit,
101
+ offset: input.offset,
102
+ ...buildAnnotationDateQuery(input.dateRange)
103
+ }
104
+ })).data;
105
+ }
106
+ };
107
+ function resolveProjectId(inputProjectId, defaultProjectId) {
108
+ const projectId = inputProjectId ?? defaultProjectId;
109
+ if (!projectId) throw new Error("PostHog projectId is required for API reads.");
110
+ return projectId;
111
+ }
112
+ function resolveSingleEvent(events) {
113
+ if (!events || events.length !== 1) return void 0;
114
+ return events[0];
115
+ }
116
+ function resolveEventList(events) {
117
+ if (!events || events.length <= 1) return void 0;
118
+ return events.join(",");
119
+ }
120
+ function buildEventDateQuery(range) {
121
+ return {
122
+ after: formatDate(range?.from),
123
+ before: formatDate(range?.to),
124
+ timezone: range?.timezone
125
+ };
126
+ }
127
+ function buildAnnotationDateQuery(range) {
128
+ return {
129
+ date_from: formatDate(range?.from),
130
+ date_to: formatDate(range?.to),
131
+ timezone: range?.timezone
132
+ };
133
+ }
134
+ function formatDate(value) {
135
+ if (!value) return void 0;
136
+ return typeof value === "string" ? value : value.toISOString();
137
+ }
138
+
139
+ //#endregion
140
+ export { PosthogAnalyticsReader };
141
+ //# sourceMappingURL=posthog-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posthog-reader.js","names":[],"sources":["../../src/impls/posthog-reader.ts"],"sourcesContent":["import type {\n AnalyticsReader,\n AnalyticsQueryInput,\n AnalyticsQueryResult,\n AnalyticsRequest,\n AnalyticsResponse,\n AnalyticsEvent,\n AnalyticsPerson,\n AnalyticsInsight,\n AnalyticsCohort,\n AnalyticsFeatureFlag,\n AnalyticsAnnotation,\n DateRangeInput,\n GetEventsInput,\n GetPersonsInput,\n GetInsightsInput,\n GetInsightResultInput,\n GetCohortsInput,\n GetFeatureFlagsInput,\n GetAnnotationsInput,\n PaginatedResponse,\n} from '../analytics';\n\nexport interface PosthogReaderClient {\n request<T = unknown>(\n request: AnalyticsRequest\n ): Promise<AnalyticsResponse<T>>;\n}\n\nexport interface PosthogAnalyticsReaderOptions {\n projectId?: string | number;\n client: PosthogReaderClient;\n}\n\nexport class PosthogAnalyticsReader implements AnalyticsReader {\n private readonly projectId?: string | number;\n private readonly client: PosthogReaderClient;\n\n constructor(options: PosthogAnalyticsReaderOptions) {\n this.projectId = options.projectId;\n this.client = options.client;\n }\n\n async queryHogQL(input: AnalyticsQueryInput): Promise<AnalyticsQueryResult> {\n const projectId = resolveProjectId(undefined, this.projectId);\n const response = await this.client.request<AnalyticsQueryResult>({\n method: 'POST',\n path: `/api/projects/${projectId}/query`,\n body: {\n query: {\n kind: 'HogQLQuery',\n query: input.query,\n values: input.values,\n },\n },\n });\n return response.data;\n }\n\n async getEvents(\n input: GetEventsInput\n ): Promise<PaginatedResponse<AnalyticsEvent>> {\n const projectId = resolveProjectId(input.projectId, this.projectId);\n const response = await this.client.request<\n PaginatedResponse<AnalyticsEvent>\n >({\n method: 'GET',\n path: `/api/projects/${projectId}/events/`,\n query: {\n event: input.event ?? resolveSingleEvent(input.events),\n events: resolveEventList(input.events),\n distinct_id: input.distinctId,\n order_by: input.orderBy,\n limit: input.limit,\n offset: input.offset,\n properties: input.properties\n ? JSON.stringify(input.properties)\n : undefined,\n ...buildEventDateQuery(input.dateRange),\n },\n });\n return response.data;\n }\n\n async getPersons(\n input: GetPersonsInput\n ): Promise<PaginatedResponse<AnalyticsPerson>> {\n const projectId = resolveProjectId(input.projectId, this.projectId);\n const response = await this.client.request<\n PaginatedResponse<AnalyticsPerson>\n >({\n method: 'GET',\n path: `/api/projects/${projectId}/persons/`,\n query: {\n cohort_id: input.cohortId,\n search: input.search,\n limit: input.limit,\n offset: input.offset,\n properties: input.properties\n ? JSON.stringify(input.properties)\n : undefined,\n },\n });\n return response.data;\n }\n\n async getInsights(\n input: GetInsightsInput\n ): Promise<PaginatedResponse<AnalyticsInsight>> {\n const projectId = resolveProjectId(input.projectId, this.projectId);\n const response = await this.client.request<\n PaginatedResponse<AnalyticsInsight>\n >({\n method: 'GET',\n path: `/api/projects/${projectId}/insights/`,\n query: {\n insight: input.insightType,\n limit: input.limit,\n offset: input.offset,\n },\n });\n return response.data;\n }\n\n async getInsightResult(\n input: GetInsightResultInput\n ): Promise<AnalyticsInsight> {\n const projectId = resolveProjectId(input.projectId, this.projectId);\n const response = await this.client.request<AnalyticsInsight>({\n method: 'GET',\n path: `/api/projects/${projectId}/insights/${input.insightId}/`,\n });\n return response.data;\n }\n\n async getCohorts(\n input: GetCohortsInput\n ): Promise<PaginatedResponse<AnalyticsCohort>> {\n const projectId = resolveProjectId(input.projectId, this.projectId);\n const response = await this.client.request<\n PaginatedResponse<AnalyticsCohort>\n >({\n method: 'GET',\n path: `/api/projects/${projectId}/cohorts/`,\n query: {\n limit: input.limit,\n offset: input.offset,\n },\n });\n return response.data;\n }\n\n async getFeatureFlags(\n input: GetFeatureFlagsInput\n ): Promise<PaginatedResponse<AnalyticsFeatureFlag>> {\n const projectId = resolveProjectId(input.projectId, this.projectId);\n const response = await this.client.request<\n PaginatedResponse<AnalyticsFeatureFlag>\n >({\n method: 'GET',\n path: `/api/projects/${projectId}/feature_flags/`,\n query: {\n active: input.active,\n limit: input.limit,\n offset: input.offset,\n },\n });\n return response.data;\n }\n\n async getAnnotations(\n input: GetAnnotationsInput\n ): Promise<PaginatedResponse<AnalyticsAnnotation>> {\n const projectId = resolveProjectId(input.projectId, this.projectId);\n const response = await this.client.request<\n PaginatedResponse<AnalyticsAnnotation>\n >({\n method: 'GET',\n path: `/api/projects/${projectId}/annotations/`,\n query: {\n limit: input.limit,\n offset: input.offset,\n ...buildAnnotationDateQuery(input.dateRange),\n },\n });\n return response.data;\n }\n}\n\nfunction resolveProjectId(\n inputProjectId: string | number | undefined,\n defaultProjectId: string | number | undefined\n): string | number {\n const projectId = inputProjectId ?? defaultProjectId;\n if (!projectId) {\n throw new Error('PostHog projectId is required for API reads.');\n }\n return projectId;\n}\n\nfunction resolveSingleEvent(events?: string[]): string | undefined {\n if (!events || events.length !== 1) return undefined;\n return events[0];\n}\n\nfunction resolveEventList(events?: string[]): string | undefined {\n if (!events || events.length <= 1) return undefined;\n return events.join(',');\n}\n\nfunction buildEventDateQuery(\n range?: DateRangeInput\n): Record<string, string | undefined> {\n const after = formatDate(range?.from);\n const before = formatDate(range?.to);\n return {\n after,\n before,\n timezone: range?.timezone,\n };\n}\n\nfunction buildAnnotationDateQuery(\n range?: DateRangeInput\n): Record<string, string | undefined> {\n const dateFrom = formatDate(range?.from);\n const dateTo = formatDate(range?.to);\n return {\n date_from: dateFrom,\n date_to: dateTo,\n timezone: range?.timezone,\n };\n}\n\nfunction formatDate(value?: string | Date): string | undefined {\n if (!value) return undefined;\n return typeof value === 'string' ? value : value.toISOString();\n}\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ //#region src/impls/posthog-utils.d.ts
2
+ declare function normalizeHost(host: string): string;
3
+ declare function buildUrl(host: string, path: string, query?: Record<string, string | number | boolean | undefined>): string;
4
+ declare function appendQuery(url: string, query?: Record<string, string | number | boolean | undefined>): string;
5
+ declare function parseJson<T>(value: string): T;
6
+ //#endregion
7
+ export { appendQuery, buildUrl, normalizeHost, parseJson };
8
+ //# sourceMappingURL=posthog-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posthog-utils.d.ts","names":[],"sources":["../../src/impls/posthog-utils.ts"],"mappings":";iBAAgB,aAAA,CAAc,IAAA;AAAA,iBAId,QAAA,CACd,IAAA,UACA,IAAA,UACA,KAAA,GAAQ,MAAA;AAAA,iBASM,WAAA,CACd,GAAA,UACA,KAAA,GAAQ,MAAA;AAAA,iBAYM,SAAA,GAAA,CAAa,KAAA,WAAgB,CAAA"}
@@ -0,0 +1,30 @@
1
+ //#region src/impls/posthog-utils.ts
2
+ function normalizeHost(host) {
3
+ return host.replace(/\/$/, "");
4
+ }
5
+ function buildUrl(host, path, query) {
6
+ if (/^https?:\/\//.test(path)) return appendQuery(path, query);
7
+ return appendQuery(`${host}/${path.replace(/^\/+/, "")}`, query);
8
+ }
9
+ function appendQuery(url, query) {
10
+ if (!query) return url;
11
+ const params = new URLSearchParams();
12
+ Object.entries(query).forEach(([key, value]) => {
13
+ if (value === void 0) return;
14
+ params.set(key, String(value));
15
+ });
16
+ const suffix = params.toString();
17
+ return suffix ? `${url}?${suffix}` : url;
18
+ }
19
+ function parseJson(value) {
20
+ if (!value) return {};
21
+ try {
22
+ return JSON.parse(value);
23
+ } catch {
24
+ return value;
25
+ }
26
+ }
27
+
28
+ //#endregion
29
+ export { appendQuery, buildUrl, normalizeHost, parseJson };
30
+ //# sourceMappingURL=posthog-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posthog-utils.js","names":[],"sources":["../../src/impls/posthog-utils.ts"],"sourcesContent":["export function normalizeHost(host: string): string {\n return host.replace(/\\/$/, '');\n}\n\nexport function buildUrl(\n host: string,\n path: string,\n query?: Record<string, string | number | boolean | undefined>\n): string {\n if (/^https?:\\/\\//.test(path)) {\n return appendQuery(path, query);\n }\n const normalizedPath = path.replace(/^\\/+/, '');\n return appendQuery(`${host}/${normalizedPath}`, query);\n}\n\nexport function appendQuery(\n url: string,\n query?: Record<string, string | number | boolean | undefined>\n): string {\n if (!query) return url;\n const params = new URLSearchParams();\n Object.entries(query).forEach(([key, value]) => {\n if (value === undefined) return;\n params.set(key, String(value));\n });\n const suffix = params.toString();\n return suffix ? `${url}?${suffix}` : url;\n}\n\nexport function parseJson<T>(value: string): T {\n if (!value) return {} as T;\n try {\n return JSON.parse(value) as T;\n } catch {\n return value as T;\n }\n}\n"],"mappings":";AAAA,SAAgB,cAAc,MAAsB;AAClD,QAAO,KAAK,QAAQ,OAAO,GAAG;;AAGhC,SAAgB,SACd,MACA,MACA,OACQ;AACR,KAAI,eAAe,KAAK,KAAK,CAC3B,QAAO,YAAY,MAAM,MAAM;AAGjC,QAAO,YAAY,GAAG,KAAK,GADJ,KAAK,QAAQ,QAAQ,GAAG,IACC,MAAM;;AAGxD,SAAgB,YACd,KACA,OACQ;AACR,KAAI,CAAC,MAAO,QAAO;CACnB,MAAM,SAAS,IAAI,iBAAiB;AACpC,QAAO,QAAQ,MAAM,CAAC,SAAS,CAAC,KAAK,WAAW;AAC9C,MAAI,UAAU,OAAW;AACzB,SAAO,IAAI,KAAK,OAAO,MAAM,CAAC;GAC9B;CACF,MAAM,SAAS,OAAO,UAAU;AAChC,QAAO,SAAS,GAAG,IAAI,GAAG,WAAW;;AAGvC,SAAgB,UAAa,OAAkB;AAC7C,KAAI,CAAC,MAAO,QAAO,EAAE;AACrB,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;SAClB;AACN,SAAO"}
@@ -0,0 +1,40 @@
1
+ import { analytics_d_exports } from "../analytics.js";
2
+ import { PostHog } from "posthog-node";
3
+
4
+ //#region src/impls/posthog.d.ts
5
+ interface PosthogAnalyticsProviderOptions {
6
+ host?: string;
7
+ projectId?: string | number;
8
+ projectApiKey?: string;
9
+ personalApiKey?: string;
10
+ mcpUrl?: string;
11
+ requestTimeoutMs?: number;
12
+ fetch?: typeof fetch;
13
+ client?: PostHog;
14
+ }
15
+ declare class PosthogAnalyticsProvider implements analytics_d_exports.AnalyticsProvider {
16
+ private readonly host;
17
+ private readonly projectId?;
18
+ private readonly projectApiKey?;
19
+ private readonly personalApiKey?;
20
+ private readonly mcpUrl?;
21
+ private readonly fetchFn;
22
+ private readonly client?;
23
+ private readonly reader;
24
+ constructor(options: PosthogAnalyticsProviderOptions);
25
+ capture(event: analytics_d_exports.AnalyticsEventInput): Promise<void>;
26
+ identify(input: analytics_d_exports.AnalyticsIdentifyInput): Promise<void>;
27
+ queryHogQL(input: analytics_d_exports.AnalyticsQueryInput): Promise<analytics_d_exports.AnalyticsQueryResult>;
28
+ getEvents(input: analytics_d_exports.GetEventsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsEvent>>;
29
+ getPersons(input: analytics_d_exports.GetPersonsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsPerson>>;
30
+ getInsights(input: analytics_d_exports.GetInsightsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsInsight>>;
31
+ getInsightResult(input: analytics_d_exports.GetInsightResultInput): Promise<analytics_d_exports.AnalyticsInsight>;
32
+ getCohorts(input: analytics_d_exports.GetCohortsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsCohort>>;
33
+ getFeatureFlags(input: analytics_d_exports.GetFeatureFlagsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsFeatureFlag>>;
34
+ getAnnotations(input: analytics_d_exports.GetAnnotationsInput): Promise<analytics_d_exports.PaginatedResponse<analytics_d_exports.AnalyticsAnnotation>>;
35
+ request<T = unknown>(request: analytics_d_exports.AnalyticsRequest): Promise<analytics_d_exports.AnalyticsResponse<T>>;
36
+ callMcpTool(call: analytics_d_exports.AnalyticsMcpToolCall): Promise<unknown>;
37
+ }
38
+ //#endregion
39
+ export { PosthogAnalyticsProvider, PosthogAnalyticsProviderOptions };
40
+ //# sourceMappingURL=posthog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posthog.d.ts","names":[],"sources":["../../src/impls/posthog.ts"],"mappings":";;;;UA4BiB,+BAAA;EACf,IAAA;EACA,SAAA;EACA,aAAA;EACA,cAAA;EACA,MAAA;EACA,gBAAA;EACA,KAAA,UAAe,KAAA;EACf,MAAA,GAAS,OAAA;AAAA;AAAA,cAKE,wBAAA,YAAoC,mBAAA,CAAA,iBAAA;EAAA,iBAC9B,IAAA;EAAA,iBACA,SAAA;EAAA,iBACA,aAAA;EAAA,iBACA,cAAA;EAAA,iBACA,MAAA;EAAA,iBACA,OAAA;EAAA,iBACA,MAAA;EAAA,iBACA,MAAA;cAEL,OAAA,EAAS,+BAAA;EAqBf,OAAA,CAAQ,KAAA,EAAO,mBAAA,CAAA,mBAAA,GAAsB,OAAA;EAarC,QAAA,CAAS,KAAA,EAAO,mBAAA,CAAA,sBAAA,GAAyB,OAAA;EAazC,UAAA,CAAW,KAAA,EAAO,mBAAA,CAAA,mBAAA,GAAsB,OAAA,CAAQ,mBAAA,CAAA,oBAAA;EAIhD,SAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,cAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,cAAA;EAIvB,UAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,eAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,eAAA;EAIvB,WAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,gBAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,gBAAA;EAIvB,gBAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,qBAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,gBAAA;EAIL,UAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,eAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,eAAA;EAIvB,eAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,oBAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,oBAAA;EAIvB,cAAA,CACJ,KAAA,EAAO,mBAAA,CAAA,mBAAA,GACN,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,mBAAA,CAAA,mBAAA;EAIvB,OAAA,aAAA,CACJ,OAAA,EAAS,mBAAA,CAAA,gBAAA,GACR,OAAA,CAAQ,mBAAA,CAAA,iBAAA,CAAkB,CAAA;EAwBvB,WAAA,CAAY,IAAA,EAAM,mBAAA,CAAA,oBAAA,GAAuB,OAAA;AAAA"}