@dexto/core 1.6.0 → 1.6.1
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/agent/DextoAgent.cjs +25 -5
- package/dist/agent/DextoAgent.d.ts +12 -1
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +25 -5
- package/dist/agent/schemas.d.ts +18 -18
- package/dist/approval/manager.cjs +87 -27
- package/dist/approval/manager.d.ts +10 -1
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +87 -27
- package/dist/approval/schemas.cjs +22 -8
- package/dist/approval/schemas.d.ts +276 -102
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +22 -8
- package/dist/context/manager.cjs +2 -2
- package/dist/context/manager.d.ts +2 -1
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +2 -2
- package/dist/context/types.d.ts +3 -2
- package/dist/context/types.d.ts.map +1 -1
- package/dist/events/index.d.ts +17 -12
- package/dist/events/index.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/types.d.ts +1 -22
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.cjs +3 -3
- package/dist/llm/executor/stream-processor.d.ts +3 -2
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +3 -3
- package/dist/llm/executor/turn-executor.cjs +3 -3
- package/dist/llm/executor/turn-executor.d.ts +1 -1
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +3 -3
- package/dist/llm/providers/local/schemas.d.ts +2 -2
- package/dist/llm/schemas.d.ts +4 -4
- package/dist/llm/services/vercel.cjs +1 -1
- package/dist/llm/services/vercel.js +1 -1
- package/dist/logger/default-logger-factory.d.ts +12 -12
- package/dist/logger/v2/dexto-logger.cjs +35 -0
- package/dist/logger/v2/dexto-logger.d.ts +19 -0
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/dexto-logger.js +35 -0
- package/dist/logger/v2/schemas.d.ts +6 -6
- package/dist/logger/v2/test-utils.cjs +2 -0
- package/dist/logger/v2/test-utils.d.ts.map +1 -1
- package/dist/logger/v2/test-utils.js +2 -0
- package/dist/logger/v2/types.d.ts +14 -1
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/mcp/schemas.d.ts +15 -15
- package/dist/memory/schemas.d.ts +4 -4
- package/dist/prompts/schemas.d.ts +7 -7
- package/dist/systemPrompt/in-built-prompts.cjs +5 -5
- package/dist/systemPrompt/in-built-prompts.d.ts +1 -1
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +5 -5
- package/dist/systemPrompt/schemas.d.ts +5 -5
- package/dist/systemPrompt/types.d.ts +11 -0
- package/dist/systemPrompt/types.d.ts.map +1 -1
- package/dist/tools/display-types.d.ts +10 -0
- package/dist/tools/display-types.d.ts.map +1 -1
- package/dist/tools/index.cjs +3 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/presentation.cjs +49 -0
- package/dist/tools/presentation.d.ts +11 -0
- package/dist/tools/presentation.d.ts.map +1 -0
- package/dist/tools/presentation.js +24 -0
- package/dist/tools/tool-manager.cjs +322 -155
- package/dist/tools/tool-manager.d.ts +23 -25
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +322 -155
- package/dist/tools/types.d.ts +134 -55
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/path.cjs +10 -1
- package/dist/utils/path.d.ts +5 -2
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +10 -1
- package/package.json +2 -2
package/dist/tools/types.d.ts
CHANGED
|
@@ -86,24 +86,113 @@ export interface ToolExecutionContext extends ToolExecutionContextBase {
|
|
|
86
86
|
export interface ToolExecutionResult {
|
|
87
87
|
/** The actual result data from tool execution */
|
|
88
88
|
result: unknown;
|
|
89
|
-
/** Optional
|
|
90
|
-
|
|
89
|
+
/** Optional UI-agnostic presentation snapshot for this call/result */
|
|
90
|
+
presentationSnapshot?: ToolPresentationSnapshotV1;
|
|
91
91
|
/** Whether this tool required user approval before execution */
|
|
92
92
|
requireApproval?: boolean;
|
|
93
93
|
/** The approval status (only present if requireApproval is true) */
|
|
94
94
|
approvalStatus?: 'approved' | 'rejected';
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* UI-agnostic, runtime-computed presentation snapshot for tool calls/approvals/results.
|
|
98
|
+
*
|
|
99
|
+
* This is intended to decouple UIs (CLI/WebUI) from tool-specific heuristics (toolName parsing,
|
|
100
|
+
* hardcoded argument omission, etc.). It must remain:
|
|
101
|
+
* - JSON-serializable (plain objects/arrays/strings/numbers/booleans/null)
|
|
102
|
+
* - Optional everywhere (UIs MUST fall back to generic defaults when absent)
|
|
103
|
+
* - Forward-compatible (UIs MUST ignore unknown fields)
|
|
104
|
+
*
|
|
105
|
+
* SECURITY: Do not include secrets (tokens, full file contents, credentials). Prefer previews via
|
|
106
|
+
* {@link ToolDisplayData} for large content and rely on UIs to render those previews.
|
|
107
|
+
*/
|
|
108
|
+
export type ToolPresentationSnapshotV1 = {
|
|
109
|
+
version: 1;
|
|
110
|
+
/** Optional source information (prevents UIs from parsing tool ids like `mcp--server--tool`). */
|
|
111
|
+
source?: {
|
|
112
|
+
type: 'local' | 'mcp';
|
|
113
|
+
mcpServerName?: string;
|
|
114
|
+
};
|
|
115
|
+
/** Optional one-line identity of the call (used for headers/timelines). */
|
|
116
|
+
header?: {
|
|
117
|
+
title?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Pre-formatted one-line call detail shown in parentheses.
|
|
120
|
+
* Example: `Read(/path/to/file.ts)` where argsText is `/path/to/file.ts`.
|
|
121
|
+
*/
|
|
122
|
+
argsText?: string;
|
|
123
|
+
};
|
|
124
|
+
/** Compact semantic tags. Use sparingly to avoid UI noise. */
|
|
125
|
+
chips?: Array<{
|
|
126
|
+
kind: 'neutral' | 'info' | 'warning' | 'danger' | 'success';
|
|
127
|
+
text: string;
|
|
128
|
+
}>;
|
|
129
|
+
/** Human-facing argument presentation. Prefer `display` over leaking raw values. */
|
|
130
|
+
args?: {
|
|
131
|
+
summary?: Array<{
|
|
132
|
+
label: string;
|
|
133
|
+
display: string;
|
|
134
|
+
kind?: 'path' | 'command' | 'url' | 'text' | 'json';
|
|
135
|
+
sensitive?: boolean;
|
|
136
|
+
}>;
|
|
137
|
+
groups?: Array<{
|
|
138
|
+
id: string;
|
|
139
|
+
label: string;
|
|
140
|
+
collapsedByDefault?: boolean;
|
|
141
|
+
items: Array<{
|
|
142
|
+
label: string;
|
|
143
|
+
display: string;
|
|
144
|
+
kind?: 'path' | 'command' | 'url' | 'text' | 'json';
|
|
145
|
+
sensitive?: boolean;
|
|
146
|
+
}>;
|
|
147
|
+
}>;
|
|
148
|
+
};
|
|
149
|
+
/** Optional capabilities that UIs may use to enable modes without toolName branching. */
|
|
150
|
+
capabilities?: string[];
|
|
151
|
+
/** Optional approval UX hints. If absent, UIs use their existing generic approval flows. */
|
|
152
|
+
approval?: {
|
|
153
|
+
actions?: Array<{
|
|
154
|
+
id: string;
|
|
155
|
+
label: string;
|
|
156
|
+
kind?: 'primary' | 'secondary' | 'danger';
|
|
157
|
+
responseData?: Record<string, unknown>;
|
|
158
|
+
uiEffects?: UiEffect[];
|
|
159
|
+
} | {
|
|
160
|
+
id: string;
|
|
161
|
+
label: string;
|
|
162
|
+
kind?: 'danger';
|
|
163
|
+
denyWithFeedback?: {
|
|
164
|
+
placeholder?: string;
|
|
165
|
+
messageTemplate?: string;
|
|
166
|
+
};
|
|
167
|
+
}>;
|
|
168
|
+
};
|
|
169
|
+
/** Optional post-result presentation and UI effects. */
|
|
170
|
+
result?: {
|
|
171
|
+
summaryText?: string;
|
|
172
|
+
uiEffects?: UiEffect[];
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Optional, UI-local side effects driven by tool approvals/results.
|
|
177
|
+
*
|
|
178
|
+
* UIs MAY ignore these. They are intended to replace toolName-based UI logic (plan mode, accept
|
|
179
|
+
* edits mode, etc.) with declarative data.
|
|
180
|
+
*/
|
|
181
|
+
export type UiEffect = {
|
|
182
|
+
type: 'setFlag';
|
|
183
|
+
flag: 'autoApproveEdits' | 'planModeActive' | 'planModeInitialized';
|
|
184
|
+
value: boolean;
|
|
185
|
+
} | {
|
|
186
|
+
type: 'toast';
|
|
187
|
+
kind: 'info' | 'warning' | 'success' | 'error';
|
|
188
|
+
message: string;
|
|
189
|
+
};
|
|
96
190
|
/**
|
|
97
191
|
* Tool interface - for tools implemented within Dexto
|
|
98
192
|
*/
|
|
99
193
|
export interface Tool<TSchema extends ZodTypeAny = ZodTypeAny> {
|
|
100
194
|
/** Unique identifier for the tool */
|
|
101
195
|
id: string;
|
|
102
|
-
/**
|
|
103
|
-
* Short, user-facing name for this tool (UI convenience).
|
|
104
|
-
* Defaults to a title-cased version of {@link id} when omitted.
|
|
105
|
-
*/
|
|
106
|
-
displayName?: string | undefined;
|
|
107
196
|
/** Human-readable description of what the tool does */
|
|
108
197
|
description: string;
|
|
109
198
|
/** Zod schema defining the input parameters */
|
|
@@ -111,11 +200,13 @@ export interface Tool<TSchema extends ZodTypeAny = ZodTypeAny> {
|
|
|
111
200
|
/** The actual function that executes the tool - input is validated by Zod before execution */
|
|
112
201
|
execute(input: z.output<TSchema>, context: ToolExecutionContext): Promise<unknown> | unknown;
|
|
113
202
|
/**
|
|
114
|
-
* Optional
|
|
115
|
-
* Called before requesting user approval to generate display data (e.g., diff preview).
|
|
116
|
-
* Returns null if no preview is available.
|
|
203
|
+
* Optional grouped approval-related behavior.
|
|
117
204
|
*/
|
|
118
|
-
|
|
205
|
+
approval?: ToolApproval<TSchema> | undefined;
|
|
206
|
+
/**
|
|
207
|
+
* Optional grouped UI/presentation-related behavior.
|
|
208
|
+
*/
|
|
209
|
+
presentation?: ToolPresentation<TSchema> | undefined;
|
|
119
210
|
/**
|
|
120
211
|
* Optional aliases for this tool id.
|
|
121
212
|
*
|
|
@@ -124,64 +215,52 @@ export interface Tool<TSchema extends ZodTypeAny = ZodTypeAny> {
|
|
|
124
215
|
* by {@link ToolManager} when applying session auto-approve lists.
|
|
125
216
|
*/
|
|
126
217
|
aliases?: string[] | undefined;
|
|
218
|
+
}
|
|
219
|
+
export interface ToolApproval<TSchema extends ZodTypeAny = ZodTypeAny> {
|
|
220
|
+
override?(input: z.output<TSchema>, context: ToolExecutionContext): Promise<ApprovalRequestDetails | null> | ApprovalRequestDetails | null;
|
|
221
|
+
onGranted?(response: ApprovalResponse, context: ToolExecutionContext, approvalRequest: ApprovalRequestDetails): Promise<void> | void;
|
|
222
|
+
patternKey?(input: z.output<TSchema>): string | null;
|
|
223
|
+
suggestPatterns?(input: z.output<TSchema>): string[];
|
|
224
|
+
}
|
|
225
|
+
export interface ToolPresentation<TSchema extends ZodTypeAny = ZodTypeAny> {
|
|
127
226
|
/**
|
|
128
|
-
* Optional
|
|
129
|
-
*
|
|
130
|
-
* If provided, ToolManager will:
|
|
131
|
-
* - Skip confirmation when the pattern key is covered by previously approved patterns.
|
|
132
|
-
* - Offer suggested patterns (if {@link suggestApprovalPatterns} is provided) in the approval UI.
|
|
227
|
+
* Optional rich preview used in approval prompts.
|
|
133
228
|
*
|
|
134
|
-
*
|
|
229
|
+
* CLI example:
|
|
230
|
+
* - `edit_file` / `write_file`: shows a diff preview
|
|
231
|
+
* - `bash_exec`: shows a shell command preview
|
|
232
|
+
* - `plan_review`: shows the plan as a file preview
|
|
135
233
|
*/
|
|
136
|
-
|
|
234
|
+
preview?(input: z.output<TSchema>, context: ToolExecutionContext): Promise<ToolDisplayData | null> | ToolDisplayData | null;
|
|
137
235
|
/**
|
|
138
|
-
*
|
|
236
|
+
* Describe the one-line tool call header for timelines and approval prompts.
|
|
139
237
|
*
|
|
140
|
-
*
|
|
238
|
+
* CLI example:
|
|
239
|
+
* - Tool message header line: `Read(src/app.ts)`
|
|
240
|
+
* - Here: header.title = "Read", header.argsText = "src/app.ts"
|
|
141
241
|
*/
|
|
142
|
-
|
|
242
|
+
describeHeader?(input: z.output<TSchema>, context: ToolExecutionContext): Promise<ToolPresentationSnapshotV1['header'] | null> | ToolPresentationSnapshotV1['header'] | null;
|
|
143
243
|
/**
|
|
144
|
-
*
|
|
145
|
-
* If present and returns non-null, this approval request is used instead of
|
|
146
|
-
* the default tool confirmation. Allows tools to request specialized approval
|
|
147
|
-
* flows (e.g., directory access approval for file tools).
|
|
244
|
+
* Describe structured argument presentation for this tool call.
|
|
148
245
|
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
246
|
+
* Not currently rendered by the Ink CLI, but intended for future "expanded transcript"
|
|
247
|
+
* views (e.g. Ctrl+O to inspect call details) and WebUI.
|
|
151
248
|
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
* getApprovalOverride: async (input) => {
|
|
156
|
-
* const filePath = (input as {file_path: string}).file_path;
|
|
157
|
-
* if (!await isPathWithinAllowed(filePath)) {
|
|
158
|
-
* return {
|
|
159
|
-
* type: ApprovalType.DIRECTORY_ACCESS,
|
|
160
|
-
* metadata: { path: filePath, operation: 'read', ... }
|
|
161
|
-
* };
|
|
162
|
-
* }
|
|
163
|
-
* return null; // Use default tool confirmation
|
|
164
|
-
* }
|
|
165
|
-
* ```
|
|
249
|
+
* Example (expanded details):
|
|
250
|
+
* - label: "method", display: "POST"
|
|
251
|
+
* - label: "timeout", display: "30s"
|
|
166
252
|
*/
|
|
167
|
-
|
|
253
|
+
describeArgs?(input: z.output<TSchema>, context: ToolExecutionContext): Promise<ToolPresentationSnapshotV1['args'] | null> | ToolPresentationSnapshotV1['args'] | null;
|
|
168
254
|
/**
|
|
169
|
-
*
|
|
170
|
-
* Allows tools to handle approval responses (e.g., remember approved directories).
|
|
171
|
-
* Only called when getApprovalOverride returned non-null and approval was granted.
|
|
255
|
+
* Describe a short post-execution summary.
|
|
172
256
|
*
|
|
173
|
-
*
|
|
257
|
+
* CLI example:
|
|
258
|
+
* - Tool result preview line (when supported): "Wrote 3 files" or "Request failed: 401"
|
|
174
259
|
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
* onApprovalGranted: (response) => {
|
|
178
|
-
* if (response.data?.rememberDirectory) {
|
|
179
|
-
* directoryApproval.addApproved(parentDir, 'session');
|
|
180
|
-
* }
|
|
181
|
-
* }
|
|
182
|
-
* ```
|
|
260
|
+
* Note: This does not change the tool's actual returned data; it only affects optional
|
|
261
|
+
* presentation metadata.
|
|
183
262
|
*/
|
|
184
|
-
|
|
263
|
+
describeResult?(result: unknown, input: z.output<TSchema>, context: ToolExecutionContext): Promise<ToolPresentationSnapshotV1['result'] | null> | ToolPresentationSnapshotV1['result'] | null;
|
|
185
264
|
}
|
|
186
265
|
/**
|
|
187
266
|
* Standard tool set interface - used by AI/LLM services
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/path.cjs
CHANGED
|
@@ -79,6 +79,15 @@ function getDextoPath(type, filename, startPath) {
|
|
|
79
79
|
return filename ? path.join(basePath, filename) : basePath;
|
|
80
80
|
}
|
|
81
81
|
function getDextoGlobalPath(type, filename) {
|
|
82
|
+
const isDevMode = process.env.DEXTO_DEV_MODE === "true";
|
|
83
|
+
if (isDevMode && (0, import_execution_context.getExecutionContext)() === "dexto-source") {
|
|
84
|
+
const sourceRoot = (0, import_execution_context.findDextoSourceRoot)();
|
|
85
|
+
if (!sourceRoot) {
|
|
86
|
+
throw new Error("Not in dexto source context");
|
|
87
|
+
}
|
|
88
|
+
const devBasePath = path.join(sourceRoot, ".dexto", type);
|
|
89
|
+
return filename ? path.join(devBasePath, filename) : devBasePath;
|
|
90
|
+
}
|
|
82
91
|
const basePath = path.join((0, import_os.homedir)(), ".dexto", type);
|
|
83
92
|
return filename ? path.join(basePath, filename) : basePath;
|
|
84
93
|
}
|
|
@@ -108,7 +117,7 @@ function findPackageRoot(startPath = process.cwd()) {
|
|
|
108
117
|
});
|
|
109
118
|
}
|
|
110
119
|
async function ensureDextoGlobalDirectory() {
|
|
111
|
-
const dextoDir =
|
|
120
|
+
const dextoDir = getDextoGlobalPath("");
|
|
112
121
|
try {
|
|
113
122
|
await import_fs2.promises.mkdir(dextoDir, { recursive: true });
|
|
114
123
|
} catch (error) {
|
package/dist/utils/path.d.ts
CHANGED
|
@@ -13,8 +13,11 @@ import type { Logger } from '../logger/v2/types.js';
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function getDextoPath(type: string, filename?: string, startPath?: string): string;
|
|
15
15
|
/**
|
|
16
|
-
* Global path resolver
|
|
17
|
-
*
|
|
16
|
+
* Global path resolver for user-global resources that should not be project-relative.
|
|
17
|
+
*
|
|
18
|
+
* Dev mode support:
|
|
19
|
+
* - dexto-source + DEXTO_DEV_MODE=true: Use repo-local `.dexto` (isolated testing)
|
|
20
|
+
* - otherwise: Use global `~/.dexto` (user experience)
|
|
18
21
|
* @param type Path type (agents, cache, etc.)
|
|
19
22
|
* @param filename Optional filename to append
|
|
20
23
|
* @returns Absolute path to the global location (~/.dexto/...)
|
package/dist/utils/path.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAuCxF;AAED
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAuCxF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAc1E;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5E;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAW3C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAKhF;AAMD;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAUhE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,SAAS,GAAE,MAAsB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAkC1F"}
|
package/dist/utils/path.js
CHANGED
|
@@ -45,6 +45,15 @@ function getDextoPath(type, filename, startPath) {
|
|
|
45
45
|
return filename ? path.join(basePath, filename) : basePath;
|
|
46
46
|
}
|
|
47
47
|
function getDextoGlobalPath(type, filename) {
|
|
48
|
+
const isDevMode = process.env.DEXTO_DEV_MODE === "true";
|
|
49
|
+
if (isDevMode && getExecutionContext() === "dexto-source") {
|
|
50
|
+
const sourceRoot = findDextoSourceRoot();
|
|
51
|
+
if (!sourceRoot) {
|
|
52
|
+
throw new Error("Not in dexto source context");
|
|
53
|
+
}
|
|
54
|
+
const devBasePath = path.join(sourceRoot, ".dexto", type);
|
|
55
|
+
return filename ? path.join(devBasePath, filename) : devBasePath;
|
|
56
|
+
}
|
|
48
57
|
const basePath = path.join(homedir(), ".dexto", type);
|
|
49
58
|
return filename ? path.join(basePath, filename) : basePath;
|
|
50
59
|
}
|
|
@@ -74,7 +83,7 @@ function findPackageRoot(startPath = process.cwd()) {
|
|
|
74
83
|
});
|
|
75
84
|
}
|
|
76
85
|
async function ensureDextoGlobalDirectory() {
|
|
77
|
-
const dextoDir =
|
|
86
|
+
const dextoDir = getDextoGlobalPath("");
|
|
78
87
|
try {
|
|
79
88
|
await fs.mkdir(dextoDir, { recursive: true });
|
|
80
89
|
} catch (error) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dexto/core",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
},
|
|
124
124
|
"sideEffects": false,
|
|
125
125
|
"scripts": {
|
|
126
|
-
"build": "cross-env NODE_OPTIONS='--max-old-space-size=4096' tsup && cross-env NODE_OPTIONS='--max-old-space-size=4096' tsc -b tsconfig.json --
|
|
126
|
+
"build": "cross-env NODE_OPTIONS='--max-old-space-size=4096' tsup && node ../../scripts/clean-tsbuildinfo.mjs && cross-env NODE_OPTIONS='--max-old-space-size=4096' tsc -b tsconfig.json --emitDeclarationOnly",
|
|
127
127
|
"dev": "tsup --watch",
|
|
128
128
|
"typecheck": "tsc -p tsconfig.typecheck.json --noEmit",
|
|
129
129
|
"lint": "eslint . --ext .ts"
|