dsh-mnemon 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.en.md +31 -2
  2. package/README.md +31 -2
  3. package/SECURITY.md +89 -0
  4. package/docs/en/README.md +1 -0
  5. package/docs/en/configuration.md +6 -1
  6. package/docs/en/getting-started.md +19 -3
  7. package/docs/en/interfaces.md +12 -0
  8. package/docs/en/operations.md +6 -2
  9. package/docs/zh-CN/README.md +1 -0
  10. package/docs/zh-CN/configuration.md +6 -1
  11. package/docs/zh-CN/getting-started.md +19 -3
  12. package/docs/zh-CN/interfaces.md +12 -0
  13. package/docs/zh-CN/operations.md +6 -2
  14. package/lib/client.js +2164 -624
  15. package/lib/client.js.map +1 -1
  16. package/lib/index.js +3608 -2457
  17. package/lib/types/activity.d.ts +32 -0
  18. package/lib/types/activity.d.ts.map +1 -0
  19. package/lib/types/activity.js +93 -0
  20. package/lib/types/activity.js.map +1 -0
  21. package/lib/types/client/MnemonPackSection.d.ts +11 -0
  22. package/lib/types/client/MnemonPackSection.d.ts.map +1 -0
  23. package/lib/types/client/MnemonPackSection.js +136 -0
  24. package/lib/types/client/MnemonPackSection.js.map +1 -0
  25. package/lib/types/client/MnemonSaveAction.d.ts +13 -0
  26. package/lib/types/client/MnemonSaveAction.d.ts.map +1 -0
  27. package/lib/types/client/MnemonSaveAction.js +141 -0
  28. package/lib/types/client/MnemonSaveAction.js.map +1 -0
  29. package/lib/types/client/MnemonSettingsCard.d.ts +11 -3
  30. package/lib/types/client/MnemonSettingsCard.d.ts.map +1 -1
  31. package/lib/types/client/MnemonSettingsCard.js +112 -48
  32. package/lib/types/client/MnemonSettingsCard.js.map +1 -1
  33. package/lib/types/client/MnemonToolviews.d.ts +19 -0
  34. package/lib/types/client/MnemonToolviews.d.ts.map +1 -0
  35. package/lib/types/client/MnemonToolviews.js +172 -0
  36. package/lib/types/client/MnemonToolviews.js.map +1 -0
  37. package/lib/types/client/MnemonTurnTail.d.ts +18 -0
  38. package/lib/types/client/MnemonTurnTail.d.ts.map +1 -0
  39. package/lib/types/client/MnemonTurnTail.js +44 -0
  40. package/lib/types/client/MnemonTurnTail.js.map +1 -0
  41. package/lib/types/client/MnemonView.d.ts.map +1 -1
  42. package/lib/types/client/MnemonView.js +19 -8
  43. package/lib/types/client/MnemonView.js.map +1 -1
  44. package/lib/types/client/anchor.d.ts +28 -0
  45. package/lib/types/client/anchor.d.ts.map +1 -0
  46. package/lib/types/client/anchor.js +46 -0
  47. package/lib/types/client/anchor.js.map +1 -0
  48. package/lib/types/client/api.d.ts +14 -1
  49. package/lib/types/client/api.d.ts.map +1 -1
  50. package/lib/types/client/api.js +56 -3
  51. package/lib/types/client/api.js.map +1 -1
  52. package/lib/types/client/dsh-compat.d.ts +21 -0
  53. package/lib/types/client/dsh-compat.d.ts.map +1 -0
  54. package/lib/types/client/dsh-compat.js +2 -0
  55. package/lib/types/client/dsh-compat.js.map +1 -0
  56. package/lib/types/client/index.d.ts.map +1 -1
  57. package/lib/types/client/index.js +131 -16
  58. package/lib/types/client/index.js.map +1 -1
  59. package/lib/types/client/locales.d.ts +252 -4
  60. package/lib/types/client/locales.d.ts.map +1 -1
  61. package/lib/types/client/locales.js +268 -20
  62. package/lib/types/client/locales.js.map +1 -1
  63. package/lib/types/client/settings.d.ts +10 -5
  64. package/lib/types/client/settings.d.ts.map +1 -1
  65. package/lib/types/client/settings.js +32 -11
  66. package/lib/types/client/settings.js.map +1 -1
  67. package/lib/types/config.d.ts +37 -1
  68. package/lib/types/config.d.ts.map +1 -1
  69. package/lib/types/config.js +78 -6
  70. package/lib/types/config.js.map +1 -1
  71. package/lib/types/contracts.d.ts +17 -38
  72. package/lib/types/contracts.d.ts.map +1 -1
  73. package/lib/types/guidance.d.ts +2 -1
  74. package/lib/types/guidance.d.ts.map +1 -1
  75. package/lib/types/guidance.js +6 -2
  76. package/lib/types/guidance.js.map +1 -1
  77. package/lib/types/index.d.ts +4 -2
  78. package/lib/types/index.d.ts.map +1 -1
  79. package/lib/types/index.js +27 -18
  80. package/lib/types/index.js.map +1 -1
  81. package/lib/types/lifecycle.d.ts +14 -1
  82. package/lib/types/lifecycle.d.ts.map +1 -1
  83. package/lib/types/lifecycle.js +81 -12
  84. package/lib/types/lifecycle.js.map +1 -1
  85. package/lib/types/live-runtime.d.ts +42 -0
  86. package/lib/types/live-runtime.d.ts.map +1 -0
  87. package/lib/types/live-runtime.js +76 -0
  88. package/lib/types/live-runtime.js.map +1 -0
  89. package/lib/types/memory-bodies.d.ts +2 -0
  90. package/lib/types/memory-bodies.d.ts.map +1 -1
  91. package/lib/types/memory-bodies.js +29 -10
  92. package/lib/types/memory-bodies.js.map +1 -1
  93. package/lib/types/pack.d.ts +74 -0
  94. package/lib/types/pack.d.ts.map +1 -0
  95. package/lib/types/pack.js +709 -0
  96. package/lib/types/pack.js.map +1 -0
  97. package/lib/types/rpc.d.ts +5 -1
  98. package/lib/types/rpc.d.ts.map +1 -1
  99. package/lib/types/rpc.js +47 -5
  100. package/lib/types/rpc.js.map +1 -1
  101. package/lib/types/runner.d.ts +2 -0
  102. package/lib/types/runner.d.ts.map +1 -1
  103. package/lib/types/runner.js +5 -0
  104. package/lib/types/runner.js.map +1 -1
  105. package/lib/types/settings.d.ts +1 -0
  106. package/lib/types/settings.d.ts.map +1 -1
  107. package/lib/types/settings.js +45 -16
  108. package/lib/types/settings.js.map +1 -1
  109. package/lib/types/tools.js +4 -2
  110. package/lib/types/tools.js.map +1 -1
  111. package/package.json +23 -12
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { createContext, Fragment, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { consumeMnemonAnchor, subscribeMnemonAnchor } from "./anchor.js";
3
4
  import Markdown from 'markdown-to-jsx';
4
5
  import { QODERWORK_REVIEW_POLICY } from "../review-activity.js";
5
6
  import { CATEGORIES, } from "../service.js";
@@ -1186,21 +1187,15 @@ function MnemonWorkspace({ connection, sessionId }) {
1186
1187
  const client = useMemo(() => new MnemonClient(connection, sessionId), [connection, sessionId]);
1187
1188
  const [page, setPage] = useState('status');
1188
1189
  const canvasRef = useRef(null);
1189
- /** Pages share one scroll container; drop any carried-over offset so each tab opens at its top. */
1190
+ /** Pages share one plugin-owned scroll container; never mutate DSH ancestor scrollports. */
1190
1191
  const resetViewportScroll = useCallback(() => {
1191
1192
  const canvas = canvasRef.current;
1192
1193
  if (canvas !== null)
1193
1194
  canvas.scrollTop = 0;
1194
- let node = canvas?.parentElement ?? null;
1195
- while (node !== null && node !== document.body && node !== document.documentElement) {
1196
- if (node.scrollTop > 0)
1197
- node.scrollTop = 0;
1198
- node = node.parentElement;
1199
- }
1200
1195
  }, []);
1201
1196
  useEffect(() => { resetViewportScroll(); }, [page, resetViewportScroll]);
1202
1197
  useEffect(() => {
1203
- // DSH's resident scrollport may restore a stale offset when this view remounts; clear it after layout.
1198
+ // Clear only this view's offset after layout; the host owns every ancestor.
1204
1199
  const frame = window.requestAnimationFrame(() => resetViewportScroll());
1205
1200
  return () => window.cancelAnimationFrame(frame);
1206
1201
  }, [resetViewportScroll]);
@@ -1210,6 +1205,22 @@ function MnemonWorkspace({ connection, sessionId }) {
1210
1205
  const [revision, setRevision] = useState(0);
1211
1206
  const [searchSeed, setSearchSeed] = useState('');
1212
1207
  const [rememberSeed, setRememberSeed] = useState('');
1208
+ /** Conversation surfaces ask this view to open a page (optionally with a seed). */
1209
+ const applyAnchor = useCallback((anchor) => {
1210
+ if (anchor.seed !== undefined && anchor.seed !== '') {
1211
+ if (anchor.page === 'explore')
1212
+ setSearchSeed(anchor.seed);
1213
+ if (anchor.page === 'remember')
1214
+ setRememberSeed(anchor.seed);
1215
+ }
1216
+ setPage(anchor.page);
1217
+ }, []);
1218
+ useEffect(() => {
1219
+ const held = consumeMnemonAnchor(sessionId);
1220
+ if (held !== null)
1221
+ applyAnchor(held);
1222
+ return subscribeMnemonAnchor(sessionId, applyAnchor);
1223
+ }, [sessionId, applyAnchor]);
1213
1224
  const loadStatus = useCallback(async () => {
1214
1225
  setStatusLoading(true);
1215
1226
  setStatusError(null);