@gmickel/gno 1.18.0 → 1.20.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 (153) hide show
  1. package/README.md +14 -7
  2. package/assets/skill/SKILL.md +54 -12
  3. package/assets/skill/mcp-reference.md +7 -2
  4. package/assets/skill/recipes/citation-and-provenance.md +32 -9
  5. package/package.json +2 -1
  6. package/spec/AGENTS.md +83 -0
  7. package/spec/CLAUDE.md +83 -0
  8. package/spec/bench-fixture.schema.json +137 -0
  9. package/spec/cli.md +2919 -0
  10. package/spec/db/schema.sql +442 -0
  11. package/spec/evals-agentic.md +592 -0
  12. package/spec/evals.md +1106 -0
  13. package/spec/mcp.md +2279 -0
  14. package/spec/output-schemas/activation-verification.schema.json +515 -0
  15. package/spec/output-schemas/ask.schema.json +564 -0
  16. package/spec/output-schemas/backlinks.schema.json +131 -0
  17. package/spec/output-schemas/bench-result.schema.json +120 -0
  18. package/spec/output-schemas/capture-receipt.schema.json +143 -0
  19. package/spec/output-schemas/claim-verification.schema.json +291 -0
  20. package/spec/output-schemas/collection-list.schema.json +45 -0
  21. package/spec/output-schemas/context-capsule-v1.schema.json +726 -0
  22. package/spec/output-schemas/context-capsule-verification.schema.json +1338 -0
  23. package/spec/output-schemas/context-list.schema.json +21 -0
  24. package/spec/output-schemas/doctor.schema.json +313 -0
  25. package/spec/output-schemas/error.schema.json +30 -0
  26. package/spec/output-schemas/expansion.schema.json +37 -0
  27. package/spec/output-schemas/get.schema.json +140 -0
  28. package/spec/output-schemas/graph-query.schema.json +99 -0
  29. package/spec/output-schemas/graph.schema.json +371 -0
  30. package/spec/output-schemas/links-list.schema.json +186 -0
  31. package/spec/output-schemas/mcp-add-collection-result.schema.json +23 -0
  32. package/spec/output-schemas/mcp-capture-result.schema.json +152 -0
  33. package/spec/output-schemas/mcp-http-error.schema.json +30 -0
  34. package/spec/output-schemas/mcp-job-list.schema.json +58 -0
  35. package/spec/output-schemas/mcp-job-status.schema.json +224 -0
  36. package/spec/output-schemas/mcp-remove-result.schema.json +39 -0
  37. package/spec/output-schemas/mcp-sync-result.schema.json +41 -0
  38. package/spec/output-schemas/mcp-tag-result.schema.json +33 -0
  39. package/spec/output-schemas/models-list.schema.json +93 -0
  40. package/spec/output-schemas/multi-get.schema.json +103 -0
  41. package/spec/output-schemas/process-status.schema.json +119 -0
  42. package/spec/output-schemas/query-diagnose.schema.json +123 -0
  43. package/spec/output-schemas/resident-status.schema.json +154 -0
  44. package/spec/output-schemas/retrieval-trace-common.schema.json +492 -0
  45. package/spec/output-schemas/retrieval-trace-delete.schema.json +16 -0
  46. package/spec/output-schemas/retrieval-trace-export.schema.json +61 -0
  47. package/spec/output-schemas/retrieval-trace-filters.schema.json +139 -0
  48. package/spec/output-schemas/retrieval-trace-judgment.schema.json +15 -0
  49. package/spec/output-schemas/retrieval-trace-list.schema.json +18 -0
  50. package/spec/output-schemas/retrieval-trace-payloads.schema.json +178 -0
  51. package/spec/output-schemas/retrieval-trace-purge.schema.json +31 -0
  52. package/spec/output-schemas/retrieval-trace-qrels.schema.json +303 -0
  53. package/spec/output-schemas/retrieval-trace-replay.schema.json +286 -0
  54. package/spec/output-schemas/retrieval-trace-show.schema.json +69 -0
  55. package/spec/output-schemas/retrieval-trace-summary.schema.json +65 -0
  56. package/spec/output-schemas/search-result.schema.json +154 -0
  57. package/spec/output-schemas/search-results.schema.json +338 -0
  58. package/spec/output-schemas/similar.schema.json +84 -0
  59. package/spec/output-schemas/status.schema.json +676 -0
  60. package/spec/output-schemas/tags-list.schema.json +48 -0
  61. package/src/app/context-runtime-contract.ts +10 -5
  62. package/src/app/context-runtime-input.ts +29 -1
  63. package/src/app/context-runtime-types.ts +7 -0
  64. package/src/app/context-runtime.ts +20 -2
  65. package/src/app/context-surface.ts +4 -0
  66. package/src/app/verified-ask.ts +291 -0
  67. package/src/cli/commands/ask-format.ts +255 -0
  68. package/src/cli/commands/ask.ts +144 -183
  69. package/src/cli/commands/context-build.ts +56 -9
  70. package/src/cli/commands/get.ts +64 -3
  71. package/src/cli/commands/query.ts +62 -23
  72. package/src/cli/commands/replay.ts +140 -0
  73. package/src/cli/commands/search.ts +48 -3
  74. package/src/cli/commands/shared.ts +3 -1
  75. package/src/cli/commands/trace.ts +200 -0
  76. package/src/cli/commands/vsearch.ts +75 -53
  77. package/src/cli/program.ts +287 -1
  78. package/src/config/index.ts +9 -0
  79. package/src/config/retrieval-traces.ts +56 -0
  80. package/src/config/types.ts +4 -0
  81. package/src/core/context-budget.ts +6 -0
  82. package/src/core/context-capsule-retrieval-schema.ts +4 -0
  83. package/src/core/context-capsule-schema.ts +17 -0
  84. package/src/core/context-capsule-validation.ts +3 -2
  85. package/src/core/context-capsule.ts +18 -0
  86. package/src/core/context-compiler.ts +44 -25
  87. package/src/core/context-evidence.ts +6 -0
  88. package/src/core/retrieval-qrels.ts +405 -0
  89. package/src/core/retrieval-replay-candidate.ts +368 -0
  90. package/src/core/retrieval-replay-types.ts +109 -0
  91. package/src/core/retrieval-replay-validation.ts +89 -0
  92. package/src/core/retrieval-replay.ts +441 -0
  93. package/src/core/retrieval-trace-evidence-origin.ts +178 -0
  94. package/src/core/retrieval-trace-export.ts +113 -0
  95. package/src/core/retrieval-trace-filter-normalization.ts +27 -0
  96. package/src/core/retrieval-trace-filters.ts +19 -0
  97. package/src/core/retrieval-trace-management-helpers.ts +247 -0
  98. package/src/core/retrieval-trace-management-types.ts +132 -0
  99. package/src/core/retrieval-trace-management.ts +422 -0
  100. package/src/core/retrieval-trace-request.ts +141 -0
  101. package/src/core/retrieval-trace-session.ts +507 -0
  102. package/src/core/retrieval-trace.ts +472 -0
  103. package/src/llm/errors.ts +10 -1
  104. package/src/llm/httpGeneration.ts +11 -1
  105. package/src/llm/nodeLlamaCpp/generation.ts +54 -10
  106. package/src/llm/types.ts +6 -0
  107. package/src/mcp/tools/ask.ts +228 -0
  108. package/src/mcp/tools/context.ts +87 -15
  109. package/src/mcp/tools/get.ts +35 -1
  110. package/src/mcp/tools/index.ts +83 -0
  111. package/src/mcp/tools/query.ts +95 -64
  112. package/src/mcp/tools/search.ts +36 -13
  113. package/src/mcp/tools/trace.ts +143 -0
  114. package/src/mcp/tools/vsearch.ts +71 -38
  115. package/src/pipeline/answer.ts +167 -26
  116. package/src/pipeline/claim-verification-schema.ts +235 -0
  117. package/src/pipeline/claim-verification.ts +487 -0
  118. package/src/pipeline/claim-verifier.ts +474 -0
  119. package/src/pipeline/graph-retrieval.ts +15 -1
  120. package/src/pipeline/hybrid.ts +151 -43
  121. package/src/pipeline/search.ts +36 -3
  122. package/src/pipeline/trace-metadata.ts +47 -0
  123. package/src/pipeline/types.ts +68 -0
  124. package/src/pipeline/vsearch.ts +101 -38
  125. package/src/sdk/client.ts +415 -73
  126. package/src/sdk/documents.ts +48 -1
  127. package/src/sdk/index.ts +17 -0
  128. package/src/sdk/types.ts +28 -0
  129. package/src/serve/context-capsule.ts +67 -8
  130. package/src/serve/public/app.tsx +12 -1
  131. package/src/serve/public/components/AskVerificationPanel.tsx +189 -0
  132. package/src/serve/public/globals.built.css +1 -1
  133. package/src/serve/public/lib/workspace-tabs.ts +2 -0
  134. package/src/serve/public/pages/Ask.tsx +42 -4
  135. package/src/serve/public/pages/Dashboard.tsx +10 -0
  136. package/src/serve/public/pages/TraceHistory.tsx +478 -0
  137. package/src/serve/public/pages/trace-history-detail.tsx +224 -0
  138. package/src/serve/retrieval-trace.ts +28 -0
  139. package/src/serve/routes/api.ts +508 -68
  140. package/src/serve/routes/traces.ts +156 -0
  141. package/src/serve/server.ts +87 -2
  142. package/src/store/index.ts +31 -0
  143. package/src/store/migrations/014-retrieval-traces.ts +303 -0
  144. package/src/store/migrations/index.ts +2 -0
  145. package/src/store/retrieval-trace-codec.ts +384 -0
  146. package/src/store/sqlite/adapter.ts +153 -1
  147. package/src/store/sqlite/retrieval-trace-management-store.ts +341 -0
  148. package/src/store/sqlite/retrieval-trace-retention.ts +349 -0
  149. package/src/store/sqlite/retrieval-trace-rows.ts +267 -0
  150. package/src/store/sqlite/retrieval-trace-store.ts +515 -0
  151. package/src/store/types.ts +297 -0
  152. package/src/store/vector/sqlite-vec.ts +76 -1
  153. 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
+ }