promptopskit 0.0.1

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.
@@ -0,0 +1,17 @@
1
+ import { P as PromptAsset, R as ResolvedPromptAsset } from './schema-DHRI5Mzl.js';
2
+ import 'zod';
3
+
4
+ /**
5
+ * Create a mock PromptAsset for testing.
6
+ */
7
+ declare function createMockAsset(overrides?: Partial<PromptAsset>): PromptAsset;
8
+ /**
9
+ * Create a mock ResolvedPromptAsset for testing.
10
+ */
11
+ declare function createMockResolvedAsset(overrides?: Partial<ResolvedPromptAsset>): ResolvedPromptAsset;
12
+ /**
13
+ * Parse an inline prompt string for testing.
14
+ */
15
+ declare function parseTestPrompt(source: string): PromptAsset;
16
+
17
+ export { createMockAsset, createMockResolvedAsset, parseTestPrompt };
@@ -0,0 +1,44 @@
1
+ import {
2
+ parsePrompt
3
+ } from "./chunk-X64JII57.js";
4
+
5
+ // src/testing.ts
6
+ function createMockAsset(overrides = {}) {
7
+ return {
8
+ id: "test.prompt",
9
+ schema_version: 1,
10
+ provider: "openai",
11
+ model: "gpt-5.4",
12
+ sections: {
13
+ system_instructions: "You are a test assistant.",
14
+ prompt_template: "Hello {{ name }}"
15
+ },
16
+ ...overrides
17
+ };
18
+ }
19
+ function createMockResolvedAsset(overrides = {}) {
20
+ return {
21
+ id: "test.prompt",
22
+ schema_version: 1,
23
+ provider: "openai",
24
+ model: "gpt-5.4",
25
+ sections: {
26
+ system_instructions: "You are a test assistant.",
27
+ prompt_template: "Hello {{ name }}"
28
+ },
29
+ source: {
30
+ file_path: "test.md"
31
+ },
32
+ ...overrides
33
+ };
34
+ }
35
+ function parseTestPrompt(source) {
36
+ const { asset } = parsePrompt(source);
37
+ return asset;
38
+ }
39
+ export {
40
+ createMockAsset,
41
+ createMockResolvedAsset,
42
+ parseTestPrompt
43
+ };
44
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testing.ts"],"sourcesContent":["import { parsePrompt } from './parser/index.js';\r\nimport type { PromptAsset, ResolvedPromptAsset } from './schema/index.js';\r\n\r\n/**\r\n * Create a mock PromptAsset for testing.\r\n */\r\nexport function createMockAsset(overrides: Partial<PromptAsset> = {}): PromptAsset {\r\n return {\r\n id: 'test.prompt',\r\n schema_version: 1,\r\n provider: 'openai',\r\n model: 'gpt-5.4',\r\n sections: {\r\n system_instructions: 'You are a test assistant.',\r\n prompt_template: 'Hello {{ name }}',\r\n },\r\n ...overrides,\r\n };\r\n}\r\n\r\n/**\r\n * Create a mock ResolvedPromptAsset for testing.\r\n */\r\nexport function createMockResolvedAsset(\r\n overrides: Partial<ResolvedPromptAsset> = {},\r\n): ResolvedPromptAsset {\r\n return {\r\n id: 'test.prompt',\r\n schema_version: 1,\r\n provider: 'openai',\r\n model: 'gpt-5.4',\r\n sections: {\r\n system_instructions: 'You are a test assistant.',\r\n prompt_template: 'Hello {{ name }}',\r\n },\r\n source: {\r\n file_path: 'test.md',\r\n },\r\n ...overrides,\r\n } as ResolvedPromptAsset;\r\n}\r\n\r\n/**\r\n * Parse an inline prompt string for testing.\r\n */\r\nexport function parseTestPrompt(source: string): PromptAsset {\r\n const { asset } = parsePrompt(source);\r\n return asset;\r\n}\r\n"],"mappings":";;;;;AAMO,SAAS,gBAAgB,YAAkC,CAAC,GAAgB;AACjF,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,UAAU;AAAA,MACR,qBAAqB;AAAA,MACrB,iBAAiB;AAAA,IACnB;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAKO,SAAS,wBACd,YAA0C,CAAC,GACtB;AACrB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,UAAU;AAAA,MACR,qBAAqB;AAAA,MACrB,iBAAiB;AAAA,IACnB;AAAA,IACA,QAAQ;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAKO,SAAS,gBAAgB,QAA6B;AAC3D,QAAM,EAAE,MAAM,IAAI,YAAY,MAAM;AACpC,SAAO;AACT;","names":[]}
@@ -0,0 +1,40 @@
1
+ import { R as ResolvedPromptAsset } from './schema-DHRI5Mzl.js';
2
+
3
+ /**
4
+ * Provider-shaped request body output.
5
+ */
6
+ interface ProviderRequest {
7
+ body: Record<string, unknown>;
8
+ provider: string;
9
+ model: string;
10
+ }
11
+ /**
12
+ * Result of validating an asset against a provider.
13
+ */
14
+ interface ValidationResult {
15
+ valid: boolean;
16
+ errors: string[];
17
+ warnings: string[];
18
+ }
19
+ /**
20
+ * Options passed at render time.
21
+ */
22
+ interface RuntimeRenderOptions {
23
+ variables?: Record<string, string>;
24
+ history?: Array<{
25
+ role: string;
26
+ content: string;
27
+ }>;
28
+ toolRegistry?: Record<string, unknown>;
29
+ strict?: boolean;
30
+ }
31
+ /**
32
+ * Provider adapter interface. Each provider implements this.
33
+ */
34
+ interface ProviderAdapter {
35
+ name: string;
36
+ validate(asset: ResolvedPromptAsset): ValidationResult;
37
+ render(asset: ResolvedPromptAsset, runtime: RuntimeRenderOptions): ProviderRequest;
38
+ }
39
+
40
+ export type { ProviderAdapter as P, RuntimeRenderOptions as R, ValidationResult as V, ProviderRequest as a };
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "promptopskit",
3
+ "version": "0.0.1",
4
+ "description": "Manage prompts, system instructions, tools, and model settings as code",
5
+ "type": "module",
6
+ "bin": {
7
+ "promptopskit": "./dist/cli/index.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "module": "./dist/index.js",
11
+ "types": "./dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "import": "./dist/index.js",
15
+ "types": "./dist/index.d.ts"
16
+ },
17
+ "./testing": {
18
+ "import": "./dist/testing.js",
19
+ "types": "./dist/testing.d.ts"
20
+ },
21
+ "./openai": {
22
+ "import": "./dist/providers/openai.js",
23
+ "types": "./dist/providers/openai.d.ts"
24
+ },
25
+ "./anthropic": {
26
+ "import": "./dist/providers/anthropic.js",
27
+ "types": "./dist/providers/anthropic.d.ts"
28
+ },
29
+ "./gemini": {
30
+ "import": "./dist/providers/gemini.js",
31
+ "types": "./dist/providers/gemini.d.ts"
32
+ },
33
+ "./openrouter": {
34
+ "import": "./dist/providers/openrouter.js",
35
+ "types": "./dist/providers/openrouter.d.ts"
36
+ }
37
+ },
38
+ "files": [
39
+ "dist"
40
+ ],
41
+ "scripts": {
42
+ "build": "tsup",
43
+ "test": "vitest run",
44
+ "test:watch": "vitest",
45
+ "lint": "tsc --noEmit",
46
+ "clean": "rimraf dist"
47
+ },
48
+ "keywords": [
49
+ "prompt",
50
+ "llm",
51
+ "ai",
52
+ "openai",
53
+ "anthropic",
54
+ "gemini",
55
+ "prompt-engineering",
56
+ "prompt-management"
57
+ ],
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "https://github.com/PredictabilityAtScale/promptopskit.git"
61
+ },
62
+ "homepage": "https://github.com/PredictabilityAtScale/promptopskit",
63
+ "author": "Predictability at Scale, Inc.",
64
+ "license": "MIT",
65
+ "engines": {
66
+ "node": ">=20"
67
+ },
68
+ "dependencies": {
69
+ "gray-matter": "^4.0.3",
70
+ "zod": "^3.23.0"
71
+ },
72
+ "devDependencies": {
73
+ "@types/node": "^25.6.0",
74
+ "rimraf": "^6.0.0",
75
+ "tsup": "^8.5.1",
76
+ "typescript": "^5.5.0",
77
+ "vitest": "^4.1.4"
78
+ }
79
+ }