openpets 1.0.9 → 1.0.10

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 (46) hide show
  1. package/dist/data/api.json +6746 -4404
  2. package/dist/src/core/cli.js +1160 -36
  3. package/dist/src/core/cli.js.map +1 -1
  4. package/dist/src/core/discovery.d.ts +130 -0
  5. package/dist/src/core/discovery.d.ts.map +1 -0
  6. package/dist/src/core/discovery.js +327 -0
  7. package/dist/src/core/discovery.js.map +1 -0
  8. package/dist/src/core/index.d.ts +5 -5
  9. package/dist/src/core/index.d.ts.map +1 -1
  10. package/dist/src/core/index.js +7 -5
  11. package/dist/src/core/index.js.map +1 -1
  12. package/dist/src/core/mautrix-bridge.d.ts +17 -0
  13. package/dist/src/core/mautrix-bridge.d.ts.map +1 -1
  14. package/dist/src/core/mautrix-bridge.js +257 -0
  15. package/dist/src/core/mautrix-bridge.js.map +1 -1
  16. package/dist/src/core/pet-config.d.ts +611 -0
  17. package/dist/src/core/pet-config.d.ts.map +1 -0
  18. package/dist/src/core/pet-config.js +281 -0
  19. package/dist/src/core/pet-config.js.map +1 -0
  20. package/dist/src/core/pet-downloader.d.ts +50 -0
  21. package/dist/src/core/pet-downloader.d.ts.map +1 -0
  22. package/dist/src/core/pet-downloader.js +298 -0
  23. package/dist/src/core/pet-downloader.js.map +1 -0
  24. package/dist/src/core/pet-scanner.d.ts +14 -0
  25. package/dist/src/core/pet-scanner.d.ts.map +1 -0
  26. package/dist/src/core/pet-scanner.js +87 -0
  27. package/dist/src/core/pet-scanner.js.map +1 -0
  28. package/dist/src/core/registry-client.d.ts +97 -0
  29. package/dist/src/core/registry-client.d.ts.map +1 -0
  30. package/dist/src/core/registry-client.js +283 -0
  31. package/dist/src/core/registry-client.js.map +1 -0
  32. package/dist/src/core/search-pets.d.ts.map +1 -1
  33. package/dist/src/core/search-pets.js +31 -1
  34. package/dist/src/core/search-pets.js.map +1 -1
  35. package/dist/src/core/validate-pet.d.ts.map +1 -1
  36. package/dist/src/core/validate-pet.js +17 -19
  37. package/dist/src/core/validate-pet.js.map +1 -1
  38. package/dist/src/sdk/logger.d.ts +32 -0
  39. package/dist/src/sdk/logger.d.ts.map +1 -0
  40. package/dist/src/sdk/logger.js +119 -0
  41. package/dist/src/sdk/logger.js.map +1 -0
  42. package/dist/src/sdk/plugin-factory.d.ts +104 -0
  43. package/dist/src/sdk/plugin-factory.d.ts.map +1 -0
  44. package/dist/src/sdk/plugin-factory.js +540 -0
  45. package/dist/src/sdk/plugin-factory.js.map +1 -0
  46. package/package.json +2 -2
@@ -0,0 +1,540 @@
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import { readFileSync, existsSync } from "fs";
3
+ import { resolve, dirname, join } from "path";
4
+ import { createLogger } from "./logger";
5
+ import { config } from "dotenv";
6
+ import * as zodRuntime from "zod";
7
+ /**
8
+ * Find the git root directory by walking up from the current directory
9
+ * Returns the directory containing .git, or null if not found
10
+ */
11
+ function findGitRoot(startDir) {
12
+ let currentDir = resolve(startDir);
13
+ const root = resolve("/");
14
+ while (currentDir !== root) {
15
+ const gitPath = join(currentDir, ".git");
16
+ if (existsSync(gitPath)) {
17
+ return currentDir;
18
+ }
19
+ const parentDir = dirname(currentDir);
20
+ if (parentDir === currentDir)
21
+ break;
22
+ currentDir = parentDir;
23
+ }
24
+ return null;
25
+ }
26
+ // ============================================================================
27
+ // CRITICAL: SCHEMA FORMAT REQUIREMENTS
28
+ // ============================================================================
29
+ //
30
+ // 1. ALWAYS use tool.schema for the Zod instance (not direct "zod" import)
31
+ // This ensures the same Zod version as OpenCode
32
+ //
33
+ // 2. SIMPLE TYPES ONLY - Do NOT use nested schemas
34
+ // ✅ ALLOWED:
35
+ // - z.string()
36
+ // - z.number()
37
+ // - z.boolean()
38
+ // - z.array(z.string())
39
+ // - z.array(z.number())
40
+ // - z.object({ field: z.string() })
41
+ //
42
+ // ❌ NOT ALLOWED (will cause runtime errors):
43
+ // - z.array(z.object({...})) // Nested object in array
44
+ // - z.object({ nested: z.object({...}) }) // Nested object in object
45
+ // - z.record(z.string()) // Record with any nested type
46
+ // - z.union([z.object({...}), ...]) // Union with nested types
47
+ //
48
+ // 3. WORKAROUND for complex data structures:
49
+ // Use z.string() with JSON serialization
50
+ // Example:
51
+ // schema: z.object({
52
+ // dataJson: z.string().describe("JSON string of data array")
53
+ // }),
54
+ // execute(args) {
55
+ // const data = JSON.parse(args.dataJson)
56
+ // // ... process data
57
+ // }
58
+ //
59
+ // ============================================================================
60
+ export { tool };
61
+ export { zodRuntime as z };
62
+ const logger = createLogger("plugin-factory");
63
+ export function createPlugin(tools) {
64
+ const toolRecord = {};
65
+ for (const toolDef of tools) {
66
+ const schema = toolDef.schema;
67
+ toolRecord[toolDef.name] = tool({
68
+ description: toolDef.description,
69
+ args: schema.shape || schema,
70
+ execute: toolDef.execute
71
+ });
72
+ }
73
+ return { tool: toolRecord };
74
+ }
75
+ export function createSingleTool(definition) {
76
+ const schema = definition.schema;
77
+ return tool({
78
+ description: definition.description,
79
+ args: schema.shape || schema,
80
+ execute: definition.execute
81
+ });
82
+ }
83
+ function loadProviderSpec(providerPath, pluginDir) {
84
+ try {
85
+ let packagePath;
86
+ if (providerPath.startsWith('openpets/')) {
87
+ const petName = providerPath.replace('openpets/', '');
88
+ packagePath = resolve(pluginDir, `../${petName}/package.json`);
89
+ }
90
+ else if (providerPath.startsWith('@/utils/')) {
91
+ const normalizedPath = providerPath.replace('@/utils/', '');
92
+ packagePath = resolve(pluginDir, `../../src/utils/${normalizedPath}/package.json`);
93
+ }
94
+ else {
95
+ logger.debug(`Unknown provider path format: ${providerPath}`);
96
+ return null;
97
+ }
98
+ const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
99
+ if (packageJson.provider) {
100
+ return packageJson.provider;
101
+ }
102
+ if (packageJson.envVariables?.required) {
103
+ return {
104
+ name: packageJson.name || providerPath,
105
+ displayName: packageJson.description?.split('-')[0]?.trim() || providerPath,
106
+ envVars: {
107
+ required: packageJson.envVariables.required.map((env) => ({
108
+ name: env.name,
109
+ description: env.description,
110
+ example: env.example
111
+ }))
112
+ },
113
+ capabilities: packageJson.keywords?.filter((k) => k !== 'opencode' && k !== 'plugin') || []
114
+ };
115
+ }
116
+ return null;
117
+ }
118
+ catch (error) {
119
+ logger.debug(`Could not load provider spec for ${providerPath}: ${error.message}`);
120
+ return null;
121
+ }
122
+ }
123
+ function validateProvider(providerPath, pluginDir) {
124
+ const spec = loadProviderSpec(providerPath, pluginDir);
125
+ if (!spec) {
126
+ return {
127
+ provider: providerPath,
128
+ configured: false,
129
+ missingVars: [],
130
+ spec: undefined
131
+ };
132
+ }
133
+ const missingVars = [];
134
+ for (const envVar of spec.envVars.required) {
135
+ if (!process.env[envVar.name]) {
136
+ missingVars.push(envVar.name);
137
+ }
138
+ }
139
+ return {
140
+ provider: providerPath,
141
+ configured: missingVars.length === 0,
142
+ missingVars,
143
+ spec
144
+ };
145
+ }
146
+ export function validateProviders(packageJson, pluginDir) {
147
+ const errors = [];
148
+ const requiredResults = [];
149
+ const optionalResults = [];
150
+ if (!packageJson.providers) {
151
+ return { hasRequiredProvider: true, requiredResults, optionalResults, errors };
152
+ }
153
+ const anyProviders = packageJson.providers.any || [];
154
+ const requiredProviders = packageJson.providers.required || [];
155
+ const optionalProviders = packageJson.providers.optional || [];
156
+ const allProviders = [...anyProviders, ...requiredProviders];
157
+ for (const providerPath of allProviders) {
158
+ const result = validateProvider(providerPath, pluginDir);
159
+ requiredResults.push(result);
160
+ }
161
+ for (const providerPath of optionalProviders) {
162
+ const result = validateProvider(providerPath, pluginDir);
163
+ optionalResults.push(result);
164
+ }
165
+ const hasRequiredProvider = requiredResults.length === 0 || requiredResults.some(r => r.configured);
166
+ if (!hasRequiredProvider && requiredResults.length > 0) {
167
+ const providerNames = requiredResults
168
+ .map(r => r.spec?.displayName || r.provider)
169
+ .join(', ');
170
+ errors.push(`At least one provider must be configured. Available providers: ${providerNames}`);
171
+ errors.push(`\nConfigure any one of the following:\n`);
172
+ for (const result of requiredResults) {
173
+ if (result.spec) {
174
+ errors.push(`${result.spec.displayName}:`);
175
+ for (const envVar of result.spec.envVars.required) {
176
+ errors.push(` - ${envVar.name}: ${envVar.description}`);
177
+ if (envVar.example) {
178
+ errors.push(` Example: ${envVar.example}`);
179
+ }
180
+ }
181
+ errors.push('');
182
+ }
183
+ }
184
+ }
185
+ return { hasRequiredProvider, requiredResults, optionalResults, errors };
186
+ }
187
+ export function loadEnv(petId) {
188
+ const envVars = {};
189
+ try {
190
+ const cwd = resolve(process.cwd());
191
+ const gitRoot = findGitRoot(cwd);
192
+ // Determine paths to check - prioritize cwd, fall back to git root
193
+ const cwdDotenvPath = resolve(cwd, '.env');
194
+ const cwdPetsConfigPath = resolve(cwd, '.pets', 'config.json');
195
+ const gitRootDotenvPath = gitRoot ? resolve(gitRoot, '.env') : null;
196
+ const gitRootPetsConfigPath = gitRoot ? resolve(gitRoot, '.pets', 'config.json') : null;
197
+ logger.debug(`Loading env vars for pet: ${petId || 'global'}`, {
198
+ cwd,
199
+ gitRoot,
200
+ cwdDotenvExists: existsSync(cwdDotenvPath),
201
+ gitRootDotenvExists: gitRootDotenvPath ? existsSync(gitRootDotenvPath) : false
202
+ });
203
+ // Load from .pets/config.json - check git root first, then cwd (cwd takes precedence)
204
+ const petsConfigPaths = [gitRootPetsConfigPath, cwdPetsConfigPath].filter(Boolean);
205
+ for (const petsConfigPath of petsConfigPaths) {
206
+ if (petId && existsSync(petsConfigPath)) {
207
+ try {
208
+ const petsConfig = JSON.parse(readFileSync(petsConfigPath, 'utf-8'));
209
+ const petEnvConfig = petsConfig.envConfig?.[petId] || {};
210
+ for (const [key, value] of Object.entries(petEnvConfig)) {
211
+ if (typeof value === 'string' && value.length > 0) {
212
+ envVars[key] = value;
213
+ logger.debug(`Loaded from ${petsConfigPath}: ${key}`);
214
+ }
215
+ }
216
+ }
217
+ catch (error) {
218
+ logger.debug(`Failed to load pet config from ${petsConfigPath}: ${error.message}`);
219
+ }
220
+ }
221
+ }
222
+ // Load from .env files - check git root first, then cwd (cwd takes precedence)
223
+ const dotenvPaths = [gitRootDotenvPath, cwdDotenvPath].filter(Boolean);
224
+ for (const dotenvPath of dotenvPaths) {
225
+ if (existsSync(dotenvPath)) {
226
+ const dotenvResult = config({ path: dotenvPath });
227
+ if (dotenvResult.parsed) {
228
+ for (const [key, value] of Object.entries(dotenvResult.parsed)) {
229
+ if (value && value.length > 0) {
230
+ envVars[key] = value;
231
+ logger.debug(`Loaded from ${dotenvPath}: ${key}`);
232
+ }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ logger.info(`Loaded ${Object.keys(envVars).length} environment variables from project config`);
238
+ }
239
+ catch (error) {
240
+ logger.error(`Error loading environment variables: ${error.message}`);
241
+ }
242
+ return envVars;
243
+ }
244
+ export function getEnv(key, petId) {
245
+ const envVars = loadEnv(petId);
246
+ return envVars[key];
247
+ }
248
+ /**
249
+ * Set environment variables for a pet in .pets/config.json
250
+ * This is the proper way to persist pet-specific configuration
251
+ *
252
+ * @param petId - The pet identifier (e.g., "maps", "github")
253
+ * @param envVars - Key-value pairs to set
254
+ * @param projectDir - Optional project directory (defaults to cwd)
255
+ */
256
+ export function setEnv(petId, envVars, projectDir) {
257
+ const { writeFileSync, existsSync, mkdirSync } = require("fs");
258
+ try {
259
+ const projectRoot = projectDir || resolve(process.cwd());
260
+ const petsDir = resolve(projectRoot, ".pets");
261
+ const petsConfigPath = resolve(petsDir, "config.json");
262
+ // Ensure .pets directory exists
263
+ if (!existsSync(petsDir)) {
264
+ mkdirSync(petsDir, { recursive: true });
265
+ logger.debug(`Created .pets directory at ${petsDir}`);
266
+ }
267
+ // Load existing config or create new one
268
+ let petsConfig = {
269
+ enabled: [],
270
+ disabled: [],
271
+ envConfig: {},
272
+ };
273
+ if (existsSync(petsConfigPath)) {
274
+ try {
275
+ const existing = JSON.parse(readFileSync(petsConfigPath, "utf-8"));
276
+ petsConfig = {
277
+ enabled: existing.enabled || [],
278
+ disabled: existing.disabled || [],
279
+ envConfig: existing.envConfig || {},
280
+ ...existing
281
+ };
282
+ }
283
+ catch (error) {
284
+ logger.warn(`Could not parse existing .pets/config.json: ${error.message}`);
285
+ }
286
+ }
287
+ // Ensure envConfig structure exists
288
+ if (!petsConfig.envConfig) {
289
+ petsConfig.envConfig = {};
290
+ }
291
+ // Create or update pet-specific env config
292
+ if (!petsConfig.envConfig[petId]) {
293
+ petsConfig.envConfig[petId] = {};
294
+ }
295
+ // Set the environment variables
296
+ for (const [key, value] of Object.entries(envVars)) {
297
+ if (value && value.trim()) {
298
+ petsConfig.envConfig[petId][key] = value.trim();
299
+ logger.debug(`Set ${key} for pet ${petId}`);
300
+ }
301
+ }
302
+ // Update timestamp
303
+ petsConfig.last_updated = new Date().toISOString();
304
+ // Write config
305
+ writeFileSync(petsConfigPath, JSON.stringify(petsConfig, null, 2));
306
+ logger.info(`Saved environment variables for ${petId} to .pets/config.json`);
307
+ return { success: true, message: `Configuration saved for ${petId}` };
308
+ }
309
+ catch (error) {
310
+ logger.error(`Failed to save environment variables: ${error.message}`);
311
+ return { success: false, message: `Failed to save: ${error.message}` };
312
+ }
313
+ }
314
+ /**
315
+ * Get the current .pets/config.json configuration
316
+ */
317
+ export function getPetsConfig(projectDir) {
318
+ try {
319
+ const projectRoot = projectDir || resolve(process.cwd());
320
+ const petsConfigPath = resolve(projectRoot, ".pets", "config.json");
321
+ if (!existsSync(petsConfigPath)) {
322
+ return null;
323
+ }
324
+ return JSON.parse(readFileSync(petsConfigPath, "utf-8"));
325
+ }
326
+ catch (error) {
327
+ logger.error(`Failed to read .pets/config.json: ${error.message}`);
328
+ return null;
329
+ }
330
+ }
331
+ /**
332
+ * Clear environment variables for a pet from .pets/config.json
333
+ */
334
+ export function clearEnv(petId, keys, projectDir) {
335
+ const { writeFileSync, existsSync } = require("fs");
336
+ try {
337
+ const projectRoot = projectDir || resolve(process.cwd());
338
+ const petsConfigPath = resolve(projectRoot, ".pets", "config.json");
339
+ if (!existsSync(petsConfigPath)) {
340
+ return { success: true, message: "No configuration to clear" };
341
+ }
342
+ const petsConfig = JSON.parse(readFileSync(petsConfigPath, "utf-8"));
343
+ if (!petsConfig.envConfig || !petsConfig.envConfig[petId]) {
344
+ return { success: true, message: "No configuration to clear for this pet" };
345
+ }
346
+ if (keys && keys.length > 0) {
347
+ // Clear specific keys
348
+ for (const key of keys) {
349
+ delete petsConfig.envConfig[petId][key];
350
+ }
351
+ }
352
+ else {
353
+ // Clear all keys for this pet
354
+ delete petsConfig.envConfig[petId];
355
+ }
356
+ petsConfig.last_updated = new Date().toISOString();
357
+ writeFileSync(petsConfigPath, JSON.stringify(petsConfig, null, 2));
358
+ return { success: true, message: `Cleared configuration for ${petId}` };
359
+ }
360
+ catch (error) {
361
+ logger.error(`Failed to clear environment variables: ${error.message}`);
362
+ return { success: false, message: `Failed to clear: ${error.message}` };
363
+ }
364
+ }
365
+ /**
366
+ * Sync environment variables from .env file into .pets/config.json
367
+ * This ensures .pets/config.json is the single source of truth at runtime.
368
+ *
369
+ * - .env values take precedence and override .pets/config.json values
370
+ * - Only syncs to pets that are currently configured (in opencode.json)
371
+ * - Also ensures .pets/ is added to .gitignore
372
+ *
373
+ * @param projectDir - Optional project directory (defaults to cwd)
374
+ */
375
+ export function syncEnvToConfig(projectDir) {
376
+ const { writeFileSync, existsSync, mkdirSync, appendFileSync } = require("fs");
377
+ try {
378
+ const projectRoot = projectDir || resolve(process.cwd());
379
+ const dotenvPath = resolve(projectRoot, '.env');
380
+ const petsDir = resolve(projectRoot, ".pets");
381
+ const petsConfigPath = resolve(petsDir, "config.json");
382
+ const gitignorePath = resolve(projectRoot, ".gitignore");
383
+ const opencodeJsonPath = resolve(projectRoot, "opencode.json");
384
+ logger.info(`Syncing .env to .pets/config.json in ${projectRoot}`);
385
+ // Ensure .pets directory exists
386
+ if (!existsSync(petsDir)) {
387
+ mkdirSync(petsDir, { recursive: true });
388
+ logger.debug(`Created .pets directory at ${petsDir}`);
389
+ }
390
+ // Ensure .pets/ is in .gitignore
391
+ ensurePetsInGitignore(gitignorePath);
392
+ // Load existing pets config or create new one
393
+ let petsConfig = {
394
+ enabled: [],
395
+ disabled: [],
396
+ envConfig: {},
397
+ };
398
+ if (existsSync(petsConfigPath)) {
399
+ try {
400
+ const existing = JSON.parse(readFileSync(petsConfigPath, "utf-8"));
401
+ petsConfig = {
402
+ enabled: existing.enabled || [],
403
+ disabled: existing.disabled || [],
404
+ envConfig: existing.envConfig || {},
405
+ ...existing
406
+ };
407
+ }
408
+ catch (error) {
409
+ logger.warn(`Could not parse existing .pets/config.json: ${error.message}`);
410
+ }
411
+ }
412
+ if (!petsConfig.envConfig) {
413
+ petsConfig.envConfig = {};
414
+ }
415
+ // Get list of configured pets from opencode.json
416
+ const configuredPets = [];
417
+ if (existsSync(opencodeJsonPath)) {
418
+ try {
419
+ const opencodeConfig = JSON.parse(readFileSync(opencodeJsonPath, "utf-8"));
420
+ const plugins = opencodeConfig.plugin || [];
421
+ for (const plugin of plugins) {
422
+ // Extract pet ID from various formats
423
+ const petId = plugin
424
+ .replace(/^@openpets\//, '')
425
+ .replace(/^openpets\//, '')
426
+ .replace(/^\.\/pets\//, '')
427
+ .replace(/\/index\.ts$/, '')
428
+ .replace(/\/index\.js$/, '');
429
+ if (petId) {
430
+ configuredPets.push(petId);
431
+ }
432
+ }
433
+ }
434
+ catch (error) {
435
+ logger.warn(`Could not read opencode.json: ${error.message}`);
436
+ }
437
+ }
438
+ // Also include pets from .pets/config.json enabled list
439
+ for (const pet of petsConfig.enabled || []) {
440
+ if (!configuredPets.includes(pet)) {
441
+ configuredPets.push(pet);
442
+ }
443
+ }
444
+ // If no .env file, nothing to sync
445
+ if (!existsSync(dotenvPath)) {
446
+ logger.debug("No .env file found, nothing to sync");
447
+ return { success: true, message: "No .env file found", synced: 0, pets: [] };
448
+ }
449
+ // Parse .env file
450
+ const dotenvResult = config({ path: dotenvPath });
451
+ if (!dotenvResult.parsed || Object.keys(dotenvResult.parsed).length === 0) {
452
+ logger.debug("No variables found in .env file");
453
+ return { success: true, message: "No variables in .env file", synced: 0, pets: [] };
454
+ }
455
+ const envVars = dotenvResult.parsed;
456
+ let syncedCount = 0;
457
+ const syncedPets = [];
458
+ // Create a "global" env config that applies to all pets
459
+ if (!petsConfig.envConfig["_global"]) {
460
+ petsConfig.envConfig["_global"] = {};
461
+ }
462
+ // Sync all .env variables to the global config
463
+ for (const [key, value] of Object.entries(envVars)) {
464
+ if (value && value.length > 0) {
465
+ petsConfig.envConfig["_global"][key] = value;
466
+ syncedCount++;
467
+ logger.debug(`Synced global: ${key}`);
468
+ }
469
+ }
470
+ // Also sync to each configured pet's specific config
471
+ for (const petId of configuredPets) {
472
+ if (!petsConfig.envConfig[petId]) {
473
+ petsConfig.envConfig[petId] = {};
474
+ }
475
+ // Merge global config into pet-specific config
476
+ // Pet-specific values (if any) take precedence over global
477
+ const globalConfig = petsConfig.envConfig["_global"] || {};
478
+ const petConfig = petsConfig.envConfig[petId] || {};
479
+ petsConfig.envConfig[petId] = {
480
+ ...globalConfig,
481
+ ...petConfig,
482
+ // .env values override everything
483
+ ...envVars
484
+ };
485
+ syncedPets.push(petId);
486
+ }
487
+ // Update timestamp
488
+ petsConfig.last_updated = new Date().toISOString();
489
+ // Write config
490
+ writeFileSync(petsConfigPath, JSON.stringify(petsConfig, null, 2));
491
+ logger.info(`Synced ${syncedCount} env vars to .pets/config.json for ${syncedPets.length} pets`);
492
+ return {
493
+ success: true,
494
+ message: `Synced ${syncedCount} env vars for ${syncedPets.length} pets`,
495
+ synced: syncedCount,
496
+ pets: syncedPets
497
+ };
498
+ }
499
+ catch (error) {
500
+ logger.error(`Failed to sync env to config: ${error.message}`);
501
+ return { success: false, message: `Failed to sync: ${error.message}`, synced: 0, pets: [] };
502
+ }
503
+ }
504
+ /**
505
+ * Ensure .pets/ is in .gitignore
506
+ */
507
+ function ensurePetsInGitignore(gitignorePath) {
508
+ const { writeFileSync, existsSync, appendFileSync } = require("fs");
509
+ const petsIgnorePattern = ".pets/";
510
+ try {
511
+ if (!existsSync(gitignorePath)) {
512
+ // Create .gitignore with .pets/
513
+ writeFileSync(gitignorePath, `# OpenPets configuration (contains sensitive env vars)\n${petsIgnorePattern}\n`);
514
+ logger.info("Created .gitignore with .pets/ entry");
515
+ return;
516
+ }
517
+ // Check if .pets/ is already in .gitignore
518
+ const content = readFileSync(gitignorePath, "utf-8");
519
+ const lines = content.split('\n');
520
+ // Check for various patterns that would ignore .pets
521
+ const petsPatterns = ['.pets/', '.pets', '/.pets/', '/.pets', '**/.pets/', '**/.pets'];
522
+ const isIgnored = lines.some(line => {
523
+ const trimmed = line.trim();
524
+ return petsPatterns.includes(trimmed) || trimmed === '.pets' || trimmed === '.pets/';
525
+ });
526
+ if (!isIgnored) {
527
+ // Append .pets/ to .gitignore
528
+ const newContent = content.endsWith('\n') ? content : content + '\n';
529
+ writeFileSync(gitignorePath, newContent + `\n# OpenPets configuration (contains sensitive env vars)\n${petsIgnorePattern}\n`);
530
+ logger.info("Added .pets/ to .gitignore");
531
+ }
532
+ else {
533
+ logger.debug(".pets/ already in .gitignore");
534
+ }
535
+ }
536
+ catch (error) {
537
+ logger.warn(`Could not update .gitignore: ${error.message}`);
538
+ }
539
+ }
540
+ //# sourceMappingURL=plugin-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-factory.js","sourceRoot":"","sources":["../../../../sdk/plugin-factory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openpets",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "type": "module",
5
5
  "description": "CLI and runtime for OpenPets - AI plugin infrastructure",
6
6
  "main": "./dist/src/core/index.js",
@@ -39,4 +39,4 @@
39
39
  "peerDependencies": {
40
40
  "@opencode-ai/plugin": "^1.0.106"
41
41
  }
42
- }
42
+ }