@telepat/snoopy 0.1.13 → 0.1.14

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.
@@ -0,0 +1,77 @@
1
+ import { z } from 'zod';
2
+ export declare const snoopyDoctorToolInputSchema: {};
3
+ export declare const snoopyDaemonStatusToolInputSchema: {};
4
+ export declare const snoopyDaemonStartToolInputSchema: {};
5
+ export declare const snoopyDaemonStopToolInputSchema: {};
6
+ export declare const snoopyDaemonReloadToolInputSchema: {};
7
+ export declare const snoopyJobListToolInputSchema: {};
8
+ export declare const snoopyJobRunsToolInputSchema: {
9
+ jobRef: z.ZodOptional<z.ZodString>;
10
+ limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
11
+ };
12
+ export declare const snoopyJobAddToolInputSchema: {
13
+ name: z.ZodString;
14
+ description: z.ZodOptional<z.ZodString>;
15
+ subreddits: z.ZodArray<z.ZodString>;
16
+ qualificationPrompt: z.ZodString;
17
+ scheduleCron: z.ZodOptional<z.ZodString>;
18
+ enabled: z.ZodOptional<z.ZodBoolean>;
19
+ monitorComments: z.ZodOptional<z.ZodBoolean>;
20
+ };
21
+ export declare const snoopyJobDeleteToolInputSchema: {
22
+ jobRef: z.ZodString;
23
+ };
24
+ export declare const snoopyJobEnableToolInputSchema: {
25
+ jobRef: z.ZodString;
26
+ };
27
+ export declare const snoopyJobDisableToolInputSchema: {
28
+ jobRef: z.ZodString;
29
+ };
30
+ export declare const snoopyJobRunToolInputSchema: {
31
+ jobRef: z.ZodString;
32
+ limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
33
+ };
34
+ export declare const snoopyAnalyticsToolInputSchema: {
35
+ jobRef: z.ZodOptional<z.ZodString>;
36
+ days: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
37
+ };
38
+ export declare const snoopyExportToolInputSchema: {
39
+ jobRef: z.ZodOptional<z.ZodString>;
40
+ format: z.ZodOptional<z.ZodEnum<{
41
+ csv: "csv";
42
+ json: "json";
43
+ }>>;
44
+ lastRun: z.ZodOptional<z.ZodBoolean>;
45
+ limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
46
+ };
47
+ export declare const snoopyConsumeToolInputSchema: {
48
+ jobRef: z.ZodOptional<z.ZodString>;
49
+ limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
50
+ dryRun: z.ZodOptional<z.ZodBoolean>;
51
+ };
52
+ export declare const snoopyErrorsToolInputSchema: {
53
+ jobRef: z.ZodString;
54
+ hours: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
55
+ };
56
+ export declare const snoopyLogsToolInputSchema: {
57
+ runId: z.ZodString;
58
+ };
59
+ export declare const snoopySettingsGetToolInputSchema: {};
60
+ export declare const snoopySettingsSetToolInputSchema: {
61
+ key: z.ZodEnum<{
62
+ model: "model";
63
+ cronIntervalMinutes: "cronIntervalMinutes";
64
+ temperature: "temperature";
65
+ maxTokens: "maxTokens";
66
+ topP: "topP";
67
+ notificationsEnabled: "notificationsEnabled";
68
+ jobTimeoutMs: "jobTimeoutMs";
69
+ }>;
70
+ value: z.ZodString;
71
+ };
72
+ export interface ToolContract {
73
+ name: string;
74
+ required: string[];
75
+ enums: Record<string, string[]>;
76
+ }
77
+ export declare const snoopyToolContracts: ToolContract[];
@@ -0,0 +1,90 @@
1
+ import { z } from 'zod';
2
+ export const snoopyDoctorToolInputSchema = {};
3
+ export const snoopyDaemonStatusToolInputSchema = {};
4
+ export const snoopyDaemonStartToolInputSchema = {};
5
+ export const snoopyDaemonStopToolInputSchema = {};
6
+ export const snoopyDaemonReloadToolInputSchema = {};
7
+ export const snoopyJobListToolInputSchema = {};
8
+ export const snoopyJobRunsToolInputSchema = {
9
+ jobRef: z.string().optional().describe('Job ID or slug. If omitted, returns runs for all jobs.'),
10
+ limit: z.coerce.number().int().positive().optional().describe('Max runs to return. Default: 20.'),
11
+ };
12
+ export const snoopyJobAddToolInputSchema = {
13
+ name: z.string().min(1).describe('Job name.'),
14
+ description: z.string().optional().describe('Job description. Default: empty.'),
15
+ subreddits: z.array(z.string()).min(1).describe('Subreddits to monitor (e.g. ["startups","SaaS"]).'),
16
+ qualificationPrompt: z.string().min(1).describe('Plain-language criteria for qualifying posts/comments.'),
17
+ scheduleCron: z.string().optional().describe('Cron expression. Default: "*/30 * * * *" (every 30 min).'),
18
+ enabled: z.boolean().optional().describe('Enable scheduling immediately. Default: true.'),
19
+ monitorComments: z.boolean().optional().describe('Also monitor comments. Default: true.'),
20
+ };
21
+ export const snoopyJobDeleteToolInputSchema = {
22
+ jobRef: z.string().min(1).describe('Job ID or slug to delete.'),
23
+ };
24
+ export const snoopyJobEnableToolInputSchema = {
25
+ jobRef: z.string().min(1).describe('Job ID or slug to enable.'),
26
+ };
27
+ export const snoopyJobDisableToolInputSchema = {
28
+ jobRef: z.string().min(1).describe('Job ID or slug to disable.'),
29
+ };
30
+ export const snoopyJobRunToolInputSchema = {
31
+ jobRef: z.string().min(1).describe('Job ID or slug to run immediately.'),
32
+ limit: z.coerce.number().int().positive().optional().describe('Max new items to qualify.'),
33
+ };
34
+ export const snoopyAnalyticsToolInputSchema = {
35
+ jobRef: z.string().optional().describe('Job ID or slug. If omitted, returns analytics for all jobs.'),
36
+ days: z.coerce.number().int().positive().optional().describe('Lookback window in days. Default: 30.'),
37
+ };
38
+ export const snoopyExportToolInputSchema = {
39
+ jobRef: z.string().optional().describe('Job ID or slug. If omitted, exports all jobs.'),
40
+ format: z.enum(['json', 'csv']).optional().describe('Export format. Default: "json".'),
41
+ lastRun: z.boolean().optional().describe('Only export items from the latest run.'),
42
+ limit: z.coerce.number().int().positive().optional().describe('Max rows per job. Default: 100.'),
43
+ };
44
+ export const snoopyConsumeToolInputSchema = {
45
+ jobRef: z.string().optional().describe('Job ID or slug. If omitted, applies to all jobs.'),
46
+ limit: z.coerce.number().int().positive().optional().describe('Max results to consume.'),
47
+ dryRun: z.boolean().optional().describe('Preview without marking consumed.'),
48
+ };
49
+ export const snoopyErrorsToolInputSchema = {
50
+ jobRef: z.string().min(1).describe('Job ID or slug.'),
51
+ hours: z.coerce.number().int().positive().optional().describe('Look back hours. Default: 24.'),
52
+ };
53
+ export const snoopyLogsToolInputSchema = {
54
+ runId: z.string().min(1).describe('Run ID to view logs for.'),
55
+ };
56
+ export const snoopySettingsGetToolInputSchema = {};
57
+ export const snoopySettingsSetToolInputSchema = {
58
+ key: z.enum([
59
+ 'model',
60
+ 'temperature',
61
+ 'maxTokens',
62
+ 'topP',
63
+ 'cronIntervalMinutes',
64
+ 'jobTimeoutMs',
65
+ 'notificationsEnabled',
66
+ ]).describe('Setting key to update.'),
67
+ value: z.string().describe('New value for the setting.'),
68
+ };
69
+ export const snoopyToolContracts = [
70
+ { name: 'snoopy_doctor', required: [], enums: {} },
71
+ { name: 'snoopy_daemon_status', required: [], enums: {} },
72
+ { name: 'snoopy_daemon_start', required: [], enums: {} },
73
+ { name: 'snoopy_daemon_stop', required: [], enums: {} },
74
+ { name: 'snoopy_daemon_reload', required: [], enums: {} },
75
+ { name: 'snoopy_job_list', required: [], enums: {} },
76
+ { name: 'snoopy_job_runs', required: [], enums: {} },
77
+ { name: 'snoopy_job_add', required: ['name', 'subreddits', 'qualificationPrompt'], enums: {} },
78
+ { name: 'snoopy_job_delete', required: ['jobRef'], enums: {} },
79
+ { name: 'snoopy_job_enable', required: ['jobRef'], enums: {} },
80
+ { name: 'snoopy_job_disable', required: ['jobRef'], enums: {} },
81
+ { name: 'snoopy_job_run', required: ['jobRef'], enums: {} },
82
+ { name: 'snoopy_analytics', required: [], enums: {} },
83
+ { name: 'snoopy_export', required: [], enums: { format: ['json', 'csv'] } },
84
+ { name: 'snoopy_consume', required: [], enums: {} },
85
+ { name: 'snoopy_errors', required: ['jobRef'], enums: {} },
86
+ { name: 'snoopy_logs', required: ['runId'], enums: {} },
87
+ { name: 'snoopy_settings_get', required: [], enums: {} },
88
+ { name: 'snoopy_settings_set', required: ['key', 'value'], enums: { key: ['model', 'temperature', 'maxTokens', 'topP', 'cronIntervalMinutes', 'jobTimeoutMs', 'notificationsEnabled'] } },
89
+ ];
90
+ //# sourceMappingURL=tools.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telepat/snoopy",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Snoopy CLI for Reddit conversation monitoring jobs.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -53,6 +53,7 @@
53
53
  "license": "ISC",
54
54
  "dependencies": {
55
55
  "@inkjs/ui": "^2.0.0",
56
+ "@modelcontextprotocol/sdk": "^1.12.1",
56
57
  "better-sqlite3": "^12.8.0",
57
58
  "commander": "^14.0.3",
58
59
  "ink": "^6.8.0",