@dxos/plugin-markdown 0.8.4-main.c4373fc → 0.8.4-main.d9fc60f731
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.
- package/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs +34 -0
- package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs +126 -0
- package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs +107 -0
- package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.mjs +58 -0
- package/dist/lib/neutral/MarkdownPlugin.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
- package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
- package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs +32 -0
- package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
- package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs +32 -0
- package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs +56 -0
- package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs.map +7 -0
- package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
- package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
- package/dist/lib/neutral/blueprints/index.mjs +8 -0
- package/dist/lib/neutral/capabilities/index.mjs +25 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/node.mjs +11 -0
- package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
- package/dist/lib/neutral/chunk-36QFEVOZ.mjs +30 -0
- package/dist/lib/neutral/chunk-36QFEVOZ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-A45UVZEH.mjs +285 -0
- package/dist/lib/neutral/chunk-A45UVZEH.mjs.map +7 -0
- package/dist/lib/neutral/chunk-E5NVTEKQ.mjs +8 -0
- package/dist/lib/neutral/chunk-E5NVTEKQ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
- package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
- package/dist/lib/neutral/chunk-LXNSKCPD.mjs +44 -0
- package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
- package/dist/lib/neutral/comment-config-ZEA66BUR.mjs +31 -0
- package/dist/lib/neutral/comment-config-ZEA66BUR.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +371 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +13 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-HONLDBVT.mjs +28 -0
- package/dist/lib/neutral/create-HONLDBVT.mjs.map +7 -0
- package/dist/lib/neutral/create-markdown-UCPD2Z3V.mjs +20 -0
- package/dist/lib/neutral/create-markdown-UCPD2Z3V.mjs.map +7 -0
- package/dist/lib/neutral/create-object-VU3KX663.mjs +28 -0
- package/dist/lib/neutral/create-object-VU3KX663.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +316 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +42 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/open-VVDMNJ7J.mjs +20 -0
- package/dist/lib/neutral/open-VVDMNJ7J.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
- package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-EMYFM37T.mjs +119 -0
- package/dist/lib/neutral/react-surface-EMYFM37T.mjs.map +7 -0
- package/dist/lib/neutral/scroll-to-anchor-Y3P676QG.mjs +47 -0
- package/dist/lib/neutral/scroll-to-anchor-Y3P676QG.mjs.map +7 -0
- package/dist/lib/neutral/set-view-mode-JZB7UXIF.mjs +24 -0
- package/dist/lib/neutral/set-view-mode-JZB7UXIF.mjs.map +7 -0
- package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
- package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
- package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
- package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +30 -0
- package/dist/lib/neutral/testing.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +44 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +16 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/update-markdown-F25F4EPF.mjs +44 -0
- package/dist/lib/neutral/update-markdown-F25F4EPF.mjs.map +7 -0
- package/dist/types/src/MarkdownPlugin.d.ts +3 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/MarkdownPlugin.node.d.ts +4 -0
- package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
- package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
- package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
- package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
- package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown-blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
- package/dist/types/src/capabilities/anchor-sort.d.ts +4 -4
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +3 -2
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/comment-config.d.ts +12 -0
- package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +22 -18
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +10 -0
- package/dist/types/src/capabilities/node.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +4 -2
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +4 -9
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +52 -21
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +5 -110
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +33 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +13 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -4
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +94 -0
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownSettings/index.d.ts +1 -1
- package/dist/types/src/components/MarkdownSettings/index.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -3
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts +9 -0
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts.map +1 -0
- package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
- package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts +40 -0
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts +97 -0
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
- package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +8 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/index.d.ts +2 -0
- package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/snippet.d.ts +17 -0
- package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +6 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +3 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
- package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
- package/dist/types/src/hooks/useExtensions.d.ts +25 -0
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
- package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
- package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/create-markdown.d.ts +5 -0
- package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
- package/dist/types/src/operations/create.d.ts +5 -0
- package/dist/types/src/operations/create.d.ts.map +1 -0
- package/dist/types/src/operations/create.test.d.ts +2 -0
- package/dist/types/src/operations/create.test.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/open.d.ts +5 -0
- package/dist/types/src/operations/open.d.ts.map +1 -0
- package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
- package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
- package/dist/types/src/operations/set-view-mode.d.ts +5 -0
- package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
- package/dist/types/src/operations/update-markdown.d.ts +5 -0
- package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
- package/dist/types/src/operations/update.test.d.ts +2 -0
- package/dist/types/src/operations/update.test.d.ts.map +1 -0
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing.d.ts +7 -0
- package/dist/types/src/testing.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +74 -33
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +35 -32
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
- package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
- package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
- package/dist/types/src/types/MarkdownOperation.d.ts +64 -0
- package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +30 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +5 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +3 -2
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +8 -5
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/src/util.test.d.ts +2 -0
- package/dist/types/src/util.test.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +152 -71
- package/src/MarkdownPlugin.node.ts +20 -0
- package/src/MarkdownPlugin.test.ts +26 -0
- package/src/MarkdownPlugin.tsx +34 -103
- package/src/MarkdownPlugin.workerd.ts +19 -0
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/markdown-blueprint.ts +43 -0
- package/src/capabilities/anchor-sort.ts +29 -22
- package/src/capabilities/app-graph-serializer.ts +53 -43
- package/src/capabilities/blueprint-definition.ts +11 -31
- package/src/capabilities/comment-config.ts +33 -0
- package/src/capabilities/create-object.ts +31 -0
- package/src/capabilities/index.ts +15 -12
- package/src/capabilities/node.ts +13 -0
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/react-surface.tsx +116 -103
- package/src/capabilities/settings.ts +30 -18
- package/src/capabilities/state.ts +41 -25
- package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +63 -40
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +247 -255
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +171 -0
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +47 -0
- package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +40 -0
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +23 -96
- package/src/components/MarkdownSettings/index.ts +1 -1
- package/src/components/index.ts +4 -5
- package/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.tsx +86 -0
- package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +44 -0
- package/src/containers/EditableMarkdownCard/index.ts +6 -0
- package/src/containers/MarkdownArticle/MarkdownArticle.stories.tsx +141 -0
- package/src/containers/MarkdownArticle/MarkdownArticle.tsx +146 -0
- package/src/containers/MarkdownArticle/index.ts +6 -0
- package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +68 -0
- package/src/containers/MarkdownCard/MarkdownCard.tsx +75 -0
- package/src/containers/MarkdownCard/index.ts +5 -0
- package/src/containers/MarkdownCard/snippet.ts +54 -0
- package/src/containers/index.ts +11 -0
- package/src/hooks/index.ts +3 -1
- package/src/hooks/useEditorMenuOptions.ts +68 -0
- package/src/hooks/useExtensions.tsx +268 -0
- package/src/hooks/useLinkQuery.ts +93 -0
- package/src/index.ts +2 -5
- package/src/meta.ts +18 -8
- package/src/operations/create-markdown.ts +19 -0
- package/src/operations/create.conversations.json +1 -0
- package/src/operations/create.test.ts +96 -0
- package/src/operations/create.ts +26 -0
- package/src/operations/index.ts +14 -0
- package/src/operations/open.ts +25 -0
- package/src/operations/scroll-to-anchor.ts +38 -0
- package/src/operations/set-view-mode.ts +23 -0
- package/src/operations/update-markdown.ts +51 -0
- package/src/operations/update.conversations.json +1 -0
- package/src/operations/update.test.ts +213 -0
- package/src/plugin.ts +11 -0
- package/src/testing.ts +40 -0
- package/src/translations.ts +28 -33
- package/src/types/Markdown.ts +27 -34
- package/src/types/MarkdownCapabilities.ts +51 -0
- package/src/types/MarkdownEvents.ts +14 -0
- package/src/types/MarkdownOperation.ts +133 -0
- package/src/types/Settings.ts +85 -0
- package/src/types/index.ts +6 -2
- package/src/types/types.ts +7 -3
- package/src/util.test.ts +44 -0
- package/src/util.tsx +84 -9
- package/dist/lib/browser/MarkdownCard-ZHTH6EVA.mjs +0 -80
- package/dist/lib/browser/MarkdownCard-ZHTH6EVA.mjs.map +0 -7
- package/dist/lib/browser/MarkdownContainer-XDYFBDCI.mjs +0 -750
- package/dist/lib/browser/MarkdownContainer-XDYFBDCI.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-53E7TJGF.mjs +0 -32
- package/dist/lib/browser/anchor-sort-53E7TJGF.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-IEPNJZBR.mjs +0 -51
- package/dist/lib/browser/app-graph-serializer-IEPNJZBR.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-XDLVVSUN.mjs +0 -11
- package/dist/lib/browser/chunk-EVQGTH3P.mjs +0 -22
- package/dist/lib/browser/chunk-EVQGTH3P.mjs.map +0 -7
- package/dist/lib/browser/chunk-NGXGBWSS.mjs +0 -53
- package/dist/lib/browser/chunk-NGXGBWSS.mjs.map +0 -7
- package/dist/lib/browser/chunk-ODB2PTBP.mjs +0 -28
- package/dist/lib/browser/chunk-ODB2PTBP.mjs.map +0 -7
- package/dist/lib/browser/chunk-OY6CGPOO.mjs +0 -16
- package/dist/lib/browser/chunk-OY6CGPOO.mjs.map +0 -7
- package/dist/lib/browser/chunk-PMBWHKDI.mjs +0 -78
- package/dist/lib/browser/chunk-PMBWHKDI.mjs.map +0 -7
- package/dist/lib/browser/chunk-VZU7BRGW.mjs +0 -106
- package/dist/lib/browser/chunk-VZU7BRGW.mjs.map +0 -7
- package/dist/lib/browser/chunk-XYQDM6PM.mjs +0 -50
- package/dist/lib/browser/chunk-XYQDM6PM.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -173
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-66ZUQ6JC.mjs +0 -62
- package/dist/lib/browser/intent-resolver-66ZUQ6JC.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-ONX5RNFM.mjs +0 -215
- package/dist/lib/browser/react-surface-ONX5RNFM.mjs.map +0 -7
- package/dist/lib/browser/settings-HXM36BCZ.mjs +0 -28
- package/dist/lib/browser/settings-HXM36BCZ.mjs.map +0 -7
- package/dist/lib/browser/state-6QODXCSZ.mjs +0 -37
- package/dist/lib/browser/state-6QODXCSZ.mjs.map +0 -7
- package/dist/lib/browser/toolkit-73U3A7SD.mjs +0 -76
- package/dist/lib/browser/toolkit-73U3A7SD.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -10
- package/dist/lib/node-esm/MarkdownCard-MEA4QAAI.mjs +0 -81
- package/dist/lib/node-esm/MarkdownCard-MEA4QAAI.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-7GYMOJVT.mjs +0 -751
- package/dist/lib/node-esm/MarkdownContainer-7GYMOJVT.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-V2FWEYDN.mjs +0 -33
- package/dist/lib/node-esm/anchor-sort-V2FWEYDN.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-HIN4NMUG.mjs +0 -52
- package/dist/lib/node-esm/app-graph-serializer-HIN4NMUG.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-PDXZ67UQ.mjs +0 -12
- package/dist/lib/node-esm/chunk-35WAARP4.mjs +0 -79
- package/dist/lib/node-esm/chunk-35WAARP4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CB2R4YIY.mjs +0 -17
- package/dist/lib/node-esm/chunk-CB2R4YIY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IOC54NCF.mjs +0 -51
- package/dist/lib/node-esm/chunk-IOC54NCF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VCG2U522.mjs +0 -29
- package/dist/lib/node-esm/chunk-VCG2U522.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VELFUWUH.mjs +0 -107
- package/dist/lib/node-esm/chunk-VELFUWUH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-W4XXBX33.mjs +0 -24
- package/dist/lib/node-esm/chunk-W4XXBX33.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YGSNWTGP.mjs +0 -54
- package/dist/lib/node-esm/chunk-YGSNWTGP.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -174
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-TNRIFHNH.mjs +0 -63
- package/dist/lib/node-esm/intent-resolver-TNRIFHNH.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/react-surface-X2GV6WQH.mjs +0 -216
- package/dist/lib/node-esm/react-surface-X2GV6WQH.mjs.map +0 -7
- package/dist/lib/node-esm/settings-KPLQ5ONI.mjs +0 -29
- package/dist/lib/node-esm/settings-KPLQ5ONI.mjs.map +0 -7
- package/dist/lib/node-esm/state-W3PECOJX.mjs +0 -38
- package/dist/lib/node-esm/state-W3PECOJX.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-GUBDYF72.mjs +0 -77
- package/dist/lib/node-esm/toolkit-GUBDYF72.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -11
- package/dist/types/src/capabilities/artifact-definition.d.ts +0 -3
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -12
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/toolkit.d.ts +0 -4
- package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +0 -7
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +0 -9
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownCard/index.d.ts +0 -4
- package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownContainer.d.ts +0 -18
- package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts +0 -55
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
- package/dist/types/src/components/Suggestions.stories.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar.stories.d.ts +0 -48
- package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -4
- package/dist/types/src/events.d.ts.map +0 -1
- package/dist/types/src/extensions.d.ts +0 -22
- package/dist/types/src/extensions.d.ts.map +0 -1
- package/dist/types/src/functions/diff.d.ts +0 -6
- package/dist/types/src/functions/diff.d.ts.map +0 -1
- package/dist/types/src/functions/index.d.ts +0 -3
- package/dist/types/src/functions/index.d.ts.map +0 -1
- package/dist/types/src/functions/open.d.ts +0 -7
- package/dist/types/src/functions/open.d.ts.map +0 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
- package/dist/types/src/types/MarkdownAction.d.ts +0 -33
- package/dist/types/src/types/MarkdownAction.d.ts.map +0 -1
- package/src/capabilities/artifact-definition.ts +0 -112
- package/src/capabilities/capabilities.ts +0 -21
- package/src/capabilities/intent-resolver.ts +0 -58
- package/src/capabilities/toolkit.ts +0 -49
- package/src/components/MarkdownCard/MarkdownCard.stories.tsx +0 -76
- package/src/components/MarkdownCard/MarkdownCard.tsx +0 -75
- package/src/components/MarkdownCard/index.ts +0 -9
- package/src/components/MarkdownContainer.stories.tsx +0 -109
- package/src/components/MarkdownContainer.tsx +0 -257
- package/src/components/Suggestions.stories.tsx +0 -221
- package/src/components/Toolbar.stories.tsx +0 -118
- package/src/events.ts +0 -11
- package/src/extensions.tsx +0 -300
- package/src/functions/diff.ts +0 -37
- package/src/functions/index.ts +0 -6
- package/src/functions/open.ts +0 -32
- package/src/hooks/useSelectCurrentThread.tsx +0 -56
- package/src/types/MarkdownAction.ts +0 -29
- /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
- /package/dist/lib/{browser/blueprint-definition-XDLVVSUN.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/blueprint-definition-PDXZ67UQ.mjs.map → neutral/meta.mjs.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"conversations":[{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"create","description":"Creates a new markdown document and adds it to the space.","inputSchema":{"type":"object","required":["name","content"],"properties":{"name":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false}},{"name":"open","description":"Opens and reads the contents of a new markdown document.","inputSchema":{"type":"object","required":["doc"],"properties":{"doc":{"type":"string","description":"The ID of the referenced object. Formats accepted:\n- DXN (dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4). DXNs can be prepended with an @ symbol for compatibility with in-text references.\n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)","examples":["dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4"]}},"additionalProperties":false}},{"name":"update","description":"Applies a set of edits to the markdown document.","inputSchema":{"type":"object","required":["doc","edits"],"properties":{"doc":{"type":"string","description":"The ID of the referenced object. Formats accepted:\n- DXN (dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4). DXNs can be prepended with an @ symbol for compatibility with in-text references.\n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)","examples":["dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4"]},"edits":{"type":"array","items":{"type":"object","required":["oldString","newString"],"properties":{"oldString":{"type":"string","description":"The text to find in the document."},"newString":{"type":"string","description":"The text to replace it with."},"replaceAll":{"type":"boolean","description":"If true, replaces all occurrences. Defaults to false (first occurrence only)."}},"additionalProperties":false},"description":"The edits to apply to the document. Each edit finds oldString and replaces it with newString."}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n \n Example:\n ```diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ```\n</blueprint>","options":{}},{"role":"user","content":"Create a document with a cookie recipe.","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_015g9Fa14rP1DTi6SSb6EQ89","modelId":"claude-opus-4-6","timestamp":"2026-05-31T07:32:44.816Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"The user wants me to create a document with a cookie recipe. Let me create a nice markdown document with a classic","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" cookie recipe.","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EsgCCmMIDhgCKkAy43GfB0+dbRMkfoVt2xpO0Chn5/g7c7dPprx3PV9+Z7iiBGhoRS54CpYtz+0wxdGKZKXYjkv0fAS94B7ulrYlMg9jbGF1ZGUtb3B1cy00LTY4AEIIdGhpbmtpbmcSDK4GCXgfUUv+m/UQThoMpi1RQpDm2oznZ1GIIjBTCTn/daFLjoTJnChlcT7fq0PuQ4wxxqj/f6pqln4y9v9qxK/4BJOvsfx32JmL5m0qkgFpNWQg9BZENS5FgD8+YT54rVW3UwJ0Wv0UGW1F++pDWwHfsWNybFHxYRHdRtc387izZuX6vVDOw/cyLaW1vF31wA6T1mm/34PDAmjZNCPCSAvycqBVTvWudvn0czaHpCyfe5nU1AbpKVdwcCF+dwrejiS2OJkfgO2ytCleEOJl34cypN4imFmeCzA4DUunGXb/JhgB"}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_012h67HFo2FR68we6r4rxkAG","name":"create","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"{\"name\":","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" \"","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"Classic C","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"hocolate C","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"hip C","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ookies","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"\"","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":", \"content\"","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":": \"# Class","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ic Chocol","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ate Chip Coo","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"kies\\n\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"A timele","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ss reci","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"pe for","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" soft, ch","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ewy cho","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"colate c","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"hip cook","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ies that a","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"re golden ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"on","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" th","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"e ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"edges an","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"d gooey in","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" th","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"e center.\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"\\n## In","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"gredients\\","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"n\\n- 2 \u00bc cup","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"s all-p","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"urpose flo","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ur\\n- 1 ts","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"p bak","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ing soda","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"\\n- 1 tsp s","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"alt\\n- 1 cup","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" (2 stic","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ks) unsa","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"lted butter,","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" softe","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ned\\n-","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" \u00be cup gra","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"nulate","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"d sugar\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"- \u00be ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"cu","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"p pa","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"cked","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" brown ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"su","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"gar\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"- ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"2 large ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"eggs\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"- 2 tsp ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"va","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"nilla e","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"xt","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"rac","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"t\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"- 2 cups ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"semi-","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"sw","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"eet chocola","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"te chips\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"\\n## Instruc","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"tions\\n\\n1","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":". **","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"Preheat*","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"* the oven t","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"o 375\u00b0F (19","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"0\u00b0C)","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":". ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"Line b","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"aking sheets","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" with parchm","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ent paper","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":".\\n2. **","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"Combin","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"e dry ingr","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"edients:** I","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"n a medium ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"bo","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"wl, whisk to","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"gether ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"the flour,","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" baking","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" soda","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":", and sa","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"lt. Se","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"t asid","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"e.\\n3. **Cr","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"eam butter","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" and sugar","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"s:** In a","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" large ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"bowl","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":", b","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"eat the sof","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"te","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ned but","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ter, granu","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"lated sugar","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":", and br","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"own sug","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ar togeth","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"er u","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"nt","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"il","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" light an","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"d ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"fluffy, ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"about 3\u20134 ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"minutes.\\","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"n4.","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" **Add e","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"gg","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"s ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"and vanilla:","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"** Beat in","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" the e","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ggs o","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ne ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"at a ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"time, ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"then ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"mix in the v","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"anill","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"a ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"extra","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ct until co","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"mbined.\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"5. **Mix","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" in dry in","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"gredients","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":":** G","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"radual","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ly add","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" the f","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"lour mixtu","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"re to ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"the wet i","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ngredient","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"s, mi","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"xing on","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" low speed ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"until ju","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"st co","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"mbined. ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"Do ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"not ov","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"er","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"mix.\\","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"n6. **Fold ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"in c","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"hocol","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ate c","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"hips:**","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" Stir in ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"the chocol","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ate chips","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" by h","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"and us","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ing a spatul","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"a or w","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ooden sp","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"oon.\\n7. *","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"*Scoop the","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" dou","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"gh:** D","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"rop rounde","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"d tablespoon","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"s of ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"do","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ugh onto the","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" prepared ba","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"king sheets,","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" spa","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ci","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ng them abou","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"t 2 in","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ch","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"es apart.","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"\\n8. **Bake","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":":** Ba","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ke for 9\u201311","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" minutes, or","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" until the e","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"dges are gol","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"den brow","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"n but the c","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ente","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"rs still loo","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"k sligh","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"tly underd","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"one.\\n9. **C","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ool:** Let ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"the","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" cook","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ies cool ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"on the bak","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ing sheet f","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"or 5 minu","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"tes, then t","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ransf","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"er to a wir","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"e r","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ack to coo","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"l c","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ompl","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"etely.\\n\\n##","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" Tips\\n\\n- F","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"or ex","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"tra c","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"hewy cooki","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"es, use *","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"*more brown ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"sugar** ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"th","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"an","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" granul","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"at","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ed sugar.\\n-","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" **Chill t","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"he dough** ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"for 3","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"0 minut","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"es (o","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"r up to 24","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" hour","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"s) bef","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"or","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"e baking fo","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"r thicker","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" coo","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"kies wi","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"th deep","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"er flavo","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"r.\\n- Don't ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"over","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"bake! Th","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"e cookies","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" will co","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"nti","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"nue to set","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" as they c","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ool on the","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":" baking ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"sheet","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":".\\","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"n\\n## ","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"Yield","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"\\nMakes appr","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"oximat","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ely **48 c","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ook","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"ies**.\\n\\nEn","metadata":{}},{"type":"tool-params-delta","id":"toolu_012h67HFo2FR68we6r4rxkAG","delta":"joy! \ud83c\udf6a\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_012h67HFo2FR68we6r4rxkAG","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":1564,"outputTokens":654,"totalTokens":2218},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":1564,"output_tokens":31,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"create","description":"Creates a new markdown document and adds it to the space.","inputSchema":{"type":"object","required":["name","content"],"properties":{"name":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false}},{"name":"open","description":"Opens and reads the contents of a new markdown document.","inputSchema":{"type":"object","required":["doc"],"properties":{"doc":{"type":"string","description":"The ID of the referenced object. Formats accepted:\n- DXN (dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4). DXNs can be prepended with an @ symbol for compatibility with in-text references.\n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)","examples":["dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4"]}},"additionalProperties":false}},{"name":"update","description":"Applies a set of edits to the markdown document.","inputSchema":{"type":"object","required":["doc","edits"],"properties":{"doc":{"type":"string","description":"The ID of the referenced object. Formats accepted:\n- DXN (dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4). DXNs can be prepended with an @ symbol for compatibility with in-text references.\n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)","examples":["dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@dxn:echo:@:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4"]},"edits":{"type":"array","items":{"type":"object","required":["oldString","newString"],"properties":{"oldString":{"type":"string","description":"The text to find in the document."},"newString":{"type":"string","description":"The text to replace it with."},"replaceAll":{"type":"boolean","description":"If true, replaces all occurrences. Defaults to false (first occurrence only)."}},"additionalProperties":false},"description":"The edits to apply to the document. Each edit finds oldString and replaces it with newString."}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n \n Example:\n ```diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ```\n</blueprint>","options":{}},{"role":"user","content":"Create a document with a cookie recipe.","options":{}},{"role":"assistant","content":[{"type":"reasoning","text":"The user wants me to create a document with a cookie recipe. Let me create a nice markdown document with a classic cookie recipe.","options":{}},{"type":"tool-call","id":"toolu_012h67HFo2FR68we6r4rxkAG","name":"create","params":{"name":"Classic Chocolate Chip Cookies","content":"# Classic Chocolate Chip Cookies\n\nA timeless recipe for soft, chewy chocolate chip cookies that are golden on the edges and gooey in the center.\n\n## Ingredients\n\n- 2 \u00bc cups all-purpose flour\n- 1 tsp baking soda\n- 1 tsp salt\n- 1 cup (2 sticks) unsalted butter, softened\n- \u00be cup granulated sugar\n- \u00be cup packed brown sugar\n- 2 large eggs\n- 2 tsp vanilla extract\n- 2 cups semi-sweet chocolate chips\n\n## Instructions\n\n1. **Preheat** the oven to 375\u00b0F (190\u00b0C). Line baking sheets with parchment paper.\n2. **Combine dry ingredients:** In a medium bowl, whisk together the flour, baking soda, and salt. Set aside.\n3. **Cream butter and sugars:** In a large bowl, beat the softened butter, granulated sugar, and brown sugar together until light and fluffy, about 3\u20134 minutes.\n4. **Add eggs and vanilla:** Beat in the eggs one at a time, then mix in the vanilla extract until combined.\n5. **Mix in dry ingredients:** Gradually add the flour mixture to the wet ingredients, mixing on low speed until just combined. Do not overmix.\n6. **Fold in chocolate chips:** Stir in the chocolate chips by hand using a spatula or wooden spoon.\n7. **Scoop the dough:** Drop rounded tablespoons of dough onto the prepared baking sheets, spacing them about 2 inches apart.\n8. **Bake:** Bake for 9\u201311 minutes, or until the edges are golden brown but the centers still look slightly underdone.\n9. **Cool:** Let the cookies cool on the baking sheet for 5 minutes, then transfer to a wire rack to cool completely.\n\n## Tips\n\n- For extra chewy cookies, use **more brown sugar** than granulated sugar.\n- **Chill the dough** for 30 minutes (or up to 24 hours) before baking for thicker cookies with deeper flavor.\n- Don't overbake! The cookies will continue to set as they cool on the baking sheet.\n\n## Yield\n\nMakes approximately **48 cookies**.\n\nEnjoy! \ud83c\udf6a"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_012h67HFo2FR68we6r4rxkAG","name":"create","isFailure":false,"result":{"id":"echo://BDJXMULPW5FB55UZ7KP5HLDHVTXUTHE2U/01JGFJJZ00G0WKQSJGMAKCNTHS"},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_015tT8AbPpxpngoUNpnXaaBz","modelId":"claude-opus-4-6","timestamp":"2026-05-31T07:32:56.474Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"Your","metadata":{}},{"type":"text-delta","id":"0","delta":" cookie recipe document has been created! \ud83c\udf6a It includes:\n\n- **Title:**","metadata":{}},{"type":"text-delta","id":"0","delta":" Classic Chocolate Chip Cookies\n- **Ingredients:** A full list including flour, butter, sugars, eggs, vanilla","metadata":{}},{"type":"text-delta","id":"0","delta":", and chocolate chips\n- **Instructions:** 9 step-by-step directions from preheating the","metadata":{}},{"type":"text-delta","id":"0","delta":" oven to cooling the cookies\n- **Tips:** Helpful advice for getting the chewiest, thickest cookies\n- **Yield","metadata":{}},{"type":"text-delta","id":"0","delta":":** Makes approximately 48 cookies\n\nLet me know if you'd like to make any changes, such as adjusting ingredients","metadata":{}},{"type":"text-delta","id":"0","delta":", adding variations, or tweaking the instructions!","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":2256,"outputTokens":139,"totalTokens":2395},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":2256,"output_tokens":1,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"create","description":"Creates a new markdown document and adds it to the space.","inputSchema":{"type":"object","required":["name","content"],"properties":{"name":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false}},{"name":"open","description":"Opens and reads the contents of a new markdown document.","inputSchema":{"type":"object","required":["doc"],"properties":{"doc":{"type":"string","description":"The URI of the referenced object. Protocols accepted:\n- echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4. \n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)\n- dxn:org.dxos.type.calendar:0.1.0 -- named entity from the registry. Absoutely make sure it actually exists in the registry.\n\nURIs can be prepended with an @ symbol for compatibility with in-text references.","examples":["echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4","dxn:org.dxos.type.calendar:0.1.0","@dxn:org.dxos.type.calendar:0.1.0"]}},"additionalProperties":false}},{"name":"update","description":"Applies a set of edits to the markdown document.","inputSchema":{"type":"object","required":["doc","edits"],"properties":{"doc":{"type":"string","description":"The URI of the referenced object. Protocols accepted:\n- echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4. \n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)\n- dxn:org.dxos.type.calendar:0.1.0 -- named entity from the registry. Absoutely make sure it actually exists in the registry.\n\nURIs can be prepended with an @ symbol for compatibility with in-text references.","examples":["echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4","dxn:org.dxos.type.calendar:0.1.0","@dxn:org.dxos.type.calendar:0.1.0"]},"edits":{"type":"array","items":{"type":"object","required":["oldString","newString"],"properties":{"oldString":{"type":"string","description":"The text to find in the document."},"newString":{"type":"string","description":"The text to replace it with."},"replaceAll":{"type":"boolean","description":"If true, replaces all occurrences. Defaults to false (first occurrence only)."}},"additionalProperties":false},"description":"The edits to apply to the document. Each edit finds oldString and replaces it with newString."}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n \n Example:\n ```diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ```\n</blueprint>","options":{}},{"role":"user","content":"Create a document with a cookie recipe.","options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01Md5f3mGfjZpbAukaeQq5dm","modelId":"claude-opus-4-6","timestamp":"2026-06-02T09:33:02.780Z","metadata":{}},{"type":"reasoning-start","id":"0","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"The","metadata":{}},{"type":"reasoning-delta","id":"0","delta":" user wants me to create a markdown document with a cookie recipe.","metadata":{}},{"type":"reasoning-delta","id":"0","delta":"","metadata":{"anthropic":{"type":"thinking","signature":"EosCCmMIDhgCKkAO7feeXRtJ5hW8R5SwEBcM4R78E4DPeRlhePAstobU7eu8rzkwDC7AXrEQW1WORNjkg5UVrcltu3KYcaPBQuXNMg9jbGF1ZGUtb3B1cy00LTY4AEIIdGhpbmtpbmcSDP6eMiH6PjxTbKK1KxoMBODWTMPWhC38m3u+IjDgwxVfT0VLAhbNa+eKjylOu5xCk3e/PxhEMk0Johxwm7vX8/CLml2V2MA4DR4KWggqVux/dqmwTz+w3yjuWl6Kmg/Hql8Ih4UY2aG5Bo+sI5oz+pNXOvMLBjt1f6iirrG9ewYSwTMqZL0QXGaGfGbMuZG30GfKDKjc2KNqn3gIKyW9Fe5n5EG8GAE="}}},{"type":"reasoning-end","id":"0","metadata":{}},{"type":"tool-params-start","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","name":"create","providerExecuted":false,"metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"{\"n","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ame\": \"Cla","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ssic ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"Chocolat","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"e Chip","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" Cookie","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s\"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":", ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"\"con","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"tent\":","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" \"","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"# C","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"lassic Ch","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ocolate C","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"hip Cookie","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s\\n\\nA tim","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"eles","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s re","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"cip","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"e for sof","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"t,","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" che","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"wy chocol","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ate ch","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ip cook","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ies that a","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"re crispy ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"on t","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"he e","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"dg","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"es an","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"d go","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"oey in","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" the","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" center.","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"\\n\\n## Ing","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"re","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"die","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"nts\\n\\n- 2","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" \u00bc cup","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s all-","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"pur","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"pose","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" flour","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"- 1 tsp baki","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ng ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"soda\\n- 1 t","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"sp ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"salt","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"\\n- ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"1 cup (2 sti","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"cks","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":") unsalted ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"butte","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"r, s","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"oftened\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"- \u00be ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"cu","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"p granu","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"lated s","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ug","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ar\\n- \u00be","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" c","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"up p","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"acked brown","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" sugar","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"\\n- 2 larg","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"e eg","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"gs\\n- 2 tsp","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" van","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"illa e","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"xtrac","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"t\\n- 2 cu","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ps semi-swe","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"et choc","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"olate chip","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s\\n\\n## In","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"struction","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s\\n\\n1. **","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"Prehe","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"at** ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"your o","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ven to 3","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"75\u00b0F (","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"190\u00b0C). ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"Line baki","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ng she","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"et","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s with","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" parchme","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"nt paper.\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"2. **Mix dry","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" ingredie","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"nt","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s:** In a ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"medium ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"bowl, whisk ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"together","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" the flour,","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" ba","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"king sod","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"a, an","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"d sa","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"lt. Set asid","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"e.\\n3. **Cre","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"am butter ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"and su","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"gars:** In ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"a large b","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"owl, b","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"eat","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" t","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"he","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" softe","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ned","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" butte","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"r,","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" granulate","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"d suga","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"r, and brow","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"n suga","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"r together u","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"nti","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"l light ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"and fluffy ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"(a","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"bout 2\u20133 mi","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"nutes).","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"\\n4. **Ad","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"d eggs and","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" vanill","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"a:**","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" Beat ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"in the eggs","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" one at a ti","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"me, then m","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ix in the ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"vanil","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"la extrac","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"t until ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"well comb","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ined.\\n5","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":". **Comb","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ine we","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"t and","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" dry:**","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" Gra","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"dually ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"add the flou","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"r mixture ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"to the","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" butter mi","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"xture, mixin","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"g on ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"low speed ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"until just c","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ombined","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":". Do ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"not ove","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"rmix.\\n6","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":". ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"**Fold","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" i","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"n chocola","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"te","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" chips","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":":** Stir in","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" the choc","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"olate ch","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ip","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"wit","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"h a spatula","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" or wood","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"en ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"spoon.\\n","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"7. ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"**Sc","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"oop and b","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ake:","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"** D","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"rop r","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ounded tab","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"lesp","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"oons of doug","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"h ont","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"o the pre","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"pare","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"d bak","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ing sheets, ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"spacing the","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"m a","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"bout 2 inch","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"es apa","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"rt. Bake for","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" 9\u201311 ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"minutes, or ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"until the","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" edges are","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" golden","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" brown bu","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"t the","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" ce","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"nter","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s stil","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"l look sli","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ghtly und","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"erdone","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":".\\n8. **C","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ool:** ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"Let t","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"he cookie","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s c","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ool on ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"the ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"bak","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ing sheet","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" for ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"5 minute","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"s, then tr","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ansfer to a","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" wire r","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ack to coo","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"l complet","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ely.","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"\\n\\n#","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"# ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"Tips\\","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"n\\n-","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" **","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"Chil","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"l the doug","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"h** f","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"or 30\u201360 min","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"utes ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"before bak","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ing for","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" thick","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"er, chewi","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"er","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" cooki","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"es.\\n- **Use","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" a mix o","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"f chocolate","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"** \u2014 tr","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"y dark cho","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"cola","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"te chunks ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"and","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" milk choco","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"late ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"chips ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"for ext","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ra depth of ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"flavor.\\","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"n- ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"**Don","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"'t overba","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ke","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"!** The","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" cookies ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"wil","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"l conti","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"nue to fi","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"rm up ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"as the","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"y cool o","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"n the b","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"aking sh","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"eet.\\n\\n##","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" Yie","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ld\\n\\nMakes","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":" appro","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ximate","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"ly *","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"*48 ","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"cookies**.\\","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"n\\nEnjoy","metadata":{}},{"type":"tool-params-delta","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","delta":"! \ud83c\udf6a\\n\"}","metadata":{}},{"type":"tool-params-end","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","metadata":{}},{"type":"finish","reason":"tool-calls","usage":{"inputTokens":1692,"outputTokens":637,"totalTokens":2329},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":1692,"output_tokens":9,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"create","description":"Creates a new markdown document and adds it to the space.","inputSchema":{"type":"object","required":["name","content"],"properties":{"name":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false}},{"name":"open","description":"Opens and reads the contents of a new markdown document.","inputSchema":{"type":"object","required":["doc"],"properties":{"doc":{"type":"string","description":"The URI of the referenced object. Protocols accepted:\n- echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4. \n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)\n- dxn:org.dxos.type.calendar:0.1.0 -- named entity from the registry. Absoutely make sure it actually exists in the registry.\n\nURIs can be prepended with an @ symbol for compatibility with in-text references.","examples":["echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4","dxn:org.dxos.type.calendar:0.1.0","@dxn:org.dxos.type.calendar:0.1.0"]}},"additionalProperties":false}},{"name":"update","description":"Applies a set of edits to the markdown document.","inputSchema":{"type":"object","required":["doc","edits"],"properties":{"doc":{"type":"string","description":"The URI of the referenced object. Protocols accepted:\n- echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4. \n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)\n- dxn:org.dxos.type.calendar:0.1.0 -- named entity from the registry. Absoutely make sure it actually exists in the registry.\n\nURIs can be prepended with an @ symbol for compatibility with in-text references.","examples":["echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4","dxn:org.dxos.type.calendar:0.1.0","@dxn:org.dxos.type.calendar:0.1.0"]},"edits":{"type":"array","items":{"type":"object","required":["oldString","newString"],"properties":{"oldString":{"type":"string","description":"The text to find in the document."},"newString":{"type":"string","description":"The text to replace it with."},"replaceAll":{"type":"boolean","description":"If true, replaces all occurrences. Defaults to false (first occurrence only)."}},"additionalProperties":false},"description":"The edits to apply to the document. Each edit finds oldString and replaces it with newString."}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n \n Example:\n ```diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ```\n</blueprint>","options":{}},{"role":"user","content":"Create a document with a cookie recipe.","options":{}},{"role":"assistant","content":[{"type":"reasoning","text":"The user wants me to create a markdown document with a cookie recipe.","options":{}},{"type":"tool-call","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","name":"create","params":{"name":"Classic Chocolate Chip Cookies","content":"# Classic Chocolate Chip Cookies\n\nA timeless recipe for soft, chewy chocolate chip cookies that are crispy on the edges and gooey in the center.\n\n## Ingredients\n\n- 2 \u00bc cups all-purpose flour\n- 1 tsp baking soda\n- 1 tsp salt\n- 1 cup (2 sticks) unsalted butter, softened\n- \u00be cup granulated sugar\n- \u00be cup packed brown sugar\n- 2 large eggs\n- 2 tsp vanilla extract\n- 2 cups semi-sweet chocolate chips\n\n## Instructions\n\n1. **Preheat** your oven to 375\u00b0F (190\u00b0C). Line baking sheets with parchment paper.\n2. **Mix dry ingredients:** In a medium bowl, whisk together the flour, baking soda, and salt. Set aside.\n3. **Cream butter and sugars:** In a large bowl, beat the softened butter, granulated sugar, and brown sugar together until light and fluffy (about 2\u20133 minutes).\n4. **Add eggs and vanilla:** Beat in the eggs one at a time, then mix in the vanilla extract until well combined.\n5. **Combine wet and dry:** Gradually add the flour mixture to the butter mixture, mixing on low speed until just combined. Do not overmix.\n6. **Fold in chocolate chips:** Stir in the chocolate chips with a spatula or wooden spoon.\n7. **Scoop and bake:** Drop rounded tablespoons of dough onto the prepared baking sheets, spacing them about 2 inches apart. Bake for 9\u201311 minutes, or until the edges are golden brown but the centers still look slightly underdone.\n8. **Cool:** Let the cookies cool on the baking sheet for 5 minutes, then transfer to a wire rack to cool completely.\n\n## Tips\n\n- **Chill the dough** for 30\u201360 minutes before baking for thicker, chewier cookies.\n- **Use a mix of chocolate** \u2014 try dark chocolate chunks and milk chocolate chips for extra depth of flavor.\n- **Don't overbake!** The cookies will continue to firm up as they cool on the baking sheet.\n\n## Yield\n\nMakes approximately **48 cookies**.\n\nEnjoy! \ud83c\udf6a\n"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","name":"create","isFailure":false,"result":{"id":"echo://BDJXMULPW5FB55UZ7KP5HLDHVTXUTHE2U/01JGFJJZ00G0WKQSJGMAKCNTJC"},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01A9bGL6jb6FtENR89nGDjnT","modelId":"claude-opus-4-6","timestamp":"2026-06-02T09:33:31.923Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"Your","metadata":{}},{"type":"text-delta","id":"0","delta":" cookie recipe document has been created! \ud83c\udf6a It includes:\n\n- **Title","metadata":{}},{"type":"text-delta","id":"0","delta":":** Classic Chocolate Chip Cookies\n- **Ingredients** \u2014 a full list with","metadata":{}},{"type":"text-delta","id":"0","delta":" precise measurements\n- **Step-by-step instructions** \u2014 from preheating the oven to cooling the cookies\n- **Helpful","metadata":{}},{"type":"text-delta","id":"0","delta":" tips** \u2014 like chilling the dough for chewier cookies and avoiding overbaking\n- **Yield** \u2014 approximately 48 cookies\n\nLet me know if you'd like to make","metadata":{}},{"type":"text-delta","id":"0","delta":" any changes, such as adding a different type of cookie, adjusting the recipe, or adding","metadata":{}},{"type":"text-delta","id":"0","delta":" nutritional info!","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":2380,"outputTokens":135,"totalTokens":2515},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":2380,"output_tokens":1,"server_tool_use":null,"service_tier":"standard"}}}}]},{"parameters":{"model":"@anthropic/claude-opus-4-6","stream":true,"tools":[{"name":"create","description":"Creates a new markdown document and adds it to the space.","inputSchema":{"type":"object","required":["name","content"],"properties":{"name":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false}},{"name":"open","description":"Opens and reads the contents of a new markdown document.","inputSchema":{"type":"object","required":["doc"],"properties":{"doc":{"type":"string","description":"The URI of the referenced object. Protocols accepted:\n- echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4. \n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)\n- dxn:org.dxos.type.calendar:0.1.0 -- named entity from the registry. Absoutely make sure it actually exists in the registry.\n\nURIs can be prepended with an @ symbol for compatibility with in-text references.","examples":["echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4","dxn:org.dxos.type.calendar:0.1.0","@dxn:org.dxos.type.calendar:0.1.0"]}},"additionalProperties":false}},{"name":"update","description":"Applies a set of edits to the markdown document.","inputSchema":{"type":"object","required":["doc","edits"],"properties":{"doc":{"type":"string","description":"The URI of the referenced object. Protocols accepted:\n- echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4. \n- space ID, object ID tuple (spaceID:objectID)\n- Only object ID that is assumed to be in the current space (01KG7R1ZXWFMWQ4DA1Q6TN1DG4)\n- dxn:org.dxos.type.calendar:0.1.0 -- named entity from the registry. Absoutely make sure it actually exists in the registry.\n\nURIs can be prepended with an @ symbol for compatibility with in-text references.","examples":["echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","@echo://01KG7R1ZXWFMWQ4DA1Q6TN1DG4","BM3FSHFOMJCHCG5QW7JTVKGYABD2GAA7G:01KG7R1ZXWFMWQ4DA1Q6TN1DG4","01KG7R1ZXWFMWQ4DA1Q6TN1DG4","dxn:org.dxos.type.calendar:0.1.0","@dxn:org.dxos.type.calendar:0.1.0"]},"edits":{"type":"array","items":{"type":"object","required":["oldString","newString"],"properties":{"oldString":{"type":"string","description":"The text to find in the document."},"newString":{"type":"string","description":"The text to replace it with."},"replaceAll":{"type":"boolean","description":"If true, replaces all occurrences. Defaults to false (first occurrence only)."}},"additionalProperties":false},"description":"The edits to apply to the document. Each edit finds oldString and replaces it with newString."}},"additionalProperties":false}}]},"prompt":{"content":[{"role":"system","content":"## Blueprints Definitions\n\n<blueprint>\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n \n Example:\n ```diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ```\n</blueprint>","options":{}},{"role":"user","content":"Create a document with a cookie recipe.","options":{}},{"role":"assistant","content":[{"type":"reasoning","text":"The user wants me to create a markdown document with a cookie recipe.","options":{}},{"type":"tool-call","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","name":"create","params":{"name":"Classic Chocolate Chip Cookies","content":"# Classic Chocolate Chip Cookies\n\nA timeless recipe for soft, chewy chocolate chip cookies that are crispy on the edges and gooey in the center.\n\n## Ingredients\n\n- 2 \u00bc cups all-purpose flour\n- 1 tsp baking soda\n- 1 tsp salt\n- 1 cup (2 sticks) unsalted butter, softened\n- \u00be cup granulated sugar\n- \u00be cup packed brown sugar\n- 2 large eggs\n- 2 tsp vanilla extract\n- 2 cups semi-sweet chocolate chips\n\n## Instructions\n\n1. **Preheat** your oven to 375\u00b0F (190\u00b0C). Line baking sheets with parchment paper.\n2. **Mix dry ingredients:** In a medium bowl, whisk together the flour, baking soda, and salt. Set aside.\n3. **Cream butter and sugars:** In a large bowl, beat the softened butter, granulated sugar, and brown sugar together until light and fluffy (about 2\u20133 minutes).\n4. **Add eggs and vanilla:** Beat in the eggs one at a time, then mix in the vanilla extract until well combined.\n5. **Combine wet and dry:** Gradually add the flour mixture to the butter mixture, mixing on low speed until just combined. Do not overmix.\n6. **Fold in chocolate chips:** Stir in the chocolate chips with a spatula or wooden spoon.\n7. **Scoop and bake:** Drop rounded tablespoons of dough onto the prepared baking sheets, spacing them about 2 inches apart. Bake for 9\u201311 minutes, or until the edges are golden brown but the centers still look slightly underdone.\n8. **Cool:** Let the cookies cool on the baking sheet for 5 minutes, then transfer to a wire rack to cool completely.\n\n## Tips\n\n- **Chill the dough** for 30\u201360 minutes before baking for thicker, chewier cookies.\n- **Use a mix of chocolate** \u2014 try dark chocolate chunks and milk chocolate chips for extra depth of flavor.\n- **Don't overbake!** The cookies will continue to firm up as they cool on the baking sheet.\n\n## Yield\n\nMakes approximately **48 cookies**.\n\nEnjoy! \ud83c\udf6a\n"},"providerExecuted":false,"options":{}}],"options":{}},{"role":"tool","content":[{"type":"tool-result","id":"toolu_01K2bLnnC36TqA6GJkBugp7q","name":"create","isFailure":false,"result":{"id":"echo://BDJXMULPW5FB55UZ7KP5HLDHVTXUTHE2U/01JGFJJZ00G0WKQSJGMAKCNTJC"},"providerExecuted":false,"options":{}}],"options":{"anthropic":{"cacheControl":{"ttl":"5m","type":"ephemeral"}}}}]},"response":[{"type":"response-metadata","id":"msg_01WZ8yDAjudThk48vsQE4B5Q","modelId":"claude-opus-4-6","timestamp":"2026-06-03T14:44:59.135Z","metadata":{}},{"type":"text-start","id":"0","metadata":{}},{"type":"text-delta","id":"0","delta":"Your","metadata":{}},{"type":"text-delta","id":"0","delta":" cookie recipe document has been created! \ud83c\udf6a It includes:\n\n- **Title:** Classic Chocolate Chip Cookies","metadata":{}},{"type":"text-delta","id":"0","delta":"\n- **Ingredients:** A full list including butter, sugars, flour, eggs, vanilla, and chocolate chips\n- **Step","metadata":{}},{"type":"text-delta","id":"0","delta":"-by-step instructions:** From preheating the oven to cooling the cookies\n- **Helpful tips:** Like","metadata":{}},{"type":"text-delta","id":"0","delta":" chilling the dough for thicker cookies and avoiding overbaking\n- **Yield:** Approximately 48 cookies\n\nLet","metadata":{}},{"type":"text-delta","id":"0","delta":" me know if you'd like to make any changes or additions to the recipe!","metadata":{}},{"type":"text-end","id":"0","metadata":{}},{"type":"finish","reason":"stop","usage":{"inputTokens":2367,"outputTokens":128,"totalTokens":2495},"metadata":{"anthropic":{"usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":2367,"output_tokens":1,"server_tool_use":null,"service_tier":"standard"}}}}]}]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { describe, expect, it } from '@effect/vitest';
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
7
|
+
|
|
8
|
+
import { MemoizedAiService } from '@dxos/ai/testing';
|
|
9
|
+
import { SpaceProperties } from '@dxos/client-protocol';
|
|
10
|
+
import { Blueprint, Operation } from '@dxos/compute';
|
|
11
|
+
import { Collection, Database, EID, Feed, Obj, Query } from '@dxos/echo';
|
|
12
|
+
import { TestHelpers } from '@dxos/effect/testing';
|
|
13
|
+
import { AgentService } from '@dxos/functions-runtime';
|
|
14
|
+
import { AssistantTestLayer } from '@dxos/functions-runtime/testing';
|
|
15
|
+
import { invariant } from '@dxos/invariant';
|
|
16
|
+
import { EntityId } from '@dxos/keys';
|
|
17
|
+
import { Markdown } from '@dxos/plugin-markdown';
|
|
18
|
+
import { HasSubject } from '@dxos/types';
|
|
19
|
+
|
|
20
|
+
import { WithProperties } from '#testing';
|
|
21
|
+
|
|
22
|
+
import MarkdownBlueprint from '../blueprints/markdown-blueprint';
|
|
23
|
+
import { MarkdownOperation } from '../types';
|
|
24
|
+
import { MarkdownOperationHandlerSet } from './index';
|
|
25
|
+
|
|
26
|
+
EntityId.dangerouslyDisableRandomness();
|
|
27
|
+
|
|
28
|
+
const TestLayer = AssistantTestLayer({
|
|
29
|
+
aiServicePreset: 'edge-remote',
|
|
30
|
+
operationHandlers: MarkdownOperationHandlerSet,
|
|
31
|
+
types: [
|
|
32
|
+
SpaceProperties,
|
|
33
|
+
Collection.Collection,
|
|
34
|
+
Blueprint.Blueprint,
|
|
35
|
+
Markdown.Document,
|
|
36
|
+
HasSubject.HasSubject,
|
|
37
|
+
Feed.Feed,
|
|
38
|
+
],
|
|
39
|
+
blueprints: [MarkdownBlueprint.make()],
|
|
40
|
+
tracing: 'pretty',
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe('create', () => {
|
|
44
|
+
it.effect(
|
|
45
|
+
'call a function to create a markdown document',
|
|
46
|
+
Effect.fnUntraced(
|
|
47
|
+
function* (_) {
|
|
48
|
+
const name = 'BlueYard';
|
|
49
|
+
const content = 'Founders and portfolio of BlueYard.';
|
|
50
|
+
const result = yield* Operation.invoke(MarkdownOperation.Create, {
|
|
51
|
+
name,
|
|
52
|
+
content,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
const doc = yield* Database.resolve(EID.parse(result.id), Markdown.Document);
|
|
56
|
+
expect(doc.name).toBe(name);
|
|
57
|
+
const text = yield* Database.load(doc.content);
|
|
58
|
+
expect(text.content).toBe(content);
|
|
59
|
+
},
|
|
60
|
+
WithProperties,
|
|
61
|
+
Effect.provide(TestLayer),
|
|
62
|
+
TestHelpers.provideTestContext,
|
|
63
|
+
),
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
it.effect(
|
|
67
|
+
'create a markdown document',
|
|
68
|
+
Effect.fnUntraced(
|
|
69
|
+
function* (_) {
|
|
70
|
+
const agent = yield* AgentService.createSession({
|
|
71
|
+
blueprints: [MarkdownBlueprint.make()],
|
|
72
|
+
});
|
|
73
|
+
yield* agent.submitPrompt('Create a document with a cookie recipe.');
|
|
74
|
+
yield* agent.waitForCompletion();
|
|
75
|
+
|
|
76
|
+
{
|
|
77
|
+
const docs = yield* Database.runQuery(Query.type(Markdown.Document));
|
|
78
|
+
if (docs.length !== 1) {
|
|
79
|
+
throw new Error(`Expected 1 document; got ${docs.length}: ${docs.map((_) => _.name)}`);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const doc = docs[0];
|
|
83
|
+
invariant(Obj.instanceOf(Markdown.Document, doc));
|
|
84
|
+
console.log({
|
|
85
|
+
name: doc.name,
|
|
86
|
+
content: yield* Database.load(doc.content).pipe(Effect.map((_) => _.content)),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
WithProperties,
|
|
91
|
+
Effect.provide(TestLayer),
|
|
92
|
+
TestHelpers.provideTestContext,
|
|
93
|
+
),
|
|
94
|
+
MemoizedAiService.isGenerationEnabled() ? 240_000 : 30_000,
|
|
95
|
+
);
|
|
96
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
|
|
7
|
+
import { CollectionModel } from '@dxos/app-toolkit';
|
|
8
|
+
import { Operation } from '@dxos/compute';
|
|
9
|
+
import { Obj } from '@dxos/echo';
|
|
10
|
+
|
|
11
|
+
import { Markdown, MarkdownOperation } from '../types';
|
|
12
|
+
|
|
13
|
+
const handler: Operation.WithHandler<typeof MarkdownOperation.Create> = MarkdownOperation.Create.pipe(
|
|
14
|
+
Operation.withHandler(
|
|
15
|
+
Effect.fn(function* ({ name, content }) {
|
|
16
|
+
const object = Markdown.make({ name, content });
|
|
17
|
+
yield* CollectionModel.add({ object });
|
|
18
|
+
|
|
19
|
+
return {
|
|
20
|
+
id: Obj.getURI(object),
|
|
21
|
+
};
|
|
22
|
+
}),
|
|
23
|
+
),
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
export default handler;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { OperationHandlerSet } from '@dxos/compute';
|
|
6
|
+
|
|
7
|
+
export const MarkdownOperationHandlerSet = OperationHandlerSet.lazy(
|
|
8
|
+
() => import('./create'),
|
|
9
|
+
() => import('./create-markdown'),
|
|
10
|
+
() => import('./open'),
|
|
11
|
+
() => import('./scroll-to-anchor'),
|
|
12
|
+
() => import('./set-view-mode'),
|
|
13
|
+
() => import('./update-markdown'),
|
|
14
|
+
);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
|
|
7
|
+
import { Operation } from '@dxos/compute';
|
|
8
|
+
import { Database } from '@dxos/echo';
|
|
9
|
+
|
|
10
|
+
import { MarkdownOperation } from '../types';
|
|
11
|
+
|
|
12
|
+
const handler: Operation.WithHandler<typeof MarkdownOperation.Open> = MarkdownOperation.Open.pipe(
|
|
13
|
+
Operation.withHandler(
|
|
14
|
+
Effect.fn(function* ({ doc }) {
|
|
15
|
+
const { content } = yield* doc.pipe(
|
|
16
|
+
Database.load,
|
|
17
|
+
Effect.map((_) => _.content),
|
|
18
|
+
Effect.flatMap(Database.load),
|
|
19
|
+
);
|
|
20
|
+
return { content };
|
|
21
|
+
}),
|
|
22
|
+
),
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
export default handler;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { EditorView } from '@codemirror/view';
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
7
|
+
|
|
8
|
+
import { Capability } from '@dxos/app-framework';
|
|
9
|
+
import { Operation } from '@dxos/compute';
|
|
10
|
+
import { Cursor, setSelection } from '@dxos/ui-editor';
|
|
11
|
+
|
|
12
|
+
import { MarkdownCapabilities, MarkdownOperation } from '../types';
|
|
13
|
+
|
|
14
|
+
const handler: Operation.WithHandler<typeof MarkdownOperation.ScrollToAnchor> = MarkdownOperation.ScrollToAnchor.pipe(
|
|
15
|
+
Operation.withHandler(
|
|
16
|
+
Effect.fnUntraced(function* ({ subject, cursor }) {
|
|
17
|
+
const editorViews = yield* Capability.get(MarkdownCapabilities.EditorViews);
|
|
18
|
+
const entry = editorViews.get(subject);
|
|
19
|
+
if (!entry) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const range = Cursor.getRangeFromCursor(entry.view.state, cursor);
|
|
23
|
+
if (range) {
|
|
24
|
+
const selection = entry.view.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;
|
|
25
|
+
const effects: any[] = [EditorView.scrollIntoView(range.from, { y: 'start', yMargin: 96 })];
|
|
26
|
+
if (selection) {
|
|
27
|
+
effects.push(setSelection.of({ current: entry.documentId }));
|
|
28
|
+
}
|
|
29
|
+
entry.view.dispatch({
|
|
30
|
+
effects,
|
|
31
|
+
selection: selection ? { anchor: range.from } : undefined,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}),
|
|
35
|
+
),
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
export default handler;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
|
|
7
|
+
import { Capabilities } from '@dxos/app-framework';
|
|
8
|
+
import { Operation } from '@dxos/compute';
|
|
9
|
+
|
|
10
|
+
import { MarkdownCapabilities, MarkdownOperation } from '../types';
|
|
11
|
+
|
|
12
|
+
const handler: Operation.WithHandler<typeof MarkdownOperation.SetViewMode> = MarkdownOperation.SetViewMode.pipe(
|
|
13
|
+
Operation.withHandler(
|
|
14
|
+
Effect.fnUntraced(function* ({ id, viewMode }) {
|
|
15
|
+
yield* Capabilities.updateAtomValue(MarkdownCapabilities.State, (current) => ({
|
|
16
|
+
...current,
|
|
17
|
+
viewMode: { ...current.viewMode, [id]: viewMode },
|
|
18
|
+
}));
|
|
19
|
+
}),
|
|
20
|
+
),
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
export default handler;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { next as A, type Doc } from '@automerge/automerge';
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
7
|
+
|
|
8
|
+
import { Operation } from '@dxos/compute';
|
|
9
|
+
import { Database } from '@dxos/echo';
|
|
10
|
+
import { DocAccessor, createDocAccessor } from '@dxos/echo-db';
|
|
11
|
+
|
|
12
|
+
import { MarkdownOperation } from '../types';
|
|
13
|
+
|
|
14
|
+
const handler: Operation.WithHandler<typeof MarkdownOperation.Update> = MarkdownOperation.Update.pipe(
|
|
15
|
+
Operation.withHandler(
|
|
16
|
+
Effect.fn(function* ({ doc, edits }) {
|
|
17
|
+
const content = yield* doc.pipe(
|
|
18
|
+
Database.load,
|
|
19
|
+
Effect.map((_) => _.content),
|
|
20
|
+
Effect.flatMap(Database.load),
|
|
21
|
+
);
|
|
22
|
+
const accessor = createDocAccessor(content, ['content']);
|
|
23
|
+
|
|
24
|
+
for (const edit of edits) {
|
|
25
|
+
accessor.handle.change((doc: Doc<typeof content>) => {
|
|
26
|
+
const text = DocAccessor.getValue<string>(accessor);
|
|
27
|
+
if (edit.replaceAll) {
|
|
28
|
+
let idx = text.indexOf(edit.oldString);
|
|
29
|
+
while (idx !== -1) {
|
|
30
|
+
A.splice(doc, accessor.path as A.Prop[], idx, edit.oldString.length, edit.newString);
|
|
31
|
+
const updated = DocAccessor.getValue<string>(accessor);
|
|
32
|
+
idx = updated.indexOf(edit.oldString, idx + edit.newString.length);
|
|
33
|
+
}
|
|
34
|
+
} else {
|
|
35
|
+
const idx = text.indexOf(edit.oldString);
|
|
36
|
+
if (idx === -1) {
|
|
37
|
+
throw new Error(`Edit not found: ${JSON.stringify(edit.oldString)}`);
|
|
38
|
+
}
|
|
39
|
+
A.splice(doc, accessor.path as A.Prop[], idx, edit.oldString.length, edit.newString);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
newContent: DocAccessor.getValue<string>(accessor),
|
|
46
|
+
};
|
|
47
|
+
}),
|
|
48
|
+
),
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
export default handler;
|