@copilotkitnext/angular 0.0.19-alpha.0 → 0.0.20

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.
Files changed (26) hide show
  1. package/dist/esm2022/lib/agent-context.mjs +25 -0
  2. package/dist/esm2022/lib/components/chat/copilot-chat-user-message-branch-navigation.mjs +26 -6
  3. package/dist/esm2022/lib/components/chat/copilot-chat-user-message.mjs +34 -36
  4. package/dist/esm2022/lib/components/chat/copilot-chat-user-message.types.mjs +1 -1
  5. package/dist/esm2022/lib/copilotkit.mjs +7 -16
  6. package/dist/esm2022/lib/render-tool-calls.mjs +24 -6
  7. package/dist/esm2022/lib/tools.mjs +1 -1
  8. package/dist/esm2022/public-api.mjs +2 -1
  9. package/dist/fesm2022/copilotkitnext-angular.mjs +110 -60
  10. package/dist/fesm2022/copilotkitnext-angular.mjs.map +1 -1
  11. package/dist/lib/agent-context.d.ts +12 -0
  12. package/dist/lib/agent.d.ts +1 -16
  13. package/dist/lib/components/chat/copilot-chat-assistant-message.d.ts +2 -32
  14. package/dist/lib/components/chat/copilot-chat-message-view.d.ts +7 -112
  15. package/dist/lib/components/chat/copilot-chat-tool-calls-view.d.ts +1 -16
  16. package/dist/lib/components/chat/copilot-chat-user-message-branch-navigation.d.ts +2 -17
  17. package/dist/lib/components/chat/copilot-chat-user-message.d.ts +2 -18
  18. package/dist/lib/components/chat/copilot-chat-user-message.types.d.ts +7 -1
  19. package/dist/lib/components/chat/copilot-chat-view-scroll-view.d.ts +1 -16
  20. package/dist/lib/components/chat/copilot-chat-view.d.ts +3 -48
  21. package/dist/lib/components/chat/copilot-chat.d.ts +1 -16
  22. package/dist/lib/render-tool-calls.d.ts +1 -16
  23. package/dist/lib/tools.d.ts +5 -3
  24. package/dist/public-api.d.ts +1 -0
  25. package/package.json +5 -5
  26. package/vitest.config.mts.timestamp-1760727629337-603c9e5c1f334.mjs +49 -0
@@ -28,4 +28,4 @@ export function registerHumanInTheLoop(humanInTheLoop) {
28
28
  copilotKit.removeTool(humanInTheLoop.name);
29
29
  });
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFnQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQTRFMUMsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxjQUEwQztJQUUxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU3QyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN4QixVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsWUFBc0M7SUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUN6QixHQUFJLFlBQW1DO1FBQ3ZDLFFBQVE7S0FDVCxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN4QixVQUFVLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLGNBQTBDO0lBRTFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTdDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ3hCLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdG9yLCBTaWduYWwsIFR5cGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGcm9udGVuZFRvb2wgfSBmcm9tIFwiQGNvcGlsb3RraXRuZXh0L2NvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBDb3BpbG90S2l0IH0gZnJvbSBcIi4vY29waWxvdGtpdFwiO1xuXG5leHBvcnQgdHlwZSBBbmd1bGFyVG9vbENhbGw8QXJncyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID1cbiAgfCB7XG4gICAgICBhcmdzOiBQYXJ0aWFsPEFyZ3M+O1xuICAgICAgc3RhdHVzOiBcImluLXByb2dyZXNzXCI7XG4gICAgICByZXN1bHQ6IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgYXJnczogQXJncztcbiAgICAgIHN0YXR1czogXCJleGVjdXRpbmdcIjtcbiAgICAgIHJlc3VsdDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfCB7XG4gICAgICBhcmdzOiBBcmdzO1xuICAgICAgc3RhdHVzOiBcImNvbXBsZXRlXCI7XG4gICAgICByZXN1bHQ6IHN0cmluZztcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBIdW1hbkluVGhlTG9vcFRvb2xDYWxsPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9XG4gIHwge1xuICAgICAgYXJnczogUGFydGlhbDxBcmdzPjtcbiAgICAgIHN0YXR1czogXCJpbi1wcm9ncmVzc1wiO1xuICAgICAgcmVzdWx0OiB1bmRlZmluZWQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGFyZ3M6IEFyZ3M7XG4gICAgICBzdGF0dXM6IFwiZXhlY3V0aW5nXCI7XG4gICAgICByZXN1bHQ6IHVuZGVmaW5lZDtcbiAgICAgIHJlc3BvbmQ6IChyZXN1bHQ6IHVua25vd24pID0+IHZvaWQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGFyZ3M6IEFyZ3M7XG4gICAgICBzdGF0dXM6IFwiY29tcGxldGVcIjtcbiAgICAgIHJlc3VsdDogc3RyaW5nO1xuICAgIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbFJlbmRlcmVyPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIHRvb2xDYWxsOiBTaWduYWw8QW5ndWxhclRvb2xDYWxsPEFyZ3M+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdW1hbkluVGhlTG9vcFRvb2xSZW5kZXJlcjxBcmdzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICB0b29sQ2FsbDogU2lnbmFsPEh1bWFuSW5UaGVMb29wVG9vbENhbGw8QXJncz4+O1xufVxuXG5leHBvcnQgdHlwZSBDbGllbnRUb29sPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IE9taXQ8XG4gIEZyb250ZW5kVG9vbDxBcmdzPixcbiAgXCJoYW5kbGVyXCJcbj4gJiB7XG4gIHJlbmRlcmVyPzogVHlwZTxUb29sUmVuZGVyZXI8QXJncz4+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJUb29sQ2FsbENvbmZpZzxBcmdzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFyZ3M6IHouWm9kVHlwZTxBcmdzPjtcbiAgY29tcG9uZW50OiBUeXBlPFRvb2xSZW5kZXJlcjxBcmdzPj47XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRlbmRUb29sQ29uZmlnPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgYXJnczogei5ab2RUeXBlPEFyZ3M+O1xuICBjb21wb25lbnQ/OiBUeXBlPFRvb2xSZW5kZXJlcjxBcmdzPj47XG4gIGhhbmRsZXI6IChhcmdzOiBBcmdzKSA9PiBQcm9taXNlPHVua25vd24+O1xuICBhZ2VudElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh1bWFuSW5UaGVMb29wQ29uZmlnPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXJnczogei5ab2RUeXBlPEFyZ3M+O1xuICBjb21wb25lbnQ6IFR5cGU8SHVtYW5JblRoZUxvb3BUb29sUmVuZGVyZXI8QXJncz4+O1xuICB0b29sQ2FsbDogU2lnbmFsPEh1bWFuSW5UaGVMb29wVG9vbENhbGw8QXJncz4+O1xuICBhZ2VudElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJSZW5kZXJUb29sQ2FsbDxBcmdzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIHJlbmRlclRvb2xDYWxsOiBSZW5kZXJUb29sQ2FsbENvbmZpZzxBcmdzPixcbik6IHZvaWQge1xuICBjb25zdCBjb3BpbG90S2l0ID0gaW5qZWN0KENvcGlsb3RLaXQpO1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvcGlsb3RLaXQuYWRkUmVuZGVyVG9vbENhbGwocmVuZGVyVG9vbENhbGwpO1xuXG4gIGRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICBjb3BpbG90S2l0LnJlbW92ZVRvb2wocmVuZGVyVG9vbENhbGwubmFtZSwgcmVuZGVyVG9vbENhbGwuYWdlbnRJZCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJGcm9udGVuZFRvb2w8QXJncyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBmcm9udGVuZFRvb2w6IEZyb250ZW5kVG9vbENvbmZpZzxBcmdzPixcbik6IHZvaWQge1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGNvbnN0IGNvcGlsb3RLaXQgPSBpbmplY3QoQ29waWxvdEtpdCk7XG5cbiAgY29waWxvdEtpdC5hZGRGcm9udGVuZFRvb2woe1xuICAgIC4uLihmcm9udGVuZFRvb2wgYXMgRnJvbnRlbmRUb29sQ29uZmlnKSxcbiAgICBpbmplY3RvcixcbiAgfSk7XG5cbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgIGNvcGlsb3RLaXQucmVtb3ZlVG9vbChmcm9udGVuZFRvb2wubmFtZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJIdW1hbkluVGhlTG9vcDxBcmdzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIGh1bWFuSW5UaGVMb29wOiBIdW1hbkluVGhlTG9vcENvbmZpZzxBcmdzPixcbik6IHZvaWQge1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBjb25zdCBjb3BpbG90S2l0ID0gaW5qZWN0KENvcGlsb3RLaXQpO1xuXG4gIGNvcGlsb3RLaXQuYWRkSHVtYW5JblRoZUxvb3AoaHVtYW5JblRoZUxvb3ApO1xuXG4gIGRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICBjb3BpbG90S2l0LnJlbW92ZVRvb2woaHVtYW5JblRoZUxvb3AubmFtZSk7XG4gIH0pO1xufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFnQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQThFMUMsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxjQUEwQztJQUUxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU3QyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN4QixVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsWUFBc0M7SUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUN6QixHQUFJLFlBQW1DO1FBQ3ZDLFFBQVE7S0FDVCxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN4QixVQUFVLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLGNBQTBDO0lBRTFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTdDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ3hCLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdG9yLCBTaWduYWwsIFR5cGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGcm9udGVuZFRvb2wgfSBmcm9tIFwiQGNvcGlsb3RraXRuZXh0L2NvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBDb3BpbG90S2l0IH0gZnJvbSBcIi4vY29waWxvdGtpdFwiO1xuXG5leHBvcnQgdHlwZSBBbmd1bGFyVG9vbENhbGw8QXJncyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID1cbiAgfCB7XG4gICAgICBhcmdzOiBQYXJ0aWFsPEFyZ3M+O1xuICAgICAgc3RhdHVzOiBcImluLXByb2dyZXNzXCI7XG4gICAgICByZXN1bHQ6IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgYXJnczogQXJncztcbiAgICAgIHN0YXR1czogXCJleGVjdXRpbmdcIjtcbiAgICAgIHJlc3VsdDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfCB7XG4gICAgICBhcmdzOiBBcmdzO1xuICAgICAgc3RhdHVzOiBcImNvbXBsZXRlXCI7XG4gICAgICByZXN1bHQ6IHN0cmluZztcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBIdW1hbkluVGhlTG9vcFRvb2xDYWxsPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9XG4gIHwge1xuICAgICAgYXJnczogUGFydGlhbDxBcmdzPjtcbiAgICAgIHN0YXR1czogXCJpbi1wcm9ncmVzc1wiO1xuICAgICAgcmVzdWx0OiB1bmRlZmluZWQ7XG4gICAgICByZXNwb25kOiAocmVzdWx0OiB1bmtub3duKSA9PiB2b2lkO1xuICAgIH1cbiAgfCB7XG4gICAgICBhcmdzOiBBcmdzO1xuICAgICAgc3RhdHVzOiBcImV4ZWN1dGluZ1wiO1xuICAgICAgcmVzdWx0OiB1bmRlZmluZWQ7XG4gICAgICByZXNwb25kOiAocmVzdWx0OiB1bmtub3duKSA9PiB2b2lkO1xuICAgIH1cbiAgfCB7XG4gICAgICBhcmdzOiBBcmdzO1xuICAgICAgc3RhdHVzOiBcImNvbXBsZXRlXCI7XG4gICAgICByZXN1bHQ6IHN0cmluZztcbiAgICAgIHJlc3BvbmQ6IChyZXN1bHQ6IHVua25vd24pID0+IHZvaWQ7XG4gICAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBUb29sUmVuZGVyZXI8QXJncyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgdG9vbENhbGw6IFNpZ25hbDxBbmd1bGFyVG9vbENhbGw8QXJncz4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh1bWFuSW5UaGVMb29wVG9vbFJlbmRlcmVyPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIHRvb2xDYWxsOiBTaWduYWw8SHVtYW5JblRoZUxvb3BUb29sQ2FsbDxBcmdzPj47XG59XG5cbmV4cG9ydCB0eXBlIENsaWVudFRvb2w8QXJncyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gT21pdDxcbiAgRnJvbnRlbmRUb29sPEFyZ3M+LFxuICBcImhhbmRsZXJcIlxuPiAmIHtcbiAgcmVuZGVyZXI/OiBUeXBlPFRvb2xSZW5kZXJlcjxBcmdzPj47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclRvb2xDYWxsQ29uZmlnPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXJnczogei5ab2RUeXBlPEFyZ3M+O1xuICBjb21wb25lbnQ6IFR5cGU8VG9vbFJlbmRlcmVyPEFyZ3M+PjtcbiAgYWdlbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9udGVuZFRvb2xDb25maWc8QXJncyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiB6LlpvZFR5cGU8QXJncz47XG4gIGNvbXBvbmVudD86IFR5cGU8VG9vbFJlbmRlcmVyPEFyZ3M+PjtcbiAgaGFuZGxlcjogKGFyZ3M6IEFyZ3MpID0+IFByb21pc2U8dW5rbm93bj47XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHVtYW5JblRoZUxvb3BDb25maWc8QXJncyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiB6LlpvZFR5cGU8QXJncz47XG4gIGNvbXBvbmVudDogVHlwZTxIdW1hbkluVGhlTG9vcFRvb2xSZW5kZXJlcjxBcmdzPj47XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclJlbmRlclRvb2xDYWxsPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgcmVuZGVyVG9vbENhbGw6IFJlbmRlclRvb2xDYWxsQ29uZmlnPEFyZ3M+LFxuKTogdm9pZCB7XG4gIGNvbnN0IGNvcGlsb3RLaXQgPSBpbmplY3QoQ29waWxvdEtpdCk7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29waWxvdEtpdC5hZGRSZW5kZXJUb29sQ2FsbChyZW5kZXJUb29sQ2FsbCk7XG5cbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgIGNvcGlsb3RLaXQucmVtb3ZlVG9vbChyZW5kZXJUb29sQ2FsbC5uYW1lLCByZW5kZXJUb29sQ2FsbC5hZ2VudElkKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckZyb250ZW5kVG9vbDxBcmdzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIGZyb250ZW5kVG9vbDogRnJvbnRlbmRUb29sQ29uZmlnPEFyZ3M+LFxuKTogdm9pZCB7XG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgY29uc3QgY29waWxvdEtpdCA9IGluamVjdChDb3BpbG90S2l0KTtcblxuICBjb3BpbG90S2l0LmFkZEZyb250ZW5kVG9vbCh7XG4gICAgLi4uKGZyb250ZW5kVG9vbCBhcyBGcm9udGVuZFRvb2xDb25maWcpLFxuICAgIGluamVjdG9yLFxuICB9KTtcblxuICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgY29waWxvdEtpdC5yZW1vdmVUb29sKGZyb250ZW5kVG9vbC5uYW1lKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlckh1bWFuSW5UaGVMb29wPEFyZ3MgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgaHVtYW5JblRoZUxvb3A6IEh1bWFuSW5UaGVMb29wQ29uZmlnPEFyZ3M+LFxuKTogdm9pZCB7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGNvbnN0IGNvcGlsb3RLaXQgPSBpbmplY3QoQ29waWxvdEtpdCk7XG5cbiAgY29waWxvdEtpdC5hZGRIdW1hbkluVGhlTG9vcChodW1hbkluVGhlTG9vcCk7XG5cbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgIGNvcGlsb3RLaXQucmVtb3ZlVG9vbChodW1hbkluVGhlTG9vcC5uYW1lKTtcbiAgfSk7XG59XG4iXX0=
@@ -8,6 +8,7 @@ export * from "./lib/chat-state";
8
8
  export * from "./lib/scroll-position";
9
9
  export * from "./lib/resize-observer";
10
10
  export * from "./lib/utils";
11
+ export * from "./lib/agent-context";
11
12
  export * from "./lib/slots";
12
13
  export * from "./lib/directives/copilotkit-agent-context";
13
14
  export * from "./lib/directives/stick-to-bottom";
@@ -44,4 +45,4 @@ export * from "./lib/components/chat/copilot-chat-view-input-container";
44
45
  export * from "./lib/components/chat/copilot-chat-view-scroll-to-bottom-button";
45
46
  export * from "./lib/components/chat/copilot-chat-view-scroll-view";
46
47
  export * from "./lib/components/chat/copilot-chat-view.types";
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywrQ0FBK0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb3BpbG90a2l0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdG9vbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9yZW5kZXItdG9vbC1jYWxsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2FnZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY2hhdC1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jaGF0LXN0YXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2Nyb2xsLXBvc2l0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvcmVzaXplLW9ic2VydmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdXRpbHNcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3Nsb3RzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kaXJlY3RpdmVzL2NvcGlsb3RraXQtYWdlbnQtY29udGV4dFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RpcmVjdGl2ZXMvc3RpY2stdG8tYm90dG9tXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGlyZWN0aXZlcy90b29sdGlwXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1hc3Npc3RhbnQtbWVzc2FnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtYXNzaXN0YW50LW1lc3NhZ2UtYnV0dG9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtYXNzaXN0YW50LW1lc3NhZ2UtcmVuZGVyZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LWFzc2lzdGFudC1tZXNzYWdlLXRvb2xiYXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LWFzc2lzdGFudC1tZXNzYWdlLnR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1hdWRpby1yZWNvcmRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtYnV0dG9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtaW5wdXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LWlucHV0LWRlZmF1bHRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1pbnB1dC50eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtbWVzc2FnZS12aWV3XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1tZXNzYWdlLXZpZXctY3Vyc29yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1tZXNzYWdlLXZpZXcudHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXRleHRhcmVhXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC10b29sLWNhbGxzLXZpZXdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXRvb2xiYXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXRvb2xzLW1lbnVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXVzZXItbWVzc2FnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdXNlci1tZXNzYWdlLWJyYW5jaC1uYXZpZ2F0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC11c2VyLW1lc3NhZ2UtYnV0dG9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdXNlci1tZXNzYWdlLXJlbmRlcmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC11c2VyLW1lc3NhZ2UtdG9vbGJhclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdXNlci1tZXNzYWdlLnR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC12aWV3XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC12aWV3LWRpc2NsYWltZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXZpZXctZmVhdGhlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdmlldy1oYW5kbGVyc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdmlldy1pbnB1dC1jb250YWluZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXZpZXctc2Nyb2xsLXRvLWJvdHRvbS1idXR0b25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXZpZXctc2Nyb2xsLXZpZXdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXZpZXcudHlwZXNcIjtcbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMEJBQTBCLENBQUM7QUFFekMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvcGlsb3RraXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi90b29sc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3JlbmRlci10b29sLWNhbGxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvYWdlbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jaGF0LWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NoYXQtc3RhdGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zY3JvbGwtcG9zaXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9yZXNpemUtb2JzZXJ2ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi91dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2FnZW50LWNvbnRleHRcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbGliL3Nsb3RzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kaXJlY3RpdmVzL2NvcGlsb3RraXQtYWdlbnQtY29udGV4dFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RpcmVjdGl2ZXMvc3RpY2stdG8tYm90dG9tXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGlyZWN0aXZlcy90b29sdGlwXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1hc3Npc3RhbnQtbWVzc2FnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtYXNzaXN0YW50LW1lc3NhZ2UtYnV0dG9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtYXNzaXN0YW50LW1lc3NhZ2UtcmVuZGVyZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LWFzc2lzdGFudC1tZXNzYWdlLXRvb2xiYXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LWFzc2lzdGFudC1tZXNzYWdlLnR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1hdWRpby1yZWNvcmRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtYnV0dG9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtaW5wdXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LWlucHV0LWRlZmF1bHRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1pbnB1dC50eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtbWVzc2FnZS12aWV3XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1tZXNzYWdlLXZpZXctY3Vyc29yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1tZXNzYWdlLXZpZXcudHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXRleHRhcmVhXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC10b29sLWNhbGxzLXZpZXdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXRvb2xiYXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXRvb2xzLW1lbnVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXVzZXItbWVzc2FnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdXNlci1tZXNzYWdlLWJyYW5jaC1uYXZpZ2F0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC11c2VyLW1lc3NhZ2UtYnV0dG9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdXNlci1tZXNzYWdlLXJlbmRlcmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC11c2VyLW1lc3NhZ2UtdG9vbGJhclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdXNlci1tZXNzYWdlLnR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC12aWV3XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC12aWV3LWRpc2NsYWltZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXZpZXctZmVhdGhlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdmlldy1oYW5kbGVyc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdmlldy1pbnB1dC1jb250YWluZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXZpZXctc2Nyb2xsLXRvLWJvdHRvbS1idXR0b25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXZpZXctc2Nyb2xsLXZpZXdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXZpZXcudHlwZXNcIjtcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, Injector, signal, runInInjectionContext, DestroyRef, input, Component, computed, ElementRef, TemplateRef, ViewContainerRef, ViewChild, Inject, ChangeDetectionStrategy, Input, Directive, output, HostListener, effect, ViewEncapsulation, ContentChild, Optional, ChangeDetectorRef, PLATFORM_ID, forwardRef } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, Injector, signal, runInInjectionContext, DestroyRef, input, Component, computed, ElementRef, effect, TemplateRef, ViewContainerRef, ViewChild, Inject, ChangeDetectionStrategy, Input, Directive, output, HostListener, ViewEncapsulation, ContentChild, Optional, ChangeDetectorRef, PLATFORM_ID, forwardRef } from '@angular/core';
3
3
  import { CopilotKitCore, completePartialMarkdown } from '@copilotkitnext/core';
4
4
  import { Subject, lastValueFrom, filter, take, BehaviorSubject, merge, fromEvent, animationFrameScheduler } from 'rxjs';
5
5
  import * as i1$1 from '@angular/common';
@@ -99,10 +99,7 @@ class CopilotKit {
99
99
  addFrontendTool(clientToolWithInjector) {
100
100
  const tool = this.#bindClientTool(clientToolWithInjector);
101
101
  this.core.addTool(tool);
102
- this.#clientToolCallRenderConfigs.update((current) => [
103
- ...current,
104
- clientToolWithInjector,
105
- ]);
102
+ this.#clientToolCallRenderConfigs.update((current) => [...current, clientToolWithInjector]);
106
103
  }
107
104
  addRenderToolCall(renderConfig) {
108
105
  this.#toolCallRenderConfigs.update((current) => [...current, renderConfig]);
@@ -116,10 +113,7 @@ class CopilotKit {
116
113
  };
117
114
  }
118
115
  addHumanInTheLoop(humanInTheLoopTool) {
119
- this.#humanInTheLoopToolRenderConfigs.update((current) => [
120
- ...current,
121
- humanInTheLoopTool,
122
- ]);
116
+ this.#humanInTheLoopToolRenderConfigs.update((current) => [...current, humanInTheLoopTool]);
123
117
  const tool = this.#bindHumanInTheLoopTool(humanInTheLoopTool);
124
118
  this.core.addTool(tool);
125
119
  }
@@ -131,12 +125,9 @@ class CopilotKit {
131
125
  }
132
126
  removeTool(toolName, agentId) {
133
127
  this.core.removeTool(toolName);
134
- this.#clientToolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
135
- this.#isSameAgentId(renderConfig, agentId)));
136
- this.#humanInTheLoopToolRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
137
- this.#isSameAgentId(renderConfig, agentId)));
138
- this.#toolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
139
- this.#isSameAgentId(renderConfig, agentId)));
128
+ this.#clientToolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName && this.#isSameAgentId(renderConfig, agentId)));
129
+ this.#humanInTheLoopToolRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName && this.#isSameAgentId(renderConfig, agentId)));
130
+ this.#toolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName && this.#isSameAgentId(renderConfig, agentId)));
140
131
  }
141
132
  getAgent(agentId) {
142
133
  return this.core.getAgent(agentId);
@@ -245,11 +236,15 @@ class RenderToolCalls {
245
236
  buildHumanInTheLoopToolCall(toolCall) {
246
237
  const args = partialJSONParse(toolCall.function.arguments);
247
238
  const message = this.#getToolMessage(toolCall.id);
239
+ const respond = (result) => {
240
+ this.#hitl.addResult(toolCall.id, toolCall.function.name, result);
241
+ };
248
242
  if (message) {
249
243
  return {
250
244
  args,
251
245
  status: "complete",
252
246
  result: message.content,
247
+ respond,
253
248
  };
254
249
  }
255
250
  else if (this.isLoading()) {
@@ -257,6 +252,7 @@ class RenderToolCalls {
257
252
  args,
258
253
  status: "in-progress",
259
254
  result: undefined,
255
+ respond,
260
256
  };
261
257
  }
262
258
  else {
@@ -264,15 +260,12 @@ class RenderToolCalls {
264
260
  args,
265
261
  status: "executing",
266
262
  result: undefined,
267
- respond: (result) => {
268
- this.#hitl.addResult(toolCall.id, toolCall.function.name, result);
269
- },
263
+ respond,
270
264
  };
271
265
  }
272
266
  }
273
267
  #getToolMessage(toolCallId) {
274
- const message = this.messages().find((m) => m.role === "tool" && m.toolCallId === toolCallId);
275
- return message;
268
+ return this.messages().find((m) => m.role === "tool" && m.toolCallId === toolCallId);
276
269
  }
277
270
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RenderToolCalls, deps: [], target: i0.ɵɵFactoryTarget.Component });
278
271
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RenderToolCalls, isStandalone: true, selector: "copilot-render-tool-calls", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
@@ -283,6 +276,14 @@ class RenderToolCalls {
283
276
  *ngComponentOutlet="renderConfig.config.component; inputs: { toolCall: buildToolCall(toolCall) }"
284
277
  />
285
278
  }
279
+ @if (renderConfig && renderConfig.type === "humanInTheLoopTool" && renderConfig.config.component) {
280
+ <ng-container
281
+ *ngComponentOutlet="
282
+ renderConfig.config.component;
283
+ inputs: { toolCall: buildHumanInTheLoopToolCall(toolCall) }
284
+ "
285
+ />
286
+ }
286
287
  }
287
288
  `, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }] });
288
289
  }
@@ -300,6 +301,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
300
301
  *ngComponentOutlet="renderConfig.config.component; inputs: { toolCall: buildToolCall(toolCall) }"
301
302
  />
302
303
  }
304
+ @if (renderConfig && renderConfig.type === "humanInTheLoopTool" && renderConfig.config.component) {
305
+ <ng-container
306
+ *ngComponentOutlet="
307
+ renderConfig.config.component;
308
+ inputs: { toolCall: buildHumanInTheLoopToolCall(toolCall) }
309
+ "
310
+ />
311
+ }
303
312
  }
304
313
  `,
305
314
  }]
@@ -699,6 +708,29 @@ function cn(...inputs) {
699
708
  return twMerge(clsx(inputs));
700
709
  }
701
710
 
711
+ /**
712
+ * Connects context to the agent.
713
+ *
714
+ * @param context - The context (or a signal of context) to connect to the agent.
715
+ * @param config - Optional configuration for connecting the context.
716
+ */
717
+ function connectAgentContext(context, config) {
718
+ const injector = inject(Injector, { optional: true }) ?? config?.injector;
719
+ if (!injector) {
720
+ throw new Error("Injector not found. You must call connectAgentContext in an injector context or pass an injector in the config");
721
+ }
722
+ runInInjectionContext(injector, () => {
723
+ const copilotkit = inject(CopilotKit);
724
+ effect((teardown) => {
725
+ const contextValue = typeof context === "function" ? context() : context;
726
+ const id = copilotkit.core.addContext(contextValue);
727
+ teardown(() => {
728
+ copilotkit.core.removeContext(id);
729
+ });
730
+ });
731
+ });
732
+ }
733
+
702
734
  /**
703
735
  * Injection token for slot configuration
704
736
  */
@@ -2918,13 +2950,23 @@ class CopilotChatUserMessageBranchNavigation {
2918
2950
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CopilotChatUserMessageBranchNavigation, isStandalone: true, selector: "copilot-chat-user-message-branch-navigation", inputs: { currentBranch: { classPropertyName: "currentBranch", publicName: "currentBranch", isSignal: true, isRequired: false, transformFunction: null }, numberOfBranches: { classPropertyName: "numberOfBranches", publicName: "numberOfBranches", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { switchToBranch: "switchToBranch" }, ngImport: i0, template: `
2919
2951
  @if (showNavigation()) {
2920
2952
  <div [class]="computedClass()">
2921
- <button type="button" [class]="buttonClass" [disabled]="!canGoPrev()" (click)="handlePrevious()">
2953
+ <button
2954
+ type="button"
2955
+ [class]="buttonClass"
2956
+ [disabled]="!canGoPrev()"
2957
+ (click)="handlePrevious()"
2958
+ >
2922
2959
  <lucide-angular [img]="ChevronLeftIcon" [size]="20"></lucide-angular>
2923
2960
  </button>
2924
2961
  <span class="text-sm text-muted-foreground px-0 font-medium">
2925
2962
  {{ currentBranch() + 1 }}/{{ numberOfBranches() }}
2926
2963
  </span>
2927
- <button type="button" [class]="buttonClass" [disabled]="!canGoNext()" (click)="handleNext()">
2964
+ <button
2965
+ type="button"
2966
+ [class]="buttonClass"
2967
+ [disabled]="!canGoNext()"
2968
+ (click)="handleNext()"
2969
+ >
2928
2970
  <lucide-angular [img]="ChevronRightIcon" [size]="20"></lucide-angular>
2929
2971
  </button>
2930
2972
  </div>
@@ -2942,13 +2984,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2942
2984
  template: `
2943
2985
  @if (showNavigation()) {
2944
2986
  <div [class]="computedClass()">
2945
- <button type="button" [class]="buttonClass" [disabled]="!canGoPrev()" (click)="handlePrevious()">
2987
+ <button
2988
+ type="button"
2989
+ [class]="buttonClass"
2990
+ [disabled]="!canGoPrev()"
2991
+ (click)="handlePrevious()"
2992
+ >
2946
2993
  <lucide-angular [img]="ChevronLeftIcon" [size]="20"></lucide-angular>
2947
2994
  </button>
2948
2995
  <span class="text-sm text-muted-foreground px-0 font-medium">
2949
2996
  {{ currentBranch() + 1 }}/{{ numberOfBranches() }}
2950
2997
  </span>
2951
- <button type="button" [class]="buttonClass" [disabled]="!canGoNext()" (click)="handleNext()">
2998
+ <button
2999
+ type="button"
3000
+ [class]="buttonClass"
3001
+ [disabled]="!canGoNext()"
3002
+ (click)="handleNext()"
3003
+ >
2952
3004
  <lucide-angular [img]="ChevronRightIcon" [size]="20"></lucide-angular>
2953
3005
  </button>
2954
3006
  </div>
@@ -2957,27 +3009,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2957
3009
  }]
2958
3010
  }] });
2959
3011
 
2960
- function flattenUserMessageContent(content) {
2961
- if (!content) {
2962
- return "";
2963
- }
2964
- if (typeof content === "string") {
2965
- return content;
2966
- }
2967
- return content
2968
- .map((part) => {
2969
- if (part &&
2970
- typeof part === "object" &&
2971
- "type" in part &&
2972
- part.type === "text" &&
2973
- typeof part.text === "string") {
2974
- return part.text;
2975
- }
2976
- return "";
2977
- })
2978
- .filter((text) => text.length > 0)
2979
- .join("\n");
2980
- }
2981
3012
  class CopilotChatUserMessage {
2982
3013
  // Capture templates from content projection
2983
3014
  messageRendererTemplate;
@@ -3019,9 +3050,8 @@ class CopilotChatUserMessage {
3019
3050
  showBranchNavigation = computed(() => (this.numberOfBranches() ?? 1) > 1);
3020
3051
  computedClass = computed(() => cn("flex flex-col items-end group pt-10", this.inputClass()));
3021
3052
  // Context for slots (reactive via signals)
3022
- flattenedContent = computed(() => flattenUserMessageContent(this.message()?.content));
3023
3053
  messageRendererContext = computed(() => ({
3024
- content: this.flattenedContent(),
3054
+ content: this.message()?.content || "",
3025
3055
  }));
3026
3056
  // Output maps for slots
3027
3057
  copyButtonOutputs = { clicked: () => this.handleCopy() };
@@ -3058,7 +3088,10 @@ class CopilotChatUserMessage {
3058
3088
  >
3059
3089
  </copilot-slot>
3060
3090
  } @else {
3061
- <copilot-chat-user-message-renderer [content]="flattenedContent()" [inputClass]="messageRendererClass()">
3091
+ <copilot-chat-user-message-renderer
3092
+ [content]="message()?.content || ''"
3093
+ [inputClass]="messageRendererClass()"
3094
+ >
3062
3095
  </copilot-chat-user-message-renderer>
3063
3096
  }
3064
3097
 
@@ -3075,21 +3108,23 @@ class CopilotChatUserMessage {
3075
3108
  <div class="flex items-center gap-1 justify-end">
3076
3109
  <!-- Additional toolbar items -->
3077
3110
  @if (additionalToolbarItems()) {
3078
- <ng-container [ngTemplateOutlet]="additionalToolbarItems() || null"></ng-container>
3111
+ <ng-container
3112
+ [ngTemplateOutlet]="additionalToolbarItems() || null"
3113
+ ></ng-container>
3079
3114
  }
3080
3115
 
3081
3116
  <!-- Copy button -->
3082
3117
  @if (copyButtonTemplate || copyButtonComponent()) {
3083
3118
  <copilot-slot
3084
3119
  [slot]="copyButtonTemplate || copyButtonComponent()"
3085
- [context]="{ content: flattenedContent() }"
3120
+ [context]="{ content: message()?.content || '' }"
3086
3121
  [outputs]="copyButtonOutputs"
3087
3122
  [defaultComponent]="CopilotChatUserMessageCopyButton"
3088
3123
  >
3089
3124
  </copilot-slot>
3090
3125
  } @else {
3091
3126
  <copilot-chat-user-message-copy-button
3092
- [content]="flattenedContent()"
3127
+ [content]="message()?.content"
3093
3128
  [inputClass]="copyButtonClass()"
3094
3129
  (clicked)="handleCopy()"
3095
3130
  >
@@ -3107,7 +3142,10 @@ class CopilotChatUserMessage {
3107
3142
  >
3108
3143
  </copilot-slot>
3109
3144
  } @else {
3110
- <copilot-chat-user-message-edit-button [inputClass]="editButtonClass()" (clicked)="handleEdit()">
3145
+ <copilot-chat-user-message-edit-button
3146
+ [inputClass]="editButtonClass()"
3147
+ (clicked)="handleEdit()"
3148
+ >
3111
3149
  </copilot-chat-user-message-edit-button>
3112
3150
  }
3113
3151
  }
@@ -3116,7 +3154,9 @@ class CopilotChatUserMessage {
3116
3154
  @if (showBranchNavigation()) {
3117
3155
  @if (branchNavigationTemplate || branchNavigationComponent()) {
3118
3156
  <copilot-slot
3119
- [slot]="branchNavigationTemplate || branchNavigationComponent()"
3157
+ [slot]="
3158
+ branchNavigationTemplate || branchNavigationComponent()
3159
+ "
3120
3160
  [context]="branchNavigationContext()"
3121
3161
  [defaultComponent]="CopilotChatUserMessageBranchNavigation"
3122
3162
  >
@@ -3159,7 +3199,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3159
3199
  >
3160
3200
  </copilot-slot>
3161
3201
  } @else {
3162
- <copilot-chat-user-message-renderer [content]="flattenedContent()" [inputClass]="messageRendererClass()">
3202
+ <copilot-chat-user-message-renderer
3203
+ [content]="message()?.content || ''"
3204
+ [inputClass]="messageRendererClass()"
3205
+ >
3163
3206
  </copilot-chat-user-message-renderer>
3164
3207
  }
3165
3208
 
@@ -3176,21 +3219,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3176
3219
  <div class="flex items-center gap-1 justify-end">
3177
3220
  <!-- Additional toolbar items -->
3178
3221
  @if (additionalToolbarItems()) {
3179
- <ng-container [ngTemplateOutlet]="additionalToolbarItems() || null"></ng-container>
3222
+ <ng-container
3223
+ [ngTemplateOutlet]="additionalToolbarItems() || null"
3224
+ ></ng-container>
3180
3225
  }
3181
3226
 
3182
3227
  <!-- Copy button -->
3183
3228
  @if (copyButtonTemplate || copyButtonComponent()) {
3184
3229
  <copilot-slot
3185
3230
  [slot]="copyButtonTemplate || copyButtonComponent()"
3186
- [context]="{ content: flattenedContent() }"
3231
+ [context]="{ content: message()?.content || '' }"
3187
3232
  [outputs]="copyButtonOutputs"
3188
3233
  [defaultComponent]="CopilotChatUserMessageCopyButton"
3189
3234
  >
3190
3235
  </copilot-slot>
3191
3236
  } @else {
3192
3237
  <copilot-chat-user-message-copy-button
3193
- [content]="flattenedContent()"
3238
+ [content]="message()?.content"
3194
3239
  [inputClass]="copyButtonClass()"
3195
3240
  (clicked)="handleCopy()"
3196
3241
  >
@@ -3208,7 +3253,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3208
3253
  >
3209
3254
  </copilot-slot>
3210
3255
  } @else {
3211
- <copilot-chat-user-message-edit-button [inputClass]="editButtonClass()" (clicked)="handleEdit()">
3256
+ <copilot-chat-user-message-edit-button
3257
+ [inputClass]="editButtonClass()"
3258
+ (clicked)="handleEdit()"
3259
+ >
3212
3260
  </copilot-chat-user-message-edit-button>
3213
3261
  }
3214
3262
  }
@@ -3217,7 +3265,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3217
3265
  @if (showBranchNavigation()) {
3218
3266
  @if (branchNavigationTemplate || branchNavigationComponent()) {
3219
3267
  <copilot-slot
3220
- [slot]="branchNavigationTemplate || branchNavigationComponent()"
3268
+ [slot]="
3269
+ branchNavigationTemplate || branchNavigationComponent()
3270
+ "
3221
3271
  [context]="branchNavigationContext()"
3222
3272
  [defaultComponent]="CopilotChatUserMessageBranchNavigation"
3223
3273
  >
@@ -6273,5 +6323,5 @@ class CopilotChatInputDefaults {
6273
6323
  * Generated bundle index. Do not edit.
6274
6324
  */
6275
6325
 
6276
- export { AgentStore, AudioRecorderError, COPILOT_CHAT_DEFAULT_LABELS, COPILOT_CHAT_LABELS, COPILOT_KIT_CONFIG, ChatState, CopilotChat, CopilotChatAddFileButton, CopilotChatAssistantMessage, CopilotChatAssistantMessageCopyButton, CopilotChatAssistantMessageReadAloudButton, CopilotChatAssistantMessageRegenerateButton, CopilotChatAssistantMessageRenderer, CopilotChatAssistantMessageThumbsDownButton, CopilotChatAssistantMessageThumbsUpButton, CopilotChatAssistantMessageToolbar, CopilotChatAssistantMessageToolbarButton, CopilotChatAudioRecorder, CopilotChatCancelTranscribeButton, CopilotChatFinishTranscribeButton, CopilotChatInput, CopilotChatInputDefaults, CopilotChatMessageView, CopilotChatMessageViewCursor, CopilotChatSendButton, CopilotChatStartTranscribeButton, CopilotChatTextarea, CopilotChatToolCallsView, CopilotChatToolbar, CopilotChatToolbarButton, CopilotChatToolsMenu, CopilotChatUserMessage, CopilotChatUserMessageBranchNavigation, CopilotChatUserMessageCopyButton, CopilotChatUserMessageEditButton, CopilotChatUserMessageRenderer, CopilotChatUserMessageToolbar, CopilotChatUserMessageToolbarButton, CopilotChatView, CopilotChatViewDisclaimer, CopilotChatViewFeather, CopilotChatViewHandlers, CopilotChatViewInputContainer, CopilotChatViewScrollToBottomButton, CopilotChatViewScrollView, CopilotKit, CopilotKitAgentContext, CopilotSlot, CopilotTooltip, CopilotkitAgentFactory, RenderToolCalls, ResizeObserverService, SLOT_CONFIG, ScrollPosition, StickToBottom, TooltipContent, cn, createSlotConfig, createSlotRenderer, getSlotConfig, injectAgentStore, injectChatLabels, injectChatState, injectCopilotKitConfig, isComponentType, isSlotValue, normalizeSlotValue, provideCopilotChatLabels, provideCopilotKit, provideSlots, registerFrontendTool, registerHumanInTheLoop, registerRenderToolCall, renderSlot };
6326
+ export { AgentStore, AudioRecorderError, COPILOT_CHAT_DEFAULT_LABELS, COPILOT_CHAT_LABELS, COPILOT_KIT_CONFIG, ChatState, CopilotChat, CopilotChatAddFileButton, CopilotChatAssistantMessage, CopilotChatAssistantMessageCopyButton, CopilotChatAssistantMessageReadAloudButton, CopilotChatAssistantMessageRegenerateButton, CopilotChatAssistantMessageRenderer, CopilotChatAssistantMessageThumbsDownButton, CopilotChatAssistantMessageThumbsUpButton, CopilotChatAssistantMessageToolbar, CopilotChatAssistantMessageToolbarButton, CopilotChatAudioRecorder, CopilotChatCancelTranscribeButton, CopilotChatFinishTranscribeButton, CopilotChatInput, CopilotChatInputDefaults, CopilotChatMessageView, CopilotChatMessageViewCursor, CopilotChatSendButton, CopilotChatStartTranscribeButton, CopilotChatTextarea, CopilotChatToolCallsView, CopilotChatToolbar, CopilotChatToolbarButton, CopilotChatToolsMenu, CopilotChatUserMessage, CopilotChatUserMessageBranchNavigation, CopilotChatUserMessageCopyButton, CopilotChatUserMessageEditButton, CopilotChatUserMessageRenderer, CopilotChatUserMessageToolbar, CopilotChatUserMessageToolbarButton, CopilotChatView, CopilotChatViewDisclaimer, CopilotChatViewFeather, CopilotChatViewHandlers, CopilotChatViewInputContainer, CopilotChatViewScrollToBottomButton, CopilotChatViewScrollView, CopilotKit, CopilotKitAgentContext, CopilotSlot, CopilotTooltip, CopilotkitAgentFactory, RenderToolCalls, ResizeObserverService, SLOT_CONFIG, ScrollPosition, StickToBottom, TooltipContent, cn, connectAgentContext, createSlotConfig, createSlotRenderer, getSlotConfig, injectAgentStore, injectChatLabels, injectChatState, injectCopilotKitConfig, isComponentType, isSlotValue, normalizeSlotValue, provideCopilotChatLabels, provideCopilotKit, provideSlots, registerFrontendTool, registerHumanInTheLoop, registerRenderToolCall, renderSlot };
6277
6327
  //# sourceMappingURL=copilotkitnext-angular.mjs.map