@osva-ai/contracts 1.1.0-rc.2 → 1.1.0-rc.3

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 (121) hide show
  1. package/README.md +2 -0
  2. package/dist/agent-manifest.d.ts +26 -2
  3. package/dist/agent-manifest.d.ts.map +1 -1
  4. package/dist/agent-manifest.js +1 -0
  5. package/dist/agent-manifest.js.map +1 -1
  6. package/dist/artifact-blob-store.d.ts +36 -0
  7. package/dist/artifact-blob-store.d.ts.map +1 -0
  8. package/dist/artifact-blob-store.js +2 -0
  9. package/dist/artifact-blob-store.js.map +1 -0
  10. package/dist/artifact-storage-config.d.ts +42 -0
  11. package/dist/artifact-storage-config.d.ts.map +1 -0
  12. package/dist/artifact-storage-config.js +11 -0
  13. package/dist/artifact-storage-config.js.map +1 -0
  14. package/dist/declarative-agent-runtime.d.ts +25 -0
  15. package/dist/declarative-agent-runtime.d.ts.map +1 -0
  16. package/dist/declarative-agent-runtime.js +64 -0
  17. package/dist/declarative-agent-runtime.js.map +1 -0
  18. package/dist/evaluation-quality-gate.d.ts +57 -0
  19. package/dist/evaluation-quality-gate.d.ts.map +1 -0
  20. package/dist/evaluation-quality-gate.js +36 -0
  21. package/dist/evaluation-quality-gate.js.map +1 -0
  22. package/dist/evaluation-suite.d.ts +11 -0
  23. package/dist/evaluation-suite.d.ts.map +1 -1
  24. package/dist/evaluation-suite.js.map +1 -1
  25. package/dist/human-auth.d.ts +24 -0
  26. package/dist/human-auth.d.ts.map +1 -0
  27. package/dist/human-auth.js +56 -0
  28. package/dist/human-auth.js.map +1 -0
  29. package/dist/human-identity.d.ts +59 -0
  30. package/dist/human-identity.d.ts.map +1 -0
  31. package/dist/human-identity.js +120 -0
  32. package/dist/human-identity.js.map +1 -0
  33. package/dist/human-membership-api.d.ts +47 -0
  34. package/dist/human-membership-api.d.ts.map +1 -0
  35. package/dist/human-membership-api.js +30 -0
  36. package/dist/human-membership-api.js.map +1 -0
  37. package/dist/ids.d.ts +7 -0
  38. package/dist/ids.d.ts.map +1 -1
  39. package/dist/index.d.ts +27 -6
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +12 -2
  42. package/dist/index.js.map +1 -1
  43. package/dist/model-gateway.d.ts +36 -0
  44. package/dist/model-gateway.d.ts.map +1 -1
  45. package/dist/model-gateway.js +11 -0
  46. package/dist/model-gateway.js.map +1 -1
  47. package/dist/model-profile-registry.d.ts +3 -1
  48. package/dist/model-profile-registry.d.ts.map +1 -1
  49. package/dist/model-provider-connection-registry.d.ts +47 -0
  50. package/dist/model-provider-connection-registry.d.ts.map +1 -0
  51. package/dist/model-provider-connection-registry.js +2 -0
  52. package/dist/model-provider-connection-registry.js.map +1 -0
  53. package/dist/model-provider-connection.d.ts +37 -0
  54. package/dist/model-provider-connection.d.ts.map +1 -0
  55. package/dist/model-provider-connection.js +32 -0
  56. package/dist/model-provider-connection.js.map +1 -0
  57. package/dist/runtime-protocol.d.ts +5 -0
  58. package/dist/runtime-protocol.d.ts.map +1 -1
  59. package/dist/runtime-protocol.js +9 -1
  60. package/dist/runtime-protocol.js.map +1 -1
  61. package/dist/schemas/agent-manifest.d.ts +22 -0
  62. package/dist/schemas/agent-manifest.d.ts.map +1 -1
  63. package/dist/schemas/agent-manifest.js +50 -1
  64. package/dist/schemas/agent-manifest.js.map +1 -1
  65. package/dist/schemas/agent-registry.d.ts +33 -0
  66. package/dist/schemas/agent-registry.d.ts.map +1 -1
  67. package/dist/schemas/evaluation-quality-gate.d.ts +192 -0
  68. package/dist/schemas/evaluation-quality-gate.d.ts.map +1 -0
  69. package/dist/schemas/evaluation-quality-gate.js +81 -0
  70. package/dist/schemas/evaluation-quality-gate.js.map +1 -0
  71. package/dist/schemas/evaluation-suite.d.ts +144 -0
  72. package/dist/schemas/evaluation-suite.d.ts.map +1 -1
  73. package/dist/schemas/evaluation-suite.js +27 -0
  74. package/dist/schemas/evaluation-suite.js.map +1 -1
  75. package/dist/schemas/ids.d.ts +7 -0
  76. package/dist/schemas/ids.d.ts.map +1 -1
  77. package/dist/schemas/ids.js +7 -0
  78. package/dist/schemas/ids.js.map +1 -1
  79. package/dist/schemas/index.d.ts +5 -3
  80. package/dist/schemas/index.d.ts.map +1 -1
  81. package/dist/schemas/index.js +5 -3
  82. package/dist/schemas/index.js.map +1 -1
  83. package/dist/schemas/model-gateway.d.ts +55 -0
  84. package/dist/schemas/model-gateway.d.ts.map +1 -1
  85. package/dist/schemas/model-gateway.js +34 -1
  86. package/dist/schemas/model-gateway.js.map +1 -1
  87. package/dist/schemas/model-profile-registry.d.ts +3 -0
  88. package/dist/schemas/model-profile-registry.d.ts.map +1 -1
  89. package/dist/schemas/model-profile-registry.js +3 -1
  90. package/dist/schemas/model-profile-registry.js.map +1 -1
  91. package/dist/schemas/model-provider-connection-registry.d.ts +108 -0
  92. package/dist/schemas/model-provider-connection-registry.d.ts.map +1 -0
  93. package/dist/schemas/model-provider-connection-registry.js +65 -0
  94. package/dist/schemas/model-provider-connection-registry.js.map +1 -0
  95. package/dist/schemas/office-registry.d.ts +4 -4
  96. package/dist/schemas/run-lifecycle.d.ts +10 -0
  97. package/dist/schemas/run-lifecycle.d.ts.map +1 -1
  98. package/dist/schemas/run-lifecycle.js +5 -1
  99. package/dist/schemas/run-lifecycle.js.map +1 -1
  100. package/dist/schemas/runtime-protocol.d.ts +12 -0
  101. package/dist/schemas/runtime-protocol.d.ts.map +1 -1
  102. package/dist/schemas/runtime-protocol.js +1 -0
  103. package/dist/schemas/runtime-protocol.js.map +1 -1
  104. package/dist/security.d.ts +27 -3
  105. package/dist/security.d.ts.map +1 -1
  106. package/dist/security.js +23 -0
  107. package/dist/security.js.map +1 -1
  108. package/dist/tsconfig.tsbuildinfo +1 -1
  109. package/dist/v1-control-plane-human-access.d.ts +22 -0
  110. package/dist/v1-control-plane-human-access.d.ts.map +1 -0
  111. package/dist/v1-control-plane-human-access.js +41 -0
  112. package/dist/v1-control-plane-human-access.js.map +1 -0
  113. package/dist/v1-route-access.d.ts +14 -0
  114. package/dist/v1-route-access.d.ts.map +1 -0
  115. package/dist/v1-route-access.js +2 -0
  116. package/dist/v1-route-access.js.map +1 -0
  117. package/dist/validate-agent-manifest.d.ts +14 -0
  118. package/dist/validate-agent-manifest.d.ts.map +1 -0
  119. package/dist/validate-agent-manifest.js +21 -0
  120. package/dist/validate-agent-manifest.js.map +1 -0
  121. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ import { HUMAN_WORKSPACE_PERMISSIONS } from "./human-identity.js";
2
+ import { AUTHORIZATION_ACTIONS } from "./security.js";
3
+ /** How a `/v1` route participates in human session authorization. */
4
+ export const V1_ROUTE_ACCESS_CLASSES = {
5
+ /** Login, setup, recovery — no session required. */
6
+ PUBLIC_AUTHENTICATION: "public_authentication",
7
+ /** Human session routes without workspace-scoped control-plane permissions. */
8
+ HUMAN_IDENTITY_SESSION: "human_identity_session",
9
+ /** Human identity admin routes requiring workspace membership permissions. */
10
+ HUMAN_IDENTITY_WORKSPACE: "human_identity_workspace",
11
+ /** Standard control-plane route; humans use workspace membership + permission. */
12
+ CONTROL_PLANE_WORKSPACE: "control_plane_workspace",
13
+ /** Machine API-key context only (e.g. GET /v1/auth/context). */
14
+ API_KEY_ONLY: "api_key_only",
15
+ /** Human principals must not call this route (default deny). */
16
+ HUMAN_PRINCIPAL_DENIED: "human_principal_denied",
17
+ };
18
+ const ACCESS_CLASS_VALUES = new Set(Object.values(V1_ROUTE_ACCESS_CLASSES));
19
+ export function isV1RouteAccessClass(value) {
20
+ return ACCESS_CLASS_VALUES.has(value);
21
+ }
22
+ export function authorizationActionToHumanPermission(action) {
23
+ switch (action) {
24
+ case AUTHORIZATION_ACTIONS.READ:
25
+ return HUMAN_WORKSPACE_PERMISSIONS.READ;
26
+ case AUTHORIZATION_ACTIONS.EXECUTE:
27
+ return HUMAN_WORKSPACE_PERMISSIONS.EXECUTE;
28
+ case AUTHORIZATION_ACTIONS.WRITE:
29
+ return HUMAN_WORKSPACE_PERMISSIONS.WRITE;
30
+ case AUTHORIZATION_ACTIONS.ADMIN:
31
+ return HUMAN_WORKSPACE_PERMISSIONS.ADMINISTER_WORKSPACE;
32
+ default: {
33
+ const _exhaustive = action;
34
+ return _exhaustive;
35
+ }
36
+ }
37
+ }
38
+ export function isHumanPermittedControlPlaneAccessClass(accessClass) {
39
+ return accessClass === V1_ROUTE_ACCESS_CLASSES.CONTROL_PLANE_WORKSPACE;
40
+ }
41
+ //# sourceMappingURL=v1-control-plane-human-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1-control-plane-human-access.js","sourceRoot":"","sources":["../src/v1-control-plane-human-access.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,qEAAqE;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,oDAAoD;IACpD,qBAAqB,EAAE,uBAAuB;IAC9C,+EAA+E;IAC/E,sBAAsB,EAAE,wBAAwB;IAChD,8EAA8E;IAC9E,wBAAwB,EAAE,0BAA0B;IACpD,kFAAkF;IAClF,uBAAuB,EAAE,yBAAyB;IAClD,gEAAgE;IAChE,YAAY,EAAE,cAAc;IAC5B,gEAAgE;IAChE,sBAAsB,EAAE,wBAAwB;CACxC,CAAC;AAKX,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CACvC,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,KAAa;IAEb,OAAO,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAA2B;IAE3B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,qBAAqB,CAAC,IAAI;YAC7B,OAAO,2BAA2B,CAAC,IAAI,CAAC;QAC1C,KAAK,qBAAqB,CAAC,OAAO;YAChC,OAAO,2BAA2B,CAAC,OAAO,CAAC;QAC7C,KAAK,qBAAqB,CAAC,KAAK;YAC9B,OAAO,2BAA2B,CAAC,KAAK,CAAC;QAC3C,KAAK,qBAAqB,CAAC,KAAK;YAC9B,OAAO,2BAA2B,CAAC,oBAAoB,CAAC;QAC1D,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,MAAM,CAAC;YAClC,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,WAA+B;IAE/B,OAAO,WAAW,KAAK,uBAAuB,CAAC,uBAAuB,CAAC;AACzE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { HumanWorkspacePermission } from "./human-identity.js";
2
+ import type { AuthorizationAction } from "./security.js";
3
+ import type { V1RouteAccessClass } from "./v1-control-plane-human-access.js";
4
+ export interface V1RouteAccessRecord {
5
+ readonly module: string;
6
+ readonly method: string;
7
+ readonly path: string;
8
+ readonly accessClass: V1RouteAccessClass;
9
+ readonly workspaceScoped: boolean;
10
+ readonly requiredHumanPermission: HumanWorkspacePermission | null;
11
+ readonly requiredAuthorizationAction: AuthorizationAction | null;
12
+ readonly resourceFamily: string;
13
+ }
14
+ //# sourceMappingURL=v1-route-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1-route-access.d.ts","sourceRoot":"","sources":["../src/v1-route-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,uBAAuB,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,2BAA2B,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACjE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=v1-route-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1-route-access.js","sourceRoot":"","sources":["../src/v1-route-access.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { AgentManifestV1 } from "./agent-manifest.js";
2
+ export type AgentManifestValidationResult = {
3
+ readonly ok: true;
4
+ readonly manifest: AgentManifestV1;
5
+ } | {
6
+ readonly ok: false;
7
+ readonly messages: readonly string[];
8
+ };
9
+ /**
10
+ * Canonical Agent Manifest parse/validation (Zod + declarative cross-field rules).
11
+ * Does not mutate the input value.
12
+ */
13
+ export declare function validateAgentManifest(manifest: unknown): AgentManifestValidationResult;
14
+ //# sourceMappingURL=validate-agent-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-agent-manifest.d.ts","sourceRoot":"","sources":["../src/validate-agent-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,MAAM,MAAM,6BAA6B,GACrC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,GAChB,6BAA6B,CAiB/B"}
@@ -0,0 +1,21 @@
1
+ import { agentManifestSchema } from "./schemas/agent-manifest.js";
2
+ /**
3
+ * Canonical Agent Manifest parse/validation (Zod + declarative cross-field rules).
4
+ * Does not mutate the input value.
5
+ */
6
+ export function validateAgentManifest(manifest) {
7
+ const result = agentManifestSchema.safeParse(manifest);
8
+ if (result.success) {
9
+ return { ok: true, manifest: result.data };
10
+ }
11
+ const messages = result.error.issues
12
+ .map((issue) => issue.message)
13
+ .filter((message) => message.length > 0);
14
+ return {
15
+ ok: false,
16
+ messages: messages.length > 0
17
+ ? messages
18
+ : ["Agent manifest is invalid."],
19
+ };
20
+ }
21
+ //# sourceMappingURL=validate-agent-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-agent-manifest.js","sourceRoot":"","sources":["../src/validate-agent-manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAMlE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAiB;IAEjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;SACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;SAC7B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE3C,OAAO;QACL,EAAE,EAAE,KAAK;QACT,QAAQ,EACN,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAE,CAAC,4BAA4B,CAAW;KAChD,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osva-ai/contracts",
3
- "version": "1.1.0-rc.2",
3
+ "version": "1.1.0-rc.3",
4
4
  "description": "OSVA public contracts and schemas",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {