MCPcopy Create free account
hub / github.com/arctic-cli/interface / summarizeSession

Function summarizeSession

packages/arctic/src/session/summary.ts:36–61  ·  view source on GitHub ↗
(input: { sessionID: string; messages: MessageV2.WithParts[] })

Source from the content-addressed store, hash-verified

34 )
35
36 async function summarizeSession(input: { sessionID: string; messages: MessageV2.WithParts[] }) {
37 const files = new Set(
38 input.messages
39 .flatMap((x) => x.parts)
40 .filter((x) => x.type === "patch")
41 .flatMap((x) => x.files)
42 .map((x) => path.relative(Instance.worktree, x)),
43 )
44 const diffs = await computeDiff({ messages: input.messages }).then((x) =>
45 x.filter((x) => {
46 return files.has(x.file)
47 }),
48 )
49 await Session.update(input.sessionID, (draft) => {
50 draft.summary = {
51 additions: diffs.reduce((sum, x) => sum + x.additions, 0),
52 deletions: diffs.reduce((sum, x) => sum + x.deletions, 0),
53 files: diffs.length,
54 }
55 })
56 await Storage.write(["session_diff", input.sessionID], diffs)
57 Bus.publish(Session.Event.Diff, {
58 sessionID: input.sessionID,
59 diff: diffs,
60 })
61 }
62
63 async function summarizeMessage(input: { messageID: string; messages: MessageV2.WithParts[] }) {
64 const cfg = await Config.get()

Callers 1

summary.tsFile · 0.85

Calls 3

computeDiffFunction · 0.85
updateMethod · 0.45
publishMethod · 0.45

Tested by

no test coverage detected