openpets 1.0.11 → 1.0.12

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 (72) hide show
  1. package/dist/data/api.json +3758 -7222
  2. package/dist/src/core/build-pet.d.ts.map +1 -1
  3. package/dist/src/core/build-pet.js +7 -0
  4. package/dist/src/core/build-pet.js.map +1 -1
  5. package/dist/src/core/cli.js +456 -130
  6. package/dist/src/core/cli.js.map +1 -1
  7. package/dist/src/core/ensure-npmignore.d.ts +30 -0
  8. package/dist/src/core/ensure-npmignore.d.ts.map +1 -0
  9. package/dist/src/core/ensure-npmignore.js +121 -0
  10. package/dist/src/core/ensure-npmignore.js.map +1 -0
  11. package/dist/src/core/index.d.ts +6 -3
  12. package/dist/src/core/index.d.ts.map +1 -1
  13. package/dist/src/core/index.js +9 -3
  14. package/dist/src/core/index.js.map +1 -1
  15. package/dist/src/core/mcp-generator.d.ts +56 -0
  16. package/dist/src/core/mcp-generator.d.ts.map +1 -0
  17. package/dist/src/core/mcp-generator.js +1438 -0
  18. package/dist/src/core/mcp-generator.js.map +1 -0
  19. package/dist/src/core/mcp-server.js +0 -0
  20. package/dist/src/core/openapi-generator.d.ts +59 -0
  21. package/dist/src/core/openapi-generator.d.ts.map +1 -0
  22. package/dist/src/core/openapi-generator.js +800 -0
  23. package/dist/src/core/openapi-generator.js.map +1 -0
  24. package/dist/src/core/pet-config.d.ts +107 -49
  25. package/dist/src/core/pet-config.d.ts.map +1 -1
  26. package/dist/src/core/pet-config.js +6 -4
  27. package/dist/src/core/pet-config.js.map +1 -1
  28. package/dist/src/core/pet-downloader.d.ts +16 -0
  29. package/dist/src/core/pet-downloader.d.ts.map +1 -1
  30. package/dist/src/core/pet-downloader.js +145 -3
  31. package/dist/src/core/pet-downloader.js.map +1 -1
  32. package/dist/src/core/publish-pet.d.ts +29 -0
  33. package/dist/src/core/publish-pet.d.ts.map +1 -0
  34. package/dist/src/core/publish-pet.js +372 -0
  35. package/dist/src/core/publish-pet.js.map +1 -0
  36. package/dist/src/core/sdk-generator.d.ts +92 -0
  37. package/dist/src/core/sdk-generator.d.ts.map +1 -0
  38. package/dist/src/core/sdk-generator.js +567 -0
  39. package/dist/src/core/sdk-generator.js.map +1 -0
  40. package/dist/src/core/search-pets.d.ts +5 -0
  41. package/dist/src/core/search-pets.d.ts.map +1 -1
  42. package/dist/src/core/search-pets.js +43 -0
  43. package/dist/src/core/search-pets.js.map +1 -1
  44. package/dist/src/core/security-scanner.d.ts +49 -0
  45. package/dist/src/core/security-scanner.d.ts.map +1 -0
  46. package/dist/src/core/security-scanner.js +255 -0
  47. package/dist/src/core/security-scanner.js.map +1 -0
  48. package/dist/src/core/tool-lister.d.ts +61 -0
  49. package/dist/src/core/tool-lister.d.ts.map +1 -0
  50. package/dist/src/core/tool-lister.js +333 -0
  51. package/dist/src/core/tool-lister.js.map +1 -0
  52. package/dist/src/core/validate-pet.d.ts +2 -0
  53. package/dist/src/core/validate-pet.d.ts.map +1 -1
  54. package/dist/src/core/validate-pet.js +93 -1
  55. package/dist/src/core/validate-pet.js.map +1 -1
  56. package/dist/src/sdk/plugin-factory.d.ts +86 -0
  57. package/dist/src/sdk/plugin-factory.d.ts.map +1 -1
  58. package/dist/src/sdk/plugin-factory.js +450 -53
  59. package/dist/src/sdk/plugin-factory.js.map +1 -1
  60. package/dist/src/sdk/prompts-manager.d.ts +6 -0
  61. package/dist/src/sdk/prompts-manager.d.ts.map +1 -0
  62. package/dist/src/sdk/prompts-manager.js +162 -0
  63. package/dist/src/sdk/prompts-manager.js.map +1 -0
  64. package/package.json +1 -1
  65. package/dist/src/core/local-cache.d.ts +0 -69
  66. package/dist/src/core/local-cache.d.ts.map +0 -1
  67. package/dist/src/core/local-cache.js +0 -212
  68. package/dist/src/core/local-cache.js.map +0 -1
  69. package/dist/src/core/plugin-factory.d.ts +0 -58
  70. package/dist/src/core/plugin-factory.d.ts.map +0 -1
  71. package/dist/src/core/plugin-factory.js +0 -212
  72. package/dist/src/core/plugin-factory.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-factory.d.ts","sourceRoot":"","sources":["../../../plugin-factory.ts"],"names":[],"mappings":"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"}
@@ -1,212 +0,0 @@
1
- import { tool } from "@opencode-ai/plugin";
2
- import { readFileSync, existsSync } from "fs";
3
- import { resolve } from "path";
4
- import { createLogger } from "./logger";
5
- import { config } from "dotenv";
6
- import * as zodRuntime from "zod";
7
- // ============================================================================
8
- // CRITICAL: SCHEMA FORMAT REQUIREMENTS
9
- // ============================================================================
10
- //
11
- // 1. ALWAYS use tool.schema for the Zod instance (not direct "zod" import)
12
- // This ensures the same Zod version as OpenCode
13
- //
14
- // 2. SIMPLE TYPES ONLY - Do NOT use nested schemas
15
- // ✅ ALLOWED:
16
- // - z.string()
17
- // - z.number()
18
- // - z.boolean()
19
- // - z.array(z.string())
20
- // - z.array(z.number())
21
- // - z.object({ field: z.string() })
22
- //
23
- // ❌ NOT ALLOWED (will cause runtime errors):
24
- // - z.array(z.object({...})) // Nested object in array
25
- // - z.object({ nested: z.object({...}) }) // Nested object in object
26
- // - z.record(z.string()) // Record with any nested type
27
- // - z.union([z.object({...}), ...]) // Union with nested types
28
- //
29
- // 3. WORKAROUND for complex data structures:
30
- // Use z.string() with JSON serialization
31
- // Example:
32
- // schema: z.object({
33
- // dataJson: z.string().describe("JSON string of data array")
34
- // }),
35
- // execute(args) {
36
- // const data = JSON.parse(args.dataJson)
37
- // // ... process data
38
- // }
39
- //
40
- // ============================================================================
41
- export { tool };
42
- export { zodRuntime as z };
43
- const logger = createLogger("plugin-factory");
44
- export function createPlugin(tools) {
45
- const toolRecord = {};
46
- for (const toolDef of tools) {
47
- const schema = toolDef.schema;
48
- toolRecord[toolDef.name] = tool({
49
- description: toolDef.description,
50
- args: schema.shape || schema,
51
- execute: toolDef.execute
52
- });
53
- }
54
- return { tool: toolRecord };
55
- }
56
- export function createSingleTool(definition) {
57
- const schema = definition.schema;
58
- return tool({
59
- description: definition.description,
60
- args: schema.shape || schema,
61
- execute: definition.execute
62
- });
63
- }
64
- function loadProviderSpec(providerPath, pluginDir) {
65
- try {
66
- let packagePath;
67
- if (providerPath.startsWith('openpets/')) {
68
- const petName = providerPath.replace('openpets/', '');
69
- packagePath = resolve(pluginDir, `../${petName}/package.json`);
70
- }
71
- else if (providerPath.startsWith('@/utils/')) {
72
- const normalizedPath = providerPath.replace('@/utils/', '');
73
- packagePath = resolve(pluginDir, `../../src/utils/${normalizedPath}/package.json`);
74
- }
75
- else {
76
- logger.debug(`Unknown provider path format: ${providerPath}`);
77
- return null;
78
- }
79
- const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
80
- if (packageJson.provider) {
81
- return packageJson.provider;
82
- }
83
- if (packageJson.envVariables?.required) {
84
- return {
85
- name: packageJson.name || providerPath,
86
- displayName: packageJson.description?.split('-')[0]?.trim() || providerPath,
87
- envVars: {
88
- required: packageJson.envVariables.required.map((env) => ({
89
- name: env.name,
90
- description: env.description,
91
- example: env.example
92
- }))
93
- },
94
- capabilities: packageJson.keywords?.filter((k) => k !== 'opencode' && k !== 'plugin') || []
95
- };
96
- }
97
- return null;
98
- }
99
- catch (error) {
100
- logger.debug(`Could not load provider spec for ${providerPath}: ${error.message}`);
101
- return null;
102
- }
103
- }
104
- function validateProvider(providerPath, pluginDir) {
105
- const spec = loadProviderSpec(providerPath, pluginDir);
106
- if (!spec) {
107
- return {
108
- provider: providerPath,
109
- configured: false,
110
- missingVars: [],
111
- spec: undefined
112
- };
113
- }
114
- const missingVars = [];
115
- for (const envVar of spec.envVars.required) {
116
- if (!process.env[envVar.name]) {
117
- missingVars.push(envVar.name);
118
- }
119
- }
120
- return {
121
- provider: providerPath,
122
- configured: missingVars.length === 0,
123
- missingVars,
124
- spec
125
- };
126
- }
127
- export function validateProviders(packageJson, pluginDir) {
128
- const errors = [];
129
- const requiredResults = [];
130
- const optionalResults = [];
131
- if (!packageJson.providers) {
132
- return { hasRequiredProvider: true, requiredResults, optionalResults, errors };
133
- }
134
- const anyProviders = packageJson.providers.any || [];
135
- const requiredProviders = packageJson.providers.required || [];
136
- const optionalProviders = packageJson.providers.optional || [];
137
- const allProviders = [...anyProviders, ...requiredProviders];
138
- for (const providerPath of allProviders) {
139
- const result = validateProvider(providerPath, pluginDir);
140
- requiredResults.push(result);
141
- }
142
- for (const providerPath of optionalProviders) {
143
- const result = validateProvider(providerPath, pluginDir);
144
- optionalResults.push(result);
145
- }
146
- const hasRequiredProvider = requiredResults.length === 0 || requiredResults.some(r => r.configured);
147
- if (!hasRequiredProvider && requiredResults.length > 0) {
148
- const providerNames = requiredResults
149
- .map(r => r.spec?.displayName || r.provider)
150
- .join(', ');
151
- errors.push(`At least one provider must be configured. Available providers: ${providerNames}`);
152
- errors.push(`\nConfigure any one of the following:\n`);
153
- for (const result of requiredResults) {
154
- if (result.spec) {
155
- errors.push(`${result.spec.displayName}:`);
156
- for (const envVar of result.spec.envVars.required) {
157
- errors.push(` - ${envVar.name}: ${envVar.description}`);
158
- if (envVar.example) {
159
- errors.push(` Example: ${envVar.example}`);
160
- }
161
- }
162
- errors.push('');
163
- }
164
- }
165
- }
166
- return { hasRequiredProvider, requiredResults, optionalResults, errors };
167
- }
168
- export function loadEnv(petId) {
169
- const envVars = {};
170
- try {
171
- const projectRoot = resolve(process.cwd());
172
- const dotenvPath = resolve(projectRoot, '.env');
173
- const petsConfigPath = resolve(projectRoot, '.pets', 'config.json');
174
- logger.debug(`Loading env vars for pet: ${petId || 'global'}`);
175
- if (petId && existsSync(petsConfigPath)) {
176
- try {
177
- const petsConfig = JSON.parse(readFileSync(petsConfigPath, 'utf-8'));
178
- const petEnvConfig = petsConfig.envConfig?.[petId] || {};
179
- for (const [key, value] of Object.entries(petEnvConfig)) {
180
- if (typeof value === 'string' && value.length > 0) {
181
- envVars[key] = value;
182
- logger.debug(`Loaded from .pets/config.json: ${key}`);
183
- }
184
- }
185
- }
186
- catch (error) {
187
- logger.debug(`Failed to load pet config: ${error.message}`);
188
- }
189
- }
190
- if (existsSync(dotenvPath)) {
191
- const dotenvResult = config({ path: dotenvPath });
192
- if (dotenvResult.parsed) {
193
- for (const [key, value] of Object.entries(dotenvResult.parsed)) {
194
- if (value && value.length > 0) {
195
- envVars[key] = value;
196
- logger.debug(`Loaded from .env (overriding if exists): ${key}`);
197
- }
198
- }
199
- }
200
- }
201
- logger.info(`Loaded ${Object.keys(envVars).length} environment variables from project config`);
202
- }
203
- catch (error) {
204
- logger.error(`Error loading environment variables: ${error.message}`);
205
- }
206
- return envVars;
207
- }
208
- export function getEnv(key, petId) {
209
- const envVars = loadEnv(petId);
210
- return envVars[key];
211
- }
212
- //# sourceMappingURL=plugin-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-factory.js","sourceRoot":"","sources":["../../../plugin-factory.ts"],"names":[],"mappings":"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"}