@gotcos/glasses-server 6.16.3 → 6.16.4
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.
- package/CHANGELOG.md +9 -0
- package/package.json +1 -1
- package/server/lib/query-job-runtime.ts +10 -2
- package/server/routes/query.ts +13 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## 6.16.4
|
|
2
|
+
|
|
3
|
+
- **Cursor Agent on legacy `/api/query`.** 6.16.3 only forwarded
|
|
4
|
+
`cursorExecutionMode` on durable jobs. Most installs still run with
|
|
5
|
+
`durableQueryJobs: false`, so the companion fell back to `/api/query` and
|
|
6
|
+
Cursor stayed Ask (Shell Rejected). Legacy route now accepts the field;
|
|
7
|
+
Cursor omit/unknown defaults to **agent** (Settings default). Explicit `ask`
|
|
8
|
+
still forces read-only. Durable runtime uses the same default.
|
|
9
|
+
|
|
1
10
|
## 6.16.3
|
|
2
11
|
|
|
3
12
|
- **Cursor Agent mode on durable jobs.** Glasses Settings → Agent now reaches
|
package/package.json
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
isCursorModel,
|
|
14
14
|
normalizeEffortPreference,
|
|
15
15
|
normalizeModelPreference,
|
|
16
|
+
type CursorExecutionMode,
|
|
16
17
|
type ModelPreference,
|
|
17
18
|
} from '../../shared/model-preference.js'
|
|
18
19
|
import { mergeMediaAttachmentRefs } from '../../shared/media-attachment.js'
|
|
@@ -238,8 +239,15 @@ const runner: QueryJobRunner = async ({ jobId, turnId, request, signal, callback
|
|
|
238
239
|
{
|
|
239
240
|
abortSignal: signal,
|
|
240
241
|
effort: validEffort,
|
|
241
|
-
//
|
|
242
|
-
|
|
242
|
+
// Glasses Settings default is Agent. Explicit ask stays ask; omit → agent
|
|
243
|
+
// for Cursor so legacy clients aren't stuck in Ask when durable is off.
|
|
244
|
+
...(validModel && isCursorModel(validModel)
|
|
245
|
+
? {
|
|
246
|
+
cursorExecutionMode: (
|
|
247
|
+
request.cursorExecutionMode === 'ask' ? 'ask' : 'agent'
|
|
248
|
+
) as CursorExecutionMode,
|
|
249
|
+
}
|
|
250
|
+
: {}),
|
|
243
251
|
clientJobId: request.clientJobId,
|
|
244
252
|
generation: request.generation,
|
|
245
253
|
sessionLockHeld: true,
|
package/server/routes/query.ts
CHANGED
|
@@ -5,7 +5,11 @@ import { Router } from 'express'
|
|
|
5
5
|
import { callModelStreaming } from '../lib/model-router.js'
|
|
6
6
|
import { emitDisplay } from '../lib/display-bus.js'
|
|
7
7
|
import { errMsg } from '../lib/utils.js'
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
isCursorModel,
|
|
10
|
+
normalizeEffortPreference,
|
|
11
|
+
normalizeModelPreference,
|
|
12
|
+
} from '../../shared/model-preference.js'
|
|
9
13
|
import { QueryAttachmentError, resolveQueryAttachments } from '../lib/query-attachments.js'
|
|
10
14
|
import { getMediaStore } from '../lib/media-store.js'
|
|
11
15
|
import { mergeMediaAttachmentRefs } from '../../shared/media-attachment.js'
|
|
@@ -38,6 +42,9 @@ queryRouter.post('/query', async (req, res) => {
|
|
|
38
42
|
const activityToolMode = req.body.activityToolMode === 'off' || req.body.activityToolMode === 'preview'
|
|
39
43
|
? req.body.activityToolMode
|
|
40
44
|
: 'status'
|
|
45
|
+
// Glasses Settings default is Agent. Only an explicit "ask" stays read-only —
|
|
46
|
+
// omit/unknown must not silently force Ask (6.16.3 durable-only gap).
|
|
47
|
+
const cursorExecutionMode = req.body.cursorExecutionMode === 'ask' ? 'ask' as const : 'agent' as const
|
|
41
48
|
|
|
42
49
|
// Resolve durable attachment ids and legacy base64 images through one
|
|
43
50
|
// validation/normalization path before opening SSE.
|
|
@@ -170,7 +177,11 @@ queryRouter.post('/query', async (req, res) => {
|
|
|
170
177
|
? { query: String(reference.query), response: String(reference.response) }
|
|
171
178
|
: undefined,
|
|
172
179
|
validGlobalMsgNum,
|
|
173
|
-
{
|
|
180
|
+
{
|
|
181
|
+
abortSignal: abortController.signal,
|
|
182
|
+
effort: validEffort,
|
|
183
|
+
...(validModel && isCursorModel(validModel) ? { cursorExecutionMode } : {}),
|
|
184
|
+
},
|
|
174
185
|
)
|
|
175
186
|
} catch (err: unknown) {
|
|
176
187
|
maintenanceLease.release()
|