promptopskit 0.3.7 → 0.3.9

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.
Files changed (69) hide show
  1. package/README.md +37 -11
  2. package/SKILL.md +26 -3
  3. package/dist/{chunk-IXPIBZXT.js → chunk-4LEPCCSA.js} +60 -8
  4. package/dist/chunk-4LEPCCSA.js.map +1 -0
  5. package/dist/{chunk-5TLHYSP7.js → chunk-AN3OR7YC.js} +26 -3
  6. package/dist/chunk-AN3OR7YC.js.map +1 -0
  7. package/dist/{chunk-QPOHKVY5.js → chunk-LMURMZUA.js} +22 -3
  8. package/dist/chunk-LMURMZUA.js.map +1 -0
  9. package/dist/{chunk-KFSP5KN4.js → chunk-O6RQZYS4.js} +49 -7
  10. package/dist/chunk-O6RQZYS4.js.map +1 -0
  11. package/dist/{chunk-6XKV4YVK.js → chunk-V7QY7MRM.js} +85 -8
  12. package/dist/chunk-V7QY7MRM.js.map +1 -0
  13. package/dist/{chunk-DGLLQ3FR.js → chunk-YAD6COQX.js} +3 -3
  14. package/dist/chunk-YNIAA4ZJ.js +111 -0
  15. package/dist/chunk-YNIAA4ZJ.js.map +1 -0
  16. package/dist/cli/index.js +95 -11
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/index.cjs +354 -26
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +9 -5
  21. package/dist/index.d.ts +9 -5
  22. package/dist/index.js +28 -12
  23. package/dist/index.js.map +1 -1
  24. package/dist/providers/anthropic.cjs +189 -18
  25. package/dist/providers/anthropic.cjs.map +1 -1
  26. package/dist/providers/anthropic.d.cts +2 -2
  27. package/dist/providers/anthropic.d.ts +2 -2
  28. package/dist/providers/anthropic.js +3 -3
  29. package/dist/providers/gemini.cjs +166 -14
  30. package/dist/providers/gemini.cjs.map +1 -1
  31. package/dist/providers/gemini.d.cts +2 -2
  32. package/dist/providers/gemini.d.ts +2 -2
  33. package/dist/providers/gemini.js +3 -3
  34. package/dist/providers/openai-responses.cjs +1059 -0
  35. package/dist/providers/openai-responses.cjs.map +1 -0
  36. package/dist/providers/openai-responses.d.cts +11 -0
  37. package/dist/providers/openai-responses.d.ts +11 -0
  38. package/dist/providers/openai-responses.js +9 -0
  39. package/dist/providers/openai-responses.js.map +1 -0
  40. package/dist/providers/openai.cjs +162 -14
  41. package/dist/providers/openai.cjs.map +1 -1
  42. package/dist/providers/openai.d.cts +2 -2
  43. package/dist/providers/openai.d.ts +2 -2
  44. package/dist/providers/openai.js +3 -3
  45. package/dist/providers/openrouter.cjs +162 -14
  46. package/dist/providers/openrouter.cjs.map +1 -1
  47. package/dist/providers/openrouter.d.cts +2 -2
  48. package/dist/providers/openrouter.d.ts +2 -2
  49. package/dist/providers/openrouter.js +4 -4
  50. package/dist/schema-BKkg93rL.d.cts +1923 -0
  51. package/dist/schema-BKkg93rL.d.ts +1923 -0
  52. package/dist/testing.cjs +59 -7
  53. package/dist/testing.cjs.map +1 -1
  54. package/dist/testing.d.cts +1 -1
  55. package/dist/testing.d.ts +1 -1
  56. package/dist/testing.js +1 -1
  57. package/dist/{types-7U58bgVW.d.cts → types-7cC17GWp.d.cts} +24 -5
  58. package/dist/{types-HnZ46u5Q.d.ts → types-CsQ8tON_.d.ts} +24 -5
  59. package/dist/usagetap/index.d.cts +2 -2
  60. package/dist/usagetap/index.d.ts +2 -2
  61. package/package.json +11 -1
  62. package/dist/chunk-5TLHYSP7.js.map +0 -1
  63. package/dist/chunk-6XKV4YVK.js.map +0 -1
  64. package/dist/chunk-IXPIBZXT.js.map +0 -1
  65. package/dist/chunk-KFSP5KN4.js.map +0 -1
  66. package/dist/chunk-QPOHKVY5.js.map +0 -1
  67. package/dist/schema-Bgoff-CN.d.cts +0 -805
  68. package/dist/schema-Bgoff-CN.d.ts +0 -805
  69. /package/dist/{chunk-DGLLQ3FR.js.map → chunk-YAD6COQX.js.map} +0 -0
package/dist/cli/index.js CHANGED
@@ -39,7 +39,47 @@ var SamplingSchema = z.object({
39
39
  });
40
40
  var ResponseSchema = z.object({
41
41
  format: z.enum(["text", "json", "markdown"]).optional(),
42
- stream: z.boolean().optional()
42
+ stream: z.boolean().optional(),
43
+ schema: z.record(z.unknown()).optional(),
44
+ schema_name: z.string().optional(),
45
+ schema_strict: z.boolean().optional()
46
+ });
47
+ var AnthropicProviderOptionsSchema = z.object({
48
+ top_k: z.number().int().min(0).optional(),
49
+ tool_choice: z.record(z.unknown()).optional()
50
+ });
51
+ var GeminiProviderOptionsSchema = z.object({
52
+ candidate_count: z.number().int().positive().optional(),
53
+ top_k: z.number().int().min(0).optional(),
54
+ seed: z.number().int().optional(),
55
+ response_schema: z.record(z.unknown()).optional(),
56
+ response_modalities: z.array(z.string()).optional(),
57
+ thinking_budget_tokens: z.number().int().positive().optional()
58
+ });
59
+ var ProviderOptionsSchema = z.object({
60
+ anthropic: AnthropicProviderOptionsSchema.optional(),
61
+ gemini: GeminiProviderOptionsSchema.optional()
62
+ });
63
+ var OpenAICacheSchema = z.object({
64
+ prompt_cache_key: z.string().min(1).optional(),
65
+ retention: z.enum(["in_memory", "24h"]).optional()
66
+ });
67
+ var AnthropicCacheSchema = z.object({
68
+ mode: z.enum(["automatic", "explicit"]).optional(),
69
+ type: z.literal("ephemeral").optional(),
70
+ ttl: z.enum(["5m", "1h"]).optional(),
71
+ cache_system_instructions: z.boolean().optional(),
72
+ cache_tools: z.boolean().optional(),
73
+ cache_prompt_template: z.boolean().optional()
74
+ });
75
+ var GeminiCacheSchema = z.object({
76
+ cached_content: z.string().min(1).optional()
77
+ });
78
+ var CacheSchema = z.object({
79
+ openai: OpenAICacheSchema.optional(),
80
+ anthropic: AnthropicCacheSchema.optional(),
81
+ gemini: GeminiCacheSchema.optional(),
82
+ google: GeminiCacheSchema.optional()
43
83
  });
44
84
  var HistorySchema = z.object({
45
85
  max_items: z.number().int().positive().optional()
@@ -48,7 +88,14 @@ var ContextRegexSchema = z.union([
48
88
  z.string(),
49
89
  z.object({
50
90
  pattern: z.string(),
51
- flags: z.string().optional()
91
+ flags: z.string().optional(),
92
+ return_message: z.string().optional()
93
+ })
94
+ ]);
95
+ var ContextBuiltInValidatorSchema = z.union([
96
+ z.boolean(),
97
+ z.object({
98
+ return_message: z.string().optional()
52
99
  })
53
100
  ]);
54
101
  var ContextInputDefinitionObjectSchema = z.object({
@@ -57,8 +104,8 @@ var ContextInputDefinitionObjectSchema = z.object({
57
104
  trim: z.union([z.boolean(), z.enum(["start", "end", "both"])]).optional(),
58
105
  allow_regex: ContextRegexSchema.optional(),
59
106
  deny_regex: ContextRegexSchema.optional(),
60
- non_empty: z.boolean().optional(),
61
- reject_secrets: z.boolean().optional()
107
+ non_empty: ContextBuiltInValidatorSchema.optional(),
108
+ reject_secrets: ContextBuiltInValidatorSchema.optional()
62
109
  });
63
110
  var ContextInputDefinitionSchema = z.union([
64
111
  z.string(),
@@ -83,7 +130,9 @@ var PromptAssetOverridesSchema = z.object({
83
130
  reasoning: ReasoningSchema.optional(),
84
131
  sampling: SamplingSchema.optional(),
85
132
  response: ResponseSchema.optional(),
86
- tools: z.array(ToolRefSchema).optional()
133
+ cache: CacheSchema.optional(),
134
+ tools: z.array(ToolRefSchema).optional(),
135
+ provider_options: ProviderOptionsSchema.optional()
87
136
  });
88
137
  var SourceSchema = z.object({
89
138
  file_path: z.string().optional(),
@@ -95,8 +144,9 @@ var SectionsSchema = z.object({
95
144
  notes: z.string().optional()
96
145
  });
97
146
  var PromptDefaultsSchema = z.object({
98
- provider: z.enum(["openai", "anthropic", "google", "gemini", "openrouter", "any"]).optional(),
147
+ provider: z.enum(["openai", "openai-responses", "anthropic", "google", "gemini", "openrouter", "any"]).optional(),
99
148
  model: z.string().optional(),
149
+ cache: CacheSchema.optional(),
100
150
  metadata: MetadataSchema.optional(),
101
151
  sections: z.object({
102
152
  system_instructions: z.string().optional()
@@ -106,13 +156,15 @@ var PromptAssetSchema = z.object({
106
156
  id: z.string(),
107
157
  schema_version: z.number().int().positive().default(1),
108
158
  description: z.string().optional(),
109
- provider: z.enum(["openai", "anthropic", "google", "gemini", "openrouter", "any"]).optional(),
159
+ provider: z.enum(["openai", "openai-responses", "anthropic", "google", "gemini", "openrouter", "any"]).optional(),
110
160
  model: z.string().optional(),
111
161
  fallback_models: z.array(z.string()).optional(),
112
162
  reasoning: ReasoningSchema.optional(),
113
163
  sampling: SamplingSchema.optional(),
114
164
  response: ResponseSchema.optional(),
165
+ cache: CacheSchema.optional(),
115
166
  tools: z.array(ToolRefSchema).optional(),
167
+ provider_options: ProviderOptionsSchema.optional(),
116
168
  mcp: MCPSchema.optional(),
117
169
  context: ContextSchema.optional(),
118
170
  includes: z.array(z.string()).optional(),
@@ -360,8 +412,8 @@ function normalizeContextInput(input) {
360
412
  trim: input.trim,
361
413
  allow_regex: normalizeContextRegex(input.allow_regex),
362
414
  deny_regex: normalizeContextRegex(input.deny_regex),
363
- non_empty: input.non_empty,
364
- reject_secrets: input.reject_secrets
415
+ non_empty: normalizeBuiltInValidator(input.non_empty),
416
+ reject_secrets: normalizeBuiltInValidator(input.reject_secrets)
365
417
  };
366
418
  }
367
419
  function normalizeContextRegex(value) {
@@ -387,7 +439,19 @@ function normalizeContextRegex(value) {
387
439
  return {
388
440
  pattern: value.pattern,
389
441
  flags: value.flags ?? "",
390
- raw: JSON.stringify(value)
442
+ raw: JSON.stringify(value),
443
+ returnMessage: value.return_message
444
+ };
445
+ }
446
+ function normalizeBuiltInValidator(value) {
447
+ if (value === void 0 || value === false) {
448
+ return void 0;
449
+ }
450
+ if (value === true) {
451
+ return {};
452
+ }
453
+ return {
454
+ returnMessage: value.return_message
391
455
  };
392
456
  }
393
457
  function parseRegexLiteral(value) {
@@ -477,7 +541,8 @@ var KNOWN_FRONT_MATTER_KEYS = /* @__PURE__ */ new Set([
477
541
  "includes",
478
542
  "environments",
479
543
  "tiers",
480
- "metadata"
544
+ "metadata",
545
+ "cache"
481
546
  ]);
482
547
  function validateAsset(asset, frontMatterKeys, filePath) {
483
548
  const errors = [];
@@ -693,6 +758,20 @@ function mergeOverride(base, override) {
693
758
  if (override.response !== void 0) {
694
759
  result.response = { ...result.response, ...override.response };
695
760
  }
761
+ if (override.provider_options !== void 0) {
762
+ result.provider_options = {
763
+ ...result.provider_options,
764
+ ...override.provider_options,
765
+ anthropic: {
766
+ ...result.provider_options?.anthropic,
767
+ ...override.provider_options.anthropic
768
+ },
769
+ gemini: {
770
+ ...result.provider_options?.gemini,
771
+ ...override.provider_options.gemini
772
+ }
773
+ };
774
+ }
696
775
  return result;
697
776
  }
698
777
 
@@ -1099,6 +1178,11 @@ context:
1099
1178
  - app_context
1100
1179
  includes:
1101
1180
  - ./shared/tone.md
1181
+ cache:
1182
+ openai:
1183
+ # Keep this stable across requests that share a long static prefix.
1184
+ prompt_cache_key: hello-v1
1185
+ retention: in_memory
1102
1186
  reasoning:
1103
1187
  effort: high
1104
1188
  environments: