instar 1.3.571 → 1.3.573

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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAg4CD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4mctE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAg4CD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsqctE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
@@ -3643,7 +3643,7 @@ export async function startServer(options) {
3643
3643
  // (= that one local record). tierOf returns HIGH (append-both-and-flag never
3644
3644
  // silently clobbers two divergent people). Consulted by the relationships peer-read
3645
3645
  // surface ONLY when stateSync.relationships.enabled is true.
3646
- const { relationshipTierOf, relationshipToOriginRecord, deriveRelationshipRecordKey, mergeUnionToRelationships, renderForeignRelationshipContext, RELATIONSHIP_STORE_KEY } = await import('../core/RelationshipsReplicatedStore.js');
3646
+ const { relationshipTierOf, relationshipToOriginRecord, deriveRelationshipRecordKey, buildRelationshipRecordData, buildRelationshipTombstoneData, mergeUnionToRelationships, renderForeignRelationshipContext, RELATIONSHIP_STORE_KEY } = await import('../core/RelationshipsReplicatedStore.js');
3647
3647
  const relationshipsUnionReader = new ReplicatedStoreReader({
3648
3648
  registry: replicatedKindRegistry,
3649
3649
  stores: _stateSyncStoresResolved, // gate-resolved (dev-live / fleet-dark) per operator directive 2026-06-13
@@ -7962,6 +7962,24 @@ export async function startServer(options) {
7962
7962
  emitDelete: (title, category, source, deletedAt) => emitter.emit(LEARNING_STORE_KEY, deriveLearningRecordKey(title, category, source), (hlc, origin, observed) => buildLearningTombstoneData({ title, category, source, hlc, origin, deletedAt, observed })),
7963
7963
  });
7964
7964
  }
7965
+ // WS2.3 SEND-SIDE: attach the journal-backed emitter to the RelationshipManager's
7966
+ // replication hooks. The manager already fires emitPut on every saved person and
7967
+ // emitDelete on erase/merge (RelationshipManager.setReplicationEmitter); the adapter
7968
+ // maps the manager's emit signature to the relationship build*RecordData projection.
7969
+ // The generic emitter owns the dark gate, HLC tick, `observed` witness, journal
7970
+ // append, and ALL the safety guards (null recordKey ⇒ skip, null projection ⇒ skip,
7971
+ // over-cap throw ⇒ counted no-op) — so the adapter mirrors learnings with no extra
7972
+ // guarding. Attached only when the emitter exists (journal live) AND the manager is
7973
+ // constructed; when stateSync.relationships is dark the hooks stay no-ops (byte-
7974
+ // identical single-machine behavior — the local UUID id never crosses; only the
7975
+ // disclosure-minimized, channel-keyed projection does — REQ-M4).
7976
+ if (replicatedRecordEmitter && relationships) {
7977
+ const emitter = replicatedRecordEmitter;
7978
+ relationships.setReplicationEmitter({
7979
+ emitPut: (rec) => emitter.emit(RELATIONSHIP_STORE_KEY, deriveRelationshipRecordKey(rec.channels), (hlc, origin, observed) => buildRelationshipRecordData({ record: rec, hlc, origin, observed })),
7980
+ emitDelete: (channels, deletedAt) => emitter.emit(RELATIONSHIP_STORE_KEY, deriveRelationshipRecordKey(channels), (hlc, origin, observed) => buildRelationshipTombstoneData({ channels, hlc, origin, deletedAt, observed })),
7981
+ });
7982
+ }
7965
7983
  // WS2.4 — the bypass-proof union reader for the `knowledge` store + the emit seam on
7966
7984
  // the KnowledgeManager. The KnowledgeManager reads the local catalog.json (cheap, no
7967
7985
  // background work); we construct one here scoped to the replication wiring. The union
@@ -7979,7 +7997,7 @@ export async function startServer(options) {
7979
7997
  // file body — fork #2).
7980
7998
  const { KnowledgeManager } = await import('../knowledge/KnowledgeManager.js');
7981
7999
  const knowledgeManager = new KnowledgeManager(config.stateDir);
7982
- const { knowledgeTierOf, knowledgeToOriginRecord, deriveKnowledgeRecordKey, KNOWLEDGE_STORE_KEY, } = await import('../core/KnowledgeReplicatedStore.js');
8000
+ const { knowledgeTierOf, knowledgeToOriginRecord, deriveKnowledgeRecordKey, buildKnowledgeRecordData, buildKnowledgeTombstoneData, KNOWLEDGE_STORE_KEY, } = await import('../core/KnowledgeReplicatedStore.js');
7983
8001
  const knowledgeUnionReader = new ReplicatedStoreReader({
7984
8002
  registry: replicatedKindRegistry,
7985
8003
  stores: _stateSyncStoresResolved, // gate-resolved (dev-live / fleet-dark) per operator directive 2026-06-13
@@ -8010,7 +8028,23 @@ export async function startServer(options) {
8010
8028
  conflictStore,
8011
8029
  });
8012
8030
  void knowledgeUnionReader; // consumed by the knowledge peer-read surface + the journal-apply rollout stage (WS2.4+)
8013
- void knowledgeManager.setKnowledgeReplicationEmitter; // the emit seam exists (unit-tested + dark by default); the journal-backed emitter is attached in a later rollout stage, mirroring the WS2.2 learnings sibling
8031
+ // WS2.4 SEND-SIDE: attach the journal-backed emitter to the KnowledgeManager's
8032
+ // replication hooks. The manager already fires emitPut on every ingested source and
8033
+ // emitDelete on remove() (KnowledgeManager.setKnowledgeReplicationEmitter); the adapter
8034
+ // maps the manager's emit signature to the knowledge build*RecordData projection. The
8035
+ // generic emitter owns the dark gate, HLC tick, `observed` witness, journal append, and
8036
+ // ALL the safety guards (null recordKey ⇒ skip, null projection ⇒ skip, over-cap throw ⇒
8037
+ // counted no-op) — so the adapter mirrors learnings/relationships with no extra guarding.
8038
+ // Only the catalog METADATA crosses (title/url/type/tags/summary/wordCount) — NEVER the
8039
+ // markdown file body, NEVER the local id/filePath (fork #2). Attached only when the
8040
+ // emitter exists; dark by default ⇒ no-op (byte-identical single-machine behavior).
8041
+ if (replicatedRecordEmitter) {
8042
+ const emitter = replicatedRecordEmitter;
8043
+ knowledgeManager.setKnowledgeReplicationEmitter({
8044
+ emitPut: (rec) => emitter.emit(KNOWLEDGE_STORE_KEY, deriveKnowledgeRecordKey(rec.title, rec.url, rec.type), (hlc, origin, observed) => buildKnowledgeRecordData({ record: rec, hlc, origin, observed })),
8045
+ emitDelete: (title, url, type, deletedAt) => emitter.emit(KNOWLEDGE_STORE_KEY, deriveKnowledgeRecordKey(title, url, type), (hlc, origin, observed) => buildKnowledgeTombstoneData({ title, url, type, hlc, origin, deletedAt, observed })),
8046
+ });
8047
+ }
8014
8048
  // WS2.5 — the bypass-proof union reader for the `evolutionActions` store. The single
8015
8049
  // funnel every replicated action read routes through, so no caller reads a raw replica
8016
8050
  // around the no-clobber rule. `loadOriginRecords` materializes the OWN action queue (the