@jingyi0605/codingns4dsh 0.2.1-rc.4 → 0.2.1-rc.5
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/README.en.md +3 -3
- package/README.md +3 -3
- package/data/build/dist/client/bundle.js +1672 -178
- package/data/build/dist/client/bundle.js.map +1 -1
- package/data/build/dist/client/cli-session-config-cache.d.ts.map +1 -1
- package/data/build/dist/client/cli-session-config-cache.js +9 -3
- package/data/build/dist/client/cli-session-config-cache.js.map +1 -1
- package/data/build/dist/client/client.native-workspace-store.js +7 -1
- package/data/build/dist/client/client.native-workspace-store.js.map +1 -1
- package/data/build/dist/client/client.transport.js +244 -50
- package/data/build/dist/client/client.transport.js.map +1 -1
- package/data/build/dist/client/desktop-assistant.js +242 -48
- package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
- package/data/build/dist/client/features/cli-adapters.js +13 -1
- package/data/build/dist/client/features/cli-adapters.js.map +1 -1
- package/data/build/dist/client/features/index.d.ts.map +1 -1
- package/data/build/dist/client/features/index.js +2 -0
- package/data/build/dist/client/features/index.js.map +1 -1
- package/data/build/dist/client/features/magpie-management-page.d.ts.map +1 -1
- package/data/build/dist/client/features/magpie-management-page.js +80 -31
- package/data/build/dist/client/features/magpie-management-page.js.map +1 -1
- package/data/build/dist/client/features/magpie-management.d.ts.map +1 -1
- package/data/build/dist/client/features/magpie-management.js +3 -2
- package/data/build/dist/client/features/magpie-management.js.map +1 -1
- package/data/build/dist/client/features/plugin-update.d.ts +3 -0
- package/data/build/dist/client/features/plugin-update.d.ts.map +1 -0
- package/data/build/dist/client/features/plugin-update.js +8 -0
- package/data/build/dist/client/features/plugin-update.js.map +1 -0
- package/data/build/dist/client/features/types.d.ts +3 -0
- package/data/build/dist/client/features/types.d.ts.map +1 -1
- package/data/build/dist/client/locale.d.ts.map +1 -1
- package/data/build/dist/client/locale.js +3 -0
- package/data/build/dist/client/locale.js.map +1 -1
- package/data/build/dist/client/locales/magpie.d.ts.map +1 -1
- package/data/build/dist/client/locales/magpie.js +60 -2
- package/data/build/dist/client/locales/magpie.js.map +1 -1
- package/data/build/dist/client/locales/pluginUpdate.d.ts +3 -0
- package/data/build/dist/client/locales/pluginUpdate.d.ts.map +1 -0
- package/data/build/dist/client/locales/pluginUpdate.js +131 -0
- package/data/build/dist/client/locales/pluginUpdate.js.map +1 -0
- package/data/build/dist/client/locales/usage.d.ts.map +1 -1
- package/data/build/dist/client/locales/usage.js +2 -0
- package/data/build/dist/client/locales/usage.js.map +1 -1
- package/data/build/dist/client/magpie-context-meter.d.ts +18 -0
- package/data/build/dist/client/magpie-context-meter.d.ts.map +1 -0
- package/data/build/dist/client/magpie-context-meter.js +274 -0
- package/data/build/dist/client/magpie-context-meter.js.map +1 -0
- package/data/build/dist/client/magpie-context-store.d.ts +32 -0
- package/data/build/dist/client/magpie-context-store.d.ts.map +1 -0
- package/data/build/dist/client/magpie-context-store.js +165 -0
- package/data/build/dist/client/magpie-context-store.js.map +1 -0
- package/data/build/dist/client/settings-promo-styles.d.ts +5 -0
- package/data/build/dist/client/settings-promo-styles.d.ts.map +1 -1
- package/data/build/dist/client/settings-promo-styles.js +15 -2
- package/data/build/dist/client/settings-promo-styles.js.map +1 -1
- package/data/build/dist/client/settings-promo.d.ts +4 -2
- package/data/build/dist/client/settings-promo.d.ts.map +1 -1
- package/data/build/dist/client/settings-promo.js +4 -4
- package/data/build/dist/client/settings-promo.js.map +1 -1
- package/data/build/dist/client/settings-section.d.ts +2 -3
- package/data/build/dist/client/settings-section.d.ts.map +1 -1
- package/data/build/dist/client/settings-section.js +7 -7
- package/data/build/dist/client/settings-section.js.map +1 -1
- package/data/build/dist/client/settings-update.d.ts +8 -0
- package/data/build/dist/client/settings-update.d.ts.map +1 -0
- package/data/build/dist/client/settings-update.js +57 -0
- package/data/build/dist/client/settings-update.js.map +1 -0
- package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
- package/data/build/dist/client/subscription-slot.js +47 -21
- package/data/build/dist/client/subscription-slot.js.map +1 -1
- package/data/build/dist/client/update-panel-styles.d.ts +29 -0
- package/data/build/dist/client/update-panel-styles.d.ts.map +1 -0
- package/data/build/dist/client/update-panel-styles.js +69 -0
- package/data/build/dist/client/update-panel-styles.js.map +1 -0
- package/data/build/dist/client/update-panel.d.ts +7 -0
- package/data/build/dist/client/update-panel.d.ts.map +1 -0
- package/data/build/dist/client/update-panel.js +52 -0
- package/data/build/dist/client/update-panel.js.map +1 -0
- package/data/build/dist/client/update-store.d.ts +43 -0
- package/data/build/dist/client/update-store.d.ts.map +1 -0
- package/data/build/dist/client/update-store.js +207 -0
- package/data/build/dist/client/update-store.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/plugin-reload-adapter.d.ts +4 -0
- package/data/build/dist/dsh-capabilities/client/plugin-reload-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/plugin-reload-adapter.js +6 -0
- package/data/build/dist/dsh-capabilities/client/plugin-reload-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts +15 -1
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js +53 -21
- package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js.map +1 -1
- package/data/build/dist/dsh-capabilities/host/plugin-update-adapter.d.ts +22 -0
- package/data/build/dist/dsh-capabilities/host/plugin-update-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/plugin-update-adapter.js +71 -0
- package/data/build/dist/dsh-capabilities/host/plugin-update-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.d.ts +4 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.js +16 -1
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.js.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.js +4 -0
- package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.js +10 -0
- package/data/build/dist/dsh-capabilities/routes.js.map +1 -1
- package/data/build/dist/dsh-capabilities/types.d.ts +1 -1
- package/data/build/dist/dsh-capabilities/types.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/types.js.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.js +174 -26
- package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
- package/data/build/dist/host/cli-adapters/magpie-context.d.ts +9 -0
- package/data/build/dist/host/cli-adapters/magpie-context.d.ts.map +1 -0
- package/data/build/dist/host/cli-adapters/magpie-context.js +128 -0
- package/data/build/dist/host/cli-adapters/magpie-context.js.map +1 -0
- package/data/build/dist/host/cli-adapters/magpie-update.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/magpie-update.js +14 -4
- package/data/build/dist/host/cli-adapters/magpie-update.js.map +1 -1
- package/data/build/dist/host/cli-adapters/magpie-usage.d.ts +12 -2
- package/data/build/dist/host/cli-adapters/magpie-usage.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/magpie-usage.js +114 -50
- package/data/build/dist/host/cli-adapters/magpie-usage.js.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.js +6 -5
- package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
- package/data/build/dist/host/features/index.d.ts.map +1 -1
- package/data/build/dist/host/features/index.js +2 -0
- package/data/build/dist/host/features/index.js.map +1 -1
- package/data/build/dist/host/features/plugin-update.d.ts +6 -0
- package/data/build/dist/host/features/plugin-update.d.ts.map +1 -0
- package/data/build/dist/host/features/plugin-update.js +45 -0
- package/data/build/dist/host/features/plugin-update.js.map +1 -0
- package/data/build/dist/host/index.d.ts.map +1 -1
- package/data/build/dist/host/index.js +31 -1
- package/data/build/dist/host/index.js.map +1 -1
- package/data/build/dist/host/native-session-bridge.d.ts +8 -0
- package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
- package/data/build/dist/host/native-session-bridge.js +43 -0
- package/data/build/dist/host/native-session-bridge.js.map +1 -1
- package/data/build/dist/host/rpc.d.ts +4 -1
- package/data/build/dist/host/rpc.d.ts.map +1 -1
- package/data/build/dist/host/rpc.js +33 -7
- package/data/build/dist/host/rpc.js.map +1 -1
- package/data/build/dist/host/session-handle-eviction.d.ts +29 -0
- package/data/build/dist/host/session-handle-eviction.d.ts.map +1 -0
- package/data/build/dist/host/session-handle-eviction.js +413 -0
- package/data/build/dist/host/session-handle-eviction.js.map +1 -0
- package/data/build/dist/host/settings.d.ts.map +1 -1
- package/data/build/dist/host/settings.js +12 -1
- package/data/build/dist/host/settings.js.map +1 -1
- package/data/build/dist/host/update/application-result.d.ts +3 -0
- package/data/build/dist/host/update/application-result.d.ts.map +1 -0
- package/data/build/dist/host/update/application-result.js +13 -0
- package/data/build/dist/host/update/application-result.js.map +1 -0
- package/data/build/dist/host/update/http.d.ts +7 -0
- package/data/build/dist/host/update/http.d.ts.map +1 -0
- package/data/build/dist/host/update/http.js +55 -0
- package/data/build/dist/host/update/http.js.map +1 -0
- package/data/build/dist/host/update/metadata.d.ts +14 -0
- package/data/build/dist/host/update/metadata.d.ts.map +1 -0
- package/data/build/dist/host/update/metadata.js +75 -0
- package/data/build/dist/host/update/metadata.js.map +1 -0
- package/data/build/dist/host/update/release-notes.d.ts +6 -0
- package/data/build/dist/host/update/release-notes.d.ts.map +1 -0
- package/data/build/dist/host/update/release-notes.js +52 -0
- package/data/build/dist/host/update/release-notes.js.map +1 -0
- package/data/build/dist/host/update/service.d.ts +25 -0
- package/data/build/dist/host/update/service.d.ts.map +1 -0
- package/data/build/dist/host/update/service.js +209 -0
- package/data/build/dist/host/update/service.js.map +1 -0
- package/data/build/dist/shared/contracts/config.d.ts +17 -0
- package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/config.js +8 -0
- package/data/build/dist/shared/contracts/config.js.map +1 -1
- package/data/build/dist/shared/contracts/magpie-management.d.ts +40 -0
- package/data/build/dist/shared/contracts/magpie-management.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/plugin-update.d.ts +93 -0
- package/data/build/dist/shared/contracts/plugin-update.d.ts.map +1 -0
- package/data/build/dist/shared/contracts/plugin-update.js +128 -0
- package/data/build/dist/shared/contracts/plugin-update.js.map +1 -0
- package/data/build/dist/shared/contracts/subscription.d.ts +3 -0
- package/data/build/dist/shared/contracts/subscription.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/subscription.js.map +1 -1
- package/data/build/dist/shared/contracts/version.d.ts +1 -1
- package/data/build/dist/shared/contracts/version.js +1 -1
- package/package.json +2 -1
- package/profile/README.md +2 -2
- package/profile/package.json +2 -2
- package/profile/version.json +1 -1
- package/version.json +1 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
const PART_KINDS = ['system', 'tools', 'memory', 'files', 'results', 'chat'];
|
|
2
|
+
const MAX_PARTS = 6;
|
|
3
|
+
const MAX_ITEMS = 24;
|
|
4
|
+
const MAX_POINTS = 160;
|
|
5
|
+
const MAX_TEXT = 240;
|
|
6
|
+
const MAX_IDENTITY = 512;
|
|
7
|
+
/** Reduce Magpie's internal context response to the metadata needed by the UI. */
|
|
8
|
+
export function parseMagpieContextResponse(value, options) {
|
|
9
|
+
const root = asRecord(value);
|
|
10
|
+
const sessions = root?.sessions;
|
|
11
|
+
if (!Array.isArray(sessions) || sessions.length > 80)
|
|
12
|
+
return null;
|
|
13
|
+
const agents = new Set(options.agents.map(cleanIdentity).filter((item) => item !== null));
|
|
14
|
+
const sessionIds = new Set(options.sessionIds.map(cleanIdentity).filter((item) => item !== null));
|
|
15
|
+
if (agents.size === 0 || sessionIds.size === 0)
|
|
16
|
+
return null;
|
|
17
|
+
const selected = sessions
|
|
18
|
+
.map(asRecord)
|
|
19
|
+
.filter((record) => record !== null)
|
|
20
|
+
.filter((record) => agents.has(cleanIdentity(record.agent) ?? '') && sessionIds.has(cleanIdentity(record.key) ?? ''))
|
|
21
|
+
.sort((left, right) => safeInt(right.latestId) - safeInt(left.latestId))[0];
|
|
22
|
+
if (selected === undefined)
|
|
23
|
+
return null;
|
|
24
|
+
const latest = asRecord(selected.latest);
|
|
25
|
+
const usedTokens = safeInt(latest?.tokens);
|
|
26
|
+
if (latest === null || usedTokens <= 0)
|
|
27
|
+
return null;
|
|
28
|
+
const parts = parseParts(latest.parts);
|
|
29
|
+
if (parts.length === 0)
|
|
30
|
+
return null;
|
|
31
|
+
const points = parsePoints(selected.points);
|
|
32
|
+
const contextWindow = positiveInt(latest.window) ?? positiveInt(selected.window);
|
|
33
|
+
if (contextWindow === null)
|
|
34
|
+
return null;
|
|
35
|
+
const countedTokens = points.reduce((sum, point) => sum + point.tokens, 0);
|
|
36
|
+
const cacheTokens = points.reduce((sum, point) => sum + point.cacheTokens, 0);
|
|
37
|
+
const cacheRate = countedTokens > 0 ? Math.min(1, cacheTokens / countedTokens) : 0;
|
|
38
|
+
const agent = cleanIdentity(selected.agent);
|
|
39
|
+
const key = cleanIdentity(selected.key);
|
|
40
|
+
const model = cleanText(selected.model);
|
|
41
|
+
if (agent === null || key === null || model === null)
|
|
42
|
+
return null;
|
|
43
|
+
return {
|
|
44
|
+
agent,
|
|
45
|
+
key,
|
|
46
|
+
title: cleanText(selected.title),
|
|
47
|
+
model,
|
|
48
|
+
requests: safeInt(selected.requests),
|
|
49
|
+
turns: safeInt(latest.turns),
|
|
50
|
+
usedTokens,
|
|
51
|
+
contextWindow,
|
|
52
|
+
cacheTokens,
|
|
53
|
+
cacheRate,
|
|
54
|
+
compacts: safeInt(selected.compacts),
|
|
55
|
+
latestId: positiveInt(selected.latestId),
|
|
56
|
+
parts,
|
|
57
|
+
points,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function parseParts(value) {
|
|
61
|
+
if (!Array.isArray(value) || value.length > MAX_PARTS)
|
|
62
|
+
return [];
|
|
63
|
+
return value.flatMap((item) => {
|
|
64
|
+
const record = asRecord(item);
|
|
65
|
+
const kind = readPartKind(record?.kind);
|
|
66
|
+
if (record === null || kind === null)
|
|
67
|
+
return [];
|
|
68
|
+
return [{ kind, tokens: safeInt(record.tokens), items: parseItems(record.items) }];
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function parseItems(value) {
|
|
72
|
+
if (!Array.isArray(value) || value.length > MAX_ITEMS)
|
|
73
|
+
return [];
|
|
74
|
+
return value.flatMap((item) => {
|
|
75
|
+
const record = asRecord(item);
|
|
76
|
+
const name = cleanText(record?.name);
|
|
77
|
+
if (record === null || name === null)
|
|
78
|
+
return [];
|
|
79
|
+
const tag = cleanText(record.tag);
|
|
80
|
+
const count = positiveInt(record.n);
|
|
81
|
+
return [{ name, ...(tag === null ? {} : { tag }), ...(count === null ? {} : { count }), tokens: safeInt(record.tokens) }];
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function parsePoints(value) {
|
|
85
|
+
if (!Array.isArray(value) || value.length > MAX_POINTS)
|
|
86
|
+
return [];
|
|
87
|
+
return value.flatMap((item) => {
|
|
88
|
+
const record = asRecord(item);
|
|
89
|
+
const id = positiveInt(record?.id);
|
|
90
|
+
if (record === null || id === null)
|
|
91
|
+
return [];
|
|
92
|
+
return [{
|
|
93
|
+
id,
|
|
94
|
+
time: cleanTime(record.time),
|
|
95
|
+
tokens: safeInt(record.tokens),
|
|
96
|
+
window: positiveInt(record.window),
|
|
97
|
+
cacheTokens: safeInt(record.cache),
|
|
98
|
+
}];
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function readPartKind(value) {
|
|
102
|
+
const kind = cleanText(value);
|
|
103
|
+
return kind !== null && PART_KINDS.includes(kind) ? kind : null;
|
|
104
|
+
}
|
|
105
|
+
function asRecord(value) {
|
|
106
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value) ? value : null;
|
|
107
|
+
}
|
|
108
|
+
function cleanIdentity(value) {
|
|
109
|
+
const text = cleanText(value);
|
|
110
|
+
return text !== null && text.length <= MAX_IDENTITY ? text : null;
|
|
111
|
+
}
|
|
112
|
+
function cleanText(value) {
|
|
113
|
+
if (typeof value !== 'string')
|
|
114
|
+
return null;
|
|
115
|
+
const text = value.trim().replace(/[\u0000-\u001f\u007f]/gu, '').slice(0, MAX_TEXT);
|
|
116
|
+
return text === '' ? null : text;
|
|
117
|
+
}
|
|
118
|
+
function cleanTime(value) {
|
|
119
|
+
const text = cleanText(value);
|
|
120
|
+
return text === null || Number.isNaN(Date.parse(text)) ? null : text;
|
|
121
|
+
}
|
|
122
|
+
function positiveInt(value) {
|
|
123
|
+
return typeof value === 'number' && Number.isSafeInteger(value) && value > 0 ? value : null;
|
|
124
|
+
}
|
|
125
|
+
function safeInt(value) {
|
|
126
|
+
return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0 ? value : 0;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=magpie-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magpie-context.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/magpie-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magpie-update.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/magpie-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EAGjB,kBAAkB,EACnB,MAAM,6CAA6C,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,iBAAiB,CAAA;AAEhF,eAAO,MAAM,6BAA6B,EAAG,UAAmB,CAAA;AAUhE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC,CAAA;IACnH,oFAAoF;IACpF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC9B,QAAQ,CAAC,IAAI,EAAE,oCAAoC,GAAG,gCAAgC,GAAG,8CAA8C;gBAA9H,IAAI,EAAE,oCAAoC,GAAG,gCAAgC,GAAG,8CAA8C,EAAE,OAAO,EAAE,MAAM;CAIrK;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,cAAc,CAA6B;gBAEvC,OAAO,GAAE,0BAA+B;IAS9C,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM7D,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAMjE,iFAAiF;IAC3E,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAcvE;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"magpie-update.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/magpie-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EAGjB,kBAAkB,EACnB,MAAM,6CAA6C,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,iBAAiB,CAAA;AAEhF,eAAO,MAAM,6BAA6B,EAAG,UAAmB,CAAA;AAUhE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC,CAAA;IACnH,oFAAoF;IACpF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC9B,QAAQ,CAAC,IAAI,EAAE,oCAAoC,GAAG,gCAAgC,GAAG,8CAA8C;gBAA9H,IAAI,EAAE,oCAAoC,GAAG,gCAAgC,GAAG,8CAA8C,EAAE,OAAO,EAAE,MAAM;CAIrK;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,cAAc,CAA6B;gBAEvC,OAAO,GAAE,0BAA+B;IAS9C,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM7D,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAMjE,iFAAiF;IAC3E,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAcvE;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAkB5F;;;OAGG;IACH,qBAAqB,IAAI,IAAI;IAQ7B,oBAAoB,IAAI,IAAI;IAM5B,OAAO,IAAI,IAAI;YAID,mBAAmB;IASjC,OAAO,CAAC,eAAe;YAUT,WAAW;YAKX,sBAAsB;YAQtB,eAAe;CAQ9B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAqB1E;AAWD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAmBxE"}
|
|
@@ -83,10 +83,10 @@ export class MagpieUpdateService {
|
|
|
83
83
|
method: 'POST',
|
|
84
84
|
body: { view: 'codingns-magpie-management', when: 'now' },
|
|
85
85
|
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
86
|
+
// A successful install may return an acknowledgement before Magpie hands the Web
|
|
87
|
+
// process over to the new binary. Only status reads/checks require a full status shape.
|
|
88
|
+
const status = response === null ? null : parseInstallResponse(response);
|
|
89
|
+
const restartExpected = before.state === 'ready' || status === null;
|
|
90
90
|
return { requested: true, restartExpected, status };
|
|
91
91
|
}
|
|
92
92
|
/**
|
|
@@ -175,6 +175,16 @@ export function parseMagpieUpdateStatus(value) {
|
|
|
175
175
|
gaveUp: optionalBoolean(record.gaveUp, 'gaveUp'),
|
|
176
176
|
};
|
|
177
177
|
}
|
|
178
|
+
function parseInstallResponse(value) {
|
|
179
|
+
try {
|
|
180
|
+
return parseMagpieUpdateStatus(value);
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
if (error instanceof MagpieUpdateError && error.code === 'CODINGNS_MAGPIE_UPDATE_INVALID')
|
|
184
|
+
return null;
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
178
188
|
export function parseMagpieUpdateNotes(value) {
|
|
179
189
|
const record = asRecord(value);
|
|
180
190
|
if (record === null || !Array.isArray(record.releases) || record.releases.length > MAX_RELEASES) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magpie-update.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/magpie-update.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAGpE,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAmB,CAAA;AAChE,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AACvD,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,MAAM,YAAY,GAAG,GAAG,CAAA;AACxB,MAAM,eAAe,GAAG,OAAO,CAAA;AAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAoB;IAC/C,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;CACjG,CAAC,CAAA;AAYF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACrB;IAArB,YAAqB,IAA8H,EAAE,OAAe;QAClK,KAAK,CAAC,OAAO,CAAC,CAAA;QADK,SAAI,GAAJ,IAAI,CAA0H;QAEjJ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IACb,MAAM,CAAsC;IAC5C,OAAO,CAAqB;IAC5B,GAAG,CAAc;IACjB,KAAK,CAAyC;IAC9C,cAAc,CAAQ;IACtB,aAAa,CAAQ;IAC9B,eAAe,GAA0C,IAAI,CAAA;IAC7D,cAAc,GAAyB,IAAI,CAAA;IAEnD,YAAY,UAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAA;QACnC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,uBAAuB,CAAA;QACvE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,sBAAsB,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAoB;QACnC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAC3D,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAoB;QAClC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;QACjE,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,cAAc,CAAC,MAAoB;QACvC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACrF,IAAI,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO,MAAM,CAAA;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;QAChD,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;YACvD,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACxC,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC1F,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,KAAc,EAAE,MAAoB;QACtD,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,8CAA8C,EAAE,8CAA8C,CAAC,CAAA;QAC3J,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,iBAAiB,CAAC,gCAAgC,EAAE,2CAA2C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1H,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,MAAM,EAAE;YAChF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,KAAK,EAAE;SAC1D,CAAC,CAAA;QACF,
|
|
1
|
+
{"version":3,"file":"magpie-update.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/magpie-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CodingNsCliAdapterId, CodingNsCliModelCatalog, CodingNsCliServiceTier, CodingNsCliSessionConfig } from '../../shared/contracts/cli-adapter.js';
|
|
2
2
|
import type { MagpieQuota, MagpieUsageSnapshot } from '../../shared/contracts/subscription.js';
|
|
3
|
-
import type { MagpieDashboardPeriod, MagpieDashboardStreamChunk, MagpieDashboardStreamPart, MagpieDashboardQuota, MagpieQuotaHistory, MagpieUsageDashboard, MagpieUsageGroup, MagpieUsageMetrics, MagpieUsageRequestPage, MagpieUsageSeriesPoint, MagpieUsageSession } from '../../shared/contracts/magpie-management.js';
|
|
3
|
+
import type { MagpieDashboardPeriod, MagpieDashboardStreamChunk, MagpieDashboardStreamPart, MagpieDashboardQuota, MagpieContextSession, MagpieQuotaHistory, MagpieUsageDashboard, MagpieUsageGroup, MagpieUsageMetrics, MagpieUsageRequestPage, MagpieUsageSeriesPoint, MagpieUsageSession } from '../../shared/contracts/magpie-management.js';
|
|
4
4
|
import type { MagpieWebService } from './magpie-web.js';
|
|
5
5
|
/** A safe, non-sensitive title associated with a DSH session identity. */
|
|
6
6
|
export interface MagpieSessionNameBinding {
|
|
@@ -61,6 +61,11 @@ export interface MagpieUsageRequestOptions {
|
|
|
61
61
|
readonly sessionIds?: readonly string[];
|
|
62
62
|
readonly sessionAgent?: string;
|
|
63
63
|
}
|
|
64
|
+
export interface MagpieContextRequestOptions {
|
|
65
|
+
readonly agents: readonly string[];
|
|
66
|
+
readonly sessionIds: readonly string[];
|
|
67
|
+
readonly days?: number;
|
|
68
|
+
}
|
|
64
69
|
/** Reads usage from the authenticated local Magpie Web API and exact-matches session identity. */
|
|
65
70
|
export declare class MagpieUsageService {
|
|
66
71
|
private readonly readModels;
|
|
@@ -84,7 +89,9 @@ export declare class MagpieUsageService {
|
|
|
84
89
|
private readonly quotaLogoCache;
|
|
85
90
|
private providerCatalog;
|
|
86
91
|
constructor(options?: MagpieUsageServiceOptions);
|
|
87
|
-
read(session: Pick<CodingNsCliSessionConfig, 'adapterId' | 'modelId' | 'providerSessionId'>, signal?: AbortSignal, includeRoute?: boolean, dshSessionId?: string
|
|
92
|
+
read(session: Pick<CodingNsCliSessionConfig, 'adapterId' | 'modelId' | 'providerSessionId'>, signal?: AbortSignal, includeRoute?: boolean, dshSessionId?: string, options?: {
|
|
93
|
+
readonly allowPendingSession?: boolean;
|
|
94
|
+
}): Promise<MagpieUsageSnapshot | null>;
|
|
88
95
|
/**
|
|
89
96
|
* Mark Magpie models and enrich their public metadata. The marker is
|
|
90
97
|
* transient catalog data used by model-list UIs, not session provenance.
|
|
@@ -92,6 +99,8 @@ export declare class MagpieUsageService {
|
|
|
92
99
|
enrichModelCatalog(adapterId: CodingNsCliAdapterId, catalog: CodingNsCliModelCatalog | Promise<CodingNsCliModelCatalog>, signal?: AbortSignal): Promise<CodingNsCliModelCatalog>;
|
|
93
100
|
/** Return an exact, CLI-confirmed Magpie model record for trusted Host use. */
|
|
94
101
|
readModelMetadata(adapterId: CodingNsCliAdapterId, modelId: string, signal?: AbortSignal): Promise<MagpieModelMetadata | null>;
|
|
102
|
+
/** Read one exact, sanitized context session from Magpie's internal Web API. */
|
|
103
|
+
readContext(options: MagpieContextRequestOptions, signal?: AbortSignal): Promise<MagpieContextSession | null>;
|
|
95
104
|
/** Read bounded, graph-ready usage and quota data through authenticated Magpie Web. */
|
|
96
105
|
readDashboard(period: MagpieDashboardPeriod, signal?: AbortSignal): Promise<MagpieUsageDashboard>;
|
|
97
106
|
/** Stream cumulative dashboard snapshots as each independent Web API part is ready. */
|
|
@@ -101,6 +110,7 @@ export declare class MagpieUsageService {
|
|
|
101
110
|
private timedDashboardRead;
|
|
102
111
|
/** Read one bounded Web API ledger page and exact-match session identities on Host. */
|
|
103
112
|
readRequestPage(options: MagpieUsageRequestOptions, signal?: AbortSignal): Promise<MagpieUsageRequestPage | null>;
|
|
113
|
+
private readRequestAggregate;
|
|
104
114
|
private readFromWeb;
|
|
105
115
|
private attachQuotaLogos;
|
|
106
116
|
private readMagpieLogoDataUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magpie-usage.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/magpie-usage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EAEpB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EACV,WAAW,EAKX,mBAAmB,EAEpB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,KAAK,EACV,qBAAqB,EAErB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAElB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,6CAA6C,CAAA;
|
|
1
|
+
{"version":3,"file":"magpie-usage.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/magpie-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
2
|
import { commandEnvironment, resolveCommandPath, runAsyncCommand, WINDOWS, withCommandSignal } from './process-utils.js';
|
|
3
3
|
import { parseMagpieWebProviders } from './magpie-management.js';
|
|
4
|
+
import { parseMagpieContextResponse } from './magpie-context.js';
|
|
4
5
|
const MAGPIE_CATALOG_TTL_MS = 60_000;
|
|
5
6
|
const MAGPIE_MODEL_METADATA_TTL_MS = 60_000;
|
|
6
7
|
const MAGPIE_FAILURE_CACHE_TTL_MS = 5_000;
|
|
@@ -81,7 +82,7 @@ export class MagpieUsageService {
|
|
|
81
82
|
this.webApi = options.webApi;
|
|
82
83
|
this.onDashboardTiming = options.onDashboardTiming;
|
|
83
84
|
}
|
|
84
|
-
async read(session, signal, includeRoute = false, dshSessionId) {
|
|
85
|
+
async read(session, signal, includeRoute = false, dshSessionId, options = {}) {
|
|
85
86
|
signal?.throwIfAborted();
|
|
86
87
|
const agent = magpieAgentForAdapter(session.adapterId);
|
|
87
88
|
const requestedModelId = cleanText(session.modelId);
|
|
@@ -89,24 +90,25 @@ export class MagpieUsageService {
|
|
|
89
90
|
return null;
|
|
90
91
|
const providerSessionId = cleanText(session.providerSessionId);
|
|
91
92
|
const nativeSessionId = cleanText(dshSessionId);
|
|
92
|
-
// Native DSH requests
|
|
93
|
-
//
|
|
94
|
-
|
|
93
|
+
// Native DSH requests are tagged with the DSH session ID. Keep the older
|
|
94
|
+
// provider-session fallback for callers that do not have the native ID yet,
|
|
95
|
+
// and for Magpie ledgers written before native_session tagging was added.
|
|
96
|
+
const sessionId = agent === 'dsh'
|
|
97
|
+
? nativeSessionId ?? providerSessionId
|
|
98
|
+
: providerSessionId !== null && providerSessionId !== nativeSessionId ? providerSessionId : null;
|
|
99
|
+
// Current Codex and Command Code gateway requests carry the Host's native
|
|
100
|
+
// session tag. Codex may use it only after the caller confirms Magpie.
|
|
101
|
+
const nativeTagged = agent === 'dsh' || agent === 'commandcode'
|
|
102
|
+
|| agent === 'codex' && options.allowPendingSession === true;
|
|
103
|
+
const magpieSessionId = nativeTagged ? nativeSessionId ?? sessionId : sessionId;
|
|
104
|
+
// Older gateways can still index the same session by its provider ID.
|
|
105
|
+
const fallbackSessionId = nativeTagged
|
|
106
|
+
&& nativeSessionId !== null && providerSessionId !== null && nativeSessionId !== providerSessionId
|
|
95
107
|
? providerSessionId
|
|
96
|
-
: agent === 'dsh' ? nativeSessionId : null;
|
|
97
|
-
// Command Code's ACP child tags loopback Magpie requests with the DSH
|
|
98
|
-
// session ID injected by the Host, so the ledger key differs from the ACP
|
|
99
|
-
// session ID shown in the panel. Older Hosts without that ID keep the
|
|
100
|
-
// provider ID so the panel still reports the same "no usage" state.
|
|
101
|
-
const magpieSessionId = agent === 'commandcode' ? nativeSessionId ?? sessionId : sessionId;
|
|
102
|
-
// During a rolling update the ACP child may still tag requests with its ACP
|
|
103
|
-
// session ID; fall back to it when the DSH-ID ledger row is absent.
|
|
104
|
-
const fallbackSessionId = agent === 'commandcode' && nativeSessionId !== null && sessionId !== null && nativeSessionId !== sessionId
|
|
105
|
-
? sessionId
|
|
106
108
|
: null;
|
|
107
|
-
if (magpieSessionId === null)
|
|
109
|
+
if (magpieSessionId === null && !options.allowPendingSession)
|
|
108
110
|
return null;
|
|
109
|
-
return this.readFromWeb(agent, requestedModelId, sessionId, magpieSessionId, fallbackSessionId, signal, includeRoute);
|
|
111
|
+
return this.readFromWeb(agent, requestedModelId, sessionId, magpieSessionId, fallbackSessionId, signal, includeRoute, options.allowPendingSession === true);
|
|
110
112
|
}
|
|
111
113
|
/**
|
|
112
114
|
* Mark Magpie models and enrich their public metadata. The marker is
|
|
@@ -192,6 +194,15 @@ export class MagpieUsageService {
|
|
|
192
194
|
const metadata = await this.loadModelMetadata(catalog, signal);
|
|
193
195
|
return metadata?.get(id) ?? null;
|
|
194
196
|
}
|
|
197
|
+
/** Read one exact, sanitized context session from Magpie's internal Web API. */
|
|
198
|
+
async readContext(options, signal) {
|
|
199
|
+
signal?.throwIfAborted();
|
|
200
|
+
const days = options.days === undefined ? 7 : Math.max(1, Math.min(30, Math.trunc(options.days)));
|
|
201
|
+
const response = await this.readWebJson(`/api/context?days=${days}`, signal);
|
|
202
|
+
if (!response.ok)
|
|
203
|
+
return null;
|
|
204
|
+
return parseMagpieContextResponse(response.value, options);
|
|
205
|
+
}
|
|
195
206
|
/** Read bounded, graph-ready usage and quota data through authenticated Magpie Web. */
|
|
196
207
|
async readDashboard(period, signal) {
|
|
197
208
|
signal?.throwIfAborted();
|
|
@@ -326,6 +337,9 @@ export class MagpieUsageService {
|
|
|
326
337
|
: [...new Set([sessionId, ...sessionIds.filter((value) => value !== null)])];
|
|
327
338
|
if (requestedSessionIds.length > MAX_MAGPIE_SESSION_IDENTITIES)
|
|
328
339
|
return null;
|
|
340
|
+
// Usage summaries are returned separately from the request ledger. This keeps
|
|
341
|
+
// the cards complete without preloading rows that belong to later pages.
|
|
342
|
+
const aggregatePromise = this.readRequestAggregate(options.period, sessionAgent, requestedSessionIds, signal);
|
|
329
343
|
const readCandidatePage = async (offset, limit, querySessionId) => {
|
|
330
344
|
const query = new URLSearchParams({ period: magpieWebPeriod(options.period), limit: String(limit), offset: String(offset) });
|
|
331
345
|
if (querySessionId !== null)
|
|
@@ -355,6 +369,7 @@ export class MagpieUsageService {
|
|
|
355
369
|
hasMore: page.total === null ? page.rows.length >= options.limit : options.offset + page.rows.length < page.total,
|
|
356
370
|
sessionId,
|
|
357
371
|
sessionAgent,
|
|
372
|
+
aggregate: await aggregatePromise,
|
|
358
373
|
items: items.slice(0, options.limit),
|
|
359
374
|
};
|
|
360
375
|
}
|
|
@@ -422,29 +437,63 @@ export class MagpieUsageService {
|
|
|
422
437
|
hasMore: !fullyScanned || matching.length > requestedEnd,
|
|
423
438
|
sessionId,
|
|
424
439
|
sessionAgent,
|
|
440
|
+
aggregate: await aggregatePromise,
|
|
425
441
|
items: matching.slice(options.offset, requestedEnd),
|
|
426
442
|
};
|
|
427
443
|
}
|
|
428
|
-
async
|
|
444
|
+
async readRequestAggregate(period, sessionAgent, sessionIds, signal) {
|
|
445
|
+
const response = await this.readWebJson(`/api/usage?period=${magpieWebPeriod(period)}`, signal);
|
|
446
|
+
if (!response.ok)
|
|
447
|
+
return null;
|
|
448
|
+
const root = usageRecord(response.value);
|
|
449
|
+
if (root === null)
|
|
450
|
+
return null;
|
|
451
|
+
if (sessionIds.length === 0)
|
|
452
|
+
return readMagpieUsageMetrics(root);
|
|
453
|
+
const sessions = root.sessions;
|
|
454
|
+
if (!Array.isArray(sessions) || sessionAgent === null)
|
|
455
|
+
return null;
|
|
456
|
+
const acceptedAgents = MAGPIE_USAGE_AGENT_ALIASES[sessionAgent] ?? [sessionAgent];
|
|
457
|
+
const acceptedIds = new Set(sessionIds);
|
|
458
|
+
let aggregate = null;
|
|
459
|
+
for (const item of sessions) {
|
|
460
|
+
const record = asRecord(item);
|
|
461
|
+
if (record === null || !acceptedIds.has(usageSessionId(record) ?? '')
|
|
462
|
+
|| !acceptedAgents.includes(cleanText(record.agent) ?? ''))
|
|
463
|
+
continue;
|
|
464
|
+
aggregate = aggregate === null
|
|
465
|
+
? readMagpieUsageMetrics(record)
|
|
466
|
+
: sumMagpieUsageMetrics(aggregate, readMagpieUsageMetrics(record));
|
|
467
|
+
}
|
|
468
|
+
return aggregate;
|
|
469
|
+
}
|
|
470
|
+
async readFromWeb(agent, modelId, sessionId, magpieSessionId, fallbackSessionId, signal, includeRoute, allowPendingSession) {
|
|
429
471
|
const capturedAt = new Date(this.now()).toISOString();
|
|
430
|
-
const [usageResult, quotaResult] = await Promise.all([
|
|
472
|
+
const [usageResult, sessionResult, quotaResult] = await Promise.all([
|
|
431
473
|
this.readWebJson('/api/usage?period=today', signal),
|
|
474
|
+
this.readWebJson('/api/usage?period=all', signal),
|
|
432
475
|
this.readWebJson('/api/usage/quotas', signal),
|
|
433
476
|
]);
|
|
434
477
|
const aggregate = usageResult.ok ? readTotals(usageResult.value) : null;
|
|
435
|
-
const primarySession =
|
|
436
|
-
? readSession(
|
|
478
|
+
const primarySession = sessionResult.ok && magpieSessionId !== null
|
|
479
|
+
? readSession(sessionResult.value, agent, magpieSessionId)
|
|
437
480
|
: null;
|
|
438
|
-
const fallbackSession = primarySession === null &&
|
|
439
|
-
? readSession(
|
|
481
|
+
const fallbackSession = primarySession === null && sessionResult.ok && fallbackSessionId !== null
|
|
482
|
+
? readSession(sessionResult.value, agent, fallbackSessionId)
|
|
440
483
|
: null;
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
484
|
+
// Magpie's all-time summary can omit a session already present today.
|
|
485
|
+
// Preserve that exact daily match with its scope, rather than hiding it.
|
|
486
|
+
const todaySession = primarySession === null && fallbackSession === null && allowPendingSession && usageResult.ok
|
|
487
|
+
? (magpieSessionId === null ? null : readSession(usageResult.value, agent, magpieSessionId))
|
|
488
|
+
?? (fallbackSessionId === null ? null : readSession(usageResult.value, agent, fallbackSessionId))
|
|
489
|
+
: null;
|
|
490
|
+
const sessionUsage = primarySession ?? fallbackSession ?? todaySession;
|
|
491
|
+
const resolvedSessionId = sessionUsage?.id ?? magpieSessionId;
|
|
492
|
+
if (sessionUsage === null && (!allowPendingSession || aggregate === null))
|
|
444
493
|
return null;
|
|
445
|
-
const canReadRoute = includeRoute && resolvedSessionId !== null && resolvedSessionId.length <= 128;
|
|
494
|
+
const canReadRoute = sessionUsage !== null && includeRoute && resolvedSessionId !== null && resolvedSessionId.length <= 128;
|
|
446
495
|
const routeHistoryResult = canReadRoute
|
|
447
|
-
? await this.readWebJson(`/api/usage/requests?period=
|
|
496
|
+
? await this.readWebJson(`/api/usage/requests?period=all&offset=0&limit=100&q=${encodeURIComponent(resolvedSessionId)}`, signal)
|
|
448
497
|
: { ok: false };
|
|
449
498
|
const routeRows = routeHistoryResult.ok ? asRecord(routeHistoryResult.value)?.rows : null;
|
|
450
499
|
const routeHistoryValid = Array.isArray(routeRows) && routeRows.length <= 500;
|
|
@@ -458,7 +507,7 @@ export class MagpieUsageService {
|
|
|
458
507
|
const route = routeHistory[0]?.route ?? null;
|
|
459
508
|
const routeStatus = route !== null
|
|
460
509
|
? 'available'
|
|
461
|
-
: resolvedSessionId === null
|
|
510
|
+
: sessionUsage === null || resolvedSessionId === null
|
|
462
511
|
? 'session-unavailable'
|
|
463
512
|
: !includeRoute
|
|
464
513
|
? 'not-requested'
|
|
@@ -470,7 +519,7 @@ export class MagpieUsageService {
|
|
|
470
519
|
providerFromRoute(route),
|
|
471
520
|
...routeHistory.map((record) => record.provider),
|
|
472
521
|
].filter((provider) => provider !== null))];
|
|
473
|
-
const upstreamProviders = routeProviders.length > 0
|
|
522
|
+
const upstreamProviders = sessionUsage === null ? [] : routeProviders.length > 0
|
|
474
523
|
? routeProviders
|
|
475
524
|
: [providerFromModelId(modelId, agent)].filter((provider) => provider !== null);
|
|
476
525
|
const upstreamProvider = upstreamProviders[0] ?? null;
|
|
@@ -489,9 +538,10 @@ export class MagpieUsageService {
|
|
|
489
538
|
capturedAt,
|
|
490
539
|
usageStatus: aggregate === null ? 'unavailable' : 'available',
|
|
491
540
|
aggregate,
|
|
492
|
-
sessionId,
|
|
541
|
+
sessionId: sessionId ?? (sessionUsage === null ? null : resolvedSessionId),
|
|
493
542
|
...(resolvedSessionId === null ? {} : { requestSessionId: resolvedSessionId }),
|
|
494
543
|
session: sessionUsage,
|
|
544
|
+
...(todaySession === null ? {} : { sessionPeriod: 'today' }),
|
|
495
545
|
routeStatus,
|
|
496
546
|
route,
|
|
497
547
|
upstreamProvider,
|
|
@@ -1052,30 +1102,35 @@ export function attachMagpieSessionNames(dashboard, bindings) {
|
|
|
1052
1102
|
function mergeMagpieUsageSessions(current, row, owner) {
|
|
1053
1103
|
return {
|
|
1054
1104
|
...current,
|
|
1105
|
+
...sumMagpieUsageMetrics(current, row),
|
|
1055
1106
|
id: owner?.dshSessionId ?? current.id,
|
|
1056
1107
|
agent: owner?.agent ?? current.agent,
|
|
1057
|
-
calls: sumMagpieUsageMetric(current.calls, row.calls),
|
|
1058
|
-
errors: sumMagpieUsageMetric(current.errors, row.errors),
|
|
1059
|
-
retried: sumMagpieUsageMetric(current.retried, row.retried),
|
|
1060
|
-
inputTokens: sumMagpieUsageMetric(current.inputTokens, row.inputTokens),
|
|
1061
|
-
outputTokens: sumMagpieUsageMetric(current.outputTokens, row.outputTokens),
|
|
1062
|
-
cacheReadTokens: sumMagpieUsageMetric(current.cacheReadTokens, row.cacheReadTokens),
|
|
1063
|
-
cacheWriteTokens: sumMagpieUsageMetric(current.cacheWriteTokens, row.cacheWriteTokens),
|
|
1064
|
-
reasoningTokens: sumMagpieUsageMetric(current.reasoningTokens, row.reasoningTokens),
|
|
1065
|
-
cost: sumMagpieUsageMetric(current.cost, row.cost),
|
|
1066
|
-
unpriced: sumMagpieUsageMetric(current.unpriced, row.unpriced),
|
|
1067
|
-
credits: sumMagpieUsageMetric(current.credits, row.credits),
|
|
1068
|
-
credited: sumMagpieUsageMetric(current.credited, row.credited),
|
|
1069
|
-
timed: sumMagpieUsageMetric(current.timed, row.timed),
|
|
1070
|
-
ttftMs: sumMagpieUsageMetric(current.ttftMs, row.ttftMs),
|
|
1071
|
-
decodeMs: sumMagpieUsageMetric(current.decodeMs, row.decodeMs),
|
|
1072
|
-
decodeTokens: sumMagpieUsageMetric(current.decodeTokens, row.decodeTokens),
|
|
1073
|
-
decodeCount: sumMagpieUsageMetric(current.decodeCount, row.decodeCount),
|
|
1074
1108
|
...(current.dshSessionName === undefined && owner?.name !== null && owner?.name !== undefined
|
|
1075
1109
|
? { dshSessionName: owner.name }
|
|
1076
1110
|
: {}),
|
|
1077
1111
|
};
|
|
1078
1112
|
}
|
|
1113
|
+
function sumMagpieUsageMetrics(left, right) {
|
|
1114
|
+
return {
|
|
1115
|
+
calls: sumMagpieUsageMetric(left.calls, right.calls),
|
|
1116
|
+
errors: sumMagpieUsageMetric(left.errors, right.errors),
|
|
1117
|
+
retried: sumMagpieUsageMetric(left.retried, right.retried),
|
|
1118
|
+
inputTokens: sumMagpieUsageMetric(left.inputTokens, right.inputTokens),
|
|
1119
|
+
outputTokens: sumMagpieUsageMetric(left.outputTokens, right.outputTokens),
|
|
1120
|
+
cacheReadTokens: sumMagpieUsageMetric(left.cacheReadTokens, right.cacheReadTokens),
|
|
1121
|
+
cacheWriteTokens: sumMagpieUsageMetric(left.cacheWriteTokens, right.cacheWriteTokens),
|
|
1122
|
+
reasoningTokens: sumMagpieUsageMetric(left.reasoningTokens, right.reasoningTokens),
|
|
1123
|
+
cost: sumMagpieUsageMetric(left.cost, right.cost),
|
|
1124
|
+
unpriced: sumMagpieUsageMetric(left.unpriced, right.unpriced),
|
|
1125
|
+
credits: sumMagpieUsageMetric(left.credits, right.credits),
|
|
1126
|
+
credited: sumMagpieUsageMetric(left.credited, right.credited),
|
|
1127
|
+
timed: sumMagpieUsageMetric(left.timed, right.timed),
|
|
1128
|
+
ttftMs: sumMagpieUsageMetric(left.ttftMs, right.ttftMs),
|
|
1129
|
+
decodeMs: sumMagpieUsageMetric(left.decodeMs, right.decodeMs),
|
|
1130
|
+
decodeTokens: sumMagpieUsageMetric(left.decodeTokens, right.decodeTokens),
|
|
1131
|
+
decodeCount: sumMagpieUsageMetric(left.decodeCount, right.decodeCount),
|
|
1132
|
+
};
|
|
1133
|
+
}
|
|
1079
1134
|
function sumMagpieUsageMetric(left, right) {
|
|
1080
1135
|
return left === null && right === null ? null : (left ?? 0) + (right ?? 0);
|
|
1081
1136
|
}
|
|
@@ -1136,7 +1191,7 @@ async function readBoundedJson(response) {
|
|
|
1136
1191
|
}
|
|
1137
1192
|
}
|
|
1138
1193
|
function readTotals(value) {
|
|
1139
|
-
const record =
|
|
1194
|
+
const record = usageRecord(value);
|
|
1140
1195
|
if (record === null)
|
|
1141
1196
|
return null;
|
|
1142
1197
|
const calls = safeCount(record.calls);
|
|
@@ -1151,20 +1206,29 @@ function readTotals(value) {
|
|
|
1151
1206
|
return { calls, errors, inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens, costUsd };
|
|
1152
1207
|
}
|
|
1153
1208
|
function readSession(value, agent, sessionId) {
|
|
1154
|
-
const sessions =
|
|
1209
|
+
const sessions = usageRecord(value)?.sessions;
|
|
1155
1210
|
if (!Array.isArray(sessions))
|
|
1156
1211
|
return null;
|
|
1157
1212
|
const usageAgents = MAGPIE_USAGE_AGENT_ALIASES[agent] ?? [agent];
|
|
1158
1213
|
const row = sessions.find((item) => {
|
|
1159
1214
|
const record = asRecord(item);
|
|
1160
1215
|
const usageAgent = cleanText(record?.agent);
|
|
1161
|
-
return
|
|
1216
|
+
return usageSessionId(record) === sessionId && usageAgent !== null && usageAgents.includes(usageAgent);
|
|
1162
1217
|
});
|
|
1163
1218
|
const record = asRecord(row);
|
|
1164
1219
|
const totals = readTotals(record);
|
|
1165
1220
|
const usageAgent = cleanText(record?.agent);
|
|
1166
1221
|
return record !== null && usageAgent !== null && totals !== null ? { id: sessionId, agent: usageAgent, ...totals } : null;
|
|
1167
1222
|
}
|
|
1223
|
+
/** Magpie 0.1.14xx can wrap usage payloads in `data`; older versions do not. */
|
|
1224
|
+
function usageRecord(value) {
|
|
1225
|
+
const record = asRecord(value);
|
|
1226
|
+
const data = asRecord(record?.data);
|
|
1227
|
+
return data ?? record;
|
|
1228
|
+
}
|
|
1229
|
+
function usageSessionId(record) {
|
|
1230
|
+
return cleanText(record?.id) ?? cleanText(record?.session) ?? cleanText(record?.native_session);
|
|
1231
|
+
}
|
|
1168
1232
|
/** Read the durable request ledger when Magpie's short in-memory trace has expired. */
|
|
1169
1233
|
function readSessionRouteHistory(value, agent, sessionId, providerRecords = []) {
|
|
1170
1234
|
const rows = asRecord(value)?.rows;
|