MCPcopy Index your code
hub / github.com/anomalyco/opencode / part

Function part

packages/opencode/src/cli/cmd/export.ts:69–159  ·  view source on GitHub ↗
(part: SessionV1.Part)

Source from the content-addressed store, hash-verified

67}
68
69function part(part: SessionV1.Part): SessionV1.Part {
70 switch (part.type) {
71 case "text":
72 return {
73 ...part,
74 text: redact("text", part.id, part.text),
75 metadata: data("text-metadata", part.id, part.metadata),
76 }
77 case "reasoning":
78 return {
79 ...part,
80 text: redact("reasoning", part.id, part.text),
81 metadata: data("reasoning-metadata", part.id, part.metadata),
82 }
83 case "file":
84 return filepart(part)
85 case "subtask":
86 return {
87 ...part,
88 prompt: redact("subtask-prompt", part.id, part.prompt),
89 description: redact("subtask-description", part.id, part.description),
90 command: part.command === undefined ? undefined : redact("subtask-command", part.id, part.command),
91 }
92 case "tool":
93 return {
94 ...part,
95 metadata: data("tool-metadata", part.id, part.metadata),
96 state:
97 part.state.status === "pending"
98 ? {
99 ...part.state,
100 input: data("tool-input", part.id, part.state.input) ?? part.state.input,
101 raw: redact("tool-raw", part.id, part.state.raw),
102 }
103 : part.state.status === "running"
104 ? {
105 ...part.state,
106 input: data("tool-input", part.id, part.state.input) ?? part.state.input,
107 title: part.state.title === undefined ? undefined : redact("tool-title", part.id, part.state.title),
108 metadata: data("tool-state-metadata", part.id, part.state.metadata),
109 }
110 : part.state.status === "completed"
111 ? {
112 ...part.state,
113 input: data("tool-input", part.id, part.state.input) ?? part.state.input,
114 output: redact("tool-output", part.id, part.state.output),
115 title: redact("tool-title", part.id, part.state.title),
116 metadata: data("tool-state-metadata", part.id, part.state.metadata) ?? part.state.metadata,
117 attachments: part.state.attachments?.map(filepart),
118 }
119 : {
120 ...part.state,
121 input: data("tool-input", part.id, part.state.input) ?? part.state.input,
122 metadata: data("tool-state-metadata", part.id, part.state.metadata),
123 },
124 }
125 case "patch":
126 return {

Callers

nothing calls this directly

Calls 3

redactFunction · 0.85
filepartFunction · 0.85
dataFunction · 0.70

Tested by

no test coverage detected