@opentabs-dev/opentabs-plugin-posthog 0.0.74
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.
- package/README.md +159 -0
- package/dist/adapter.iife.js +15614 -0
- package/dist/adapter.iife.js.map +7 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +104 -0
- package/dist/index.js.map +1 -0
- package/dist/posthog-api.d.ts +21 -0
- package/dist/posthog-api.d.ts.map +1 -0
- package/dist/posthog-api.js +82 -0
- package/dist/posthog-api.js.map +1 -0
- package/dist/tools/create-annotation.d.ts +20 -0
- package/dist/tools/create-annotation.d.ts.map +1 -0
- package/dist/tools/create-annotation.js +31 -0
- package/dist/tools/create-annotation.js.map +1 -0
- package/dist/tools/create-dashboard.d.ts +25 -0
- package/dist/tools/create-dashboard.d.ts.map +1 -0
- package/dist/tools/create-dashboard.js +29 -0
- package/dist/tools/create-dashboard.js.map +1 -0
- package/dist/tools/create-experiment.d.ts +23 -0
- package/dist/tools/create-experiment.d.ts.map +1 -0
- package/dist/tools/create-experiment.js +31 -0
- package/dist/tools/create-experiment.js.map +1 -0
- package/dist/tools/create-feature-flag.d.ts +26 -0
- package/dist/tools/create-feature-flag.d.ts.map +1 -0
- package/dist/tools/create-feature-flag.js +45 -0
- package/dist/tools/create-feature-flag.js.map +1 -0
- package/dist/tools/delete-annotation.d.ts +7 -0
- package/dist/tools/delete-annotation.d.ts.map +1 -0
- package/dist/tools/delete-annotation.js +22 -0
- package/dist/tools/delete-annotation.js.map +1 -0
- package/dist/tools/delete-dashboard.d.ts +7 -0
- package/dist/tools/delete-dashboard.d.ts.map +1 -0
- package/dist/tools/delete-dashboard.js +22 -0
- package/dist/tools/delete-dashboard.js.map +1 -0
- package/dist/tools/delete-feature-flag.d.ts +7 -0
- package/dist/tools/delete-feature-flag.d.ts.map +1 -0
- package/dist/tools/delete-feature-flag.js +22 -0
- package/dist/tools/delete-feature-flag.js.map +1 -0
- package/dist/tools/delete-insight.d.ts +7 -0
- package/dist/tools/delete-insight.d.ts.map +1 -0
- package/dist/tools/delete-insight.js +23 -0
- package/dist/tools/delete-insight.js.map +1 -0
- package/dist/tools/get-action.d.ts +19 -0
- package/dist/tools/get-action.d.ts.map +1 -0
- package/dist/tools/get-action.js +23 -0
- package/dist/tools/get-action.js.map +1 -0
- package/dist/tools/get-cohort.d.ts +20 -0
- package/dist/tools/get-cohort.d.ts.map +1 -0
- package/dist/tools/get-cohort.js +23 -0
- package/dist/tools/get-cohort.js.map +1 -0
- package/dist/tools/get-current-user.d.ts +14 -0
- package/dist/tools/get-current-user.d.ts.map +1 -0
- package/dist/tools/get-current-user.js +32 -0
- package/dist/tools/get-current-user.js.map +1 -0
- package/dist/tools/get-dashboard.d.ts +22 -0
- package/dist/tools/get-dashboard.d.ts.map +1 -0
- package/dist/tools/get-dashboard.js +23 -0
- package/dist/tools/get-dashboard.js.map +1 -0
- package/dist/tools/get-experiment.d.ts +21 -0
- package/dist/tools/get-experiment.d.ts.map +1 -0
- package/dist/tools/get-experiment.js +23 -0
- package/dist/tools/get-experiment.js.map +1 -0
- package/dist/tools/get-feature-flag.d.ts +22 -0
- package/dist/tools/get-feature-flag.d.ts.map +1 -0
- package/dist/tools/get-feature-flag.js +23 -0
- package/dist/tools/get-feature-flag.js.map +1 -0
- package/dist/tools/get-insight.d.ts +26 -0
- package/dist/tools/get-insight.d.ts.map +1 -0
- package/dist/tools/get-insight.js +24 -0
- package/dist/tools/get-insight.js.map +1 -0
- package/dist/tools/get-organization.d.ts +10 -0
- package/dist/tools/get-organization.d.ts.map +1 -0
- package/dist/tools/get-organization.js +21 -0
- package/dist/tools/get-organization.js.map +1 -0
- package/dist/tools/get-person.d.ts +14 -0
- package/dist/tools/get-person.d.ts.map +1 -0
- package/dist/tools/get-person.js +23 -0
- package/dist/tools/get-person.js.map +1 -0
- package/dist/tools/get-project.d.ts +15 -0
- package/dist/tools/get-project.d.ts.map +1 -0
- package/dist/tools/get-project.js +24 -0
- package/dist/tools/get-project.js.map +1 -0
- package/dist/tools/get-survey.d.ts +16 -0
- package/dist/tools/get-survey.d.ts.map +1 -0
- package/dist/tools/get-survey.js +23 -0
- package/dist/tools/get-survey.js.map +1 -0
- package/dist/tools/list-actions.d.ts +22 -0
- package/dist/tools/list-actions.d.ts.map +1 -0
- package/dist/tools/list-actions.js +30 -0
- package/dist/tools/list-actions.js.map +1 -0
- package/dist/tools/list-annotations.d.ts +22 -0
- package/dist/tools/list-annotations.d.ts.map +1 -0
- package/dist/tools/list-annotations.js +29 -0
- package/dist/tools/list-annotations.js.map +1 -0
- package/dist/tools/list-cohorts.d.ts +23 -0
- package/dist/tools/list-cohorts.d.ts.map +1 -0
- package/dist/tools/list-cohorts.js +30 -0
- package/dist/tools/list-cohorts.js.map +1 -0
- package/dist/tools/list-dashboards.d.ts +25 -0
- package/dist/tools/list-dashboards.d.ts.map +1 -0
- package/dist/tools/list-dashboards.js +30 -0
- package/dist/tools/list-dashboards.js.map +1 -0
- package/dist/tools/list-experiments.d.ts +24 -0
- package/dist/tools/list-experiments.d.ts.map +1 -0
- package/dist/tools/list-experiments.js +30 -0
- package/dist/tools/list-experiments.js.map +1 -0
- package/dist/tools/list-feature-flags.d.ts +27 -0
- package/dist/tools/list-feature-flags.d.ts.map +1 -0
- package/dist/tools/list-feature-flags.js +35 -0
- package/dist/tools/list-feature-flags.js.map +1 -0
- package/dist/tools/list-insights.d.ts +31 -0
- package/dist/tools/list-insights.d.ts.map +1 -0
- package/dist/tools/list-insights.js +38 -0
- package/dist/tools/list-insights.js.map +1 -0
- package/dist/tools/list-persons.d.ts +19 -0
- package/dist/tools/list-persons.d.ts.map +1 -0
- package/dist/tools/list-persons.js +35 -0
- package/dist/tools/list-persons.js.map +1 -0
- package/dist/tools/list-projects.d.ts +18 -0
- package/dist/tools/list-projects.d.ts.map +1 -0
- package/dist/tools/list-projects.js +31 -0
- package/dist/tools/list-projects.js.map +1 -0
- package/dist/tools/list-surveys.d.ts +20 -0
- package/dist/tools/list-surveys.d.ts.map +1 -0
- package/dist/tools/list-surveys.js +29 -0
- package/dist/tools/list-surveys.js.map +1 -0
- package/dist/tools/schemas.d.ts +452 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +276 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/update-dashboard.d.ts +26 -0
- package/dist/tools/update-dashboard.d.ts.map +1 -0
- package/dist/tools/update-dashboard.js +31 -0
- package/dist/tools/update-dashboard.js.map +1 -0
- package/dist/tools/update-feature-flag.d.ts +26 -0
- package/dist/tools/update-feature-flag.d.ts.map +1 -0
- package/dist/tools/update-feature-flag.js +42 -0
- package/dist/tools/update-feature-flag.js.map +1 -0
- package/dist/tools/update-insight.d.ts +30 -0
- package/dist/tools/update-insight.d.ts.map +1 -0
- package/dist/tools/update-insight.js +40 -0
- package/dist/tools/update-insight.js.map +1 -0
- package/dist/tools.json +3530 -0
- package/package.json +55 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OpenTabsPlugin } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import type { ToolDefinition } from '@opentabs-dev/plugin-sdk';
|
|
3
|
+
declare class PostHogPlugin extends OpenTabsPlugin {
|
|
4
|
+
readonly name = "posthog";
|
|
5
|
+
readonly description = "OpenTabs plugin for PostHog";
|
|
6
|
+
readonly displayName = "PostHog";
|
|
7
|
+
readonly urlPatterns: string[];
|
|
8
|
+
readonly homepage = "https://us.posthog.com";
|
|
9
|
+
readonly tools: ToolDefinition[];
|
|
10
|
+
isReady(): Promise<boolean>;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: PostHogPlugin;
|
|
13
|
+
export default _default;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAyD/D,cAAM,aAAc,SAAQ,cAAc;IACxC,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,iCAAiC;IACrD,SAAkB,WAAW,aAAa;IAC1C,QAAQ,CAAC,WAAW,WAAoD;IACxE,SAAkB,QAAQ,4BAA4B;IAEtD,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAsD9B;IAEI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAIlC;;AAED,wBAAmC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { OpenTabsPlugin } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import { isAuthenticated, waitForAuth } from './posthog-api.js';
|
|
3
|
+
// Users & Organization
|
|
4
|
+
import { getCurrentUser } from './tools/get-current-user.js';
|
|
5
|
+
import { getOrganization } from './tools/get-organization.js';
|
|
6
|
+
// Projects
|
|
7
|
+
import { listProjects } from './tools/list-projects.js';
|
|
8
|
+
import { getProject } from './tools/get-project.js';
|
|
9
|
+
// Dashboards
|
|
10
|
+
import { listDashboards } from './tools/list-dashboards.js';
|
|
11
|
+
import { getDashboard } from './tools/get-dashboard.js';
|
|
12
|
+
import { createDashboard } from './tools/create-dashboard.js';
|
|
13
|
+
import { updateDashboard } from './tools/update-dashboard.js';
|
|
14
|
+
import { deleteDashboard } from './tools/delete-dashboard.js';
|
|
15
|
+
// Insights
|
|
16
|
+
import { listInsights } from './tools/list-insights.js';
|
|
17
|
+
import { getInsight } from './tools/get-insight.js';
|
|
18
|
+
import { updateInsight } from './tools/update-insight.js';
|
|
19
|
+
import { deleteInsight } from './tools/delete-insight.js';
|
|
20
|
+
// Feature Flags
|
|
21
|
+
import { listFeatureFlags } from './tools/list-feature-flags.js';
|
|
22
|
+
import { getFeatureFlag } from './tools/get-feature-flag.js';
|
|
23
|
+
import { createFeatureFlag } from './tools/create-feature-flag.js';
|
|
24
|
+
import { updateFeatureFlag } from './tools/update-feature-flag.js';
|
|
25
|
+
import { deleteFeatureFlag } from './tools/delete-feature-flag.js';
|
|
26
|
+
// Experiments
|
|
27
|
+
import { listExperiments } from './tools/list-experiments.js';
|
|
28
|
+
import { getExperiment } from './tools/get-experiment.js';
|
|
29
|
+
import { createExperiment } from './tools/create-experiment.js';
|
|
30
|
+
// Annotations
|
|
31
|
+
import { listAnnotations } from './tools/list-annotations.js';
|
|
32
|
+
import { createAnnotation } from './tools/create-annotation.js';
|
|
33
|
+
import { deleteAnnotation } from './tools/delete-annotation.js';
|
|
34
|
+
// Persons
|
|
35
|
+
import { listPersons } from './tools/list-persons.js';
|
|
36
|
+
import { getPerson } from './tools/get-person.js';
|
|
37
|
+
// Cohorts
|
|
38
|
+
import { listCohorts } from './tools/list-cohorts.js';
|
|
39
|
+
import { getCohort } from './tools/get-cohort.js';
|
|
40
|
+
// Surveys
|
|
41
|
+
import { listSurveys } from './tools/list-surveys.js';
|
|
42
|
+
import { getSurvey } from './tools/get-survey.js';
|
|
43
|
+
// Actions
|
|
44
|
+
import { listActions } from './tools/list-actions.js';
|
|
45
|
+
import { getAction } from './tools/get-action.js';
|
|
46
|
+
class PostHogPlugin extends OpenTabsPlugin {
|
|
47
|
+
name = 'posthog';
|
|
48
|
+
description = 'OpenTabs plugin for PostHog';
|
|
49
|
+
displayName = 'PostHog';
|
|
50
|
+
urlPatterns = ['*://us.posthog.com/*', '*://eu.posthog.com/*'];
|
|
51
|
+
homepage = 'https://us.posthog.com';
|
|
52
|
+
tools = [
|
|
53
|
+
// Users & Organization
|
|
54
|
+
getCurrentUser,
|
|
55
|
+
getOrganization,
|
|
56
|
+
// Projects
|
|
57
|
+
listProjects,
|
|
58
|
+
getProject,
|
|
59
|
+
// Dashboards
|
|
60
|
+
listDashboards,
|
|
61
|
+
getDashboard,
|
|
62
|
+
createDashboard,
|
|
63
|
+
updateDashboard,
|
|
64
|
+
deleteDashboard,
|
|
65
|
+
// Insights
|
|
66
|
+
listInsights,
|
|
67
|
+
getInsight,
|
|
68
|
+
updateInsight,
|
|
69
|
+
deleteInsight,
|
|
70
|
+
// Feature Flags
|
|
71
|
+
listFeatureFlags,
|
|
72
|
+
getFeatureFlag,
|
|
73
|
+
createFeatureFlag,
|
|
74
|
+
updateFeatureFlag,
|
|
75
|
+
deleteFeatureFlag,
|
|
76
|
+
// Experiments
|
|
77
|
+
listExperiments,
|
|
78
|
+
getExperiment,
|
|
79
|
+
createExperiment,
|
|
80
|
+
// Annotations
|
|
81
|
+
listAnnotations,
|
|
82
|
+
createAnnotation,
|
|
83
|
+
deleteAnnotation,
|
|
84
|
+
// Persons
|
|
85
|
+
listPersons,
|
|
86
|
+
getPerson,
|
|
87
|
+
// Cohorts
|
|
88
|
+
listCohorts,
|
|
89
|
+
getCohort,
|
|
90
|
+
// Surveys
|
|
91
|
+
listSurveys,
|
|
92
|
+
getSurvey,
|
|
93
|
+
// Actions
|
|
94
|
+
listActions,
|
|
95
|
+
getAction,
|
|
96
|
+
];
|
|
97
|
+
async isReady() {
|
|
98
|
+
if (isAuthenticated())
|
|
99
|
+
return true;
|
|
100
|
+
return waitForAuth();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export default new PostHogPlugin();
|
|
104
|
+
//# 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,21 @@
|
|
|
1
|
+
export declare const isAuthenticated: () => boolean;
|
|
2
|
+
export declare const waitForAuth: () => Promise<boolean>;
|
|
3
|
+
export declare const getTeamId: () => number;
|
|
4
|
+
export declare const getOrgId: () => string;
|
|
5
|
+
/**
|
|
6
|
+
* PostHog uses two URL patterns:
|
|
7
|
+
* - /api/environments/:teamId/... for dashboards, insights, persons, events
|
|
8
|
+
* - /api/projects/:teamId/... for feature flags, experiments, annotations, actions, cohorts, surveys
|
|
9
|
+
* The teamId and projectId are interchangeable in PostHog Cloud.
|
|
10
|
+
*/
|
|
11
|
+
export declare const api: <T>(endpoint: string, options?: {
|
|
12
|
+
method?: string;
|
|
13
|
+
body?: unknown;
|
|
14
|
+
query?: Record<string, string | number | boolean | string[] | undefined>;
|
|
15
|
+
}) => Promise<T>;
|
|
16
|
+
/**
|
|
17
|
+
* Soft-delete a PostHog resource. Most DELETE endpoints return 405;
|
|
18
|
+
* the convention is PATCH with { deleted: true }.
|
|
19
|
+
*/
|
|
20
|
+
export declare const softDelete: (endpoint: string) => Promise<void>;
|
|
21
|
+
//# sourceMappingURL=posthog-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posthog-api.d.ts","sourceRoot":"","sources":["../src/posthog-api.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,eAAe,QAAO,OAA6B,CAAC;AAEjE,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,OAAO,CAOnD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,MAI5B,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,MAI3B,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,GAAG,GAAU,CAAC,EACzB,UAAU,MAAM,EAChB,UAAS;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;CACrE,KACL,OAAO,CAAC,CAAC,CAgCX,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAE/D,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { ToolError, fetchJSON, buildQueryString, getCookie, getPageGlobal, getAuthCache, setAuthCache, clearAuthCache, waitUntil, } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
const getAuth = () => {
|
|
3
|
+
const cached = getAuthCache('posthog');
|
|
4
|
+
if (cached)
|
|
5
|
+
return cached;
|
|
6
|
+
const csrfToken = getCookie('posthog_csrftoken');
|
|
7
|
+
if (!csrfToken)
|
|
8
|
+
return null;
|
|
9
|
+
const teamId = getPageGlobal('POSTHOG_APP_CONTEXT.current_team.id') ?? 0;
|
|
10
|
+
const orgId = getPageGlobal('POSTHOG_APP_CONTEXT.current_project.organization_id') ?? '';
|
|
11
|
+
if (!teamId)
|
|
12
|
+
return null;
|
|
13
|
+
const auth = { csrfToken, teamId, orgId };
|
|
14
|
+
setAuthCache('posthog', auth);
|
|
15
|
+
return auth;
|
|
16
|
+
};
|
|
17
|
+
export const isAuthenticated = () => getAuth() !== null;
|
|
18
|
+
export const waitForAuth = async () => {
|
|
19
|
+
try {
|
|
20
|
+
await waitUntil(() => isAuthenticated(), { interval: 500, timeout: 5000 });
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export const getTeamId = () => {
|
|
28
|
+
const auth = getAuth();
|
|
29
|
+
if (!auth)
|
|
30
|
+
throw ToolError.auth('Not authenticated — please log in to PostHog.');
|
|
31
|
+
return auth.teamId;
|
|
32
|
+
};
|
|
33
|
+
export const getOrgId = () => {
|
|
34
|
+
const auth = getAuth();
|
|
35
|
+
if (!auth)
|
|
36
|
+
throw ToolError.auth('Not authenticated — please log in to PostHog.');
|
|
37
|
+
return auth.orgId;
|
|
38
|
+
};
|
|
39
|
+
// --- API caller ---
|
|
40
|
+
/**
|
|
41
|
+
* PostHog uses two URL patterns:
|
|
42
|
+
* - /api/environments/:teamId/... for dashboards, insights, persons, events
|
|
43
|
+
* - /api/projects/:teamId/... for feature flags, experiments, annotations, actions, cohorts, surveys
|
|
44
|
+
* The teamId and projectId are interchangeable in PostHog Cloud.
|
|
45
|
+
*/
|
|
46
|
+
export const api = async (endpoint, options = {}) => {
|
|
47
|
+
const auth = getAuth();
|
|
48
|
+
if (!auth)
|
|
49
|
+
throw ToolError.auth('Not authenticated — please log in to PostHog.');
|
|
50
|
+
const qs = options.query ? buildQueryString(options.query) : '';
|
|
51
|
+
const url = qs ? `${endpoint}?${qs}` : endpoint;
|
|
52
|
+
const method = options.method ?? 'GET';
|
|
53
|
+
const headers = {
|
|
54
|
+
Accept: 'application/json',
|
|
55
|
+
};
|
|
56
|
+
if (method !== 'GET') {
|
|
57
|
+
headers['X-CSRFToken'] = auth.csrfToken;
|
|
58
|
+
}
|
|
59
|
+
const init = { method, headers };
|
|
60
|
+
if (options.body) {
|
|
61
|
+
headers['Content-Type'] = 'application/json';
|
|
62
|
+
init.body = JSON.stringify(options.body);
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const data = await fetchJSON(url, init);
|
|
66
|
+
return data;
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (error instanceof ToolError && error.category === 'auth') {
|
|
70
|
+
clearAuthCache('posthog');
|
|
71
|
+
}
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Soft-delete a PostHog resource. Most DELETE endpoints return 405;
|
|
77
|
+
* the convention is PATCH with { deleted: true }.
|
|
78
|
+
*/
|
|
79
|
+
export const softDelete = async (endpoint) => {
|
|
80
|
+
await api(endpoint, { method: 'PATCH', body: { deleted: true } });
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=posthog-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posthog-api.js","sourceRoot":"","sources":["../src/posthog-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const createAnnotation: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
+
content: z.ZodString;
|
|
4
|
+
date_marker: z.ZodString;
|
|
5
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
7
|
+
annotation: z.ZodObject<{
|
|
8
|
+
id: z.ZodNumber;
|
|
9
|
+
content: z.ZodString;
|
|
10
|
+
date_marker: z.ZodString;
|
|
11
|
+
scope: z.ZodString;
|
|
12
|
+
created_at: z.ZodString;
|
|
13
|
+
created_by: z.ZodNullable<z.ZodObject<{
|
|
14
|
+
id: z.ZodNumber;
|
|
15
|
+
first_name: z.ZodString;
|
|
16
|
+
email: z.ZodString;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
}, z.core.$strip>>;
|
|
20
|
+
//# sourceMappingURL=create-annotation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-annotation.d.ts","sourceRoot":"","sources":["../../src/tools/create-annotation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;kBA0B3B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { api, getTeamId } from '../posthog-api.js';
|
|
4
|
+
import { annotationSchema, mapAnnotation } from './schemas.js';
|
|
5
|
+
export const createAnnotation = defineTool({
|
|
6
|
+
name: 'create_annotation',
|
|
7
|
+
displayName: 'Create Annotation',
|
|
8
|
+
description: 'Create a new annotation to mark an important event on PostHog charts.',
|
|
9
|
+
summary: 'Create a new annotation',
|
|
10
|
+
icon: 'plus',
|
|
11
|
+
group: 'Annotations',
|
|
12
|
+
input: z.object({
|
|
13
|
+
content: z.string().describe('Annotation text content'),
|
|
14
|
+
date_marker: z.string().describe('ISO 8601 timestamp the annotation marks'),
|
|
15
|
+
scope: z.string().optional().describe('Annotation scope: "project" (default), "organization", or "dashboard_item"'),
|
|
16
|
+
}),
|
|
17
|
+
output: z.object({
|
|
18
|
+
annotation: annotationSchema.describe('The newly created annotation'),
|
|
19
|
+
}),
|
|
20
|
+
handle: async (params) => {
|
|
21
|
+
const body = {
|
|
22
|
+
content: params.content,
|
|
23
|
+
date_marker: params.date_marker,
|
|
24
|
+
};
|
|
25
|
+
if (params.scope !== undefined)
|
|
26
|
+
body.scope = params.scope;
|
|
27
|
+
const data = await api(`/api/projects/${getTeamId()}/annotations/`, { method: 'POST', body });
|
|
28
|
+
return { annotation: mapAnnotation(data) };
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=create-annotation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-annotation.js","sourceRoot":"","sources":["../../src/tools/create-annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAsB,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,uEAAuE;IACpF,OAAO,EAAE,yBAAyB;IAClC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;KACpH,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KACtE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAgB,iBAAiB,SAAS,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7G,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const createDashboard: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
description: z.ZodOptional<z.ZodString>;
|
|
5
|
+
pinned: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
7
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
8
|
+
dashboard: z.ZodObject<{
|
|
9
|
+
id: z.ZodNumber;
|
|
10
|
+
name: z.ZodString;
|
|
11
|
+
description: z.ZodString;
|
|
12
|
+
pinned: z.ZodBoolean;
|
|
13
|
+
created_at: z.ZodString;
|
|
14
|
+
created_by: z.ZodNullable<z.ZodObject<{
|
|
15
|
+
id: z.ZodNumber;
|
|
16
|
+
first_name: z.ZodString;
|
|
17
|
+
email: z.ZodString;
|
|
18
|
+
}, z.core.$strip>>;
|
|
19
|
+
is_shared: z.ZodBoolean;
|
|
20
|
+
tags: z.ZodArray<z.ZodString>;
|
|
21
|
+
tiles_count: z.ZodNumber;
|
|
22
|
+
deleted: z.ZodBoolean;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
}, z.core.$strip>>;
|
|
25
|
+
//# sourceMappingURL=create-dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-dashboard.d.ts","sourceRoot":"","sources":["../../src/tools/create-dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;kBAuB1B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { api, getTeamId } from '../posthog-api.js';
|
|
4
|
+
import { dashboardSchema, mapDashboard } from './schemas.js';
|
|
5
|
+
export const createDashboard = defineTool({
|
|
6
|
+
name: 'create_dashboard',
|
|
7
|
+
displayName: 'Create Dashboard',
|
|
8
|
+
description: 'Create a new dashboard in the current PostHog project.',
|
|
9
|
+
summary: 'Create a new dashboard',
|
|
10
|
+
icon: 'plus',
|
|
11
|
+
group: 'Dashboards',
|
|
12
|
+
input: z.object({
|
|
13
|
+
name: z.string().describe('Dashboard name'),
|
|
14
|
+
description: z.string().optional().describe('Dashboard description'),
|
|
15
|
+
pinned: z.boolean().optional().describe('Whether to pin the dashboard'),
|
|
16
|
+
tags: z.array(z.string()).optional().describe('Tags to attach'),
|
|
17
|
+
}),
|
|
18
|
+
output: z.object({
|
|
19
|
+
dashboard: dashboardSchema.describe('The created dashboard'),
|
|
20
|
+
}),
|
|
21
|
+
handle: async (params) => {
|
|
22
|
+
const data = await api(`/api/environments/${getTeamId()}/dashboards/`, {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
body: params,
|
|
25
|
+
});
|
|
26
|
+
return { dashboard: mapDashboard(data) };
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=create-dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-dashboard.js","sourceRoot":"","sources":["../../src/tools/create-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAqB,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhF,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACxC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,wDAAwD;IACrE,OAAO,EAAE,wBAAwB;IACjC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACpE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACvE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAChE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAe,qBAAqB,SAAS,EAAE,cAAc,EAAE;YACnF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3C,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const createExperiment: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
description: z.ZodOptional<z.ZodString>;
|
|
5
|
+
feature_flag_key: z.ZodString;
|
|
6
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
7
|
+
experiment: z.ZodObject<{
|
|
8
|
+
id: z.ZodNumber;
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
description: z.ZodString;
|
|
11
|
+
start_date: z.ZodNullable<z.ZodString>;
|
|
12
|
+
end_date: z.ZodNullable<z.ZodString>;
|
|
13
|
+
feature_flag_key: z.ZodString;
|
|
14
|
+
created_at: z.ZodString;
|
|
15
|
+
created_by: z.ZodNullable<z.ZodObject<{
|
|
16
|
+
id: z.ZodNumber;
|
|
17
|
+
first_name: z.ZodString;
|
|
18
|
+
email: z.ZodString;
|
|
19
|
+
}, z.core.$strip>>;
|
|
20
|
+
type: z.ZodString;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
}, z.core.$strip>>;
|
|
23
|
+
//# sourceMappingURL=create-experiment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-experiment.d.ts","sourceRoot":"","sources":["../../src/tools/create-experiment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;kBA0B3B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { api, getTeamId } from '../posthog-api.js';
|
|
4
|
+
import { experimentSchema, mapExperiment } from './schemas.js';
|
|
5
|
+
export const createExperiment = defineTool({
|
|
6
|
+
name: 'create_experiment',
|
|
7
|
+
displayName: 'Create Experiment',
|
|
8
|
+
description: 'Create a new A/B test experiment. Requires a name and feature flag key.',
|
|
9
|
+
summary: 'Create a new experiment',
|
|
10
|
+
icon: 'plus',
|
|
11
|
+
group: 'Experiments',
|
|
12
|
+
input: z.object({
|
|
13
|
+
name: z.string().describe('Experiment name'),
|
|
14
|
+
description: z.string().optional().describe('Description'),
|
|
15
|
+
feature_flag_key: z.string().describe('Key for the associated feature flag'),
|
|
16
|
+
}),
|
|
17
|
+
output: z.object({
|
|
18
|
+
experiment: experimentSchema.describe('The newly created experiment'),
|
|
19
|
+
}),
|
|
20
|
+
handle: async (params) => {
|
|
21
|
+
const body = {
|
|
22
|
+
name: params.name,
|
|
23
|
+
feature_flag_key: params.feature_flag_key,
|
|
24
|
+
};
|
|
25
|
+
if (params.description !== undefined)
|
|
26
|
+
body.description = params.description;
|
|
27
|
+
const data = await api(`/api/projects/${getTeamId()}/experiments/`, { method: 'POST', body });
|
|
28
|
+
return { experiment: mapExperiment(data) };
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=create-experiment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-experiment.js","sourceRoot":"","sources":["../../src/tools/create-experiment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAsB,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,yEAAyE;IACtF,OAAO,EAAE,yBAAyB;IAClC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC1D,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC7E,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KACtE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B;YACpC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC;QACF,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAE5E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAgB,iBAAiB,SAAS,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7G,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const createFeatureFlag: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
+
key: z.ZodString;
|
|
4
|
+
name: z.ZodOptional<z.ZodString>;
|
|
5
|
+
active: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
rollout_percentage: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
ensure_experience_continuity: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
9
|
+
feature_flag: z.ZodObject<{
|
|
10
|
+
id: z.ZodNumber;
|
|
11
|
+
key: z.ZodString;
|
|
12
|
+
name: z.ZodString;
|
|
13
|
+
active: z.ZodBoolean;
|
|
14
|
+
deleted: z.ZodBoolean;
|
|
15
|
+
ensure_experience_continuity: z.ZodBoolean;
|
|
16
|
+
rollout_percentage: z.ZodNullable<z.ZodNumber>;
|
|
17
|
+
tags: z.ZodArray<z.ZodString>;
|
|
18
|
+
created_at: z.ZodString;
|
|
19
|
+
created_by: z.ZodNullable<z.ZodObject<{
|
|
20
|
+
id: z.ZodNumber;
|
|
21
|
+
first_name: z.ZodString;
|
|
22
|
+
email: z.ZodString;
|
|
23
|
+
}, z.core.$strip>>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
}, z.core.$strip>>;
|
|
26
|
+
//# sourceMappingURL=create-feature-flag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-feature-flag.d.ts","sourceRoot":"","sources":["../../src/tools/create-feature-flag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;kBAwC5B,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { api, getTeamId } from '../posthog-api.js';
|
|
4
|
+
import { featureFlagSchema, mapFeatureFlag } from './schemas.js';
|
|
5
|
+
export const createFeatureFlag = defineTool({
|
|
6
|
+
name: 'create_feature_flag',
|
|
7
|
+
displayName: 'Create Feature Flag',
|
|
8
|
+
description: 'Create a new boolean feature flag. The key must be unique within the project and is used in code to check the flag.',
|
|
9
|
+
summary: 'Create a new feature flag',
|
|
10
|
+
icon: 'plus',
|
|
11
|
+
group: 'Feature Flags',
|
|
12
|
+
input: z.object({
|
|
13
|
+
key: z.string().describe('Unique flag key (used in code)'),
|
|
14
|
+
name: z.string().optional().describe('Human-readable name'),
|
|
15
|
+
active: z.boolean().optional().describe('Whether to activate immediately (default false)'),
|
|
16
|
+
rollout_percentage: z
|
|
17
|
+
.number()
|
|
18
|
+
.int()
|
|
19
|
+
.min(0)
|
|
20
|
+
.max(100)
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Percentage of users to roll out to (0-100)'),
|
|
23
|
+
ensure_experience_continuity: z.boolean().optional().describe('Persist flag value per user'),
|
|
24
|
+
}),
|
|
25
|
+
output: z.object({
|
|
26
|
+
feature_flag: featureFlagSchema.describe('The newly created feature flag'),
|
|
27
|
+
}),
|
|
28
|
+
handle: async (params) => {
|
|
29
|
+
const body = { key: params.key };
|
|
30
|
+
if (params.name !== undefined)
|
|
31
|
+
body.name = params.name;
|
|
32
|
+
if (params.active !== undefined)
|
|
33
|
+
body.active = params.active;
|
|
34
|
+
if (params.ensure_experience_continuity !== undefined)
|
|
35
|
+
body.ensure_experience_continuity = params.ensure_experience_continuity;
|
|
36
|
+
if (params.rollout_percentage !== undefined) {
|
|
37
|
+
body.filters = {
|
|
38
|
+
groups: [{ rollout_percentage: params.rollout_percentage, properties: [] }],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const data = await api(`/api/projects/${getTeamId()}/feature_flags/`, { method: 'POST', body });
|
|
42
|
+
return { feature_flag: mapFeatureFlag(data) };
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=create-feature-flag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-feature-flag.js","sourceRoot":"","sources":["../../src/tools/create-feature-flag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAuB,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;IAC1C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EACT,qHAAqH;IACvH,OAAO,EAAE,2BAA2B;IACpC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC3D,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QAC1F,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4CAA4C,CAAC;QACzD,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KAC7F,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC3E,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,IAAI,GAA4B,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7D,IAAI,MAAM,CAAC,4BAA4B,KAAK,SAAS;YACnD,IAAI,CAAC,4BAA4B,GAAG,MAAM,CAAC,4BAA4B,CAAC;QAC1E,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,GAAG;gBACb,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAiB,iBAAiB,SAAS,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhH,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAChD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const deleteAnnotation: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
+
annotation_id: z.ZodNumber;
|
|
4
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
5
|
+
success: z.ZodBoolean;
|
|
6
|
+
}, z.core.$strip>>;
|
|
7
|
+
//# sourceMappingURL=delete-annotation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-annotation.d.ts","sourceRoot":"","sources":["../../src/tools/delete-annotation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB;;;;kBAiB3B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTeamId, softDelete } from '../posthog-api.js';
|
|
4
|
+
export const deleteAnnotation = defineTool({
|
|
5
|
+
name: 'delete_annotation',
|
|
6
|
+
displayName: 'Delete Annotation',
|
|
7
|
+
description: 'Delete an annotation by marking it as deleted (soft delete).',
|
|
8
|
+
summary: 'Delete an annotation',
|
|
9
|
+
icon: 'trash-2',
|
|
10
|
+
group: 'Annotations',
|
|
11
|
+
input: z.object({
|
|
12
|
+
annotation_id: z.number().int().describe('Annotation ID to delete'),
|
|
13
|
+
}),
|
|
14
|
+
output: z.object({
|
|
15
|
+
success: z.boolean().describe('Whether the deletion succeeded'),
|
|
16
|
+
}),
|
|
17
|
+
handle: async (params) => {
|
|
18
|
+
await softDelete(`/api/projects/${getTeamId()}/annotations/${params.annotation_id}/`);
|
|
19
|
+
return { success: true };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=delete-annotation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-annotation.js","sourceRoot":"","sources":["../../src/tools/delete-annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,8DAA8D;IAC3E,OAAO,EAAE,sBAAsB;IAC/B,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KACpE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAChE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,UAAU,CAAC,iBAAiB,SAAS,EAAE,gBAAgB,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;QACtF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const deleteDashboard: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
+
dashboard_id: z.ZodNumber;
|
|
4
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
5
|
+
success: z.ZodBoolean;
|
|
6
|
+
}, z.core.$strip>>;
|
|
7
|
+
//# sourceMappingURL=delete-dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-dashboard.d.ts","sourceRoot":"","sources":["../../src/tools/delete-dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe;;;;kBAiB1B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTeamId, softDelete } from '../posthog-api.js';
|
|
4
|
+
export const deleteDashboard = defineTool({
|
|
5
|
+
name: 'delete_dashboard',
|
|
6
|
+
displayName: 'Delete Dashboard',
|
|
7
|
+
description: 'Delete a dashboard by marking it as deleted (soft delete). The dashboard can potentially be recovered.',
|
|
8
|
+
summary: 'Delete a dashboard',
|
|
9
|
+
icon: 'trash-2',
|
|
10
|
+
group: 'Dashboards',
|
|
11
|
+
input: z.object({
|
|
12
|
+
dashboard_id: z.number().int().describe('Dashboard ID to delete'),
|
|
13
|
+
}),
|
|
14
|
+
output: z.object({
|
|
15
|
+
success: z.boolean().describe('Whether the deletion succeeded'),
|
|
16
|
+
}),
|
|
17
|
+
handle: async (params) => {
|
|
18
|
+
await softDelete(`/api/environments/${getTeamId()}/dashboards/${params.dashboard_id}/`);
|
|
19
|
+
return { success: true };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=delete-dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-dashboard.js","sourceRoot":"","sources":["../../src/tools/delete-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACxC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,wGAAwG;IACrH,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAClE,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAChE,CAAC;IACF,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;QACrB,MAAM,UAAU,CAAC,qBAAqB,SAAS,EAAE,eAAe,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;QACxF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const deleteFeatureFlag: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
+
flag_id: z.ZodNumber;
|
|
4
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
5
|
+
success: z.ZodBoolean;
|
|
6
|
+
}, z.core.$strip>>;
|
|
7
|
+
//# sourceMappingURL=delete-feature-flag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-feature-flag.d.ts","sourceRoot":"","sources":["../../src/tools/delete-feature-flag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;kBAiB5B,CAAC"}
|