@klarkxy/dsh-mood 0.1.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.
@@ -0,0 +1,91 @@
1
+ import { AiFeatureScope, EvidenceRef, ProducerMessageSource, RpcResult, TaskContract, projectIdFromCwd } from "@klarkxy/dsh-ai-services/contracts";
2
+ //#region src/contracts.d.ts
3
+ /** Frozen shared chat-events seat. Must stay equal to @klarkxy/dsh-ai-services CHAT_EVENTS_SLOT. */
4
+ declare const CHAT_EVENTS_SLOT = "dsh-editor.chat.events";
5
+ declare const MOOD_PLUGIN = "@klarkxy/dsh-mood";
6
+ declare const MOOD_SOURCE_KIND: "plugin:@klarkxy/dsh-mood";
7
+ /** Production activate identity after scoped pluginName support. */
8
+ declare const MOOD_AI_PLUGIN = "@klarkxy/dsh-mood";
9
+ declare const MOOD_RPC_CHANNEL = "/dsh-mood";
10
+ declare const MOOD_ANALYZE_PURPOSE = "mood.analyze";
11
+ declare const CONTRACT_SECTION = "dsh-mood:contract";
12
+ declare const PROMPT_VERSION = "mood.analyze.v1";
13
+ declare const SCHEMA_VERSION = "mood-contract.v1";
14
+ declare const MAX_QUESTIONS = 3;
15
+ declare const MAX_EXCERPT_CHARS = 200;
16
+ declare const MAX_PROJECT_ID_CHARS = 32768;
17
+ declare const DEFAULT_QUESTION = "这次要改哪些内容,做到什么程度算完成?";
18
+ type MoodMode = 'auto' | 'manual' | 'strict';
19
+ type ClarificationStatus = 'pending' | 'answered' | 'skipped' | 'cancelled' | 'stale';
20
+ type MoodLocale = 'zh' | 'en';
21
+ interface MoodSettings {
22
+ revision: number;
23
+ mode: MoodMode;
24
+ }
25
+ declare const defaultSettings: () => MoodSettings;
26
+ interface ClarificationItem {
27
+ id: string;
28
+ question: string;
29
+ status: ClarificationStatus;
30
+ answer?: string;
31
+ }
32
+ interface HeldRequest {
33
+ sourceVersion: string;
34
+ trigger: 'material' | 'risk' | 'mild' | 'clear';
35
+ messages: unknown[];
36
+ }
37
+ interface MoodSessionView {
38
+ sessionId: string;
39
+ projectId?: string;
40
+ contract?: TaskContract;
41
+ clarification: ClarificationItem[];
42
+ pendingManual: boolean;
43
+ held: boolean;
44
+ }
45
+ interface MoodStatus {
46
+ settings: MoodSettings;
47
+ storageFailed: boolean;
48
+ session?: MoodSessionView;
49
+ }
50
+ /** Native `@deepseek-ai/dsh-user-questions` AskUserQuestionItem. */
51
+ interface AskUserQuestionOption {
52
+ label: string;
53
+ description?: string;
54
+ }
55
+ interface AskUserQuestionItem {
56
+ id: string;
57
+ question: string;
58
+ detail?: string;
59
+ header?: string;
60
+ options?: AskUserQuestionOption[];
61
+ multiSelect?: boolean;
62
+ }
63
+ interface AskUserQuestionAnswerItem {
64
+ id: string;
65
+ selected: string[];
66
+ custom?: string;
67
+ }
68
+ interface AskUserQuestionAnswer {
69
+ answers: AskUserQuestionAnswerItem[];
70
+ }
71
+ interface AskUserRequest {
72
+ questions: AskUserQuestionItem[];
73
+ agent?: unknown;
74
+ signal?: AbortSignal;
75
+ }
76
+ declare function ok<T>(value: T): RpcResult<T>;
77
+ declare function fail(code: string, message: string): RpcResult<never>;
78
+ declare function isMoodMode(value: unknown): value is MoodMode;
79
+ declare function parseSessionId(payload: unknown): string | undefined;
80
+ declare function excerptOf(text: string, limit?: number): string;
81
+ declare function sessionIdOf(agent: {
82
+ id?: unknown;
83
+ session?: {
84
+ id?: unknown;
85
+ };
86
+ } | undefined): string;
87
+ declare function cloneContract(contract: TaskContract): TaskContract;
88
+ declare function readinessLabel(readiness: TaskContract['readiness']): string;
89
+ //#endregion
90
+ export { type AiFeatureScope, AskUserQuestionAnswer, AskUserQuestionAnswerItem, AskUserQuestionItem, AskUserQuestionOption, AskUserRequest, CHAT_EVENTS_SLOT, CONTRACT_SECTION, ClarificationItem, ClarificationStatus, DEFAULT_QUESTION, type EvidenceRef, HeldRequest, MAX_EXCERPT_CHARS, MAX_PROJECT_ID_CHARS, MAX_QUESTIONS, MOOD_AI_PLUGIN, MOOD_ANALYZE_PURPOSE, MOOD_PLUGIN, MOOD_RPC_CHANNEL, MOOD_SOURCE_KIND, MoodLocale, MoodMode, MoodSessionView, MoodSettings, MoodStatus, PROMPT_VERSION, type ProducerMessageSource, type RpcResult, SCHEMA_VERSION, type TaskContract, cloneContract, defaultSettings, excerptOf, fail, isMoodMode, ok, parseSessionId, projectIdFromCwd, readinessLabel, sessionIdOf };
91
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1,70 @@
1
+ import { projectIdFromCwd } from "@klarkxy/dsh-ai-services/contracts";
2
+ //#region src/contracts.ts
3
+ /** Frozen shared chat-events seat. Must stay equal to @klarkxy/dsh-ai-services CHAT_EVENTS_SLOT. */
4
+ const CHAT_EVENTS_SLOT = "dsh-editor.chat.events";
5
+ const MOOD_PLUGIN = "@klarkxy/dsh-mood";
6
+ const MOOD_SOURCE_KIND = "plugin:@klarkxy/dsh-mood";
7
+ /** Production activate identity after scoped pluginName support. */
8
+ const MOOD_AI_PLUGIN = MOOD_PLUGIN;
9
+ const MOOD_RPC_CHANNEL = "/dsh-mood";
10
+ const MOOD_ANALYZE_PURPOSE = "mood.analyze";
11
+ const CONTRACT_SECTION = "dsh-mood:contract";
12
+ const PROMPT_VERSION = "mood.analyze.v1";
13
+ const SCHEMA_VERSION = "mood-contract.v1";
14
+ const MAX_QUESTIONS = 3;
15
+ const MAX_EXCERPT_CHARS = 200;
16
+ const MAX_PROJECT_ID_CHARS = 32768;
17
+ const DEFAULT_QUESTION = "这次要改哪些内容,做到什么程度算完成?";
18
+ const defaultSettings = () => ({
19
+ revision: 0,
20
+ mode: "auto"
21
+ });
22
+ function ok(value) {
23
+ return {
24
+ ok: true,
25
+ value
26
+ };
27
+ }
28
+ function fail(code, message) {
29
+ return {
30
+ ok: false,
31
+ error: {
32
+ code,
33
+ message
34
+ }
35
+ };
36
+ }
37
+ function isMoodMode(value) {
38
+ return value === "auto" || value === "manual" || value === "strict";
39
+ }
40
+ function parseSessionId(payload) {
41
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) return void 0;
42
+ const sessionId = payload.sessionId;
43
+ return typeof sessionId === "string" && sessionId.length > 0 && sessionId.length <= 200 ? sessionId : void 0;
44
+ }
45
+ function excerptOf(text, limit = 200) {
46
+ const trimmed = text.replace(/\s+/g, " ").trim();
47
+ if (!trimmed) return "";
48
+ return trimmed.length <= limit ? trimmed : `${trimmed.slice(0, limit - 1)}…`;
49
+ }
50
+ function sessionIdOf(agent) {
51
+ const fromSession = agent?.session?.id;
52
+ if (fromSession != null && String(fromSession).length > 0) return String(fromSession);
53
+ if (agent?.id != null && String(agent.id).length > 0) return String(agent.id);
54
+ return "";
55
+ }
56
+ function cloneContract(contract) {
57
+ return structuredClone(contract);
58
+ }
59
+ function readinessLabel(readiness) {
60
+ if (readiness === "clear-request") return "表述清楚";
61
+ if (readiness === "user-confirmed") return "作者已确认";
62
+ if (readiness === "disclosed-assumptions") return "按已披露假定继续";
63
+ if (readiness === "cancelled") return "已取消,未确认";
64
+ if (readiness === "stale") return "已过期";
65
+ return "待确认";
66
+ }
67
+ //#endregion
68
+ export { CHAT_EVENTS_SLOT, CONTRACT_SECTION, DEFAULT_QUESTION, MAX_EXCERPT_CHARS, MAX_PROJECT_ID_CHARS, MAX_QUESTIONS, MOOD_AI_PLUGIN, MOOD_ANALYZE_PURPOSE, MOOD_PLUGIN, MOOD_RPC_CHANNEL, MOOD_SOURCE_KIND, PROMPT_VERSION, SCHEMA_VERSION, cloneContract, defaultSettings, excerptOf, fail, isMoodMode, ok, parseSessionId, projectIdFromCwd, readinessLabel, sessionIdOf };
69
+
70
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","names":[],"sources":["../src/contracts.ts"],"sourcesContent":["/** Browser-safe Mood contracts. Shared TaskContract fields match frozen @klarkxy/dsh-ai-services. */\nimport type { AiFeatureScope, EvidenceRef, ProducerMessageSource, RpcResult, TaskContract } from '@klarkxy/dsh-ai-services/contracts'\n\nexport type { AiFeatureScope, EvidenceRef, ProducerMessageSource, RpcResult, TaskContract }\nexport { projectIdFromCwd } from '@klarkxy/dsh-ai-services/contracts'\n\n/** Frozen shared chat-events seat. Must stay equal to @klarkxy/dsh-ai-services CHAT_EVENTS_SLOT. */\nexport const CHAT_EVENTS_SLOT = 'dsh-editor.chat.events'\nexport const MOOD_PLUGIN = '@klarkxy/dsh-mood'\nexport const MOOD_SOURCE_KIND = 'plugin:@klarkxy/dsh-mood' as const\n/** Production activate identity after scoped pluginName support. */\nexport const MOOD_AI_PLUGIN = MOOD_PLUGIN\nexport const MOOD_RPC_CHANNEL = '/dsh-mood'\nexport const MOOD_ANALYZE_PURPOSE = 'mood.analyze'\nexport const CONTRACT_SECTION = 'dsh-mood:contract'\nexport const PROMPT_VERSION = 'mood.analyze.v1'\nexport const SCHEMA_VERSION = 'mood-contract.v1'\nexport const MAX_QUESTIONS = 3\nexport const MAX_EXCERPT_CHARS = 200\nexport const MAX_PROJECT_ID_CHARS = 32_768\nexport const DEFAULT_QUESTION = '这次要改哪些内容,做到什么程度算完成?'\n\nexport type MoodMode = 'auto' | 'manual' | 'strict'\nexport type ClarificationStatus = 'pending' | 'answered' | 'skipped' | 'cancelled' | 'stale'\nexport type MoodLocale = 'zh' | 'en'\n\nexport interface MoodSettings {\n revision: number\n mode: MoodMode\n}\n\nexport const defaultSettings = (): MoodSettings => ({ revision: 0, mode: 'auto' })\n\nexport interface ClarificationItem {\n id: string\n question: string\n status: ClarificationStatus\n answer?: string\n}\n\nexport interface HeldRequest {\n sourceVersion: string\n trigger: 'material' | 'risk' | 'mild' | 'clear'\n messages: unknown[]\n}\n\nexport interface MoodSessionView {\n sessionId: string\n projectId?: string\n contract?: TaskContract\n clarification: ClarificationItem[]\n pendingManual: boolean\n held: boolean\n}\n\nexport interface MoodStatus {\n settings: MoodSettings\n storageFailed: boolean\n session?: MoodSessionView\n}\n\n/** Native `@deepseek-ai/dsh-user-questions` AskUserQuestionItem. */\nexport interface AskUserQuestionOption {\n label: string\n description?: string\n}\n\nexport interface AskUserQuestionItem {\n id: string\n question: string\n detail?: string\n header?: string\n options?: AskUserQuestionOption[]\n multiSelect?: boolean\n}\n\nexport interface AskUserQuestionAnswerItem {\n id: string\n selected: string[]\n custom?: string\n}\n\nexport interface AskUserQuestionAnswer {\n answers: AskUserQuestionAnswerItem[]\n}\n\nexport interface AskUserRequest {\n questions: AskUserQuestionItem[]\n agent?: unknown\n signal?: AbortSignal\n}\n\nexport function ok<T>(value: T): RpcResult<T> {\n return { ok: true, value }\n}\n\nexport function fail(code: string, message: string): RpcResult<never> {\n return { ok: false, error: { code, message } }\n}\n\nexport function isMoodMode(value: unknown): value is MoodMode {\n return value === 'auto' || value === 'manual' || value === 'strict'\n}\n\nexport function parseSessionId(payload: unknown): string | undefined {\n if (!payload || typeof payload !== 'object' || Array.isArray(payload)) return undefined\n const sessionId = (payload as { sessionId?: unknown }).sessionId\n return typeof sessionId === 'string' && sessionId.length > 0 && sessionId.length <= 200 ? sessionId : undefined\n}\n\nexport function excerptOf(text: string, limit = MAX_EXCERPT_CHARS): string {\n const trimmed = text.replace(/\\s+/g, ' ').trim()\n if (!trimmed) return ''\n return trimmed.length <= limit ? trimmed : `${trimmed.slice(0, limit - 1)}…`\n}\n\nexport function sessionIdOf(agent: { id?: unknown; session?: { id?: unknown } } | undefined): string {\n const fromSession = agent?.session?.id\n if (fromSession != null && String(fromSession).length > 0) return String(fromSession)\n if (agent?.id != null && String(agent.id).length > 0) return String(agent.id)\n return ''\n}\n\nexport function cloneContract(contract: TaskContract): TaskContract {\n return structuredClone(contract)\n}\n\nexport function readinessLabel(readiness: TaskContract['readiness']): string {\n if (readiness === 'clear-request') return '表述清楚'\n if (readiness === 'user-confirmed') return '作者已确认'\n if (readiness === 'disclosed-assumptions') return '按已披露假定继续'\n if (readiness === 'cancelled') return '已取消,未确认'\n if (readiness === 'stale') return '已过期'\n return '待确认'\n}\n"],"mappings":";;;AAOA,MAAa,mBAAmB;AAChC,MAAa,cAAc;AAC3B,MAAa,mBAAmB;;AAEhC,MAAa,iBAAiB;AAC9B,MAAa,mBAAmB;AAChC,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,iBAAiB;AAC9B,MAAa,iBAAiB;AAC9B,MAAa,gBAAgB;AAC7B,MAAa,oBAAoB;AACjC,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAWhC,MAAa,yBAAuC;CAAE,UAAU;CAAG,MAAM;AAAO;AA6DhF,SAAgB,GAAM,OAAwB;CAC5C,OAAO;EAAE,IAAI;EAAM;CAAM;AAC3B;AAEA,SAAgB,KAAK,MAAc,SAAmC;CACpE,OAAO;EAAE,IAAI;EAAO,OAAO;GAAE;GAAM;EAAQ;CAAE;AAC/C;AAEA,SAAgB,WAAW,OAAmC;CAC5D,OAAO,UAAU,UAAU,UAAU,YAAY,UAAU;AAC7D;AAEA,SAAgB,eAAe,SAAsC;CACnE,IAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG,OAAO,KAAA;CAC9E,MAAM,YAAa,QAAoC;CACvD,OAAO,OAAO,cAAc,YAAY,UAAU,SAAS,KAAK,UAAU,UAAU,MAAM,YAAY,KAAA;AACxG;AAEA,SAAgB,UAAU,MAAc,QAAA,KAAmC;CACzE,MAAM,UAAU,KAAK,QAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK;CAC/C,IAAI,CAAC,SAAS,OAAO;CACrB,OAAO,QAAQ,UAAU,QAAQ,UAAU,GAAG,QAAQ,MAAM,GAAG,QAAQ,CAAC,EAAE;AAC5E;AAEA,SAAgB,YAAY,OAAyE;CACnG,MAAM,cAAc,OAAO,SAAS;CACpC,IAAI,eAAe,QAAQ,OAAO,WAAW,CAAC,CAAC,SAAS,GAAG,OAAO,OAAO,WAAW;CACpF,IAAI,OAAO,MAAM,QAAQ,OAAO,MAAM,EAAE,CAAC,CAAC,SAAS,GAAG,OAAO,OAAO,MAAM,EAAE;CAC5E,OAAO;AACT;AAEA,SAAgB,cAAc,UAAsC;CAClE,OAAO,gBAAgB,QAAQ;AACjC;AAEA,SAAgB,eAAe,WAA8C;CAC3E,IAAI,cAAc,iBAAiB,OAAO;CAC1C,IAAI,cAAc,kBAAkB,OAAO;CAC3C,IAAI,cAAc,yBAAyB,OAAO;CAClD,IAAI,cAAc,aAAa,OAAO;CACtC,IAAI,cAAc,SAAS,OAAO;CAClC,OAAO;AACT"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,173 @@
1
+ import { AskUserQuestionAnswer, AskUserRequest, CHAT_EVENTS_SLOT, ClarificationItem, HeldRequest, MOOD_AI_PLUGIN, MOOD_PLUGIN, MOOD_RPC_CHANNEL, MoodSettings, MoodStatus, defaultSettings, projectIdFromCwd } from "./contracts.js";
2
+ import { AiFeatureScope, RpcResult, TaskContract } from "@klarkxy/dsh-ai-services/contracts";
3
+ import { z } from "zod";
4
+ import { Context } from "@deepseek-ai/cordis";
5
+ //#region src/evidence.d.ts
6
+ interface ContentBlockLike {
7
+ type?: string;
8
+ text?: string;
9
+ }
10
+ interface MessageSourceLike {
11
+ kind?: string;
12
+ plugin?: string;
13
+ form?: string;
14
+ sections?: Array<{
15
+ name?: string;
16
+ }>;
17
+ }
18
+ interface UserMessageLike {
19
+ id?: unknown;
20
+ role?: string;
21
+ content?: ContentBlockLike[];
22
+ source?: MessageSourceLike;
23
+ }
24
+ interface SessionEventLike {
25
+ seq: number;
26
+ type: string;
27
+ data?: unknown;
28
+ }
29
+ //#endregion
30
+ //#region src/service.d.ts
31
+ interface MoodPersistedState {
32
+ settings: MoodSettings;
33
+ sessions: Record<string, MoodStoredSession>;
34
+ }
35
+ interface MoodStoredSession {
36
+ contract?: TaskContract;
37
+ clarification: ClarificationItem[];
38
+ lastHandledVersion?: string;
39
+ pendingManual: boolean;
40
+ projectId?: string;
41
+ heldRequest?: HeldRequest;
42
+ }
43
+ interface MoodStore {
44
+ load(): MoodPersistedState;
45
+ save(state: MoodPersistedState): Promise<void>;
46
+ }
47
+ interface SessionLike {
48
+ id?: unknown;
49
+ header?: {
50
+ cwd?: string;
51
+ };
52
+ meta?: {
53
+ cwd?: string;
54
+ };
55
+ }
56
+ interface PreStepPayload {
57
+ agent: {
58
+ id?: unknown;
59
+ session?: SessionLike;
60
+ };
61
+ messages: UserMessageLike[];
62
+ turn: number;
63
+ step: number;
64
+ signal: AbortSignal;
65
+ }
66
+ type PreStepDecision = {
67
+ kind: 'reject';
68
+ } | {
69
+ kind: 'enter';
70
+ messages: unknown[];
71
+ startsRequestSeries?: true;
72
+ };
73
+ interface MoodServiceOptions {
74
+ store?: MoodStore;
75
+ now?: () => number;
76
+ id?: () => string;
77
+ readEvents: (sessionId: string) => readonly SessionEventLike[] | undefined;
78
+ liveSession?: (sessionId: string) => SessionLike | undefined;
79
+ activateAi?: () => AiFeatureScope | undefined;
80
+ askUser?: (request: AskUserRequest) => Promise<AskUserQuestionAnswer>;
81
+ createInjectMessage?: (text: string) => unknown;
82
+ resumeHeld?: (sessionId: string, messages: unknown[]) => Promise<void>;
83
+ }
84
+ declare class MoodService {
85
+ private readonly options;
86
+ private settings;
87
+ private sessions;
88
+ private storageFailed;
89
+ private active;
90
+ private ai?;
91
+ private unregisterPurpose?;
92
+ private pending;
93
+ private readonly now;
94
+ private readonly nextId;
95
+ constructor(options: MoodServiceOptions);
96
+ getContract(sessionId: string): TaskContract | undefined;
97
+ status(sessionId?: string): MoodStatus;
98
+ isActive(): boolean;
99
+ dispose(): Promise<void>;
100
+ call(endpoint: string, payload: unknown, signal: AbortSignal): Promise<RpcResult>;
101
+ handlePreStep(payload: PreStepPayload, next: () => Promise<PreStepDecision>): Promise<PreStepDecision>;
102
+ private runAnalysis;
103
+ private askOnce;
104
+ private afterStale;
105
+ private enter;
106
+ private blockUnresolved;
107
+ private updateMode;
108
+ private requestManual;
109
+ private requestRetry;
110
+ private resumeExact;
111
+ private editContract;
112
+ private hostSessionId;
113
+ private ensure;
114
+ private view;
115
+ private isBlocked;
116
+ private commitIfCurrent;
117
+ private supersedeIfNew;
118
+ private supersede;
119
+ private replaceWork;
120
+ private generationCurrent;
121
+ private snapshot;
122
+ private commitState;
123
+ private persistProposed;
124
+ private assertLive;
125
+ private serialize;
126
+ private syncAi;
127
+ private detachAi;
128
+ }
129
+ //#endregion
130
+ //#region src/inject.d.ts
131
+ declare function createMoodContextMessage(text: string): unknown;
132
+ //#endregion
133
+ //#region src/storage.d.ts
134
+ declare const moodDomain: {
135
+ name: string;
136
+ version: number;
137
+ tables: {
138
+ state: import("@deepseek-ai/dsh-storage-domain").DomainTableSpec<string, MoodPersistedState>;
139
+ };
140
+ };
141
+ type MoodDomainHandle = {
142
+ table(name: 'state'): {
143
+ get(key: string): unknown;
144
+ put(key: string, value: unknown): Promise<void>;
145
+ delete(key: string): Promise<boolean>;
146
+ entries(): IterableIterator<[string, unknown]>;
147
+ };
148
+ close(): Promise<void>;
149
+ };
150
+ declare function domainStore(domain: MoodDomainHandle): MoodStore;
151
+ //#endregion
152
+ //#region src/index.d.ts
153
+ declare const name = "@klarkxy/dsh-mood";
154
+ declare const inject: readonly ["aiServices", "storageDomain", "sessions", "userQuestions", "agents", "connection", "webServer"];
155
+ declare module '@deepseek-ai/cordis' {
156
+ interface Context {
157
+ aiMood: MoodService;
158
+ }
159
+ }
160
+ type LiveAgent = {
161
+ id?: unknown;
162
+ steer?: (message: unknown) => void;
163
+ followup?: (message: unknown) => void;
164
+ };
165
+ type AgentsRegistry = {
166
+ get(id: unknown): LiveAgent | undefined;
167
+ };
168
+ declare function apply(ctx: Context): Promise<void>;
169
+ /** Bound invoke: native steer/followup call this.send on the live Agents.get instance. */
170
+ declare function resumeHeldOnHost(agents: AgentsRegistry, sessionId: string, messages: unknown[]): void;
171
+ //#endregion
172
+ export { AgentsRegistry, CHAT_EVENTS_SLOT, LiveAgent, MOOD_AI_PLUGIN, MOOD_PLUGIN, MOOD_RPC_CHANNEL, MoodService, apply, createMoodContextMessage, defaultSettings, domainStore, inject, moodDomain, name, projectIdFromCwd, resumeHeldOnHost };
173
+ //# sourceMappingURL=index.d.ts.map