@gotcos/glasses-server 6.71.5 → 6.71.9
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/.env.example +4 -0
- package/CHANGELOG.md +22 -0
- package/README.md +31 -14
- package/bin/hooks/cos-session-hook +15 -3
- package/docs/test-plan-6.71.5.md +11 -0
- package/docs/test-plan-6.71.7.md +56 -0
- package/docs/test-plan-6.71.8.md +123 -0
- package/docs/test-plan-6.71.9.md +61 -0
- package/package.json +6 -2
- package/server/index.ts +5 -1
- package/server/lib/claude-hooks-installer.ts +1 -0
- package/server/lib/live-cos-ask.ts +26 -22
- package/server/lib/meeting-ask-evidence.ts +59 -0
- package/server/lib/meeting-ask-followup.ts +27 -0
- package/server/lib/meeting-ask-grounding.ts +57 -0
- package/server/lib/meeting-ask-runtime.ts +59 -9
- package/server/lib/meeting-image-ocr.ts +57 -0
- package/server/lib/native/meeting-image-ocr.js +23 -0
- package/server/lib/permission-broker.ts +76 -19
- package/server/routes/meeting-ask.ts +2 -2
- package/server/routes/permission-broker.ts +6 -2
- package/shared/meeting-ask.ts +2 -0
|
@@ -99,8 +99,8 @@ export function createMeetingAskRouter(runtime: MeetingAskRuntime = meetingAskRu
|
|
|
99
99
|
catch (e) {
|
|
100
100
|
failure(res, e);
|
|
101
101
|
} });
|
|
102
|
-
router.post('/meeting-ask/files/media', (req, res) => { try {
|
|
103
|
-
res.json({ files: runtime.
|
|
102
|
+
router.post('/meeting-ask/files/media', async (req, res) => { try {
|
|
103
|
+
res.json({ files: await runtime.attachMediaReadable(String(req.body?.sessionId ?? ''), req.body?.serverInstanceId, req.body?.media) });
|
|
104
104
|
}
|
|
105
105
|
catch (e) {
|
|
106
106
|
failure(res, e);
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
// 6.71.7: new-hook stamped interactive questions also arrive while the desk is
|
|
2
|
+
// active. The broker keeps their lens card hidden until the desk is idle and
|
|
3
|
+
// then latches it. Native desk answers/cancels settle the same request. Legacy
|
|
4
|
+
// hooks and approvals keep the gates below. GET polling is 3 s while pending.
|
|
5
|
+
//
|
|
1
6
|
// The permission broker's two doors (6.52.0). See `lib/permission-broker.ts` for the why.
|
|
2
7
|
//
|
|
3
8
|
// POST /api/permission-requests/ask -- the COS session hook, on a PermissionRequest at a
|
|
@@ -35,7 +40,6 @@ import { timingSafeTokenEqual } from '../lib/token-auth.js'
|
|
|
35
40
|
import {
|
|
36
41
|
ANSWERING_CLIENTS,
|
|
37
42
|
CLIENT_LIVE_WINDOW_MS,
|
|
38
|
-
QUESTIONS_POLL_INTERVAL_MS,
|
|
39
43
|
SESSION_QUESTIONS_PROTOCOL_VERSION,
|
|
40
44
|
type BrokerAdmission,
|
|
41
45
|
type HookReplyChannel,
|
|
@@ -182,7 +186,7 @@ export function createSessionQuestionsRouter(deps: SessionQuestionsRouterDeps):
|
|
|
182
186
|
enabled: health.enabled,
|
|
183
187
|
mode: health.mode,
|
|
184
188
|
protocolVersion: SESSION_QUESTIONS_PROTOCOL_VERSION,
|
|
185
|
-
pollIntervalMs:
|
|
189
|
+
pollIntervalMs: deps.broker.questionsPollIntervalMs(),
|
|
186
190
|
liveWindowMs: CLIENT_LIVE_WINDOW_MS,
|
|
187
191
|
pending: deps.broker.pendingCount(),
|
|
188
192
|
stats: deps.broker.stats(),
|
package/shared/meeting-ask.ts
CHANGED
|
@@ -214,6 +214,8 @@ export interface MeetingAskConfig {
|
|
|
214
214
|
* PUT files {sessionId,serverInstanceId,files:MeetingAskFile[]} -> {files}. Upsert only; removed is explicit.
|
|
215
215
|
* POST files/media {sessionId,serverInstanceId,media:[{id,name?}]} -> {files} (6.71.1, capabilities.phoneFiles):
|
|
216
216
|
* media already uploaded through /api/media joins the meeting's file list as id "phone_<mediaId>", origin "phone".
|
|
217
|
+
* 6.71.9 on macOS: images containing text use local OCR and revisioned F evidence; no-word images
|
|
218
|
+
* remain unsupported and extraction errors are explicit failed rows. Historical evidence is immutable.
|
|
217
219
|
* GET export?sessionId=...&serverInstanceId=... -> {text}; composes persisted Ask/file context,
|
|
218
220
|
* client prepends its current canonical transcript. All operations use X-Cos-Token.
|
|
219
221
|
* GET config is the capability probe (404 means old server); health.capabilities.meetingAsk mirrors capabilities.
|