instar 1.3.601 → 1.3.603
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/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +50 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +36 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/CoherenceJournal.d.ts +1 -1
- package/dist/core/CoherenceJournal.d.ts.map +1 -1
- package/dist/core/CoherenceJournal.js +12 -2
- package/dist/core/CoherenceJournal.js.map +1 -1
- package/dist/core/LiveTestSlackCaller.d.ts +72 -0
- package/dist/core/LiveTestSlackCaller.d.ts.map +1 -0
- package/dist/core/LiveTestSlackCaller.js +114 -0
- package/dist/core/LiveTestSlackCaller.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +25 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/ThreadlinePairingReplicatedStore.d.ts +285 -0
- package/dist/core/ThreadlinePairingReplicatedStore.d.ts.map +1 -0
- package/dist/core/ThreadlinePairingReplicatedStore.js +462 -0
- package/dist/core/ThreadlinePairingReplicatedStore.js.map +1 -0
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +5 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/types.d.ts +22 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +6 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +363 -1
- package/dist/server/routes.js.map +1 -1
- package/dist/threadline/AgentTrustManager.d.ts +201 -1
- package/dist/threadline/AgentTrustManager.d.ts.map +1 -1
- package/dist/threadline/AgentTrustManager.js +395 -2
- package/dist/threadline/AgentTrustManager.js.map +1 -1
- package/dist/threadline/CredentialShareGate.d.ts +66 -0
- package/dist/threadline/CredentialShareGate.d.ts.map +1 -0
- package/dist/threadline/CredentialShareGate.js +82 -0
- package/dist/threadline/CredentialShareGate.js.map +1 -0
- package/dist/threadline/InboundMessageGate.d.ts +46 -1
- package/dist/threadline/InboundMessageGate.d.ts.map +1 -1
- package/dist/threadline/InboundMessageGate.js +105 -0
- package/dist/threadline/InboundMessageGate.js.map +1 -1
- package/dist/threadline/PairVerifyReceipt.d.ts +69 -0
- package/dist/threadline/PairVerifyReceipt.d.ts.map +1 -0
- package/dist/threadline/PairVerifyReceipt.js +151 -0
- package/dist/threadline/PairVerifyReceipt.js.map +1 -0
- package/dist/threadline/PairingPendingStore.d.ts +55 -0
- package/dist/threadline/PairingPendingStore.d.ts.map +1 -0
- package/dist/threadline/PairingPendingStore.js +110 -0
- package/dist/threadline/PairingPendingStore.js.map +1 -0
- package/dist/threadline/ThreadlineBootstrap.d.ts +11 -0
- package/dist/threadline/ThreadlineBootstrap.d.ts.map +1 -1
- package/dist/threadline/ThreadlineBootstrap.js +5 -0
- package/dist/threadline/ThreadlineBootstrap.js.map +1 -1
- package/dist/threadline/ThreadlineCrypto.d.ts +28 -0
- package/dist/threadline/ThreadlineCrypto.d.ts.map +1 -1
- package/dist/threadline/ThreadlineCrypto.js +100 -0
- package/dist/threadline/ThreadlineCrypto.js.map +1 -1
- package/dist/threadline/ThreadlineEndpoints.d.ts +8 -0
- package/dist/threadline/ThreadlineEndpoints.d.ts.map +1 -1
- package/dist/threadline/ThreadlineEndpoints.js +5 -0
- package/dist/threadline/ThreadlineEndpoints.js.map +1 -1
- package/dist/threadline/ThreadlineMCPServer.d.ts +3 -1
- package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
- package/dist/threadline/ThreadlineMCPServer.js +107 -1
- package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
- package/dist/threadline/client/ThreadlineClient.d.ts +10 -0
- package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -1
- package/dist/threadline/client/ThreadlineClient.js +13 -0
- package/dist/threadline/client/ThreadlineClient.js.map +1 -1
- package/package.json +2 -1
- package/scripts/check-e2e-pairing.cjs +4 -1
- package/src/data/builtin-manifest.json +63 -63
- package/src/data/state-coherence-registry.json +26 -0
- package/src/scaffold/templates.ts +6 -0
- package/src/threadline/data/sas-wordlist-en.json +1 -0
- package/upgrades/{1.3.601.md → 1.3.602.md} +49 -0
- package/upgrades/1.3.603.md +39 -0
- package/upgrades/side-effects/secure-a2a-verified-pairing.md +116 -0
- package/upgrades/side-effects/xoxc-slack-caller.md +99 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAwBjG,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,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAwBjG,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,CAs0dtE;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"}
|
package/dist/commands/server.js
CHANGED
|
@@ -3426,6 +3426,20 @@ export async function startServer(options) {
|
|
|
3426
3426
|
// answer to "who is my verified operator?" (only the local authenticated setOperator binds it).
|
|
3427
3427
|
const { TOPIC_OPERATOR_KIND_REGISTRATION } = await import('../core/TopicOperatorReplicatedStore.js');
|
|
3428
3428
|
replicatedKindRegistry.register(TOPIC_OPERATOR_KIND_REGISTRATION);
|
|
3429
|
+
// Secure A2A Verified Pairing §3.8 (FD11) — register the EIGHTH concrete replicated kind,
|
|
3430
|
+
// `threadline-pairing-record`, onto the registry. Unlike the WS2 memory/PII stores it
|
|
3431
|
+
// replicates ONLY the verified-IDENTITY RESULT of a pairing { peerFp, peerIdentityPub,
|
|
3432
|
+
// state:'mutual-verified', verifiedAt, verifiedOnMachine } — NEVER the SAS, shared secret, or
|
|
3433
|
+
// relay token (those stay machine-local BY DESIGN). Dual-registry's dynamic half (the static
|
|
3434
|
+
// half is CoherenceJournal.JOURNAL_KINDS, which now lists 'threadline-pairing-record').
|
|
3435
|
+
// Registration is INERT — emission/serve/pull stay gated behind
|
|
3436
|
+
// `multiMachine.stateSync.threadlinePairing.enabled` (default false ⇒ strict no-op). Machine B
|
|
3437
|
+
// honors a replicated record ONLY by pinning peerIdentityPub (a mismatching handshake key is
|
|
3438
|
+
// refused inheritance + downgraded to pending-verification); inherited = identity-verified, NOT
|
|
3439
|
+
// channel-ready (the outbound CredentialShareGate enforces the encrypted-path half). A revoke /
|
|
3440
|
+
// verification-failed propagates as a tombstone (ThreadlinePairingReplicatedStore).
|
|
3441
|
+
const { THREADLINE_PAIRING_KIND_REGISTRATION } = await import('../core/ThreadlinePairingReplicatedStore.js');
|
|
3442
|
+
replicatedKindRegistry.register(THREADLINE_PAIRING_KIND_REGISTRATION);
|
|
3429
3443
|
// ── WS2 SEND-SIDE wiring (docs/specs/WS2-SEND-SIDE-EMISSION-SPEC.md). The
|
|
3430
3444
|
// substrate above ships the registry + receive/serve machinery + advert; THIS
|
|
3431
3445
|
// wires the SEND half that was deferred ("the journal-backed emitter is attached
|
|
@@ -11746,6 +11760,17 @@ export async function startServer(options) {
|
|
|
11746
11760
|
relayUrl: config.threadline?.relayUrl,
|
|
11747
11761
|
visibility: config.threadline?.visibility,
|
|
11748
11762
|
capabilities: config.threadline?.capabilities,
|
|
11763
|
+
// Secure A2A Verified Pairing (spec §3.10). Live reader so credentialShareEnforced
|
|
11764
|
+
// takes effect without a restart. `enabled` rides the developmentAgent gate when
|
|
11765
|
+
// omitted (dev-live, dark-fleet); when off the inbound gate is a pass-through.
|
|
11766
|
+
getVerifiedPairingConfig: () => {
|
|
11767
|
+
const vp = config.threadline?.verifiedPairing;
|
|
11768
|
+
return {
|
|
11769
|
+
enabled: resolveDevAgentGate(vp?.enabled, config),
|
|
11770
|
+
dryRun: vp?.dryRun ?? true,
|
|
11771
|
+
credentialShareEnforced: vp?.credentialShareEnforced ?? false,
|
|
11772
|
+
};
|
|
11773
|
+
},
|
|
11749
11774
|
});
|
|
11750
11775
|
threadlineHandshake = threadline.handshakeManager;
|
|
11751
11776
|
threadlineShutdown = threadline.shutdown;
|
|
@@ -11763,6 +11788,31 @@ export async function startServer(options) {
|
|
|
11763
11788
|
console.error(`Unified trust system init failed (non-fatal): ${err instanceof Error ? err.message : err}`);
|
|
11764
11789
|
}
|
|
11765
11790
|
}
|
|
11791
|
+
// Secure A2A Verified Pairing §3.8 (FD11) — SEND-SIDE: attach the journal-backed
|
|
11792
|
+
// emitter to the trust manager's pairing-replication hooks so a local markMutualVerified
|
|
11793
|
+
// ALSO replicates the verified-IDENTITY RESULT to the agent's OWN machines, and a
|
|
11794
|
+
// verification-failed propagates a tombstone. The emitter is handed ONLY the 5-field
|
|
11795
|
+
// result (it has NO access to the SAS store), so the SAS / shared secret / relay token
|
|
11796
|
+
// can never cross. Gated on the EXPLICIT `multiMachine.stateSync.threadlinePairing.enabled`
|
|
11797
|
+
// (default false ⇒ NOT attached ⇒ strict no-op, single-machine behavior). Attached only
|
|
11798
|
+
// when the journal-backed emitter exists (journal live) AND the store is enabled.
|
|
11799
|
+
if (threadline.trustManager && replicatedRecordEmitter && cjOwnMachineId) {
|
|
11800
|
+
const pairingStoreEnabled = config.multiMachine?.stateSync
|
|
11801
|
+
?.threadlinePairing?.enabled === true;
|
|
11802
|
+
if (pairingStoreEnabled) {
|
|
11803
|
+
const emitter = replicatedRecordEmitter;
|
|
11804
|
+
const { THREADLINE_PAIRING_STORE_KEY, deriveThreadlinePairingRecordKey, buildThreadlinePairingRecordData, buildThreadlinePairingTombstoneData, } = await import('../core/ThreadlinePairingReplicatedStore.js');
|
|
11805
|
+
threadline.trustManager.setPairingReplicationEmitter({
|
|
11806
|
+
emitVerified: (result) => emitter.emit(THREADLINE_PAIRING_STORE_KEY, deriveThreadlinePairingRecordKey(result.peerFp), (hlc, origin, observed) => buildThreadlinePairingRecordData({
|
|
11807
|
+
result: { ...result, state: 'mutual-verified' },
|
|
11808
|
+
hlc,
|
|
11809
|
+
origin,
|
|
11810
|
+
observed,
|
|
11811
|
+
})),
|
|
11812
|
+
emitRevoke: (peerFp, deletedAt) => emitter.emit(THREADLINE_PAIRING_STORE_KEY, deriveThreadlinePairingRecordKey(peerFp), (hlc, origin, observed) => buildThreadlinePairingTombstoneData({ peerFp, hlc, origin, deletedAt, observed })),
|
|
11813
|
+
}, cjOwnMachineId);
|
|
11814
|
+
}
|
|
11815
|
+
}
|
|
11766
11816
|
if (threadlineRelayClient) {
|
|
11767
11817
|
// Wire relay message delivery through ThreadlineRouter (Phase 1).
|
|
11768
11818
|
// Replaces the ad-hoc handler with proper thread persistence, auto-ack,
|