dsh-super-code 0.0.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/LICENSE +201 -0
- package/README.md +162 -0
- package/client/index.js +920 -0
- package/cordis.patch.yml +21 -0
- package/lib/core/delegation.d.ts +59 -0
- package/lib/core/delegation.d.ts.map +1 -0
- package/lib/core/delegation.js +41 -0
- package/lib/core/delegation.js.map +1 -0
- package/lib/core/evaluation.d.ts +123 -0
- package/lib/core/evaluation.d.ts.map +1 -0
- package/lib/core/evaluation.js +180 -0
- package/lib/core/evaluation.js.map +1 -0
- package/lib/core/experiment-recipes.d.ts +5 -0
- package/lib/core/experiment-recipes.d.ts.map +1 -0
- package/lib/core/experiment-recipes.js +67 -0
- package/lib/core/experiment-recipes.js.map +1 -0
- package/lib/core/guidance.d.ts +10 -0
- package/lib/core/guidance.d.ts.map +1 -0
- package/lib/core/guidance.js +16 -0
- package/lib/core/guidance.js.map +1 -0
- package/lib/core/session-scan.d.ts +8 -0
- package/lib/core/session-scan.d.ts.map +1 -0
- package/lib/core/session-scan.js +21 -0
- package/lib/core/session-scan.js.map +1 -0
- package/lib/core/task-memory.d.ts +81 -0
- package/lib/core/task-memory.d.ts.map +1 -0
- package/lib/core/task-memory.js +158 -0
- package/lib/core/task-memory.js.map +1 -0
- package/lib/core/teams.d.ts +19 -0
- package/lib/core/teams.d.ts.map +1 -0
- package/lib/core/teams.js +40 -0
- package/lib/core/teams.js.map +1 -0
- package/lib/core/tool-evidence.d.ts +57 -0
- package/lib/core/tool-evidence.d.ts.map +1 -0
- package/lib/core/tool-evidence.js +97 -0
- package/lib/core/tool-evidence.js.map +1 -0
- package/lib/dsh/index.d.ts +6 -0
- package/lib/dsh/index.d.ts.map +1 -0
- package/lib/dsh/index.js +11 -0
- package/lib/dsh/index.js.map +1 -0
- package/lib/dsh/super-code.d.ts +22 -0
- package/lib/dsh/super-code.d.ts.map +1 -0
- package/lib/dsh/super-code.js +247 -0
- package/lib/dsh/super-code.js.map +1 -0
- package/lib/evaluate.d.ts +3 -0
- package/lib/evaluate.d.ts.map +1 -0
- package/lib/evaluate.js +40 -0
- package/lib/evaluate.js.map +1 -0
- package/lib/experiments.d.ts +77 -0
- package/lib/experiments.d.ts.map +1 -0
- package/lib/experiments.js +196 -0
- package/lib/experiments.js.map +1 -0
- package/lib/index.d.ts +13 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +14 -0
- package/lib/index.js.map +1 -0
- package/lib/super-agent-usage.d.ts +44 -0
- package/lib/super-agent-usage.d.ts.map +1 -0
- package/lib/super-agent-usage.js +203 -0
- package/lib/super-agent-usage.js.map +1 -0
- package/lib/task-memory-projection.d.ts +43 -0
- package/lib/task-memory-projection.d.ts.map +1 -0
- package/lib/task-memory-projection.js +48 -0
- package/lib/task-memory-projection.js.map +1 -0
- package/lib/task-memory-store.d.ts +35 -0
- package/lib/task-memory-store.d.ts.map +1 -0
- package/lib/task-memory-store.js +69 -0
- package/lib/task-memory-store.js.map +1 -0
- package/package.json +123 -0
- package/presets/super-code/agent.cordis.yml +50 -0
- package/presets/super-code/preset.yml +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"experiments.js","sourceRoot":"","sources":["../src/experiments.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Package-root registration lets Harness discover the browser contribution. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
declare const harnessPlugin: {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly apply: (ctx: Context) => Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
export default harnessPlugin;
|
|
8
|
+
export * from './core/teams.js';
|
|
9
|
+
export * from './core/guidance.js';
|
|
10
|
+
export * from './core/task-memory.js';
|
|
11
|
+
export * from './core/delegation.js';
|
|
12
|
+
export * from './core/tool-evidence.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,QAAA,MAAM,aAAa,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAM5F,CAAA;AAED,eAAe,aAAa,CAAA;AAE5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const harnessPlugin = {
|
|
2
|
+
name: 'super-code',
|
|
3
|
+
async apply(ctx) {
|
|
4
|
+
const adapter = await import('./dsh/index.js');
|
|
5
|
+
adapter.apply(ctx);
|
|
6
|
+
},
|
|
7
|
+
};
|
|
8
|
+
export default harnessPlugin;
|
|
9
|
+
export * from './core/teams.js';
|
|
10
|
+
export * from './core/guidance.js';
|
|
11
|
+
export * from './core/task-memory.js';
|
|
12
|
+
export * from './core/delegation.js';
|
|
13
|
+
export * from './core/tool-evidence.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,aAAa,GAA+E;IAChG,IAAI,EAAE,YAAY;IAClB,KAAK,CAAC,KAAK,CAAC,GAAG;QACb,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAC9C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;CACF,CAAA;AAED,eAAe,aAAa,CAAA;AAE5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ProjectionDefinition } from '@deepseek-ai/dsh-session-projection';
|
|
2
|
+
export interface SuperAgentUsageBuckets {
|
|
3
|
+
uncachedInputTokens: number;
|
|
4
|
+
outputTokens: number;
|
|
5
|
+
cacheReadTokens: number;
|
|
6
|
+
cacheWriteTokens: number;
|
|
7
|
+
}
|
|
8
|
+
export interface SuperAgentUsageModel extends SuperAgentUsageBuckets {
|
|
9
|
+
readonly provider: string;
|
|
10
|
+
readonly model: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SuperAgentUsageProjection {
|
|
13
|
+
readonly totals: SuperAgentUsageBuckets;
|
|
14
|
+
readonly models: Readonly<Record<string, SuperAgentUsageModel>>;
|
|
15
|
+
}
|
|
16
|
+
interface LastSample {
|
|
17
|
+
readonly turn: number;
|
|
18
|
+
readonly step: number;
|
|
19
|
+
readonly key: string;
|
|
20
|
+
readonly buckets: SuperAgentUsageBuckets;
|
|
21
|
+
}
|
|
22
|
+
export interface SuperAgentUsageState {
|
|
23
|
+
readonly totals: Readonly<Record<string, SuperAgentUsageModel>>;
|
|
24
|
+
readonly last: LastSample | null;
|
|
25
|
+
/** Most recent request route, used by attempt-only events with no message source. */
|
|
26
|
+
readonly route?: {
|
|
27
|
+
readonly provider: string;
|
|
28
|
+
readonly model: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
declare module '@deepseek-ai/dsh-session-projection/types' {
|
|
32
|
+
interface SessionProjectionStateMap {
|
|
33
|
+
superAgentUsage: SuperAgentUsageState;
|
|
34
|
+
}
|
|
35
|
+
interface SessionProjectionMap {
|
|
36
|
+
superAgentUsage: SuperAgentUsageProjection;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Durable per-model projection; retries replace the same step's sample. */
|
|
40
|
+
export declare const superAgentUsageProjectionDefinition: ProjectionDefinition<'superAgentUsage', SuperAgentUsageState> & {
|
|
41
|
+
wire: NonNullable<ProjectionDefinition<'superAgentUsage', SuperAgentUsageState>['wire']>;
|
|
42
|
+
};
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=super-agent-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"super-agent-usage.d.ts","sourceRoot":"","sources":["../src/super-agent-usage.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAI/E,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAA;CAChE;AAED,UAAU,UAAU;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC/D,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IAChC,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CACvE;AAED,OAAO,QAAQ,2CAA2C,CAAC;IACzD,UAAU,yBAAyB;QACjC,eAAe,EAAE,oBAAoB,CAAA;KACtC;IACD,UAAU,oBAAoB;QAC5B,eAAe,EAAE,yBAAyB,CAAA;KAC3C;CACF;AA0JD,4EAA4E;AAC5E,eAAO,MAAM,mCAAmC,EAAE,oBAAoB,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG;IAChH,IAAI,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;CAoDzF,CAAA"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-side durable token accounting for super-code conversations.
|
|
3
|
+
*
|
|
4
|
+
* Harness's generic `tokenUsage` projection intentionally exposes only an
|
|
5
|
+
* aggregate. This projection keeps the same disjoint buckets while retaining
|
|
6
|
+
* the provider/model route, so the browser can explain which model consumed
|
|
7
|
+
* the current session's tokens without scanning or replaying the log.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
const bucketsSchema = z.object({
|
|
11
|
+
uncachedInputTokens: z.number().int().nonnegative(),
|
|
12
|
+
outputTokens: z.number().int().nonnegative(),
|
|
13
|
+
cacheReadTokens: z.number().int().nonnegative(),
|
|
14
|
+
cacheWriteTokens: z.number().int().nonnegative(),
|
|
15
|
+
}).strict();
|
|
16
|
+
const modelSchema = bucketsSchema.extend({ provider: z.string(), model: z.string() }).strict();
|
|
17
|
+
const projectionSchema = z.object({
|
|
18
|
+
totals: bucketsSchema,
|
|
19
|
+
models: z.record(z.string(), modelSchema),
|
|
20
|
+
}).strict();
|
|
21
|
+
const stateSchema = z.object({
|
|
22
|
+
totals: z.record(z.string(), modelSchema),
|
|
23
|
+
last: z.object({
|
|
24
|
+
turn: z.number().int().nonnegative(),
|
|
25
|
+
step: z.number().int().nonnegative(),
|
|
26
|
+
key: z.string(),
|
|
27
|
+
buckets: bucketsSchema,
|
|
28
|
+
}).nullable(),
|
|
29
|
+
route: z.object({ provider: z.string(), model: z.string() }).strict().optional(),
|
|
30
|
+
}).strict();
|
|
31
|
+
const zero = () => ({
|
|
32
|
+
uncachedInputTokens: 0,
|
|
33
|
+
outputTokens: 0,
|
|
34
|
+
cacheReadTokens: 0,
|
|
35
|
+
cacheWriteTokens: 0,
|
|
36
|
+
});
|
|
37
|
+
const fromUsage = (usage) => ({
|
|
38
|
+
uncachedInputTokens: usage.inputTokens,
|
|
39
|
+
outputTokens: usage.outputTokens,
|
|
40
|
+
cacheReadTokens: usage.cacheReadTokens ?? 0,
|
|
41
|
+
cacheWriteTokens: usage.cacheWriteTokens ?? 0,
|
|
42
|
+
});
|
|
43
|
+
const sameBuckets = (left, right) => left.uncachedInputTokens === right.uncachedInputTokens
|
|
44
|
+
&& left.outputTokens === right.outputTokens
|
|
45
|
+
&& left.cacheReadTokens === right.cacheReadTokens
|
|
46
|
+
&& left.cacheWriteTokens === right.cacheWriteTokens;
|
|
47
|
+
function modelKey(provider, model) {
|
|
48
|
+
return `${provider}/${model}`;
|
|
49
|
+
}
|
|
50
|
+
function addModel(totals, key, provider, model, delta) {
|
|
51
|
+
const previous = totals[key];
|
|
52
|
+
const next = {
|
|
53
|
+
provider,
|
|
54
|
+
model,
|
|
55
|
+
uncachedInputTokens: (previous?.uncachedInputTokens ?? 0) + delta.uncachedInputTokens,
|
|
56
|
+
outputTokens: (previous?.outputTokens ?? 0) + delta.outputTokens,
|
|
57
|
+
cacheReadTokens: (previous?.cacheReadTokens ?? 0) + delta.cacheReadTokens,
|
|
58
|
+
cacheWriteTokens: (previous?.cacheWriteTokens ?? 0) + delta.cacheWriteTokens,
|
|
59
|
+
};
|
|
60
|
+
// A replacement can only subtract a sample that was previously added. The
|
|
61
|
+
// guard keeps malformed/foreign events from creating negative durable data.
|
|
62
|
+
if (next.uncachedInputTokens < 0 || next.outputTokens < 0 || next.cacheReadTokens < 0 || next.cacheWriteTokens < 0) {
|
|
63
|
+
return totals;
|
|
64
|
+
}
|
|
65
|
+
return { ...totals, [key]: next };
|
|
66
|
+
}
|
|
67
|
+
function delta(left, right) {
|
|
68
|
+
return {
|
|
69
|
+
uncachedInputTokens: left.uncachedInputTokens - right.uncachedInputTokens,
|
|
70
|
+
outputTokens: left.outputTokens - right.outputTokens,
|
|
71
|
+
cacheReadTokens: left.cacheReadTokens - right.cacheReadTokens,
|
|
72
|
+
cacheWriteTokens: left.cacheWriteTokens - right.cacheWriteTokens,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function sourceOf(event) {
|
|
76
|
+
const source = event.data.message.source;
|
|
77
|
+
// Old or third-party adapters may omit one route field. Preserve their
|
|
78
|
+
// billed usage under an explicit bucket instead of silently dropping it.
|
|
79
|
+
const provider = source.kind === 'model' && source.provider.trim() !== '' ? source.provider.trim() : 'unknown';
|
|
80
|
+
const model = source.kind === 'model' && source.model.trim() !== '' ? source.model.trim() : 'unknown';
|
|
81
|
+
return { provider, model };
|
|
82
|
+
}
|
|
83
|
+
function routeOf(value) {
|
|
84
|
+
if (typeof value !== 'object' || value === null)
|
|
85
|
+
return undefined;
|
|
86
|
+
const candidate = value;
|
|
87
|
+
if (typeof candidate.provider !== 'string' || typeof candidate.model !== 'string')
|
|
88
|
+
return undefined;
|
|
89
|
+
const provider = candidate.provider.trim();
|
|
90
|
+
const model = candidate.model.trim();
|
|
91
|
+
return provider !== '' && model !== '' ? { provider, model } : undefined;
|
|
92
|
+
}
|
|
93
|
+
/** Read the final usage chunk without importing the optional newer stream helper. */
|
|
94
|
+
function streamUsageOf(stream) {
|
|
95
|
+
if (!Array.isArray(stream))
|
|
96
|
+
return undefined;
|
|
97
|
+
for (let index = stream.length - 1; index >= 0; index -= 1) {
|
|
98
|
+
const chunk = stream[index];
|
|
99
|
+
if (typeof chunk !== 'object' || chunk === null)
|
|
100
|
+
continue;
|
|
101
|
+
const candidate = chunk;
|
|
102
|
+
const payload = candidate.chunk ?? candidate;
|
|
103
|
+
if (typeof payload !== 'object' || payload === null)
|
|
104
|
+
continue;
|
|
105
|
+
const usage = payload.type === 'usage'
|
|
106
|
+
? payload.usage
|
|
107
|
+
: candidate.type === 'usage' ? candidate.usage : undefined;
|
|
108
|
+
if (typeof usage !== 'object' || usage === null)
|
|
109
|
+
continue;
|
|
110
|
+
const value = usage;
|
|
111
|
+
if (typeof value.inputTokens === 'number' && typeof value.outputTokens === 'number')
|
|
112
|
+
return value;
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
function isAttemptEvent(event) {
|
|
117
|
+
return event.type === 'assistant/attempt';
|
|
118
|
+
}
|
|
119
|
+
function usageOf(event) {
|
|
120
|
+
if (event.type === 'assistant/message') {
|
|
121
|
+
return event.data.usage ?? streamUsageOf(event.data.stream);
|
|
122
|
+
}
|
|
123
|
+
if (isAttemptEvent(event))
|
|
124
|
+
return streamUsageOf(event.data.stream);
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
function eventRoute(event, fallback) {
|
|
128
|
+
if (event.type === 'assistant/message')
|
|
129
|
+
return sourceOf(event);
|
|
130
|
+
if (event.type === 'request/context')
|
|
131
|
+
return routeOf(event.data);
|
|
132
|
+
if (event.type === 'request/header')
|
|
133
|
+
return routeOf(event.data.header?.config);
|
|
134
|
+
return fallback;
|
|
135
|
+
}
|
|
136
|
+
function totalsOf(models) {
|
|
137
|
+
const result = zero();
|
|
138
|
+
for (const model of Object.values(models)) {
|
|
139
|
+
result.uncachedInputTokens += model.uncachedInputTokens;
|
|
140
|
+
result.outputTokens += model.outputTokens;
|
|
141
|
+
result.cacheReadTokens += model.cacheReadTokens;
|
|
142
|
+
result.cacheWriteTokens += model.cacheWriteTokens;
|
|
143
|
+
}
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
/** Durable per-model projection; retries replace the same step's sample. */
|
|
147
|
+
export const superAgentUsageProjectionDefinition = {
|
|
148
|
+
key: 'superAgentUsage',
|
|
149
|
+
stateVersion: 1,
|
|
150
|
+
stateSchema,
|
|
151
|
+
init: (_header, _inheritedEventCount) => ({ totals: {}, last: null }),
|
|
152
|
+
apply: (state, event) => {
|
|
153
|
+
// Retry boundaries end the replacement slot. The event is supplied by the
|
|
154
|
+
// optional retry package, so use a string guard to keep this plugin usable
|
|
155
|
+
// with Harness profiles that do not compose that package's type merge.
|
|
156
|
+
if (event.type === 'llm/retry-started') {
|
|
157
|
+
const data = event.data;
|
|
158
|
+
return state.last !== null
|
|
159
|
+
&& state.last.turn === data?.turn
|
|
160
|
+
&& state.last.step === data?.step
|
|
161
|
+
? { ...state, last: null }
|
|
162
|
+
: state;
|
|
163
|
+
}
|
|
164
|
+
const route = eventRoute(event, state.route);
|
|
165
|
+
if (event.type === 'request/context' || event.type === 'request/header') {
|
|
166
|
+
if (route === undefined)
|
|
167
|
+
return state;
|
|
168
|
+
if (state.route?.provider === route.provider && state.route.model === route.model)
|
|
169
|
+
return state;
|
|
170
|
+
return { ...state, route };
|
|
171
|
+
}
|
|
172
|
+
if (event.type !== 'assistant/message' && !isAttemptEvent(event))
|
|
173
|
+
return state;
|
|
174
|
+
const usage = usageOf(event);
|
|
175
|
+
if (usage === undefined)
|
|
176
|
+
return state;
|
|
177
|
+
const source = event.type === 'assistant/message'
|
|
178
|
+
? sourceOf(event)
|
|
179
|
+
: route ?? { provider: 'unknown', model: 'unknown' };
|
|
180
|
+
const buckets = fromUsage(usage);
|
|
181
|
+
const key = modelKey(source.provider, source.model);
|
|
182
|
+
const coordinates = event.type === 'assistant/message'
|
|
183
|
+
? event.data
|
|
184
|
+
: event.data;
|
|
185
|
+
if (state.last !== null && state.last.turn === coordinates.turn && state.last.step === coordinates.step
|
|
186
|
+
&& state.last.key === key && sameBuckets(state.last.buckets, buckets))
|
|
187
|
+
return state;
|
|
188
|
+
let totals = state.totals;
|
|
189
|
+
if (state.last !== null && state.last.turn === coordinates.turn && state.last.step === coordinates.step) {
|
|
190
|
+
const previous = totals[state.last.key];
|
|
191
|
+
if (previous !== undefined) {
|
|
192
|
+
totals = addModel(totals, state.last.key, previous.provider, previous.model, delta(zero(), state.last.buckets));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
totals = addModel(totals, key, source.provider, source.model, buckets);
|
|
196
|
+
return { ...state, totals, last: { turn: coordinates.turn, step: coordinates.step, key, buckets } };
|
|
197
|
+
},
|
|
198
|
+
wire: {
|
|
199
|
+
viewSchema: projectionSchema,
|
|
200
|
+
view: state => ({ totals: totalsOf(state.totals), models: state.totals }),
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=super-agent-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"super-agent-usage.js","sourceRoot":"","sources":["../src/super-agent-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ProjectionDefinition } from '@deepseek-ai/dsh-session-projection';
|
|
2
|
+
import type { SessionEvent } from '@deepseek-ai/dsh-session';
|
|
3
|
+
import type { TaskMemoryState, TaskMemoryEvent } from './core/task-memory.js';
|
|
4
|
+
export interface TaskMemoryView {
|
|
5
|
+
tasks: {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
status: string;
|
|
9
|
+
}[];
|
|
10
|
+
current: {
|
|
11
|
+
kind: 'none';
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'task';
|
|
14
|
+
id: string;
|
|
15
|
+
title: string;
|
|
16
|
+
goal: string;
|
|
17
|
+
status: string;
|
|
18
|
+
next: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** The browser needs a task summary, never the durable source quotes or evidence. */
|
|
22
|
+
export declare function taskMemoryView(state: TaskMemoryState): TaskMemoryView;
|
|
23
|
+
export declare const TASK_MEMORY_SOURCE = "dsh-super-code/task-memory/v1";
|
|
24
|
+
/** Known host message vocabulary keeps external plugin records resumable. */
|
|
25
|
+
export declare function taskMemoryEventOf(event: SessionEvent): {
|
|
26
|
+
kind: 'record';
|
|
27
|
+
record: TaskMemoryEvent;
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'unrelated';
|
|
30
|
+
};
|
|
31
|
+
declare module '@deepseek-ai/dsh-session-projection/types' {
|
|
32
|
+
interface SessionProjectionStateMap {
|
|
33
|
+
superCodeTasks: TaskMemoryState;
|
|
34
|
+
}
|
|
35
|
+
interface SessionProjectionMap {
|
|
36
|
+
superCodeTasks: TaskMemoryView;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Host checkpoints restore the bounded working set without summarizing summaries. */
|
|
40
|
+
export declare const taskMemoryProjection: ProjectionDefinition<'superCodeTasks', TaskMemoryState> & {
|
|
41
|
+
wire: NonNullable<ProjectionDefinition<'superCodeTasks', TaskMemoryState>['wire']>;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=task-memory-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-memory-projection.d.ts","sourceRoot":"","sources":["../src/task-memory-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAG7E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACtD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACpH;AAOD,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAOrE;AAED,eAAO,MAAM,kBAAkB,kCAAkC,CAAA;AAIjE,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAM1H;AACD,OAAO,QAAQ,2CAA2C,CAAC;IACzD,UAAU,yBAAyB;QAAG,cAAc,EAAE,eAAe,CAAA;KAAE;IACvE,UAAU,oBAAoB;QAAG,cAAc,EAAE,cAAc,CAAA;KAAE;CAClE;AAED,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG;IAC3F,IAAI,EAAE,WAAW,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;CAanF,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { emptyTaskMemory, foldTaskMemory, taskMemoryStateSchema, taskMemoryEventSchema } from './core/task-memory.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
const viewSchema = z.object({
|
|
4
|
+
tasks: z.array(z.object({ id: z.string(), title: z.string(), status: z.string() }).strict()),
|
|
5
|
+
current: z.discriminatedUnion('kind', [z.object({ kind: z.literal('none') }).strict(),
|
|
6
|
+
z.object({ kind: z.literal('task'), id: z.string(), title: z.string(), goal: z.string(), status: z.string(), next: z.string() }).strict()]),
|
|
7
|
+
}).strict();
|
|
8
|
+
/** The browser needs a task summary, never the durable source quotes or evidence. */
|
|
9
|
+
export function taskMemoryView(state) {
|
|
10
|
+
const tasks = Object.values(state.tasks).map(({ id, title, status }) => ({ id, title, status }));
|
|
11
|
+
if (state.focus.kind === 'none')
|
|
12
|
+
return { tasks, current: { kind: 'none' } };
|
|
13
|
+
const task = state.tasks[state.focus.id];
|
|
14
|
+
if (!task)
|
|
15
|
+
throw new Error('Task memory focus is missing');
|
|
16
|
+
const { id, title, goal, status, next } = task;
|
|
17
|
+
return { tasks, current: { kind: 'task', id, title, goal, status, next } };
|
|
18
|
+
}
|
|
19
|
+
export const TASK_MEMORY_SOURCE = 'dsh-super-code/task-memory/v1';
|
|
20
|
+
// Persisted records from before the package rename must remain readable.
|
|
21
|
+
const LEGACY_TASK_MEMORY_SOURCE = 'dsh-super-agent/task-memory/v1';
|
|
22
|
+
/** Known host message vocabulary keeps external plugin records resumable. */
|
|
23
|
+
export function taskMemoryEventOf(event) {
|
|
24
|
+
if (event.type !== 'user/message' || event.data.source.kind !== 'plugin')
|
|
25
|
+
return { kind: 'unrelated' };
|
|
26
|
+
if (event.data.source.plugin !== TASK_MEMORY_SOURCE && event.data.source.plugin !== LEGACY_TASK_MEMORY_SOURCE)
|
|
27
|
+
return { kind: 'unrelated' };
|
|
28
|
+
const content = event.data.content;
|
|
29
|
+
if (content.length !== 1 || content[0]?.type !== 'text')
|
|
30
|
+
throw new Error('Malformed task-memory record');
|
|
31
|
+
return { kind: 'record', record: taskMemoryEventSchema.parse(JSON.parse(content[0].text)) };
|
|
32
|
+
}
|
|
33
|
+
/** Host checkpoints restore the bounded working set without summarizing summaries. */
|
|
34
|
+
export const taskMemoryProjection = {
|
|
35
|
+
key: 'superCodeTasks', stateVersion: 1, stateSchema: taskMemoryStateSchema,
|
|
36
|
+
init: () => emptyTaskMemory(),
|
|
37
|
+
apply: (state, event) => {
|
|
38
|
+
const record = taskMemoryEventOf(event);
|
|
39
|
+
if (record.kind === 'record')
|
|
40
|
+
return foldTaskMemory(state, record.record);
|
|
41
|
+
if (event.type === 'user/message' && event.data.source.kind === 'user') {
|
|
42
|
+
return { ...state, recentSources: [...state.recentSources.slice(-7), event.seq] };
|
|
43
|
+
}
|
|
44
|
+
return state;
|
|
45
|
+
},
|
|
46
|
+
wire: { viewSchema, view: taskMemoryView },
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=task-memory-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-memory-projection.js","sourceRoot":"","sources":["../src/task-memory-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import type { Session } from '@deepseek-ai/dsh-session';
|
|
3
|
+
import type { TaskMemoryEvent, TaskMemoryState } from './core/task-memory.js';
|
|
4
|
+
type MemoryChange = TaskMemoryEvent | {
|
|
5
|
+
kind: 'unchanged';
|
|
6
|
+
id: string;
|
|
7
|
+
revision: number;
|
|
8
|
+
};
|
|
9
|
+
export interface MemoryReceipt {
|
|
10
|
+
id: string;
|
|
11
|
+
revision?: number;
|
|
12
|
+
eventSeq?: number;
|
|
13
|
+
unchanged?: true;
|
|
14
|
+
}
|
|
15
|
+
export interface MemorySnapshot {
|
|
16
|
+
state: TaskMemoryState;
|
|
17
|
+
end: number;
|
|
18
|
+
}
|
|
19
|
+
/** One session write barrier, including recovery of an unconfirmed checkpoint. */
|
|
20
|
+
export declare class TaskMemoryStore {
|
|
21
|
+
private readonly ctx;
|
|
22
|
+
private readonly maxContextBytes;
|
|
23
|
+
private readonly pending;
|
|
24
|
+
private readonly locks;
|
|
25
|
+
constructor(ctx: Context, maxContextBytes: number);
|
|
26
|
+
isPending(session: Session): boolean;
|
|
27
|
+
current(session: Session): TaskMemoryState;
|
|
28
|
+
private checkpoint;
|
|
29
|
+
private access;
|
|
30
|
+
/** Capture a confirmed immutable view; callers perform scans outside the barrier. */
|
|
31
|
+
read(session: Session, signal: AbortSignal): Promise<MemorySnapshot>;
|
|
32
|
+
write(session: Session, signal: AbortSignal, decide: (state: TaskMemoryState) => MemoryChange): Promise<MemoryReceipt>;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=task-memory-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-memory-store.d.ts","sourceRoot":"","sources":["../src/task-memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAIvD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE7E,KAAK,YAAY,GAAG,eAAe,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AACzF,MAAM,WAAW,aAAa;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE;AACrG,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAEvE,kFAAkF;AAClF,qBAAa,eAAe;IAId,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAW,OAAO,CAAC,QAAQ,CAAC,eAAe;IAH3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2C;gBAEpC,GAAG,EAAE,OAAO,EAAmB,eAAe,EAAE,MAAM;IAEnF,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAEpC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe;YAM5B,UAAU;YAKV,MAAM;IAapB,qFAAqF;IACrF,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CAkBvH"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createUserMessage } from '@deepseek-ai/dsh-llm';
|
|
2
|
+
import { TASK_MEMORY_SOURCE } from './task-memory-projection.js';
|
|
3
|
+
import { foldTaskMemory, taskMemoryContext } from './core/task-memory.js';
|
|
4
|
+
/** One session write barrier, including recovery of an unconfirmed checkpoint. */
|
|
5
|
+
export class TaskMemoryStore {
|
|
6
|
+
ctx;
|
|
7
|
+
maxContextBytes;
|
|
8
|
+
pending = new WeakSet();
|
|
9
|
+
locks = new WeakMap();
|
|
10
|
+
constructor(ctx, maxContextBytes) {
|
|
11
|
+
this.ctx = ctx;
|
|
12
|
+
this.maxContextBytes = maxContextBytes;
|
|
13
|
+
}
|
|
14
|
+
isPending(session) { return this.pending.has(session); }
|
|
15
|
+
current(session) {
|
|
16
|
+
const state = this.ctx.sessionProjections.stateOf(session, 'superCodeTasks');
|
|
17
|
+
if (state === undefined)
|
|
18
|
+
throw new Error('super-code task projection is unavailable');
|
|
19
|
+
return state;
|
|
20
|
+
}
|
|
21
|
+
async checkpoint(session) {
|
|
22
|
+
if (!await this.ctx.sessions.flush(session))
|
|
23
|
+
throw new Error('No host persistence checkpoint is configured; task memory is not durable');
|
|
24
|
+
this.pending.delete(session);
|
|
25
|
+
}
|
|
26
|
+
async access(session, signal, run) {
|
|
27
|
+
const previous = this.locks.get(session) ?? Promise.resolve();
|
|
28
|
+
const operation = previous.catch(() => { }).then(async () => {
|
|
29
|
+
signal.throwIfAborted();
|
|
30
|
+
if (this.pending.has(session))
|
|
31
|
+
await this.checkpoint(session);
|
|
32
|
+
signal.throwIfAborted();
|
|
33
|
+
return run();
|
|
34
|
+
});
|
|
35
|
+
this.locks.set(session, operation);
|
|
36
|
+
try {
|
|
37
|
+
return await operation;
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
if (this.locks.get(session) === operation)
|
|
41
|
+
this.locks.delete(session);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Capture a confirmed immutable view; callers perform scans outside the barrier. */
|
|
45
|
+
read(session, signal) {
|
|
46
|
+
return this.access(session, signal, () => ({ state: this.current(session), end: session.seq }));
|
|
47
|
+
}
|
|
48
|
+
write(session, signal, decide) {
|
|
49
|
+
return this.access(session, signal, async () => {
|
|
50
|
+
const state = this.current(session);
|
|
51
|
+
const change = decide(state);
|
|
52
|
+
if (change.kind === 'unchanged')
|
|
53
|
+
return { id: change.id, revision: change.revision, unchanged: true };
|
|
54
|
+
const next = foldTaskMemory(state, change);
|
|
55
|
+
// Every possible focus must fit, including room for future source identities.
|
|
56
|
+
const preview = { ...next, recentSources: Array(8).fill(Number.MAX_SAFE_INTEGER) };
|
|
57
|
+
taskMemoryContext(preview, this.maxContextBytes);
|
|
58
|
+
for (const id of Object.keys(next.tasks))
|
|
59
|
+
taskMemoryContext({ ...preview, focus: { kind: 'task', id } }, this.maxContextBytes);
|
|
60
|
+
signal.throwIfAborted();
|
|
61
|
+
const event = session.append('user/message', createUserMessage({ content: [{ type: 'text', text: JSON.stringify(change) }],
|
|
62
|
+
source: { kind: 'plugin', plugin: TASK_MEMORY_SOURCE } }), { surfaceOp: 'append' });
|
|
63
|
+
this.pending.add(session);
|
|
64
|
+
await this.checkpoint(session);
|
|
65
|
+
return { eventSeq: event.seq, ...(change.kind === 'focus' ? { id: change.id } : { id: change.task.id, revision: change.task.revision }) };
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=task-memory-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-memory-store.js","sourceRoot":"","sources":["../src/task-memory-store.ts"],"names":[],"mappings":"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"}
|