dsh-daoing-memory 0.1.5 → 0.1.7

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
@@ -6,7 +6,6 @@ window.__ModuleLoader__.load({
6
6
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let react = require("react");
9
- let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client");
10
9
  //#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js
11
10
  var _a$1;
12
11
  function $constructor(name, initializer, params) {
@@ -4704,6 +4703,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4704
4703
  "deleted": boolean(),
4705
4704
  "conflictPending": boolean()
4706
4705
  });
4706
+ const dsh_daoing_memory_memory_humanArchiveExperience_parameter_0$schema = intersection(string(), unknown());
4707
+ const dsh_daoing_memory_memory_humanArchiveExperience_parameter_1$schema = object({
4708
+ "id": string(),
4709
+ "reason": string()
4710
+ });
4711
+ const dsh_daoing_memory_memory_humanArchiveExperience_result$schema = object({ "archived": literal(true) });
4707
4712
  const dsh_daoing_memory_memory_humanConfirmFact_parameter_0$schema = intersection(string(), unknown());
4708
4713
  const dsh_daoing_memory_memory_humanConfirmFact_parameter_1$schema = object({
4709
4714
  "factId": string(),
@@ -5934,7 +5939,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5934
5939
  },
5935
5940
  sourceLocation: {
5936
5941
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
5937
- "line": 145,
5942
+ "line": 146,
5938
5943
  "column": 3
5939
5944
  }
5940
5945
  },
@@ -5975,7 +5980,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5975
5980
  },
5976
5981
  sourceLocation: {
5977
5982
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
5978
- "line": 218,
5983
+ "line": 219,
5979
5984
  "column": 3
5980
5985
  }
5981
5986
  },
@@ -6007,7 +6012,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6007
6012
  },
6008
6013
  sourceLocation: {
6009
6014
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6010
- "line": 225,
6015
+ "line": 226,
6011
6016
  "column": 3
6012
6017
  }
6013
6018
  },
@@ -6039,7 +6044,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6039
6044
  },
6040
6045
  sourceLocation: {
6041
6046
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6042
- "line": 267,
6047
+ "line": 268,
6043
6048
  "column": 3
6044
6049
  }
6045
6050
  },
@@ -6080,7 +6085,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6080
6085
  },
6081
6086
  sourceLocation: {
6082
6087
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6083
- "line": 151,
6088
+ "line": 152,
6084
6089
  "column": 3
6085
6090
  }
6086
6091
  },
@@ -6134,7 +6139,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6134
6139
  },
6135
6140
  sourceLocation: {
6136
6141
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6137
- "line": 204,
6142
+ "line": 205,
6138
6143
  "column": 3
6139
6144
  }
6140
6145
  },
@@ -6166,7 +6171,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6166
6171
  },
6167
6172
  sourceLocation: {
6168
6173
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6169
- "line": 211,
6174
+ "line": 212,
6170
6175
  "column": 3
6171
6176
  }
6172
6177
  },
@@ -6207,7 +6212,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6207
6212
  },
6208
6213
  sourceLocation: {
6209
6214
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6210
- "line": 138,
6215
+ "line": 139,
6211
6216
  "column": 3
6212
6217
  }
6213
6218
  },
@@ -6262,7 +6267,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6262
6267
  },
6263
6268
  sourceLocation: {
6264
6269
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6265
- "line": 124,
6270
+ "line": 125,
6266
6271
  "column": 3
6267
6272
  }
6268
6273
  },
@@ -6303,7 +6308,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6303
6308
  },
6304
6309
  sourceLocation: {
6305
6310
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6306
- "line": 164,
6311
+ "line": 165,
6307
6312
  "column": 3
6308
6313
  }
6309
6314
  },
@@ -6344,7 +6349,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6344
6349
  },
6345
6350
  sourceLocation: {
6346
6351
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6347
- "line": 364,
6352
+ "line": 373,
6348
6353
  "column": 3
6349
6354
  }
6350
6355
  },
@@ -6385,7 +6390,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6385
6390
  },
6386
6391
  sourceLocation: {
6387
6392
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6388
- "line": 307,
6393
+ "line": 316,
6389
6394
  "column": 3
6390
6395
  }
6391
6396
  },
@@ -6426,7 +6431,48 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6426
6431
  },
6427
6432
  sourceLocation: {
6428
6433
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6429
- "line": 335,
6434
+ "line": 344,
6435
+ "column": 3
6436
+ }
6437
+ },
6438
+ {
6439
+ id: "dsh-daoing-memory#memory/humanArchiveExperience",
6440
+ service: "memory",
6441
+ namespace: "memory",
6442
+ method: "humanArchiveExperience",
6443
+ invocation: { kind: "direct" },
6444
+ scope: {
6445
+ context: "agent",
6446
+ wire: "agentId"
6447
+ },
6448
+ parameters: [{
6449
+ name: "agent",
6450
+ wire: "agentId",
6451
+ source: "lookup",
6452
+ lookup: "agent",
6453
+ codec: {
6454
+ mode: "strict",
6455
+ typeSymbol: "@deepseek-ai/dsh-session/types#SessionId",
6456
+ schema: dsh_daoing_memory_memory_humanArchiveExperience_parameter_0$schema
6457
+ }
6458
+ }, {
6459
+ name: "request",
6460
+ wire: "request",
6461
+ source: "json",
6462
+ codec: {
6463
+ mode: "strict",
6464
+ typeSymbol: "dsh-daoing-memory/types#HumanArchiveExperienceRequest",
6465
+ schema: dsh_daoing_memory_memory_humanArchiveExperience_parameter_1$schema
6466
+ }
6467
+ }],
6468
+ result: {
6469
+ mode: "strict",
6470
+ typeSymbol: "dsh-daoing-memory#memory/humanArchiveExperience:result",
6471
+ schema: dsh_daoing_memory_memory_humanArchiveExperience_result$schema
6472
+ },
6473
+ sourceLocation: {
6474
+ "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6475
+ "line": 301,
6430
6476
  "column": 3
6431
6477
  }
6432
6478
  },
@@ -6467,7 +6513,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6467
6513
  },
6468
6514
  sourceLocation: {
6469
6515
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6470
- "line": 357,
6516
+ "line": 366,
6471
6517
  "column": 3
6472
6518
  }
6473
6519
  },
@@ -6508,7 +6554,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6508
6554
  },
6509
6555
  sourceLocation: {
6510
6556
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6511
- "line": 379,
6557
+ "line": 388,
6512
6558
  "column": 3
6513
6559
  }
6514
6560
  },
@@ -6549,7 +6595,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6549
6595
  },
6550
6596
  sourceLocation: {
6551
6597
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6552
- "line": 292,
6598
+ "line": 293,
6553
6599
  "column": 3
6554
6600
  }
6555
6601
  },
@@ -6590,7 +6636,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6590
6636
  },
6591
6637
  sourceLocation: {
6592
6638
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6593
- "line": 349,
6639
+ "line": 358,
6594
6640
  "column": 3
6595
6641
  }
6596
6642
  },
@@ -6631,7 +6677,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6631
6677
  },
6632
6678
  sourceLocation: {
6633
6679
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6634
- "line": 300,
6680
+ "line": 309,
6635
6681
  "column": 3
6636
6682
  }
6637
6683
  },
@@ -6672,7 +6718,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6672
6718
  },
6673
6719
  sourceLocation: {
6674
6720
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6675
- "line": 342,
6721
+ "line": 351,
6676
6722
  "column": 3
6677
6723
  }
6678
6724
  },
@@ -6713,7 +6759,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6713
6759
  },
6714
6760
  sourceLocation: {
6715
6761
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6716
- "line": 285,
6762
+ "line": 286,
6717
6763
  "column": 3
6718
6764
  }
6719
6765
  },
@@ -6767,7 +6813,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6767
6813
  },
6768
6814
  sourceLocation: {
6769
6815
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6770
- "line": 314,
6816
+ "line": 323,
6771
6817
  "column": 3
6772
6818
  }
6773
6819
  },
@@ -6808,7 +6854,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6808
6854
  },
6809
6855
  sourceLocation: {
6810
6856
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6811
- "line": 321,
6857
+ "line": 330,
6812
6858
  "column": 3
6813
6859
  }
6814
6860
  },
@@ -6849,7 +6895,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6849
6895
  },
6850
6896
  sourceLocation: {
6851
6897
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6852
- "line": 328,
6898
+ "line": 337,
6853
6899
  "column": 3
6854
6900
  }
6855
6901
  },
@@ -6890,7 +6936,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6890
6936
  },
6891
6937
  sourceLocation: {
6892
6938
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6893
- "line": 371,
6939
+ "line": 380,
6894
6940
  "column": 3
6895
6941
  }
6896
6942
  },
@@ -6931,7 +6977,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6931
6977
  },
6932
6978
  sourceLocation: {
6933
6979
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6934
- "line": 100,
6980
+ "line": 101,
6935
6981
  "column": 3
6936
6982
  }
6937
6983
  },
@@ -6972,7 +7018,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6972
7018
  },
6973
7019
  sourceLocation: {
6974
7020
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
6975
- "line": 232,
7021
+ "line": 233,
6976
7022
  "column": 3
6977
7023
  }
6978
7024
  },
@@ -7013,7 +7059,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7013
7059
  },
7014
7060
  sourceLocation: {
7015
7061
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7016
- "line": 239,
7062
+ "line": 240,
7017
7063
  "column": 3
7018
7064
  }
7019
7065
  },
@@ -7054,7 +7100,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7054
7100
  },
7055
7101
  sourceLocation: {
7056
7102
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7057
- "line": 131,
7103
+ "line": 132,
7058
7104
  "column": 3
7059
7105
  }
7060
7106
  },
@@ -7128,7 +7174,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7128
7174
  },
7129
7175
  sourceLocation: {
7130
7176
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7131
- "line": 185,
7177
+ "line": 186,
7132
7178
  "column": 3
7133
7179
  }
7134
7180
  },
@@ -7182,7 +7228,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7182
7228
  },
7183
7229
  sourceLocation: {
7184
7230
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7185
- "line": 192,
7231
+ "line": 193,
7186
7232
  "column": 3
7187
7233
  }
7188
7234
  },
@@ -7246,7 +7292,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7246
7292
  },
7247
7293
  sourceLocation: {
7248
7294
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7249
- "line": 157,
7295
+ "line": 158,
7250
7296
  "column": 3
7251
7297
  }
7252
7298
  },
@@ -7320,7 +7366,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7320
7366
  },
7321
7367
  sourceLocation: {
7322
7368
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7323
- "line": 171,
7369
+ "line": 172,
7324
7370
  "column": 3
7325
7371
  }
7326
7372
  },
@@ -7374,7 +7420,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7374
7420
  },
7375
7421
  sourceLocation: {
7376
7422
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7377
- "line": 178,
7423
+ "line": 179,
7378
7424
  "column": 3
7379
7425
  }
7380
7426
  },
@@ -7415,7 +7461,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7415
7461
  },
7416
7462
  sourceLocation: {
7417
7463
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7418
- "line": 88,
7464
+ "line": 89,
7419
7465
  "column": 3
7420
7466
  }
7421
7467
  },
@@ -7456,7 +7502,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7456
7502
  },
7457
7503
  sourceLocation: {
7458
7504
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7459
- "line": 82,
7505
+ "line": 83,
7460
7506
  "column": 3
7461
7507
  }
7462
7508
  },
@@ -7497,7 +7543,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7497
7543
  },
7498
7544
  sourceLocation: {
7499
7545
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7500
- "line": 94,
7546
+ "line": 95,
7501
7547
  "column": 3
7502
7548
  }
7503
7549
  },
@@ -7538,7 +7584,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7538
7584
  },
7539
7585
  sourceLocation: {
7540
7586
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7541
- "line": 106,
7587
+ "line": 107,
7542
7588
  "column": 3
7543
7589
  }
7544
7590
  },
@@ -7579,7 +7625,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7579
7625
  },
7580
7626
  sourceLocation: {
7581
7627
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7582
- "line": 118,
7628
+ "line": 119,
7583
7629
  "column": 3
7584
7630
  }
7585
7631
  },
@@ -7611,7 +7657,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7611
7657
  },
7612
7658
  sourceLocation: {
7613
7659
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7614
- "line": 253,
7660
+ "line": 254,
7615
7661
  "column": 3
7616
7662
  }
7617
7663
  },
@@ -7643,7 +7689,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7643
7689
  },
7644
7690
  sourceLocation: {
7645
7691
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7646
- "line": 246,
7692
+ "line": 247,
7647
7693
  "column": 3
7648
7694
  }
7649
7695
  },
@@ -7684,7 +7730,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7684
7730
  },
7685
7731
  sourceLocation: {
7686
7732
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7687
- "line": 112,
7733
+ "line": 113,
7688
7734
  "column": 3
7689
7735
  }
7690
7736
  },
@@ -7716,7 +7762,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7716
7762
  },
7717
7763
  sourceLocation: {
7718
7764
  "file": "packages/memory/dsh-daoing-memory/src/service.ts",
7719
- "line": 260,
7765
+ "line": 261,
7720
7766
  "column": 3
7721
7767
  }
7722
7768
  }
@@ -7751,7 +7797,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7751
7797
  "data-memory-nav": true,
7752
7798
  "aria-label": "记忆监控",
7753
7799
  onClick: () => {
7754
- props.actions.select("experience");
7800
+ props.selectPage("experience");
7755
7801
  },
7756
7802
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "记忆" })
7757
7803
  });
@@ -7796,6 +7842,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7796
7842
  exportLibrary: () => remote.exportLibrary(session),
7797
7843
  humanPin: (request) => remote.humanPin(session, request),
7798
7844
  humanDeleteExperience: (request) => remote.humanDeleteExperience(session, request),
7845
+ humanArchiveExperience: (request) => remote.humanArchiveExperience(session, request),
7799
7846
  humanEditExperience: (request) => remote.humanEditExperience(session, request),
7800
7847
  humanAddExperience: (request) => remote.humanAddExperience(session, request),
7801
7848
  humanPromote: (id, reason) => remote.humanPromote(session, id, reason),
@@ -7814,12 +7861,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7814
7861
  //#endregion
7815
7862
  //#region src/client/navStore.ts
7816
7863
  /**
7817
- * Memory monitoring nav store: shared viewing state between the session header
7818
- * entry (conversation.session.header.utilities) and the right-pane takeover (shell.overlay).
7819
- * One factory handle is created in apply and passed to both registrations so
7820
- * selecting a menu in the sidebar and rendering the matching page read the
7821
- * same state. Module level exports the factory only — a module-level handle
7822
- * would pin the store's identity across plugin reloads.
7864
+ * Memory monitoring nav state: shared viewing state between the session header
7865
+ * entry (conversation.session.header.utilities, scope "session") and the
7866
+ * right-pane takeover (shell.overlay, scope "root").
7867
+ *
7868
+ * IMPORTANT: DSH's slot system enforces "one handle, one scope" — a single
7869
+ * store handle cannot be mounted under two different scopes. Since the header
7870
+ * slot is scope "session" and the overlay slot is scope "root", we CANNOT
7871
+ * share a DSH EngineStoreHandle between them.
7872
+ *
7873
+ * Instead, page selection lives in a module-level observable that both
7874
+ * components subscribe to via the useCurrentPage() React hook. Neither slot
7875
+ * registration passes a `store` option, so no scope pinning occurs.
7823
7876
  */
7824
7877
  /** The four fixed monitoring pages. */
7825
7878
  const MEMORY_NAV_ITEMS = [
@@ -7840,33 +7893,54 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7840
7893
  label: "人工管理"
7841
7894
  }
7842
7895
  ];
7896
+ let _currentPage = null;
7897
+ const _listeners = /* @__PURE__ */ new Set();
7898
+ function notify() {
7899
+ for (const fn of _listeners) fn();
7900
+ }
7901
+ /** Select a monitoring page (opens the overlay on that page). */
7902
+ function selectPage(page) {
7903
+ _currentPage = page;
7904
+ notify();
7905
+ }
7906
+ /** Clear the selection (hides the overlay, returns to conversation view). */
7907
+ function clearPage() {
7908
+ _currentPage = null;
7909
+ notify();
7910
+ }
7843
7911
  /**
7844
- * Create the memory nav store handle. `select` both chooses the page and
7845
- * expands the group; `clear` hides the takeover overlay (used when the user
7846
- * opens a session row, returning to the native conversation view).
7847
- * @returns the store handle (spec + type + identity + factory in one).
7912
+ * React hook: subscribe to page changes and re-render on update.
7913
+ * Returns the current page key, or null when the overlay is hidden.
7848
7914
  */
7849
- function createMemoryNavStore() {
7850
- return (0, _deepseek_ai_dsh_client_runtime_client.defineStore)({
7851
- init: () => ({
7852
- page: null,
7853
- collapsed: false
7854
- }),
7855
- actions: {
7856
- select: (d, page) => {
7857
- d.page = page;
7858
- d.collapsed = false;
7859
- },
7860
- clear: (d) => {
7861
- d.page = null;
7862
- },
7863
- toggleCollapsed: (d) => {
7864
- d.collapsed = !d.collapsed;
7865
- }
7866
- }
7867
- });
7915
+ function useCurrentPage() {
7916
+ const [, force] = (0, react.useState)(0);
7917
+ (0, react.useEffect)(() => {
7918
+ const fn = () => {
7919
+ force((n) => n + 1);
7920
+ };
7921
+ _listeners.add(fn);
7922
+ return () => {
7923
+ _listeners.delete(fn);
7924
+ };
7925
+ }, []);
7926
+ return _currentPage;
7868
7927
  }
7869
7928
  //#endregion
7929
+ //#region src/types.ts
7930
+ /**
7931
+ * Memory system wire vocabulary: experience lifecycle, recall adjudication,
7932
+ * use reports with attribution, the diary/fact semantic layer, and the
7933
+ * append-only ledger. Types only — no runtime code.
7934
+ * @module dsh-daoing-memory/types
7935
+ */
7936
+ /**
7937
+ * System-managed experience families that cannot be deleted by human operators
7938
+ * (only archived). The extraction-feedback family is auto-generated by the
7939
+ * daily deletion-reason summarizer and serves as negative guidance for future
7940
+ * memory extraction.
7941
+ */
7942
+ const SYSTEM_EXPERIENCE_FAMILIES = new Set(["extraction-feedback"]);
7943
+ //#endregion
7870
7944
  //#region \0dsh-css:D:\DSH 插件项目\项目源码\deepseek-harness-master\packages\memory\dsh-daoing-memory\src\client\Workbench.module.css.mjs
7871
7945
  const css$1 = ".KAfEAG_panel{background:var(--dsw-alias-bg-base);border-left:1px solid var(--dsw-alias-border-l2);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.KAfEAG_header{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex}.KAfEAG_titleBlock{flex-direction:column;gap:2px;min-width:180px;display:flex}.KAfEAG_title{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:600}.KAfEAG_subtitle{color:var(--dsw-alias-label-caption);font-size:11px}.KAfEAG_statline{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:11px}.KAfEAG_body{flex:1;padding:12px 16px 24px;overflow:auto}.KAfEAG_workbenchTabs{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);align-items:center;gap:2px;padding:0 16px;display:flex}.KAfEAG_workbenchTab{color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:10px 14px;font-size:13px;line-height:20px;position:relative}.KAfEAG_workbenchTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.KAfEAG_workbenchTabActive{color:var(--dsw-alias-label-primary);font-weight:600}.KAfEAG_workbenchTabActive:after{content:\"\";background:var(--ds-color-accent,#4c8dff);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:14px;right:14px}.KAfEAG_page{flex-direction:column;gap:10px;display:flex}.KAfEAG_toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.KAfEAG_tabs{border-bottom:1px solid var(--dsw-alias-border-l2);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding-bottom:8px;display:flex}.KAfEAG_tab{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:12px}.KAfEAG_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.KAfEAG_tabActive{background:var(--dsw-alias-interactive-bg-active,var(--dsw-alias-bg-module-platform));color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l3,var(--dsw-alias-border-l2));font-weight:600}.KAfEAG_field{color:var(--dsw-alias-label-caption);flex-direction:column;gap:3px;font-size:11px;display:flex}.KAfEAG_field input,.KAfEAG_field select,.KAfEAG_field textarea{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary);border-radius:6px;min-width:140px;padding:5px 8px;font-size:12px}.KAfEAG_field textarea{resize:vertical}.KAfEAG_check{color:var(--dsw-alias-label-secondary);align-items:center;gap:5px;font-size:12px;display:flex}.KAfEAG_btn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-primary);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 10px;font-size:12px}.KAfEAG_btn:hover{background:var(--dsw-alias-interactive-bg-hover)}.KAfEAG_btn:disabled{opacity:.5;cursor:default}.KAfEAG_btnDanger{color:var(--dsw-alias-state-error-primary)}.KAfEAG_btnDanger:hover{background:var(--dsw-alias-interactive-bg-hover-danger)}.KAfEAG_error{color:var(--dsw-alias-state-error-primary);font-size:12px}.KAfEAG_okLine{color:var(--dsw-alias-state-success-primary);font-size:12px}.KAfEAG_warnLine{color:var(--dsw-alias-state-warn-label);margin-bottom:6px;font-size:12px}.KAfEAG_empty{color:var(--dsw-alias-label-caption);padding:14px 4px;font-size:12px}.KAfEAG_list{flex-direction:column;gap:8px;display:flex}.KAfEAG_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);border-radius:8px;padding:8px 12px}.KAfEAG_cardHead{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.KAfEAG_cardTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500}.KAfEAG_cardMeta{color:var(--dsw-alias-label-caption);font-size:11px}.KAfEAG_cardSub{align-items:center;gap:12px;margin-top:4px;display:flex}.KAfEAG_concernBg{color:var(--dsw-alias-label-caption);margin-top:3px;font-size:11px;line-height:1.5}.KAfEAG_cardDetail{border-top:1px solid var(--dsw-alias-border-l2);flex-direction:column;gap:5px;margin-top:8px;padding-top:8px;display:flex}.KAfEAG_detailRow{color:var(--dsw-alias-label-secondary);font-size:12px}.KAfEAG_detailLabel{min-width:64px;color:var(--dsw-alias-label-caption);display:inline-block}.KAfEAG_actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.KAfEAG_historyTitle{color:var(--dsw-alias-label-secondary);margin-top:10px;font-size:12px;font-weight:600}.KAfEAG_table{border-collapse:collapse;width:100%;color:var(--dsw-alias-label-secondary);font-size:12px}.KAfEAG_table th{text-align:left;color:var(--dsw-alias-label-caption);border-bottom:1px solid var(--dsw-alias-border-l2);padding:5px 8px;font-weight:500}.KAfEAG_table td{border-bottom:1px solid var(--dsw-alias-border-l2);vertical-align:top;padding:5px 8px}.KAfEAG_valueCell{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.KAfEAG_payloadFull{white-space:pre-wrap;word-break:break-all;max-width:480px}.KAfEAG_payloadToggle{cursor:pointer;color:var(--ds-color-accent,#4c8dff);user-select:none;margin-left:6px;font-size:12px}.KAfEAG_payloadToggle:hover{text-decoration:underline}.KAfEAG_cellActions{flex-wrap:wrap;gap:4px;display:flex}.KAfEAG_badge{white-space:nowrap;border-radius:9px;padding:1px 7px;font-size:11px}.KAfEAG_badgePositive{background:var(--dsw-alias-state-success-tertiary);color:var(--dsw-alias-state-success-primary)}.KAfEAG_badgeNegative{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-label)}.KAfEAG_badgePinned{background:var(--dsw-alias-state-business-tertiary);color:var(--dsw-alias-state-business-primary)}.KAfEAG_badgeConflict{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-label)}.KAfEAG_statusLive{background:var(--dsw-alias-state-success-tertiary);color:var(--dsw-alias-state-success-primary)}.KAfEAG_statusCandidate{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-secondary)}.KAfEAG_statusChallenged{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.KAfEAG_statusOther{background:var(--dsw-alias-bg-skeleton);color:var(--dsw-alias-label-caption)}.KAfEAG_trust{color:var(--dsw-alias-label-tertiary);font-size:11px}.KAfEAG_columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}.KAfEAG_column{flex-direction:column;gap:8px;min-width:0;display:flex}.KAfEAG_sectionTitle{color:var(--dsw-alias-label-primary);margin-top:6px;font-size:13px;font-weight:600}.KAfEAG_form{border:1px solid var(--dsw-alias-border-l2);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.KAfEAG_form .KAfEAG_btn{align-self:flex-start}.KAfEAG_rules{color:var(--dsw-alias-label-secondary);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:12px;display:flex}";
7872
7946
  const tagId$1 = "dsh-daoing-memory/Workbench.module.css";
@@ -7878,61 +7952,61 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7878
7952
  document.head.appendChild(tag);
7879
7953
  }
7880
7954
  var Workbench_module_css_default = {
7881
- "statline": "KAfEAG_statline",
7882
- "error": "KAfEAG_error",
7883
- "btnDanger": "KAfEAG_btnDanger",
7884
- "cardMeta": "KAfEAG_cardMeta",
7955
+ "detailRow": "KAfEAG_detailRow",
7956
+ "detailLabel": "KAfEAG_detailLabel",
7957
+ "empty": "KAfEAG_empty",
7958
+ "check": "KAfEAG_check",
7959
+ "workbenchTab": "KAfEAG_workbenchTab",
7960
+ "list": "KAfEAG_list",
7885
7961
  "payloadFull": "KAfEAG_payloadFull",
7886
- "form": "KAfEAG_form",
7887
- "toolbar": "KAfEAG_toolbar",
7888
- "statusCandidate": "KAfEAG_statusCandidate",
7889
- "sectionTitle": "KAfEAG_sectionTitle",
7890
- "concernBg": "KAfEAG_concernBg",
7962
+ "table": "KAfEAG_table",
7963
+ "tabs": "KAfEAG_tabs",
7964
+ "cellActions": "KAfEAG_cellActions",
7891
7965
  "tab": "KAfEAG_tab",
7892
- "list": "KAfEAG_list",
7893
- "actions": "KAfEAG_actions",
7966
+ "badgePositive": "KAfEAG_badgePositive",
7967
+ "badgeNegative": "KAfEAG_badgeNegative",
7968
+ "titleBlock": "KAfEAG_titleBlock",
7969
+ "subtitle": "KAfEAG_subtitle",
7970
+ "badgePinned": "KAfEAG_badgePinned",
7971
+ "statusLive": "KAfEAG_statusLive",
7972
+ "header": "KAfEAG_header",
7973
+ "statusCandidate": "KAfEAG_statusCandidate",
7894
7974
  "columns": "KAfEAG_columns",
7895
7975
  "badgeConflict": "KAfEAG_badgeConflict",
7896
- "workbenchTabActive": "KAfEAG_workbenchTabActive",
7897
7976
  "workbenchTabs": "KAfEAG_workbenchTabs",
7898
- "field": "KAfEAG_field",
7899
- "card": "KAfEAG_card",
7900
- "cardTitle": "KAfEAG_cardTitle",
7977
+ "valueCell": "KAfEAG_valueCell",
7978
+ "btn": "KAfEAG_btn",
7979
+ "title": "KAfEAG_title",
7980
+ "actions": "KAfEAG_actions",
7981
+ "error": "KAfEAG_error",
7982
+ "column": "KAfEAG_column",
7983
+ "cardHead": "KAfEAG_cardHead",
7984
+ "toolbar": "KAfEAG_toolbar",
7985
+ "historyTitle": "KAfEAG_historyTitle",
7986
+ "cardSub": "KAfEAG_cardSub",
7987
+ "rules": "KAfEAG_rules",
7988
+ "trust": "KAfEAG_trust",
7989
+ "form": "KAfEAG_form",
7990
+ "cardMeta": "KAfEAG_cardMeta",
7991
+ "statline": "KAfEAG_statline",
7901
7992
  "cardDetail": "KAfEAG_cardDetail",
7902
- "cellActions": "KAfEAG_cellActions",
7903
- "header": "KAfEAG_header",
7904
- "warnLine": "KAfEAG_warnLine",
7905
- "statusLive": "KAfEAG_statusLive",
7993
+ "concernBg": "KAfEAG_concernBg",
7994
+ "panel": "KAfEAG_panel",
7906
7995
  "payloadToggle": "KAfEAG_payloadToggle",
7996
+ "statusOther": "KAfEAG_statusOther",
7997
+ "cardTitle": "KAfEAG_cardTitle",
7998
+ "statusChallenged": "KAfEAG_statusChallenged",
7999
+ "workbenchTabActive": "KAfEAG_workbenchTabActive",
8000
+ "badge": "KAfEAG_badge",
8001
+ "sectionTitle": "KAfEAG_sectionTitle",
7907
8002
  "okLine": "KAfEAG_okLine",
7908
- "badgePinned": "KAfEAG_badgePinned",
7909
- "trust": "KAfEAG_trust",
7910
- "rules": "KAfEAG_rules",
7911
- "column": "KAfEAG_column",
7912
- "panel": "KAfEAG_panel",
7913
- "cardSub": "KAfEAG_cardSub",
7914
- "workbenchTab": "KAfEAG_workbenchTab",
8003
+ "field": "KAfEAG_field",
7915
8004
  "tabActive": "KAfEAG_tabActive",
7916
- "detailRow": "KAfEAG_detailRow",
7917
- "check": "KAfEAG_check",
7918
- "historyTitle": "KAfEAG_historyTitle",
7919
- "table": "KAfEAG_table",
7920
- "page": "KAfEAG_page",
7921
- "cardHead": "KAfEAG_cardHead",
7922
- "valueCell": "KAfEAG_valueCell",
8005
+ "btnDanger": "KAfEAG_btnDanger",
7923
8006
  "body": "KAfEAG_body",
7924
- "titleBlock": "KAfEAG_titleBlock",
7925
- "tabs": "KAfEAG_tabs",
7926
- "badgePositive": "KAfEAG_badgePositive",
7927
- "subtitle": "KAfEAG_subtitle",
7928
- "detailLabel": "KAfEAG_detailLabel",
7929
- "badgeNegative": "KAfEAG_badgeNegative",
7930
- "btn": "KAfEAG_btn",
7931
- "statusChallenged": "KAfEAG_statusChallenged",
7932
- "title": "KAfEAG_title",
7933
- "badge": "KAfEAG_badge",
7934
- "empty": "KAfEAG_empty",
7935
- "statusOther": "KAfEAG_statusOther"
8007
+ "card": "KAfEAG_card",
8008
+ "page": "KAfEAG_page",
8009
+ "warnLine": "KAfEAG_warnLine"
7936
8010
  };
7937
8011
  //#endregion
7938
8012
  //#region src/client/ExperiencePage.tsx
@@ -8060,12 +8134,21 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8060
8134
  refresh
8061
8135
  ]);
8062
8136
  const runDelete = (0, react.useCallback)(async (item) => {
8063
- const reason = await promptReason(`删除经验「${item.gist.slice(0, 24)}」(指纹保留在账本)`);
8064
- if (reason === void 0) return;
8065
- await actions.humanDeleteExperience({
8066
- id: item.id,
8067
- reason
8068
- });
8137
+ if (SYSTEM_EXPERIENCE_FAMILIES.has(item.family)) {
8138
+ const reason = await promptReason(`归档系统经验「${item.family}」(保留数据,移出活跃召回)`);
8139
+ if (reason === void 0) return;
8140
+ await actions.humanArchiveExperience({
8141
+ id: item.id,
8142
+ reason
8143
+ });
8144
+ } else {
8145
+ const reason = await promptReason(`删除经验「${item.gist.slice(0, 24)}」(指纹保留在账本)`);
8146
+ if (reason === void 0) return;
8147
+ await actions.humanDeleteExperience({
8148
+ id: item.id,
8149
+ reason
8150
+ });
8151
+ }
8069
8152
  refresh();
8070
8153
  onChanged();
8071
8154
  }, [
@@ -8202,6 +8285,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8202
8285
  title: item.gist,
8203
8286
  children: item.gist
8204
8287
  }),
8288
+ SYSTEM_EXPERIENCE_FAMILIES.has(item.family) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
8289
+ className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.badgeConflict}`,
8290
+ title: "系统自动生成的经验,禁止删除,只能归档",
8291
+ children: ["系统·", item.family]
8292
+ }),
8205
8293
  item.pinned && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8206
8294
  className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.badgePinned}`,
8207
8295
  children: "永久"
@@ -8395,16 +8483,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8395
8483
  document.head.appendChild(tag);
8396
8484
  }
8397
8485
  var ReasonDialog_module_css_default = {
8398
- "btnConfirm": "L4KK8a_btnConfirm",
8399
- "header": "L4KK8a_header",
8400
- "btnCancel": "L4KK8a_btnCancel",
8401
- "textarea": "L4KK8a_textarea",
8402
- "subtitle": "L4KK8a_subtitle",
8403
8486
  "dialog": "L4KK8a_dialog",
8487
+ "footer": "L4KK8a_footer",
8488
+ "subtitle": "L4KK8a_subtitle",
8404
8489
  "overlay": "L4KK8a_overlay",
8490
+ "textarea": "L4KK8a_textarea",
8491
+ "header": "L4KK8a_header",
8492
+ "btnCancel": "L4KK8a_btnCancel",
8405
8493
  "title": "L4KK8a_title",
8494
+ "btnConfirm": "L4KK8a_btnConfirm",
8406
8495
  "hint": "L4KK8a_hint",
8407
- "footer": "L4KK8a_footer",
8408
8496
  "buttons": "L4KK8a_buttons"
8409
8497
  };
8410
8498
  //#endregion
@@ -10221,6 +10309,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10221
10309
  * four pages remain reachable. Opening a session row clears the selection
10222
10310
  * and returns to the native conversation view. All human mutations go through
10223
10311
  * the audited Remote callbacks.
10312
+ *
10313
+ * IMPORTANT: No DSH store handle is used here. The overlay slot has scope
10314
+ * "root" while the header slot has scope "session" — sharing a handle would
10315
+ * violate DSH's "one handle, one scope" rule. Page state comes from the
10316
+ * module-level observable in navStore.ts via useCurrentPage().
10224
10317
  */
10225
10318
  /** Format an epoch-ms timestamp as a compact local string. */
10226
10319
  function formatTs(ts) {
@@ -10235,11 +10328,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10235
10328
  }
10236
10329
  /**
10237
10330
  * The workbench entry component. Renders nothing unless a monitoring page is
10238
- * selected in the nav store and a current session exists (the Remote face is
10239
- * session-bound).
10331
+ * selected in the module-level nav state and a current session exists (the
10332
+ * Remote face is session-bound).
10240
10333
  */
10241
10334
  function MemoryWorkbench(props) {
10242
- const nav = props.useStore((s) => s);
10335
+ const page = useCurrentPage();
10243
10336
  const sessionId = props.useSessions((s) => s).current;
10244
10337
  const [info, setInfo] = (0, react.useState)(null);
10245
10338
  const [stats, setStats] = (0, react.useState)(null);
@@ -10271,9 +10364,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10271
10364
  }, [
10272
10365
  info,
10273
10366
  refreshStats,
10274
- nav.page
10367
+ page
10275
10368
  ]);
10276
- const active = nav.page !== null && info !== null && sessionId !== void 0;
10369
+ const active = page !== null && info !== null && sessionId !== void 0;
10277
10370
  (0, react.useEffect)(() => {
10278
10371
  if (!active) return;
10279
10372
  const onPointerDown = (event) => {
@@ -10281,19 +10374,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10281
10374
  if (!(target instanceof Element)) return;
10282
10375
  if (target.closest("[data-memory-workbench]") !== null) return;
10283
10376
  if (target.closest("[data-memory-nav]") !== null) return;
10284
- props.actions.clear();
10377
+ clearPage();
10285
10378
  };
10286
10379
  window.addEventListener("pointerdown", onPointerDown, true);
10287
10380
  return () => {
10288
10381
  window.removeEventListener("pointerdown", onPointerDown, true);
10289
10382
  };
10290
- }, [active, props.actions]);
10383
+ }, [active]);
10291
10384
  const prevSession = (0, react.useRef)(sessionId);
10292
10385
  (0, react.useEffect)(() => {
10293
10386
  if (prevSession.current === sessionId) return;
10294
10387
  prevSession.current = sessionId;
10295
- props.actions.clear();
10296
- }, [sessionId, props.actions]);
10388
+ clearPage();
10389
+ }, [sessionId]);
10297
10390
  (0, react.useEffect)(() => {
10298
10391
  if (!active) return;
10299
10392
  const root = rootRef.current;
@@ -10312,7 +10405,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10312
10405
  }, [active]);
10313
10406
  const bound = (0, react.useMemo)(() => sessionId === void 0 ? null : bindMemoryActions(props, sessionId), [sessionId]);
10314
10407
  if (!active || info === null || bound === null) return null;
10315
- const title = MEMORY_NAV_ITEMS.find((item) => item.key === nav.page)?.label ?? info.workspaceTitle;
10408
+ const title = MEMORY_NAV_ITEMS.find((item) => item.key === page)?.label ?? info.workspaceTitle;
10316
10409
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10317
10410
  ref: rootRef,
10318
10411
  className: Workbench_module_css_default.panel,
@@ -10340,10 +10433,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10340
10433
  "aria-label": "记忆监控页面",
10341
10434
  children: MEMORY_NAV_ITEMS.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
10342
10435
  type: "button",
10343
- className: clsx(Workbench_module_css_default.workbenchTab, nav.page === item.key && Workbench_module_css_default.workbenchTabActive),
10344
- "aria-current": nav.page === item.key ? "page" : void 0,
10436
+ className: clsx(Workbench_module_css_default.workbenchTab, page === item.key && Workbench_module_css_default.workbenchTabActive),
10437
+ "aria-current": page === item.key ? "page" : void 0,
10345
10438
  onClick: () => {
10346
- props.actions.select(item.key);
10439
+ selectPage(item.key);
10347
10440
  },
10348
10441
  children: item.label
10349
10442
  }, item.key))
@@ -10351,16 +10444,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10351
10444
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("main", {
10352
10445
  className: Workbench_module_css_default.body,
10353
10446
  children: [
10354
- nav.page === "experience" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExperiencePage, {
10447
+ page === "experience" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExperiencePage, {
10355
10448
  actions: bound,
10356
10449
  onChanged: refreshStats
10357
10450
  }),
10358
- nav.page === "fact" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FactDiaryPage, {
10451
+ page === "fact" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FactDiaryPage, {
10359
10452
  actions: bound,
10360
10453
  onChanged: refreshStats
10361
10454
  }),
10362
- nav.page === "ledger" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LedgerPage, { actions: bound }),
10363
- nav.page === "human" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HumanOpsPage, {
10455
+ page === "ledger" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LedgerPage, { actions: bound }),
10456
+ page === "human" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HumanOpsPage, {
10364
10457
  actions: bound,
10365
10458
  onChanged: refreshStats
10366
10459
  })
@@ -10390,7 +10483,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10390
10483
  }
10391
10484
  /**
10392
10485
  * Client plugin body: mount the memory Remote contribution, then register the
10393
- * header entry and the overlay takeover sharing one nav store handle.
10486
+ * header entry and the overlay takeover. Page selection is shared through the
10487
+ * module-level observable in navStore.ts (not a DSH store handle) to avoid
10488
+ * the "one handle, one scope" conflict between the session-scoped header slot
10489
+ * and the root-scoped overlay slot.
10394
10490
  * @param ctx - client root context.
10395
10491
  * @returns disposer after both entries and the Remote namespace unregister.
10396
10492
  */
@@ -10421,6 +10517,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10421
10517
  humanDeleteExperience: async (session, request) => {
10422
10518
  unwrap(await memory.humanDeleteExperience(session, request));
10423
10519
  },
10520
+ humanArchiveExperience: async (session, request) => {
10521
+ unwrap(await memory.humanArchiveExperience(session, request));
10522
+ },
10424
10523
  humanEditExperience: async (session, request) => unwrap(await memory.humanEditExperience(session, request)),
10425
10524
  humanAddExperience: async (session, request) => unwrap(await memory.humanAddExperience(session, request)),
10426
10525
  humanPromote: async (session, id, reason) => unwrap(await memory.humanPromote(session, id, reason)),
@@ -10441,18 +10540,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10441
10540
  humanReleaseCold: async (session, request) => unwrap(await memory.humanReleaseCold(session, request)),
10442
10541
  ingest: async (session, request) => unwrap(await memory.ingest(session, request))
10443
10542
  };
10444
- const navStore = createMemoryNavStore();
10445
10543
  const disposeNav = ctx.slots.inject("conversation.session.header.utilities", () => ctx.slots.register({
10446
10544
  name: "conversation.session.header.utilities",
10447
10545
  id: "memory-nav",
10448
10546
  order: -10,
10449
- store: navStore
10547
+ inject: () => ({ selectPage })
10450
10548
  }, MemoryHeaderAction));
10451
10549
  const disposeOverlay = ctx.slots.inject("shell.overlay", () => ctx.slots.register({
10452
10550
  name: "shell.overlay",
10453
10551
  id: "memory-workbench",
10454
10552
  order: 100,
10455
- store: navStore,
10456
10553
  inject: () => actions
10457
10554
  }, MemoryWorkbench));
10458
10555
  return async () => {