@xrkseek/harness-cli 0.1.0 → 0.1.1
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/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/xrk-file-reference/dist/grammar.d.ts +33 -0
- package/node_modules/@xrkseek/xrk-file-reference/dist/grammar.d.ts.map +1 -0
- package/node_modules/@xrkseek/xrk-file-reference/dist/grammar.js +43 -0
- package/node_modules/@xrkseek/xrk-file-reference/dist/grammar.js.map +1 -0
- package/node_modules/@xrkseek/xrk-file-reference/dist/types.d.ts +13 -0
- package/node_modules/@xrkseek/xrk-file-reference/dist/types.d.ts.map +1 -0
- package/node_modules/@xrkseek/xrk-file-reference/dist/types.js +7 -0
- package/node_modules/@xrkseek/xrk-file-reference/dist/types.js.map +1 -0
- package/node_modules/@xrkseek/xrk-file-reference/package.json +9 -46
- package/node_modules/@xrkseek/xrk-file-reference-local/dist/search.d.ts +52 -0
- package/node_modules/@xrkseek/xrk-file-reference-local/dist/search.d.ts.map +1 -0
- package/node_modules/@xrkseek/xrk-file-reference-local/dist/search.js +258 -0
- package/node_modules/@xrkseek/xrk-file-reference-local/dist/search.js.map +1 -0
- package/node_modules/@xrkseek/xrk-file-reference-local/package.json +7 -34
- package/node_modules/@xrkseek/xrk-session-reference/dist/config.d.ts +25 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/config.d.ts.map +1 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/config.js +18 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/config.js.map +1 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/types.d.ts +70 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/types.d.ts.map +1 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/types.js +11 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/types.js.map +1 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/uri.d.ts +40 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/uri.d.ts.map +1 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/uri.js +81 -0
- package/node_modules/@xrkseek/xrk-session-reference/dist/uri.js.map +1 -0
- package/node_modules/@xrkseek/xrk-session-reference/package.json +13 -53
- package/package.json +1 -1
- package/product-web/boot.json +1 -1
- package/product-web/plugins/@xrkseek/client-connection/client.js +7 -164
- package/product-web/plugins/@xrkseek/client-locale/client.js +3 -3
- package/product-web/plugins/@xrkseek/client-runtime/client.js +7 -19
- package/product-web/plugins/@xrkseek/client-ui-agent-preset/client.js +33 -33
- package/product-web/plugins/@xrkseek/client-ui-attachment/client.js +12 -12
- package/product-web/plugins/@xrkseek/client-ui-commands/client.js +8 -8
- package/product-web/plugins/@xrkseek/client-ui-conversation/client.js +166 -166
- package/product-web/plugins/@xrkseek/client-ui-deliverables/client.js +5 -5
- package/product-web/plugins/@xrkseek/client-ui-directory-picker-browse/client.js +26 -26
- package/product-web/plugins/@xrkseek/client-ui-goal/client.js +5 -5
- package/product-web/plugins/@xrkseek/client-ui-input-trigger/client.js +7 -7
- package/product-web/plugins/@xrkseek/client-ui-jobs/client.js +8 -8
- package/product-web/plugins/@xrkseek/client-ui-layout/client.js +4 -4
- package/product-web/plugins/@xrkseek/client-ui-message-feedback/client.js +4 -4
- package/product-web/plugins/@xrkseek/client-ui-model-selection/client.js +19 -19
- package/product-web/plugins/@xrkseek/client-ui-permission-presets/client.js +3 -3
- package/product-web/plugins/@xrkseek/client-ui-plan/client.js +3 -3
- package/product-web/plugins/@xrkseek/client-ui-settings-general/client.js +13 -13
- package/product-web/plugins/@xrkseek/client-ui-settings-models/client.js +50 -50
- package/product-web/plugins/@xrkseek/client-ui-settings-plugin-inventory/client.js +12 -12
- package/product-web/plugins/@xrkseek/client-ui-settings-plugins/client.js +41 -41
- package/product-web/plugins/@xrkseek/client-ui-sidebar/client.js +16 -16
- package/product-web/plugins/@xrkseek/client-ui-skill/client.js +13 -13
- package/product-web/plugins/@xrkseek/client-ui-subagent/client.js +19 -19
- package/product-web/plugins/@xrkseek/client-ui-theme/client.js +4 -4
- package/product-web/plugins/@xrkseek/client-ui-tool/client.js +39 -39
- package/product-web/plugins/@xrkseek/client-ui-trajectory/client.js +144 -144
- package/product-web/plugins/@xrkseek/client-ui-user-questions/client.js +25 -25
- package/product-web/plugins/@xrkseek/client-ui-workflow-run/client.js +13 -13
- package/product-web/plugins/@xrkseek/client-ui-workspace/client.js +53 -53
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public session-reference request, candidate, and preparation records.
|
|
3
|
+
* Face discovery imports stay on type-only subpaths; Cordis prepare lives in
|
|
4
|
+
* `index.ts` (not wired on XRK Host main path).
|
|
5
|
+
* @module @xrkseek/xrk-session-reference/types
|
|
6
|
+
*/
|
|
7
|
+
import type { ContentBlock, UserMessage } from '@xrkseek/protocol';
|
|
8
|
+
/** Opaque session id (Face path; Cordis prepare uses branded ids when wired). */
|
|
9
|
+
export type SessionId = string & {
|
|
10
|
+
readonly __xrkSessionId?: unique symbol;
|
|
11
|
+
};
|
|
12
|
+
/** Brand a raw session id string for URI codec helpers. */
|
|
13
|
+
export declare function SessionId(id: string): SessionId;
|
|
14
|
+
/** Durable source session, cited event seqs, and snapshot facts for prepared cross-session context. */
|
|
15
|
+
export interface SessionReferenceSource {
|
|
16
|
+
kind: 'session-reference';
|
|
17
|
+
/** Material lifted out of another session's log (`recall` context form). */
|
|
18
|
+
form: 'recall';
|
|
19
|
+
version: 1;
|
|
20
|
+
references: {
|
|
21
|
+
sessionId: string;
|
|
22
|
+
label: string;
|
|
23
|
+
capturedThroughSeq: number | null;
|
|
24
|
+
compacted: boolean;
|
|
25
|
+
originalMessages: number;
|
|
26
|
+
retainedMessages: number;
|
|
27
|
+
omittedMessages: number;
|
|
28
|
+
omittedBytes: number;
|
|
29
|
+
truncated: boolean;
|
|
30
|
+
inputIndex: number;
|
|
31
|
+
}[];
|
|
32
|
+
}
|
|
33
|
+
/** One source session selected by a host. */
|
|
34
|
+
export interface SessionReferenceInput {
|
|
35
|
+
/** Opaque source session identity. */
|
|
36
|
+
sessionId: SessionId;
|
|
37
|
+
/** Optional user-facing mention label. */
|
|
38
|
+
label?: string;
|
|
39
|
+
}
|
|
40
|
+
/** One host-facing candidate from exact session metadata. */
|
|
41
|
+
export interface SessionReferenceCandidate {
|
|
42
|
+
/** Opaque source session identity. */
|
|
43
|
+
sessionId: SessionId;
|
|
44
|
+
/** Latest log-backed title, falling back to the opaque session id. */
|
|
45
|
+
label: string;
|
|
46
|
+
/** Source session working directory, when recorded. */
|
|
47
|
+
cwd?: string;
|
|
48
|
+
/** Source session creation time in Unix epoch milliseconds. */
|
|
49
|
+
createdAt: number;
|
|
50
|
+
}
|
|
51
|
+
/** One discovery candidate carrying its canonical prompt mention. */
|
|
52
|
+
export interface SessionReferenceMentionCandidate extends SessionReferenceCandidate {
|
|
53
|
+
/** Canonical `@[label](dsh-session:…)` mention serialized into the prompt draft. */
|
|
54
|
+
mention: string;
|
|
55
|
+
}
|
|
56
|
+
/** Direct message content and optional referenced-session context. */
|
|
57
|
+
export interface PreparedReferencedMessage {
|
|
58
|
+
/** Readable message content after host mention tokens are removed. */
|
|
59
|
+
content: ContentBlock[];
|
|
60
|
+
/** Aggregated untrusted snapshot, absent when the message has no references. */
|
|
61
|
+
additionalContext?: UserMessage;
|
|
62
|
+
}
|
|
63
|
+
/** Text-only projected conversation item. */
|
|
64
|
+
export interface ReferencedConversationItem {
|
|
65
|
+
/** Original message role. */
|
|
66
|
+
role: 'user' | 'assistant';
|
|
67
|
+
/** Visible text retained from that message. */
|
|
68
|
+
text: string;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAElE,iFAAiF;AACjF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,MAAM,CAAA;CAAE,CAAA;AAE5E,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAE/C;AAED,uGAAuG;AACvG,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAA;IACzB,4EAA4E;IAC5E,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,CAAC,CAAA;IACV,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;QACjC,SAAS,EAAE,OAAO,CAAA;QAClB,gBAAgB,EAAE,MAAM,CAAA;QACxB,gBAAgB,EAAE,MAAM,CAAA;QACxB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,OAAO,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;KACnB,EAAE,CAAA;CACJ;AAED,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,SAAS,EAAE,SAAS,CAAA;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,6DAA6D;AAC7D,MAAM,WAAW,yBAAyB;IACxC,sCAAsC;IACtC,SAAS,EAAE,SAAS,CAAA;IACpB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,gCAAiC,SAAQ,yBAAyB;IACjF,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,sEAAsE;AACtE,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,WAAW,CAAA;CAChC;AAED,6CAA6C;AAC7C,MAAM,WAAW,0BAA0B;IACzC,6BAA6B;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;CACb"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public session-reference request, candidate, and preparation records.
|
|
3
|
+
* Face discovery imports stay on type-only subpaths; Cordis prepare lives in
|
|
4
|
+
* `index.ts` (not wired on XRK Host main path).
|
|
5
|
+
* @module @xrkseek/xrk-session-reference/types
|
|
6
|
+
*/
|
|
7
|
+
/** Brand a raw session id string for URI codec helpers. */
|
|
8
|
+
export function SessionId(id) {
|
|
9
|
+
return id;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,2DAA2D;AAC3D,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,OAAO,EAAe,CAAA;AACxB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** Canonical session URI and inline mention encoding. */
|
|
2
|
+
import { type SessionId as SessionIdType } from './types.js';
|
|
3
|
+
import type { SessionReferenceInput } from './types.js';
|
|
4
|
+
/** URI scheme reserved for XRK-Harness session snapshots. */
|
|
5
|
+
export declare const SESSION_REFERENCE_SCHEME = "dsh-session:";
|
|
6
|
+
/**
|
|
7
|
+
* Encode any JavaScript session-id string as a canonical lossless URI.
|
|
8
|
+
* @param sessionId - opaque session id to serialize.
|
|
9
|
+
* @returns canonical `dsh-session:` URI.
|
|
10
|
+
*/
|
|
11
|
+
export declare function encodeSessionReferenceUri(sessionId: SessionIdType): string;
|
|
12
|
+
/**
|
|
13
|
+
* Decode and canonicalize one session-reference URI.
|
|
14
|
+
* @param uri - complete canonical URI.
|
|
15
|
+
* @returns decoded session id.
|
|
16
|
+
*/
|
|
17
|
+
export declare function decodeSessionReferenceUri(uri: string): SessionIdType;
|
|
18
|
+
/**
|
|
19
|
+
* Render a host-neutral Markdown mention carrying the canonical URI.
|
|
20
|
+
* @param reference - structured id and optional display label.
|
|
21
|
+
* @returns escaped `@[label](uri)` mention.
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatSessionReferenceMention(reference: SessionReferenceInput): string;
|
|
24
|
+
/** Result of extracting canonical mentions from plain text. */
|
|
25
|
+
export interface ParsedSessionReferenceText {
|
|
26
|
+
/** Text with opaque tokens replaced by readable `@label` spans. */
|
|
27
|
+
text: string;
|
|
28
|
+
/** Structured references in first-appearance order, before service deduplication. */
|
|
29
|
+
references: SessionReferenceInput[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Extract Markdown mentions and bare canonical URIs from one text value.
|
|
33
|
+
* Explicit Markdown mentions fail on any malformed URI. Bare text is treated
|
|
34
|
+
* as a reference only when it has a non-empty base64url-shaped payload, then
|
|
35
|
+
* still fails if that candidate is not canonical.
|
|
36
|
+
* @param text - host text to normalize.
|
|
37
|
+
* @returns readable text and structured references in appearance order.
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseSessionReferenceText(text: string): ParsedSessionReferenceText;
|
|
40
|
+
//# sourceMappingURL=uri.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uri.d.ts","sourceRoot":"","sources":["../src/uri.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,EAAa,KAAK,SAAS,IAAI,aAAa,EAAE,MAAM,YAAY,CAAA;AAEvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEvD,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,iBAAiB,CAAA;AAEtD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAG1E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAepE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,qBAAqB,GAAG,MAAM,CAGtF;AAED,+DAA+D;AAC/D,MAAM,WAAW,0BAA0B;IACzC,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,qFAAqF;IACrF,UAAU,EAAE,qBAAqB,EAAE,CAAA;CACpC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CAkBlF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** Canonical session URI and inline mention encoding. */
|
|
2
|
+
import { SessionId } from './types.js';
|
|
3
|
+
import { SessionReferenceError } from './config.js';
|
|
4
|
+
/** URI scheme reserved for XRK-Harness session snapshots. */
|
|
5
|
+
export const SESSION_REFERENCE_SCHEME = 'dsh-session:';
|
|
6
|
+
/**
|
|
7
|
+
* Encode any JavaScript session-id string as a canonical lossless URI.
|
|
8
|
+
* @param sessionId - opaque session id to serialize.
|
|
9
|
+
* @returns canonical `dsh-session:` URI.
|
|
10
|
+
*/
|
|
11
|
+
export function encodeSessionReferenceUri(sessionId) {
|
|
12
|
+
const payload = Buffer.from(JSON.stringify(sessionId), 'utf8').toString('base64url');
|
|
13
|
+
return `${SESSION_REFERENCE_SCHEME}${payload}`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Decode and canonicalize one session-reference URI.
|
|
17
|
+
* @param uri - complete canonical URI.
|
|
18
|
+
* @returns decoded session id.
|
|
19
|
+
*/
|
|
20
|
+
export function decodeSessionReferenceUri(uri) {
|
|
21
|
+
if (!uri.startsWith(SESSION_REFERENCE_SCHEME)) {
|
|
22
|
+
throw invalidUri(uri);
|
|
23
|
+
}
|
|
24
|
+
const payload = uri.slice(SESSION_REFERENCE_SCHEME.length);
|
|
25
|
+
if (!/^[A-Za-z0-9_-]+$/.test(payload))
|
|
26
|
+
throw invalidUri(uri);
|
|
27
|
+
try {
|
|
28
|
+
const parsed = JSON.parse(Buffer.from(payload, 'base64url').toString('utf8'));
|
|
29
|
+
if (typeof parsed !== 'string')
|
|
30
|
+
throw new TypeError('decoded session id is not a string');
|
|
31
|
+
const sessionId = SessionId(parsed);
|
|
32
|
+
if (encodeSessionReferenceUri(sessionId) !== uri)
|
|
33
|
+
throw new TypeError('URI is not canonical');
|
|
34
|
+
return sessionId;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw invalidUri(uri, error);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Render a host-neutral Markdown mention carrying the canonical URI.
|
|
42
|
+
* @param reference - structured id and optional display label.
|
|
43
|
+
* @returns escaped `@[label](uri)` mention.
|
|
44
|
+
*/
|
|
45
|
+
export function formatSessionReferenceMention(reference) {
|
|
46
|
+
const label = escapeLabel(reference.label ?? reference.sessionId);
|
|
47
|
+
return `@[${label}](${encodeSessionReferenceUri(reference.sessionId)})`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Extract Markdown mentions and bare canonical URIs from one text value.
|
|
51
|
+
* Explicit Markdown mentions fail on any malformed URI. Bare text is treated
|
|
52
|
+
* as a reference only when it has a non-empty base64url-shaped payload, then
|
|
53
|
+
* still fails if that candidate is not canonical.
|
|
54
|
+
* @param text - host text to normalize.
|
|
55
|
+
* @returns readable text and structured references in appearance order.
|
|
56
|
+
*/
|
|
57
|
+
export function parseSessionReferenceText(text) {
|
|
58
|
+
const references = [];
|
|
59
|
+
const pattern = /@\[((?:\\.|[^\\\]])*)\]\((dsh-session:[^\s)]*)\)|(dsh-session:[A-Za-z0-9_-]+)/gu;
|
|
60
|
+
const rendered = text.replace(pattern, (_match, rawLabel, markdownUri, bareUri) => {
|
|
61
|
+
const uri = markdownUri ?? bareUri;
|
|
62
|
+
/* v8 ignore next -- the two-alternative regex always captures exactly one URI group. */
|
|
63
|
+
if (uri === undefined)
|
|
64
|
+
throw new SessionReferenceError('session reference URI is missing', 'SESSION_REFERENCE_INVALID_REFERENCE');
|
|
65
|
+
const sessionId = decodeSessionReferenceUri(uri);
|
|
66
|
+
const label = rawLabel === undefined ? sessionId : unescapeLabel(rawLabel);
|
|
67
|
+
references.push({ sessionId, label });
|
|
68
|
+
return `@${label}`;
|
|
69
|
+
});
|
|
70
|
+
return { text: rendered, references };
|
|
71
|
+
}
|
|
72
|
+
function escapeLabel(label) {
|
|
73
|
+
return label.replace(/[\\\]]/gu, match => `\\${match}`);
|
|
74
|
+
}
|
|
75
|
+
function unescapeLabel(label) {
|
|
76
|
+
return label.replace(/\\(.)/gu, '$1');
|
|
77
|
+
}
|
|
78
|
+
function invalidUri(uri, cause) {
|
|
79
|
+
return new SessionReferenceError(`invalid session reference URI ${JSON.stringify(uri)}`, 'SESSION_REFERENCE_INVALID_REFERENCE', cause === undefined ? undefined : { cause });
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=uri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uri.js","sourceRoot":"","sources":["../src/uri.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,72 +8,32 @@
|
|
|
8
8
|
"directory": "packages/context/session-reference"
|
|
9
9
|
},
|
|
10
10
|
"type": "module",
|
|
11
|
-
"main": "lib/index.js",
|
|
12
|
-
"types": "lib/types/index.d.ts",
|
|
13
11
|
"exports": {
|
|
14
|
-
".": {
|
|
15
|
-
"types": "./lib/types/index.d.ts",
|
|
16
|
-
"default": "./lib/index.js"
|
|
17
|
-
},
|
|
18
|
-
"./invariant": {
|
|
19
|
-
"types": "./lib/types/invariant.d.ts",
|
|
20
|
-
"default": "./lib/invariant.js"
|
|
21
|
-
},
|
|
22
12
|
"./types": {
|
|
23
|
-
"types": "./
|
|
24
|
-
"
|
|
13
|
+
"types": "./dist/types.d.ts",
|
|
14
|
+
"import": "./dist/types.js",
|
|
15
|
+
"default": "./dist/types.js"
|
|
25
16
|
},
|
|
26
17
|
"./config": {
|
|
27
|
-
"types": "./
|
|
28
|
-
"
|
|
18
|
+
"types": "./dist/config.d.ts",
|
|
19
|
+
"import": "./dist/config.js",
|
|
20
|
+
"default": "./dist/config.js"
|
|
29
21
|
},
|
|
30
22
|
"./uri": {
|
|
31
|
-
"types": "./
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
"./typert": {
|
|
35
|
-
"types": "./lib/typert.host.d.ts",
|
|
36
|
-
"default": "./lib/typert.host.js"
|
|
23
|
+
"types": "./dist/uri.d.ts",
|
|
24
|
+
"import": "./dist/uri.js",
|
|
25
|
+
"default": "./dist/uri.js"
|
|
37
26
|
},
|
|
38
|
-
"./remote": {
|
|
39
|
-
"types": "./lib/typert.remote-client.d.ts",
|
|
40
|
-
"default": "./lib/typert.remote-client.js"
|
|
41
|
-
},
|
|
42
|
-
"./src/*": "./src/*",
|
|
43
27
|
"./package.json": "./package.json"
|
|
44
28
|
},
|
|
45
29
|
"files": [
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"lib/types/**/*.d.ts",
|
|
50
|
-
"lib/typert.host.js",
|
|
51
|
-
"lib/typert.host.d.ts",
|
|
52
|
-
"lib/typert.remote-client.js",
|
|
53
|
-
"lib/typert.remote-client.d.ts"
|
|
30
|
+
"dist",
|
|
31
|
+
"README.md",
|
|
32
|
+
"README.zh.md"
|
|
54
33
|
],
|
|
55
34
|
"license": "MIT",
|
|
56
35
|
"dependencies": {
|
|
57
|
-
"@xrkseek/
|
|
58
|
-
"zod": "^4.4.3"
|
|
59
|
-
},
|
|
60
|
-
"peerDependencies": {
|
|
61
|
-
"@xrkseek/xrk-agent": "workspace:^",
|
|
62
|
-
"@xrkseek/xrk-compaction": "workspace:^",
|
|
63
|
-
"@xrkseek/xrk-invariants": "workspace:^",
|
|
64
|
-
"@xrkseek/xrk-llm": "workspace:^",
|
|
65
|
-
"@xrkseek/xrk-session": "workspace:^",
|
|
66
|
-
"@xrkseek/xrk-typert-protocol": "workspace:^",
|
|
67
|
-
"@xrkseek/cordis": "workspace:^"
|
|
68
|
-
},
|
|
69
|
-
"devDependencies": {
|
|
70
|
-
"@xrkseek/xrk-agent": "workspace:^",
|
|
71
|
-
"@xrkseek/xrk-compaction": "workspace:^",
|
|
72
|
-
"@xrkseek/xrk-invariants": "workspace:^",
|
|
73
|
-
"@xrkseek/xrk-llm": "workspace:^",
|
|
74
|
-
"@xrkseek/xrk-session": "workspace:^",
|
|
75
|
-
"@xrkseek/xrk-typert-protocol": "workspace:^",
|
|
76
|
-
"@xrkseek/cordis": "workspace:^"
|
|
36
|
+
"@xrkseek/protocol": "workspace:*"
|
|
77
37
|
},
|
|
78
38
|
"private": true
|
|
79
39
|
}
|
package/package.json
CHANGED
package/product-web/boot.json
CHANGED
|
@@ -4,6 +4,8 @@ window.__ModuleLoader__.load({
|
|
|
4
4
|
var module = { exports: {} };
|
|
5
5
|
var exports = module.exports;
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
|
+
let _xrkseek_xrk_llm_message = require("@xrkseek/xrk-llm/message");
|
|
8
|
+
let _xrkseek_xrk_llm_brand = require("@xrkseek/xrk-llm/brand");
|
|
7
9
|
//#region src/client/connection.ts
|
|
8
10
|
const CONNECTION_DEFAULTS = {
|
|
9
11
|
backoffBaseMs: 500,
|
|
@@ -145,165 +147,6 @@ window.__ModuleLoader__.load({
|
|
|
145
147
|
}
|
|
146
148
|
};
|
|
147
149
|
//#endregion
|
|
148
|
-
//#region ../../stubs/xrk-llm/lib/types/brand.js
|
|
149
|
-
/**
|
|
150
|
-
* dsh-llm's owned branded ids: tool-call correlation and provider request
|
|
151
|
-
* diagnostics.
|
|
152
|
-
*
|
|
153
|
-
* The `Branded<B>` primitive itself lives in `@xrkseek/xrk-brand` (a
|
|
154
|
-
* zero-dependency type-only package) so every owner of a cross-boundary id can
|
|
155
|
-
* brand it without depending on dsh-llm; see that package's README for the
|
|
156
|
-
* nominal-typing policy.
|
|
157
|
-
*
|
|
158
|
-
* @module @xrkseek/xrk-llm/brand
|
|
159
|
-
*/
|
|
160
|
-
/**
|
|
161
|
-
* Brand a message identifier.
|
|
162
|
-
* @param id - the opaque message identifier.
|
|
163
|
-
* @returns the same string, branded; no validation is performed.
|
|
164
|
-
*/
|
|
165
|
-
function MessageId(id) {
|
|
166
|
-
return id;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Brand a string as a {@link CallId}.
|
|
170
|
-
* @param id - the provider-issued (or synthesized) call id.
|
|
171
|
-
* @returns the same string, branded; no validation is performed.
|
|
172
|
-
*/
|
|
173
|
-
function CallId(id) {
|
|
174
|
-
return id;
|
|
175
|
-
}
|
|
176
|
-
//#endregion
|
|
177
|
-
//#region ../../stubs/xrk-llm/lib/types/call-config.js
|
|
178
|
-
/**
|
|
179
|
-
* Deep-freeze a value in place with an iterative traversal, guarding cycles,
|
|
180
|
-
* so later mutation throws without imposing a JavaScript call-stack depth cap.
|
|
181
|
-
* {@link AbortSignal} objects are deliberately skipped because they are the
|
|
182
|
-
* request's live cancellation channel and freezing them breaks abort.
|
|
183
|
-
* @param value - the value to freeze in place.
|
|
184
|
-
* @returns the same value, frozen.
|
|
185
|
-
*/
|
|
186
|
-
function deepFreeze(value) {
|
|
187
|
-
const seen = /* @__PURE__ */ new WeakSet();
|
|
188
|
-
const pending = [{
|
|
189
|
-
kind: "visit",
|
|
190
|
-
node: value
|
|
191
|
-
}];
|
|
192
|
-
while (pending.length > 0) {
|
|
193
|
-
const task = pending.pop();
|
|
194
|
-
/* v8 ignore next -- the loop condition guarantees one pending task. */
|
|
195
|
-
if (task === void 0) continue;
|
|
196
|
-
if (task.kind === "property") {
|
|
197
|
-
pending.push({
|
|
198
|
-
kind: "visit",
|
|
199
|
-
node: task.source[task.key]
|
|
200
|
-
});
|
|
201
|
-
continue;
|
|
202
|
-
}
|
|
203
|
-
const node = task.node;
|
|
204
|
-
if (node === null || typeof node !== "object") continue;
|
|
205
|
-
if (node instanceof AbortSignal) continue;
|
|
206
|
-
if (seen.has(node)) continue;
|
|
207
|
-
seen.add(node);
|
|
208
|
-
Object.freeze(node);
|
|
209
|
-
const keys = Object.keys(node);
|
|
210
|
-
for (let index = keys.length - 1; index >= 0; index--) {
|
|
211
|
-
const key = keys[index];
|
|
212
|
-
/* v8 ignore next -- the loop is bounded by the captured key count. */
|
|
213
|
-
if (key === void 0) continue;
|
|
214
|
-
pending.push({
|
|
215
|
-
kind: "property",
|
|
216
|
-
source: node,
|
|
217
|
-
key
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
return value;
|
|
222
|
-
}
|
|
223
|
-
//#endregion
|
|
224
|
-
//#region ../../stubs/xrk-llm/lib/types/message.js
|
|
225
|
-
/** Message value types, identity, and immutable construction helpers. */
|
|
226
|
-
/**
|
|
227
|
-
* Detach and deep-freeze a message whose identity already exists.
|
|
228
|
-
* @param message - complete message, including its stable identity.
|
|
229
|
-
* @returns an immutable snapshot that preserves the identity.
|
|
230
|
-
*/
|
|
231
|
-
function freezeMessage(message) {
|
|
232
|
-
return deepFreeze(structuredClone(message));
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Create one identified message and freeze it before publication.
|
|
236
|
-
* @param input - complete role, content, and source for a new message.
|
|
237
|
-
* @returns an immutable message with a fresh stable identity.
|
|
238
|
-
*/
|
|
239
|
-
function createMessage(input) {
|
|
240
|
-
return freezeMessage({
|
|
241
|
-
...input,
|
|
242
|
-
id: MessageId(crypto.randomUUID())
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Create one identified user-role message and freeze it before publication.
|
|
247
|
-
* @param input - complete content and source for a new user message.
|
|
248
|
-
* @returns an immutable user message with a fresh stable identity.
|
|
249
|
-
*/
|
|
250
|
-
function createUserMessage(input) {
|
|
251
|
-
return createMessage({
|
|
252
|
-
...input,
|
|
253
|
-
role: "user"
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Create one identified model-produced assistant message and freeze it before publication.
|
|
258
|
-
* @param input - complete content plus the provider, model, and optional replay state for a new assistant message.
|
|
259
|
-
* @returns an immutable assistant message with fixed role/source tags and a fresh stable identity.
|
|
260
|
-
*/
|
|
261
|
-
function createAssistantMessage(input) {
|
|
262
|
-
return createMessage({
|
|
263
|
-
role: "assistant",
|
|
264
|
-
content: input.content,
|
|
265
|
-
source: {
|
|
266
|
-
kind: "model",
|
|
267
|
-
...input.source
|
|
268
|
-
}
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Create and freeze one identified tool-result message.
|
|
273
|
-
* @param input - call identity, raw result blocks, and outcome.
|
|
274
|
-
* @returns an immutable user-role tool-result message.
|
|
275
|
-
*/
|
|
276
|
-
function createToolResultMessage(input) {
|
|
277
|
-
return createUserMessage({
|
|
278
|
-
source: {
|
|
279
|
-
kind: "tool",
|
|
280
|
-
callId: input.callId
|
|
281
|
-
},
|
|
282
|
-
content: [{
|
|
283
|
-
type: "tool-result",
|
|
284
|
-
toolCallId: input.callId,
|
|
285
|
-
content: input.content,
|
|
286
|
-
isError: input.isError
|
|
287
|
-
}]
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Whether a stream chunk carries visible model output (the first-token
|
|
292
|
-
* boundary shared by client step timing and the whole-log sessionStats
|
|
293
|
-
* projection). Empty deltas (heartbeats, empty tool-call frames) do not count
|
|
294
|
-
* as a first token.
|
|
295
|
-
* @param chunk - the stream chunk to test.
|
|
296
|
-
* @returns true when the chunk contains a non-empty text/reasoning/tool delta.
|
|
297
|
-
*/
|
|
298
|
-
function isTokenDelta(chunk) {
|
|
299
|
-
switch (chunk.type) {
|
|
300
|
-
case "text-delta":
|
|
301
|
-
case "reasoning-delta": return chunk.text !== "";
|
|
302
|
-
case "tool-call-delta": return chunk.argumentsDelta !== "" || chunk.name !== void 0;
|
|
303
|
-
default: return false;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
//#endregion
|
|
307
150
|
//#region ../../stubs/xrk-session/lib/types/surface.js
|
|
308
151
|
/**
|
|
309
152
|
* Surface layer on top of the session event log: an ordered view of events
|
|
@@ -6400,13 +6243,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6400
6243
|
}];
|
|
6401
6244
|
}
|
|
6402
6245
|
function userMessage(content, source = { kind: "user" }) {
|
|
6403
|
-
return createUserMessage({
|
|
6246
|
+
return (0, _xrkseek_xrk_llm_message.createUserMessage)({
|
|
6404
6247
|
content,
|
|
6405
6248
|
source
|
|
6406
6249
|
});
|
|
6407
6250
|
}
|
|
6408
6251
|
function assistantMessage(content, model = "fx-1") {
|
|
6409
|
-
return createAssistantMessage({
|
|
6252
|
+
return (0, _xrkseek_xrk_llm_message.createAssistantMessage)({
|
|
6410
6253
|
content,
|
|
6411
6254
|
source: {
|
|
6412
6255
|
provider: "fixture",
|
|
@@ -6415,8 +6258,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
6415
6258
|
});
|
|
6416
6259
|
}
|
|
6417
6260
|
function toolResultMessage(callId, content, isError) {
|
|
6418
|
-
return createToolResultMessage({
|
|
6419
|
-
callId: CallId(callId),
|
|
6261
|
+
return (0, _xrkseek_xrk_llm_message.createToolResultMessage)({
|
|
6262
|
+
callId: (0, _xrkseek_xrk_llm_brand.CallId)(callId),
|
|
6420
6263
|
content,
|
|
6421
6264
|
isError
|
|
6422
6265
|
});
|
|
@@ -7515,7 +7358,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7515
7358
|
};
|
|
7516
7359
|
break;
|
|
7517
7360
|
case "assistant/chunk":
|
|
7518
|
-
if (openStep !== null && openStep.turn === event.data.turn && openStep.step === event.data.step && openStep.firstTokenTime === null && isTokenDelta(event.data.chunk)) openStep.firstTokenTime = event.time;
|
|
7361
|
+
if (openStep !== null && openStep.turn === event.data.turn && openStep.step === event.data.step && openStep.firstTokenTime === null && (0, _xrkseek_xrk_llm_message.isTokenDelta)(event.data.chunk)) openStep.firstTokenTime = event.time;
|
|
7519
7362
|
break;
|
|
7520
7363
|
case "assistant/message":
|
|
7521
7364
|
if (openStep === null || openStep.turn !== event.data.turn || openStep.step !== event.data.step) break;
|
|
@@ -885,10 +885,10 @@ window.__ModuleLoader__.load({
|
|
|
885
885
|
}
|
|
886
886
|
var LanguageRow_module_css_default = {
|
|
887
887
|
"chevron": "jLfXEq_chevron",
|
|
888
|
-
"selector": "jLfXEq_selector",
|
|
889
888
|
"rowText": "jLfXEq_rowText",
|
|
890
|
-
"
|
|
891
|
-
"
|
|
889
|
+
"title": "jLfXEq_title",
|
|
890
|
+
"selector": "jLfXEq_selector",
|
|
891
|
+
"row": "jLfXEq_row"
|
|
892
892
|
};
|
|
893
893
|
//#endregion
|
|
894
894
|
//#region src/client/LanguageRow.tsx
|
|
@@ -6,6 +6,7 @@ window.__ModuleLoader__.load({
|
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
7
|
let _xrkseek_cordis = require("@xrkseek/cordis");
|
|
8
8
|
let _xrkseek_client_ui_slots = require("@xrkseek/client-ui-slots");
|
|
9
|
+
let _xrkseek_xrk_llm_message = require("@xrkseek/xrk-llm/message");
|
|
9
10
|
//#region src/client/slots.ts
|
|
10
11
|
/**
|
|
11
12
|
* SlotRegistry: the cordis Service layer of the slot system over the pure
|
|
@@ -10358,24 +10359,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10358
10359
|
}
|
|
10359
10360
|
}
|
|
10360
10361
|
//#endregion
|
|
10361
|
-
//#region ../../stubs/xrk-llm/lib/types/message.js
|
|
10362
|
-
/**
|
|
10363
|
-
* Whether a stream chunk carries visible model output (the first-token
|
|
10364
|
-
* boundary shared by client step timing and the whole-log sessionStats
|
|
10365
|
-
* projection). Empty deltas (heartbeats, empty tool-call frames) do not count
|
|
10366
|
-
* as a first token.
|
|
10367
|
-
* @param chunk - the stream chunk to test.
|
|
10368
|
-
* @returns true when the chunk contains a non-empty text/reasoning/tool delta.
|
|
10369
|
-
*/
|
|
10370
|
-
function isTokenDelta(chunk) {
|
|
10371
|
-
switch (chunk.type) {
|
|
10372
|
-
case "text-delta":
|
|
10373
|
-
case "reasoning-delta": return chunk.text !== "";
|
|
10374
|
-
case "tool-call-delta": return chunk.argumentsDelta !== "" || chunk.name !== void 0;
|
|
10375
|
-
default: return false;
|
|
10376
|
-
}
|
|
10377
|
-
}
|
|
10378
|
-
//#endregion
|
|
10379
10362
|
//#region src/client/sessions/context-provenance.ts
|
|
10380
10363
|
/** One durable source narrowed to the readable-record shape; null for anything else. */
|
|
10381
10364
|
function asRecord(value) {
|
|
@@ -10558,7 +10541,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10558
10541
|
exports.inject = inject;
|
|
10559
10542
|
exports.isAppendSurfaceEvent = isAppendSurfaceEvent;
|
|
10560
10543
|
exports.isReplacementSurfaceEvent = isReplacementSurfaceEvent;
|
|
10561
|
-
exports
|
|
10544
|
+
Object.defineProperty(exports, "isTokenDelta", {
|
|
10545
|
+
enumerable: true,
|
|
10546
|
+
get: function() {
|
|
10547
|
+
return _xrkseek_xrk_llm_message.isTokenDelta;
|
|
10548
|
+
}
|
|
10549
|
+
});
|
|
10562
10550
|
exports.resolveWorkspacePath = resolveWorkspacePath;
|
|
10563
10551
|
exports.scopeOf = scopeOf;
|
|
10564
10552
|
exports.shallowEqual = shallowEqual;
|