@kjerneverk/execution 1.0.4-dev.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/.kodrdriv-test-cache.json +6 -0
- package/LICENSE +191 -0
- package/README.md +127 -0
- package/dist/index.d.ts +243 -0
- package/dist/index.js +239 -0
- package/dist/index.js.map +1 -0
- package/output/kodrdriv/260110-1725-commit-message.md +1 -0
- package/output/kodrdriv/260110-1729-release-notes.md +40 -0
- package/output/kodrdriv/260112-2158-commit-message.md +1 -0
- package/output/kodrdriv/260112-2159-release-notes.md +40 -0
- package/output/kodrdriv/260112-2340-commit-message.md +1 -0
- package/output/kodrdriv/260113-0020-commit-message.md +1 -0
- package/output/kodrdriv/260113-0020-release-notes.md +44 -0
- package/output/kodrdriv/260115-0616-commit-message.md +4 -0
- package/output/kodrdriv/260115-0739-commit-message.md +1 -0
- package/output/kodrdriv/260126-0859-commit-message.md +1 -0
- package/output/kodrdriv/260126-0900-release-notes.md +39 -0
- package/output/kodrdriv/260128-0920-commit-message.md +1 -0
- package/output/kodrdriv/260128-0921-release-notes.md +28 -0
- package/output/kodrdriv/260128-0958-commit-message.md +1 -0
- package/output/kodrdriv/260128-1125-commit-message.md +1 -0
- package/output/kodrdriv/260128-1125-release-notes.md +23 -0
- package/output/kodrdriv/RELEASE_NOTES.md +21 -0
- package/output/kodrdriv/RELEASE_TITLE.md +1 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-10T21-21-52-315Z.md +143 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-11T01-23-22-124Z.md +143 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-11T01-25-08-866Z.md +97 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-13T05-58-11-519Z.md +97 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-13T07-40-40-824Z.md +97 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-13T08-20-00-799Z.md +114 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-15T14-16-15-608Z.md +100 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-15T15-39-39-094Z.md +97 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-26T16-59-03-463Z.md +152 -0
- package/output/kodrdriv/agentic-reflection-commit-2026-01-28T17-58-44-288Z.md +152 -0
- package/output/kodrdriv/agentic-reflection-release-2026-01-11T01-29-02-713Z.md +203 -0
- package/output/kodrdriv/agentic-reflection-release-2026-01-13T05-59-09-639Z.md +256 -0
- package/output/kodrdriv/agentic-reflection-release-2026-01-13T08-20-19-755Z.md +208 -0
- package/output/kodrdriv/agentic-reflection-release-2026-01-26T17-00-05-338Z.md +426 -0
- package/package.json +56 -0
- package/package.json~ +56 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
function createRequest(model) {
|
|
2
|
+
const messages = [];
|
|
3
|
+
return {
|
|
4
|
+
model,
|
|
5
|
+
messages,
|
|
6
|
+
responseFormat: void 0,
|
|
7
|
+
validator: void 0,
|
|
8
|
+
addMessage: (message) => {
|
|
9
|
+
messages.push(message);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const LIBRARY_NAME = "execution";
|
|
14
|
+
const DEFAULT_LOGGER = {
|
|
15
|
+
name: "default",
|
|
16
|
+
debug: (message, ...args) => console.debug(message, ...args),
|
|
17
|
+
info: (message, ...args) => console.info(message, ...args),
|
|
18
|
+
warn: (message, ...args) => console.warn(message, ...args),
|
|
19
|
+
error: (message, ...args) => console.error(message, ...args),
|
|
20
|
+
verbose: () => {
|
|
21
|
+
},
|
|
22
|
+
silly: () => {
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
function wrapLogger(toWrap, name) {
|
|
26
|
+
const requiredMethods = [
|
|
27
|
+
"debug",
|
|
28
|
+
"info",
|
|
29
|
+
"warn",
|
|
30
|
+
"error",
|
|
31
|
+
"verbose",
|
|
32
|
+
"silly"
|
|
33
|
+
];
|
|
34
|
+
const missingMethods = requiredMethods.filter(
|
|
35
|
+
(method) => typeof toWrap[method] !== "function"
|
|
36
|
+
);
|
|
37
|
+
if (missingMethods.length > 0) {
|
|
38
|
+
throw new Error(
|
|
39
|
+
`Logger is missing required methods: ${missingMethods.join(", ")}`
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
const log = (level, message, ...args) => {
|
|
43
|
+
message = `[${LIBRARY_NAME}] ${name ? `[${name}]` : ""}: ${message}`;
|
|
44
|
+
if (level === "debug") toWrap.debug(message, ...args);
|
|
45
|
+
else if (level === "info") toWrap.info(message, ...args);
|
|
46
|
+
else if (level === "warn") toWrap.warn(message, ...args);
|
|
47
|
+
else if (level === "error") toWrap.error(message, ...args);
|
|
48
|
+
else if (level === "verbose") toWrap.verbose(message, ...args);
|
|
49
|
+
else if (level === "silly") toWrap.silly(message, ...args);
|
|
50
|
+
};
|
|
51
|
+
return {
|
|
52
|
+
name: "wrapped",
|
|
53
|
+
debug: (message, ...args) => log("debug", message, ...args),
|
|
54
|
+
info: (message, ...args) => log("info", message, ...args),
|
|
55
|
+
warn: (message, ...args) => log("warn", message, ...args),
|
|
56
|
+
error: (message, ...args) => log("error", message, ...args),
|
|
57
|
+
verbose: (message, ...args) => log("verbose", message, ...args),
|
|
58
|
+
silly: (message, ...args) => log("silly", message, ...args)
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
class ModelRegistry {
|
|
62
|
+
configs;
|
|
63
|
+
cache;
|
|
64
|
+
logger;
|
|
65
|
+
constructor(logger) {
|
|
66
|
+
this.configs = [];
|
|
67
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
68
|
+
this.logger = wrapLogger(logger || DEFAULT_LOGGER, "ModelRegistry");
|
|
69
|
+
this.registerDefaults();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Register default model configurations
|
|
73
|
+
*/
|
|
74
|
+
registerDefaults() {
|
|
75
|
+
this.register({
|
|
76
|
+
pattern: /.*/,
|
|
77
|
+
personaRole: "system",
|
|
78
|
+
encoding: "gpt-4o",
|
|
79
|
+
supportsToolCalls: true,
|
|
80
|
+
family: "unknown",
|
|
81
|
+
description: "Default fallback configuration"
|
|
82
|
+
});
|
|
83
|
+
this.register({
|
|
84
|
+
pattern: /^claude/i,
|
|
85
|
+
personaRole: "system",
|
|
86
|
+
encoding: "cl100k_base",
|
|
87
|
+
supportsToolCalls: true,
|
|
88
|
+
family: "claude",
|
|
89
|
+
description: "Claude family models"
|
|
90
|
+
});
|
|
91
|
+
this.register({
|
|
92
|
+
pattern: /^o\d+/i,
|
|
93
|
+
personaRole: "developer",
|
|
94
|
+
encoding: "gpt-4o",
|
|
95
|
+
supportsToolCalls: true,
|
|
96
|
+
family: "o-series",
|
|
97
|
+
description: "O-series reasoning models"
|
|
98
|
+
});
|
|
99
|
+
this.register({
|
|
100
|
+
pattern: /^gpt-4/i,
|
|
101
|
+
personaRole: "system",
|
|
102
|
+
encoding: "gpt-4o",
|
|
103
|
+
supportsToolCalls: true,
|
|
104
|
+
family: "gpt-4",
|
|
105
|
+
description: "GPT-4 family models"
|
|
106
|
+
});
|
|
107
|
+
this.register({
|
|
108
|
+
pattern: /^gemini/i,
|
|
109
|
+
personaRole: "system",
|
|
110
|
+
encoding: "cl100k_base",
|
|
111
|
+
supportsToolCalls: true,
|
|
112
|
+
family: "gemini",
|
|
113
|
+
description: "Gemini family models"
|
|
114
|
+
});
|
|
115
|
+
this.logger.debug("Registered default model configurations");
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Register a model configuration
|
|
119
|
+
*/
|
|
120
|
+
register(config) {
|
|
121
|
+
if (!config.pattern && !config.exactMatch) {
|
|
122
|
+
throw new Error("Model config must have either pattern or exactMatch");
|
|
123
|
+
}
|
|
124
|
+
this.configs.unshift(config);
|
|
125
|
+
this.cache.clear();
|
|
126
|
+
this.logger.debug("Registered model config", {
|
|
127
|
+
family: config.family,
|
|
128
|
+
pattern: config.pattern?.source,
|
|
129
|
+
exactMatch: config.exactMatch
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Get configuration for a model
|
|
134
|
+
*/
|
|
135
|
+
getConfig(model) {
|
|
136
|
+
if (this.cache.has(model)) {
|
|
137
|
+
return this.cache.get(model);
|
|
138
|
+
}
|
|
139
|
+
for (const config of this.configs) {
|
|
140
|
+
if (config.exactMatch && config.exactMatch === model) {
|
|
141
|
+
this.cache.set(model, config);
|
|
142
|
+
return config;
|
|
143
|
+
}
|
|
144
|
+
if (config.pattern && config.pattern.test(model)) {
|
|
145
|
+
this.cache.set(model, config);
|
|
146
|
+
return config;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
throw new Error(`No configuration found for model: ${model}`);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get persona role for a model
|
|
153
|
+
*/
|
|
154
|
+
getPersonaRole(model) {
|
|
155
|
+
return this.getConfig(model).personaRole;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Get tokenizer encoding for a model
|
|
159
|
+
*/
|
|
160
|
+
getEncoding(model) {
|
|
161
|
+
return this.getConfig(model).encoding;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Check if model supports tool calls
|
|
165
|
+
*/
|
|
166
|
+
supportsToolCalls(model) {
|
|
167
|
+
return this.getConfig(model).supportsToolCalls ?? true;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get model family
|
|
171
|
+
*/
|
|
172
|
+
getFamily(model) {
|
|
173
|
+
return this.getConfig(model).family;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Clear all registered configs and reset to defaults
|
|
177
|
+
*/
|
|
178
|
+
reset() {
|
|
179
|
+
this.configs = [];
|
|
180
|
+
this.cache.clear();
|
|
181
|
+
this.registerDefaults();
|
|
182
|
+
this.logger.debug("Reset model configurations to defaults");
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Clear cache
|
|
186
|
+
*/
|
|
187
|
+
clearCache() {
|
|
188
|
+
this.cache.clear();
|
|
189
|
+
this.logger.debug("Cleared model configuration cache");
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Get all registered configurations
|
|
193
|
+
*/
|
|
194
|
+
getAllConfigs() {
|
|
195
|
+
return [...this.configs];
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
let globalRegistry = null;
|
|
199
|
+
function getModelRegistry(logger) {
|
|
200
|
+
if (!globalRegistry) {
|
|
201
|
+
globalRegistry = new ModelRegistry(logger);
|
|
202
|
+
}
|
|
203
|
+
return globalRegistry;
|
|
204
|
+
}
|
|
205
|
+
function resetModelRegistry() {
|
|
206
|
+
globalRegistry = null;
|
|
207
|
+
}
|
|
208
|
+
function getPersonaRole(model) {
|
|
209
|
+
return getModelRegistry().getPersonaRole(model);
|
|
210
|
+
}
|
|
211
|
+
function getEncoding(model) {
|
|
212
|
+
return getModelRegistry().getEncoding(model);
|
|
213
|
+
}
|
|
214
|
+
function supportsToolCalls(model) {
|
|
215
|
+
return getModelRegistry().supportsToolCalls(model);
|
|
216
|
+
}
|
|
217
|
+
function getModelFamily(model) {
|
|
218
|
+
return getModelRegistry().getFamily(model);
|
|
219
|
+
}
|
|
220
|
+
function configureModel(config) {
|
|
221
|
+
getModelRegistry().register(config);
|
|
222
|
+
}
|
|
223
|
+
const VERSION = "0.0.1";
|
|
224
|
+
export {
|
|
225
|
+
DEFAULT_LOGGER,
|
|
226
|
+
LIBRARY_NAME,
|
|
227
|
+
ModelRegistry,
|
|
228
|
+
VERSION,
|
|
229
|
+
configureModel,
|
|
230
|
+
createRequest,
|
|
231
|
+
getEncoding,
|
|
232
|
+
getModelFamily,
|
|
233
|
+
getModelRegistry,
|
|
234
|
+
getPersonaRole,
|
|
235
|
+
resetModelRegistry,
|
|
236
|
+
supportsToolCalls,
|
|
237
|
+
wrapLogger
|
|
238
|
+
};
|
|
239
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/logger.ts","../src/model-registry.ts","../src/index.ts"],"sourcesContent":["/**\n * Execution Package - Core Types\n *\n * Defines the fundamental types for LLM execution across providers.\n */\n\n// ===== ROLE AND MODEL TYPES =====\n\n/**\n * Message role in a conversation\n */\nexport type Role = 'user' | 'assistant' | 'system' | 'developer' | 'tool';\n\n/**\n * Model identifier - flexible string to support any model\n */\nexport type Model = string;\n\n/**\n * Model role mapping for persona/system messages\n */\nexport type PersonaRole = 'system' | 'developer';\n\n/**\n * Tokenizer encoding to use for token counting\n */\nexport type TokenizerEncoding = 'gpt-4o' | 'cl100k_base' | 'o200k_base';\n\n// ===== MESSAGE TYPES =====\n\n/**\n * A message in a conversation\n */\nexport interface Message {\n role: Role;\n content: string | string[] | null;\n name?: string;\n}\n\n/**\n * Tool call made by the assistant\n */\nexport interface ToolCall {\n id: string;\n type: 'function';\n function: {\n name: string;\n arguments: string;\n };\n}\n\n/**\n * Message in a conversation (compatible with OpenAI format)\n */\nexport interface ConversationMessage {\n role: 'system' | 'user' | 'assistant' | 'tool' | 'developer';\n content: string | null;\n name?: string;\n tool_calls?: ToolCall[];\n tool_call_id?: string;\n}\n\n// ===== REQUEST TYPES =====\n\n/**\n * LLM request interface\n */\nexport interface Request {\n messages: Message[];\n model: Model;\n responseFormat?: any;\n validator?: any;\n addMessage(message: Message): void;\n}\n\n/**\n * Create a new request object\n */\nexport function createRequest(model: Model): Request {\n const messages: Message[] = [];\n\n return {\n model,\n messages,\n responseFormat: undefined,\n validator: undefined,\n addMessage: (message: Message) => {\n messages.push(message);\n },\n };\n}\n\n// ===== PROVIDER TYPES =====\n\n/**\n * Response from an LLM provider\n */\nexport interface ProviderResponse {\n content: string;\n model: string;\n usage?: {\n inputTokens: number;\n outputTokens: number;\n };\n toolCalls?: ToolCall[];\n}\n\n/**\n * Options for execution\n */\nexport interface ExecutionOptions {\n apiKey?: string;\n model?: string;\n temperature?: number;\n maxTokens?: number;\n timeout?: number;\n retries?: number;\n}\n\n/**\n * Provider interface for LLM execution\n */\nexport interface Provider {\n /**\n * Provider name (e.g., 'openai', 'anthropic', 'gemini')\n */\n readonly name: string;\n\n /**\n * Execute a request against this provider\n */\n execute(request: Request, options?: ExecutionOptions): Promise<ProviderResponse>;\n\n /**\n * Check if this provider supports a given model\n */\n supportsModel?(model: Model): boolean;\n}\n\n// ===== MODEL CONFIGURATION =====\n\n/**\n * Configuration for a model or model family\n */\nexport interface ModelConfig {\n pattern?: RegExp;\n exactMatch?: string;\n personaRole: PersonaRole;\n encoding: TokenizerEncoding;\n supportsToolCalls?: boolean;\n maxTokens?: number;\n family?: string;\n description?: string;\n}\n\n","/**\n * Execution Package - Logger\n *\n * Shared logging infrastructure for execution packages.\n */\n\n/* eslint-disable no-var */\ndeclare var console: {\n debug: (message: string, ...args: any[]) => void;\n info: (message: string, ...args: any[]) => void;\n warn: (message: string, ...args: any[]) => void;\n error: (message: string, ...args: any[]) => void;\n};\n/* eslint-enable no-var */\n\nexport const LIBRARY_NAME = 'execution';\n\nexport interface Logger {\n name: string;\n debug: (message: string, ...args: any[]) => void;\n info: (message: string, ...args: any[]) => void;\n warn: (message: string, ...args: any[]) => void;\n error: (message: string, ...args: any[]) => void;\n verbose: (message: string, ...args: any[]) => void;\n silly: (message: string, ...args: any[]) => void;\n}\n\n \nexport const DEFAULT_LOGGER: Logger = {\n name: 'default',\n debug: (message: string, ...args: any[]) => console.debug(message, ...args),\n info: (message: string, ...args: any[]) => console.info(message, ...args),\n warn: (message: string, ...args: any[]) => console.warn(message, ...args),\n error: (message: string, ...args: any[]) => console.error(message, ...args),\n verbose: () => {},\n silly: () => {},\n};\n \n\nexport function wrapLogger(toWrap: Logger, name?: string): Logger {\n const requiredMethods: (keyof Logger)[] = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'verbose',\n 'silly',\n ];\n const missingMethods = requiredMethods.filter(\n (method) => typeof toWrap[method] !== 'function'\n );\n\n if (missingMethods.length > 0) {\n throw new Error(\n `Logger is missing required methods: ${missingMethods.join(', ')}`\n );\n }\n\n const log = (level: keyof Logger, message: string, ...args: any[]) => {\n message = `[${LIBRARY_NAME}] ${name ? `[${name}]` : ''}: ${message}`;\n\n if (level === 'debug') toWrap.debug(message, ...args);\n else if (level === 'info') toWrap.info(message, ...args);\n else if (level === 'warn') toWrap.warn(message, ...args);\n else if (level === 'error') toWrap.error(message, ...args);\n else if (level === 'verbose') toWrap.verbose(message, ...args);\n else if (level === 'silly') toWrap.silly(message, ...args);\n };\n\n return {\n name: 'wrapped',\n debug: (message: string, ...args: any[]) => log('debug', message, ...args),\n info: (message: string, ...args: any[]) => log('info', message, ...args),\n warn: (message: string, ...args: any[]) => log('warn', message, ...args),\n error: (message: string, ...args: any[]) => log('error', message, ...args),\n verbose: (message: string, ...args: any[]) =>\n log('verbose', message, ...args),\n silly: (message: string, ...args: any[]) => log('silly', message, ...args),\n };\n}\n\n","/**\n * Execution Package - Model Registry\n *\n * Provides a flexible, user-configurable system for model detection and configuration.\n */\n\nimport { DEFAULT_LOGGER, wrapLogger, type Logger } from './logger.js';\nimport type { ModelConfig, PersonaRole, TokenizerEncoding } from './types.js';\n\n/**\n * Model registry for managing model configurations\n */\nexport class ModelRegistry {\n private configs: ModelConfig[];\n private cache: Map<string, ModelConfig>;\n private logger: Logger;\n\n constructor(logger?: Logger) {\n this.configs = [];\n this.cache = new Map();\n this.logger = wrapLogger(logger || DEFAULT_LOGGER, 'ModelRegistry');\n\n // Register default configurations\n this.registerDefaults();\n }\n\n /**\n * Register default model configurations\n */\n private registerDefaults(): void {\n // Default fallback (Registered first so it ends up last with unshift)\n this.register({\n pattern: /.*/,\n personaRole: 'system',\n encoding: 'gpt-4o',\n supportsToolCalls: true,\n family: 'unknown',\n description: 'Default fallback configuration',\n });\n\n // Claude family (uses 'system' role)\n this.register({\n pattern: /^claude/i,\n personaRole: 'system',\n encoding: 'cl100k_base',\n supportsToolCalls: true,\n family: 'claude',\n description: 'Claude family models',\n });\n\n // O-series models (uses 'developer' role)\n this.register({\n pattern: /^o\\d+/i,\n personaRole: 'developer',\n encoding: 'gpt-4o',\n supportsToolCalls: true,\n family: 'o-series',\n description: 'O-series reasoning models',\n });\n\n // GPT-4 family (uses 'system' role)\n this.register({\n pattern: /^gpt-4/i,\n personaRole: 'system',\n encoding: 'gpt-4o',\n supportsToolCalls: true,\n family: 'gpt-4',\n description: 'GPT-4 family models',\n });\n\n // Gemini family\n this.register({\n pattern: /^gemini/i,\n personaRole: 'system',\n encoding: 'cl100k_base',\n supportsToolCalls: true,\n family: 'gemini',\n description: 'Gemini family models',\n });\n\n this.logger.debug('Registered default model configurations');\n }\n\n /**\n * Register a model configuration\n */\n register(config: ModelConfig): void {\n if (!config.pattern && !config.exactMatch) {\n throw new Error('Model config must have either pattern or exactMatch');\n }\n\n this.configs.unshift(config);\n this.cache.clear();\n\n this.logger.debug('Registered model config', {\n family: config.family,\n pattern: config.pattern?.source,\n exactMatch: config.exactMatch,\n });\n }\n\n /**\n * Get configuration for a model\n */\n getConfig(model: string): ModelConfig {\n if (this.cache.has(model)) {\n return this.cache.get(model)!;\n }\n\n for (const config of this.configs) {\n if (config.exactMatch && config.exactMatch === model) {\n this.cache.set(model, config);\n return config;\n }\n\n if (config.pattern && config.pattern.test(model)) {\n this.cache.set(model, config);\n return config;\n }\n }\n\n throw new Error(`No configuration found for model: ${model}`);\n }\n\n /**\n * Get persona role for a model\n */\n getPersonaRole(model: string): PersonaRole {\n return this.getConfig(model).personaRole;\n }\n\n /**\n * Get tokenizer encoding for a model\n */\n getEncoding(model: string): TokenizerEncoding {\n return this.getConfig(model).encoding;\n }\n\n /**\n * Check if model supports tool calls\n */\n supportsToolCalls(model: string): boolean {\n return this.getConfig(model).supportsToolCalls ?? true;\n }\n\n /**\n * Get model family\n */\n getFamily(model: string): string | undefined {\n return this.getConfig(model).family;\n }\n\n /**\n * Clear all registered configs and reset to defaults\n */\n reset(): void {\n this.configs = [];\n this.cache.clear();\n this.registerDefaults();\n this.logger.debug('Reset model configurations to defaults');\n }\n\n /**\n * Clear cache\n */\n clearCache(): void {\n this.cache.clear();\n this.logger.debug('Cleared model configuration cache');\n }\n\n /**\n * Get all registered configurations\n */\n getAllConfigs(): ModelConfig[] {\n return [...this.configs];\n }\n}\n\n// Global registry instance\nlet globalRegistry: ModelRegistry | null = null;\n\n/**\n * Get the global model registry\n */\nexport function getModelRegistry(logger?: Logger): ModelRegistry {\n if (!globalRegistry) {\n globalRegistry = new ModelRegistry(logger);\n }\n return globalRegistry;\n}\n\n/**\n * Reset the global registry\n */\nexport function resetModelRegistry(): void {\n globalRegistry = null;\n}\n\n/**\n * Helper functions using global registry\n */\nexport function getPersonaRole(model: string): PersonaRole {\n return getModelRegistry().getPersonaRole(model);\n}\n\nexport function getEncoding(model: string): TokenizerEncoding {\n return getModelRegistry().getEncoding(model);\n}\n\nexport function supportsToolCalls(model: string): boolean {\n return getModelRegistry().supportsToolCalls(model);\n}\n\nexport function getModelFamily(model: string): string | undefined {\n return getModelRegistry().getFamily(model);\n}\n\n/**\n * Configure a custom model\n */\nexport function configureModel(config: ModelConfig): void {\n getModelRegistry().register(config);\n}\n\nexport default ModelRegistry;\n\n","/**\n * Execution Package\n *\n * Core interfaces and types for LLM execution providers.\n * This package contains no provider-specific dependencies.\n *\n * @packageDocumentation\n */\n\n// Types\nexport type {\n Role,\n Model,\n PersonaRole,\n TokenizerEncoding,\n Message,\n ToolCall,\n ConversationMessage,\n Request,\n ProviderResponse,\n ExecutionOptions,\n Provider,\n ModelConfig,\n} from './types.js';\n\nexport { createRequest } from './types.js';\n\n// Logger\nexport type { Logger } from './logger.js';\nexport { DEFAULT_LOGGER, wrapLogger, LIBRARY_NAME } from './logger.js';\n\n// Model Registry\nexport {\n ModelRegistry,\n getModelRegistry,\n resetModelRegistry,\n getPersonaRole,\n getEncoding,\n supportsToolCalls,\n getModelFamily,\n configureModel,\n} from './model-registry.js';\n\n/**\n * Package version\n */\nexport const VERSION = '0.0.1';\n"],"names":[],"mappings":"AA8EO,SAAS,cAAc,OAAuB;AACjD,QAAM,WAAsB,CAAA;AAE5B,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,YAAY,CAAC,YAAqB;AAC9B,eAAS,KAAK,OAAO;AAAA,IACzB;AAAA,EAAA;AAER;AC3EO,MAAM,eAAe;AAarB,MAAM,iBAAyB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO,CAAC,YAAoB,SAAgB,QAAQ,MAAM,SAAS,GAAG,IAAI;AAAA,EAC1E,MAAM,CAAC,YAAoB,SAAgB,QAAQ,KAAK,SAAS,GAAG,IAAI;AAAA,EACxE,MAAM,CAAC,YAAoB,SAAgB,QAAQ,KAAK,SAAS,GAAG,IAAI;AAAA,EACxE,OAAO,CAAC,YAAoB,SAAgB,QAAQ,MAAM,SAAS,GAAG,IAAI;AAAA,EAC1E,SAAS,MAAM;AAAA,EAAC;AAAA,EAChB,OAAO,MAAM;AAAA,EAAC;AAClB;AAGO,SAAS,WAAW,QAAgB,MAAuB;AAC9D,QAAM,kBAAoC;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ,QAAM,iBAAiB,gBAAgB;AAAA,IACnC,CAAC,WAAW,OAAO,OAAO,MAAM,MAAM;AAAA,EAAA;AAG1C,MAAI,eAAe,SAAS,GAAG;AAC3B,UAAM,IAAI;AAAA,MACN,uCAAuC,eAAe,KAAK,IAAI,CAAC;AAAA,IAAA;AAAA,EAExE;AAEA,QAAM,MAAM,CAAC,OAAqB,YAAoB,SAAgB;AAClE,cAAU,IAAI,YAAY,KAAK,OAAO,IAAI,IAAI,MAAM,EAAE,KAAK,OAAO;AAElE,QAAI,UAAU,QAAS,QAAO,MAAM,SAAS,GAAG,IAAI;AAAA,aAC3C,UAAU,OAAQ,QAAO,KAAK,SAAS,GAAG,IAAI;AAAA,aAC9C,UAAU,OAAQ,QAAO,KAAK,SAAS,GAAG,IAAI;AAAA,aAC9C,UAAU,QAAS,QAAO,MAAM,SAAS,GAAG,IAAI;AAAA,aAChD,UAAU,UAAW,QAAO,QAAQ,SAAS,GAAG,IAAI;AAAA,aACpD,UAAU,QAAS,QAAO,MAAM,SAAS,GAAG,IAAI;AAAA,EAC7D;AAEA,SAAO;AAAA,IACH,MAAM;AAAA,IACN,OAAO,CAAC,YAAoB,SAAgB,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,IACzE,MAAM,CAAC,YAAoB,SAAgB,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,IACvE,MAAM,CAAC,YAAoB,SAAgB,IAAI,QAAQ,SAAS,GAAG,IAAI;AAAA,IACvE,OAAO,CAAC,YAAoB,SAAgB,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,IACzE,SAAS,CAAC,YAAoB,SAC1B,IAAI,WAAW,SAAS,GAAG,IAAI;AAAA,IACnC,OAAO,CAAC,YAAoB,SAAgB,IAAI,SAAS,SAAS,GAAG,IAAI;AAAA,EAAA;AAEjF;ACnEO,MAAM,cAAc;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,QAAiB;AACzB,SAAK,UAAU,CAAA;AACf,SAAK,4BAAY,IAAA;AACjB,SAAK,SAAS,WAAW,UAAU,gBAAgB,eAAe;AAGlE,SAAK,iBAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,mBAAyB;AAE7B,SAAK,SAAS;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,MACb,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,QAAQ;AAAA,MACR,aAAa;AAAA,IAAA,CAChB;AAGD,SAAK,SAAS;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,MACb,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,QAAQ;AAAA,MACR,aAAa;AAAA,IAAA,CAChB;AAGD,SAAK,SAAS;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,MACb,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,QAAQ;AAAA,MACR,aAAa;AAAA,IAAA,CAChB;AAGD,SAAK,SAAS;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,MACb,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,QAAQ;AAAA,MACR,aAAa;AAAA,IAAA,CAChB;AAGD,SAAK,SAAS;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,MACb,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,QAAQ;AAAA,MACR,aAAa;AAAA,IAAA,CAChB;AAED,SAAK,OAAO,MAAM,yCAAyC;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,QAA2B;AAChC,QAAI,CAAC,OAAO,WAAW,CAAC,OAAO,YAAY;AACvC,YAAM,IAAI,MAAM,qDAAqD;AAAA,IACzE;AAEA,SAAK,QAAQ,QAAQ,MAAM;AAC3B,SAAK,MAAM,MAAA;AAEX,SAAK,OAAO,MAAM,2BAA2B;AAAA,MACzC,QAAQ,OAAO;AAAA,MACf,SAAS,OAAO,SAAS;AAAA,MACzB,YAAY,OAAO;AAAA,IAAA,CACtB;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,OAA4B;AAClC,QAAI,KAAK,MAAM,IAAI,KAAK,GAAG;AACvB,aAAO,KAAK,MAAM,IAAI,KAAK;AAAA,IAC/B;AAEA,eAAW,UAAU,KAAK,SAAS;AAC/B,UAAI,OAAO,cAAc,OAAO,eAAe,OAAO;AAClD,aAAK,MAAM,IAAI,OAAO,MAAM;AAC5B,eAAO;AAAA,MACX;AAEA,UAAI,OAAO,WAAW,OAAO,QAAQ,KAAK,KAAK,GAAG;AAC9C,aAAK,MAAM,IAAI,OAAO,MAAM;AAC5B,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,UAAM,IAAI,MAAM,qCAAqC,KAAK,EAAE;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,OAA4B;AACvC,WAAO,KAAK,UAAU,KAAK,EAAE;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,OAAkC;AAC1C,WAAO,KAAK,UAAU,KAAK,EAAE;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,OAAwB;AACtC,WAAO,KAAK,UAAU,KAAK,EAAE,qBAAqB;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,OAAmC;AACzC,WAAO,KAAK,UAAU,KAAK,EAAE;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACV,SAAK,UAAU,CAAA;AACf,SAAK,MAAM,MAAA;AACX,SAAK,iBAAA;AACL,SAAK,OAAO,MAAM,wCAAwC;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACf,SAAK,MAAM,MAAA;AACX,SAAK,OAAO,MAAM,mCAAmC;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKA,gBAA+B;AAC3B,WAAO,CAAC,GAAG,KAAK,OAAO;AAAA,EAC3B;AACJ;AAGA,IAAI,iBAAuC;AAKpC,SAAS,iBAAiB,QAAgC;AAC7D,MAAI,CAAC,gBAAgB;AACjB,qBAAiB,IAAI,cAAc,MAAM;AAAA,EAC7C;AACA,SAAO;AACX;AAKO,SAAS,qBAA2B;AACvC,mBAAiB;AACrB;AAKO,SAAS,eAAe,OAA4B;AACvD,SAAO,iBAAA,EAAmB,eAAe,KAAK;AAClD;AAEO,SAAS,YAAY,OAAkC;AAC1D,SAAO,iBAAA,EAAmB,YAAY,KAAK;AAC/C;AAEO,SAAS,kBAAkB,OAAwB;AACtD,SAAO,iBAAA,EAAmB,kBAAkB,KAAK;AACrD;AAEO,SAAS,eAAe,OAAmC;AAC9D,SAAO,iBAAA,EAAmB,UAAU,KAAK;AAC7C;AAKO,SAAS,eAAe,QAA2B;AACtD,mBAAA,EAAmB,SAAS,MAAM;AACtC;AChLO,MAAM,UAAU;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
test: delete legacy src/*.test.ts after moving tests to tests/
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# @riotprompt/execution v0.0.2 — test suite moved to tests/ and coverage enabled by default
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
This release focuses on developer tooling: it reorganizes the unit test layout, enables Vitest v8 coverage reporting, and tightens up publish/test scripts.
|
|
5
|
+
|
|
6
|
+
## Changes
|
|
7
|
+
|
|
8
|
+
### Tests: move to `tests/`
|
|
9
|
+
- Unit tests were moved from `src/*.test.ts` into `tests/`.
|
|
10
|
+
- Legacy `src/*.test.ts` files were removed after the move.
|
|
11
|
+
- Test imports were updated to reference `../src/...` instead of relative imports from within `src/`.
|
|
12
|
+
|
|
13
|
+
**Why it matters:** keeps source files and tests separated, simplifies coverage targeting, and avoids mixing production and test code under `src/`.
|
|
14
|
+
|
|
15
|
+
### Coverage: enabled with V8 provider
|
|
16
|
+
- `npm test` now runs `vitest run --coverage` (coverage is on by default).
|
|
17
|
+
- Added `@vitest/coverage-v8` and configured coverage output:
|
|
18
|
+
- Reporters: `text`, `json`, and `html`
|
|
19
|
+
- Coverage includes `src/**/*.ts`
|
|
20
|
+
- Expanded excludes to avoid counting build output and config files (e.g. `dist/**`, `node_modules/`, `vitest.config.ts`, `vite.config.ts`, `eslint.config.mjs`).
|
|
21
|
+
|
|
22
|
+
**Why it matters:** makes coverage available in CI and locally without extra flags, and produces a machine-readable JSON report.
|
|
23
|
+
|
|
24
|
+
### Package scripts and publishing hygiene
|
|
25
|
+
- Added `clean` script (`rm -rf dist`).
|
|
26
|
+
- Added `prepublishOnly` to ensure a clean, fresh build when publishing (`clean` + `build`).
|
|
27
|
+
- Added `precommit` convenience script (`lint` + `test`).
|
|
28
|
+
|
|
29
|
+
**Impact for developers:**
|
|
30
|
+
- Publishing will now always rebuild from a clean `dist/` state.
|
|
31
|
+
- Running tests will generate coverage artifacts and may take slightly longer.
|
|
32
|
+
|
|
33
|
+
### Metadata / housekeeping
|
|
34
|
+
- Bumped package version: `0.0.1` → `0.0.2`.
|
|
35
|
+
- Repository URL changed from `git+https://...` to `https://...`.
|
|
36
|
+
- Test cache metadata file (`.kodrdriv-test-cache.json`) was updated (no runtime impact).
|
|
37
|
+
|
|
38
|
+
## Breaking changes
|
|
39
|
+
- No runtime/API breaking changes were detected in this range.
|
|
40
|
+
- Developer/CI consideration: if your workflows assumed tests lived under `src/**` or expected `npm test` to run without coverage, update them accordingly.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
chore(release): bump @riotprompt/execution to 0.0.3
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# @riotprompt/execution 0.0.3 — CI/runtime toolchain update (Node 24) and lockfile removal
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
This release is primarily maintenance/ops work:
|
|
5
|
+
- CI and publish workflows now run on **Node.js 24**.
|
|
6
|
+
- Workflows switched from `npm ci` to `npm install`.
|
|
7
|
+
- The repository no longer tracks `package-lock.json` (it’s now gitignored).
|
|
8
|
+
|
|
9
|
+
There are **no library API changes** in this diff; the package contents/exports remain the same.
|
|
10
|
+
|
|
11
|
+
## Changes
|
|
12
|
+
### CI / Release automation
|
|
13
|
+
- **GitHub Actions now uses Node 24** for both test and publish workflows.
|
|
14
|
+
- **Dependency install step changed**:
|
|
15
|
+
- `npm ci` → `npm install` in `test.yml`
|
|
16
|
+
- `npm ci --verbose --foreground-scripts` → `npm install --verbose --foreground-scripts` in `npm-publish.yml`
|
|
17
|
+
- The `test.yml` workflow also no longer configures the npm cache via `actions/setup-node`.
|
|
18
|
+
|
|
19
|
+
### Repository hygiene
|
|
20
|
+
- **`package-lock.json` is no longer committed** and is now listed in `.gitignore`.
|
|
21
|
+
|
|
22
|
+
### Version
|
|
23
|
+
- Package version bumped from **0.0.2 → 0.0.3**.
|
|
24
|
+
|
|
25
|
+
## Why it matters
|
|
26
|
+
- **More consistent CI environment**: running tests/publish on Node 24 ensures the repo stays aligned with the current Node major.
|
|
27
|
+
- **Unblocks CI/publish without a lockfile**: `npm ci` requires a committed lockfile; switching to `npm install` keeps workflows functional when `package-lock.json` is intentionally not tracked.
|
|
28
|
+
- **Less lockfile churn**: avoiding `package-lock.json` changes reduces noisy diffs for a library package.
|
|
29
|
+
|
|
30
|
+
## Impact
|
|
31
|
+
### For package consumers
|
|
32
|
+
- No expected impact. This release does not include runtime or public API changes.
|
|
33
|
+
|
|
34
|
+
### For contributors / maintainers
|
|
35
|
+
- Expect CI to validate against **Node 24**.
|
|
36
|
+
- Local `npm install` may generate a `package-lock.json`, but it is **ignored** and should not be committed.
|
|
37
|
+
|
|
38
|
+
## Breaking changes
|
|
39
|
+
- No breaking API changes detected.
|
|
40
|
+
- **Potential tooling break for contributors**: if you rely on a committed `package-lock.json` (e.g., for reproducible installs or certain CI setups), you’ll need to adjust, since the repo now ignores it and GitHub Actions no longer uses `npm ci`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
chore(build): switch to ESM-only output, require Node 24, and target ES2024
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
chore(release): bump @riotprompt/execution to 0.0.4
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# @riotprompt/execution v0.0.4 — ESM-only build, Node 24+ requirement, ES2024 target
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
This release is primarily a packaging/build update. `@riotprompt/execution` now ships **ESM-only** output, targets **ES2024**, and declares **Node.js >= 24** support.
|
|
5
|
+
|
|
6
|
+
## Breaking changes
|
|
7
|
+
### ESM-only distribution (CommonJS removed)
|
|
8
|
+
- The package no longer builds or publishes a CommonJS (`.cjs`) entry.
|
|
9
|
+
- `package.json` exports now provide **only** an ESM `import` path.
|
|
10
|
+
|
|
11
|
+
**Impact**
|
|
12
|
+
- Consumers using `require('@riotprompt/execution')` will no longer be able to load the package.
|
|
13
|
+
|
|
14
|
+
**Migration**
|
|
15
|
+
- Switch to ESM imports:
|
|
16
|
+
```js
|
|
17
|
+
import { /* ... */ } from "@riotprompt/execution";
|
|
18
|
+
```
|
|
19
|
+
- If you must stay in CommonJS, you’ll need to load via dynamic import from CJS:
|
|
20
|
+
```js
|
|
21
|
+
const mod = await import("@riotprompt/execution");
|
|
22
|
+
```
|
|
23
|
+
(or use a bundler/transpilation step that supports consuming ESM dependencies).
|
|
24
|
+
|
|
25
|
+
### Node.js 24+ required
|
|
26
|
+
- `package.json` now includes:
|
|
27
|
+
- `engines.node: >=24.0.0`
|
|
28
|
+
|
|
29
|
+
**Impact**
|
|
30
|
+
- Install/use on Node 22/20/etc. may fail (or be blocked depending on your package manager settings).
|
|
31
|
+
|
|
32
|
+
## Build and tooling changes
|
|
33
|
+
- TypeScript target/lib updated from **ES2022** to **ES2024**.
|
|
34
|
+
- Vite library build now outputs only **ES** format:
|
|
35
|
+
- Output filename is always `dist/index.js`.
|
|
36
|
+
- `main` now points to `./dist/index.js`.
|
|
37
|
+
|
|
38
|
+
## What didn’t change
|
|
39
|
+
- No functional/API changes are indicated in this diff—this release is focused on how the package is built and consumed.
|
|
40
|
+
|
|
41
|
+
## Upgrade checklist
|
|
42
|
+
- Ensure your runtime is **Node 24+**.
|
|
43
|
+
- Ensure your project can consume **ESM-only** dependencies (or migrate your usage to `import` / dynamic import).
|
|
44
|
+
- If you previously depended on `dist/index.cjs` or the `exports.require` entry, update your integration accordingly.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
chore(precommit): run build before lint and tests
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
chore(release): bump @riotprompt/execution to 1.0.0
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 1.0.0 — Stable release + repo hygiene updates
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This release is primarily about graduating `@riotprompt/execution` to a stable **1.0.0** version and tightening up a couple of repository/developer workflows. There are **no functional code changes** in this range (no changes to `src/`), and no API surface changes were detected.
|
|
6
|
+
|
|
7
|
+
Compared to `v0.0.4`, this release contains **5 commits** and changes **3 files** (`package.json`, `README.md`, `.gitignore`).
|
|
8
|
+
|
|
9
|
+
## Changes
|
|
10
|
+
|
|
11
|
+
### Versioning / release metadata
|
|
12
|
+
- Bumped package version to **1.0.0** in `package.json`.
|
|
13
|
+
- Added internal release bookkeeping metadata (`_versionReset`) to record the version reset date.
|
|
14
|
+
|
|
15
|
+
**Impact**
|
|
16
|
+
- Consumers should see this as the stable 1.0.0 release of the existing package.
|
|
17
|
+
- No runtime behavior changes are introduced by this version bump itself.
|
|
18
|
+
|
|
19
|
+
### Developer workflow
|
|
20
|
+
- Updated the `precommit` script to run **build before lint and tests**:
|
|
21
|
+
- `npm run build && npm run lint && npm run test`
|
|
22
|
+
|
|
23
|
+
**Impact**
|
|
24
|
+
- Commits will now fail earlier if the build is broken (at the cost of doing a build on every precommit run).
|
|
25
|
+
- If your local environment isn’t set up to build successfully (e.g., missing prerequisites), you’ll hit that earlier in the commit process.
|
|
26
|
+
|
|
27
|
+
### Repo hygiene
|
|
28
|
+
- Updated `.gitignore` to ignore `.kodrdriv*` internal files.
|
|
29
|
+
|
|
30
|
+
**Impact**
|
|
31
|
+
- Helps prevent accidentally committing local tooling artifacts.
|
|
32
|
+
|
|
33
|
+
### Documentation
|
|
34
|
+
- Added a `<!-- v1.0.0 -->` marker comment to `README.md` (release bookkeeping).
|
|
35
|
+
|
|
36
|
+
## Breaking changes
|
|
37
|
+
|
|
38
|
+
- **None detected** in the diff from `main` to `HEAD`.
|
|
39
|
+
- This change set does not modify production source files; it is primarily versioning and workflow cleanup.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
No changes detected; nothing to commit.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Release 1.0.1
|
|
2
|
+
|
|
3
|
+
### Overview
|
|
4
|
+
Version 1.0.1 introduces important updates and fixes related to the execution provider interfaces, addressing key issues identified in earlier releases. This release aims to enhance functionality and reliability for both users and developers, with a focus on improving the workflow for handling various versions and dependencies.
|
|
5
|
+
|
|
6
|
+
### Key Changes
|
|
7
|
+
1. **Improvements and Fixes**:
|
|
8
|
+
- **Dependency Management**: Adjustments were made in the `package.json` to update the dependency versions, ensuring compatibility and addressing potential security vulnerabilities.
|
|
9
|
+
- **Workflow Enhancements**: The CI/CD workflow defined in `.github/workflows/npm-publish.yml` has been refined to better handle npm publishing and version tagging, facilitating smoother deployments.
|
|
10
|
+
|
|
11
|
+
### Problems Solved
|
|
12
|
+
- Issues regarding the handling of development dependencies have been tackled, ensuring that the package allows for explicit version overrides and resolves conflicts more effectively during the ingestion of new library versions.
|
|
13
|
+
- Streamlined workflows reduce manual overhead and increase reliability in the deployment process, which is critical for continuous integration environments.
|
|
14
|
+
|
|
15
|
+
### Impact
|
|
16
|
+
- **Users**: Improvements in dependency management enhance application stability and security. Users can expect fewer issues when installing and upgrading packages in their projects.
|
|
17
|
+
- **Developers**: Developers benefit from a refined workflow that automates more steps in the publishing process, allowing them to focus on coding rather than manual steps.
|
|
18
|
+
|
|
19
|
+
### Breaking Changes
|
|
20
|
+
- No breaking changes were detected in this release. However, a manual review is recommended for any API changes that might affect existing integrations.
|
|
21
|
+
|
|
22
|
+
### Dependencies
|
|
23
|
+
- There were no files found importing the updated `package.json`, indicating a stable transition to using the library without immediate impacts on other components of the codebase.
|
|
24
|
+
|
|
25
|
+
### Related Tests
|
|
26
|
+
- Testing for the updates to `package.json` has been noted, ensuring that all functionalities are covered and suitable for the new version.
|
|
27
|
+
|
|
28
|
+
This release marks a significant step in the evolution of the application, continuing the trajectory of improvements and refinements that address both user and developer needs.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
chore: bump package.json version
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
No changes detected; the target file does not exist or may have been deleted.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Version 1.0.3
|
|
2
|
+
|
|
3
|
+
### Overview
|
|
4
|
+
Version 1.0.3 includes vital updates to the package management and build processes. This release focuses on solving issues related to dependency management and enhancing the efficiency of automated workflows.
|
|
5
|
+
|
|
6
|
+
### Changes Made
|
|
7
|
+
- Updated the package manager configuration in `package.json`.
|
|
8
|
+
- Modified the scripts associated with the package to streamline the build and test processes.
|
|
9
|
+
- Overall, there are 10 significant changes — 5 insertions and 5 deletions in the `package.json` file.
|
|
10
|
+
|
|
11
|
+
### Key Enhancements
|
|
12
|
+
- **Dependency Management:** This release ensures better detection of npm tags, specifically for prerelease versions, improving the publishing workflow.
|
|
13
|
+
- **Improved Build Process:** Enhancements to the npm lifecycle scripts (`clean`, `build`, `test`, etc.) have been made, ensuring a more efficient development cycle.
|
|
14
|
+
|
|
15
|
+
### Impact on Users
|
|
16
|
+
- Users will benefit from smoother installation and upgrade processes for package dependencies, thanks to improved handling of version tags.
|
|
17
|
+
- Developers will find the new build and test scripts to be more modular and reliable, facilitating easier integration and continuous deployment practices.
|
|
18
|
+
|
|
19
|
+
### Breaking Changes
|
|
20
|
+
- No breaking changes have been identified in this release. However, a manual review of API changes is recommended to ensure compatibility.
|
|
21
|
+
|
|
22
|
+
### Conclusion
|
|
23
|
+
This release is a crucial step in refining the development workflow and package management for the project, primarily focusing on enhancing user experience and developer efficiency.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
### Overview
|
|
2
|
+
Version 1.0.3 includes vital updates to the package management and build processes. This release focuses on solving issues related to dependency management and enhancing the efficiency of automated workflows.
|
|
3
|
+
|
|
4
|
+
### Changes Made
|
|
5
|
+
- Updated the package manager configuration in `package.json`.
|
|
6
|
+
- Modified the scripts associated with the package to streamline the build and test processes.
|
|
7
|
+
- Overall, there are 10 significant changes — 5 insertions and 5 deletions in the `package.json` file.
|
|
8
|
+
|
|
9
|
+
### Key Enhancements
|
|
10
|
+
- **Dependency Management:** This release ensures better detection of npm tags, specifically for prerelease versions, improving the publishing workflow.
|
|
11
|
+
- **Improved Build Process:** Enhancements to the npm lifecycle scripts (`clean`, `build`, `test`, etc.) have been made, ensuring a more efficient development cycle.
|
|
12
|
+
|
|
13
|
+
### Impact on Users
|
|
14
|
+
- Users will benefit from smoother installation and upgrade processes for package dependencies, thanks to improved handling of version tags.
|
|
15
|
+
- Developers will find the new build and test scripts to be more modular and reliable, facilitating easier integration and continuous deployment practices.
|
|
16
|
+
|
|
17
|
+
### Breaking Changes
|
|
18
|
+
- No breaking changes have been identified in this release. However, a manual review of API changes is recommended to ensure compatibility.
|
|
19
|
+
|
|
20
|
+
### Conclusion
|
|
21
|
+
This release is a crucial step in refining the development workflow and package management for the project, primarily focusing on enhancing user experience and developer efficiency.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Version 1.0.3
|