@prettier-ai/dsh-client-ui-tool 0.1.2-alpha.1 → 0.1.2-alpha.2

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/lib/client.js CHANGED
@@ -1035,7 +1035,7 @@ window.__ModuleLoader__.load({
1035
1035
  }
1036
1036
  //#endregion
1037
1037
  //#region \0dsh-css:/home/runner/work/dsh-publisher/dsh-publisher/upstream/packages/client/ui-tool/src/client/tool/components/ToolRow.module.css.mjs
1038
- const css$3 = ".RAJz1a_root{flex-direction:column;display:flex}.RAJz1a_row{position:relative;overflow:hidden}.RAJz1a_root[data-state=running] .RAJz1a_row:after{content:\"\";background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--dsw-alias-bg-base) 60%, transparent) 55%, transparent 100%);pointer-events:none;width:300px;animation:2.6s ease-out infinite RAJz1a_dsh-tool-row-sweep;position:absolute;top:0;bottom:0;left:0}@keyframes RAJz1a_dsh-tool-row-sweep{0%{left:-300px}90%,to{left:100%}}.RAJz1a_leading{flex-shrink:0}.RAJz1a_root[data-tool^=cordis_] .RAJz1a_leading,.RAJz1a_root[data-tool^=cordis_] .RAJz1a_title{color:var(--dsw-alias-state-business-primary)}.RAJz1a_root[data-tool^=cordis_] .RAJz1a_title{font-weight:500}.RAJz1a_root[data-tool^=cordis_] .RAJz1a_sep{background:var(--dsw-alias-state-business-primary)}.RAJz1a_chevron{color:var(--dsw-alias-label-secondary)}.RAJz1a_title{font-weight:400}.RAJz1a_sep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.RAJz1a_summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);flex:auto;overflow:hidden}.RAJz1a_summarySuffix{white-space:nowrap;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);flex:none;margin-left:4px}.RAJz1a_fileLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:inherit;text-align:left;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-secondary);text-decoration:underline;text-decoration-color:var(--dsw-alias-label-quaternary);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;flex:auto;margin:0;padding:0;overflow:hidden}.RAJz1a_fileLink:hover{color:var(--dsw-alias-label-primary);text-decoration-color:currentColor}.RAJz1a_errorSummary{color:var(--dsw-alias-state-error-primary)}.RAJz1a_bodyWrap{flex-direction:column;display:flex}.RAJz1a_inspectButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;margin:4px 0 2px 4px;padding:2px 8px;font-size:11px;line-height:16px;transition:opacity .1s;display:inline-flex}.RAJz1a_root:hover .RAJz1a_inspectButton,.RAJz1a_inspectButton:focus-visible{opacity:1}.RAJz1a_inspectButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid);color:var(--dsw-alias-label-primary)}.RAJz1a_bodyScroll{max-height:260px;overflow-y:auto}.RAJz1a_ioCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-markdown-code-block);font:var(--dsw-font-markdown-code-block-small);border-radius:12px;flex-direction:column;margin:4px 0 4px 4px;display:flex}.RAJz1a_ioSection{grid-template-columns:max-content 1fr;align-items:baseline;column-gap:14px;max-height:150px;padding:12px 16px;display:grid;overflow-y:auto}.RAJz1a_ioSection::-webkit-scrollbar-thumb{background-clip:padding-box;border:2px solid #0000;border-radius:6px}.RAJz1a_ioSection::-webkit-scrollbar-track{margin:6px 0}.RAJz1a_ioLabel{color:var(--dsw-alias-label-caption);align-self:start;position:sticky;top:0}.RAJz1a_ioDivider{background:var(--dsw-alias-border-l2);flex:none;height:1px}.RAJz1a_ioText{white-space:pre-wrap;word-break:break-word;min-width:0;color:var(--dsw-alias-label-secondary)}.RAJz1a_ioText[data-error]{color:var(--dsw-alias-state-error-primary)}.RAJz1a_codeBody,.RAJz1a_terminalBody,.RAJz1a_diffBody,.RAJz1a_readBody,.RAJz1a_searchBody,.RAJz1a_webBody{margin:4px 0 4px 4px}.RAJz1a_searchRecovery{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);margin:4px 0 4px 4px}.RAJz1a_codeBody{--dsl-code-block-content-font:var(--dsw-font-markdown-code-block-small)}.RAJz1a_terminalBody{--dsl-terminal-font:var(--dsw-font-markdown-code-block-small);--dsl-terminal-line-height:18px;--dsl-terminal-output-max-height:224px;border:1px solid var(--dsw-alias-border-l1)}.RAJz1a_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
1038
+ const css$3 = ".RAJz1a_root{flex-direction:column;display:flex}.RAJz1a_row{position:relative;overflow:hidden}.RAJz1a_root[data-state=running] .RAJz1a_row:after{content:\"\";background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--dsw-alias-bg-base) 60%, transparent) 55%, transparent 100%);pointer-events:none;width:300px;animation:2.6s ease-out infinite RAJz1a_dsh-tool-row-sweep;position:absolute;top:0;bottom:0;left:0}@keyframes RAJz1a_dsh-tool-row-sweep{0%{left:-300px}90%,to{left:100%}}.RAJz1a_leading{flex-shrink:0}.RAJz1a_root[data-tool^=cordis_] .RAJz1a_leading,.RAJz1a_root[data-tool^=cordis_] .RAJz1a_title{color:var(--dsw-alias-state-business-primary)}.RAJz1a_root[data-tool^=cordis_] .RAJz1a_title{font-weight:500}.RAJz1a_root[data-tool^=cordis_] .RAJz1a_sep{background:var(--dsw-alias-state-business-primary)}.RAJz1a_chevron{color:var(--dsw-alias-label-secondary)}.RAJz1a_title{font-weight:400}.RAJz1a_sep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.RAJz1a_summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);flex:auto;overflow:hidden}.RAJz1a_summarySuffix{white-space:nowrap;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);flex:none;margin-left:4px}.RAJz1a_diffStat{font-family:var(--ds-font-family-code);font-size:calc(var(--dsh-content-font-size-secondary,13px) - 2px);color:var(--dsw-alias-label-caption);margin-left:10px;transform:translateY(.5px)}.RAJz1a_fileLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:inherit;text-align:left;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-secondary);text-decoration:underline dotted;text-decoration-color:var(--dsw-alias-label-tertiary);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;flex:0 auto;margin:0;padding:0;text-decoration-thickness:1px;overflow:hidden}.RAJz1a_fileLink:hover{color:var(--dsw-alias-label-primary);text-decoration-color:currentColor}.RAJz1a_errorSummary{color:var(--dsw-alias-state-error-primary)}.RAJz1a_bodyWrap{flex-direction:column;display:flex}.RAJz1a_inspectButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-secondary);cursor:pointer;opacity:0;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;margin:4px 0 2px 4px;padding:2px 8px;font-size:11px;line-height:16px;transition:opacity .1s;display:inline-flex}.RAJz1a_root:hover .RAJz1a_inspectButton,.RAJz1a_inspectButton:focus-visible{opacity:1}.RAJz1a_inspectButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid);color:var(--dsw-alias-label-primary)}.RAJz1a_bodyScroll{max-height:260px;overflow-y:auto}.RAJz1a_ioCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-markdown-code-block);font:var(--dsw-font-markdown-code-block-small);border-radius:12px;flex-direction:column;margin:4px 0 4px 4px;display:flex}.RAJz1a_ioSection{grid-template-columns:max-content 1fr;align-items:baseline;column-gap:14px;max-height:150px;padding:12px 16px;display:grid;overflow-y:auto}.RAJz1a_ioSection::-webkit-scrollbar-thumb{background-clip:padding-box;border:2px solid #0000;border-radius:6px}.RAJz1a_ioSection::-webkit-scrollbar-track{margin:6px 0}.RAJz1a_ioLabel{color:var(--dsw-alias-label-caption);align-self:start;position:sticky;top:0}.RAJz1a_ioDivider{background:var(--dsw-alias-border-l2);flex:none;height:1px}.RAJz1a_ioText{white-space:pre-wrap;word-break:break-word;min-width:0;color:var(--dsw-alias-label-secondary)}.RAJz1a_ioText[data-error]{color:var(--dsw-alias-state-error-primary)}.RAJz1a_codeBody,.RAJz1a_terminalBody,.RAJz1a_diffBody,.RAJz1a_readBody,.RAJz1a_searchBody,.RAJz1a_webBody{margin:4px 0 4px 4px}.RAJz1a_searchRecovery{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);margin:4px 0 4px 4px}.RAJz1a_codeBody{--dsl-code-block-content-font:var(--dsw-font-markdown-code-block-small)}.RAJz1a_terminalBody{--dsl-terminal-font:var(--dsw-font-markdown-code-block-small);--dsl-terminal-line-height:18px;--dsl-terminal-output-max-height:224px;border:1px solid var(--dsw-alias-border-l1)}.RAJz1a_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
1039
1039
  const tagId$3 = "@prettier-ai/dsh-client-ui-tool/ToolRow.module.css";
1040
1040
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
1041
1041
  const tag = document.createElement("style");
@@ -1050,6 +1050,7 @@ window.__ModuleLoader__.load({
1050
1050
  "chevron": "RAJz1a_chevron",
1051
1051
  "codeBody": "RAJz1a_codeBody",
1052
1052
  "diffBody": "RAJz1a_diffBody",
1053
+ "diffStat": "RAJz1a_diffStat",
1053
1054
  "dsh-tool-row-sweep": "RAJz1a_dsh-tool-row-sweep",
1054
1055
  "errorSummary": "RAJz1a_errorSummary",
1055
1056
  "fileLink": "RAJz1a_fileLink",
@@ -1113,7 +1114,12 @@ window.__ModuleLoader__.load({
1113
1114
  const status = stateStatus$1(state, t);
1114
1115
  const failureLine = state === "error" ? errorSummary ?? null : null;
1115
1116
  const summaryText = failureLine ?? terminalBody?.description ?? summary;
1116
- const suffix = failureLine === null ? summarySuffix ?? null : null;
1117
+ const diffStat = (0, react.useMemo)(() => {
1118
+ if (diffBody === null) return null;
1119
+ const { added, removed } = (0, _prettier_ai_dsh_client_ui_primitives.diffTotals)(diffBody.card.diffs);
1120
+ return `+${added} -${removed}`;
1121
+ }, [diffBody]);
1122
+ const suffix = failureLine === null ? summarySuffix ?? diffStat : null;
1117
1123
  const fileLink = filePath !== void 0 && onOpenFile !== void 0 && failureLine === null;
1118
1124
  const toggleExpand = () => {
1119
1125
  setExpanded((v) => !v);
@@ -1162,7 +1168,7 @@ window.__ModuleLoader__.load({
1162
1168
  children: summaryText
1163
1169
  }),
1164
1170
  suffix !== null && (0, react_jsx_runtime.jsx)("span", {
1165
- className: ToolRow_module_css_default.summarySuffix,
1171
+ className: clsx(ToolRow_module_css_default.summarySuffix, suffix === diffStat && ToolRow_module_css_default.diffStat),
1166
1172
  children: suffix
1167
1173
  })
1168
1174
  ] }),
@@ -1376,8 +1382,8 @@ window.__ModuleLoader__.load({
1376
1382
  * @param props - whole-Tool owner data and the Tool-owned child-slot share.
1377
1383
  * @returns the Tool call tree.
1378
1384
  */
1379
- function ToolCallTree({ renderSlot, node, selectedCallId, cwd, openFile, inspectCall, useConnectionGeneration, t }) {
1380
- const home = useConnectionGeneration((generation) => generation?.host.home);
1385
+ function ToolCallTree({ renderSlot, node, selectedCallId, cwd, openFile, inspectCall, useHostInfo, t }) {
1386
+ const home = useHostInfo((info) => info.home);
1381
1387
  const block = node.data.root;
1382
1388
  return (0, react_jsx_runtime.jsx)(ToolCallBranch, {
1383
1389
  renderSlot,
@@ -1419,8 +1425,8 @@ window.__ModuleLoader__.load({
1419
1425
  * @param props - selected call slice, workspace root, host home, and locale seat.
1420
1426
  * @returns the details output body.
1421
1427
  */
1422
- function ToolDetails({ block, cwd, useConnectionGeneration, t }) {
1423
- const home = useConnectionGeneration((generation) => generation?.host.home);
1428
+ function ToolDetails({ block, cwd, useHostInfo, t }) {
1429
+ const home = useHostInfo((info) => info.home);
1424
1430
  const terminalModel = terminalCardModel(block, cwd);
1425
1431
  if (terminalModel !== null) {
1426
1432
  const terminal = localizeTerminalCardModel(terminalModel, t);
@@ -2069,15 +2075,18 @@ window.__ModuleLoader__.load({
2069
2075
  };
2070
2076
  //#endregion
2071
2077
  //#region lib/types/client/apply.js
2072
- /** Required services: the slot registry and the Host description used for POSIX `~`. */
2073
- const inject = ["slots", "connection"];
2078
+ /** Required services: the slot registry and the Remote face carrying the Host home used for POSIX `~`. */
2079
+ const inject = ["slots", "remote"];
2074
2080
  /**
2075
2081
  * Mount the whole-Tool renderers and built-in atomic Tool registrations.
2076
2082
  * @param ctx - Client root context.
2077
2083
  */
2078
2084
  function apply(ctx) {
2079
- const connection = ctx.get("connection");
2080
- const toolInject = () => ({ hooks: { connectionGeneration: connection.generation } });
2085
+ const hostInfo = {
2086
+ getSnapshot: () => ctx.remote.$host,
2087
+ subscribe: (listener) => ctx.on("connection/reset", listener)
2088
+ };
2089
+ const toolInject = () => ({ hooks: { hostInfo } });
2081
2090
  ctx.slots.inject("conversation.chat.node", () => ctx.slots.register({
2082
2091
  name: "conversation.chat.node",
2083
2092
  key: "tool-call",
@@ -1,5 +1,6 @@
1
+ /** Register the Tool call tree, details renderer, and built-in atomic views. */
1
2
  import type { Context as ClientContext } from '@prettier-ai/cordis';
2
- /** Required services: the slot registry and the Host description used for POSIX `~`. */
3
+ /** Required services: the slot registry and the Remote face carrying the Host home used for POSIX `~`. */
3
4
  export declare const inject: string[];
4
5
  /**
5
6
  * Mount the whole-Tool renderers and built-in atomic Tool registrations.
@@ -1,6 +1,6 @@
1
1
  /** Tool UI slot declarations and their composed component props. */
2
- import type { ConnectionGenerationState } from '@prettier-ai/dsh-client-connection/client';
3
- import type { InjectFace, PropsLocale, PropsRenderSlots, PropsRuntime } from '@prettier-ai/dsh-client-ui-slots';
2
+ import type { HostObservable, InjectFace, PropsLocale, PropsRenderSlots, PropsRuntime } from '@prettier-ai/dsh-client-ui-slots';
3
+ import type { RemoteHostFacts } from '@prettier-ai/dsh-api-remotes/client';
4
4
  import type { ToolCallBlock } from '@prettier-ai/dsh-client-ui-chat/client';
5
5
  declare module '@prettier-ai/dsh-client-ui-slots' {
6
6
  interface SlotMap {
@@ -45,14 +45,19 @@ export interface ToolCallOwnerProps {
45
45
  /** Full props of a registered atomic Tool view. */
46
46
  export type ToolCallViewProps = PropsRuntime<'tool.call.toolview'>;
47
47
  /** Injected Host description for POSIX home-path display. */
48
- export type ToolConnectionGenerationInjected = {
48
+ export type ToolHostInfoInjected = {
49
49
  hooks: {
50
- /** Current Connection generation, bound by the slot renderer. */
51
- connectionGeneration: ConnectionGenerationState;
50
+ /**
51
+ * Fixed Host facts, reached through a hook rather than injected as values:
52
+ * the renderer memoizes an entry's inject result for the registration's
53
+ * lifetime, so facts read there would freeze at whatever the first render
54
+ * saw. Select the field the view needs (`info => info.home`).
55
+ */
56
+ hostInfo: HostObservable<RemoteHostFacts>;
52
57
  };
53
58
  };
54
59
  /** Full props of the Tool call-tree renderer registered as a `tool-call` Chat Node. */
55
- export type ToolTreeProps = PropsRuntime<'conversation.chat.node', 'tool-call'> & PropsRenderSlots<'tool.call.toolview'> & PropsLocale<'conversation'> & InjectFace<ToolConnectionGenerationInjected>;
60
+ export type ToolTreeProps = PropsRuntime<'conversation.chat.node', 'tool-call'> & PropsRenderSlots<'tool.call.toolview'> & PropsLocale<'conversation'> & InjectFace<ToolHostInfoInjected>;
56
61
  /** Full props of the selected Tool output renderer in the details panel. */
57
- export type ToolDetailsProps = PropsRuntime<'conversation.details.tool'> & PropsLocale<'conversation'> & InjectFace<ToolConnectionGenerationInjected>;
62
+ export type ToolDetailsProps = PropsRuntime<'conversation.details.tool'> & PropsLocale<'conversation'> & InjectFace<ToolHostInfoInjected>;
58
63
  //# sourceMappingURL=slots.d.ts.map
@@ -1,4 +1,4 @@
1
1
  /** Browser Tool plugin: whole-call composition and keyed atomic Tool views. */
2
2
  export { apply, inject } from './apply.ts';
3
- export type { ToolCallOwnerProps, ToolCallViewProps, ToolConnectionGenerationInjected, ToolDetailsProps, ToolTreeProps, } from './contract/slots.ts';
3
+ export type { ToolCallOwnerProps, ToolCallViewProps, ToolDetailsProps, ToolHostInfoInjected, ToolTreeProps, } from './contract/slots.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -5,5 +5,5 @@ import type { ToolTreeProps } from '../contract/slots.ts';
5
5
  * @param props - whole-Tool owner data and the Tool-owned child-slot share.
6
6
  * @returns the Tool call tree.
7
7
  */
8
- export declare function ToolCallTree({ renderSlot, node, selectedCallId, cwd, openFile, inspectCall, useConnectionGeneration, t, }: ToolTreeProps): import("react").JSX.Element;
8
+ export declare function ToolCallTree({ renderSlot, node, selectedCallId, cwd, openFile, inspectCall, useHostInfo, t, }: ToolTreeProps): import("react").JSX.Element;
9
9
  //# sourceMappingURL=ToolCallTree.d.ts.map
@@ -5,5 +5,5 @@ import type { ToolDetailsProps } from '../contract/slots.ts';
5
5
  * @param props - selected call slice, workspace root, host home, and locale seat.
6
6
  * @returns the details output body.
7
7
  */
8
- export declare function ToolDetails({ block, cwd, useConnectionGeneration, t, }: Pick<ToolDetailsProps, 'block' | 'cwd' | 'useConnectionGeneration' | 't'>): import("react").JSX.Element;
8
+ export declare function ToolDetails({ block, cwd, useHostInfo, t, }: Pick<ToolDetailsProps, 'block' | 'cwd' | 'useHostInfo' | 't'>): import("react").JSX.Element;
9
9
  //# sourceMappingURL=ToolDetails.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prettier-ai/dsh-client-ui-tool",
3
3
  "description": "Client Tool call-tree renderer and keyed per-tool presentation slot",
4
- "version": "0.1.2-alpha.1",
4
+ "version": "0.1.2-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -45,37 +45,27 @@
45
45
  "clsx": "^2.0.0"
46
46
  },
47
47
  "peerDependencies": {
48
- "@prettier-ai/cordis": "^4.0.1",
49
- "@prettier-ai/dsh-client-connection": "^0.1.2-alpha.1",
50
- "@prettier-ai/dsh-client-ui-conversation": "^0.1.2-alpha.1",
51
- "@prettier-ai/dsh-invariants": "^0.1.2-alpha.1",
52
- "@prettier-ai/dsh-api-workspace-controller": "^0.1.2-alpha.1",
53
- "@prettier-ai/dsh-client-locale": "^0.1.2-alpha.1",
54
- "@prettier-ai/dsh-client-ui-chat": "^0.1.2-alpha.1",
55
- "@prettier-ai/dsh-api-remotes": "^0.1.2-alpha.1",
56
- "@prettier-ai/dsh-client-ui-renderer": "^0.1.2-alpha.1",
57
- "@prettier-ai/dsh-client-ui-session": "^0.1.2-alpha.1",
58
- "@prettier-ai/dsh-util-workspace-path": "^0.1.2-alpha.1"
48
+ "@prettier-ai/cordis": "^4.0.2"
59
49
  },
60
50
  "devDependencies": {
61
51
  "@testing-library/react": "^16.1.0",
62
52
  "@types/react": "~18.3.1",
63
53
  "react": "^18.2.0",
64
54
  "react-dom": "^18.2.0",
65
- "@prettier-ai/cordis": "^4.0.1",
66
- "@prettier-ai/dsh-api-remotes": "^0.1.2-alpha.1",
67
- "@prettier-ai/dsh-client-connection": "^0.1.2-alpha.1",
68
- "@prettier-ai/dsh-client-locale": "^0.1.2-alpha.1",
69
- "@prettier-ai/dsh-client-test-runtime": "^0.1.2-alpha.1",
70
- "@prettier-ai/dsh-client-ui-conversation": "^0.1.2-alpha.1",
71
- "@prettier-ai/dsh-client-ui-primitives": "^0.1.2-alpha.1",
72
- "@prettier-ai/dsh-client-ui-slots": "^0.1.2-alpha.1",
73
- "@prettier-ai/dsh-invariants": "^0.1.2-alpha.1",
74
- "@prettier-ai/dsh-api-workspace-controller": "^0.1.2-alpha.1",
75
- "@prettier-ai/dsh-client-ui-renderer": "^0.1.2-alpha.1",
76
- "@prettier-ai/dsh-client-ui-session": "^0.1.2-alpha.1",
77
- "@prettier-ai/dsh-client-ui-chat": "^0.1.2-alpha.1",
78
- "@prettier-ai/dsh-util-workspace-path": "^0.1.2-alpha.1"
55
+ "@prettier-ai/cordis": "^4.0.2",
56
+ "@prettier-ai/dsh-api-remotes": "^0.1.2-alpha.2",
57
+ "@prettier-ai/dsh-client-connection": "^0.1.2-alpha.2",
58
+ "@prettier-ai/dsh-client-locale": "^0.1.2-alpha.2",
59
+ "@prettier-ai/dsh-client-test-runtime": "^0.1.2-alpha.2",
60
+ "@prettier-ai/dsh-client-ui-conversation": "^0.1.2-alpha.2",
61
+ "@prettier-ai/dsh-client-ui-primitives": "^0.1.2-alpha.2",
62
+ "@prettier-ai/dsh-invariants": "^0.1.2-alpha.2",
63
+ "@prettier-ai/dsh-client-ui-slots": "^0.1.2-alpha.2",
64
+ "@prettier-ai/dsh-client-ui-chat": "^0.1.2-alpha.2",
65
+ "@prettier-ai/dsh-client-ui-renderer": "^0.1.2-alpha.2",
66
+ "@prettier-ai/dsh-client-ui-session": "^0.1.2-alpha.2",
67
+ "@prettier-ai/dsh-api-workspace-controller": "^0.1.2-alpha.2",
68
+ "@prettier-ai/dsh-util-workspace-path": "^0.1.2-alpha.2"
79
69
  },
80
70
  "files": [
81
71
  "lib/index.js",