@amodalai/runtime 0.1.16 → 0.1.18

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 (82) hide show
  1. package/dist/src/agent/agent-types.d.ts +0 -6
  2. package/dist/src/agent/agent-types.js +0 -2
  3. package/dist/src/agent/agent-types.js.map +1 -1
  4. package/dist/src/agent/agent-types.test.js +0 -11
  5. package/dist/src/agent/agent-types.test.js.map +1 -1
  6. package/dist/src/agent/feedback-store.d.ts +39 -0
  7. package/dist/src/agent/feedback-store.js +98 -0
  8. package/dist/src/agent/feedback-store.js.map +1 -0
  9. package/dist/src/agent/local-server.js +21 -5
  10. package/dist/src/agent/local-server.js.map +1 -1
  11. package/dist/src/agent/routes/admin-chat.d.ts +1 -0
  12. package/dist/src/agent/routes/admin-chat.js +1 -1
  13. package/dist/src/agent/routes/admin-chat.js.map +1 -1
  14. package/dist/src/agent/routes/chat.d.ts +2 -2
  15. package/dist/src/agent/routes/chat.js +4 -4
  16. package/dist/src/agent/routes/chat.js.map +1 -1
  17. package/dist/src/agent/routes/chat.test.js +14 -20
  18. package/dist/src/agent/routes/chat.test.js.map +1 -1
  19. package/dist/src/agent/routes/evals.js +34 -47
  20. package/dist/src/agent/routes/evals.js.map +1 -1
  21. package/dist/src/agent/routes/feedback.d.ts +11 -0
  22. package/dist/src/agent/routes/feedback.js +72 -0
  23. package/dist/src/agent/routes/feedback.js.map +1 -0
  24. package/dist/src/agent/routes/files.js +118 -12
  25. package/dist/src/agent/routes/files.js.map +1 -1
  26. package/dist/src/agent/routes/inspect.js +33 -0
  27. package/dist/src/agent/routes/inspect.js.map +1 -1
  28. package/dist/src/agent/routes/task.js +2 -4
  29. package/dist/src/agent/routes/task.js.map +1 -1
  30. package/dist/src/cron/heartbeat-runner.d.ts +3 -6
  31. package/dist/src/cron/heartbeat-runner.js +1 -10
  32. package/dist/src/cron/heartbeat-runner.js.map +1 -1
  33. package/dist/src/index.d.ts +4 -5
  34. package/dist/src/index.js +3 -10
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/middleware/auth.d.ts +3 -19
  37. package/dist/src/middleware/auth.js +0 -118
  38. package/dist/src/middleware/auth.js.map +1 -1
  39. package/dist/src/routes/ai-stream.d.ts +8 -7
  40. package/dist/src/routes/ai-stream.js +3 -16
  41. package/dist/src/routes/ai-stream.js.map +1 -1
  42. package/dist/src/routes/chat-stream.d.ts +4 -3
  43. package/dist/src/routes/chat-stream.js +3 -16
  44. package/dist/src/routes/chat-stream.js.map +1 -1
  45. package/dist/src/routes/chat.d.ts +4 -2
  46. package/dist/src/routes/chat.js +2 -14
  47. package/dist/src/routes/chat.js.map +1 -1
  48. package/dist/src/routes/chat.test.js +2 -2
  49. package/dist/src/routes/chat.test.js.map +1 -1
  50. package/dist/src/server.d.ts +16 -3
  51. package/dist/src/server.js +24 -25
  52. package/dist/src/server.js.map +1 -1
  53. package/dist/src/session/admin-file-tools.d.ts +136 -0
  54. package/dist/src/session/admin-file-tools.js +240 -0
  55. package/dist/src/session/admin-file-tools.js.map +1 -0
  56. package/dist/src/session/session-manager.d.ts +37 -3
  57. package/dist/src/session/session-manager.js +174 -44
  58. package/dist/src/session/session-manager.js.map +1 -1
  59. package/dist/src/session/session-manager.test.js +30 -52
  60. package/dist/src/session/session-manager.test.js.map +1 -1
  61. package/dist/src/session/session-runner.d.ts +29 -13
  62. package/dist/src/session/session-runner.js +28 -91
  63. package/dist/src/session/session-runner.js.map +1 -1
  64. package/dist/src/session/session-runner.test.js +70 -80
  65. package/dist/src/session/session-runner.test.js.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +2 -2
  68. package/dist/src/audit/audit-client.d.ts +0 -46
  69. package/dist/src/audit/audit-client.js +0 -83
  70. package/dist/src/audit/audit-client.js.map +0 -1
  71. package/dist/src/middleware/auth.test.d.ts +0 -6
  72. package/dist/src/middleware/auth.test.js +0 -260
  73. package/dist/src/middleware/auth.test.js.map +0 -1
  74. package/dist/src/routes/sessions.d.ts +0 -14
  75. package/dist/src/routes/sessions.js +0 -82
  76. package/dist/src/routes/sessions.js.map +0 -1
  77. package/dist/src/utils/jwt-verify.d.ts +0 -19
  78. package/dist/src/utils/jwt-verify.js +0 -32
  79. package/dist/src/utils/jwt-verify.js.map +0 -1
  80. package/dist/src/utils/jwt-verify.test.d.ts +0 -6
  81. package/dist/src/utils/jwt-verify.test.js +0 -150
  82. package/dist/src/utils/jwt-verify.test.js.map +0 -1
@@ -1,150 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Amodal Labs, Inc.
4
- * SPDX-License-Identifier: MIT
5
- */
6
- import { describe, it, expect, beforeAll, afterAll } from 'vitest';
7
- import express from 'express';
8
- import { generateKeyPair, SignJWT, exportJWK, calculateJwkThumbprint } from 'jose';
9
- import { createJWTVerifier } from './jwt-verify.js';
10
- describe('jwt-verify', () => {
11
- let privateKey;
12
- let publicKey;
13
- let kid;
14
- let jwksServer;
15
- let jwksUrl;
16
- let verifyJWT;
17
- beforeAll(async () => {
18
- // Generate key pair for tests
19
- const pair = await generateKeyPair('ES256', { extractable: true });
20
- privateKey = pair.privateKey;
21
- publicKey = pair.publicKey;
22
- const publicJwk = await exportJWK(publicKey);
23
- kid = await calculateJwkThumbprint(publicJwk);
24
- // Start a minimal JWKS server
25
- const app = express();
26
- app.get('/.well-known/jwks.json', (_req, res) => {
27
- res.json({
28
- keys: [{ ...publicJwk, kid, alg: 'ES256', use: 'sig' }],
29
- });
30
- });
31
- jwksServer = await new Promise((resolve) => {
32
- const s = app.listen(0, '127.0.0.1', () => {
33
- resolve(s);
34
- });
35
- });
36
- const addr = jwksServer.address();
37
- jwksUrl = `http://127.0.0.1:${addr.port}/.well-known/jwks.json`;
38
- verifyJWT = createJWTVerifier({ jwksUrl });
39
- });
40
- afterAll(async () => {
41
- if (jwksServer) {
42
- await new Promise((resolve, reject) => {
43
- jwksServer.close((err) => {
44
- if (err)
45
- reject(err);
46
- else
47
- resolve();
48
- });
49
- });
50
- }
51
- });
52
- it('verifies a valid platform JWT', async () => {
53
- const token = await new SignJWT({
54
- org_id: 'org-1',
55
- app_id: 'app-1',
56
- })
57
- .setProtectedHeader({ alg: 'ES256', kid })
58
- .setIssuer('aitize-platform')
59
- .setSubject('app-1')
60
- .setIssuedAt()
61
- .setExpirationTime('1h')
62
- .sign(privateKey);
63
- const claims = await verifyJWT(token);
64
- expect(claims).not.toBeNull();
65
- expect(claims?.org_id).toBe('org-1');
66
- expect(claims?.app_id).toBe('app-1');
67
- expect(claims?.app_id).toBe('app-1');
68
- });
69
- it('returns null for expired JWT', async () => {
70
- const token = await new SignJWT({
71
- org_id: 'org-1',
72
- app_id: 'app-1',
73
- })
74
- .setProtectedHeader({ alg: 'ES256', kid })
75
- .setIssuer('aitize-platform')
76
- .setSubject('app-1')
77
- .setIssuedAt(Math.floor(Date.now() / 1000) - 7200)
78
- .setExpirationTime(Math.floor(Date.now() / 1000) - 3600)
79
- .sign(privateKey);
80
- const claims = await verifyJWT(token);
81
- expect(claims).toBeNull();
82
- });
83
- it('returns null for wrong issuer', async () => {
84
- const token = await new SignJWT({
85
- org_id: 'org-1',
86
- app_id: 'app-1',
87
- })
88
- .setProtectedHeader({ alg: 'ES256', kid })
89
- .setIssuer('wrong-issuer')
90
- .setSubject('app-1')
91
- .setIssuedAt()
92
- .setExpirationTime('1h')
93
- .sign(privateKey);
94
- const claims = await verifyJWT(token);
95
- expect(claims).toBeNull();
96
- });
97
- it('returns null for invalid token', async () => {
98
- const claims = await verifyJWT('not-a-jwt');
99
- expect(claims).toBeNull();
100
- });
101
- it('extracts actor from JWT claims when present', async () => {
102
- const token = await new SignJWT({
103
- org_id: 'org-1',
104
- app_id: 'app-1',
105
- actor: 'alice@example.com',
106
- })
107
- .setProtectedHeader({ alg: 'ES256', kid })
108
- .setIssuer('aitize-platform')
109
- .setSubject('app-1')
110
- .setIssuedAt()
111
- .setExpirationTime('1h')
112
- .sign(privateKey);
113
- const claims = await verifyJWT(token);
114
- expect(claims).not.toBeNull();
115
- expect(claims?.actor).toBe('alice@example.com');
116
- });
117
- it('omits actor from claims when not in JWT', async () => {
118
- const token = await new SignJWT({
119
- org_id: 'org-1',
120
- app_id: 'app-1',
121
- })
122
- .setProtectedHeader({ alg: 'ES256', kid })
123
- .setIssuer('aitize-platform')
124
- .setSubject('app-1')
125
- .setIssuedAt()
126
- .setExpirationTime('1h')
127
- .sign(privateKey);
128
- const claims = await verifyJWT(token);
129
- expect(claims).not.toBeNull();
130
- expect(claims?.actor).toBeUndefined();
131
- });
132
- it('returns null for JWT signed with different key', async () => {
133
- const otherPair = await generateKeyPair('ES256', { extractable: true });
134
- const otherJwk = await exportJWK(otherPair.publicKey);
135
- const otherKid = await calculateJwkThumbprint(otherJwk);
136
- const token = await new SignJWT({
137
- org_id: 'org-1',
138
- app_id: 'app-1',
139
- })
140
- .setProtectedHeader({ alg: 'ES256', kid: otherKid })
141
- .setIssuer('aitize-platform')
142
- .setSubject('app-1')
143
- .setIssuedAt()
144
- .setExpirationTime('1h')
145
- .sign(otherPair.privateKey);
146
- const claims = await verifyJWT(token);
147
- expect(claims).toBeNull();
148
- });
149
- });
150
- //# sourceMappingURL=jwt-verify.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt-verify.test.js","sourceRoot":"","sources":["../../../src/utils/jwt-verify.test.ts"],"names":[],"mappings":"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"}