promptopskit 0.4.0 → 0.5.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 +98 -57
- package/SKILL.md +360 -6
- package/dist/chunk-6BOUQVSX.js +130 -0
- package/dist/chunk-6BOUQVSX.js.map +1 -0
- package/dist/{chunk-F6UJ73Y6.js → chunk-6VLKZCNS.js} +6 -4
- package/dist/chunk-6VLKZCNS.js.map +1 -0
- package/dist/{chunk-HWEVRBKZ.js → chunk-AGTGIZMR.js} +6 -2
- package/dist/chunk-AGTGIZMR.js.map +1 -0
- package/dist/{chunk-L2V7LDKD.js → chunk-D75HKF64.js} +6 -4
- package/dist/chunk-D75HKF64.js.map +1 -0
- package/dist/{chunk-UPTCSWK3.js → chunk-IN4KT5EU.js} +4 -3
- package/dist/chunk-IN4KT5EU.js.map +1 -0
- package/dist/{chunk-JBLUPKY4.js → chunk-K6ZU3CGV.js} +54 -6
- package/dist/chunk-K6ZU3CGV.js.map +1 -0
- package/dist/{chunk-XNNDGDPI.js → chunk-KN7H4JRK.js} +61 -4
- package/dist/chunk-KN7H4JRK.js.map +1 -0
- package/dist/{chunk-HLNVKKMS.js → chunk-LNGHGGJN.js} +6 -4
- package/dist/chunk-LNGHGGJN.js.map +1 -0
- package/dist/{chunk-RY5DVTLV.js → chunk-QK3WKE3K.js} +6 -4
- package/dist/chunk-QK3WKE3K.js.map +1 -0
- package/dist/cli/index.js +114 -55
- package/dist/cli/index.js.map +1 -1
- package/dist/index.cjs +265 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.js +32 -10
- package/dist/index.js.map +1 -1
- package/dist/providers/anthropic.cjs +114 -9
- package/dist/providers/anthropic.cjs.map +1 -1
- package/dist/providers/anthropic.d.cts +2 -2
- package/dist/providers/anthropic.d.ts +2 -2
- package/dist/providers/anthropic.js +3 -3
- package/dist/providers/gemini.cjs +114 -9
- package/dist/providers/gemini.cjs.map +1 -1
- package/dist/providers/gemini.d.cts +2 -2
- package/dist/providers/gemini.d.ts +2 -2
- package/dist/providers/gemini.js +3 -3
- package/dist/providers/llmasaservice.cjs +1467 -0
- package/dist/providers/llmasaservice.cjs.map +1 -0
- package/dist/providers/llmasaservice.d.cts +28 -0
- package/dist/providers/llmasaservice.d.ts +28 -0
- package/dist/providers/llmasaservice.js +20 -0
- package/dist/providers/llmasaservice.js.map +1 -0
- package/dist/providers/openai-responses.cjs +114 -9
- package/dist/providers/openai-responses.cjs.map +1 -1
- package/dist/providers/openai-responses.d.cts +2 -2
- package/dist/providers/openai-responses.d.ts +2 -2
- package/dist/providers/openai-responses.js +3 -3
- package/dist/providers/openai.cjs +114 -9
- package/dist/providers/openai.cjs.map +1 -1
- package/dist/providers/openai.d.cts +2 -2
- package/dist/providers/openai.d.ts +2 -2
- package/dist/providers/openai.js +3 -3
- package/dist/providers/openrouter.cjs +115 -9
- package/dist/providers/openrouter.cjs.map +1 -1
- package/dist/providers/openrouter.d.cts +2 -2
- package/dist/providers/openrouter.d.ts +2 -2
- package/dist/providers/openrouter.js +4 -4
- package/dist/{schema-B9A1zLRk.d.cts → schema-D-RI4w-k.d.cts} +695 -183
- package/dist/{schema-B9A1zLRk.d.ts → schema-D-RI4w-k.d.ts} +695 -183
- package/dist/testing.cjs +21 -4
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +1 -1
- package/dist/{types-DjGAwJxC.d.ts → types-B3dxBGu6.d.ts} +18 -6
- package/dist/{types-DpbzzZO2.d.cts → types-DbTAjlTN.d.cts} +18 -6
- package/dist/usagetap/index.cjs +6 -1
- package/dist/usagetap/index.cjs.map +1 -1
- package/dist/usagetap/index.d.cts +4 -3
- package/dist/usagetap/index.d.ts +4 -3
- package/dist/usagetap/index.js +3 -1
- package/package.json +11 -1
- package/dist/chunk-F6UJ73Y6.js.map +0 -1
- package/dist/chunk-HLNVKKMS.js.map +0 -1
- package/dist/chunk-HWEVRBKZ.js.map +0 -1
- package/dist/chunk-JBLUPKY4.js.map +0 -1
- package/dist/chunk-L2V7LDKD.js.map +0 -1
- package/dist/chunk-RY5DVTLV.js.map +0 -1
- package/dist/chunk-UPTCSWK3.js.map +0 -1
- package/dist/chunk-XNNDGDPI.js.map +0 -1
|
@@ -123,7 +123,8 @@ function mergeOverride(base, override) {
|
|
|
123
123
|
anthropic: mergeRecordBlock(result.raw?.anthropic, override.raw.anthropic),
|
|
124
124
|
gemini: mergeRecordBlock(result.raw?.gemini, override.raw.gemini),
|
|
125
125
|
google: mergeRecordBlock(result.raw?.google, override.raw.google),
|
|
126
|
-
openrouter: mergeRecordBlock(result.raw?.openrouter, override.raw.openrouter)
|
|
126
|
+
openrouter: mergeRecordBlock(result.raw?.openrouter, override.raw.openrouter),
|
|
127
|
+
llmasaservice: mergeRecordBlock(result.raw?.llmasaservice, override.raw.llmasaservice)
|
|
127
128
|
};
|
|
128
129
|
}
|
|
129
130
|
if (override.provider_options !== void 0) {
|
|
@@ -141,6 +142,10 @@ function mergeOverride(base, override) {
|
|
|
141
142
|
openrouter: {
|
|
142
143
|
...result.provider_options?.openrouter,
|
|
143
144
|
...override.provider_options.openrouter
|
|
145
|
+
},
|
|
146
|
+
llmasaservice: {
|
|
147
|
+
...result.provider_options?.llmasaservice,
|
|
148
|
+
...override.provider_options.llmasaservice
|
|
144
149
|
}
|
|
145
150
|
};
|
|
146
151
|
}
|
|
@@ -276,10 +281,26 @@ var OpenRouterProviderOptionsSchema = import_zod.z.object({
|
|
|
276
281
|
plugins: import_zod.z.array(import_zod.z.record(import_zod.z.unknown())).optional(),
|
|
277
282
|
models: import_zod.z.array(import_zod.z.string()).optional()
|
|
278
283
|
});
|
|
284
|
+
var LLMAsAServiceCustomerSchema = import_zod.z.object({
|
|
285
|
+
customer_id: import_zod.z.string(),
|
|
286
|
+
customer_name: import_zod.z.string().optional(),
|
|
287
|
+
customer_user_id: import_zod.z.string().optional(),
|
|
288
|
+
customer_user_name: import_zod.z.string().optional(),
|
|
289
|
+
customer_user_email: import_zod.z.string().optional()
|
|
290
|
+
});
|
|
291
|
+
var LLMAsAServiceProviderOptionsSchema = import_zod.z.object({
|
|
292
|
+
base_url: import_zod.z.string().url().optional(),
|
|
293
|
+
project_id: import_zod.z.string().optional(),
|
|
294
|
+
customer: LLMAsAServiceCustomerSchema.optional(),
|
|
295
|
+
conversationId: import_zod.z.string().optional(),
|
|
296
|
+
conversationTitle: import_zod.z.string().optional(),
|
|
297
|
+
projectId: import_zod.z.string().optional()
|
|
298
|
+
});
|
|
279
299
|
var ProviderOptionsSchema = import_zod.z.object({
|
|
280
300
|
anthropic: AnthropicProviderOptionsSchema.optional(),
|
|
281
301
|
gemini: GeminiProviderOptionsSchema.optional(),
|
|
282
|
-
openrouter: OpenRouterProviderOptionsSchema.optional()
|
|
302
|
+
openrouter: OpenRouterProviderOptionsSchema.optional(),
|
|
303
|
+
llmasaservice: LLMAsAServiceProviderOptionsSchema.optional()
|
|
283
304
|
});
|
|
284
305
|
var RawProviderBodySchema = import_zod.z.object({
|
|
285
306
|
openai: import_zod.z.record(import_zod.z.unknown()).optional(),
|
|
@@ -288,7 +309,8 @@ var RawProviderBodySchema = import_zod.z.object({
|
|
|
288
309
|
anthropic: import_zod.z.record(import_zod.z.unknown()).optional(),
|
|
289
310
|
gemini: import_zod.z.record(import_zod.z.unknown()).optional(),
|
|
290
311
|
google: import_zod.z.record(import_zod.z.unknown()).optional(),
|
|
291
|
-
openrouter: import_zod.z.record(import_zod.z.unknown()).optional()
|
|
312
|
+
openrouter: import_zod.z.record(import_zod.z.unknown()).optional(),
|
|
313
|
+
llmasaservice: import_zod.z.record(import_zod.z.unknown()).optional()
|
|
292
314
|
});
|
|
293
315
|
var OpenAICacheSchema = import_zod.z.object({
|
|
294
316
|
prompt_cache_key: import_zod.z.string().min(1).optional(),
|
|
@@ -375,7 +397,7 @@ var SectionsSchema = import_zod.z.object({
|
|
|
375
397
|
notes: import_zod.z.string().optional()
|
|
376
398
|
});
|
|
377
399
|
var PromptDefaultsSchema = import_zod.z.object({
|
|
378
|
-
provider: import_zod.z.enum(["openai", "openai-responses", "anthropic", "google", "gemini", "openrouter", "any"]).optional(),
|
|
400
|
+
provider: import_zod.z.enum(["openai", "openai-responses", "anthropic", "google", "gemini", "openrouter", "llmasaservice", "any"]).optional(),
|
|
379
401
|
model: import_zod.z.string().optional(),
|
|
380
402
|
cache: CacheSchema.optional(),
|
|
381
403
|
metadata: MetadataSchema.optional(),
|
|
@@ -387,7 +409,7 @@ var PromptAssetSchema = import_zod.z.object({
|
|
|
387
409
|
id: import_zod.z.string(),
|
|
388
410
|
schema_version: import_zod.z.number().int().positive().default(1),
|
|
389
411
|
description: import_zod.z.string().optional(),
|
|
390
|
-
provider: import_zod.z.enum(["openai", "openai-responses", "anthropic", "google", "gemini", "openrouter", "any"]).optional(),
|
|
412
|
+
provider: import_zod.z.enum(["openai", "openai-responses", "anthropic", "google", "gemini", "openrouter", "llmasaservice", "any"]).optional(),
|
|
391
413
|
model: import_zod.z.string().optional(),
|
|
392
414
|
fallback_models: import_zod.z.array(import_zod.z.string()).optional(),
|
|
393
415
|
reasoning: ReasoningSchema.optional(),
|
|
@@ -643,6 +665,7 @@ function mergeDefaults(base, local) {
|
|
|
643
665
|
return {
|
|
644
666
|
provider: local.provider ?? base.provider,
|
|
645
667
|
model: local.model ?? base.model,
|
|
668
|
+
cache: mergeCache(base.cache, local.cache),
|
|
646
669
|
metadata: {
|
|
647
670
|
...base.metadata ?? {},
|
|
648
671
|
...local.metadata ?? {}
|
|
@@ -654,10 +677,12 @@ function mergeDefaults(base, local) {
|
|
|
654
677
|
};
|
|
655
678
|
}
|
|
656
679
|
function applyDefaults(asset, defaults) {
|
|
680
|
+
const cache = mergeCache(defaults.cache, asset.cache);
|
|
657
681
|
const hasDefaultMetadata = defaults.metadata && Object.keys(defaults.metadata).length > 0;
|
|
658
682
|
const hasDefaultSystem = !!defaults.sections?.system_instructions;
|
|
659
683
|
const hasDefaultScalars = defaults.provider !== void 0 || defaults.model !== void 0;
|
|
660
|
-
|
|
684
|
+
const hasDefaultCache = cache !== void 0;
|
|
685
|
+
if (!hasDefaultMetadata && !hasDefaultSystem && !hasDefaultScalars && !hasDefaultCache) {
|
|
661
686
|
return asset;
|
|
662
687
|
}
|
|
663
688
|
const mergedMetadata = {
|
|
@@ -671,10 +696,38 @@ function applyDefaults(asset, defaults) {
|
|
|
671
696
|
...asset,
|
|
672
697
|
provider: asset.provider ?? defaults.provider,
|
|
673
698
|
model: asset.model ?? defaults.model,
|
|
699
|
+
cache,
|
|
674
700
|
metadata,
|
|
675
701
|
sections
|
|
676
702
|
};
|
|
677
703
|
}
|
|
704
|
+
function mergeCache(base, local) {
|
|
705
|
+
const merged = {
|
|
706
|
+
...base ?? {},
|
|
707
|
+
...local ?? {},
|
|
708
|
+
openai: {
|
|
709
|
+
...base?.openai ?? {},
|
|
710
|
+
...local?.openai ?? {}
|
|
711
|
+
},
|
|
712
|
+
anthropic: {
|
|
713
|
+
...base?.anthropic ?? {},
|
|
714
|
+
...local?.anthropic ?? {}
|
|
715
|
+
},
|
|
716
|
+
gemini: {
|
|
717
|
+
...base?.gemini ?? {},
|
|
718
|
+
...local?.gemini ?? {}
|
|
719
|
+
},
|
|
720
|
+
google: {
|
|
721
|
+
...base?.google ?? {},
|
|
722
|
+
...local?.google ?? {}
|
|
723
|
+
}
|
|
724
|
+
};
|
|
725
|
+
if (merged.openai && Object.keys(merged.openai).length === 0) delete merged.openai;
|
|
726
|
+
if (merged.anthropic && Object.keys(merged.anthropic).length === 0) delete merged.anthropic;
|
|
727
|
+
if (merged.gemini && Object.keys(merged.gemini).length === 0) delete merged.gemini;
|
|
728
|
+
if (merged.google && Object.keys(merged.google).length === 0) delete merged.google;
|
|
729
|
+
return Object.keys(merged).length > 0 ? merged : void 0;
|
|
730
|
+
}
|
|
678
731
|
|
|
679
732
|
// src/composition/resolve-includes.ts
|
|
680
733
|
async function resolveIncludes(asset, basePath, visited = /* @__PURE__ */ new Set()) {
|
|
@@ -1077,6 +1130,56 @@ function measureContextValueSize(value) {
|
|
|
1077
1130
|
return textEncoder.encode(value).length;
|
|
1078
1131
|
}
|
|
1079
1132
|
|
|
1133
|
+
// src/history.ts
|
|
1134
|
+
function defaultCompactHistory(info) {
|
|
1135
|
+
const content = info.overflow.map((message) => `${message.role}: ${message.content}`).join("\n\n");
|
|
1136
|
+
return {
|
|
1137
|
+
role: "user",
|
|
1138
|
+
content: `Earlier conversation compacted to preserve history:
|
|
1139
|
+
|
|
1140
|
+
${content}`
|
|
1141
|
+
};
|
|
1142
|
+
}
|
|
1143
|
+
function normalizeCompactionResult(result) {
|
|
1144
|
+
if (typeof result === "string") {
|
|
1145
|
+
return {
|
|
1146
|
+
role: "user",
|
|
1147
|
+
content: result
|
|
1148
|
+
};
|
|
1149
|
+
}
|
|
1150
|
+
return result;
|
|
1151
|
+
}
|
|
1152
|
+
function compactHistoryForPrompt(asset, runtime) {
|
|
1153
|
+
const history = runtime.history;
|
|
1154
|
+
const maxItems = asset.context?.history?.max_items;
|
|
1155
|
+
if (!history || maxItems === void 0 || history.length <= maxItems) {
|
|
1156
|
+
return history;
|
|
1157
|
+
}
|
|
1158
|
+
if (maxItems === 1) {
|
|
1159
|
+
const info2 = {
|
|
1160
|
+
promptId: asset.id,
|
|
1161
|
+
maxItems,
|
|
1162
|
+
overflow: history,
|
|
1163
|
+
preserved: [],
|
|
1164
|
+
history
|
|
1165
|
+
};
|
|
1166
|
+
const compacted2 = runtime.onHistoryCompaction ? normalizeCompactionResult(runtime.onHistoryCompaction(info2)) : defaultCompactHistory(info2);
|
|
1167
|
+
return [compacted2];
|
|
1168
|
+
}
|
|
1169
|
+
const preservedCount = maxItems - 1;
|
|
1170
|
+
const overflow = history.slice(0, history.length - preservedCount);
|
|
1171
|
+
const preserved = history.slice(-preservedCount);
|
|
1172
|
+
const info = {
|
|
1173
|
+
promptId: asset.id,
|
|
1174
|
+
maxItems,
|
|
1175
|
+
overflow,
|
|
1176
|
+
preserved,
|
|
1177
|
+
history
|
|
1178
|
+
};
|
|
1179
|
+
const compacted = runtime.onHistoryCompaction ? normalizeCompactionResult(runtime.onHistoryCompaction(info)) : defaultCompactHistory(info);
|
|
1180
|
+
return [compacted, ...preserved];
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1080
1183
|
// src/providers/prompt-input.ts
|
|
1081
1184
|
function isPromptLookup(input) {
|
|
1082
1185
|
return "path" in input && typeof input.path === "string";
|
|
@@ -1112,7 +1215,8 @@ function withPromptInputSupport(adapter) {
|
|
|
1112
1215
|
}
|
|
1113
1216
|
return adapter.render(resolved, {
|
|
1114
1217
|
...runtime,
|
|
1115
|
-
variables: sanitization.variables
|
|
1218
|
+
variables: sanitization.variables,
|
|
1219
|
+
history: compactHistoryForPrompt(resolved, runtime)
|
|
1116
1220
|
});
|
|
1117
1221
|
};
|
|
1118
1222
|
return {
|
|
@@ -1170,8 +1274,9 @@ var geminiAdapter = withPromptInputSupport({
|
|
|
1170
1274
|
strict: runtime.strict
|
|
1171
1275
|
});
|
|
1172
1276
|
const contents = [];
|
|
1173
|
-
|
|
1174
|
-
|
|
1277
|
+
const history = compactHistoryForPrompt(resolvedAsset, runtime);
|
|
1278
|
+
if (history) {
|
|
1279
|
+
for (const msg of history) {
|
|
1175
1280
|
contents.push({
|
|
1176
1281
|
role: msg.role === "assistant" ? "model" : "user",
|
|
1177
1282
|
parts: [{ text: msg.content }]
|