dsh-input-assistant 0.0.0-stage → 0.1.3

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.
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ export declare const rpcPayloadSchema: z.ZodObject<{
3
+ method: z.ZodEnum<{
4
+ status: "status";
5
+ generate: "generate";
6
+ cancel: "cancel";
7
+ "drafts/list": "drafts/list";
8
+ "drafts/save": "drafts/save";
9
+ "drafts/delete": "drafts/delete";
10
+ "drafts/clear": "drafts/clear";
11
+ "settings/get": "settings/get";
12
+ "settings/set": "settings/set";
13
+ }>;
14
+ data: z.ZodJSONSchema;
15
+ }, z.core.$strict>;
16
+ export type RpcPayload = z.infer<typeof rpcPayloadSchema>;
17
+ /** Explicit strict codecs let the normal Gateway route our private method. */
18
+ export declare const remoteInfo: import("@deepseek-ai/dsh-typert-protocol").TypertRemoteInfo<Readonly<Record<string, import("@deepseek-ai/dsh-typert-protocol").TypertRemoteMethod<object, unknown, "unary", never, unknown> | import("@deepseek-ai/dsh-typert-protocol").TypertRemoteMethod<object, unknown, "stream", unknown, unknown>>>>;
19
+ export declare const hostContribution: {
20
+ package: string;
21
+ face: "host";
22
+ schemas: never[];
23
+ model: {
24
+ services: never[];
25
+ events: never[];
26
+ objects: never[];
27
+ };
28
+ invocations: readonly import("@deepseek-ai/dsh-typert-protocol").InvocationDescriptor[];
29
+ };
@@ -0,0 +1,26 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import { Session } from '@deepseek-ai/dsh-session';
3
+ import { type AssistantStatus, type GenerationResult } from '../core/index';
4
+ import { AssistantStorage } from './storage';
5
+ import type { RpcPayload } from './rpc';
6
+ export declare class AssistantHostRuntime {
7
+ private readonly ctx;
8
+ private readonly storage;
9
+ private readonly mount;
10
+ private readonly instances;
11
+ private readonly scheduler;
12
+ private disposed;
13
+ constructor(ctx: Context, storage: AssistantStorage);
14
+ private state;
15
+ private session;
16
+ private transcript;
17
+ private sessionRoute;
18
+ status(id: string, signal: AbortSignal): Promise<AssistantStatus>;
19
+ private result;
20
+ private current;
21
+ generate(input: unknown, signal: AbortSignal): Promise<GenerationResult>;
22
+ cancel(id: string, requestId?: string): boolean;
23
+ changed(session: Session): void;
24
+ dispose(): void;
25
+ invoke(payload: RpcPayload, signal: AbortSignal): Promise<unknown>;
26
+ }
@@ -0,0 +1,54 @@
1
+ import { z } from 'zod';
2
+ import { type Domain } from '@deepseek-ai/dsh-storage-domain';
3
+ import { type AssistantConfig, type StoredDraft } from '../core/types';
4
+ export declare function createDomainSpec(initial: AssistantConfig): {
5
+ name: string;
6
+ version: number;
7
+ layout: "per-record";
8
+ global: {
9
+ schema: z.ZodObject<{
10
+ version: z.ZodLiteral<1>;
11
+ settings: z.ZodRecord<z.ZodString, z.ZodUnknown>;
12
+ }, z.core.$strip>;
13
+ initial: {
14
+ version: 1;
15
+ settings: {
16
+ optimizeEnabled: boolean;
17
+ stashEnabled: boolean;
18
+ optimizationStrength: import("../core").OptimizationStrength;
19
+ nextEnabled: boolean;
20
+ completionEnabled: boolean;
21
+ displayMode: "ghost" | "panel";
22
+ debounceMs: number;
23
+ minIntervalMs: number;
24
+ maxHistoryChars: number;
25
+ maxDraftChars: number;
26
+ maxNextChars: number;
27
+ maxCompletionChars: number;
28
+ optimizeTimeoutMs: number;
29
+ suggestionTimeoutMs: number;
30
+ provider: string;
31
+ model: string;
32
+ };
33
+ };
34
+ };
35
+ tables: {
36
+ drafts: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, {
37
+ version: 1;
38
+ drafts: StoredDraft[];
39
+ }>;
40
+ };
41
+ };
42
+ export type AssistantDomain = Domain<ReturnType<typeof createDomainSpec>>;
43
+ /** Serializes read-modify-write operations, including the very first save. */
44
+ export declare class AssistantStorage {
45
+ private readonly domain;
46
+ private chain;
47
+ constructor(domain: () => Promise<AssistantDomain>);
48
+ private transaction;
49
+ settings(): Promise<AssistantConfig>;
50
+ updateSettings(patch: Partial<AssistantConfig>): Promise<AssistantConfig>;
51
+ list(sessionId: string): Promise<StoredDraft[]>;
52
+ save(sessionId: string, text: string, replaceId?: string): Promise<StoredDraft[]>;
53
+ delete(sessionId: string, id?: string): Promise<StoredDraft[]>;
54
+ }
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import type { SessionEvent } from '@deepseek-ai/dsh-session';
3
+ import type { HistoryMessage } from '../core/types';
4
+ /** Host-only projection: never adds records or messages to the user's session. */
5
+ export interface TranscriptState {
6
+ entries: HistoryMessage[];
7
+ currentTurn: number;
8
+ sourceTurnId: string | null;
9
+ running: boolean;
10
+ pendingAssistant: string | null;
11
+ }
12
+ declare module '@deepseek-ai/dsh-session-projection/types' {
13
+ interface SessionProjectionStateMap {
14
+ inputAssistantTranscript: TranscriptState;
15
+ }
16
+ }
17
+ export declare const transcriptSchema: z.ZodType<TranscriptState>;
18
+ export declare function emptyTranscript(): TranscriptState;
19
+ export declare function foldTranscript(state: TranscriptState, event: SessionEvent): TranscriptState;
package/lib/index.d.ts ADDED
@@ -0,0 +1,64 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import schema from '@deepseek-ai/schemastery';
3
+ import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
4
+ import { type AssistantConfig } from './core/index';
5
+ import { AssistantHostRuntime } from './host/runtime';
6
+ import { type RpcPayload } from './host/rpc';
7
+ export type Config = Partial<AssistantConfig>;
8
+ export declare const name = "input-assistant";
9
+ export declare const inject: string[];
10
+ export declare const Config: schema<Schemastery.ObjectS<NoInfer<{
11
+ optimizeEnabled: schema<boolean, boolean, "defined">;
12
+ stashEnabled: schema<boolean, boolean, "defined">;
13
+ optimizationStrength: schema<"light" | "standard" | "deep", "light" | "standard" | "deep", "defined">;
14
+ nextEnabled: schema<boolean, boolean, "defined">;
15
+ completionEnabled: schema<boolean, boolean, "defined">;
16
+ displayMode: schema<"ghost" | "panel", "ghost" | "panel", "defined">;
17
+ debounceMs: schema<number, number, "defined">;
18
+ minIntervalMs: schema<number, number, "defined">;
19
+ maxHistoryChars: schema<number, number, "defined">;
20
+ maxDraftChars: schema<number, number, "defined">;
21
+ maxNextChars: schema<number, number, "defined">;
22
+ maxCompletionChars: schema<number, number, "defined">;
23
+ optimizeTimeoutMs: schema<number, number, "defined">;
24
+ suggestionTimeoutMs: schema<number, number, "defined">;
25
+ provider: schema<string, string, "defined">;
26
+ model: schema<string, string, "defined">;
27
+ }>>, Schemastery.ObjectT<NoInfer<{
28
+ optimizeEnabled: schema<boolean, boolean, "defined">;
29
+ stashEnabled: schema<boolean, boolean, "defined">;
30
+ optimizationStrength: schema<"light" | "standard" | "deep", "light" | "standard" | "deep", "defined">;
31
+ nextEnabled: schema<boolean, boolean, "defined">;
32
+ completionEnabled: schema<boolean, boolean, "defined">;
33
+ displayMode: schema<"ghost" | "panel", "ghost" | "panel", "defined">;
34
+ debounceMs: schema<number, number, "defined">;
35
+ minIntervalMs: schema<number, number, "defined">;
36
+ maxHistoryChars: schema<number, number, "defined">;
37
+ maxDraftChars: schema<number, number, "defined">;
38
+ maxNextChars: schema<number, number, "defined">;
39
+ maxCompletionChars: schema<number, number, "defined">;
40
+ optimizeTimeoutMs: schema<number, number, "defined">;
41
+ suggestionTimeoutMs: schema<number, number, "defined">;
42
+ provider: schema<string, string, "defined">;
43
+ model: schema<string, string, "defined">;
44
+ }>>, "plain">;
45
+ declare module '@deepseek-ai/cordis' {
46
+ interface Context {
47
+ inputAssistant: InputAssistantService;
48
+ }
49
+ }
50
+ declare module '@deepseek-ai/dsh-typert-protocol' {
51
+ interface RemoteErrorDetailsMap {
52
+ 'input-assistant/error': {
53
+ code: string;
54
+ };
55
+ 'input-assistant/forbidden': Record<string, never>;
56
+ }
57
+ }
58
+ /** One strictly described Remote endpoint; the standard Gateway owns transport. */
59
+ export declare class InputAssistantService extends TypertRemoteService {
60
+ private readonly runtime;
61
+ constructor(ctx: Context, runtime: AssistantHostRuntime);
62
+ call(payload: RpcPayload, signal: AbortSignal): Promise<unknown>;
63
+ }
64
+ export declare function apply(ctx: Context, config?: Config): void;