@gmickel/gno 1.18.0 → 1.19.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 (129) hide show
  1. package/README.md +5 -3
  2. package/assets/skill/SKILL.md +27 -0
  3. package/package.json +2 -1
  4. package/spec/AGENTS.md +83 -0
  5. package/spec/CLAUDE.md +83 -0
  6. package/spec/bench-fixture.schema.json +137 -0
  7. package/spec/cli.md +2894 -0
  8. package/spec/db/schema.sql +442 -0
  9. package/spec/evals-agentic.md +510 -0
  10. package/spec/evals.md +1106 -0
  11. package/spec/mcp.md +2229 -0
  12. package/spec/output-schemas/activation-verification.schema.json +515 -0
  13. package/spec/output-schemas/ask.schema.json +366 -0
  14. package/spec/output-schemas/backlinks.schema.json +131 -0
  15. package/spec/output-schemas/bench-result.schema.json +120 -0
  16. package/spec/output-schemas/capture-receipt.schema.json +143 -0
  17. package/spec/output-schemas/collection-list.schema.json +45 -0
  18. package/spec/output-schemas/context-capsule-v1.schema.json +691 -0
  19. package/spec/output-schemas/context-capsule-verification.schema.json +1338 -0
  20. package/spec/output-schemas/context-list.schema.json +21 -0
  21. package/spec/output-schemas/doctor.schema.json +313 -0
  22. package/spec/output-schemas/error.schema.json +30 -0
  23. package/spec/output-schemas/expansion.schema.json +37 -0
  24. package/spec/output-schemas/get.schema.json +140 -0
  25. package/spec/output-schemas/graph-query.schema.json +99 -0
  26. package/spec/output-schemas/graph.schema.json +371 -0
  27. package/spec/output-schemas/links-list.schema.json +186 -0
  28. package/spec/output-schemas/mcp-add-collection-result.schema.json +23 -0
  29. package/spec/output-schemas/mcp-capture-result.schema.json +152 -0
  30. package/spec/output-schemas/mcp-http-error.schema.json +30 -0
  31. package/spec/output-schemas/mcp-job-list.schema.json +58 -0
  32. package/spec/output-schemas/mcp-job-status.schema.json +224 -0
  33. package/spec/output-schemas/mcp-remove-result.schema.json +39 -0
  34. package/spec/output-schemas/mcp-sync-result.schema.json +41 -0
  35. package/spec/output-schemas/mcp-tag-result.schema.json +33 -0
  36. package/spec/output-schemas/models-list.schema.json +93 -0
  37. package/spec/output-schemas/multi-get.schema.json +103 -0
  38. package/spec/output-schemas/process-status.schema.json +119 -0
  39. package/spec/output-schemas/query-diagnose.schema.json +123 -0
  40. package/spec/output-schemas/resident-status.schema.json +154 -0
  41. package/spec/output-schemas/retrieval-trace-common.schema.json +492 -0
  42. package/spec/output-schemas/retrieval-trace-delete.schema.json +16 -0
  43. package/spec/output-schemas/retrieval-trace-export.schema.json +61 -0
  44. package/spec/output-schemas/retrieval-trace-filters.schema.json +139 -0
  45. package/spec/output-schemas/retrieval-trace-judgment.schema.json +15 -0
  46. package/spec/output-schemas/retrieval-trace-list.schema.json +18 -0
  47. package/spec/output-schemas/retrieval-trace-payloads.schema.json +178 -0
  48. package/spec/output-schemas/retrieval-trace-purge.schema.json +31 -0
  49. package/spec/output-schemas/retrieval-trace-qrels.schema.json +303 -0
  50. package/spec/output-schemas/retrieval-trace-replay.schema.json +286 -0
  51. package/spec/output-schemas/retrieval-trace-show.schema.json +69 -0
  52. package/spec/output-schemas/retrieval-trace-summary.schema.json +65 -0
  53. package/spec/output-schemas/search-result.schema.json +154 -0
  54. package/spec/output-schemas/search-results.schema.json +338 -0
  55. package/spec/output-schemas/similar.schema.json +84 -0
  56. package/spec/output-schemas/status.schema.json +676 -0
  57. package/spec/output-schemas/tags-list.schema.json +48 -0
  58. package/src/app/context-runtime-types.ts +3 -0
  59. package/src/app/context-runtime.ts +15 -1
  60. package/src/cli/commands/ask.ts +106 -36
  61. package/src/cli/commands/context-build.ts +56 -9
  62. package/src/cli/commands/get.ts +64 -3
  63. package/src/cli/commands/query.ts +62 -23
  64. package/src/cli/commands/replay.ts +140 -0
  65. package/src/cli/commands/search.ts +48 -3
  66. package/src/cli/commands/shared.ts +3 -1
  67. package/src/cli/commands/trace.ts +200 -0
  68. package/src/cli/commands/vsearch.ts +75 -53
  69. package/src/cli/program.ts +255 -0
  70. package/src/config/index.ts +9 -0
  71. package/src/config/retrieval-traces.ts +56 -0
  72. package/src/config/types.ts +4 -0
  73. package/src/core/context-compiler.ts +11 -4
  74. package/src/core/retrieval-qrels.ts +405 -0
  75. package/src/core/retrieval-replay-candidate.ts +368 -0
  76. package/src/core/retrieval-replay-types.ts +109 -0
  77. package/src/core/retrieval-replay-validation.ts +89 -0
  78. package/src/core/retrieval-replay.ts +441 -0
  79. package/src/core/retrieval-trace-evidence-origin.ts +175 -0
  80. package/src/core/retrieval-trace-export.ts +113 -0
  81. package/src/core/retrieval-trace-filter-normalization.ts +27 -0
  82. package/src/core/retrieval-trace-filters.ts +19 -0
  83. package/src/core/retrieval-trace-management-helpers.ts +247 -0
  84. package/src/core/retrieval-trace-management-types.ts +132 -0
  85. package/src/core/retrieval-trace-management.ts +422 -0
  86. package/src/core/retrieval-trace-request.ts +141 -0
  87. package/src/core/retrieval-trace-session.ts +494 -0
  88. package/src/core/retrieval-trace.ts +472 -0
  89. package/src/mcp/tools/context.ts +59 -8
  90. package/src/mcp/tools/get.ts +35 -1
  91. package/src/mcp/tools/index.ts +74 -0
  92. package/src/mcp/tools/query.ts +95 -64
  93. package/src/mcp/tools/search.ts +36 -13
  94. package/src/mcp/tools/trace.ts +143 -0
  95. package/src/mcp/tools/vsearch.ts +71 -38
  96. package/src/pipeline/answer.ts +167 -26
  97. package/src/pipeline/graph-retrieval.ts +15 -1
  98. package/src/pipeline/hybrid.ts +151 -43
  99. package/src/pipeline/search.ts +36 -3
  100. package/src/pipeline/trace-metadata.ts +47 -0
  101. package/src/pipeline/types.ts +43 -0
  102. package/src/pipeline/vsearch.ts +101 -38
  103. package/src/sdk/client.ts +380 -71
  104. package/src/sdk/documents.ts +48 -1
  105. package/src/sdk/index.ts +17 -0
  106. package/src/sdk/types.ts +28 -0
  107. package/src/serve/context-capsule.ts +67 -8
  108. package/src/serve/public/app.tsx +12 -1
  109. package/src/serve/public/globals.built.css +1 -1
  110. package/src/serve/public/lib/workspace-tabs.ts +2 -0
  111. package/src/serve/public/pages/Dashboard.tsx +10 -0
  112. package/src/serve/public/pages/TraceHistory.tsx +478 -0
  113. package/src/serve/public/pages/trace-history-detail.tsx +224 -0
  114. package/src/serve/retrieval-trace.ts +28 -0
  115. package/src/serve/routes/api.ts +366 -72
  116. package/src/serve/routes/traces.ts +156 -0
  117. package/src/serve/server.ts +87 -2
  118. package/src/store/index.ts +31 -0
  119. package/src/store/migrations/014-retrieval-traces.ts +303 -0
  120. package/src/store/migrations/index.ts +2 -0
  121. package/src/store/retrieval-trace-codec.ts +384 -0
  122. package/src/store/sqlite/adapter.ts +153 -1
  123. package/src/store/sqlite/retrieval-trace-management-store.ts +341 -0
  124. package/src/store/sqlite/retrieval-trace-retention.ts +349 -0
  125. package/src/store/sqlite/retrieval-trace-rows.ts +267 -0
  126. package/src/store/sqlite/retrieval-trace-store.ts +515 -0
  127. package/src/store/types.ts +297 -0
  128. package/src/store/vector/sqlite-vec.ts +76 -1
  129. package/src/store/vector/types.ts +1 -1
@@ -0,0 +1,152 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "gno://schemas/mcp-capture-result@1.0",
4
+ "title": "GNO MCP Capture Result",
5
+ "description": "Result payload for gno_capture",
6
+ "type": "object",
7
+ "required": [
8
+ "docid",
9
+ "uri",
10
+ "absPath",
11
+ "collection",
12
+ "relPath",
13
+ "created",
14
+ "openedExisting",
15
+ "createdWithSuffix",
16
+ "overwritten",
17
+ "contentHash",
18
+ "source",
19
+ "tags",
20
+ "sync",
21
+ "embed",
22
+ "collisionPolicyResult",
23
+ "serverInstanceId"
24
+ ],
25
+ "properties": {
26
+ "docid": {
27
+ "type": "string",
28
+ "description": "Document ID"
29
+ },
30
+ "uri": {
31
+ "type": "string",
32
+ "description": "Document URI",
33
+ "pattern": "^gno://[^/]+/.+"
34
+ },
35
+ "absPath": {
36
+ "type": "string",
37
+ "description": "Absolute path to the created file"
38
+ },
39
+ "collection": {
40
+ "type": "string",
41
+ "description": "Normalized collection name"
42
+ },
43
+ "relPath": {
44
+ "type": "string",
45
+ "description": "Relative path within collection"
46
+ },
47
+ "created": {
48
+ "type": "boolean",
49
+ "description": "True if file was created"
50
+ },
51
+ "openedExisting": {
52
+ "type": "boolean",
53
+ "description": "True if an existing file was opened"
54
+ },
55
+ "createdWithSuffix": {
56
+ "type": "boolean",
57
+ "description": "True if a suffixed path was created"
58
+ },
59
+ "overwritten": {
60
+ "type": "boolean",
61
+ "description": "True if existing file was overwritten"
62
+ },
63
+ "contentHash": {
64
+ "type": "string",
65
+ "description": "SHA-256 hash of normalized capture body content",
66
+ "pattern": "^[a-f0-9]{64}$"
67
+ },
68
+ "source": {
69
+ "type": "object",
70
+ "required": ["kind", "capturedAt"],
71
+ "properties": {
72
+ "kind": {
73
+ "type": "string",
74
+ "enum": [
75
+ "direct",
76
+ "web",
77
+ "email",
78
+ "meeting",
79
+ "chat",
80
+ "file",
81
+ "api",
82
+ "unknown"
83
+ ]
84
+ },
85
+ "title": { "type": "string" },
86
+ "url": { "type": "string", "format": "uri" },
87
+ "uri": { "type": "string" },
88
+ "docid": { "type": "string" },
89
+ "mime": { "type": "string" },
90
+ "ext": { "type": "string" },
91
+ "author": { "type": "string" },
92
+ "observedAt": { "type": "string", "format": "date-time" },
93
+ "capturedAt": { "type": "string", "format": "date-time" },
94
+ "externalId": { "type": "string" }
95
+ }
96
+ },
97
+ "tags": {
98
+ "type": "array",
99
+ "items": { "type": "string" }
100
+ },
101
+ "sync": {
102
+ "$ref": "#/definitions/indexStatus"
103
+ },
104
+ "embed": {
105
+ "$ref": "#/definitions/indexStatus"
106
+ },
107
+ "collisionPolicyResult": {
108
+ "type": "string",
109
+ "enum": [
110
+ "created",
111
+ "opened_existing",
112
+ "created_with_suffix",
113
+ "overwritten",
114
+ "conflict"
115
+ ]
116
+ },
117
+ "serverInstanceId": {
118
+ "type": "string",
119
+ "description": "Server instance UUID",
120
+ "format": "uuid"
121
+ }
122
+ },
123
+ "definitions": {
124
+ "indexStatus": {
125
+ "type": "object",
126
+ "required": ["status"],
127
+ "properties": {
128
+ "status": {
129
+ "type": "string",
130
+ "enum": [
131
+ "not_requested",
132
+ "pending",
133
+ "running",
134
+ "completed",
135
+ "skipped",
136
+ "failed",
137
+ "unknown"
138
+ ]
139
+ },
140
+ "jobId": {
141
+ "type": ["string", "null"]
142
+ },
143
+ "reason": {
144
+ "type": "string"
145
+ },
146
+ "error": {
147
+ "type": "string"
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "gno://schemas/mcp-http-error@1.0",
4
+ "title": "GNO HTTP MCP Boundary Error",
5
+ "description": "Redacted stable JSON-RPC error body emitted before SDK dispatch for HTTP MCP boundary failures",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["jsonrpc", "error", "id"],
9
+ "properties": {
10
+ "jsonrpc": { "const": "2.0" },
11
+ "error": {
12
+ "type": "object",
13
+ "additionalProperties": false,
14
+ "required": ["code", "message"],
15
+ "properties": {
16
+ "code": { "const": -32000 },
17
+ "message": {
18
+ "enum": [
19
+ "Unauthorized",
20
+ "Forbidden",
21
+ "Request body too large",
22
+ "Too many requests",
23
+ "Resident runtime unavailable"
24
+ ]
25
+ }
26
+ }
27
+ },
28
+ "id": { "type": "null" }
29
+ }
30
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "gno://schemas/mcp-job-list@1.0",
4
+ "title": "GNO MCP Job List",
5
+ "description": "Result payload for gno_list_jobs",
6
+ "type": "object",
7
+ "required": ["active", "recent"],
8
+ "properties": {
9
+ "active": {
10
+ "type": "array",
11
+ "description": "Active jobs",
12
+ "items": {
13
+ "type": "object",
14
+ "required": ["jobId", "type", "startedAt"],
15
+ "properties": {
16
+ "jobId": {
17
+ "type": "string",
18
+ "description": "Job identifier"
19
+ },
20
+ "type": {
21
+ "type": "string",
22
+ "enum": ["add", "sync", "embed", "index"]
23
+ },
24
+ "startedAt": {
25
+ "type": "string",
26
+ "format": "date-time"
27
+ }
28
+ }
29
+ }
30
+ },
31
+ "recent": {
32
+ "type": "array",
33
+ "description": "Recent completed jobs",
34
+ "items": {
35
+ "type": "object",
36
+ "required": ["jobId", "type", "status", "completedAt"],
37
+ "properties": {
38
+ "jobId": {
39
+ "type": "string",
40
+ "description": "Job identifier"
41
+ },
42
+ "type": {
43
+ "type": "string",
44
+ "enum": ["add", "sync", "embed", "index"]
45
+ },
46
+ "status": {
47
+ "type": "string",
48
+ "enum": ["completed", "failed"]
49
+ },
50
+ "completedAt": {
51
+ "type": "string",
52
+ "format": "date-time"
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,224 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "gno://schemas/mcp-job-status@1.0",
4
+ "title": "GNO MCP Job Status",
5
+ "description": "Result payload for gno_job_status",
6
+ "type": "object",
7
+ "required": ["jobId", "type", "status", "startedAt", "serverInstanceId"],
8
+ "$defs": {
9
+ "collectionSyncResult": {
10
+ "type": "object",
11
+ "required": [
12
+ "collection",
13
+ "filesProcessed",
14
+ "filesAdded",
15
+ "filesUpdated",
16
+ "filesUnchanged",
17
+ "filesErrored",
18
+ "filesSkipped",
19
+ "filesMarkedInactive",
20
+ "durationMs",
21
+ "errors"
22
+ ],
23
+ "properties": {
24
+ "collection": {
25
+ "type": "string",
26
+ "description": "Collection name"
27
+ },
28
+ "filesProcessed": {
29
+ "type": "integer",
30
+ "minimum": 0
31
+ },
32
+ "filesAdded": {
33
+ "type": "integer",
34
+ "minimum": 0
35
+ },
36
+ "filesUpdated": {
37
+ "type": "integer",
38
+ "minimum": 0
39
+ },
40
+ "filesUnchanged": {
41
+ "type": "integer",
42
+ "minimum": 0
43
+ },
44
+ "filesErrored": {
45
+ "type": "integer",
46
+ "minimum": 0
47
+ },
48
+ "filesSkipped": {
49
+ "type": "integer",
50
+ "minimum": 0
51
+ },
52
+ "filesMarkedInactive": {
53
+ "type": "integer",
54
+ "minimum": 0
55
+ },
56
+ "durationMs": {
57
+ "type": "integer",
58
+ "minimum": 0
59
+ },
60
+ "errors": {
61
+ "type": "array",
62
+ "items": {
63
+ "type": "object",
64
+ "required": ["relPath", "code", "message"],
65
+ "properties": {
66
+ "relPath": {
67
+ "type": "string"
68
+ },
69
+ "code": {
70
+ "type": "string"
71
+ },
72
+ "message": {
73
+ "type": "string"
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "syncResult": {
81
+ "type": "object",
82
+ "required": [
83
+ "collections",
84
+ "totalDurationMs",
85
+ "totalFilesProcessed",
86
+ "totalFilesAdded",
87
+ "totalFilesUpdated",
88
+ "totalFilesErrored",
89
+ "totalFilesSkipped"
90
+ ],
91
+ "properties": {
92
+ "collections": {
93
+ "type": "array",
94
+ "items": {
95
+ "$ref": "#/$defs/collectionSyncResult"
96
+ }
97
+ },
98
+ "totalDurationMs": {
99
+ "type": "integer",
100
+ "minimum": 0
101
+ },
102
+ "totalFilesProcessed": {
103
+ "type": "integer",
104
+ "minimum": 0
105
+ },
106
+ "totalFilesAdded": {
107
+ "type": "integer",
108
+ "minimum": 0
109
+ },
110
+ "totalFilesUpdated": {
111
+ "type": "integer",
112
+ "minimum": 0
113
+ },
114
+ "totalFilesErrored": {
115
+ "type": "integer",
116
+ "minimum": 0
117
+ },
118
+ "totalFilesSkipped": {
119
+ "type": "integer",
120
+ "minimum": 0
121
+ }
122
+ }
123
+ },
124
+ "embedResult": {
125
+ "type": "object",
126
+ "required": ["embedded", "errors"],
127
+ "properties": {
128
+ "embedded": {
129
+ "type": "integer",
130
+ "minimum": 0,
131
+ "description": "Number of chunks embedded"
132
+ },
133
+ "errors": {
134
+ "type": "integer",
135
+ "minimum": 0,
136
+ "description": "Number of chunks that failed"
137
+ }
138
+ }
139
+ },
140
+ "indexResult": {
141
+ "type": "object",
142
+ "required": ["sync", "embed"],
143
+ "properties": {
144
+ "sync": {
145
+ "$ref": "#/$defs/syncResult"
146
+ },
147
+ "embed": {
148
+ "$ref": "#/$defs/embedResult"
149
+ }
150
+ }
151
+ },
152
+ "typedResult": {
153
+ "oneOf": [
154
+ {
155
+ "type": "object",
156
+ "required": ["kind", "value"],
157
+ "properties": {
158
+ "kind": { "const": "sync" },
159
+ "value": { "$ref": "#/$defs/syncResult" }
160
+ }
161
+ },
162
+ {
163
+ "type": "object",
164
+ "required": ["kind", "value"],
165
+ "properties": {
166
+ "kind": { "const": "embed" },
167
+ "value": { "$ref": "#/$defs/embedResult" }
168
+ }
169
+ },
170
+ {
171
+ "type": "object",
172
+ "required": ["kind", "value"],
173
+ "properties": {
174
+ "kind": { "const": "index" },
175
+ "value": { "$ref": "#/$defs/indexResult" }
176
+ }
177
+ }
178
+ ]
179
+ }
180
+ },
181
+ "properties": {
182
+ "jobId": {
183
+ "type": "string",
184
+ "description": "Job identifier"
185
+ },
186
+ "type": {
187
+ "type": "string",
188
+ "description": "Job type",
189
+ "enum": ["add", "sync", "embed", "index"]
190
+ },
191
+ "status": {
192
+ "type": "string",
193
+ "description": "Job status",
194
+ "enum": ["running", "completed", "failed"]
195
+ },
196
+ "startedAt": {
197
+ "type": "string",
198
+ "description": "Start time",
199
+ "format": "date-time"
200
+ },
201
+ "completedAt": {
202
+ "type": "string",
203
+ "description": "Completion time",
204
+ "format": "date-time"
205
+ },
206
+ "result": {
207
+ "description": "Legacy sync result (deprecated, use typedResult)",
208
+ "$ref": "#/$defs/syncResult"
209
+ },
210
+ "typedResult": {
211
+ "description": "Typed job result (discriminated union)",
212
+ "$ref": "#/$defs/typedResult"
213
+ },
214
+ "error": {
215
+ "type": "string",
216
+ "description": "Error message if failed"
217
+ },
218
+ "serverInstanceId": {
219
+ "type": "string",
220
+ "description": "Server instance UUID",
221
+ "format": "uuid"
222
+ }
223
+ }
224
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "gno://schemas/mcp-remove-result@1.0",
4
+ "title": "GNO MCP Remove Collection Result",
5
+ "description": "Result payload for gno_remove_collection",
6
+ "type": "object",
7
+ "required": [
8
+ "removed",
9
+ "collection",
10
+ "configUpdated",
11
+ "indexedDataRetained",
12
+ "note"
13
+ ],
14
+ "properties": {
15
+ "removed": {
16
+ "type": "boolean",
17
+ "description": "Whether the collection was removed",
18
+ "const": true
19
+ },
20
+ "collection": {
21
+ "type": "string",
22
+ "description": "Normalized collection name"
23
+ },
24
+ "configUpdated": {
25
+ "type": "boolean",
26
+ "description": "Config update status",
27
+ "const": true
28
+ },
29
+ "indexedDataRetained": {
30
+ "type": "boolean",
31
+ "description": "Indexed data retention flag",
32
+ "const": true
33
+ },
34
+ "note": {
35
+ "type": "string",
36
+ "description": "Explanation of retained data"
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "gno://schemas/mcp-sync-result@1.0",
4
+ "title": "GNO MCP Sync Result",
5
+ "description": "Result payload for gno_sync",
6
+ "type": "object",
7
+ "required": ["jobId", "collections", "status", "options"],
8
+ "properties": {
9
+ "jobId": {
10
+ "type": "string",
11
+ "description": "Job identifier"
12
+ },
13
+ "collections": {
14
+ "type": "array",
15
+ "description": "Collections included in the sync",
16
+ "items": {
17
+ "type": "string"
18
+ }
19
+ },
20
+ "status": {
21
+ "type": "string",
22
+ "description": "Job status",
23
+ "enum": ["started"]
24
+ },
25
+ "options": {
26
+ "type": "object",
27
+ "description": "Effective sync options",
28
+ "required": ["gitPull", "runUpdateCmd"],
29
+ "properties": {
30
+ "gitPull": {
31
+ "type": "boolean",
32
+ "description": "Run git pull before sync"
33
+ },
34
+ "runUpdateCmd": {
35
+ "type": "boolean",
36
+ "description": "Run update command before sync"
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "gno://schemas/mcp-tag-result@1.0",
4
+ "title": "GNO MCP Tag Result",
5
+ "description": "Result from gno_tag tool (add/remove tag)",
6
+ "type": "object",
7
+ "required": ["docid", "uri", "tag", "action"],
8
+ "properties": {
9
+ "docid": {
10
+ "type": "string",
11
+ "description": "Document ID",
12
+ "pattern": "^#[a-f0-9]{6,8}$"
13
+ },
14
+ "uri": {
15
+ "type": "string",
16
+ "description": "Document URI",
17
+ "pattern": "^gno://[^/]+/.+"
18
+ },
19
+ "tag": {
20
+ "type": "string",
21
+ "description": "Tag that was added or removed"
22
+ },
23
+ "action": {
24
+ "type": "string",
25
+ "enum": ["add", "remove"],
26
+ "description": "Action performed"
27
+ },
28
+ "wroteToFile": {
29
+ "type": "boolean",
30
+ "description": "Whether frontmatter was updated in source file"
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "gno://schemas/models-list@1.0",
4
+ "title": "GNO Models List",
5
+ "description": "List of configured and cached models with preset information",
6
+ "type": "object",
7
+ "required": [
8
+ "activePreset",
9
+ "presets",
10
+ "embed",
11
+ "rerank",
12
+ "gen",
13
+ "cacheDir",
14
+ "totalSize"
15
+ ],
16
+ "properties": {
17
+ "activePreset": {
18
+ "type": "string",
19
+ "description": "ID of the currently active model preset"
20
+ },
21
+ "presets": {
22
+ "type": "array",
23
+ "description": "Available model presets",
24
+ "items": {
25
+ "$ref": "#/$defs/presetInfo"
26
+ }
27
+ },
28
+ "embed": {
29
+ "$ref": "#/$defs/modelStatus",
30
+ "description": "Embedding model status"
31
+ },
32
+ "rerank": {
33
+ "$ref": "#/$defs/modelStatus",
34
+ "description": "Reranker model status"
35
+ },
36
+ "gen": {
37
+ "$ref": "#/$defs/modelStatus",
38
+ "description": "Generation model status"
39
+ },
40
+ "cacheDir": {
41
+ "type": "string",
42
+ "description": "Path to model cache directory"
43
+ },
44
+ "totalSize": {
45
+ "type": "integer",
46
+ "description": "Total size of cached models in bytes",
47
+ "minimum": 0
48
+ }
49
+ },
50
+ "$defs": {
51
+ "presetInfo": {
52
+ "type": "object",
53
+ "required": ["id", "name", "active"],
54
+ "properties": {
55
+ "id": {
56
+ "type": "string",
57
+ "description": "Preset identifier (e.g., slim, balanced, quality)"
58
+ },
59
+ "name": {
60
+ "type": "string",
61
+ "description": "Human-readable preset name"
62
+ },
63
+ "active": {
64
+ "type": "boolean",
65
+ "description": "Whether this preset is currently active"
66
+ }
67
+ }
68
+ },
69
+ "modelStatus": {
70
+ "type": "object",
71
+ "required": ["uri", "cached", "path"],
72
+ "properties": {
73
+ "uri": {
74
+ "type": "string",
75
+ "description": "Model URI (hf: or file:)"
76
+ },
77
+ "cached": {
78
+ "type": "boolean",
79
+ "description": "Whether the model is cached locally"
80
+ },
81
+ "path": {
82
+ "type": ["string", "null"],
83
+ "description": "Local file path if cached"
84
+ },
85
+ "size": {
86
+ "type": "integer",
87
+ "description": "File size in bytes",
88
+ "minimum": 0
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }