(state: FooterSubagentState)
| 89 | } |
| 90 | |
| 91 | export function traceSubagentState(state: FooterSubagentState) { |
| 92 | return { |
| 93 | tabs: state.tabs, |
| 94 | details: Object.fromEntries( |
| 95 | Object.entries(state.details).map(([sessionID, detail]) => [ |
| 96 | sessionID, |
| 97 | { |
| 98 | sessionID, |
| 99 | commits: detail.commits.map(traceCommit), |
| 100 | }, |
| 101 | ]), |
| 102 | ), |
| 103 | permissions: state.permissions.map((item) => ({ |
| 104 | id: item.id, |
| 105 | sessionID: item.sessionID, |
| 106 | permission: item.permission, |
| 107 | patterns: item.patterns, |
| 108 | tool: item.tool, |
| 109 | metadata: item.metadata |
| 110 | ? { |
| 111 | keys: Object.keys(item.metadata), |
| 112 | input: summarize(item.metadata.input), |
| 113 | } |
| 114 | : undefined, |
| 115 | })), |
| 116 | questions: state.questions.map((item) => ({ |
| 117 | id: item.id, |
| 118 | sessionID: item.sessionID, |
| 119 | questions: item.questions.map((question) => ({ |
| 120 | header: question.header, |
| 121 | question: question.question, |
| 122 | options: question.options.length, |
| 123 | multiple: question.multiple, |
| 124 | })), |
| 125 | })), |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | export function traceFooterOutput(footer?: FooterOutput) { |
| 130 | if (!footer?.subagent) { |
no test coverage detected