modality-kit 0.0.1 → 0.0.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.
package/dist/index.js CHANGED
@@ -54,8 +54,123 @@ function formatErrorResponse(errorData, operation, meta) {
54
54
  }
55
55
  return JSON.stringify(errorResponse);
56
56
  }
57
+ // src/util_logger.ts
58
+ class ModalityLogger {
59
+ static instance;
60
+ options = {};
61
+ logLevel = "info";
62
+ constructor(logOption, logLevel = "info") {
63
+ if (typeof logOption === "string") {
64
+ this.options.name = logOption;
65
+ } else {
66
+ this.options = { ...this.options, ...logOption };
67
+ }
68
+ this.logLevel = logLevel;
69
+ }
70
+ static getInstance(logOption, logLevel) {
71
+ if (!ModalityLogger.instance) {
72
+ ModalityLogger.instance = new ModalityLogger(logOption, logLevel);
73
+ }
74
+ return ModalityLogger.instance;
75
+ }
76
+ getTimestamp() {
77
+ if (this.options.timestampFormat === false)
78
+ return;
79
+ const now = new Date;
80
+ if (this.options.timestampFormat === "locale")
81
+ return now.toLocaleString();
82
+ return now.toISOString();
83
+ }
84
+ shouldLog(level) {
85
+ const levels = ["debug", "info", "warn", "error", "success"];
86
+ return levels.indexOf(level) >= levels.indexOf(this.logLevel);
87
+ }
88
+ setLogLevel(level) {
89
+ this.logLevel = level;
90
+ }
91
+ format(level, payload, categroy) {
92
+ const timestamp = this.getTimestamp();
93
+ let prefix = "";
94
+ switch (level) {
95
+ case "debug":
96
+ prefix = "\uD83D\uDD0D";
97
+ break;
98
+ case "info":
99
+ prefix = "ℹ️";
100
+ break;
101
+ case "warn":
102
+ prefix = "⚠️";
103
+ break;
104
+ case "error":
105
+ prefix = "❌";
106
+ break;
107
+ case "success":
108
+ prefix = "✅";
109
+ break;
110
+ default:
111
+ prefix = "";
112
+ }
113
+ if (timestamp) {
114
+ prefix += ` [${timestamp}]`;
115
+ }
116
+ if (categroy) {
117
+ prefix += ` [${categroy}]`;
118
+ }
119
+ return [prefix, payload];
120
+ }
121
+ log(level, payload, categroy) {
122
+ if (!this.shouldLog(level))
123
+ return;
124
+ const formatted = this.format(level, payload, categroy);
125
+ switch (level) {
126
+ case "debug":
127
+ console.debug(formatted);
128
+ break;
129
+ case "info":
130
+ console.info(formatted);
131
+ break;
132
+ case "warn":
133
+ console.warn(formatted);
134
+ break;
135
+ case "error":
136
+ console.error(formatted);
137
+ break;
138
+ case "success":
139
+ console.log(formatted);
140
+ break;
141
+ default:
142
+ console.log(formatted);
143
+ break;
144
+ }
145
+ }
146
+ debug(message, error) {
147
+ this.log("debug", { message, error });
148
+ }
149
+ info(message, data) {
150
+ this.log("info", { message, data });
151
+ }
152
+ warn(message, resolution) {
153
+ this.log("warn", { message, resolution });
154
+ }
155
+ error(message, error) {
156
+ const data = { message };
157
+ if (error) {
158
+ data.error = {
159
+ message: error.message,
160
+ stack: error.stack
161
+ };
162
+ }
163
+ this.log("error", data);
164
+ }
165
+ success(message, data) {
166
+ this.log("success", { message, data });
167
+ }
168
+ }
169
+ var loggerInstance = ModalityLogger.getInstance.bind(ModalityLogger);
57
170
  export {
58
171
  setupAITools,
172
+ loggerInstance,
59
173
  formatSuccessResponse,
60
- formatErrorResponse
174
+ formatErrorResponse,
175
+ ModalityLogger
61
176
  };
@@ -1,3 +1,4 @@
1
1
  export { setupAITools } from "./util_mcp_tools_converter";
2
2
  export type { AITools, AITool } from "./schemas/schemas_tool_config";
3
3
  export { formatErrorResponse, formatSuccessResponse } from "./util_response";
4
+ export { ModalityLogger, loggerInstance } from "./util_logger";
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Storage Logger for structured logging
3
+ * Provides consistent logging across storage operations with configurable levels
4
+ */
5
+ export type LogLevel = "debug" | "info" | "warn" | "error" | "success";
6
+ export interface LoggerOptions {
7
+ timestampFormat?: "iso" | "locale" | false;
8
+ name?: string;
9
+ }
10
+ export declare class ModalityLogger {
11
+ private static instance;
12
+ private options;
13
+ private logLevel;
14
+ constructor(logOption: string | LoggerOptions, logLevel?: LogLevel);
15
+ static getInstance(logOption: string | LoggerOptions, logLevel?: LogLevel): ModalityLogger;
16
+ private getTimestamp;
17
+ private shouldLog;
18
+ setLogLevel(level: LogLevel): void;
19
+ private format;
20
+ log(level: LogLevel, payload: any, categroy?: string): void;
21
+ debug(message: string, error?: Error): void;
22
+ info(message: string, data?: any): void;
23
+ warn(message: string, resolution: string): void;
24
+ error(message: string, error?: Error): void;
25
+ success(message: string, data?: any): void;
26
+ }
27
+ export declare const loggerInstance: typeof ModalityLogger.getInstance;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.1",
2
+ "version": "0.0.3",
3
3
  "name": "modality-kit",
4
4
  "repository": {
5
5
  "type": "git",
@@ -26,9 +26,10 @@
26
26
  "main": "./dist/index.js",
27
27
  "scripts": {
28
28
  "update-compile-sh": "yo reshow:compile-sh",
29
+ "build:clean": "find ./dist -name '*.*' | xargs rm -rf",
29
30
  "build:types": "bunx tsc -p ./",
30
31
  "build:src": "bun build src/index.ts --outdir dist",
31
- "build": "bun run build:src && bun run build:types",
32
+ "build": "bun run build:clean && bun run build:src && bun run build:types",
32
33
  "test": "npm run build",
33
34
  "prepublishOnly": "npm run test"
34
35
  },