@ncukondo/reference-manager 0.6.0 → 0.7.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 +36 -0
- package/dist/chunks/action-menu-CTtINmWd.js +118 -0
- package/dist/chunks/action-menu-CTtINmWd.js.map +1 -0
- package/dist/chunks/{file-watcher-Cwfnnw92.js → file-watcher-D7oyc-9z.js} +14 -2
- package/dist/chunks/{file-watcher-Cwfnnw92.js.map → file-watcher-D7oyc-9z.js.map} +1 -1
- package/dist/chunks/{index-CQO8hLYm.js → index-_7NEUoS7.js} +13 -9
- package/dist/chunks/index-_7NEUoS7.js.map +1 -0
- package/dist/chunks/{loader-B_ZLxCQW.js → loader-BItrdVWG.js} +59 -7
- package/dist/chunks/loader-BItrdVWG.js.map +1 -0
- package/dist/chunks/search-prompt-D67WyKrY.js +179 -0
- package/dist/chunks/search-prompt-D67WyKrY.js.map +1 -0
- package/dist/chunks/tty-CDBIQraQ.js +17 -0
- package/dist/chunks/tty-CDBIQraQ.js.map +1 -0
- package/dist/cli/commands/search.d.ts +19 -0
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli.js +64 -10
- package/dist/cli.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/schema.d.ts +24 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/features/import/importer.d.ts.map +1 -1
- package/dist/features/interactive/action-menu.d.ts +56 -0
- package/dist/features/interactive/action-menu.d.ts.map +1 -0
- package/dist/features/interactive/debounce.d.ts +22 -0
- package/dist/features/interactive/debounce.d.ts.map +1 -0
- package/dist/features/interactive/format.d.ts +52 -0
- package/dist/features/interactive/format.d.ts.map +1 -0
- package/dist/features/interactive/search-prompt.d.ts +47 -0
- package/dist/features/interactive/search-prompt.d.ts.map +1 -0
- package/dist/features/interactive/tty.d.ts +20 -0
- package/dist/features/interactive/tty.d.ts.map +1 -0
- package/dist/features/operations/add.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/server.js +2 -2
- package/package.json +2 -1
- package/dist/chunks/index-CQO8hLYm.js.map +0 -1
- package/dist/chunks/loader-B_ZLxCQW.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MA2C3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EACL,KAAK,MAAM,EAMZ,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EACL,KAAK,MAAM,EAMZ,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;AA6ND;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAwClE"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -10,6 +10,13 @@ export declare const logLevelSchema: z.ZodEnum<{
|
|
|
10
10
|
info: "info";
|
|
11
11
|
debug: "debug";
|
|
12
12
|
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Interactive search configuration schema
|
|
15
|
+
*/
|
|
16
|
+
export declare const interactiveConfigSchema: z.ZodObject<{
|
|
17
|
+
limit: z.ZodNumber;
|
|
18
|
+
debounceMs: z.ZodNumber;
|
|
19
|
+
}, z.core.$strip>;
|
|
13
20
|
/**
|
|
14
21
|
* CLI configuration schema
|
|
15
22
|
*/
|
|
@@ -26,6 +33,10 @@ export declare const cliConfigSchema: z.ZodObject<{
|
|
|
26
33
|
asc: "asc";
|
|
27
34
|
desc: "desc";
|
|
28
35
|
}>;
|
|
36
|
+
interactive: z.ZodObject<{
|
|
37
|
+
limit: z.ZodNumber;
|
|
38
|
+
debounceMs: z.ZodNumber;
|
|
39
|
+
}, z.core.$strip>;
|
|
29
40
|
}, z.core.$strip>;
|
|
30
41
|
/**
|
|
31
42
|
* MCP configuration schema
|
|
@@ -148,6 +159,10 @@ export declare const configSchema: z.ZodObject<{
|
|
|
148
159
|
asc: "asc";
|
|
149
160
|
desc: "desc";
|
|
150
161
|
}>;
|
|
162
|
+
interactive: z.ZodObject<{
|
|
163
|
+
limit: z.ZodNumber;
|
|
164
|
+
debounceMs: z.ZodNumber;
|
|
165
|
+
}, z.core.$strip>;
|
|
151
166
|
}, z.core.$strip>;
|
|
152
167
|
mcp: z.ZodObject<{
|
|
153
168
|
defaultLimit: z.ZodNumber;
|
|
@@ -243,6 +258,11 @@ export declare const partialConfigSchema: z.ZodObject<{
|
|
|
243
258
|
asc: "asc";
|
|
244
259
|
desc: "desc";
|
|
245
260
|
}>>;
|
|
261
|
+
interactive: z.ZodOptional<z.ZodObject<{
|
|
262
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
263
|
+
debounceMs: z.ZodOptional<z.ZodNumber>;
|
|
264
|
+
debounce_ms: z.ZodOptional<z.ZodNumber>;
|
|
265
|
+
}, z.core.$strip>>;
|
|
246
266
|
}, z.core.$strip>>;
|
|
247
267
|
mcp: z.ZodOptional<z.ZodObject<{
|
|
248
268
|
defaultLimit: z.ZodOptional<z.ZodNumber>;
|
|
@@ -260,6 +280,7 @@ export type CitationFormat = z.infer<typeof citationFormatSchema>;
|
|
|
260
280
|
export type CitationConfig = z.infer<typeof citationConfigSchema>;
|
|
261
281
|
export type PubmedConfig = z.infer<typeof pubmedConfigSchema>;
|
|
262
282
|
export type FulltextConfig = z.infer<typeof fulltextConfigSchema>;
|
|
283
|
+
export type InteractiveConfig = z.infer<typeof interactiveConfigSchema>;
|
|
263
284
|
export type CliConfig = z.infer<typeof cliConfigSchema>;
|
|
264
285
|
export type McpConfig = z.infer<typeof mcpConfigSchema>;
|
|
265
286
|
export type Config = z.infer<typeof configSchema>;
|
|
@@ -276,7 +297,9 @@ export type DeepPartialConfig = {
|
|
|
276
297
|
citation?: Partial<CitationConfig>;
|
|
277
298
|
pubmed?: Partial<PubmedConfig>;
|
|
278
299
|
fulltext?: Partial<FulltextConfig>;
|
|
279
|
-
cli?: Partial<CliConfig
|
|
300
|
+
cli?: Partial<Omit<CliConfig, "interactive">> & {
|
|
301
|
+
interactive?: Partial<InteractiveConfig>;
|
|
302
|
+
};
|
|
280
303
|
mcp?: Partial<McpConfig>;
|
|
281
304
|
};
|
|
282
305
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;EAAsC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;EAAsC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;iBAK1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;iBAE1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;EAAkC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;iBAK/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkFhB,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,GAAG;QAC9C,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;KAC1C,CAAC;IACF,GAAG,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1B,CAAC;AAsMF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAkBhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../src/features/import/importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAW5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAqOD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,MAAM,EAC5B,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../src/features/import/importer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAW5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAqOD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,MAAM,EAC5B,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAuGD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAiCvB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action menu for interactive search mode.
|
|
3
|
+
* Allows users to perform actions on selected references.
|
|
4
|
+
*/
|
|
5
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Action types available in the action menu.
|
|
8
|
+
*/
|
|
9
|
+
export type ActionType = "output-ids" | "output-csl-json" | "output-bibtex" | "cite-apa" | "cite-choose" | "cancel";
|
|
10
|
+
/**
|
|
11
|
+
* Result from action menu selection.
|
|
12
|
+
*/
|
|
13
|
+
export interface ActionMenuResult {
|
|
14
|
+
/** Selected action type */
|
|
15
|
+
action: ActionType;
|
|
16
|
+
/** Generated output (empty for cancel) */
|
|
17
|
+
output: string;
|
|
18
|
+
/** Whether the prompt was cancelled */
|
|
19
|
+
cancelled: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Result from style selection prompt.
|
|
23
|
+
*/
|
|
24
|
+
export interface StyleSelectResult {
|
|
25
|
+
/** Selected style (undefined if cancelled) */
|
|
26
|
+
style?: string;
|
|
27
|
+
/** Whether the prompt was cancelled */
|
|
28
|
+
cancelled: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Choice definition for Enquirer Select prompt.
|
|
32
|
+
*/
|
|
33
|
+
interface SelectChoice {
|
|
34
|
+
name: string;
|
|
35
|
+
message: string;
|
|
36
|
+
value: ActionType | string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Available action choices for the action menu.
|
|
40
|
+
*/
|
|
41
|
+
export declare const ACTION_CHOICES: SelectChoice[];
|
|
42
|
+
/**
|
|
43
|
+
* Available style choices for citation style selection.
|
|
44
|
+
* Uses BUILTIN_STYLES from config/csl-styles.ts
|
|
45
|
+
*/
|
|
46
|
+
export declare const STYLE_CHOICES: SelectChoice[];
|
|
47
|
+
export declare function runStyleSelectPrompt(): Promise<StyleSelectResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Run the action menu for selected references.
|
|
50
|
+
*
|
|
51
|
+
* @param items - Selected references
|
|
52
|
+
* @returns Action result with output
|
|
53
|
+
*/
|
|
54
|
+
export declare function runActionMenu(items: CslItem[]): Promise<ActionMenuResult>;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=action-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-menu.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/action-menu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAG5D;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,iBAAiB,GACjB,eAAe,GACf,UAAU,GACV,aAAa,GACb,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,EAOxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,YAAY,EAIvC,CAAC;AAwEF,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA+BvE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkC/E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debounce utility for interactive search
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Debounced function with cancel capability
|
|
6
|
+
*/
|
|
7
|
+
export interface DebouncedFunction<T extends (...args: never[]) => void> {
|
|
8
|
+
(...args: Parameters<T>): void;
|
|
9
|
+
cancel: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a debounced version of a function
|
|
13
|
+
*
|
|
14
|
+
* The debounced function will only execute after the specified delay
|
|
15
|
+
* has passed without any new calls. Each call resets the delay timer.
|
|
16
|
+
*
|
|
17
|
+
* @param fn - Function to debounce
|
|
18
|
+
* @param delayMs - Delay in milliseconds
|
|
19
|
+
* @returns Debounced function with cancel method
|
|
20
|
+
*/
|
|
21
|
+
export declare function debounce<T extends (...args: never[]) => void>(fn: T, delayMs: number): DebouncedFunction<T>;
|
|
22
|
+
//# sourceMappingURL=debounce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/debounce.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI;IACrE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAC3D,EAAE,EAAE,CAAC,EACL,OAAO,EAAE,MAAM,GACd,iBAAiB,CAAC,CAAC,CAAC,CAwBtB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display format functions for interactive search
|
|
3
|
+
*/
|
|
4
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
5
|
+
/**
|
|
6
|
+
* CSL name type (author structure)
|
|
7
|
+
*/
|
|
8
|
+
type CslName = NonNullable<CslItem["author"]>[number];
|
|
9
|
+
/**
|
|
10
|
+
* Format author list for display
|
|
11
|
+
* - Single author: "Smith, J."
|
|
12
|
+
* - Two authors: "Smith, J., & Doe, A."
|
|
13
|
+
* - Three authors: "Smith, J., Doe, A., & Johnson, B."
|
|
14
|
+
* - More than three: "Smith, J., et al."
|
|
15
|
+
*
|
|
16
|
+
* @param authors - Array of CSL author objects
|
|
17
|
+
* @returns Formatted author string
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatAuthors(authors: CslName[] | undefined): string;
|
|
20
|
+
/**
|
|
21
|
+
* Truncate title to fit terminal width
|
|
22
|
+
*
|
|
23
|
+
* @param title - Title string
|
|
24
|
+
* @param maxWidth - Maximum display width
|
|
25
|
+
* @returns Truncated title with ellipsis if needed
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatTitle(title: string | undefined, maxWidth: number): string;
|
|
28
|
+
/**
|
|
29
|
+
* Format identifiers (DOI, PMID, PMCID, ISBN) for display
|
|
30
|
+
*
|
|
31
|
+
* @param item - CSL item
|
|
32
|
+
* @returns Formatted identifier string (e.g., "DOI: 10.1000/example | PMID: 12345678")
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatIdentifiers(item: CslItem): string;
|
|
35
|
+
/**
|
|
36
|
+
* Compose a complete search result line
|
|
37
|
+
*
|
|
38
|
+
* Format:
|
|
39
|
+
* ```
|
|
40
|
+
* [1] Smith, J., & Doe, A. (2020)
|
|
41
|
+
* Machine learning in medicine: A comprehensive review
|
|
42
|
+
* DOI: 10.1000/example | PMID: 12345678
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @param item - CSL item
|
|
46
|
+
* @param index - Display index (1-based)
|
|
47
|
+
* @param terminalWidth - Terminal width for title truncation
|
|
48
|
+
* @returns Multi-line formatted string
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatSearchResult(item: CslItem, index: number, terminalWidth: number): string;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;GAEG;AACH,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAqBtD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,GAAG,MAAM,CAsBpE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAiBvD;AAiBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAyB9F"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive search prompt using Enquirer's AutoComplete
|
|
3
|
+
*
|
|
4
|
+
* Provides real-time incremental search with multiple selection support.
|
|
5
|
+
*/
|
|
6
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
7
|
+
import type { SearchResult } from "../search/types.js";
|
|
8
|
+
import type { AutoCompleteChoice } from "./enquirer.js";
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for the search prompt
|
|
11
|
+
*/
|
|
12
|
+
export interface SearchPromptConfig {
|
|
13
|
+
/** Maximum number of results to display */
|
|
14
|
+
limit: number;
|
|
15
|
+
/** Debounce delay in milliseconds */
|
|
16
|
+
debounceMs: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Search function type for filtering references
|
|
20
|
+
*/
|
|
21
|
+
export type SearchFunction = (query: string) => SearchResult[];
|
|
22
|
+
/**
|
|
23
|
+
* Result from the search prompt
|
|
24
|
+
*/
|
|
25
|
+
export interface SearchPromptResult {
|
|
26
|
+
/** Selected references */
|
|
27
|
+
selected: CslItem[];
|
|
28
|
+
/** Whether the prompt was cancelled */
|
|
29
|
+
cancelled: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Creates choices from search results
|
|
33
|
+
*/
|
|
34
|
+
export declare function createChoices(results: SearchResult[], terminalWidth: number): AutoCompleteChoice[];
|
|
35
|
+
/**
|
|
36
|
+
* Parses selected values back to CslItems
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseSelectedValues(values: string | string[]): CslItem[];
|
|
39
|
+
/**
|
|
40
|
+
* Gets terminal width, falling back to 80 if not available
|
|
41
|
+
*/
|
|
42
|
+
export declare function getTerminalWidth(): number;
|
|
43
|
+
/**
|
|
44
|
+
* Creates and runs an interactive search prompt
|
|
45
|
+
*/
|
|
46
|
+
export declare function runSearchPrompt(allReferences: CslItem[], searchFn: SearchFunction, config: SearchPromptConfig, initialQuery?: string): Promise<SearchPromptResult>;
|
|
47
|
+
//# sourceMappingURL=search-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-prompt.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/search-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAUD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EAAE,EACvB,aAAa,EAAE,MAAM,GACpB,kBAAkB,EAAE,CAgBtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAiBxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,OAAO,EAAE,EACxB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,EAC1B,YAAY,SAAK,GAChB,OAAO,CAAC,kBAAkB,CAAC,CAgF7B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TTY detection for interactive mode
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when TTY is required but not available
|
|
6
|
+
*/
|
|
7
|
+
export declare class TTYError extends Error {
|
|
8
|
+
readonly exitCode = 1;
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Check if the current environment is a TTY
|
|
13
|
+
*
|
|
14
|
+
* Throws TTYError if stdin or stdout is not a TTY,
|
|
15
|
+
* which means interactive mode cannot be used.
|
|
16
|
+
*
|
|
17
|
+
* @throws {TTYError} If not running in a TTY
|
|
18
|
+
*/
|
|
19
|
+
export declare function checkTTY(): void;
|
|
20
|
+
//# sourceMappingURL=tty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tty.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/tty.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,KAAK;gBAEV,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAI/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/features/operations/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/features/operations/add.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAwC9B"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { C as CslLibrarySchema, c as computeFileHash, a as computeHash, p as pickDefined, n as normalize, s as search, b as sortResults, t as tokenize, d as detectDuplicate } from "./chunks/file-watcher-
|
|
2
|
-
import { e, F, L, R, m, o, h, i, k, l, j, f, g, w } from "./chunks/file-watcher-
|
|
1
|
+
import { C as CslLibrarySchema, c as computeFileHash, a as computeHash, p as pickDefined, n as normalize, s as search, b as sortResults, t as tokenize, d as detectDuplicate } from "./chunks/file-watcher-D7oyc-9z.js";
|
|
2
|
+
import { e, F, L, R, m, o, h, i, k, l, j, f, g, w } from "./chunks/file-watcher-D7oyc-9z.js";
|
|
3
3
|
import { mkdir, readFile, copyFile, stat, unlink, readdir } from "node:fs/promises";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import writeFileAtomicLib from "write-file-atomic";
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
7
|
import { tmpdir } from "node:os";
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
|
-
import { b as backupConfigSchema, c as configSchema, d as defaultConfig, g as getDefaultBackupDirectory, a as getDefaultCurrentDirConfigFilename, e as getDefaultLibraryPath, f as getDefaultUserConfigPath, l as loadConfig, h as logLevelSchema, n as normalizePartialConfig, p as partialConfigSchema, w as watchConfigSchema } from "./chunks/loader-
|
|
9
|
+
import { b as backupConfigSchema, c as configSchema, d as defaultConfig, g as getDefaultBackupDirectory, a as getDefaultCurrentDirConfigFilename, e as getDefaultLibraryPath, f as getDefaultUserConfigPath, l as loadConfig, h as logLevelSchema, n as normalizePartialConfig, p as partialConfigSchema, w as watchConfigSchema } from "./chunks/loader-BItrdVWG.js";
|
|
10
10
|
function validateCslJson(data) {
|
|
11
11
|
const parseResult = CslLibrarySchema.safeParse(data);
|
|
12
12
|
if (!parseResult.success) {
|
package/dist/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "hono";
|
|
2
|
-
import "./chunks/file-watcher-
|
|
3
|
-
import { c, s } from "./chunks/index-
|
|
2
|
+
import "./chunks/file-watcher-D7oyc-9z.js";
|
|
3
|
+
import { c, s } from "./chunks/index-_7NEUoS7.js";
|
|
4
4
|
export {
|
|
5
5
|
c as createServer,
|
|
6
6
|
s as startServerWithFileWatcher
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ncukondo/reference-manager",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "A local reference management tool using CSL-JSON as the single source of truth",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
54
54
|
"chokidar": "^5.0.0",
|
|
55
55
|
"commander": "^12.1.0",
|
|
56
|
+
"enquirer": "^2.4.1",
|
|
56
57
|
"hono": "^4.11.1",
|
|
57
58
|
"tabtab": "^3.0.2",
|
|
58
59
|
"write-file-atomic": "^7.0.0",
|