@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.
Files changed (76) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +198 -0
  3. package/dist/src/agent.d.ts +112 -0
  4. package/dist/src/agent.d.ts.map +1 -0
  5. package/dist/src/agent.js +358 -0
  6. package/dist/src/agent.js.map +1 -0
  7. package/dist/src/context.d.ts +108 -0
  8. package/dist/src/context.d.ts.map +1 -0
  9. package/dist/src/context.js +196 -0
  10. package/dist/src/context.js.map +1 -0
  11. package/dist/src/errors.d.ts +40 -0
  12. package/dist/src/errors.d.ts.map +1 -0
  13. package/dist/src/errors.js +63 -0
  14. package/dist/src/errors.js.map +1 -0
  15. package/dist/src/headers.d.ts +63 -0
  16. package/dist/src/headers.d.ts.map +1 -0
  17. package/dist/src/headers.js +238 -0
  18. package/dist/src/headers.js.map +1 -0
  19. package/dist/src/http_client.d.ts +82 -0
  20. package/dist/src/http_client.d.ts.map +1 -0
  21. package/dist/src/http_client.js +181 -0
  22. package/dist/src/http_client.js.map +1 -0
  23. package/dist/src/index.d.ts +25 -0
  24. package/dist/src/index.d.ts.map +1 -0
  25. package/dist/src/index.js +35 -0
  26. package/dist/src/index.js.map +1 -0
  27. package/dist/src/registry.d.ts +52 -0
  28. package/dist/src/registry.d.ts.map +1 -0
  29. package/dist/src/registry.js +164 -0
  30. package/dist/src/registry.js.map +1 -0
  31. package/dist/src/schema_discovery.d.ts +149 -0
  32. package/dist/src/schema_discovery.d.ts.map +1 -0
  33. package/dist/src/schema_discovery.js +707 -0
  34. package/dist/src/schema_discovery.js.map +1 -0
  35. package/dist/src/schemas/ocp-context.json +138 -0
  36. package/dist/src/storage.d.ts +110 -0
  37. package/dist/src/storage.d.ts.map +1 -0
  38. package/dist/src/storage.js +399 -0
  39. package/dist/src/storage.js.map +1 -0
  40. package/dist/src/validation.d.ts +169 -0
  41. package/dist/src/validation.d.ts.map +1 -0
  42. package/dist/src/validation.js +92 -0
  43. package/dist/src/validation.js.map +1 -0
  44. package/dist/tests/agent.test.d.ts +5 -0
  45. package/dist/tests/agent.test.d.ts.map +1 -0
  46. package/dist/tests/agent.test.js +536 -0
  47. package/dist/tests/agent.test.js.map +1 -0
  48. package/dist/tests/context.test.d.ts +5 -0
  49. package/dist/tests/context.test.d.ts.map +1 -0
  50. package/dist/tests/context.test.js +285 -0
  51. package/dist/tests/context.test.js.map +1 -0
  52. package/dist/tests/headers.test.d.ts +5 -0
  53. package/dist/tests/headers.test.d.ts.map +1 -0
  54. package/dist/tests/headers.test.js +356 -0
  55. package/dist/tests/headers.test.js.map +1 -0
  56. package/dist/tests/http_client.test.d.ts +5 -0
  57. package/dist/tests/http_client.test.d.ts.map +1 -0
  58. package/dist/tests/http_client.test.js +373 -0
  59. package/dist/tests/http_client.test.js.map +1 -0
  60. package/dist/tests/registry.test.d.ts +5 -0
  61. package/dist/tests/registry.test.d.ts.map +1 -0
  62. package/dist/tests/registry.test.js +232 -0
  63. package/dist/tests/registry.test.js.map +1 -0
  64. package/dist/tests/schema_discovery.test.d.ts +5 -0
  65. package/dist/tests/schema_discovery.test.d.ts.map +1 -0
  66. package/dist/tests/schema_discovery.test.js +1074 -0
  67. package/dist/tests/schema_discovery.test.js.map +1 -0
  68. package/dist/tests/storage.test.d.ts +5 -0
  69. package/dist/tests/storage.test.d.ts.map +1 -0
  70. package/dist/tests/storage.test.js +414 -0
  71. package/dist/tests/storage.test.js.map +1 -0
  72. package/dist/tests/validation.test.d.ts +5 -0
  73. package/dist/tests/validation.test.d.ts.map +1 -0
  74. package/dist/tests/validation.test.js +254 -0
  75. package/dist/tests/validation.test.js.map +1 -0
  76. 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
+ }