@asgard-js/core 0.3.5 → 0.3.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/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +355 -330
- package/dist/index.mjs.map +1 -1
- package/dist/lib/channel.d.ts +8 -0
- package/dist/lib/channel.d.ts.map +1 -1
- package/dist/lib/client.d.ts +3 -2
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/types/client.d.ts +7 -2
- package/dist/types/client.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/lib/channel.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export default class Channel {
|
|
|
19
19
|
readonly channelTitle$: Observable<string | null>;
|
|
20
20
|
private currentUserMessageId?;
|
|
21
21
|
private lastSentMessageId?;
|
|
22
|
+
private currentRun?;
|
|
22
23
|
private constructor();
|
|
23
24
|
/** Current Task Check List snapshot (F-013) — for framework-agnostic `getSnapshot()` bridging. */
|
|
24
25
|
getTasks(): Task[];
|
|
@@ -63,6 +64,13 @@ export default class Channel {
|
|
|
63
64
|
documentNames?: string[];
|
|
64
65
|
}, options?: FetchSseOptions): Promise<void>;
|
|
65
66
|
replyToolCallConsents(toolCallConsents: ToolCallConsentAnswer[], options?: FetchSseOptions, payload?: FetchSsePayload['payload']): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* User-initiated stop-generation: abort the in-flight SSE run (if any) and release the input.
|
|
69
|
+
* Unsubscribing tears down the SSE observable → AbortController.abort() cuts the HTTP stream. The
|
|
70
|
+
* partial assistant message already received stays in the conversation (frozen, not deleted). A no-op
|
|
71
|
+
* when nothing is running.
|
|
72
|
+
*/
|
|
73
|
+
stopGeneration(): void;
|
|
66
74
|
close(): void;
|
|
67
75
|
}
|
|
68
76
|
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/lib/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,UAAU,EAAgB,MAAM,MAAM,CAAC;AAE3G,OAAO,EACL,aAAa,EAEb,eAAe,EACf,eAAe,EAGf,QAAQ,EAER,IAAI,EACJ,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAKlB,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,OAAO,CAAC,MAAM,CAAuB;IAE9B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,kBAAkB,CAAC,CAAe;IAE1C,sGAAsG;IACtG,SAAgB,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,oGAAoG;IACpG,SAAgB,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,0GAA0G;IAC1G,SAAgB,aAAa,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzD,OAAO,CAAC,oBAAoB,CAAC,CAAS;IAKtC,OAAO,CAAC,iBAAiB,CAAC,CAAS;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/lib/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,UAAU,EAAgB,MAAM,MAAM,CAAC;AAE3G,OAAO,EACL,aAAa,EAEb,eAAe,EACf,eAAe,EAGf,QAAQ,EAER,IAAI,EACJ,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAKlB,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,OAAO,CAAC,MAAM,CAAuB;IAE9B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,kBAAkB,CAAC,CAAe;IAE1C,sGAAsG;IACtG,SAAgB,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,oGAAoG;IACpG,SAAgB,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,0GAA0G;IAC1G,SAAgB,aAAa,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzD,OAAO,CAAC,oBAAoB,CAAC,CAAS;IAKtC,OAAO,CAAC,iBAAiB,CAAC,CAAS;IAInC,OAAO,CAAC,UAAU,CAAC,CAAe;IAElC,OAAO;IAwBP,kGAAkG;IAC3F,QAAQ,IAAI,IAAI,EAAE;IAIzB,gGAAgG;IACzF,YAAY,IAAI,QAAQ,EAAE;IAIjC,gGAAgG;IACzF,eAAe,IAAI,MAAM,GAAG,IAAI;IAIvC,kGAAkG;IAC3F,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;WAIpC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;WAOhC,KAAK,CACvB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC,EACnD,OAAO,CAAC,EAAE,eAAe,EACzB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAC5C,OAAO,CAAC,OAAO,CAAC;IAsBnB;;;;;;OAMG;WACiB,OAAO,CACzB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,eAAe,EACzB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAC5C,OAAO,CAAC,OAAO,CAAC;IAqBnB,OAAO,CAAC,SAAS;IAoBjB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAoDxB,OAAO,CAAC,QAAQ;IAOhB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,YAAY;IAab,WAAW,CAChB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG;QACnF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,EACD,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC;IAgCT,qBAAqB,CAC1B,gBAAgB,EAAE,qBAAqB,EAAE,EACzC,OAAO,CAAC,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC;IAgBhB;;;;;OAKG;IACI,cAAc,IAAI,IAAI;IAStB,KAAK,IAAI,IAAI;CASrB"}
|
package/dist/lib/client.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventType } from '../constants/enum';
|
|
2
|
+
import { Subscription } from 'rxjs';
|
|
2
3
|
import { ChannelMetadata, ClientConfig, IAsgardServiceClient, FetchSsePayload, FetchSseOptions, SseResponse, SseEvents, BlobUploadResponse, ChannelHomeDownloadResult } from '../types';
|
|
3
4
|
|
|
4
5
|
export default class AsgardServiceClient implements IAsgardServiceClient {
|
|
@@ -17,13 +18,13 @@ export default class AsgardServiceClient implements IAsgardServiceClient {
|
|
|
17
18
|
constructor(config: ClientConfig);
|
|
18
19
|
on<K extends keyof SseEvents>(event: K, listener: SseEvents[K]): void;
|
|
19
20
|
handleEvent(response: SseResponse<EventType>): void;
|
|
20
|
-
fetchSse(payload: FetchSsePayload, options?: FetchSseOptions):
|
|
21
|
+
fetchSse(payload: FetchSsePayload, options?: FetchSseOptions): Subscription;
|
|
21
22
|
/**
|
|
22
23
|
* Cold-start transcript rejoin (F-014): a `GET /message/sse?custom_channel_id=…` with an empty
|
|
23
24
|
* `Last-Event-ID` replays the collapsed history (`message.user` + self-sufficient `*.complete`),
|
|
24
25
|
* assembled through the same reducer. Reuses the F-002 native Last-Event-ID transport (no re-POST).
|
|
25
26
|
*/
|
|
26
|
-
rejoinSse(customChannelId: string, options?: FetchSseOptions):
|
|
27
|
+
rejoinSse(customChannelId: string, options?: FetchSseOptions): Subscription;
|
|
27
28
|
private deriveChannelMetadataEndpoint;
|
|
28
29
|
/**
|
|
29
30
|
* Join-init existence + restore gate (F-015): `GET {base}/channel/metadata?custom_channel_id=…`.
|
package/dist/lib/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAuD,YAAY,EAAa,MAAM,MAAM,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,oBAAoB;IACtE,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAC,CAAgC;IACpD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,mBAAmB,CAAC,CAAgD;IAC5E,OAAO,CAAC,aAAa,CAAC,CAAyB;gBAEnC,MAAM,EAAE,YAAY;IAkChC,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAKrE,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI;IA0CnD,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,YAAY;IAgB3E;;;;OAIG;IACH,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,YAAY;IAmB3E,OAAO,CAAC,6BAA6B;IAMrC;;;;;OAKG;IACG,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAqC/E,OAAO,CAAC,MAAM;IA8Bd;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAc5C,OAAO,CAAC,YAAY;IAUpB,KAAK,IAAI,IAAI;IAcb;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4ClF;;;OAGG;IACG,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA6ChH;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;OAGG;IACH,OAAO,CAAC,eAAe;CAexB"}
|
package/dist/types/client.d.ts
CHANGED
|
@@ -3,15 +3,20 @@ import { EventHandler } from './event-emitter';
|
|
|
3
3
|
import { ChannelMetadata } from './channel';
|
|
4
4
|
import { SseResponse, ToolCallConsentAnswer } from './sse-response';
|
|
5
5
|
import { EventType, FetchSseAction } from '../constants/enum';
|
|
6
|
+
import { Subscription } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
export interface ChannelHomeDownloadResult {
|
|
8
9
|
blob: Blob;
|
|
9
10
|
filename: string;
|
|
10
11
|
}
|
|
11
12
|
export interface IAsgardServiceClient {
|
|
12
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Start an SSE run. Returns the run's `Subscription`; unsubscribing it aborts the in-flight
|
|
15
|
+
* connection (used by user-initiated stop-generation). Callers that don't need to abort may ignore it.
|
|
16
|
+
*/
|
|
17
|
+
fetchSse(payload: FetchSsePayload, options?: FetchSseOptions): Subscription;
|
|
13
18
|
/** Cold-start transcript rejoin via GET /message/sse (F-014). Optional for backward compatibility. */
|
|
14
|
-
rejoinSse?(customChannelId: string, options?: FetchSseOptions):
|
|
19
|
+
rejoinSse?(customChannelId: string, options?: FetchSseOptions): Subscription;
|
|
15
20
|
/**
|
|
16
21
|
* Join-init existence + restore gate via `GET /channel/metadata` (F-015). Resolves to the metadata on
|
|
17
22
|
* `200`, `null` on `404` (channel does not exist), and rejects on any other error. Optional for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"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"}
|