@enterprise-skills/orchestrator 3.2.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 (113) hide show
  1. package/dist/__tests__/advisor.test.d.ts +2 -0
  2. package/dist/__tests__/advisor.test.d.ts.map +1 -0
  3. package/dist/__tests__/advisor.test.js +92 -0
  4. package/dist/__tests__/advisor.test.js.map +1 -0
  5. package/dist/__tests__/audit-logger.test.d.ts +2 -0
  6. package/dist/__tests__/audit-logger.test.d.ts.map +1 -0
  7. package/dist/__tests__/audit-logger.test.js +115 -0
  8. package/dist/__tests__/audit-logger.test.js.map +1 -0
  9. package/dist/__tests__/dag-resolver.test.d.ts +2 -0
  10. package/dist/__tests__/dag-resolver.test.d.ts.map +1 -0
  11. package/dist/__tests__/dag-resolver.test.js +297 -0
  12. package/dist/__tests__/dag-resolver.test.js.map +1 -0
  13. package/dist/__tests__/orchestrator.test.d.ts +2 -0
  14. package/dist/__tests__/orchestrator.test.d.ts.map +1 -0
  15. package/dist/__tests__/orchestrator.test.js +152 -0
  16. package/dist/__tests__/orchestrator.test.js.map +1 -0
  17. package/dist/__tests__/policy-enforcer.test.d.ts +2 -0
  18. package/dist/__tests__/policy-enforcer.test.d.ts.map +1 -0
  19. package/dist/__tests__/policy-enforcer.test.js +113 -0
  20. package/dist/__tests__/policy-enforcer.test.js.map +1 -0
  21. package/dist/__tests__/signal-router.test.d.ts +2 -0
  22. package/dist/__tests__/signal-router.test.d.ts.map +1 -0
  23. package/dist/__tests__/signal-router.test.js +96 -0
  24. package/dist/__tests__/signal-router.test.js.map +1 -0
  25. package/dist/__tests__/state-machine.test.d.ts +2 -0
  26. package/dist/__tests__/state-machine.test.d.ts.map +1 -0
  27. package/dist/__tests__/state-machine.test.js +278 -0
  28. package/dist/__tests__/state-machine.test.js.map +1 -0
  29. package/dist/advisor.d.ts +41 -0
  30. package/dist/advisor.d.ts.map +1 -0
  31. package/dist/advisor.js +268 -0
  32. package/dist/advisor.js.map +1 -0
  33. package/dist/api/handlers.d.ts +28 -0
  34. package/dist/api/handlers.d.ts.map +1 -0
  35. package/dist/api/handlers.js +305 -0
  36. package/dist/api/handlers.js.map +1 -0
  37. package/dist/api/index.d.ts +5 -0
  38. package/dist/api/index.d.ts.map +1 -0
  39. package/dist/api/index.js +20 -0
  40. package/dist/api/index.js.map +1 -0
  41. package/dist/api/routes/complete.d.ts +9 -0
  42. package/dist/api/routes/complete.d.ts.map +1 -0
  43. package/dist/api/routes/complete.js +34 -0
  44. package/dist/api/routes/complete.js.map +1 -0
  45. package/dist/api/routes/dashboard.d.ts +9 -0
  46. package/dist/api/routes/dashboard.d.ts.map +1 -0
  47. package/dist/api/routes/dashboard.js +29 -0
  48. package/dist/api/routes/dashboard.js.map +1 -0
  49. package/dist/api/routes/execute.d.ts +10 -0
  50. package/dist/api/routes/execute.d.ts.map +1 -0
  51. package/dist/api/routes/execute.js +35 -0
  52. package/dist/api/routes/execute.js.map +1 -0
  53. package/dist/api/routes/gate.d.ts +9 -0
  54. package/dist/api/routes/gate.d.ts.map +1 -0
  55. package/dist/api/routes/gate.js +34 -0
  56. package/dist/api/routes/gate.js.map +1 -0
  57. package/dist/api/routes/index.d.ts +7 -0
  58. package/dist/api/routes/index.d.ts.map +1 -0
  59. package/dist/api/routes/index.js +19 -0
  60. package/dist/api/routes/index.js.map +1 -0
  61. package/dist/api/routes/middleware.d.ts +13 -0
  62. package/dist/api/routes/middleware.d.ts.map +1 -0
  63. package/dist/api/routes/middleware.js +55 -0
  64. package/dist/api/routes/middleware.js.map +1 -0
  65. package/dist/api/routes/signal.d.ts +9 -0
  66. package/dist/api/routes/signal.d.ts.map +1 -0
  67. package/dist/api/routes/signal.js +34 -0
  68. package/dist/api/routes/signal.js.map +1 -0
  69. package/dist/api/types.d.ts +87 -0
  70. package/dist/api/types.d.ts.map +1 -0
  71. package/dist/api/types.js +3 -0
  72. package/dist/api/types.js.map +1 -0
  73. package/dist/audit-logger.d.ts +20 -0
  74. package/dist/audit-logger.d.ts.map +1 -0
  75. package/dist/audit-logger.js +125 -0
  76. package/dist/audit-logger.js.map +1 -0
  77. package/dist/builtin-triggers.d.ts +3 -0
  78. package/dist/builtin-triggers.d.ts.map +1 -0
  79. package/dist/builtin-triggers.js +235 -0
  80. package/dist/builtin-triggers.js.map +1 -0
  81. package/dist/dag-resolver.d.ts +22 -0
  82. package/dist/dag-resolver.d.ts.map +1 -0
  83. package/dist/dag-resolver.js +250 -0
  84. package/dist/dag-resolver.js.map +1 -0
  85. package/dist/hardening-sensors.d.ts +22 -0
  86. package/dist/hardening-sensors.d.ts.map +1 -0
  87. package/dist/hardening-sensors.js +135 -0
  88. package/dist/hardening-sensors.js.map +1 -0
  89. package/dist/index.d.ts +87 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +269 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/policy-enforcer.d.ts +27 -0
  94. package/dist/policy-enforcer.d.ts.map +1 -0
  95. package/dist/policy-enforcer.js +185 -0
  96. package/dist/policy-enforcer.js.map +1 -0
  97. package/dist/signal-router.d.ts +19 -0
  98. package/dist/signal-router.d.ts.map +1 -0
  99. package/dist/signal-router.js +206 -0
  100. package/dist/signal-router.js.map +1 -0
  101. package/dist/state-machine.d.ts +45 -0
  102. package/dist/state-machine.d.ts.map +1 -0
  103. package/dist/state-machine.js +300 -0
  104. package/dist/state-machine.js.map +1 -0
  105. package/dist/task-contract.d.ts +46 -0
  106. package/dist/task-contract.d.ts.map +1 -0
  107. package/dist/task-contract.js +71 -0
  108. package/dist/task-contract.js.map +1 -0
  109. package/dist/types.d.ts +167 -0
  110. package/dist/types.d.ts.map +1 -0
  111. package/dist/types.js +3 -0
  112. package/dist/types.js.map +1 -0
  113. package/package.json +29 -0
@@ -0,0 +1,305 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleExecute = handleExecute;
4
+ exports.handleComplete = handleComplete;
5
+ exports.handleGate = handleGate;
6
+ exports.handleSignal = handleSignal;
7
+ exports.handleDashboard = handleDashboard;
8
+ const crypto_1 = require("crypto");
9
+ function computeHash(payload, previousHash) {
10
+ const data = JSON.stringify(payload) + (previousHash ?? '');
11
+ return (0, crypto_1.createHash)('sha256').update(data).digest('hex');
12
+ }
13
+ function validate(body, required) {
14
+ for (const field of required) {
15
+ if (body[field] === undefined || body[field] === null || body[field] === '') {
16
+ return `Missing required field: ${field}`;
17
+ }
18
+ }
19
+ return null;
20
+ }
21
+ async function handleExecute(supabase, licenseKey, body) {
22
+ const err = validate(body, ['session_id', 'skill_id']);
23
+ if (err)
24
+ return { status: 400, body: { ok: false, error: err } };
25
+ const hash = computeHash({
26
+ license_key: licenseKey,
27
+ session_id: body.session_id,
28
+ skill_id: body.skill_id,
29
+ status: 'started',
30
+ timestamp: new Date().toISOString(),
31
+ });
32
+ const { data, error } = await new Promise((resolve) => {
33
+ supabase
34
+ .from('orchestration_executions')
35
+ .insert({
36
+ license_key: licenseKey,
37
+ session_id: body.session_id,
38
+ skill_id: body.skill_id,
39
+ status: 'started',
40
+ integrity_hash: hash,
41
+ })
42
+ .select()
43
+ .single()
44
+ .then(resolve);
45
+ });
46
+ if (error)
47
+ return { status: 500, body: { ok: false, error: 'Failed to register execution' } };
48
+ await new Promise((resolve) => {
49
+ supabase
50
+ .from('orchestration_audit_log')
51
+ .insert({
52
+ license_key: licenseKey,
53
+ session_id: body.session_id,
54
+ event_type: 'skill_start',
55
+ skill_id: body.skill_id,
56
+ details: { execution_id: data.id },
57
+ integrity_hash: computeHash({ event: 'skill_start', skill_id: body.skill_id }),
58
+ })
59
+ .then(() => resolve());
60
+ });
61
+ return { status: 200, body: { ok: true, data } };
62
+ }
63
+ async function handleComplete(supabase, licenseKey, body) {
64
+ const err = validate(body, [
65
+ 'session_id', 'skill_id', 'status', 'duration_seconds', 'summary',
66
+ ]);
67
+ if (err)
68
+ return { status: 400, body: { ok: false, error: err } };
69
+ const allowedStatuses = ['completed', 'failed', 'skipped', 'partial'];
70
+ if (!allowedStatuses.includes(body.status)) {
71
+ return { status: 400, body: { ok: false, error: `Invalid status. Must be one of: ${allowedStatuses.join(', ')}` } };
72
+ }
73
+ const hash = computeHash({
74
+ license_key: licenseKey,
75
+ session_id: body.session_id,
76
+ skill_id: body.skill_id,
77
+ status: body.status,
78
+ findings_count: body.findings_count,
79
+ });
80
+ const { error: updateError } = await new Promise((resolve) => {
81
+ supabase
82
+ .from('orchestration_executions')
83
+ .update({
84
+ status: body.status,
85
+ grade: body.grade,
86
+ duration_seconds: body.duration_seconds,
87
+ summary: body.summary,
88
+ findings_count: body.findings_count,
89
+ metrics: body.metrics ?? {},
90
+ integrity_hash: hash,
91
+ completed_at: new Date().toISOString(),
92
+ })
93
+ .eq('license_key', licenseKey)
94
+ .eq('session_id', body.session_id)
95
+ .eq('skill_id', body.skill_id)
96
+ .eq('status', 'started')
97
+ .then(resolve);
98
+ });
99
+ if (updateError)
100
+ return { status: 500, body: { ok: false, error: 'Failed to update execution' } };
101
+ const signals = body.downstream_signals ?? [];
102
+ if (signals.length > 0) {
103
+ const signalRows = signals.map(sig => ({
104
+ license_key: licenseKey,
105
+ session_id: body.session_id,
106
+ from_skill: body.skill_id,
107
+ to_skill: sig.target_skill,
108
+ signal_type: sig.signal,
109
+ urgency: 'normal',
110
+ condition: sig.condition,
111
+ payload: sig.payload ?? {},
112
+ routing_state: 'pending',
113
+ trigger_id: null,
114
+ }));
115
+ await new Promise((resolve) => {
116
+ supabase
117
+ .from('orchestration_signals')
118
+ .insert(signalRows)
119
+ .then(() => resolve());
120
+ });
121
+ }
122
+ await new Promise((resolve) => {
123
+ supabase
124
+ .from('orchestration_audit_log')
125
+ .insert({
126
+ license_key: licenseKey,
127
+ session_id: body.session_id,
128
+ event_type: 'skill_complete',
129
+ skill_id: body.skill_id,
130
+ details: { status: body.status, grade: body.grade, signals_emitted: signals.length },
131
+ integrity_hash: computeHash({ event: 'skill_complete', skill_id: body.skill_id, status: body.status }),
132
+ })
133
+ .then(() => resolve());
134
+ });
135
+ return { status: 200, body: { ok: true, data: { signals_emitted: signals.length } } };
136
+ }
137
+ async function handleGate(supabase, licenseKey, body) {
138
+ const err = validate(body, ['session_id', 'action']);
139
+ if (err)
140
+ return { status: 400, body: { ok: false, error: err } };
141
+ const { data: blockingSignals } = await new Promise((resolve) => {
142
+ const query = supabase
143
+ .from('orchestration_signals')
144
+ .select('*')
145
+ .eq('license_key', licenseKey)
146
+ .eq('session_id', body.session_id)
147
+ .in('signal_type', ['block', 'require'])
148
+ .eq('routing_state', 'pending');
149
+ if (body.skill_id) {
150
+ query.eq('to_skill', body.skill_id);
151
+ }
152
+ query.then((result) => resolve(result));
153
+ });
154
+ const hasBlockers = Array.isArray(blockingSignals) && blockingSignals.length > 0;
155
+ const decision = hasBlockers ? 'deny' : 'allow';
156
+ await new Promise((resolve) => {
157
+ supabase
158
+ .from('orchestration_gates')
159
+ .insert({
160
+ license_key: licenseKey,
161
+ session_id: body.session_id,
162
+ gate_id: `gate-${body.action}`,
163
+ skill_id: body.skill_id,
164
+ action: body.action,
165
+ decision,
166
+ enforcement: hasBlockers ? 'require' : 'suggest',
167
+ evidence: { blocking_signals: blockingSignals ?? [] },
168
+ })
169
+ .then(() => resolve());
170
+ });
171
+ await new Promise((resolve) => {
172
+ supabase
173
+ .from('orchestration_audit_log')
174
+ .insert({
175
+ license_key: licenseKey,
176
+ session_id: body.session_id,
177
+ event_type: 'gate_result',
178
+ skill_id: body.skill_id,
179
+ details: { action: body.action, decision, blockers: (blockingSignals ?? []).length },
180
+ integrity_hash: computeHash({ event: 'gate_result', action: body.action, decision }),
181
+ })
182
+ .then(() => resolve());
183
+ });
184
+ return {
185
+ status: 200,
186
+ body: {
187
+ ok: true,
188
+ data: {
189
+ decision,
190
+ blockers: blockingSignals ?? [],
191
+ },
192
+ },
193
+ };
194
+ }
195
+ async function handleSignal(supabase, licenseKey, body) {
196
+ const err = validate(body, [
197
+ 'session_id', 'from_skill', 'to_skill', 'signal_type', 'condition',
198
+ ]);
199
+ if (err)
200
+ return { status: 400, body: { ok: false, error: err } };
201
+ const allowedSignals = ['suggest', 'require', 'block'];
202
+ if (!allowedSignals.includes(body.signal_type)) {
203
+ return { status: 400, body: { ok: false, error: `Invalid signal_type. Must be one of: ${allowedSignals.join(', ')}` } };
204
+ }
205
+ const { data, error } = await new Promise((resolve) => {
206
+ supabase
207
+ .from('orchestration_signals')
208
+ .insert({
209
+ license_key: licenseKey,
210
+ session_id: body.session_id,
211
+ from_skill: body.from_skill,
212
+ to_skill: body.to_skill,
213
+ signal_type: body.signal_type,
214
+ urgency: body.urgency ?? 'normal',
215
+ condition: body.condition,
216
+ message: body.message,
217
+ payload: body.payload ?? {},
218
+ routing_state: 'pending',
219
+ trigger_id: body.trigger_id,
220
+ })
221
+ .select()
222
+ .single()
223
+ .then(resolve);
224
+ });
225
+ if (error)
226
+ return { status: 500, body: { ok: false, error: 'Failed to emit signal' } };
227
+ await new Promise((resolve) => {
228
+ supabase
229
+ .from('orchestration_audit_log')
230
+ .insert({
231
+ license_key: licenseKey,
232
+ session_id: body.session_id,
233
+ event_type: 'signal_emitted',
234
+ skill_id: body.from_skill,
235
+ details: { to: body.to_skill, signal_type: body.signal_type, trigger_id: body.trigger_id },
236
+ integrity_hash: computeHash({ event: 'signal_emitted', from: body.from_skill, to: body.to_skill }),
237
+ })
238
+ .then(() => resolve());
239
+ });
240
+ return { status: 200, body: { ok: true, data } };
241
+ }
242
+ async function handleDashboard(supabase, licenseKey, sessionId) {
243
+ const [workflows, executions, signals, gates] = await Promise.all([
244
+ new Promise((resolve) => {
245
+ const q = supabase
246
+ .from('orchestration_workflows')
247
+ .select('id, workflow_name, status, steps_completed, steps_total, created_at')
248
+ .eq('license_key', licenseKey)
249
+ .order('created_at', { ascending: false })
250
+ .limit(10);
251
+ if (sessionId)
252
+ q.eq('session_id', sessionId);
253
+ q.then((r) => resolve(r));
254
+ }),
255
+ new Promise((resolve) => {
256
+ const q = supabase
257
+ .from('orchestration_executions')
258
+ .select('id, skill_id, status, grade, duration_seconds, created_at')
259
+ .eq('license_key', licenseKey)
260
+ .order('created_at', { ascending: false })
261
+ .limit(25);
262
+ if (sessionId)
263
+ q.eq('session_id', sessionId);
264
+ q.then((r) => resolve(r));
265
+ }),
266
+ new Promise((resolve) => {
267
+ const q = supabase
268
+ .from('orchestration_signals')
269
+ .select('id, from_skill, to_skill, signal_type, urgency, created_at')
270
+ .eq('license_key', licenseKey)
271
+ .eq('routing_state', 'pending')
272
+ .order('created_at', { ascending: false })
273
+ .limit(20);
274
+ if (sessionId)
275
+ q.eq('session_id', sessionId);
276
+ q.then((r) => resolve(r));
277
+ }),
278
+ new Promise((resolve) => {
279
+ const q = supabase
280
+ .from('orchestration_gates')
281
+ .select('id, gate_id, action, decision, created_at')
282
+ .eq('license_key', licenseKey)
283
+ .order('created_at', { ascending: false })
284
+ .limit(20);
285
+ if (sessionId)
286
+ q.eq('session_id', sessionId);
287
+ q.then((r) => resolve(r));
288
+ }),
289
+ ]);
290
+ const allExecs = (executions.data ?? []);
291
+ const successCount = allExecs.filter(e => e.status === 'completed').length;
292
+ const dashboard = {
293
+ active_workflows: (workflows.data ?? []),
294
+ recent_executions: (executions.data ?? []),
295
+ pending_signals: (signals.data ?? []),
296
+ gate_decisions: (gates.data ?? []),
297
+ metrics_summary: {
298
+ total_executions: allExecs.length,
299
+ success_rate: allExecs.length > 0 ? successCount / allExecs.length : 0,
300
+ active_sessions: new Set(allExecs.map(e => e.session_id)).size,
301
+ },
302
+ };
303
+ return { status: 200, body: { ok: true, data: dashboard } };
304
+ }
305
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { handleExecute, handleComplete, handleGate, handleSignal, handleDashboard } from './handlers';
2
+ export type { SupabaseClient } from './handlers';
3
+ export type { ApiRequest, ApiResponse, ExecuteRequest, CompleteRequest, GateRequest, SignalRequest, DashboardResponse, } from './types';
4
+ export { createExecuteHandler, createCompleteHandler, createGateHandler, createSignalHandler, createDashboardHandler, rateLimit, extractLicenseKey, jsonError, jsonSuccess, } from './routes';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtG,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,WAAW,GACZ,MAAM,UAAU,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jsonSuccess = exports.jsonError = exports.extractLicenseKey = exports.rateLimit = exports.createDashboardHandler = exports.createSignalHandler = exports.createGateHandler = exports.createCompleteHandler = exports.createExecuteHandler = exports.handleDashboard = exports.handleSignal = exports.handleGate = exports.handleComplete = exports.handleExecute = void 0;
4
+ var handlers_1 = require("./handlers");
5
+ Object.defineProperty(exports, "handleExecute", { enumerable: true, get: function () { return handlers_1.handleExecute; } });
6
+ Object.defineProperty(exports, "handleComplete", { enumerable: true, get: function () { return handlers_1.handleComplete; } });
7
+ Object.defineProperty(exports, "handleGate", { enumerable: true, get: function () { return handlers_1.handleGate; } });
8
+ Object.defineProperty(exports, "handleSignal", { enumerable: true, get: function () { return handlers_1.handleSignal; } });
9
+ Object.defineProperty(exports, "handleDashboard", { enumerable: true, get: function () { return handlers_1.handleDashboard; } });
10
+ var routes_1 = require("./routes");
11
+ Object.defineProperty(exports, "createExecuteHandler", { enumerable: true, get: function () { return routes_1.createExecuteHandler; } });
12
+ Object.defineProperty(exports, "createCompleteHandler", { enumerable: true, get: function () { return routes_1.createCompleteHandler; } });
13
+ Object.defineProperty(exports, "createGateHandler", { enumerable: true, get: function () { return routes_1.createGateHandler; } });
14
+ Object.defineProperty(exports, "createSignalHandler", { enumerable: true, get: function () { return routes_1.createSignalHandler; } });
15
+ Object.defineProperty(exports, "createDashboardHandler", { enumerable: true, get: function () { return routes_1.createDashboardHandler; } });
16
+ Object.defineProperty(exports, "rateLimit", { enumerable: true, get: function () { return routes_1.rateLimit; } });
17
+ Object.defineProperty(exports, "extractLicenseKey", { enumerable: true, get: function () { return routes_1.extractLicenseKey; } });
18
+ Object.defineProperty(exports, "jsonError", { enumerable: true, get: function () { return routes_1.jsonError; } });
19
+ Object.defineProperty(exports, "jsonSuccess", { enumerable: true, get: function () { return routes_1.jsonSuccess; } });
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAAA,uCAAsG;AAA7F,yGAAA,aAAa,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,2GAAA,eAAe,OAAA;AAWjF,mCAUkB;AAThB,8GAAA,oBAAoB,OAAA;AACpB,+GAAA,qBAAqB,OAAA;AACrB,2GAAA,iBAAiB,OAAA;AACjB,6GAAA,mBAAmB,OAAA;AACnB,gHAAA,sBAAsB,OAAA;AACtB,mGAAA,SAAS,OAAA;AACT,2GAAA,iBAAiB,OAAA;AACjB,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * POST /api/orchestration/complete
3
+ * Register skill completion + emit signals.
4
+ *
5
+ * Drop this into: app/api/orchestration/complete/route.ts
6
+ */
7
+ import type { SupabaseClient } from '../handlers';
8
+ export declare function createHandler(getSupabase: () => SupabaseClient): (request: Request) => Promise<Response>;
9
+ //# sourceMappingURL=complete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete.d.ts","sourceRoot":"","sources":["../../../src/api/routes/complete.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,cAAc,IAClC,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAoBhE"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * POST /api/orchestration/complete
4
+ * Register skill completion + emit signals.
5
+ *
6
+ * Drop this into: app/api/orchestration/complete/route.ts
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createHandler = createHandler;
10
+ const handlers_1 = require("../handlers");
11
+ const middleware_1 = require("./middleware");
12
+ function createHandler(getSupabase) {
13
+ return async function POST(request) {
14
+ const licenseKey = (0, middleware_1.extractLicenseKey)(request.headers);
15
+ if (!licenseKey)
16
+ return (0, middleware_1.jsonError)('Missing or invalid license key', 401);
17
+ const rl = (0, middleware_1.rateLimit)(licenseKey);
18
+ if (!rl.allowed)
19
+ return (0, middleware_1.jsonError)('Rate limit exceeded', 429);
20
+ let body;
21
+ try {
22
+ body = (await request.json());
23
+ }
24
+ catch {
25
+ return (0, middleware_1.jsonError)('Invalid JSON body', 400);
26
+ }
27
+ const supabase = getSupabase();
28
+ const result = await (0, handlers_1.handleComplete)(supabase, licenseKey, body);
29
+ if (!result.body.ok)
30
+ return (0, middleware_1.jsonError)(result.body.error ?? 'Unknown error', result.status);
31
+ return (0, middleware_1.jsonSuccess)(result.body.data, result.status);
32
+ };
33
+ }
34
+ //# sourceMappingURL=complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../src/api/routes/complete.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAOH,sCAqBC;AA1BD,0CAA6C;AAG7C,6CAAoF;AAEpF,SAAgB,aAAa,CAAC,WAAiC;IAC7D,OAAO,KAAK,UAAU,IAAI,CAAC,OAAgB;QACzC,MAAM,UAAU,GAAG,IAAA,8BAAiB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAA,sBAAS,EAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QAEzE,MAAM,EAAE,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,OAAO,IAAA,sBAAS,EAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAE9D,IAAI,IAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAoB,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAA,sBAAS,EAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAEhE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAA,sBAAS,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3F,OAAO,IAAA,wBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * GET /api/orchestration/dashboard
3
+ * Aggregated metrics and active workflows.
4
+ *
5
+ * Drop this into: app/api/orchestration/dashboard/route.ts
6
+ */
7
+ import type { SupabaseClient } from '../handlers';
8
+ export declare function createHandler(getSupabase: () => SupabaseClient): (request: Request) => Promise<Response>;
9
+ //# sourceMappingURL=dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/api/routes/dashboard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,cAAc,IACnC,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAgB/D"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * GET /api/orchestration/dashboard
4
+ * Aggregated metrics and active workflows.
5
+ *
6
+ * Drop this into: app/api/orchestration/dashboard/route.ts
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createHandler = createHandler;
10
+ const handlers_1 = require("../handlers");
11
+ const middleware_1 = require("./middleware");
12
+ function createHandler(getSupabase) {
13
+ return async function GET(request) {
14
+ const licenseKey = (0, middleware_1.extractLicenseKey)(request.headers);
15
+ if (!licenseKey)
16
+ return (0, middleware_1.jsonError)('Missing or invalid license key', 401);
17
+ const rl = (0, middleware_1.rateLimit)(licenseKey);
18
+ if (!rl.allowed)
19
+ return (0, middleware_1.jsonError)('Rate limit exceeded', 429);
20
+ const url = new URL(request.url);
21
+ const sessionId = url.searchParams.get('session_id') ?? undefined;
22
+ const supabase = getSupabase();
23
+ const result = await (0, handlers_1.handleDashboard)(supabase, licenseKey, sessionId);
24
+ if (!result.body.ok)
25
+ return (0, middleware_1.jsonError)(result.body.error ?? 'Unknown error', result.status);
26
+ return (0, middleware_1.jsonSuccess)(result.body.data, result.status);
27
+ };
28
+ }
29
+ //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/api/routes/dashboard.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,sCAiBC;AArBD,0CAA8C;AAE9C,6CAAoF;AAEpF,SAAgB,aAAa,CAAC,WAAiC;IAC7D,OAAO,KAAK,UAAU,GAAG,CAAC,OAAgB;QACxC,MAAM,UAAU,GAAG,IAAA,8BAAiB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAA,sBAAS,EAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QAEzE,MAAM,EAAE,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,OAAO,IAAA,sBAAS,EAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAE9D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;QAElE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAe,EAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAA,sBAAS,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3F,OAAO,IAAA,wBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * POST /api/orchestration/execute
3
+ * Register skill execution start.
4
+ *
5
+ * Drop this into: app/api/orchestration/execute/route.ts
6
+ * Import your Supabase service client and call createHandler(supabase).
7
+ */
8
+ import type { SupabaseClient } from '../handlers';
9
+ export declare function createHandler(getSupabase: () => SupabaseClient): (request: Request) => Promise<Response>;
10
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/api/routes/execute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,cAAc,IAClC,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAoBhE"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * POST /api/orchestration/execute
4
+ * Register skill execution start.
5
+ *
6
+ * Drop this into: app/api/orchestration/execute/route.ts
7
+ * Import your Supabase service client and call createHandler(supabase).
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.createHandler = createHandler;
11
+ const handlers_1 = require("../handlers");
12
+ const middleware_1 = require("./middleware");
13
+ function createHandler(getSupabase) {
14
+ return async function POST(request) {
15
+ const licenseKey = (0, middleware_1.extractLicenseKey)(request.headers);
16
+ if (!licenseKey)
17
+ return (0, middleware_1.jsonError)('Missing or invalid license key', 401);
18
+ const rl = (0, middleware_1.rateLimit)(licenseKey);
19
+ if (!rl.allowed)
20
+ return (0, middleware_1.jsonError)('Rate limit exceeded', 429);
21
+ let body;
22
+ try {
23
+ body = (await request.json());
24
+ }
25
+ catch {
26
+ return (0, middleware_1.jsonError)('Invalid JSON body', 400);
27
+ }
28
+ const supabase = getSupabase();
29
+ const result = await (0, handlers_1.handleExecute)(supabase, licenseKey, body);
30
+ if (!result.body.ok)
31
+ return (0, middleware_1.jsonError)(result.body.error ?? 'Unknown error', result.status);
32
+ return (0, middleware_1.jsonSuccess)(result.body.data, result.status);
33
+ };
34
+ }
35
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/api/routes/execute.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAOH,sCAqBC;AA1BD,0CAA4C;AAG5C,6CAAoF;AAEpF,SAAgB,aAAa,CAAC,WAAiC;IAC7D,OAAO,KAAK,UAAU,IAAI,CAAC,OAAgB;QACzC,MAAM,UAAU,GAAG,IAAA,8BAAiB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAA,sBAAS,EAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QAEzE,MAAM,EAAE,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,OAAO,IAAA,sBAAS,EAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAE9D,IAAI,IAAoB,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAmB,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAA,sBAAS,EAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAa,EAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAA,sBAAS,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3F,OAAO,IAAA,wBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * POST /api/orchestration/gate
3
+ * Evaluate policy gate (returns allow/deny).
4
+ *
5
+ * Drop this into: app/api/orchestration/gate/route.ts
6
+ */
7
+ import type { SupabaseClient } from '../handlers';
8
+ export declare function createHandler(getSupabase: () => SupabaseClient): (request: Request) => Promise<Response>;
9
+ //# sourceMappingURL=gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/api/routes/gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,cAAc,IAClC,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAoBhE"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * POST /api/orchestration/gate
4
+ * Evaluate policy gate (returns allow/deny).
5
+ *
6
+ * Drop this into: app/api/orchestration/gate/route.ts
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createHandler = createHandler;
10
+ const handlers_1 = require("../handlers");
11
+ const middleware_1 = require("./middleware");
12
+ function createHandler(getSupabase) {
13
+ return async function POST(request) {
14
+ const licenseKey = (0, middleware_1.extractLicenseKey)(request.headers);
15
+ if (!licenseKey)
16
+ return (0, middleware_1.jsonError)('Missing or invalid license key', 401);
17
+ const rl = (0, middleware_1.rateLimit)(licenseKey);
18
+ if (!rl.allowed)
19
+ return (0, middleware_1.jsonError)('Rate limit exceeded', 429);
20
+ let body;
21
+ try {
22
+ body = (await request.json());
23
+ }
24
+ catch {
25
+ return (0, middleware_1.jsonError)('Invalid JSON body', 400);
26
+ }
27
+ const supabase = getSupabase();
28
+ const result = await (0, handlers_1.handleGate)(supabase, licenseKey, body);
29
+ if (!result.body.ok)
30
+ return (0, middleware_1.jsonError)(result.body.error ?? 'Unknown error', result.status);
31
+ return (0, middleware_1.jsonSuccess)(result.body.data, result.status);
32
+ };
33
+ }
34
+ //# sourceMappingURL=gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/api/routes/gate.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAOH,sCAqBC;AA1BD,0CAAyC;AAGzC,6CAAoF;AAEpF,SAAgB,aAAa,CAAC,WAAiC;IAC7D,OAAO,KAAK,UAAU,IAAI,CAAC,OAAgB;QACzC,MAAM,UAAU,GAAG,IAAA,8BAAiB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAA,sBAAS,EAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QAEzE,MAAM,EAAE,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,OAAO,IAAA,sBAAS,EAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAE9D,IAAI,IAAiB,CAAC;QACtB,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAgB,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAA,sBAAS,EAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAU,EAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAA,sBAAS,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3F,OAAO,IAAA,wBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { createHandler as createExecuteHandler } from './execute';
2
+ export { createHandler as createCompleteHandler } from './complete';
3
+ export { createHandler as createGateHandler } from './gate';
4
+ export { createHandler as createSignalHandler } from './signal';
5
+ export { createHandler as createDashboardHandler } from './dashboard';
6
+ export { rateLimit, extractLicenseKey, jsonError, jsonSuccess } from './middleware';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jsonSuccess = exports.jsonError = exports.extractLicenseKey = exports.rateLimit = exports.createDashboardHandler = exports.createSignalHandler = exports.createGateHandler = exports.createCompleteHandler = exports.createExecuteHandler = void 0;
4
+ var execute_1 = require("./execute");
5
+ Object.defineProperty(exports, "createExecuteHandler", { enumerable: true, get: function () { return execute_1.createHandler; } });
6
+ var complete_1 = require("./complete");
7
+ Object.defineProperty(exports, "createCompleteHandler", { enumerable: true, get: function () { return complete_1.createHandler; } });
8
+ var gate_1 = require("./gate");
9
+ Object.defineProperty(exports, "createGateHandler", { enumerable: true, get: function () { return gate_1.createHandler; } });
10
+ var signal_1 = require("./signal");
11
+ Object.defineProperty(exports, "createSignalHandler", { enumerable: true, get: function () { return signal_1.createHandler; } });
12
+ var dashboard_1 = require("./dashboard");
13
+ Object.defineProperty(exports, "createDashboardHandler", { enumerable: true, get: function () { return dashboard_1.createHandler; } });
14
+ var middleware_1 = require("./middleware");
15
+ Object.defineProperty(exports, "rateLimit", { enumerable: true, get: function () { return middleware_1.rateLimit; } });
16
+ Object.defineProperty(exports, "extractLicenseKey", { enumerable: true, get: function () { return middleware_1.extractLicenseKey; } });
17
+ Object.defineProperty(exports, "jsonError", { enumerable: true, get: function () { return middleware_1.jsonError; } });
18
+ Object.defineProperty(exports, "jsonSuccess", { enumerable: true, get: function () { return middleware_1.jsonSuccess; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/routes/index.ts"],"names":[],"mappings":";;;AAAA,qCAAkE;AAAzD,+GAAA,aAAa,OAAwB;AAC9C,uCAAoE;AAA3D,iHAAA,aAAa,OAAyB;AAC/C,+BAA4D;AAAnD,yGAAA,aAAa,OAAqB;AAC3C,mCAAgE;AAAvD,6GAAA,aAAa,OAAuB;AAC7C,yCAAsE;AAA7D,mHAAA,aAAa,OAA0B;AAChD,2CAAoF;AAA3E,uGAAA,SAAS,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAAE,uGAAA,SAAS,OAAA;AAAE,yGAAA,WAAW,OAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Shared middleware for orchestration API routes.
3
+ * Designed for Next.js App Router — import into route.ts files.
4
+ * Requires the host project to provide a Supabase service client.
5
+ */
6
+ export declare function rateLimit(key: string): {
7
+ allowed: boolean;
8
+ remaining: number;
9
+ };
10
+ export declare function extractLicenseKey(headers: Headers): string | null;
11
+ export declare function jsonError(message: string, status: number): Response;
12
+ export declare function jsonSuccess(data: unknown, status?: number): Response;
13
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/api/routes/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAe9E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMjE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CASnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAE,MAAY,GAAG,QAAQ,CASzE"}