@autonav/core 1.0.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 (142) hide show
  1. package/README.md +115 -0
  2. package/dist/adapter/claude-adapter.d.ts +136 -0
  3. package/dist/adapter/claude-adapter.d.ts.map +1 -0
  4. package/dist/adapter/claude-adapter.js +340 -0
  5. package/dist/adapter/claude-adapter.js.map +1 -0
  6. package/dist/adapter/index.d.ts +7 -0
  7. package/dist/adapter/index.d.ts.map +1 -0
  8. package/dist/adapter/index.js +7 -0
  9. package/dist/adapter/index.js.map +1 -0
  10. package/dist/cli/autonav.d.ts +11 -0
  11. package/dist/cli/autonav.d.ts.map +1 -0
  12. package/dist/cli/autonav.js +79 -0
  13. package/dist/cli/autonav.js.map +1 -0
  14. package/dist/cli/nav-chat.d.ts +3 -0
  15. package/dist/cli/nav-chat.d.ts.map +1 -0
  16. package/dist/cli/nav-chat.js +151 -0
  17. package/dist/cli/nav-chat.js.map +1 -0
  18. package/dist/cli/nav-init.d.ts +3 -0
  19. package/dist/cli/nav-init.d.ts.map +1 -0
  20. package/dist/cli/nav-init.js +366 -0
  21. package/dist/cli/nav-init.js.map +1 -0
  22. package/dist/cli/nav-query.d.ts +3 -0
  23. package/dist/cli/nav-query.d.ts.map +1 -0
  24. package/dist/cli/nav-query.js +217 -0
  25. package/dist/cli/nav-query.js.map +1 -0
  26. package/dist/conversation/App.d.ts +14 -0
  27. package/dist/conversation/App.d.ts.map +1 -0
  28. package/dist/conversation/App.js +229 -0
  29. package/dist/conversation/App.js.map +1 -0
  30. package/dist/conversation/index.d.ts +29 -0
  31. package/dist/conversation/index.d.ts.map +1 -0
  32. package/dist/conversation/index.js +44 -0
  33. package/dist/conversation/index.js.map +1 -0
  34. package/dist/conversation/prompts.d.ts +9 -0
  35. package/dist/conversation/prompts.d.ts.map +1 -0
  36. package/dist/conversation/prompts.js +47 -0
  37. package/dist/conversation/prompts.js.map +1 -0
  38. package/dist/index.d.ts +13 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +24 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/interview/App.d.ts +14 -0
  43. package/dist/interview/App.d.ts.map +1 -0
  44. package/dist/interview/App.js +159 -0
  45. package/dist/interview/App.js.map +1 -0
  46. package/dist/interview/index.d.ts +30 -0
  47. package/dist/interview/index.d.ts.map +1 -0
  48. package/dist/interview/index.js +52 -0
  49. package/dist/interview/index.js.map +1 -0
  50. package/dist/interview/prompts.d.ts +36 -0
  51. package/dist/interview/prompts.d.ts.map +1 -0
  52. package/dist/interview/prompts.js +116 -0
  53. package/dist/interview/prompts.js.map +1 -0
  54. package/dist/pack-installer/github.d.ts +41 -0
  55. package/dist/pack-installer/github.d.ts.map +1 -0
  56. package/dist/pack-installer/github.js +294 -0
  57. package/dist/pack-installer/github.js.map +1 -0
  58. package/dist/pack-installer/index.d.ts +57 -0
  59. package/dist/pack-installer/index.d.ts.map +1 -0
  60. package/dist/pack-installer/index.js +257 -0
  61. package/dist/pack-installer/index.js.map +1 -0
  62. package/dist/plugins/config-schema.d.ts +32 -0
  63. package/dist/plugins/config-schema.d.ts.map +1 -0
  64. package/dist/plugins/config-schema.js +26 -0
  65. package/dist/plugins/config-schema.js.map +1 -0
  66. package/dist/plugins/implementations/file-watcher/index.d.ts +110 -0
  67. package/dist/plugins/implementations/file-watcher/index.d.ts.map +1 -0
  68. package/dist/plugins/implementations/file-watcher/index.js +212 -0
  69. package/dist/plugins/implementations/file-watcher/index.js.map +1 -0
  70. package/dist/plugins/implementations/github/index.d.ts +201 -0
  71. package/dist/plugins/implementations/github/index.d.ts.map +1 -0
  72. package/dist/plugins/implementations/github/index.js +337 -0
  73. package/dist/plugins/implementations/github/index.js.map +1 -0
  74. package/dist/plugins/implementations/slack/index.d.ts +153 -0
  75. package/dist/plugins/implementations/slack/index.d.ts.map +1 -0
  76. package/dist/plugins/implementations/slack/index.js +221 -0
  77. package/dist/plugins/implementations/slack/index.js.map +1 -0
  78. package/dist/plugins/index.d.ts +23 -0
  79. package/dist/plugins/index.d.ts.map +1 -0
  80. package/dist/plugins/index.js +35 -0
  81. package/dist/plugins/index.js.map +1 -0
  82. package/dist/plugins/plugin-manager.d.ts +66 -0
  83. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  84. package/dist/plugins/plugin-manager.js +198 -0
  85. package/dist/plugins/plugin-manager.js.map +1 -0
  86. package/dist/plugins/types.d.ts +102 -0
  87. package/dist/plugins/types.d.ts.map +1 -0
  88. package/dist/plugins/types.js +38 -0
  89. package/dist/plugins/types.js.map +1 -0
  90. package/dist/plugins/utils/security.d.ts +43 -0
  91. package/dist/plugins/utils/security.d.ts.map +1 -0
  92. package/dist/plugins/utils/security.js +115 -0
  93. package/dist/plugins/utils/security.js.map +1 -0
  94. package/dist/query-engine/index.d.ts +10 -0
  95. package/dist/query-engine/index.d.ts.map +1 -0
  96. package/dist/query-engine/index.js +10 -0
  97. package/dist/query-engine/index.js.map +1 -0
  98. package/dist/query-engine/navigator-loader.d.ts +37 -0
  99. package/dist/query-engine/navigator-loader.d.ts.map +1 -0
  100. package/dist/query-engine/navigator-loader.js +167 -0
  101. package/dist/query-engine/navigator-loader.js.map +1 -0
  102. package/dist/query-engine/output-formatter.d.ts +55 -0
  103. package/dist/query-engine/output-formatter.d.ts.map +1 -0
  104. package/dist/query-engine/output-formatter.js +165 -0
  105. package/dist/query-engine/output-formatter.js.map +1 -0
  106. package/dist/query-engine/response-validator.d.ts +55 -0
  107. package/dist/query-engine/response-validator.d.ts.map +1 -0
  108. package/dist/query-engine/response-validator.js +92 -0
  109. package/dist/query-engine/response-validator.js.map +1 -0
  110. package/dist/templates/.gitignore.template +23 -0
  111. package/dist/templates/CLAUDE-pack.md.template +32 -0
  112. package/dist/templates/CLAUDE.md.template +128 -0
  113. package/dist/templates/README.md.template +174 -0
  114. package/dist/templates/config-pack.json.template +16 -0
  115. package/dist/templates/config.json.template +11 -0
  116. package/dist/templates/index.d.ts +22 -0
  117. package/dist/templates/index.d.ts.map +1 -0
  118. package/dist/templates/index.js +32 -0
  119. package/dist/templates/index.js.map +1 -0
  120. package/dist/templates/plugins.json.template +33 -0
  121. package/dist/templates/system-configuration.md.template +66 -0
  122. package/dist/tools/handler.d.ts +20 -0
  123. package/dist/tools/handler.d.ts.map +1 -0
  124. package/dist/tools/handler.js +202 -0
  125. package/dist/tools/handler.js.map +1 -0
  126. package/dist/tools/index.d.ts +10 -0
  127. package/dist/tools/index.d.ts.map +1 -0
  128. package/dist/tools/index.js +10 -0
  129. package/dist/tools/index.js.map +1 -0
  130. package/dist/tools/response.d.ts +30 -0
  131. package/dist/tools/response.d.ts.map +1 -0
  132. package/dist/tools/response.js +68 -0
  133. package/dist/tools/response.js.map +1 -0
  134. package/dist/tools/self-config.d.ts +54 -0
  135. package/dist/tools/self-config.d.ts.map +1 -0
  136. package/dist/tools/self-config.js +84 -0
  137. package/dist/tools/self-config.js.map +1 -0
  138. package/dist/validation/index.d.ts +19 -0
  139. package/dist/validation/index.d.ts.map +1 -0
  140. package/dist/validation/index.js +91 -0
  141. package/dist/validation/index.js.map +1 -0
  142. package/package.json +71 -0
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Schema for .claude/plugins.json
4
+ *
5
+ * Example:
6
+ * {
7
+ * "slack": {
8
+ * "enabled": true,
9
+ * "config": {
10
+ * "token": "xoxb-...",
11
+ * "channels": ["#general"],
12
+ * "threadNotifications": true
13
+ * }
14
+ * },
15
+ * "github": {
16
+ * "enabled": false,
17
+ * "config": {}
18
+ * }
19
+ * }
20
+ */
21
+ export declare const PluginConfigFileSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
22
+ enabled: z.ZodBoolean;
23
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ enabled: boolean;
26
+ config?: Record<string, unknown> | undefined;
27
+ }, {
28
+ enabled: boolean;
29
+ config?: Record<string, unknown> | undefined;
30
+ }>>;
31
+ export type PluginConfigFile = z.infer<typeof PluginConfigFileSchema>;
32
+ //# sourceMappingURL=config-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/plugins/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;GAMlC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Schema for .claude/plugins.json
4
+ *
5
+ * Example:
6
+ * {
7
+ * "slack": {
8
+ * "enabled": true,
9
+ * "config": {
10
+ * "token": "xoxb-...",
11
+ * "channels": ["#general"],
12
+ * "threadNotifications": true
13
+ * }
14
+ * },
15
+ * "github": {
16
+ * "enabled": false,
17
+ * "config": {}
18
+ * }
19
+ * }
20
+ */
21
+ export const PluginConfigFileSchema = z.record(z.string(), // Plugin name
22
+ z.object({
23
+ enabled: z.boolean(),
24
+ config: z.record(z.unknown()).optional(),
25
+ }));
26
+ //# sourceMappingURL=config-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/plugins/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC5C,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc;AAC1B,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CACH,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { z } from 'zod';
2
+ import { Plugin, PluginHealthStatus } from '../../types.js';
3
+ export declare const FileWatcherConfigSchema: z.ZodObject<{
4
+ paths: z.ZodArray<z.ZodString, "many">;
5
+ patterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
6
+ ignorePatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
7
+ pollInterval: z.ZodDefault<z.ZodNumber>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ paths: string[];
10
+ patterns: string[];
11
+ ignorePatterns: string[];
12
+ pollInterval: number;
13
+ }, {
14
+ paths: string[];
15
+ patterns?: string[] | undefined;
16
+ ignorePatterns?: string[] | undefined;
17
+ pollInterval?: number | undefined;
18
+ }>;
19
+ export type FileWatcherConfig = z.infer<typeof FileWatcherConfigSchema>;
20
+ export declare const FileWatcherEventSchema: z.ZodObject<{
21
+ type: z.ZodEnum<["added", "changed", "removed"]>;
22
+ path: z.ZodString;
23
+ timestamp: z.ZodString;
24
+ size: z.ZodOptional<z.ZodNumber>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ path: string;
27
+ type: "added" | "changed" | "removed";
28
+ timestamp: string;
29
+ size?: number | undefined;
30
+ }, {
31
+ path: string;
32
+ type: "added" | "changed" | "removed";
33
+ timestamp: string;
34
+ size?: number | undefined;
35
+ }>;
36
+ export type FileWatcherEvent = z.infer<typeof FileWatcherEventSchema>;
37
+ export declare const FileWatcherActionSchema: z.ZodObject<{
38
+ type: z.ZodEnum<["refresh", "clear"]>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ type: "refresh" | "clear";
41
+ }, {
42
+ type: "refresh" | "clear";
43
+ }>;
44
+ export type FileWatcherAction = z.infer<typeof FileWatcherActionSchema>;
45
+ /**
46
+ * File System Watcher Plugin
47
+ *
48
+ * Monitors knowledge base files for changes and reports them as events.
49
+ * Useful for keeping navigators aware of documentation updates.
50
+ *
51
+ * Security: Only watches directories within the project scope,
52
+ * prevents watching sensitive system directories.
53
+ */
54
+ export declare class FileWatcherPlugin implements Plugin<FileWatcherConfig, FileWatcherEvent, FileWatcherAction> {
55
+ readonly name = "file-watcher";
56
+ readonly version = "1.0.0";
57
+ readonly description = "Monitor file system changes in knowledge base";
58
+ readonly configSchema: z.ZodObject<{
59
+ paths: z.ZodArray<z.ZodString, "many">;
60
+ patterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
61
+ ignorePatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
62
+ pollInterval: z.ZodDefault<z.ZodNumber>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ paths: string[];
65
+ patterns: string[];
66
+ ignorePatterns: string[];
67
+ pollInterval: number;
68
+ }, {
69
+ paths: string[];
70
+ patterns?: string[] | undefined;
71
+ ignorePatterns?: string[] | undefined;
72
+ pollInterval?: number | undefined;
73
+ }>;
74
+ readonly eventSchema: z.ZodObject<{
75
+ type: z.ZodEnum<["added", "changed", "removed"]>;
76
+ path: z.ZodString;
77
+ timestamp: z.ZodString;
78
+ size: z.ZodOptional<z.ZodNumber>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ path: string;
81
+ type: "added" | "changed" | "removed";
82
+ timestamp: string;
83
+ size?: number | undefined;
84
+ }, {
85
+ path: string;
86
+ type: "added" | "changed" | "removed";
87
+ timestamp: string;
88
+ size?: number | undefined;
89
+ }>;
90
+ readonly actionSchema: z.ZodObject<{
91
+ type: z.ZodEnum<["refresh", "clear"]>;
92
+ }, "strip", z.ZodTypeAny, {
93
+ type: "refresh" | "clear";
94
+ }, {
95
+ type: "refresh" | "clear";
96
+ }>;
97
+ private config?;
98
+ private watcher?;
99
+ private pendingEvents;
100
+ initialize(config: FileWatcherConfig): Promise<void>;
101
+ private handleEvent;
102
+ private matchesPatterns;
103
+ listen(): Promise<FileWatcherEvent[]>;
104
+ execute(action: FileWatcherAction): Promise<void>;
105
+ updateConfig(updates: Partial<FileWatcherConfig>): Promise<FileWatcherConfig>;
106
+ getConfig(): FileWatcherConfig;
107
+ healthCheck(): Promise<PluginHealthStatus>;
108
+ shutdown(): Promise<void>;
109
+ }
110
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/implementations/file-watcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAK5D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EASlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGxE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGtE,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAoDxE;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,YAAW,MAAM,CAC9C,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,CAClB;IACC,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,WAAW,mDAAmD;IACvE,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;OAA2B;IAChD,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;OAA0B;IAC9C,QAAQ,CAAC,YAAY;;;;;;OAA2B;IAEhD,OAAO,CAAC,MAAM,CAAC,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAC,CAAY;IAC5B,OAAO,CAAC,aAAa,CAA0B;IAEzC,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAiC5C,WAAW;IAwBzB,OAAO,CAAC,eAAe;IAOjB,MAAM,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAMrC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjD,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAcnF,SAAS,IAAI,iBAAiB;IAOxB,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAgC1C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC"}
@@ -0,0 +1,212 @@
1
+ import { z } from 'zod';
2
+ import * as fs from 'fs/promises';
3
+ import * as path from 'path';
4
+ import { watch } from 'chokidar';
5
+ import micromatch from 'micromatch';
6
+ // Configuration schema
7
+ export const FileWatcherConfigSchema = z.object({
8
+ paths: z.array(z.string()).describe('Directories to watch'),
9
+ patterns: z.array(z.string()).default(['**/*.md']).describe('Glob patterns to match'),
10
+ ignorePatterns: z.array(z.string()).default([
11
+ '**/node_modules/**',
12
+ '**/.git/**',
13
+ '**/dist/**',
14
+ ]).describe('Patterns to ignore'),
15
+ pollInterval: z.number().default(1000).describe('Polling interval in ms'),
16
+ });
17
+ // Event schema
18
+ export const FileWatcherEventSchema = z.object({
19
+ type: z.enum(['added', 'changed', 'removed']),
20
+ path: z.string(),
21
+ timestamp: z.string(),
22
+ size: z.number().optional(),
23
+ });
24
+ // Action schema (minimal for this plugin)
25
+ export const FileWatcherActionSchema = z.object({
26
+ type: z.enum(['refresh', 'clear']),
27
+ });
28
+ /**
29
+ * Sensitive directories that should never be watched
30
+ */
31
+ const FORBIDDEN_PATHS = [
32
+ '/etc',
33
+ '/sys',
34
+ '/proc',
35
+ '/dev',
36
+ '/root',
37
+ '/boot',
38
+ '/var/log',
39
+ '/usr/bin',
40
+ '/usr/sbin',
41
+ '/bin',
42
+ '/sbin',
43
+ process.env.HOME + '/.ssh',
44
+ process.env.HOME + '/.aws',
45
+ process.env.HOME + '/.config',
46
+ '/Windows',
47
+ '/System',
48
+ 'C:\\Windows',
49
+ 'C:\\System',
50
+ ];
51
+ /**
52
+ * Validate that a path is safe to watch
53
+ * Prevents watching sensitive system directories
54
+ */
55
+ function validateSafePath(watchPath) {
56
+ const resolved = path.resolve(watchPath);
57
+ // Check if path starts with any forbidden path
58
+ for (const forbidden of FORBIDDEN_PATHS) {
59
+ if (forbidden && resolved.startsWith(forbidden)) {
60
+ throw new Error(`Security: Cannot watch sensitive directory '${watchPath}'. ` +
61
+ `File watcher is restricted to project directories only.`);
62
+ }
63
+ }
64
+ // Warn if watching root or very high-level directories
65
+ if (resolved === '/' || resolved === 'C:\\' || resolved.split(path.sep).length <= 2) {
66
+ throw new Error(`Security: Cannot watch root or high-level directory '${watchPath}'. ` +
67
+ `Please specify a more specific directory within your project.`);
68
+ }
69
+ }
70
+ /**
71
+ * File System Watcher Plugin
72
+ *
73
+ * Monitors knowledge base files for changes and reports them as events.
74
+ * Useful for keeping navigators aware of documentation updates.
75
+ *
76
+ * Security: Only watches directories within the project scope,
77
+ * prevents watching sensitive system directories.
78
+ */
79
+ export class FileWatcherPlugin {
80
+ name = 'file-watcher';
81
+ version = '1.0.0';
82
+ description = 'Monitor file system changes in knowledge base';
83
+ configSchema = FileWatcherConfigSchema;
84
+ eventSchema = FileWatcherEventSchema;
85
+ actionSchema = FileWatcherActionSchema;
86
+ config;
87
+ watcher;
88
+ pendingEvents = [];
89
+ async initialize(config) {
90
+ this.config = config;
91
+ // Validate paths exist and are safe to watch
92
+ for (const watchPath of config.paths) {
93
+ // Security: Validate path is not in sensitive directory
94
+ validateSafePath(watchPath);
95
+ try {
96
+ await fs.access(watchPath);
97
+ }
98
+ catch {
99
+ throw new Error(`Watch path does not exist: ${watchPath}`);
100
+ }
101
+ }
102
+ // Initialize watcher
103
+ this.watcher = watch(config.paths, {
104
+ ignored: config.ignorePatterns,
105
+ persistent: true,
106
+ ignoreInitial: true,
107
+ awaitWriteFinish: {
108
+ stabilityThreshold: 500,
109
+ pollInterval: config.pollInterval,
110
+ },
111
+ });
112
+ // Set up event listeners
113
+ this.watcher
114
+ .on('add', (filePath) => this.handleEvent('added', filePath))
115
+ .on('change', (filePath) => this.handleEvent('changed', filePath))
116
+ .on('unlink', (filePath) => this.handleEvent('removed', filePath));
117
+ }
118
+ async handleEvent(type, filePath) {
119
+ // Check if matches patterns
120
+ if (!this.matchesPatterns(filePath)) {
121
+ return;
122
+ }
123
+ let size;
124
+ if (type !== 'removed') {
125
+ try {
126
+ const stats = await fs.stat(filePath);
127
+ size = stats.size;
128
+ }
129
+ catch {
130
+ // File might have been deleted between event and stat
131
+ }
132
+ }
133
+ this.pendingEvents.push({
134
+ type,
135
+ path: filePath,
136
+ timestamp: new Date().toISOString(),
137
+ size,
138
+ });
139
+ }
140
+ matchesPatterns(filePath) {
141
+ if (!this.config)
142
+ return false;
143
+ // Use micromatch for efficient and accurate glob pattern matching
144
+ return micromatch.isMatch(filePath, this.config.patterns);
145
+ }
146
+ async listen() {
147
+ const events = [...this.pendingEvents];
148
+ this.pendingEvents = [];
149
+ return events;
150
+ }
151
+ async execute(action) {
152
+ switch (action.type) {
153
+ case 'clear':
154
+ this.pendingEvents = [];
155
+ break;
156
+ case 'refresh':
157
+ // Force re-scan (optional enhancement)
158
+ break;
159
+ }
160
+ }
161
+ async updateConfig(updates) {
162
+ if (!this.config) {
163
+ throw new Error('Plugin not initialized');
164
+ }
165
+ const newConfig = { ...this.config, ...updates };
166
+ // Re-initialize with new config
167
+ await this.shutdown();
168
+ await this.initialize(newConfig);
169
+ return newConfig;
170
+ }
171
+ getConfig() {
172
+ if (!this.config) {
173
+ throw new Error('Plugin not initialized');
174
+ }
175
+ return { ...this.config };
176
+ }
177
+ async healthCheck() {
178
+ if (!this.watcher) {
179
+ return {
180
+ healthy: false,
181
+ message: 'Watcher not initialized',
182
+ };
183
+ }
184
+ // Check if watched paths still exist
185
+ const pathsExist = await Promise.all((this.config?.paths || []).map(async (p) => {
186
+ try {
187
+ await fs.access(p);
188
+ return true;
189
+ }
190
+ catch {
191
+ return false;
192
+ }
193
+ }));
194
+ const allPathsExist = pathsExist.every(exists => exists);
195
+ return {
196
+ healthy: allPathsExist,
197
+ message: allPathsExist ? 'All watched paths accessible' : 'Some watched paths missing',
198
+ metadata: {
199
+ watchedPaths: this.config?.paths,
200
+ pendingEvents: this.pendingEvents.length,
201
+ },
202
+ };
203
+ }
204
+ async shutdown() {
205
+ if (this.watcher) {
206
+ await this.watcher.close();
207
+ this.watcher = undefined;
208
+ }
209
+ this.pendingEvents = [];
210
+ }
211
+ }
212
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/implementations/file-watcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AAC5C,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,uBAAuB;AACvB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC3D,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACrF,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;QAC1C,oBAAoB;QACpB,YAAY;QACZ,YAAY;KACb,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CAC1E,CAAC,CAAC;AAIH,eAAe;AACf,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAIH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,eAAe,GAAG;IACtB,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,WAAW;IACX,MAAM;IACN,OAAO;IACP,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO;IAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO;IAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,UAAU;IAC7B,UAAU;IACV,SAAS;IACT,aAAa;IACb,YAAY;CACb,CAAC;AAEF;;;GAGG;AACH,SAAS,gBAAgB,CAAC,SAAiB;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEzC,+CAA+C;IAC/C,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;QACxC,IAAI,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,+CAA+C,SAAS,KAAK;gBAC7D,yDAAyD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CACb,wDAAwD,SAAS,KAAK;YACtE,+DAA+D,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IAKnB,IAAI,GAAG,cAAc,CAAC;IACtB,OAAO,GAAG,OAAO,CAAC;IAClB,WAAW,GAAG,+CAA+C,CAAC;IAC9D,YAAY,GAAG,uBAAuB,CAAC;IACvC,WAAW,GAAG,sBAAsB,CAAC;IACrC,YAAY,GAAG,uBAAuB,CAAC;IAExC,MAAM,CAAqB;IAC3B,OAAO,CAAa;IACpB,aAAa,GAAuB,EAAE,CAAC;IAE/C,KAAK,CAAC,UAAU,CAAC,MAAyB;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,6CAA6C;QAC7C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,wDAAwD;YACxD,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAE5B,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACjC,OAAO,EAAE,MAAM,CAAC,cAAc;YAC9B,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE;gBAChB,kBAAkB,EAAE,GAAG;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;SACF,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,CAAC,OAAO;aACT,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aAC5D,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;aACjE,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAqC,EAAE,QAAgB;QAC/E,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,IAAwB,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,IAAI;YACJ,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,QAAgB;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE/B,kEAAkE;QAClE,OAAO,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAyB;QACrC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,OAAO;gBACV,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,SAAS;gBACZ,uCAAuC;gBACvC,MAAM;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAmC;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAEjD,gCAAgC;QAChC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,yBAAyB;aACnC,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,4BAA4B;YACtF,QAAQ,EAAE;gBACR,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK;gBAChC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;aACzC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,201 @@
1
+ import { z } from 'zod';
2
+ import { Plugin, PluginHealthStatus } from '../../types.js';
3
+ export declare const GitHubConfigSchema: z.ZodObject<{
4
+ token: z.ZodString;
5
+ owner: z.ZodString;
6
+ repo: z.ZodString;
7
+ watchIssues: z.ZodDefault<z.ZodBoolean>;
8
+ watchPullRequests: z.ZodDefault<z.ZodBoolean>;
9
+ watchCommits: z.ZodDefault<z.ZodBoolean>;
10
+ pollIntervalMinutes: z.ZodDefault<z.ZodNumber>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ token: string;
13
+ owner: string;
14
+ repo: string;
15
+ watchIssues: boolean;
16
+ watchPullRequests: boolean;
17
+ watchCommits: boolean;
18
+ pollIntervalMinutes: number;
19
+ }, {
20
+ token: string;
21
+ owner: string;
22
+ repo: string;
23
+ watchIssues?: boolean | undefined;
24
+ watchPullRequests?: boolean | undefined;
25
+ watchCommits?: boolean | undefined;
26
+ pollIntervalMinutes?: number | undefined;
27
+ }>;
28
+ export type GitHubConfig = z.infer<typeof GitHubConfigSchema>;
29
+ export declare const GitHubEventSchema: z.ZodObject<{
30
+ type: z.ZodEnum<["issue", "pull_request", "commit", "comment"]>;
31
+ action: z.ZodEnum<["opened", "closed", "updated", "commented"]>;
32
+ number: z.ZodOptional<z.ZodNumber>;
33
+ sha: z.ZodOptional<z.ZodString>;
34
+ title: z.ZodOptional<z.ZodString>;
35
+ body: z.ZodOptional<z.ZodString>;
36
+ author: z.ZodString;
37
+ url: z.ZodString;
38
+ timestamp: z.ZodString;
39
+ }, "strip", z.ZodTypeAny, {
40
+ type: "issue" | "pull_request" | "commit" | "comment";
41
+ timestamp: string;
42
+ action: "opened" | "closed" | "updated" | "commented";
43
+ author: string;
44
+ url: string;
45
+ number?: number | undefined;
46
+ sha?: string | undefined;
47
+ title?: string | undefined;
48
+ body?: string | undefined;
49
+ }, {
50
+ type: "issue" | "pull_request" | "commit" | "comment";
51
+ timestamp: string;
52
+ action: "opened" | "closed" | "updated" | "commented";
53
+ author: string;
54
+ url: string;
55
+ number?: number | undefined;
56
+ sha?: string | undefined;
57
+ title?: string | undefined;
58
+ body?: string | undefined;
59
+ }>;
60
+ export type GitHubEvent = z.infer<typeof GitHubEventSchema>;
61
+ export declare const GitHubActionSchema: z.ZodObject<{
62
+ type: z.ZodEnum<["create-issue", "comment-issue", "close-issue", "create-pr", "comment-pr", "merge-pr", "add-label"]>;
63
+ issueNumber: z.ZodOptional<z.ZodNumber>;
64
+ prNumber: z.ZodOptional<z.ZodNumber>;
65
+ title: z.ZodOptional<z.ZodString>;
66
+ body: z.ZodOptional<z.ZodString>;
67
+ comment: z.ZodOptional<z.ZodString>;
68
+ labels: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
69
+ head: z.ZodOptional<z.ZodString>;
70
+ base: z.ZodOptional<z.ZodString>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ type: "create-issue" | "comment-issue" | "close-issue" | "create-pr" | "comment-pr" | "merge-pr" | "add-label";
73
+ comment?: string | undefined;
74
+ title?: string | undefined;
75
+ body?: string | undefined;
76
+ issueNumber?: number | undefined;
77
+ prNumber?: number | undefined;
78
+ labels?: string[] | undefined;
79
+ head?: string | undefined;
80
+ base?: string | undefined;
81
+ }, {
82
+ type: "create-issue" | "comment-issue" | "close-issue" | "create-pr" | "comment-pr" | "merge-pr" | "add-label";
83
+ comment?: string | undefined;
84
+ title?: string | undefined;
85
+ body?: string | undefined;
86
+ issueNumber?: number | undefined;
87
+ prNumber?: number | undefined;
88
+ labels?: string[] | undefined;
89
+ head?: string | undefined;
90
+ base?: string | undefined;
91
+ }>;
92
+ export type GitHubAction = z.infer<typeof GitHubActionSchema>;
93
+ /**
94
+ * GitHub Integration Plugin
95
+ *
96
+ * Enables navigators to monitor and interact with GitHub repositories.
97
+ * Supports issues, pull requests, commits, and comments.
98
+ */
99
+ export declare class GitHubPlugin implements Plugin<GitHubConfig, GitHubEvent, GitHubAction> {
100
+ readonly name = "github";
101
+ readonly version = "1.0.0";
102
+ readonly description = "Monitor and interact with GitHub repositories";
103
+ readonly configSchema: z.ZodObject<{
104
+ token: z.ZodString;
105
+ owner: z.ZodString;
106
+ repo: z.ZodString;
107
+ watchIssues: z.ZodDefault<z.ZodBoolean>;
108
+ watchPullRequests: z.ZodDefault<z.ZodBoolean>;
109
+ watchCommits: z.ZodDefault<z.ZodBoolean>;
110
+ pollIntervalMinutes: z.ZodDefault<z.ZodNumber>;
111
+ }, "strip", z.ZodTypeAny, {
112
+ token: string;
113
+ owner: string;
114
+ repo: string;
115
+ watchIssues: boolean;
116
+ watchPullRequests: boolean;
117
+ watchCommits: boolean;
118
+ pollIntervalMinutes: number;
119
+ }, {
120
+ token: string;
121
+ owner: string;
122
+ repo: string;
123
+ watchIssues?: boolean | undefined;
124
+ watchPullRequests?: boolean | undefined;
125
+ watchCommits?: boolean | undefined;
126
+ pollIntervalMinutes?: number | undefined;
127
+ }>;
128
+ readonly eventSchema: z.ZodObject<{
129
+ type: z.ZodEnum<["issue", "pull_request", "commit", "comment"]>;
130
+ action: z.ZodEnum<["opened", "closed", "updated", "commented"]>;
131
+ number: z.ZodOptional<z.ZodNumber>;
132
+ sha: z.ZodOptional<z.ZodString>;
133
+ title: z.ZodOptional<z.ZodString>;
134
+ body: z.ZodOptional<z.ZodString>;
135
+ author: z.ZodString;
136
+ url: z.ZodString;
137
+ timestamp: z.ZodString;
138
+ }, "strip", z.ZodTypeAny, {
139
+ type: "issue" | "pull_request" | "commit" | "comment";
140
+ timestamp: string;
141
+ action: "opened" | "closed" | "updated" | "commented";
142
+ author: string;
143
+ url: string;
144
+ number?: number | undefined;
145
+ sha?: string | undefined;
146
+ title?: string | undefined;
147
+ body?: string | undefined;
148
+ }, {
149
+ type: "issue" | "pull_request" | "commit" | "comment";
150
+ timestamp: string;
151
+ action: "opened" | "closed" | "updated" | "commented";
152
+ author: string;
153
+ url: string;
154
+ number?: number | undefined;
155
+ sha?: string | undefined;
156
+ title?: string | undefined;
157
+ body?: string | undefined;
158
+ }>;
159
+ readonly actionSchema: z.ZodObject<{
160
+ type: z.ZodEnum<["create-issue", "comment-issue", "close-issue", "create-pr", "comment-pr", "merge-pr", "add-label"]>;
161
+ issueNumber: z.ZodOptional<z.ZodNumber>;
162
+ prNumber: z.ZodOptional<z.ZodNumber>;
163
+ title: z.ZodOptional<z.ZodString>;
164
+ body: z.ZodOptional<z.ZodString>;
165
+ comment: z.ZodOptional<z.ZodString>;
166
+ labels: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
167
+ head: z.ZodOptional<z.ZodString>;
168
+ base: z.ZodOptional<z.ZodString>;
169
+ }, "strip", z.ZodTypeAny, {
170
+ type: "create-issue" | "comment-issue" | "close-issue" | "create-pr" | "comment-pr" | "merge-pr" | "add-label";
171
+ comment?: string | undefined;
172
+ title?: string | undefined;
173
+ body?: string | undefined;
174
+ issueNumber?: number | undefined;
175
+ prNumber?: number | undefined;
176
+ labels?: string[] | undefined;
177
+ head?: string | undefined;
178
+ base?: string | undefined;
179
+ }, {
180
+ type: "create-issue" | "comment-issue" | "close-issue" | "create-pr" | "comment-pr" | "merge-pr" | "add-label";
181
+ comment?: string | undefined;
182
+ title?: string | undefined;
183
+ body?: string | undefined;
184
+ issueNumber?: number | undefined;
185
+ prNumber?: number | undefined;
186
+ labels?: string[] | undefined;
187
+ head?: string | undefined;
188
+ base?: string | undefined;
189
+ }>;
190
+ private config?;
191
+ private octokit?;
192
+ private lastCheckTime;
193
+ initialize(config: GitHubConfig): Promise<void>;
194
+ listen(): Promise<GitHubEvent[]>;
195
+ execute(action: GitHubAction): Promise<unknown>;
196
+ updateConfig(updates: Partial<GitHubConfig>): Promise<GitHubConfig>;
197
+ getConfig(): GitHubConfig;
198
+ healthCheck(): Promise<PluginHealthStatus>;
199
+ shutdown(): Promise<void>;
200
+ }
201
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/implementations/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAK5D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC;IAClF,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,WAAW,mDAAmD;IACvE,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;OAAsB;IAC3C,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqB;IACzC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAsB;IAE3C,OAAO,CAAC,MAAM,CAAC,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,aAAa,CAAqB;IAEpC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB/C,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAuGhC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAsI/C,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBzE,SAAS,IAAI,YAAY;IAOnB,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAiC1C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAIhC"}