@xenosystem/agent-conversation 0.1.39 → 0.1.41

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.
@@ -0,0 +1,110 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Citations — a claim carries its evidence.
4
+ *
5
+ * The model cites `[n]` right after the sentence a source supports; `n` is the source's position
6
+ * in the turn's source list (1-based, first occurrence of a URL across every search step of the
7
+ * turn — the same rule the platform's tool loop uses to number what it hands the model, so the two
8
+ * sides cannot disagree on what `[3]` means). This module turns those markers into chips: a
9
+ * remark plugin that lifts every `[n]` / `[n, m]` / `[n][m]` run out of the prose into a link
10
+ * with a fragment href the surface's markdown renderer recognises, and the chip + hover card
11
+ * that link renders as. Checked against Claude, ChatGPT and Perplexity (2026-09-18): all three
12
+ * converge on an inline chip after the claim with a hover card listing title + favicon + domain,
13
+ * because a footnote list at the bottom separates the claim from its evidence.
14
+ *
15
+ * Why a fragment href and not a custom scheme: react-markdown's default `urlTransform` strips
16
+ * unknown schemes, and a surface that forgot to widen it would silently lose every chip. A
17
+ * fragment survives every transform.
18
+ */
19
+ import { createContext, useContext, useState } from 'react';
20
+ import { Glyph } from './Transcript.js';
21
+ export const CITATION_FRAGMENT = '#xa-cite=';
22
+ /** `[3]`, `[1, 4]`, `[2][5]`, `[3,4]` — a run of markers, never followed by `(` or `:` (a markdown link). */
23
+ const CITATION_RUN = /(?:\[\d{1,3}(?:\s*,\s*\d{1,3})*\])+(?![(:])/g;
24
+ export function citationIds(run) {
25
+ const ids = [];
26
+ for (const match of run.matchAll(/\d{1,3}/g)) {
27
+ const id = Number(match[0]);
28
+ if (id > 0 && !ids.includes(id))
29
+ ids.push(id);
30
+ }
31
+ return ids;
32
+ }
33
+ export function citationHref(ids) { return `${CITATION_FRAGMENT}${ids.join(',')}`; }
34
+ export function parseCitationHref(href) {
35
+ if (!href || !href.startsWith(CITATION_FRAGMENT))
36
+ return null;
37
+ const ids = href.slice(CITATION_FRAGMENT.length).split(',').map(Number).filter((id) => Number.isInteger(id) && id > 0);
38
+ return ids.length ? ids : null;
39
+ }
40
+ /**
41
+ * A remark plugin: every citation run in a text node becomes a `link` node to `#xa-cite=…`.
42
+ * Code, inline code and existing links are left alone — a `[1]` inside a code sample is code.
43
+ */
44
+ export function remarkCitations() {
45
+ const SKIP = new Set(['code', 'inlineCode', 'link', 'linkReference', 'definition', 'html']);
46
+ const visit = (node) => {
47
+ if (!node.children)
48
+ return;
49
+ const next = [];
50
+ for (const child of node.children) {
51
+ if (child.type === 'text' && typeof child.value === 'string' && CITATION_RUN.test(child.value)) {
52
+ CITATION_RUN.lastIndex = 0;
53
+ let last = 0;
54
+ for (const match of child.value.matchAll(CITATION_RUN)) {
55
+ const start = match.index ?? 0;
56
+ if (start > last)
57
+ next.push({ type: 'text', value: child.value.slice(last, start) });
58
+ const ids = citationIds(match[0]);
59
+ next.push(ids.length
60
+ ? { type: 'link', url: citationHref(ids), title: null, children: [{ type: 'text', value: match[0] }] }
61
+ : { type: 'text', value: match[0] });
62
+ last = start + match[0].length;
63
+ }
64
+ if (last < child.value.length)
65
+ next.push({ type: 'text', value: child.value.slice(last) });
66
+ }
67
+ else {
68
+ if (!SKIP.has(child.type))
69
+ visit(child);
70
+ next.push(child);
71
+ }
72
+ CITATION_RUN.lastIndex = 0;
73
+ }
74
+ node.children = next;
75
+ };
76
+ return (tree) => { visit(tree); };
77
+ }
78
+ /** The turn's resolver, so a favicon deep in a rail detail needs no prop threading. */
79
+ export const FaviconUrlContext = createContext(undefined);
80
+ /** A site's icon, or a letter tile when there is none — never a broken image. */
81
+ export function Favicon({ domain, faviconUrl }) {
82
+ const [failed, setFailed] = useState(false);
83
+ const fromContext = useContext(FaviconUrlContext);
84
+ const resolve = faviconUrl ?? fromContext;
85
+ const src = !failed && resolve ? resolve(domain) : null;
86
+ const letter = (domain.replace(/^www\./, '')[0] || '?').toUpperCase();
87
+ if (!src)
88
+ return _jsx("span", { className: "xa-fav xa-fav-letter", "aria-hidden": "true", children: letter });
89
+ return _jsx("img", { className: "xa-fav", src: src, alt: "", "aria-hidden": "true", loading: "lazy", referrerPolicy: "no-referrer", onError: () => setFailed(true) });
90
+ }
91
+ /**
92
+ * The chip after a claim — the first cited title, truncated — and on hover the card listing every
93
+ * cited source. Click opens the first; each card row opens its own.
94
+ */
95
+ export function CitationChip({ ids, sources, faviconUrl, onOpen, children }) {
96
+ const [open, setOpen] = useState(false);
97
+ const cited = ids.map((id) => sources.find((source) => source.id === id)).filter((source) => !!source);
98
+ if (!cited.length)
99
+ return _jsx("span", { className: "xa-cite-orphan", children: children });
100
+ const first = cited[0];
101
+ const openUrl = (url, event) => {
102
+ if (onOpen) {
103
+ event.preventDefault();
104
+ onOpen(url);
105
+ }
106
+ };
107
+ return (_jsxs("span", { className: `xa-cite${open ? ' xa-open' : ''}`, onMouseEnter: () => setOpen(true), onMouseLeave: () => setOpen(false), onFocus: () => setOpen(true), onBlur: (event) => { if (!event.currentTarget.contains(event.relatedTarget))
108
+ setOpen(false); }, children: [_jsxs("a", { className: "xa-cite-chip", href: first.url, target: "_blank", rel: "noopener noreferrer", title: first.url, "data-cite-ids": ids.join(','), onClick: (event) => openUrl(first.url, event), children: [_jsx("span", { className: "xa-cite-title", children: first.title }), cited.length > 1 && _jsxs("span", { className: "xa-cite-more", children: ["+", cited.length - 1] }), _jsx("span", { className: "xa-cite-go", children: _jsx(Glyph, { name: "arrow-up-right", size: 9 }) })] }), _jsx("span", { className: "xa-citecard", role: "list", "aria-hidden": !open, children: cited.map((source) => (_jsxs("a", { role: "listitem", className: "xa-citecard-row", href: source.url, target: "_blank", rel: "noopener noreferrer", onClick: (event) => openUrl(source.url, event), children: [_jsx("span", { className: "xa-citecard-title", children: source.title }), _jsxs("span", { className: "xa-citecard-site", children: [_jsx(Favicon, { domain: source.domain, faviconUrl: faviconUrl }), _jsx("span", { children: source.domain })] })] }, source.id))) })] }));
109
+ }
110
+ //# sourceMappingURL=citations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../../../src/components/agent/transcript/citations.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import type { ChatMessage, PlanTask } from '../../../stores/agentChatStore.js';
14
14
  import { type StepRow } from './stepModel.js';
15
+ import type { CitedSource } from './citations.js';
15
16
  /**
16
17
  * The reason a turn ended, in the bench's own shape: words, with the STEP it ended at set in a
17
18
  * `<code>` span — "you pressed stop before `Pressing Return` — nothing was sent".
@@ -105,12 +106,12 @@ export interface TurnModel {
105
106
  receipt: {
106
107
  files: TurnReceiptFile[];
107
108
  } | null;
108
- /** The sources the reply may cite, gathered from every web step. */
109
- sources: Array<{
110
- title: string;
111
- url: string;
112
- domain: string;
113
- }>;
109
+ /**
110
+ * The sources the reply may cite, gathered from every web step — ONE entry per URL, in order of
111
+ * first appearance, numbered from 1. That number is what a `[n]` in the reply refers to, and it is
112
+ * the same rule the platform's tool loop uses to number the sources it hands the model.
113
+ */
114
+ sources: CitedSource[];
114
115
  pendingAsk: StepRow | null;
115
116
  }
116
117
  /** The last non-empty line of a thought, phrased as the thing being thought about now. */
@@ -119,6 +120,12 @@ export declare function deriveTurn(msg: ChatMessage, options?: {
119
120
  tasks?: PlanTask[];
120
121
  planDone?: number;
121
122
  }): TurnModel;
123
+ /** One entry per URL, first appearance wins, ids from 1 — the citation contract, see `citations.tsx`. */
124
+ export declare function numberSources(items: Array<{
125
+ title: string;
126
+ url: string;
127
+ domain: string;
128
+ }>): CitedSource[];
122
129
  /** `4s`, `1m 12s`, `2h 4m` — the clock line's unit of time. */
123
130
  export declare function formatElapsed(ms: number): string;
124
131
  //# sourceMappingURL=turnModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turnModel.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/transcript/turnModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turnModel.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/transcript/turnModel.ts"],"names":[],"mappings":"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"}
@@ -134,7 +134,7 @@ export function deriveTurn(msg, options = {}) {
134
134
  const files = actRows
135
135
  .filter((row) => row.family === 'files' && row.diffStats && row.filePath && (row.verb === 'Edited' || row.verb === 'Created'))
136
136
  .map((row) => ({ path: row.filePath, name: row.filePath.split(/[/\\]/).pop() || row.object, added: row.diffStats.added, removed: row.diffStats.removed, row }));
137
- const sources = actRows.flatMap((row) => (row.detail?.kind === 'sources' ? row.detail.items : []));
137
+ const sources = numberSources(actRows.flatMap((row) => (row.detail?.kind === 'sources' ? row.detail.items : [])));
138
138
  return {
139
139
  id: msg.id,
140
140
  live,
@@ -152,6 +152,18 @@ export function deriveTurn(msg, options = {}) {
152
152
  pendingAsk,
153
153
  };
154
154
  }
155
+ /** One entry per URL, first appearance wins, ids from 1 — the citation contract, see `citations.tsx`. */
156
+ export function numberSources(items) {
157
+ const seen = new Set();
158
+ const out = [];
159
+ for (const item of items) {
160
+ if (seen.has(item.url))
161
+ continue;
162
+ seen.add(item.url);
163
+ out.push({ id: out.length + 1, ...item });
164
+ }
165
+ return out;
166
+ }
155
167
  /** `4s`, `1m 12s`, `2h 4m` — the clock line's unit of time. */
156
168
  export function formatElapsed(ms) {
157
169
  const secs = Math.max(0, Math.round(ms / 1000));
@@ -1 +1 @@
1
- {"version":3,"file":"turnModel.js","sourceRoot":"","sources":["../../../../src/components/agent/transcript/turnModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turnModel.js","sourceRoot":"","sources":["../../../../src/components/agent/transcript/turnModel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenosystem/agent-conversation",
3
- "version": "0.1.39",
3
+ "version": "0.1.41",
4
4
  "license": "UNLICENSED",
5
5
  "description": "The XENO Agent conversation surface: the transcript, the composer, and the logic behind them.",
6
6
  "type": "module",
@@ -43,10 +43,10 @@
43
43
  "react-markdown": "^10.1.0",
44
44
  "remark-gfm": "^4.0.1",
45
45
  "zustand": "^5.0.2",
46
- "@xenosystem/agent-interface-client": "0.1.39",
47
- "@xenosystem/agent-interface-core": "0.1.39",
48
- "@xenosystem/agent-interface-contract": "0.1.39",
49
- "@xenosystem/agent-interface-hub-adapter": "0.1.39"
46
+ "@xenosystem/agent-interface-client": "0.1.41",
47
+ "@xenosystem/agent-interface-hub-adapter": "0.1.41",
48
+ "@xenosystem/agent-interface-contract": "0.1.41",
49
+ "@xenosystem/agent-interface-core": "0.1.41"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "react": "^19.0.0",
@@ -231,10 +231,15 @@
231
231
  .xa-code pre { margin: 0; padding: 8px 9px; background: var(--xa-code); font-size: 11px; line-height: 16px; color: var(--xa-t3); white-space: pre; overflow-x: auto; scrollbar-width: thin; scrollbar-color: rgba(var(--xa-ink), 0.12) transparent; }
232
232
  .xa-code pre code { padding: 0; background: none; font-size: inherit; color: inherit; }
233
233
  /* the sources stay with the answer once the rail has folded: a line the citations point at */
234
- .xa-srcline { display: flex; align-items: center; gap: 8px; height: 22px; cursor: pointer; font-size: 11px; color: var(--xa-t4); }
234
+ /* the receipt row: the clock line, then settled, with sources a divider and the sources control,
235
+ each its own toggle; the line keeps its own width so the divider sits right after the chevron */
236
+ .xa-linerow { display: flex; align-items: center; gap: 10px; min-height: 22px; }
237
+ .xa-linerow > .xa-line { flex: none; }
238
+ .xa-linerow > .xa-vr-src { display: block; flex: none; width: 1px; height: 10px; background: rgba(var(--xa-ink), 0.12); animation: xa-rise 280ms var(--xa-ease) both; animation-delay: 160ms; }
239
+ .xa-srcline { display: flex; align-items: center; gap: 8px; height: 22px; cursor: pointer; font-size: 11px; color: var(--xa-t4); animation: xa-rise 280ms var(--xa-ease) both; animation-delay: 160ms; }
235
240
  .xa-srcline:hover { color: var(--xa-t2); }
236
241
  .xa-srcline .xa-stack { display: flex; }
237
- .xa-srcline .xa-stack .xa-fav { width: 14px; height: 14px; margin-left: -4px; border-radius: 2px; border: 1px solid var(--xa-line-tip); background: linear-gradient(135deg, #2a2a2f, #1c1c1f); box-shadow: 0 0 0 1px var(--xa-ground); }
242
+ .xa-srcline .xa-stack .xa-fav { margin-left: -4px; box-shadow: 0 0 0 1px var(--xa-ground); }
238
243
  .xa-srcline .xa-stack .xa-fav:first-child { margin-left: 0; }
239
244
  .xa-srcline .xa-chev { color: var(--xa-t6); transition: transform 160ms var(--xa-ease); }
240
245
  .xa-srcline.xa-open .xa-chev { transform: rotate(90deg); }
@@ -471,7 +476,7 @@
471
476
  .xa-detail.xa-sources .xa-it { display: flex; align-items: center; gap: 8px; min-height: 24px; font-size: 11px; color: var(--xa-t4); border-radius: 3px; transition: background 120ms linear; }
472
477
  .xa-detail.xa-sources .xa-it:hover, .xa-detail.xa-sources .xa-it.xa-hi { background: var(--xa-wash); }
473
478
  .xa-detail.xa-sources .xa-it .xa-n { flex: none; width: 16px; height: 16px; display: flex; align-items: center; justify-content: center; border-radius: 2px; background: rgba(var(--xa-ink), 0.07); border: 1px solid var(--xa-line-soft); font-size: 9px; font-weight: 500; color: var(--xa-t3); }
474
- .xa-detail.xa-sources .xa-it .xa-fav { flex: none; width: 14px; height: 14px; border-radius: 2px; border: 1px solid var(--xa-line-tip); background: linear-gradient(135deg, #2a2a2f, #1c1c1f); }
479
+ .xa-detail.xa-sources .xa-it .xa-fav { flex: none; }
475
480
  .xa-detail.xa-sources .xa-it .xa-k { color: var(--xa-t3); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; justify-content: flex-start; }
476
481
  .xa-detail.xa-sources .xa-it .xa-where { margin-left: auto; flex: none; font-size: 10px; color: var(--xa-t6); }
477
482
  .xa-detail.xa-sources .xa-it .xa-go { flex: none; width: 16px; color: var(--xa-t6); opacity: 0; transition: opacity 120ms linear; }
@@ -481,6 +486,29 @@
481
486
  .xa-detail.xa-frames .xa-frame { width: auto; height: 84px; max-width: 100%; }
482
487
  .xa-detail.xa-nest > .xa-rail { gap: 12px; padding: 2px 0; overflow: visible; }
483
488
 
489
+ /* ── favicons: the site's icon through the surface's proxy, or a letter tile — one shape everywhere ── */
490
+ .xa-fav { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; border-radius: 2px; border: 1px solid var(--xa-line-tip); background: var(--xa-plate); object-fit: contain; overflow: hidden; vertical-align: middle; }
491
+ img.xa-fav { padding: 1px; background: #fff; }
492
+ .xa-fav-letter { font-size: 8px; font-weight: 600; line-height: 1; color: var(--xa-t3); background: rgba(var(--xa-ink), 0.07); }
493
+
494
+ /* ── citations: the claim carries its evidence — a chip after the sentence, a card on hover ── */
495
+ .xa-cite { position: relative; display: inline-block; vertical-align: baseline; margin: 0 2px; line-height: 1; }
496
+ .xa-cite-chip { display: inline-flex; align-items: center; gap: 4px; max-width: 176px; height: 17px; padding: 0 6px; border-radius: 4px; border: 1px solid var(--xa-line-soft); background: rgba(var(--xa-ink), 0.06); font-size: 10.5px; font-weight: 500; color: var(--xa-t4); text-decoration: none; white-space: nowrap; vertical-align: -3px; transition: background 120ms linear, color 120ms linear, border-color 120ms linear; }
497
+ .xa-cite-chip:hover, .xa-cite.xa-open .xa-cite-chip { color: var(--xa-t2); border-color: var(--xa-line-tip); background: rgba(var(--xa-ink), 0.1); }
498
+ .xa-cite-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
499
+ .xa-cite-more { flex: none; color: var(--xa-t5); }
500
+ .xa-cite-go { flex: none; display: none; color: var(--xa-t4); }
501
+ .xa-cite-chip:hover .xa-cite-go, .xa-cite.xa-open .xa-cite-go { display: inline-flex; }
502
+ .xa-cite-go svg { width: 9px; height: 9px; }
503
+ .xa-cite-orphan { color: var(--xa-t5); font-size: 0.85em; }
504
+ .xa-citecard { position: absolute; left: 0; bottom: calc(100% + 8px); z-index: 30; display: none; flex-direction: column; width: 320px; max-width: min(320px, 80vw); padding: 6px; border-radius: 8px; border: 1px solid var(--xa-line-tip); background: var(--xa-menu); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35); }
505
+ .xa-cite.xa-open .xa-citecard { display: flex; }
506
+ .xa-citecard::after { content: ''; position: absolute; left: 0; right: 0; top: 100%; height: 10px; } /* the gap stays hoverable */
507
+ .xa-citecard-row { display: flex; flex-direction: column; gap: 4px; padding: 7px 8px; border-radius: 5px; text-decoration: none; transition: background 120ms linear; }
508
+ .xa-citecard-row:hover { background: var(--xa-wash-hover); }
509
+ .xa-citecard-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12.5px; font-weight: 500; line-height: 1.3; color: var(--xa-t1); }
510
+ .xa-citecard-site { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--xa-t4); }
511
+
484
512
  /* ── cards: A's card, Z's cadence — Cancel left, the way forward right ─── */
485
513
  .xa-row .xa-brk { flex: 0 0 100%; height: 0; }
486
514
  .xa-row .xa-brk + .xa-cardslot { margin-top: -9px; }