opencode-jev-model-router 0.1.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 (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +104 -0
  3. package/dist/adapter.d.ts +23 -0
  4. package/dist/adapter.d.ts.map +1 -0
  5. package/dist/adapter.js +509 -0
  6. package/dist/adapter.js.map +1 -0
  7. package/dist/config.d.ts +46 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +398 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/index.d.ts +7 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +36 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/jev.d.ts +45 -0
  16. package/dist/jev.d.ts.map +1 -0
  17. package/dist/jev.js +135 -0
  18. package/dist/jev.js.map +1 -0
  19. package/dist/models.d.ts +47 -0
  20. package/dist/models.d.ts.map +1 -0
  21. package/dist/models.js +132 -0
  22. package/dist/models.js.map +1 -0
  23. package/dist/policy.d.ts +33 -0
  24. package/dist/policy.d.ts.map +1 -0
  25. package/dist/policy.js +100 -0
  26. package/dist/policy.js.map +1 -0
  27. package/dist/prompt.d.ts +12 -0
  28. package/dist/prompt.d.ts.map +1 -0
  29. package/dist/prompt.js +32 -0
  30. package/dist/prompt.js.map +1 -0
  31. package/dist/quota.d.ts +31 -0
  32. package/dist/quota.d.ts.map +1 -0
  33. package/dist/quota.js +149 -0
  34. package/dist/quota.js.map +1 -0
  35. package/dist/schedule.d.ts +16 -0
  36. package/dist/schedule.d.ts.map +1 -0
  37. package/dist/schedule.js +44 -0
  38. package/dist/schedule.js.map +1 -0
  39. package/dist/sessions.d.ts +37 -0
  40. package/dist/sessions.d.ts.map +1 -0
  41. package/dist/sessions.js +119 -0
  42. package/dist/sessions.js.map +1 -0
  43. package/dist/types.d.ts +82 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +9 -0
  46. package/dist/types.js.map +1 -0
  47. package/opencode-jev-router.example.json +58 -0
  48. package/package.json +61 -0
  49. package/schemas/config.schema.json +83 -0
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/aaronshaf/opencode-jev-model-router/schemas/config.schema.json",
4
+ "title": "OpenCode Jev Router config",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "$schema": { "type": "string" },
9
+ "enabled": { "type": "boolean", "default": true },
10
+ "allowProjectModels": {
11
+ "type": "boolean",
12
+ "default": false,
13
+ "description": "When true in ~/.config/opencode config, project files may override tier models/fallbacks."
14
+ },
15
+ "tiers": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "properties": {
19
+ "fast": { "$ref": "#/$defs/tier" },
20
+ "balanced": { "$ref": "#/$defs/tier" },
21
+ "strong": { "$ref": "#/$defs/tier" },
22
+ "long": { "$ref": "#/$defs/tier" }
23
+ }
24
+ },
25
+ "routing": {
26
+ "type": "object",
27
+ "additionalProperties": false,
28
+ "properties": {
29
+ "failOpen": { "type": "boolean", "default": true },
30
+ "maxPromptBytes": { "type": "integer", "minimum": 256, "maximum": 65536 },
31
+ "timeoutMs": { "type": "integer", "minimum": 200, "maximum": 10000 },
32
+ "deadlineMs": { "type": "integer", "minimum": 200, "maximum": 15000 },
33
+ "maxRetries": { "type": "integer", "minimum": 0, "maximum": 3 },
34
+ "minimumConfidence": { "type": "number", "minimum": 0, "maximum": 1 },
35
+ "uncertainCeiling": {
36
+ "type": "string",
37
+ "enum": ["fast", "balanced", "strong", "long"]
38
+ },
39
+ "downgradeMaxContextTokens": { "type": "integer", "minimum": 0 }
40
+ }
41
+ },
42
+ "quota": {
43
+ "type": "object",
44
+ "additionalProperties": false,
45
+ "properties": {
46
+ "cooldownHours": { "type": "number", "minimum": 0.1, "maximum": 168 }
47
+ }
48
+ },
49
+ "history": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "properties": {
53
+ "enabled": { "type": "boolean" },
54
+ "retainPrompt": { "type": "boolean" },
55
+ "maxEntries": { "type": "integer", "minimum": 1, "maximum": 200 }
56
+ }
57
+ },
58
+ "echoRouting": { "type": "boolean", "default": true }
59
+ },
60
+ "$defs": {
61
+ "tier": {
62
+ "type": "object",
63
+ "additionalProperties": false,
64
+ "properties": {
65
+ "model": {
66
+ "type": "string",
67
+ "minLength": 3,
68
+ "description": "OpenCode model ref as providerID/modelID (split only on the first slash)."
69
+ },
70
+ "variant": { "type": "string" },
71
+ "enabled": { "type": "boolean", "default": true },
72
+ "fallbacks": {
73
+ "type": "array",
74
+ "items": { "type": "string", "minLength": 3 }
75
+ },
76
+ "aliases": {
77
+ "type": "array",
78
+ "items": { "type": "string", "minLength": 1 }
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }