@jini-ai/integrations 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 (191) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +51 -0
  3. package/dist/composio/bounded-data.d.ts +36 -0
  4. package/dist/composio/bounded-data.d.ts.map +1 -0
  5. package/dist/composio/bounded-data.js +181 -0
  6. package/dist/composio/bounded-data.js.map +1 -0
  7. package/dist/composio/catalog.d.ts +147 -0
  8. package/dist/composio/catalog.d.ts.map +1 -0
  9. package/dist/composio/catalog.js +126 -0
  10. package/dist/composio/catalog.js.map +1 -0
  11. package/dist/composio/composio-config.d.ts +42 -0
  12. package/dist/composio/composio-config.d.ts.map +1 -0
  13. package/dist/composio/composio-config.js +145 -0
  14. package/dist/composio/composio-config.js.map +1 -0
  15. package/dist/composio/composio-descriptions.d.ts +16 -0
  16. package/dist/composio/composio-descriptions.d.ts.map +1 -0
  17. package/dist/composio/composio-descriptions.js +766 -0
  18. package/dist/composio/composio-descriptions.js.map +1 -0
  19. package/dist/composio/composio.d.ts +364 -0
  20. package/dist/composio/composio.d.ts.map +1 -0
  21. package/dist/composio/composio.js +1902 -0
  22. package/dist/composio/composio.js.map +1 -0
  23. package/dist/composio/errors.d.ts +15 -0
  24. package/dist/composio/errors.d.ts.map +1 -0
  25. package/dist/composio/errors.js +16 -0
  26. package/dist/composio/errors.js.map +1 -0
  27. package/dist/composio/file-lock.d.ts +13 -0
  28. package/dist/composio/file-lock.d.ts.map +1 -0
  29. package/dist/composio/file-lock.js +92 -0
  30. package/dist/composio/file-lock.js.map +1 -0
  31. package/dist/composio/index.d.ts +18 -0
  32. package/dist/composio/index.d.ts.map +1 -0
  33. package/dist/composio/index.js +7 -0
  34. package/dist/composio/index.js.map +1 -0
  35. package/dist/composio/json-schema.d.ts +93 -0
  36. package/dist/composio/json-schema.d.ts.map +1 -0
  37. package/dist/composio/json-schema.js +498 -0
  38. package/dist/composio/json-schema.js.map +1 -0
  39. package/dist/composio/output-protection.d.ts +32 -0
  40. package/dist/composio/output-protection.d.ts.map +1 -0
  41. package/dist/composio/output-protection.js +105 -0
  42. package/dist/composio/output-protection.js.map +1 -0
  43. package/dist/composio/service.d.ts +181 -0
  44. package/dist/composio/service.d.ts.map +1 -0
  45. package/dist/composio/service.js +758 -0
  46. package/dist/composio/service.js.map +1 -0
  47. package/dist/media-providers/capability-registry.d.ts +28 -0
  48. package/dist/media-providers/capability-registry.d.ts.map +1 -0
  49. package/dist/media-providers/capability-registry.js +27 -0
  50. package/dist/media-providers/capability-registry.js.map +1 -0
  51. package/dist/media-providers/catalog.d.ts +20 -0
  52. package/dist/media-providers/catalog.d.ts.map +1 -0
  53. package/dist/media-providers/catalog.js +20 -0
  54. package/dist/media-providers/catalog.js.map +1 -0
  55. package/dist/media-providers/dispatch/context.d.ts +21 -0
  56. package/dist/media-providers/dispatch/context.d.ts.map +1 -0
  57. package/dist/media-providers/dispatch/context.js +36 -0
  58. package/dist/media-providers/dispatch/context.js.map +1 -0
  59. package/dist/media-providers/dispatch/credentials.d.ts +4 -0
  60. package/dist/media-providers/dispatch/credentials.d.ts.map +1 -0
  61. package/dist/media-providers/dispatch/credentials.js +25 -0
  62. package/dist/media-providers/dispatch/credentials.js.map +1 -0
  63. package/dist/media-providers/dispatch/engine.d.ts +30 -0
  64. package/dist/media-providers/dispatch/engine.d.ts.map +1 -0
  65. package/dist/media-providers/dispatch/engine.js +208 -0
  66. package/dist/media-providers/dispatch/engine.js.map +1 -0
  67. package/dist/media-providers/dispatch/index.d.ts +25 -0
  68. package/dist/media-providers/dispatch/index.d.ts.map +1 -0
  69. package/dist/media-providers/dispatch/index.js +24 -0
  70. package/dist/media-providers/dispatch/index.js.map +1 -0
  71. package/dist/media-providers/dispatch/openai-compatible.d.ts +44 -0
  72. package/dist/media-providers/dispatch/openai-compatible.d.ts.map +1 -0
  73. package/dist/media-providers/dispatch/openai-compatible.js +214 -0
  74. package/dist/media-providers/dispatch/openai-compatible.js.map +1 -0
  75. package/dist/media-providers/dispatch/providers/aihubmix-shared.d.ts +72 -0
  76. package/dist/media-providers/dispatch/providers/aihubmix-shared.d.ts.map +1 -0
  77. package/dist/media-providers/dispatch/providers/aihubmix-shared.js +131 -0
  78. package/dist/media-providers/dispatch/providers/aihubmix-shared.js.map +1 -0
  79. package/dist/media-providers/dispatch/providers/aihubmix.d.ts +4 -0
  80. package/dist/media-providers/dispatch/providers/aihubmix.d.ts.map +1 -0
  81. package/dist/media-providers/dispatch/providers/aihubmix.js +205 -0
  82. package/dist/media-providers/dispatch/providers/aihubmix.js.map +1 -0
  83. package/dist/media-providers/dispatch/providers/custom-image.d.ts +6 -0
  84. package/dist/media-providers/dispatch/providers/custom-image.d.ts.map +1 -0
  85. package/dist/media-providers/dispatch/providers/custom-image.js +94 -0
  86. package/dist/media-providers/dispatch/providers/custom-image.js.map +1 -0
  87. package/dist/media-providers/dispatch/providers/elevenlabs.d.ts +4 -0
  88. package/dist/media-providers/dispatch/providers/elevenlabs.d.ts.map +1 -0
  89. package/dist/media-providers/dispatch/providers/elevenlabs.js +163 -0
  90. package/dist/media-providers/dispatch/providers/elevenlabs.js.map +1 -0
  91. package/dist/media-providers/dispatch/providers/fishaudio.d.ts +3 -0
  92. package/dist/media-providers/dispatch/providers/fishaudio.d.ts.map +1 -0
  93. package/dist/media-providers/dispatch/providers/fishaudio.js +83 -0
  94. package/dist/media-providers/dispatch/providers/fishaudio.js.map +1 -0
  95. package/dist/media-providers/dispatch/providers/grok.d.ts +15 -0
  96. package/dist/media-providers/dispatch/providers/grok.d.ts.map +1 -0
  97. package/dist/media-providers/dispatch/providers/grok.js +150 -0
  98. package/dist/media-providers/dispatch/providers/grok.js.map +1 -0
  99. package/dist/media-providers/dispatch/providers/imagerouter.d.ts +6 -0
  100. package/dist/media-providers/dispatch/providers/imagerouter.d.ts.map +1 -0
  101. package/dist/media-providers/dispatch/providers/imagerouter.js +131 -0
  102. package/dist/media-providers/dispatch/providers/imagerouter.js.map +1 -0
  103. package/dist/media-providers/dispatch/providers/minimax.d.ts +3 -0
  104. package/dist/media-providers/dispatch/providers/minimax.d.ts.map +1 -0
  105. package/dist/media-providers/dispatch/providers/minimax.js +96 -0
  106. package/dist/media-providers/dispatch/providers/minimax.js.map +1 -0
  107. package/dist/media-providers/dispatch/providers/nanobanana.d.ts +3 -0
  108. package/dist/media-providers/dispatch/providers/nanobanana.d.ts.map +1 -0
  109. package/dist/media-providers/dispatch/providers/nanobanana.js +142 -0
  110. package/dist/media-providers/dispatch/providers/nanobanana.js.map +1 -0
  111. package/dist/media-providers/dispatch/providers/openai.d.ts +4 -0
  112. package/dist/media-providers/dispatch/providers/openai.d.ts.map +1 -0
  113. package/dist/media-providers/dispatch/providers/openai.js +231 -0
  114. package/dist/media-providers/dispatch/providers/openai.js.map +1 -0
  115. package/dist/media-providers/dispatch/providers/openrouter.d.ts +13 -0
  116. package/dist/media-providers/dispatch/providers/openrouter.d.ts.map +1 -0
  117. package/dist/media-providers/dispatch/providers/openrouter.js +152 -0
  118. package/dist/media-providers/dispatch/providers/openrouter.js.map +1 -0
  119. package/dist/media-providers/dispatch/providers/senseaudio.d.ts +4 -0
  120. package/dist/media-providers/dispatch/providers/senseaudio.d.ts.map +1 -0
  121. package/dist/media-providers/dispatch/providers/senseaudio.js +190 -0
  122. package/dist/media-providers/dispatch/providers/senseaudio.js.map +1 -0
  123. package/dist/media-providers/dispatch/providers/volcengine.d.ts +3 -0
  124. package/dist/media-providers/dispatch/providers/volcengine.d.ts.map +1 -0
  125. package/dist/media-providers/dispatch/providers/volcengine.js +95 -0
  126. package/dist/media-providers/dispatch/providers/volcengine.js.map +1 -0
  127. package/dist/media-providers/dispatch/response-parsers.d.ts +44 -0
  128. package/dist/media-providers/dispatch/response-parsers.d.ts.map +1 -0
  129. package/dist/media-providers/dispatch/response-parsers.js +103 -0
  130. package/dist/media-providers/dispatch/response-parsers.js.map +1 -0
  131. package/dist/media-providers/dispatch/ssrf-guard.d.ts +51 -0
  132. package/dist/media-providers/dispatch/ssrf-guard.d.ts.map +1 -0
  133. package/dist/media-providers/dispatch/ssrf-guard.js +215 -0
  134. package/dist/media-providers/dispatch/ssrf-guard.js.map +1 -0
  135. package/dist/media-providers/dispatch/stub.d.ts +5 -0
  136. package/dist/media-providers/dispatch/stub.d.ts.map +1 -0
  137. package/dist/media-providers/dispatch/stub.js +98 -0
  138. package/dist/media-providers/dispatch/stub.js.map +1 -0
  139. package/dist/media-providers/dispatch/types.d.ts +133 -0
  140. package/dist/media-providers/dispatch/types.d.ts.map +1 -0
  141. package/dist/media-providers/dispatch/types.js +2 -0
  142. package/dist/media-providers/dispatch/types.js.map +1 -0
  143. package/dist/media-providers/dispatch/vendor-adapter.d.ts +54 -0
  144. package/dist/media-providers/dispatch/vendor-adapter.d.ts.map +1 -0
  145. package/dist/media-providers/dispatch/vendor-adapter.js +68 -0
  146. package/dist/media-providers/dispatch/vendor-adapter.js.map +1 -0
  147. package/dist/media-providers/dispatch/vendor-registry.d.ts +36 -0
  148. package/dist/media-providers/dispatch/vendor-registry.d.ts.map +1 -0
  149. package/dist/media-providers/dispatch/vendor-registry.js +46 -0
  150. package/dist/media-providers/dispatch/vendor-registry.js.map +1 -0
  151. package/dist/media-providers/index.d.ts +22 -0
  152. package/dist/media-providers/index.d.ts.map +1 -0
  153. package/dist/media-providers/index.js +22 -0
  154. package/dist/media-providers/index.js.map +1 -0
  155. package/dist/media-providers/policy.d.ts +49 -0
  156. package/dist/media-providers/policy.d.ts.map +1 -0
  157. package/dist/media-providers/policy.js +39 -0
  158. package/dist/media-providers/policy.js.map +1 -0
  159. package/dist/media-providers/providers.d.ts +33 -0
  160. package/dist/media-providers/providers.d.ts.map +1 -0
  161. package/dist/media-providers/providers.js +200 -0
  162. package/dist/media-providers/providers.js.map +1 -0
  163. package/dist/media-providers/seed.d.ts +14 -0
  164. package/dist/media-providers/seed.d.ts.map +1 -0
  165. package/dist/media-providers/seed.js +109 -0
  166. package/dist/media-providers/seed.js.map +1 -0
  167. package/dist/media-providers/sqlite-task-store.d.ts +29 -0
  168. package/dist/media-providers/sqlite-task-store.d.ts.map +1 -0
  169. package/dist/media-providers/sqlite-task-store.js +234 -0
  170. package/dist/media-providers/sqlite-task-store.js.map +1 -0
  171. package/dist/media-providers/staging.d.ts +29 -0
  172. package/dist/media-providers/staging.d.ts.map +1 -0
  173. package/dist/media-providers/staging.js +141 -0
  174. package/dist/media-providers/staging.js.map +1 -0
  175. package/dist/media-providers/task-store.d.ts +94 -0
  176. package/dist/media-providers/task-store.d.ts.map +1 -0
  177. package/dist/media-providers/task-store.js +160 -0
  178. package/dist/media-providers/task-store.js.map +1 -0
  179. package/dist/media-providers/tokens.d.ts +7 -0
  180. package/dist/media-providers/tokens.d.ts.map +1 -0
  181. package/dist/media-providers/tokens.js +13 -0
  182. package/dist/media-providers/tokens.js.map +1 -0
  183. package/dist/media-providers/types.d.ts +123 -0
  184. package/dist/media-providers/types.d.ts.map +1 -0
  185. package/dist/media-providers/types.js +12 -0
  186. package/dist/media-providers/types.js.map +1 -0
  187. package/dist/media-providers/video-request.d.ts +62 -0
  188. package/dist/media-providers/video-request.d.ts.map +1 -0
  189. package/dist/media-providers/video-request.js +219 -0
  190. package/dist/media-providers/video-request.js.map +1 -0
  191. package/package.json +93 -0
@@ -0,0 +1,498 @@
1
+ const JSON_SCHEMA_MAX_DEPTH = 32;
2
+ const JSON_SCHEMA_MAX_NODES = 20_000;
3
+ const JSON_SCHEMA_MAX_BRANCHES = 64;
4
+ const SUPPORTED_SCHEMA_KEYWORDS = new Set([
5
+ '$schema',
6
+ '$id',
7
+ '$comment',
8
+ 'title',
9
+ 'description',
10
+ 'default',
11
+ 'examples',
12
+ 'deprecated',
13
+ 'readOnly',
14
+ 'writeOnly',
15
+ 'type',
16
+ 'enum',
17
+ 'const',
18
+ 'allOf',
19
+ 'anyOf',
20
+ 'oneOf',
21
+ 'not',
22
+ 'minimum',
23
+ 'maximum',
24
+ 'exclusiveMinimum',
25
+ 'exclusiveMaximum',
26
+ 'multipleOf',
27
+ 'minLength',
28
+ 'maxLength',
29
+ 'minItems',
30
+ 'maxItems',
31
+ 'uniqueItems',
32
+ 'items',
33
+ 'minProperties',
34
+ 'maxProperties',
35
+ 'required',
36
+ 'properties',
37
+ 'additionalProperties',
38
+ ]);
39
+ const VALID_TYPES = new Set(['null', 'boolean', 'object', 'array', 'number', 'integer', 'string']);
40
+ class ConnectorSchemaMismatchError extends Error {
41
+ constructor(path, message) {
42
+ super(`${path} ${message}`);
43
+ this.name = 'ConnectorSchemaMismatchError';
44
+ }
45
+ }
46
+ class ConnectorSchemaUnsupportedError extends Error {
47
+ constructor(path, message) {
48
+ super(`${path} ${message}`);
49
+ this.name = 'ConnectorSchemaUnsupportedError';
50
+ }
51
+ }
52
+ class ConnectorSchemaEvaluationError extends Error {
53
+ constructor(path, message) {
54
+ super(`${path} ${message}`);
55
+ this.name = 'ConnectorSchemaEvaluationError';
56
+ }
57
+ }
58
+ function schemaError(path, message) {
59
+ throw new ConnectorSchemaMismatchError(path, message);
60
+ }
61
+ function unsupportedSchemaError(path, message) {
62
+ throw new ConnectorSchemaUnsupportedError(path, message);
63
+ }
64
+ function schemaEvaluationError(path, message) {
65
+ throw new ConnectorSchemaEvaluationError(path, message);
66
+ }
67
+ function isJsonObject(value) {
68
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
69
+ }
70
+ /** Element-wise deep equality for two same-length JSON arrays. */
71
+ export function arraysDeepEqual(left, right) {
72
+ return left.length === right.length && left.every((item, index) => deepJsonEqual(item, right[index]));
73
+ }
74
+ /** Key-set and value-wise deep equality for two JSON objects (order-independent). */
75
+ export function objectsDeepEqual(left, right) {
76
+ const leftKeys = Object.keys(left).sort();
77
+ const rightKeys = Object.keys(right).sort();
78
+ return leftKeys.length === rightKeys.length
79
+ && leftKeys.every((key, index) => key === rightKeys[index] && deepJsonEqual(left[key], right[key]));
80
+ }
81
+ function deepJsonEqual(left, right) {
82
+ if (Object.is(left, right))
83
+ return true;
84
+ if (Array.isArray(left) || Array.isArray(right)) {
85
+ return Array.isArray(left) && Array.isArray(right) && arraysDeepEqual(left, right);
86
+ }
87
+ if (isJsonObject(left) || isJsonObject(right)) {
88
+ return isJsonObject(left) && isJsonObject(right) && objectsDeepEqual(left, right);
89
+ }
90
+ return false;
91
+ }
92
+ function actualJsonType(value) {
93
+ if (value === null)
94
+ return 'null';
95
+ if (Array.isArray(value))
96
+ return 'array';
97
+ if (typeof value === 'number' && Number.isInteger(value))
98
+ return 'integer';
99
+ return typeof value;
100
+ }
101
+ function matchesDeclaredType(value, declaredType) {
102
+ if (declaredType === 'number')
103
+ return typeof value === 'number' && Number.isFinite(value);
104
+ if (declaredType === 'integer')
105
+ return typeof value === 'number' && Number.isInteger(value);
106
+ return actualJsonType(value) === declaredType;
107
+ }
108
+ function requireNonNegativeInteger(value, keyword, path) {
109
+ if (value === undefined)
110
+ return undefined;
111
+ if (typeof value !== 'number' || !Number.isInteger(value) || value < 0) {
112
+ unsupportedSchemaError(path, `has an invalid ${keyword} schema constraint`);
113
+ }
114
+ return value;
115
+ }
116
+ function requireFiniteNumber(value, keyword, path) {
117
+ if (value === undefined)
118
+ return undefined;
119
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
120
+ unsupportedSchemaError(path, `has an invalid ${keyword} schema constraint`);
121
+ }
122
+ return value;
123
+ }
124
+ /** The `type` keyword's declared type(s), normalized to a list (empty when `type` is absent). Shared by structural validation and evaluation. */
125
+ export function declaredSchemaTypes(schema) {
126
+ if (typeof schema.type === 'string')
127
+ return [schema.type];
128
+ if (Array.isArray(schema.type))
129
+ return schema.type;
130
+ return [];
131
+ }
132
+ /** True when the `type` keyword is absent, a string, or a non-empty array of strings. */
133
+ export function isSupportedTypeKeywordShape(type) {
134
+ if (type === undefined || typeof type === 'string')
135
+ return true;
136
+ return Array.isArray(type) && type.length > 0 && type.every((item) => typeof item === 'string');
137
+ }
138
+ /** Rejects any schema keyword outside the bounded, supported subset. */
139
+ export function assertSupportedKeywords(schema, path) {
140
+ for (const keyword of Object.keys(schema)) {
141
+ if (!SUPPORTED_SCHEMA_KEYWORDS.has(keyword)) {
142
+ unsupportedSchemaError(path, `uses unsupported connector input schema keyword "${keyword}"`);
143
+ }
144
+ }
145
+ }
146
+ /** Rejects an unsupported `type` keyword shape or a declared type outside `VALID_TYPES`. */
147
+ export function assertTypeKeywordSupported(schema, path) {
148
+ if (!isSupportedTypeKeywordShape(schema.type)) {
149
+ unsupportedSchemaError(path, 'has an invalid type schema constraint');
150
+ }
151
+ if (declaredSchemaTypes(schema).some((type) => !VALID_TYPES.has(type))) {
152
+ unsupportedSchemaError(path, 'has an unsupported type schema constraint');
153
+ }
154
+ }
155
+ /** Rejects a malformed `enum` keyword (must be a non-empty array when present). */
156
+ export function assertEnumShapeSupported(schema, path) {
157
+ if (schema.enum !== undefined && (!Array.isArray(schema.enum) || schema.enum.length === 0)) {
158
+ unsupportedSchemaError(path, 'has an invalid enum schema constraint');
159
+ }
160
+ }
161
+ /** Rejects malformed numeric-range keywords (`minimum`/`maximum`/`exclusiveMinimum`/`exclusiveMaximum`/`multipleOf`). */
162
+ export function assertNumericConstraintsSupported(schema, path) {
163
+ for (const keyword of ['minimum', 'maximum', 'exclusiveMinimum', 'exclusiveMaximum', 'multipleOf']) {
164
+ requireFiniteNumber(schema[keyword], keyword, path);
165
+ }
166
+ if (typeof schema.multipleOf === 'number' && schema.multipleOf <= 0) {
167
+ unsupportedSchemaError(path, 'has an invalid multipleOf schema constraint');
168
+ }
169
+ }
170
+ /** Rejects malformed size keywords (`min/maxLength`, `min/maxItems`, `min/maxProperties`) and a malformed `uniqueItems`. */
171
+ export function assertSizeConstraintsSupported(schema, path) {
172
+ for (const keyword of ['minLength', 'maxLength', 'minItems', 'maxItems', 'minProperties', 'maxProperties']) {
173
+ requireNonNegativeInteger(schema[keyword], keyword, path);
174
+ }
175
+ if (schema.uniqueItems !== undefined && typeof schema.uniqueItems !== 'boolean') {
176
+ unsupportedSchemaError(path, 'has an invalid uniqueItems schema constraint');
177
+ }
178
+ }
179
+ /** Rejects a malformed `required` keyword (must be an array of strings when present). */
180
+ export function assertRequiredShapeSupported(schema, path) {
181
+ if (schema.required !== undefined
182
+ && (!Array.isArray(schema.required) || !schema.required.every((item) => typeof item === 'string'))) {
183
+ unsupportedSchemaError(path, 'has an invalid required schema constraint');
184
+ }
185
+ }
186
+ /** Rejects a malformed `properties` or `additionalProperties` keyword shape (recursion into their children happens separately). */
187
+ export function assertPropertiesShapeSupported(schema, path) {
188
+ if (schema.properties !== undefined && !isJsonObject(schema.properties)) {
189
+ unsupportedSchemaError(path, 'has an invalid properties schema constraint');
190
+ }
191
+ if (schema.additionalProperties !== undefined
192
+ && typeof schema.additionalProperties !== 'boolean'
193
+ && !isJsonObject(schema.additionalProperties)) {
194
+ unsupportedSchemaError(path, 'has an invalid additionalProperties schema constraint');
195
+ }
196
+ }
197
+ /** Rejects a malformed `allOf`/`anyOf`/`oneOf` branch list and recurses structural validation into each branch. */
198
+ export function assertCombinatorBranchesSupported(schema, path, depth, state) {
199
+ for (const keyword of ['allOf', 'anyOf', 'oneOf']) {
200
+ const branches = schema[keyword];
201
+ if (branches === undefined)
202
+ continue;
203
+ if (!Array.isArray(branches) || branches.length === 0 || branches.length > JSON_SCHEMA_MAX_BRANCHES) {
204
+ unsupportedSchemaError(path, `has an invalid ${keyword} schema constraint`);
205
+ }
206
+ branches.forEach((branch, index) => {
207
+ assertSchemaStructureSupported(branch, `${path}.${keyword}[${index}]`, depth + 1, state);
208
+ });
209
+ }
210
+ }
211
+ /** Recurses structural validation into `not`, `items`, each declared `properties` child, and a schema-valued `additionalProperties`. */
212
+ export function recurseIntoRemainingChildSchemas(schema, path, depth, state) {
213
+ if (schema.not !== undefined)
214
+ assertSchemaStructureSupported(schema.not, `${path}.not`, depth + 1, state);
215
+ if (schema.items !== undefined)
216
+ assertSchemaStructureSupported(schema.items, `${path}.items`, depth + 1, state);
217
+ if (isJsonObject(schema.properties)) {
218
+ for (const [key, childSchema] of Object.entries(schema.properties)) {
219
+ assertSchemaStructureSupported(childSchema, `${path}.properties.${key}`, depth + 1, state);
220
+ }
221
+ }
222
+ if (isJsonObject(schema.additionalProperties)) {
223
+ assertSchemaStructureSupported(schema.additionalProperties, `${path}.additionalProperties`, depth + 1, state);
224
+ }
225
+ }
226
+ function assertSchemaStructureSupported(schema, path, depth, state) {
227
+ state.nodes += 1;
228
+ if (state.nodes > JSON_SCHEMA_MAX_NODES)
229
+ unsupportedSchemaError(path, 'schema exceeds the node limit');
230
+ if (depth > JSON_SCHEMA_MAX_DEPTH)
231
+ unsupportedSchemaError(path, 'schema exceeds the depth limit');
232
+ if (typeof schema === 'boolean')
233
+ return;
234
+ if (!isJsonObject(schema))
235
+ unsupportedSchemaError(path, 'has an invalid connector input schema');
236
+ assertSupportedKeywords(schema, path);
237
+ assertTypeKeywordSupported(schema, path);
238
+ assertEnumShapeSupported(schema, path);
239
+ assertNumericConstraintsSupported(schema, path);
240
+ assertSizeConstraintsSupported(schema, path);
241
+ assertRequiredShapeSupported(schema, path);
242
+ assertPropertiesShapeSupported(schema, path);
243
+ assertCombinatorBranchesSupported(schema, path, depth, state);
244
+ recurseIntoRemainingChildSchemas(schema, path, depth, state);
245
+ }
246
+ /** Runs `value` against every branch of an `allOf`/`anyOf`/`oneOf` list, returning the match count and the last mismatch seen (for `allOf`'s error). */
247
+ export function countMatchingBranches(value, branches, path, depth, state) {
248
+ let matches = 0;
249
+ let lastError;
250
+ for (const branch of branches) {
251
+ try {
252
+ validateSchema(value, branch, path, depth + 1, state);
253
+ matches += 1;
254
+ }
255
+ catch (error) {
256
+ if (!(error instanceof ConnectorSchemaMismatchError))
257
+ throw error;
258
+ lastError = error;
259
+ }
260
+ }
261
+ return { matches, lastError };
262
+ }
263
+ /** Enforces the combinator's match-count rule (`allOf`: all branches, `anyOf`: at least one, `oneOf`: exactly one) given a branch-match tally. */
264
+ export function assertBranchListSatisfied(keyword, matches, lastError, totalBranches, path) {
265
+ if (keyword === 'allOf' && matches !== totalBranches) {
266
+ // A mismatch means at least one non-empty, structurally validated branch
267
+ // failed through `schemaError`, which always produces an Error.
268
+ throw lastError;
269
+ }
270
+ if (keyword === 'anyOf' && matches === 0)
271
+ schemaError(path, 'must satisfy at least one anyOf branch');
272
+ if (keyword === 'oneOf' && matches !== 1)
273
+ schemaError(path, 'must satisfy exactly one oneOf branch');
274
+ }
275
+ function validateSchemaBranchList(keyword, branches, value, path, depth, state) {
276
+ if (branches === undefined)
277
+ return;
278
+ // Structure is validated in a complete pass before evaluation begins.
279
+ const validatedBranches = branches;
280
+ const { matches, lastError } = countMatchingBranches(value, validatedBranches, path, depth, state);
281
+ assertBranchListSatisfied(keyword, matches, lastError, validatedBranches.length, path);
282
+ }
283
+ /** Rejects a value whose type doesn't match the schema's declared `type` keyword. */
284
+ export function assertDeclaredTypeMatches(value, schema, path) {
285
+ const declaredTypes = declaredSchemaTypes(schema);
286
+ if (declaredTypes.length > 0 && !declaredTypes.some((type) => matchesDeclaredType(value, type))) {
287
+ schemaError(path, `must be one of: ${declaredTypes.join(', ')}`);
288
+ }
289
+ }
290
+ /** Rejects a value that fails the schema's `enum` or `const` keyword. */
291
+ export function assertEnumAndConstMatch(value, schema, path) {
292
+ if (schema.enum !== undefined) {
293
+ if (!schema.enum.some((candidate) => deepJsonEqual(value, candidate)))
294
+ schemaError(path, 'must match an allowed enum value');
295
+ }
296
+ if (schema.const !== undefined && !deepJsonEqual(value, schema.const)) {
297
+ schemaError(path, 'must match the const schema value');
298
+ }
299
+ }
300
+ /** Rejects a value that satisfies the schema's `not` sub-schema (a mismatch there is what `not` requires). */
301
+ export function assertNotSchemaSatisfied(value, schema, path, depth, state) {
302
+ if (schema.not === undefined)
303
+ return;
304
+ let rejected = false;
305
+ try {
306
+ validateSchema(value, schema.not, path, depth + 1, state);
307
+ }
308
+ catch (error) {
309
+ if (!(error instanceof ConnectorSchemaMismatchError))
310
+ throw error;
311
+ rejected = true;
312
+ }
313
+ if (!rejected)
314
+ schemaError(path, 'must not satisfy the not schema');
315
+ }
316
+ /** Rejects a number outside `minimum`/`maximum`/`exclusiveMinimum`/`exclusiveMaximum`. */
317
+ export function assertNumberRangeConstraints(value, schema, path) {
318
+ const minimum = requireFiniteNumber(schema.minimum, 'minimum', path);
319
+ const maximum = requireFiniteNumber(schema.maximum, 'maximum', path);
320
+ const exclusiveMinimum = requireFiniteNumber(schema.exclusiveMinimum, 'exclusiveMinimum', path);
321
+ const exclusiveMaximum = requireFiniteNumber(schema.exclusiveMaximum, 'exclusiveMaximum', path);
322
+ if (minimum !== undefined && value < minimum)
323
+ schemaError(path, `must be >= ${minimum}`);
324
+ if (maximum !== undefined && value > maximum)
325
+ schemaError(path, `must be <= ${maximum}`);
326
+ if (exclusiveMinimum !== undefined && value <= exclusiveMinimum)
327
+ schemaError(path, `must be > ${exclusiveMinimum}`);
328
+ if (exclusiveMaximum !== undefined && value >= exclusiveMaximum)
329
+ schemaError(path, `must be < ${exclusiveMaximum}`);
330
+ }
331
+ /** Rejects a number that isn't a multiple of the schema's `multipleOf`. */
332
+ export function assertNumberMultipleOfConstraint(value, schema, path) {
333
+ const multipleOf = requireFiniteNumber(schema.multipleOf, 'multipleOf', path);
334
+ if (multipleOf === undefined)
335
+ return;
336
+ const quotient = value / multipleOf;
337
+ if (Math.abs(quotient - Math.round(quotient)) > Number.EPSILON * Math.max(1, Math.abs(quotient))) {
338
+ schemaError(path, `must be a multiple of ${multipleOf}`);
339
+ }
340
+ }
341
+ /** Validates a number value against the schema's finiteness, range, and `multipleOf` keywords. */
342
+ export function validateNumberValue(value, schema, path) {
343
+ if (!Number.isFinite(value))
344
+ schemaError(path, 'must be a finite number');
345
+ assertNumberRangeConstraints(value, schema, path);
346
+ assertNumberMultipleOfConstraint(value, schema, path);
347
+ }
348
+ /** Validates a string value's Unicode-codepoint length against `minLength`/`maxLength`. */
349
+ export function validateStringValue(value, schema, path) {
350
+ const minLength = requireNonNegativeInteger(schema.minLength, 'minLength', path);
351
+ const maxLength = requireNonNegativeInteger(schema.maxLength, 'maxLength', path);
352
+ const length = [...value].length;
353
+ if (minLength !== undefined && length < minLength)
354
+ schemaError(path, `must contain at least ${minLength} characters`);
355
+ if (maxLength !== undefined && length > maxLength)
356
+ schemaError(path, `must contain at most ${maxLength} characters`);
357
+ }
358
+ /** Rejects an array whose length falls outside `minItems`/`maxItems`. */
359
+ export function assertArraySizeConstraints(value, schema, path) {
360
+ const minItems = requireNonNegativeInteger(schema.minItems, 'minItems', path);
361
+ const maxItems = requireNonNegativeInteger(schema.maxItems, 'maxItems', path);
362
+ if (minItems !== undefined && value.length < minItems)
363
+ schemaError(path, `must contain at least ${minItems} items`);
364
+ if (maxItems !== undefined && value.length > maxItems)
365
+ schemaError(path, `must contain at most ${maxItems} items`);
366
+ }
367
+ /** When `uniqueItems` is `true`, rejects an array containing two deep-equal elements. */
368
+ export function assertArrayItemsUnique(value, schema, path) {
369
+ if (schema.uniqueItems !== true)
370
+ return;
371
+ for (let left = 0; left < value.length; left += 1) {
372
+ for (let right = left + 1; right < value.length; right += 1) {
373
+ if (deepJsonEqual(value[left], value[right]))
374
+ schemaError(path, 'must contain unique items');
375
+ }
376
+ }
377
+ }
378
+ /** Recurses evaluation into every array element against the schema's `items` sub-schema. */
379
+ export function recurseIntoArrayItems(value, schema, path, depth, state) {
380
+ if (schema.items === undefined)
381
+ return;
382
+ for (let index = 0; index < value.length; index += 1) {
383
+ validateSchema(value[index], schema.items, `${path}[${index}]`, depth + 1, state);
384
+ }
385
+ }
386
+ /** Validates an array value's size, uniqueness, and (recursively) its items. */
387
+ export function validateArrayValue(value, schema, path, depth, state) {
388
+ assertArraySizeConstraints(value, schema, path);
389
+ assertArrayItemsUnique(value, schema, path);
390
+ recurseIntoArrayItems(value, schema, path, depth, state);
391
+ }
392
+ /** Rejects an object whose property count falls outside `minProperties`/`maxProperties`. */
393
+ export function assertObjectSizeConstraints(value, schema, path) {
394
+ const keys = Object.keys(value);
395
+ const minProperties = requireNonNegativeInteger(schema.minProperties, 'minProperties', path);
396
+ const maxProperties = requireNonNegativeInteger(schema.maxProperties, 'maxProperties', path);
397
+ if (minProperties !== undefined && keys.length < minProperties)
398
+ schemaError(path, `must contain at least ${minProperties} properties`);
399
+ if (maxProperties !== undefined && keys.length > maxProperties)
400
+ schemaError(path, `must contain at most ${maxProperties} properties`);
401
+ }
402
+ /** Rejects an object missing any of the schema's `required` property names. */
403
+ export function assertRequiredPropertiesPresent(value, schema, path) {
404
+ const required = schema.required;
405
+ if (required === undefined)
406
+ return;
407
+ for (const key of required) {
408
+ if (!Object.prototype.hasOwnProperty.call(value, key))
409
+ schemaError(`${path}.${key}`, 'is required by connector input schema');
410
+ }
411
+ }
412
+ function propertySchemasOf(schema) {
413
+ return schema.properties === undefined ? {} : schema.properties;
414
+ }
415
+ /** Recurses evaluation into every value present in `value` whose key is declared in `properties`. */
416
+ export function recurseIntoDeclaredProperties(value, propertySchemas, path, depth, state) {
417
+ for (const [key, childSchema] of Object.entries(propertySchemas)) {
418
+ if (Object.prototype.hasOwnProperty.call(value, key)) {
419
+ validateSchema(value[key], childSchema, `${path}.${key}`, depth + 1, state);
420
+ }
421
+ }
422
+ }
423
+ function extraObjectKeys(value, propertySchemas) {
424
+ return Object.keys(value).filter((key) => !Object.prototype.hasOwnProperty.call(propertySchemas, key));
425
+ }
426
+ /** Rejects a disallowed extra property (`additionalProperties: false`) or recurses evaluation into a schema-valued `additionalProperties`. */
427
+ export function assertAdditionalPropertiesAllowed(value, schema, path, extraKeys, depth, state) {
428
+ if (schema.additionalProperties === false && extraKeys.length > 0) {
429
+ schemaError(`${path}.${extraKeys[0]}`, 'is not allowed by connector input schema');
430
+ }
431
+ if (schema.additionalProperties !== undefined && schema.additionalProperties !== true && schema.additionalProperties !== false) {
432
+ for (const key of extraKeys) {
433
+ validateSchema(value[key], schema.additionalProperties, `${path}.${key}`, depth + 1, state);
434
+ }
435
+ }
436
+ }
437
+ /** Validates an object value's size, `required` properties, declared `properties`, and `additionalProperties`. */
438
+ export function validateObjectValue(value, schema, path, depth, state) {
439
+ assertObjectSizeConstraints(value, schema, path);
440
+ assertRequiredPropertiesPresent(value, schema, path);
441
+ const propertySchemas = propertySchemasOf(schema);
442
+ recurseIntoDeclaredProperties(value, propertySchemas, path, depth, state);
443
+ const extraKeys = extraObjectKeys(value, propertySchemas);
444
+ assertAdditionalPropertiesAllowed(value, schema, path, extraKeys, depth, state);
445
+ }
446
+ function validateSchema(value, schema, path, depth, state) {
447
+ state.nodes += 1;
448
+ if (state.nodes > JSON_SCHEMA_MAX_NODES)
449
+ schemaEvaluationError(path, 'schema evaluation exceeded the node limit');
450
+ if (typeof schema === 'boolean') {
451
+ if (!schema)
452
+ schemaError(path, 'is rejected by the connector input schema');
453
+ return;
454
+ }
455
+ // The structural pass has already proven this is a supported schema object.
456
+ const validatedSchema = schema;
457
+ assertDeclaredTypeMatches(value, validatedSchema, path);
458
+ assertEnumAndConstMatch(value, validatedSchema, path);
459
+ validateSchemaBranchList('allOf', validatedSchema.allOf, value, path, depth, state);
460
+ validateSchemaBranchList('anyOf', validatedSchema.anyOf, value, path, depth, state);
461
+ validateSchemaBranchList('oneOf', validatedSchema.oneOf, value, path, depth, state);
462
+ assertNotSchemaSatisfied(value, validatedSchema, path, depth, state);
463
+ if (typeof value === 'number')
464
+ validateNumberValue(value, validatedSchema, path);
465
+ if (typeof value === 'string')
466
+ validateStringValue(value, validatedSchema, path);
467
+ if (Array.isArray(value))
468
+ validateArrayValue(value, validatedSchema, path, depth, state);
469
+ if (isJsonObject(value))
470
+ validateObjectValue(value, validatedSchema, path, depth, state);
471
+ }
472
+ /**
473
+ * Validates input or throws before any provider effect can run.
474
+ *
475
+ * Structure and evaluation use independent shared node budgets. Exhaustion is
476
+ * an indeterminate hard denial and cannot be consumed as an ordinary
477
+ * combinator mismatch.
478
+ *
479
+ * @complexity Time: O(n). Space: O(d), for bounded schema/input traversal.
480
+ * @overallScore 100/100
481
+ */
482
+ export function assertConnectorInputMatchesSchema(value, schema, path = 'input') {
483
+ if (schema === undefined)
484
+ schemaError(path, 'is missing a connector input schema');
485
+ assertSchemaStructureSupported(schema, path, 0, { nodes: 0 });
486
+ validateSchema(value, schema, path, 0, { nodes: 0 });
487
+ }
488
+ /** Returns the fail-closed reason used to keep unsupported live tools uncallable. */
489
+ export function getConnectorSchemaSupportError(schema) {
490
+ try {
491
+ assertSchemaStructureSupported(schema, 'schema-probe', 0, { nodes: 0 });
492
+ return undefined;
493
+ }
494
+ catch (error) {
495
+ return error.message;
496
+ }
497
+ }
498
+ //# sourceMappingURL=json-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../../src/composio/json-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @module output-protection
3
+ *
4
+ * Centralized size and secret redaction boundary for provider output.
5
+ */
6
+ import type { JsonValue } from '@jini-ai/protocol';
7
+ type JsonObject = {
8
+ [key: string]: JsonValue;
9
+ };
10
+ export declare const CONNECTOR_MAX_OUTPUT_BYTES: number;
11
+ export interface ConnectorOutputProtectionResult {
12
+ output: JsonValue;
13
+ redacted: boolean;
14
+ serializedBytes: number;
15
+ }
16
+ export interface ConnectorObjectOutputProtectionResult extends ConnectorOutputProtectionResult {
17
+ output: JsonObject;
18
+ }
19
+ /**
20
+ * Bounds, clones, recursively redacts, and serialized-size caps provider data.
21
+ *
22
+ * The object overload is sound because both the structural clone and redaction
23
+ * preserve the root container kind. Secret fields may change value, but an
24
+ * object input cannot become an array, primitive, or null.
25
+ *
26
+ * @complexity Time: O(n). Space: O(n), within the output structure limits.
27
+ * @overallScore 100/100
28
+ */
29
+ export declare function protectConnectorOutput(output: JsonObject): ConnectorObjectOutputProtectionResult;
30
+ export declare function protectConnectorOutput(output: JsonValue): ConnectorOutputProtectionResult;
31
+ export {};
32
+ //# sourceMappingURL=output-protection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-protection.d.ts","sourceRoot":"","sources":["../../src/composio/output-protection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAQnD,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/C,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAwCrD,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qCAAsC,SAAQ,+BAA+B;IAC5F,MAAM,EAAE,UAAU,CAAC;CACpB;AAoDD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,qCAAqC,CAAC;AAClG,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,+BAA+B,CAAC"}