@opencontextprotocol/agent 0.1.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/LICENSE +21 -0
- package/README.md +198 -0
- package/dist/src/agent.d.ts +112 -0
- package/dist/src/agent.d.ts.map +1 -0
- package/dist/src/agent.js +358 -0
- package/dist/src/agent.js.map +1 -0
- package/dist/src/context.d.ts +108 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +196 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/errors.d.ts +40 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +63 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/headers.d.ts +63 -0
- package/dist/src/headers.d.ts.map +1 -0
- package/dist/src/headers.js +238 -0
- package/dist/src/headers.js.map +1 -0
- package/dist/src/http_client.d.ts +82 -0
- package/dist/src/http_client.d.ts.map +1 -0
- package/dist/src/http_client.js +181 -0
- package/dist/src/http_client.js.map +1 -0
- package/dist/src/index.d.ts +25 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +35 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/registry.d.ts +52 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js +164 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/src/schema_discovery.d.ts +149 -0
- package/dist/src/schema_discovery.d.ts.map +1 -0
- package/dist/src/schema_discovery.js +707 -0
- package/dist/src/schema_discovery.js.map +1 -0
- package/dist/src/schemas/ocp-context.json +138 -0
- package/dist/src/storage.d.ts +110 -0
- package/dist/src/storage.d.ts.map +1 -0
- package/dist/src/storage.js +399 -0
- package/dist/src/storage.js.map +1 -0
- package/dist/src/validation.d.ts +169 -0
- package/dist/src/validation.d.ts.map +1 -0
- package/dist/src/validation.js +92 -0
- package/dist/src/validation.js.map +1 -0
- package/dist/tests/agent.test.d.ts +5 -0
- package/dist/tests/agent.test.d.ts.map +1 -0
- package/dist/tests/agent.test.js +536 -0
- package/dist/tests/agent.test.js.map +1 -0
- package/dist/tests/context.test.d.ts +5 -0
- package/dist/tests/context.test.d.ts.map +1 -0
- package/dist/tests/context.test.js +285 -0
- package/dist/tests/context.test.js.map +1 -0
- package/dist/tests/headers.test.d.ts +5 -0
- package/dist/tests/headers.test.d.ts.map +1 -0
- package/dist/tests/headers.test.js +356 -0
- package/dist/tests/headers.test.js.map +1 -0
- package/dist/tests/http_client.test.d.ts +5 -0
- package/dist/tests/http_client.test.d.ts.map +1 -0
- package/dist/tests/http_client.test.js +373 -0
- package/dist/tests/http_client.test.js.map +1 -0
- package/dist/tests/registry.test.d.ts +5 -0
- package/dist/tests/registry.test.d.ts.map +1 -0
- package/dist/tests/registry.test.js +232 -0
- package/dist/tests/registry.test.js.map +1 -0
- package/dist/tests/schema_discovery.test.d.ts +5 -0
- package/dist/tests/schema_discovery.test.d.ts.map +1 -0
- package/dist/tests/schema_discovery.test.js +1074 -0
- package/dist/tests/schema_discovery.test.js.map +1 -0
- package/dist/tests/storage.test.d.ts +5 -0
- package/dist/tests/storage.test.d.ts.map +1 -0
- package/dist/tests/storage.test.js +414 -0
- package/dist/tests/storage.test.js.map +1 -0
- package/dist/tests/validation.test.d.ts +5 -0
- package/dist/tests/validation.test.d.ts.map +1 -0
- package/dist/tests/validation.test.js +254 -0
- package/dist/tests/validation.test.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for OCP validation functionality.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, test, expect } from '@jest/globals';
|
|
5
|
+
import { validateContext, validateContextDict, ValidationResult, getSchema, validateAndFixContext, OCP_CONTEXT_SCHEMA, } from '../src/validation.js';
|
|
6
|
+
import { AgentContext } from '../src/context.js';
|
|
7
|
+
describe('ValidationResult', () => {
|
|
8
|
+
test('valid result', () => {
|
|
9
|
+
const result = new ValidationResult(true);
|
|
10
|
+
expect(result.valid).toBe(true);
|
|
11
|
+
expect(result.errors).toEqual([]);
|
|
12
|
+
// In JavaScript, objects are always truthy, so we check .valid directly
|
|
13
|
+
expect(result.valid).toBe(true);
|
|
14
|
+
expect(result.toString()).toBe('Valid OCP context');
|
|
15
|
+
});
|
|
16
|
+
test('invalid result', () => {
|
|
17
|
+
const errors = ['Error 1', 'Error 2'];
|
|
18
|
+
const result = new ValidationResult(false, errors);
|
|
19
|
+
expect(result.valid).toBe(false);
|
|
20
|
+
expect(result.errors).toEqual(errors);
|
|
21
|
+
// In JavaScript, objects are always truthy, so we check .valid directly
|
|
22
|
+
expect(result.valid).toBe(false);
|
|
23
|
+
expect(result.toString()).toBe('Invalid OCP context: Error 1; Error 2');
|
|
24
|
+
});
|
|
25
|
+
test('invalid result with no errors', () => {
|
|
26
|
+
const result = new ValidationResult(false);
|
|
27
|
+
expect(result.valid).toBe(false);
|
|
28
|
+
expect(result.errors).toEqual([]);
|
|
29
|
+
expect(result.toString()).toBe('Invalid OCP context: ');
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe('Context Validation', () => {
|
|
33
|
+
test('validate valid context', () => {
|
|
34
|
+
const context = new AgentContext({
|
|
35
|
+
agent_type: 'ide_copilot',
|
|
36
|
+
user: 'test_user',
|
|
37
|
+
workspace: 'test_workspace',
|
|
38
|
+
current_goal: 'test_goal',
|
|
39
|
+
});
|
|
40
|
+
const result = validateContext(context);
|
|
41
|
+
expect(result.valid).toBe(true);
|
|
42
|
+
expect(result.errors).toEqual([]);
|
|
43
|
+
});
|
|
44
|
+
test('validate minimal context', () => {
|
|
45
|
+
const context = new AgentContext({ agent_type: 'generic_agent' });
|
|
46
|
+
const result = validateContext(context);
|
|
47
|
+
expect(result.valid).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
test('validate context with custom agent type', () => {
|
|
50
|
+
const context = new AgentContext({ agent_type: 'custom_agent' });
|
|
51
|
+
const result = validateContext(context);
|
|
52
|
+
// Should be valid since any string is allowed
|
|
53
|
+
expect(result.valid).toBe(true);
|
|
54
|
+
expect(result.errors.length).toBe(0);
|
|
55
|
+
});
|
|
56
|
+
test('validate context missing agent type', () => {
|
|
57
|
+
const context = new AgentContext({ agent_type: '' });
|
|
58
|
+
const result = validateContext(context);
|
|
59
|
+
// Empty string should still be valid if the schema allows it
|
|
60
|
+
// The schema now just requires type: string, not specific values
|
|
61
|
+
expect(result.valid).toBe(true);
|
|
62
|
+
});
|
|
63
|
+
test('validate context with all fields', () => {
|
|
64
|
+
const context = new AgentContext({
|
|
65
|
+
agent_type: 'ide_copilot',
|
|
66
|
+
user: 'developer',
|
|
67
|
+
workspace: '/home/user/project',
|
|
68
|
+
current_file: 'main.js',
|
|
69
|
+
current_goal: 'debug error',
|
|
70
|
+
context_summary: 'Working on bug fix',
|
|
71
|
+
error_context: 'NullPointerException at line 42',
|
|
72
|
+
});
|
|
73
|
+
// Add some history and changes
|
|
74
|
+
context.addInteraction('tool_call', 'https://api.test.com', 'success');
|
|
75
|
+
context.addRecentChange('Modified main.js');
|
|
76
|
+
context.addApiSpec('test_api', 'https://api.test.com/openapi.json');
|
|
77
|
+
const result = validateContext(context);
|
|
78
|
+
expect(result.valid).toBe(true);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('Dict Validation', () => {
|
|
82
|
+
test('validate valid dict', () => {
|
|
83
|
+
const contextDict = {
|
|
84
|
+
context_id: 'ocp-12345678',
|
|
85
|
+
agent_type: 'ide_copilot',
|
|
86
|
+
user: 'test_user',
|
|
87
|
+
workspace: 'test_workspace',
|
|
88
|
+
current_file: null,
|
|
89
|
+
session: {
|
|
90
|
+
start_time: '2024-01-01T00:00:00Z',
|
|
91
|
+
interaction_count: 0,
|
|
92
|
+
agent_type: 'ide_copilot',
|
|
93
|
+
},
|
|
94
|
+
history: [],
|
|
95
|
+
current_goal: 'test_goal',
|
|
96
|
+
context_summary: null,
|
|
97
|
+
error_context: null,
|
|
98
|
+
recent_changes: [],
|
|
99
|
+
api_specs: {},
|
|
100
|
+
created_at: new Date().toISOString(),
|
|
101
|
+
last_updated: new Date().toISOString(),
|
|
102
|
+
};
|
|
103
|
+
const result = validateContextDict(contextDict);
|
|
104
|
+
expect(result.valid).toBe(true);
|
|
105
|
+
});
|
|
106
|
+
test('validate minimal dict', () => {
|
|
107
|
+
const contextDict = {
|
|
108
|
+
context_id: 'ocp-abcd1234',
|
|
109
|
+
agent_type: 'generic_agent',
|
|
110
|
+
user: null,
|
|
111
|
+
workspace: null,
|
|
112
|
+
current_file: null,
|
|
113
|
+
session: {
|
|
114
|
+
start_time: '2024-01-01T00:00:00Z',
|
|
115
|
+
interaction_count: 0,
|
|
116
|
+
agent_type: 'generic_agent',
|
|
117
|
+
},
|
|
118
|
+
history: [],
|
|
119
|
+
current_goal: null,
|
|
120
|
+
context_summary: null,
|
|
121
|
+
error_context: null,
|
|
122
|
+
recent_changes: [],
|
|
123
|
+
api_specs: {},
|
|
124
|
+
created_at: new Date().toISOString(),
|
|
125
|
+
last_updated: new Date().toISOString(),
|
|
126
|
+
};
|
|
127
|
+
const result = validateContextDict(contextDict);
|
|
128
|
+
expect(result.valid).toBe(true);
|
|
129
|
+
});
|
|
130
|
+
test('validate invalid context id', () => {
|
|
131
|
+
const contextDict = {
|
|
132
|
+
context_id: 'invalid-id',
|
|
133
|
+
agent_type: 'generic_agent',
|
|
134
|
+
};
|
|
135
|
+
const result = validateContextDict(contextDict);
|
|
136
|
+
// The validation should fail due to missing required fields more than pattern mismatch
|
|
137
|
+
// This should fail validation
|
|
138
|
+
expect(result.valid).toBe(false);
|
|
139
|
+
expect(result.errors.length).toBeGreaterThan(0);
|
|
140
|
+
});
|
|
141
|
+
test('validate missing required fields', () => {
|
|
142
|
+
const contextDict = {};
|
|
143
|
+
const result = validateContextDict(contextDict);
|
|
144
|
+
expect(result.valid).toBe(false);
|
|
145
|
+
expect(result.errors.length).toBeGreaterThan(0);
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
describe('Schema Utilities', () => {
|
|
149
|
+
test('get schema', () => {
|
|
150
|
+
const schema = getSchema();
|
|
151
|
+
expect(typeof schema).toBe('object');
|
|
152
|
+
expect(schema.$id).toBe('https://opencontextprotocol.org/schemas/ocp-context.json');
|
|
153
|
+
expect(schema.title).toBe('OCP Context Object');
|
|
154
|
+
expect(schema.properties).toBeDefined();
|
|
155
|
+
expect(schema.properties.agent_type).toBeDefined();
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
describe('Validate and Fix', () => {
|
|
159
|
+
test('validate and fix valid context', () => {
|
|
160
|
+
const context = new AgentContext({
|
|
161
|
+
agent_type: 'ide_copilot',
|
|
162
|
+
user: 'test_user',
|
|
163
|
+
});
|
|
164
|
+
const [fixedContext, result] = validateAndFixContext(context);
|
|
165
|
+
expect(result.valid).toBe(true);
|
|
166
|
+
expect(fixedContext.agent_type).toBe('ide_copilot');
|
|
167
|
+
expect(fixedContext.user).toBe('test_user');
|
|
168
|
+
});
|
|
169
|
+
test('validate and fix custom agent type', () => {
|
|
170
|
+
const context = new AgentContext({ agent_type: 'custom_type' });
|
|
171
|
+
const [fixedContext, result] = validateAndFixContext(context);
|
|
172
|
+
expect(result.valid).toBe(true);
|
|
173
|
+
expect(fixedContext.agent_type).toBe('custom_type'); // Should be preserved
|
|
174
|
+
});
|
|
175
|
+
test('validate and fix preserves other data', () => {
|
|
176
|
+
const context = new AgentContext({
|
|
177
|
+
agent_type: 'my_custom_agent',
|
|
178
|
+
user: 'test_user',
|
|
179
|
+
workspace: 'test_workspace',
|
|
180
|
+
current_goal: 'test_goal',
|
|
181
|
+
});
|
|
182
|
+
// Add some data
|
|
183
|
+
context.addInteraction('test', 'endpoint', 'result');
|
|
184
|
+
context.addRecentChange('change1');
|
|
185
|
+
const [fixedContext, result] = validateAndFixContext(context);
|
|
186
|
+
expect(result.valid).toBe(true);
|
|
187
|
+
expect(fixedContext.agent_type).toBe('my_custom_agent'); // Should be preserved
|
|
188
|
+
expect(fixedContext.user).toBe('test_user');
|
|
189
|
+
expect(fixedContext.workspace).toBe('test_workspace');
|
|
190
|
+
expect(fixedContext.current_goal).toBe('test_goal');
|
|
191
|
+
expect(fixedContext.history.length).toBe(1);
|
|
192
|
+
expect(fixedContext.recent_changes.length).toBe(1);
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
describe('Schema Constants', () => {
|
|
196
|
+
test('ocp context schema structure', () => {
|
|
197
|
+
expect(typeof OCP_CONTEXT_SCHEMA).toBe('object');
|
|
198
|
+
expect(OCP_CONTEXT_SCHEMA.$schema).toBeDefined();
|
|
199
|
+
expect(OCP_CONTEXT_SCHEMA.$id).toBeDefined();
|
|
200
|
+
expect(OCP_CONTEXT_SCHEMA.properties).toBeDefined();
|
|
201
|
+
const properties = OCP_CONTEXT_SCHEMA.properties;
|
|
202
|
+
const requiredFields = ['context_id', 'agent_type'];
|
|
203
|
+
for (const field of requiredFields) {
|
|
204
|
+
expect(properties[field]).toBeDefined();
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
test('agent type schema structure', () => {
|
|
208
|
+
const agentTypeProp = OCP_CONTEXT_SCHEMA.properties.agent_type;
|
|
209
|
+
expect(agentTypeProp.type).toBeDefined();
|
|
210
|
+
expect(agentTypeProp.type).toBe('string');
|
|
211
|
+
expect(agentTypeProp.description).toBeDefined();
|
|
212
|
+
// Should not have enum constraint anymore
|
|
213
|
+
expect(agentTypeProp.enum).toBeUndefined();
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
describe('Validation Edge Cases', () => {
|
|
217
|
+
test('validate context none', () => {
|
|
218
|
+
// None context should return validation error, not raise exception
|
|
219
|
+
const result = validateContext(null);
|
|
220
|
+
expect(result.valid).toBe(false);
|
|
221
|
+
expect(result.errors.length).toBeGreaterThan(0);
|
|
222
|
+
});
|
|
223
|
+
test('validate dict none', () => {
|
|
224
|
+
const result = validateContextDict(null);
|
|
225
|
+
expect(result.valid).toBe(false);
|
|
226
|
+
expect(result.errors.length).toBeGreaterThan(0);
|
|
227
|
+
});
|
|
228
|
+
test('validate dict invalid type', () => {
|
|
229
|
+
const result = validateContextDict('not a dict');
|
|
230
|
+
expect(result.valid).toBe(false);
|
|
231
|
+
});
|
|
232
|
+
test('context with unicode data', () => {
|
|
233
|
+
const context = new AgentContext({
|
|
234
|
+
agent_type: 'ide_copilot',
|
|
235
|
+
user: '用户', // Chinese
|
|
236
|
+
workspace: 'проект', // Cyrillic
|
|
237
|
+
current_goal: '修复错误', // Chinese
|
|
238
|
+
});
|
|
239
|
+
const result = validateContext(context);
|
|
240
|
+
expect(result.valid).toBe(true);
|
|
241
|
+
});
|
|
242
|
+
test('context with very long strings', () => {
|
|
243
|
+
const longString = 'x'.repeat(10000);
|
|
244
|
+
const context = new AgentContext({
|
|
245
|
+
agent_type: 'ide_copilot',
|
|
246
|
+
user: longString,
|
|
247
|
+
workspace: longString,
|
|
248
|
+
current_goal: longString,
|
|
249
|
+
});
|
|
250
|
+
const result = validateContext(context);
|
|
251
|
+
expect(result.valid).toBe(true);
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
//# sourceMappingURL=validation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../tests/validation.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@opencontextprotocol/agent",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "JavaScript/TypeScript implementation of the Open Context Protocol for AI agents",
|
|
5
|
+
"main": "dist/src/index.js",
|
|
6
|
+
"types": "dist/src/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md",
|
|
11
|
+
"LICENSE"
|
|
12
|
+
],
|
|
13
|
+
"repository": "https://github.com/opencontextprotocol/ocp-javascript",
|
|
14
|
+
"homepage": "https://opencontextprotocol.io",
|
|
15
|
+
"bugs": "https://github.com/opencontextprotocol/ocp-javascript/issues",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc",
|
|
18
|
+
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
19
|
+
"type-check": "tsc --noEmit",
|
|
20
|
+
"prepare": "npm run build",
|
|
21
|
+
"prepublishOnly": "npm run build && npm test"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"ocp",
|
|
25
|
+
"open-context-protocol",
|
|
26
|
+
"ai",
|
|
27
|
+
"agent",
|
|
28
|
+
"context",
|
|
29
|
+
"http",
|
|
30
|
+
"api",
|
|
31
|
+
"openapi"
|
|
32
|
+
],
|
|
33
|
+
"author": "OCP Contributors",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@jest/globals": "^30.2.0",
|
|
37
|
+
"@types/jest": "^29.5.14",
|
|
38
|
+
"@types/js-yaml": "^4.0.9",
|
|
39
|
+
"@types/node": "^20.10.6",
|
|
40
|
+
"jest": "^29.7.0",
|
|
41
|
+
"ts-jest": "^29.4.5",
|
|
42
|
+
"typescript": "^5.3.3"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=18.0.0"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"js-yaml": "^4.1.0",
|
|
49
|
+
"jsonschema": "^1.5.0"
|
|
50
|
+
}
|
|
51
|
+
}
|