{"version":1,"name":"dev3d marketplace","homepage":"https://dev3d.net/plugins","plugins":[{"manifest":{"id":"dev3d.cost-guard","name":"Cost guard","author":"dev3d","license":"MIT","version":"1.1.0","settings":[{"key":"aggressiveness","type":"select","label":"How hard to push down-tier","default":"balanced","options":["gentle","balanced","aggressive"],"description":"Balanced honours the role's policy and only overrides the cheapest task classes. Aggressive pulls everything except coding and review down a tier."},{"key":"localOnly","type":"boolean","label":"Never prefer a hosted provider","default":false,"description":"When on, the cheap task classes are pinned to the local provider even if a hosted model is cheaper."},{"key":"maxPromptTokens","max":200000,"min":1000,"type":"number","label":"Warn above this prompt size","default":12000,"description":"Only used for the plugin's own logging; it does not truncate anything."}],"apiVersion":"1","contributes":{"models":[{"id":"local/qwen2.5-coder-7b-instruct","tier":"small","label":"Qwen 2.5 Coder 7B (local)","strengths":["summarize","intake","routing"],"providerId":"local","capabilities":{"tools":true,"vision":false,"reasoning":false,"streaming":true},"contextWindow":32768,"costPerMTokIn":0,"costPerMTokOut":0,"maxOutputTokens":4096}],"skills":[{"id":"cost-aware-delegation","body":"# Cost-aware delegation\n\nBefore you reach for a strong model, answer three questions in writing:\n\n1. **What does this task actually require?** Parsing, summarising and re-formatting need none of the reasoning a frontier model is priced for.\n2. **What is the cost of being wrong?** A wrong intake summary costs a re-run. A wrong migration costs a day.\n3. **Is the expensive model buying anything?** If you cannot name the specific step that needs the extra capability, you do not need it.\n\n## Say this\n\n> This is a summarise-and-reformat task. A small model is sufficient; I would spend the budget on the review stage instead.\n\n## Not this\n\n> I will use the most capable model available to be safe.\n\nSafety is not a reason to escalate. Specific, named difficulty is.","name":"Cost-aware delegation","tags":["cost","process","routing"],"description":"Decide whether a task needs a frontier model at all, and say which tier is actually justified.","taskClasses":["routing","summarize","planning"]}],"pipelines":[{"id":"spend-review","name":"Spend review","stages":[{"kind":"review","mode":"single","name":"Audit","roleIds":["cost-auditor"]},{"kind":"report","mode":"single","name":"Report","roleIds":["cost-auditor"]}],"description":"Read the runs the office has already paid for and say which spend bought nothing. Two stages, no code written."}],"routingRules":[{"id":"cheap-first-for-mechanical-work","tier":"small","taskClass":"intake","description":"Intake and summarising are mechanical: prefer the cheapest capable model, and prefer a local runtime when one is configured.","preferProviderIds":["local","deepseek"]},{"id":"no-frontier-for-summaries","tier":"nano","taskClass":"summarize","description":"A summary never needs the strongest tier.","avoidModelIds":["gpt-4o","claude-3-5-sonnet-latest","o3-mini"]}],"roleTemplates":[{"id":"cost-auditor","rank":2,"title":"Cost auditor","roomId":null,"seatId":null,"mission":"keep the office honest about what it spends, and say when a cheaper route would do","persona":{"voice":"dry, specific, allergic to waste","values":["evidence","thrift","candour"]},"skillIds":["cost-aware-delegation","technical-writing","code-review"],"reportsTo":null,"seniority":"senior","appearance":{"height":1,"bodyColor":"#facc15","accentColor":"#78350f"},"canDelegate":false,"displayName":"Mira","modelPolicy":{"maxTier":"strong","minTier":"small","defaultTier":"standard"},"allowedTools":["think","read_file","list_dir","search_files"],"departmentId":"frontend","maxDirectReports":0,"maxTurnsPerStage":4,"responsibilities":["read a run's turns and name the ones that bought nothing","propose the cheapest model that would still have finished the task","refuse to call a summary a research problem"]}]},"description":"Keeps the cheap work cheap: routes intake, summarising and research to the least expensive capable model, adds a small local model to the catalog for it to aim at, and offers a cost-auditor role and a spend-review pipeline.","permissions":["models","routing","skills","agents","pipelines","settings"]},"downloadUrl":"https://dev3d.net/marketplace/bundles/dev3d.cost-guard-1.1.0.tar.gz","sha256":"0d2a2903fd97a06535111447de27431c9678a61edf48fb05dd9b128470928506","tags":["models","skills","routingRules","roleTemplates","pipelines"],"sizeBytes":2213,"readme":"Keeps the cheap work cheap: routes intake, summarising and research to the least expensive capable model, adds a small local model to the catalog for it to aim at, and offers a cost-auditor role and a spend-review pipeline."},{"manifest":{"id":"dev3d.local-coder","name":"Local coder","author":"dev3d","license":"MIT","version":"1.0.0","settings":[{"key":"enabledForCoding","type":"boolean","label":"Let it take coding turns","default":false,"description":"Off by default. When on, the model is a candidate for coding too, not just summarising. Purely informational to the operator right now: this plugin is data, so it cannot change a role's policy."}],"apiVersion":"1","contributes":{"models":[{"id":"lmstudio/qwen2.5-coder-14b","tier":"small","label":"Qwen2.5 Coder 14B (LM Studio)","strengths":["intake","summarize"],"providerId":"lmstudio","capabilities":{"tools":true,"vision":false,"reasoning":false,"streaming":true},"contextWindow":32768,"costPerMTokIn":0,"costPerMTokOut":0,"maxOutputTokens":4096}],"uiPanels":[{"id":"local-model-status","body":[{"kind":"keyValue","rows":[{"key":"provider id","value":"lmstudio"},{"key":"endpoint","value":"http://127.0.0.1:1234/v1"},{"key":"credential","value":"none — keyless loopback"},{"key":"model","value":"lmstudio/qwen2.5-coder-14b (small, $0)"}],"label":"Registered provider"},{"kind":"note","text":"This panel is data, not code. The console renders it from the manifest, so nothing this plugin ships ever runs in your browser. To move the endpoint, edit plugins/dev3d.local-coder/plugin.json and refresh."}],"title":"Local model","summary":"What this plugin registered, and how to point it somewhere else.","placement":"settings"}],"providers":[{"id":"lmstudio","kind":"openai-compat","label":"LM Studio (local)","baseUrl":"http://127.0.0.1:1234/v1","keyless":true}]},"description":"Registers a whole provider: a local OpenAI-compatible model server, its endpoint and the model it serves. The keyless loopback base URL is what tells the office it can be reached without a credential.","permissions":["providers","models","settings"]},"downloadUrl":"https://dev3d.net/marketplace/bundles/dev3d.local-coder-1.0.0.tar.gz","sha256":"6b9dc9c46e24b251bb97e4e55228a94e7bde4ba9e14b8c6275bf3a2b2978b32b","tags":["providers","models","uiPanels"],"sizeBytes":1126,"readme":"Registers a whole provider: a local OpenAI-compatible model server, its endpoint and the model it serves. The keyless loopback base URL is what tells the office it can be reached without a credential."},{"manifest":{"id":"dev3d.office-echo","name":"Office echo","entry":"index.mjs","author":"dev3d","license":"MIT","version":"1.0.0","settings":[{"key":"prefix","type":"string","label":"Echo prefix","default":"echo","description":"Prepended to whatever the tool echoes back."},{"key":"announceRuns","type":"boolean","label":"Log every run that starts","default":true,"description":"Writes a debug line to the orchestrator log when a run is created."}],"apiVersion":"1","contributes":{"toolNames":["echo"]},"description":"A minimal code plugin: registers one tool employees can call, and logs run lifecycles. It exists to prove the code path and to be copied.","permissions":["tools","events","settings"]},"downloadUrl":"https://dev3d.net/marketplace/bundles/dev3d.office-echo-1.0.0.tar.gz","sha256":"49477000ed260b379f8c19efb2d82909fea052466a0ac5357033d9689210897c","tags":["toolNames","code"],"sizeBytes":1395,"readme":"A minimal code plugin: registers one tool employees can call, and logs run lifecycles. It exists to prove the code path and to be copied."}]}