dsh-interconnect 0.11.23 → 0.13.0
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/README.md +164 -27
- package/assets/dsh-interconnect.md +60 -24
- package/dsh.plugin.json +1 -1
- package/lib/index.js +28 -13
- package/lib/interconnect/index.js +28 -13
- package/lib/interconnect/index.js.map +3 -3
- package/lib/tool-interconnect/index.js +106 -27
- package/lib/tool-interconnect/index.js.map +3 -3
- package/lib/types/interconnect/index.d.ts +32 -6
- package/lib/types/interconnect/index.d.ts.map +1 -1
- package/lib/types/interconnect/types.d.ts +57 -18
- package/lib/types/interconnect/types.d.ts.map +1 -1
- package/lib/types/tool-interconnect/index.d.ts +1 -1
- package/lib/types/tool-interconnect/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
* @module dsh-interconnect
|
|
13
13
|
*/
|
|
14
14
|
import { Context, Service } from '@deepseek-ai/cordis';
|
|
15
|
+
import type { ContextFormed } from '@deepseek-ai/dsh-llm';
|
|
15
16
|
import z from '@deepseek-ai/schemastery';
|
|
16
|
-
import { type Config, type EventNotification, type ListResult, type PingResult, type ReplyRequest, type SendResult, type SendRequest, type SenderIdentity } from './types.ts';
|
|
17
|
+
import { type Config, type EventNotification, type ListResult, type PeerStatus, type PingResult, type ReplyRequest, type SendResult, type SendRequest, type SenderIdentity } from './types.ts';
|
|
17
18
|
export type * from './types.ts';
|
|
18
19
|
/**
|
|
19
20
|
* Credential reference holding the shared auth token. Both halves of a link
|
|
@@ -39,6 +40,21 @@ declare module '@deepseek-ai/cordis' {
|
|
|
39
40
|
'interconnect/event'(notification: EventNotification, peer: string): void;
|
|
40
41
|
}
|
|
41
42
|
}
|
|
43
|
+
declare module '@deepseek-ai/dsh-llm' {
|
|
44
|
+
interface MessageSourceMap {
|
|
45
|
+
/**
|
|
46
|
+
* Attribution of a handoff this plugin delivered. Session format V4 refuses
|
|
47
|
+
* the retired `{ kind: 'plugin', plugin }` wrapper, so the producer kind
|
|
48
|
+
* stands alone: the name is exactly what the harness's V3-to-V4 migration
|
|
49
|
+
* writes for this plugin's already-persisted handoffs (`plugin:` plus the
|
|
50
|
+
* original plugin name), keeping migrated rows and rows written from now on
|
|
51
|
+
* under one producer identity.
|
|
52
|
+
*/
|
|
53
|
+
'plugin:dsh-interconnect': {
|
|
54
|
+
readonly kind: 'plugin:dsh-interconnect';
|
|
55
|
+
} & ContextFormed;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
42
58
|
/**
|
|
43
59
|
* Maximum session rows one `list` answer carries, so a very large live set
|
|
44
60
|
* still answers with a bounded number of targets. A consumer that renders the
|
|
@@ -110,7 +126,7 @@ export declare class InterconnectService extends Service {
|
|
|
110
126
|
* Returns the peer identity when reachable, or undefined when the link is
|
|
111
127
|
* not up or no answer arrives.
|
|
112
128
|
* @param instanceId - the peer's `instanceId` as configured under {@link Config.peers}.
|
|
113
|
-
* @returns the peer's identity, or undefined when
|
|
129
|
+
* @returns the peer's identity, or undefined when there is no usable answer.
|
|
114
130
|
*/
|
|
115
131
|
ping(instanceId: string): Promise<PingResult | undefined>;
|
|
116
132
|
/**
|
|
@@ -120,12 +136,22 @@ export declare class InterconnectService extends Service {
|
|
|
120
136
|
* @returns the peer's live session rows, or undefined on transport failure.
|
|
121
137
|
*/
|
|
122
138
|
list(instanceId: string): Promise<ListResult | undefined>;
|
|
139
|
+
/**
|
|
140
|
+
* The peers this instance configures, each with the current state of the link
|
|
141
|
+
* it dials, in configuration order. This is how a caller tells an id this
|
|
142
|
+
* instance cannot reach at all (`peer-not-configured`) from one whose link is
|
|
143
|
+
* merely down (`unreachable`), which the bare `undefined` of `ping`/`list`
|
|
144
|
+
* cannot express. A configured peer whose link is `down` is still a valid
|
|
145
|
+
* target: its reconnect runs on its own backoff, so it may answer later.
|
|
146
|
+
* @returns one row per configured peer.
|
|
147
|
+
*/
|
|
148
|
+
peers(): readonly PeerStatus[];
|
|
123
149
|
/**
|
|
124
150
|
* Send a `msg` frame over the live link to a peer and resolve with its
|
|
125
|
-
* correlated `msg-result`.
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
151
|
+
* correlated `msg-result`. A `peer-not-configured` result when this instance
|
|
152
|
+
* configures no route for that id, undefined when the route exists but its
|
|
153
|
+
* link is down, and a `message-too-large` result when the encoded frame would
|
|
154
|
+
* not fit the link.
|
|
129
155
|
*/
|
|
130
156
|
private msgRequest;
|
|
131
157
|
/** Send a `query` frame over the live link to a peer and resolve its result. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interconnect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAiB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interconnect/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,20 +83,30 @@ export interface SendPayload {
|
|
|
83
83
|
* - `session-owned-by-subagent` — the session is reserved to subagent routing,
|
|
84
84
|
* so its parent agent owns delivery. Injecting here would race that parent;
|
|
85
85
|
* the sender must reach the child through its parent instead.
|
|
86
|
-
* - `message-too-large` — the encoded frame for this
|
|
87
|
-
* frame cap (1 MiB), so nothing was written and the
|
|
88
|
-
* Retrying the same text cannot succeed; it has to be
|
|
86
|
+
* - `message-too-large` — over a writable link, the encoded frame for this
|
|
87
|
+
* message exceeds the link's frame cap (1 MiB), so nothing was written and the
|
|
88
|
+
* peer link stayed up. Retrying the same text cannot succeed; it has to be
|
|
89
|
+
* shortened. A message that fails the earlier route checks reports
|
|
90
|
+
* `peer-not-configured` or `unreachable` instead, because those precede this
|
|
91
|
+
* one.
|
|
92
|
+
* - `peer-not-configured` — this instance configures no route for that
|
|
93
|
+
* `instanceId`, so no link to it exists and none can be dialed. Retrying can
|
|
94
|
+
* never succeed; the peer has to be added to {@link Config.peers}, which
|
|
95
|
+
* applies when the service is re-activated (the `dsh` launcher's HMR row does
|
|
96
|
+
* that on its own). {@link PeerStatus} rows show which ids this instance does
|
|
97
|
+
* configure.
|
|
89
98
|
* - `no-sender-known` — a `reply` was addressed to a local session that never
|
|
90
99
|
* recorded a sender, either because that session did not receive a message
|
|
91
100
|
* through this service or the incoming message carried no `sender` identity
|
|
92
101
|
* (an older peer omitted it). A caller with no executing session reports it
|
|
93
102
|
* too: there is no local session whose sender could be recalled.
|
|
94
103
|
*
|
|
95
|
-
* `message-too-large` and `no-sender-known` are produced
|
|
96
|
-
* the wire: `msgResultSchema` admits only the reasons a
|
|
97
|
-
* so a caller sees them only from this instance's own
|
|
104
|
+
* `message-too-large`, `peer-not-configured`, and `no-sender-known` are produced
|
|
105
|
+
* locally and never cross the wire: `msgResultSchema` admits only the reasons a
|
|
106
|
+
* receiver can answer with, so a caller sees them only from this instance's own
|
|
107
|
+
* service.
|
|
98
108
|
*/
|
|
99
|
-
export type SendFailure = 'session-not-live' | 'unreachable' | 'resume-refused' | 'resume-failed' | 'session-owned-by-subagent' | 'message-too-large' | 'no-sender-known';
|
|
109
|
+
export type SendFailure = 'session-not-live' | 'unreachable' | 'resume-refused' | 'resume-failed' | 'session-owned-by-subagent' | 'message-too-large' | 'peer-not-configured' | 'no-sender-known';
|
|
100
110
|
/**
|
|
101
111
|
* Business result of a `send` endpoint call: either the target session was
|
|
102
112
|
* reached, with the mode actually used, or it was not, with the reason. The
|
|
@@ -140,9 +150,10 @@ export interface InterconnectSessionSummary {
|
|
|
140
150
|
/** The session id to pass back as `SendPayload.sessionId`. */
|
|
141
151
|
readonly sessionId: string;
|
|
142
152
|
/**
|
|
143
|
-
* The session's title when
|
|
144
|
-
*
|
|
145
|
-
*
|
|
153
|
+
* The session's title when the receiver could supply one. Absent when the
|
|
154
|
+
* projection is missing, the session has no title yet, or the title did not
|
|
155
|
+
* fit the answer's size bound, so an absent title says nothing about whether
|
|
156
|
+
* that session is titled.
|
|
146
157
|
*/
|
|
147
158
|
readonly title?: string;
|
|
148
159
|
/** The agent's current status, so a sender can prefer an idle target. */
|
|
@@ -151,8 +162,10 @@ export interface InterconnectSessionSummary {
|
|
|
151
162
|
/** Business result of a `list` call. */
|
|
152
163
|
export interface ListResult {
|
|
153
164
|
/**
|
|
154
|
-
* Live sessions in registration order
|
|
155
|
-
*
|
|
165
|
+
* Live sessions in registration order. The answer is truncated at 100 rows or
|
|
166
|
+
* when its serialized rows reach the link's frame bound, whichever comes
|
|
167
|
+
* first, so a truncated answer is a prefix of this order rather than a
|
|
168
|
+
* complete set.
|
|
156
169
|
*/
|
|
157
170
|
readonly sessions: readonly InterconnectSessionSummary[];
|
|
158
171
|
/** Echoed receiver instance id (diagnostic; never trusted for routing). */
|
|
@@ -257,9 +270,12 @@ export type LinkFrame = {
|
|
|
257
270
|
readonly result: unknown;
|
|
258
271
|
};
|
|
259
272
|
/**
|
|
260
|
-
* A request/response query carried by `query`/`query-result` frames
|
|
261
|
-
*
|
|
262
|
-
*
|
|
273
|
+
* A request/response query carried by `query`/`query-result` frames over the
|
|
274
|
+
* persistent link. `ping` answers the peer's identity, `list` answers the
|
|
275
|
+
* peer's live session rows, and `event` pushes one lifecycle notification from
|
|
276
|
+
* a peer that delivers events as queries; this instance pushes its own events
|
|
277
|
+
* as `event` frames, so the `event` query is accepted only for peers that use
|
|
278
|
+
* it.
|
|
263
279
|
*/
|
|
264
280
|
export type QueryMessage = {
|
|
265
281
|
readonly kind: 'ping';
|
|
@@ -284,10 +300,29 @@ export type LinkMessage = {
|
|
|
284
300
|
readonly delivery?: DeliveryMode;
|
|
285
301
|
readonly resume?: boolean;
|
|
286
302
|
};
|
|
303
|
+
/** Whether a configured peer's dialed link currently carries frames. */
|
|
304
|
+
export type PeerLinkState = 'up' | 'down';
|
|
305
|
+
/**
|
|
306
|
+
* One configured peer route and its current link state. This is a local
|
|
307
|
+
* diagnostic shape: it never crosses the wire and exists so a caller can tell
|
|
308
|
+
* "this instance does not configure that peer" (`peer-not-configured`) apart
|
|
309
|
+
* from "the peer is configured but answered nothing" (`unreachable`), which a
|
|
310
|
+
* bare `undefined` from `ping`/`list` cannot express.
|
|
311
|
+
*/
|
|
312
|
+
export interface PeerStatus {
|
|
313
|
+
/** The peer's `instanceId` as configured under {@link Config.peers}: a valid target for send/ping/list. */
|
|
314
|
+
readonly instanceId: string;
|
|
315
|
+
/** The origin this instance dials for that peer, as configured. */
|
|
316
|
+
readonly origin: string;
|
|
317
|
+
/** Whether that dialed link is open right now; a closed one re-dials on its own backoff. */
|
|
318
|
+
readonly link: PeerLinkState;
|
|
319
|
+
}
|
|
287
320
|
/** Service config bound by the Composition loader. */
|
|
288
321
|
export interface Config {
|
|
289
322
|
/**
|
|
290
323
|
* Self-reported id of this instance, echoed in ping/send results for diagnostics.
|
|
324
|
+
* At most 256 characters: every frame this instance writes carries it, so a
|
|
325
|
+
* longer id could not fit the link's frame cap.
|
|
291
326
|
* It must be unique across the mesh: an inbound socket announcing an id that an
|
|
292
327
|
* open dialed link already covers is skipped, so two instances sharing one id
|
|
293
328
|
* receive events only over the link this instance dials; with no dialed link
|
|
@@ -312,9 +347,13 @@ export interface Config {
|
|
|
312
347
|
* open dialed link for the id that socket announced. A peer listed under a
|
|
313
348
|
* key other than the id it announces is therefore not recognised as the same
|
|
314
349
|
* peer and receives each event twice; the service warns about that once per
|
|
315
|
-
* link. This map is the whole route surface: only the constructor reads it,
|
|
316
|
-
*
|
|
317
|
-
*
|
|
350
|
+
* link. This map is the whole route surface: only the constructor reads it, so
|
|
351
|
+
* a changed map takes effect when the service is re-activated. Under the
|
|
352
|
+
* `dsh` launcher that happens on its own — the profile HMR row reconciles this
|
|
353
|
+
* row's config and rebuilds its fiber, which re-links the map (measured live:
|
|
354
|
+
* adding a peer starts the dial, removing it stops the dial, and a changed
|
|
355
|
+
* `instanceId` is announced by the next link). Without that row, changing the
|
|
356
|
+
* map means restarting the instance.
|
|
318
357
|
*/
|
|
319
358
|
readonly peers?: Record<string, string>;
|
|
320
359
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interconnect/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE1D;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;IAChC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interconnect/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE1D;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;IAChC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG,aAAa,GAAG,gBAAgB,GAAG,eAAe,GAAG,2BAA2B,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,CAAA;AAEjM;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAClB;IACA,oGAAoG;IACpG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CACjC,GACC;IACA,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAA;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B,CAAA;AAEH,iDAAiD;AACjD,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,0BAA0B,EAAE,CAAA;IACxD,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;IAChC,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;IAChC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAGD,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;IAChC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAClG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACnG;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9H;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,qCAAqC;IACrC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAA;CACzC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAA;CAAE,GACpE;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GAC/E;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACpF;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAChF;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAEvF;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAExE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,MAAM,CAAA;AAEzC;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,2GAA2G;IAC3G,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC7B;AAED,sDAAsD;AACtD,MAAM,WAAW,MAAM;IACrB;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B"}
|
|
@@ -16,7 +16,7 @@ export declare const name = "tool-interconnect";
|
|
|
16
16
|
/** Services required before the tools can register. */
|
|
17
17
|
export declare const inject: string[];
|
|
18
18
|
/**
|
|
19
|
-
* Register the
|
|
19
|
+
* Register the five tool surfaces. Registration is idempotent per fiber; the
|
|
20
20
|
* tools unregister with the owning fiber.
|
|
21
21
|
* @param ctx - connection context carrying the interconnect service and the tool registry.
|
|
22
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tool-interconnect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tool-interconnect/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAO7C,0BAA0B;AAC1B,eAAO,MAAM,IAAI,sBAAsB,CAAA;AAEvC,uDAAuD;AACvD,eAAO,MAAM,MAAM,UAA4B,CAAA;AAiE/C;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAyXxC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-interconnect",
|
|
3
3
|
"description": "Cross-instance message/event handoff plugins for DeepSeek Harness (DSH): interconnect service + model-facing tools + companion skill",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "lib/index.js",
|