refactor: remove pricing field from TPMJS specification
Remove pricing field from the entire project as it doesn't make sense for tool metadata: - Remove TpmjsPricingSchema and TpmjsPricing type from types package - Remove pricing from TpmjsRichSchema validation - Remove pricing from validateTpmjsField check - Remove pricing documentation from /spec page - Remove pricing examples from /publish page - Remove pricing from HOW_TO_PUBLISH_A_TOOL.md - Remove pricing from @tpmjs/createblogpost example package.json The pricing field was removed from Tier 3 (Rich) metadata as it's not relevant for tool discovery and integration. Tools can document pricing in their README or documentation links instead. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
d839536eb0
commit
a6ec7df800
5 changed files with 0 additions and 86 deletions
|
|
@ -133,10 +133,6 @@ Complete metadata for maximum visibility:
|
|||
"type": "api-key",
|
||||
"required": true
|
||||
},
|
||||
"pricing": {
|
||||
"model": "pay-per-use",
|
||||
"cost": "$0.001 per request"
|
||||
},
|
||||
"frameworks": ["vercel-ai", "langchain"],
|
||||
"links": {
|
||||
"documentation": "https://docs.example.com",
|
||||
|
|
@ -316,9 +312,6 @@ Here's the complete `package.json` from the published example:
|
|||
"required": false,
|
||||
"type": "api-key"
|
||||
},
|
||||
"pricing": {
|
||||
"model": "free"
|
||||
},
|
||||
"frameworks": ["vercel-ai", "langchain"],
|
||||
"links": {
|
||||
"documentation": "https://tpmjs.com/tools/createblogpost",
|
||||
|
|
@ -362,7 +355,6 @@ Here's the complete `package.json` from the published example:
|
|||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| `authentication` | object | Auth requirements |
|
||||
| `pricing` | object | Pricing information |
|
||||
| `frameworks` | array | Compatible frameworks |
|
||||
| `links` | object | Related URLs |
|
||||
| `tags` | array | Additional tags |
|
||||
|
|
@ -393,23 +385,6 @@ If your tool requires authentication:
|
|||
}
|
||||
```
|
||||
|
||||
### Pricing Models
|
||||
|
||||
```json
|
||||
"pricing": {
|
||||
"model": "free" // or "pay-per-use", "subscription", "freemium"
|
||||
}
|
||||
```
|
||||
|
||||
For paid tools, add cost information:
|
||||
|
||||
```json
|
||||
"pricing": {
|
||||
"model": "pay-per-use",
|
||||
"cost": "$0.001 per request"
|
||||
}
|
||||
```
|
||||
|
||||
## Quality Score
|
||||
|
||||
Your tool gets a quality score based on:
|
||||
|
|
|
|||
|
|
@ -169,10 +169,6 @@ export default function PublishPage(): React.ReactElement {
|
|||
"type": "api-key",
|
||||
"required": true
|
||||
},
|
||||
"pricing": {
|
||||
"model": "pay-per-use",
|
||||
"cost": "$0.001 per request"
|
||||
},
|
||||
"frameworks": ["vercel-ai", "langchain"],
|
||||
"links": {
|
||||
"documentation": "https://docs.example.com",
|
||||
|
|
|
|||
|
|
@ -313,29 +313,6 @@ export default function SpecPage(): React.ReactElement {
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 className="text-lg font-semibold text-foreground mb-2">
|
||||
<code>pricing</code>
|
||||
</h4>
|
||||
<p className="text-sm text-foreground-secondary mb-2">
|
||||
Pricing information. Fields:
|
||||
</p>
|
||||
<ul className="list-disc list-inside space-y-1 text-sm text-foreground-secondary ml-4">
|
||||
<li>
|
||||
<code className="text-foreground">model</code> - "free", "freemium",
|
||||
"paid", or "enterprise"
|
||||
</li>
|
||||
<li>
|
||||
<code className="text-foreground">freeLimit</code> - Description of free
|
||||
tier limits (optional)
|
||||
</li>
|
||||
<li>
|
||||
<code className="text-foreground">paidUrl</code> - Pricing page URL
|
||||
(optional)
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 className="text-lg font-semibold text-foreground mb-2">
|
||||
<code>frameworks</code>
|
||||
|
|
@ -448,11 +425,6 @@ export default function SpecPage(): React.ReactElement {
|
|||
"envVar": "SENTIMENT_API_KEY",
|
||||
"docsUrl": "https://docs.example.com/auth"
|
||||
},
|
||||
"pricing": {
|
||||
"model": "freemium",
|
||||
"freeLimit": "1000 requests/month",
|
||||
"paidUrl": "https://example.com/pricing"
|
||||
},
|
||||
"frameworks": ["vercel-ai", "langchain"],
|
||||
"links": {
|
||||
"documentation": "https://docs.example.com",
|
||||
|
|
@ -579,19 +551,6 @@ export default function SpecPage(): React.ReactElement {
|
|||
<td className="py-3 px-4">No</td>
|
||||
<td className="py-3 px-4">Auth requirements</td>
|
||||
</tr>
|
||||
<tr className="border-b border-border">
|
||||
<td className="py-3 px-4">
|
||||
<code className="text-foreground">pricing</code>
|
||||
</td>
|
||||
<td className="py-3 px-4">object</td>
|
||||
<td className="py-3 px-4">
|
||||
<Badge variant="success" size="sm">
|
||||
Rich
|
||||
</Badge>
|
||||
</td>
|
||||
<td className="py-3 px-4">No</td>
|
||||
<td className="py-3 px-4">Pricing model and details</td>
|
||||
</tr>
|
||||
<tr className="border-b border-border">
|
||||
<td className="py-3 px-4">
|
||||
<code className="text-foreground">frameworks</code>
|
||||
|
|
|
|||
|
|
@ -84,9 +84,6 @@
|
|||
"required": false,
|
||||
"type": "api-key"
|
||||
},
|
||||
"pricing": {
|
||||
"model": "free"
|
||||
},
|
||||
"frameworks": ["vercel-ai", "langchain"],
|
||||
"links": {
|
||||
"documentation": "https://tpmjs.com/tools/createblogpost",
|
||||
|
|
|
|||
|
|
@ -55,17 +55,6 @@ export const TpmjsAuthenticationSchema = z.object({
|
|||
|
||||
export type TpmjsAuthentication = z.infer<typeof TpmjsAuthenticationSchema>;
|
||||
|
||||
/**
|
||||
* Pricing information schema
|
||||
*/
|
||||
export const TpmjsPricingSchema = z.object({
|
||||
model: z.enum(['free', 'freemium', 'paid', 'enterprise']),
|
||||
freeLimit: z.string().optional(),
|
||||
paidUrl: z.string().url().optional(),
|
||||
});
|
||||
|
||||
export type TpmjsPricing = z.infer<typeof TpmjsPricingSchema>;
|
||||
|
||||
/**
|
||||
* External links schema
|
||||
*/
|
||||
|
|
@ -111,7 +100,6 @@ export const TpmjsRichSchema = TpmjsMinimalSchema.extend({
|
|||
parameters: z.array(TpmjsParameterSchema).optional(),
|
||||
returns: TpmjsReturnsSchema.optional(),
|
||||
authentication: TpmjsAuthenticationSchema.optional(),
|
||||
pricing: TpmjsPricingSchema.optional(),
|
||||
frameworks: z
|
||||
.array(z.enum(['vercel-ai', 'langchain', 'llamaindex', 'haystack', 'semantic-kernel']))
|
||||
.optional(),
|
||||
|
|
@ -151,7 +139,6 @@ export function validateTpmjsField(tpmjs: unknown): ValidationResult {
|
|||
data.parameters ||
|
||||
data.returns ||
|
||||
data.authentication ||
|
||||
data.pricing ||
|
||||
data.frameworks ||
|
||||
data.links ||
|
||||
data.tags ||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue