@agentuity/core 3.0.0-alpha.6 → 3.0.0-alpha.7
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.
- package/AGENTS.md +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/services/coder/api-reference.d.ts.map +1 -1
- package/dist/services/coder/api-reference.js +30 -1
- package/dist/services/coder/api-reference.js.map +1 -1
- package/dist/services/coder/client.d.ts +5 -1
- package/dist/services/coder/client.d.ts.map +1 -1
- package/dist/services/coder/client.js +8 -1
- package/dist/services/coder/client.js.map +1 -1
- package/dist/services/coder/index.d.ts +2 -2
- package/dist/services/coder/index.d.ts.map +1 -1
- package/dist/services/coder/index.js +1 -1
- package/dist/services/coder/index.js.map +1 -1
- package/dist/services/coder/protocol.d.ts +65 -0
- package/dist/services/coder/protocol.d.ts.map +1 -1
- package/dist/services/coder/protocol.js +8 -0
- package/dist/services/coder/protocol.js.map +1 -1
- package/dist/services/coder/sessions.d.ts +22 -0
- package/dist/services/coder/sessions.d.ts.map +1 -1
- package/dist/services/coder/sessions.js +10 -1
- package/dist/services/coder/sessions.js.map +1 -1
- package/dist/services/coder/sse.d.ts +2 -2
- package/dist/services/coder/sse.d.ts.map +1 -1
- package/dist/services/coder/sse.js +290 -178
- package/dist/services/coder/sse.js.map +1 -1
- package/dist/services/coder/types.d.ts +554 -0
- package/dist/services/coder/types.d.ts.map +1 -1
- package/dist/services/coder/types.js +138 -0
- package/dist/services/coder/types.js.map +1 -1
- package/dist/services/index.d.ts +0 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +0 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/sandbox/run.d.ts.map +1 -1
- package/dist/services/sandbox/run.js +15 -2
- package/dist/services/sandbox/run.js.map +1 -1
- package/package.json +2 -16
- package/src/index.ts +0 -15
- package/src/services/coder/api-reference.ts +31 -0
- package/src/services/coder/client.ts +12 -0
- package/src/services/coder/index.ts +3 -0
- package/src/services/coder/protocol.ts +12 -0
- package/src/services/coder/sessions.ts +26 -0
- package/src/services/coder/sse.ts +343 -184
- package/src/services/coder/types.ts +179 -0
- package/src/services/index.ts +0 -2
- package/src/services/sandbox/run.ts +13 -2
- package/dist/services/auth/index.d.ts +0 -7
- package/dist/services/auth/index.d.ts.map +0 -1
- package/dist/services/auth/index.js +0 -7
- package/dist/services/auth/index.js.map +0 -1
- package/dist/services/auth/types.d.ts +0 -192
- package/dist/services/auth/types.d.ts.map +0 -1
- package/dist/services/auth/types.js +0 -11
- package/dist/services/auth/types.js.map +0 -1
- package/dist/services/eval/api-reference.d.ts +0 -4
- package/dist/services/eval/api-reference.d.ts.map +0 -1
- package/dist/services/eval/api-reference.js +0 -121
- package/dist/services/eval/api-reference.js.map +0 -1
- package/dist/services/eval/events.d.ts +0 -93
- package/dist/services/eval/events.d.ts.map +0 -1
- package/dist/services/eval/events.js +0 -24
- package/dist/services/eval/events.js.map +0 -1
- package/dist/services/eval/get.d.ts +0 -36
- package/dist/services/eval/get.d.ts.map +0 -1
- package/dist/services/eval/get.js +0 -23
- package/dist/services/eval/get.js.map +0 -1
- package/dist/services/eval/index.d.ts +0 -6
- package/dist/services/eval/index.d.ts.map +0 -1
- package/dist/services/eval/index.js +0 -6
- package/dist/services/eval/index.js.map +0 -1
- package/dist/services/eval/list.d.ts +0 -50
- package/dist/services/eval/list.d.ts.map +0 -1
- package/dist/services/eval/list.js +0 -32
- package/dist/services/eval/list.js.map +0 -1
- package/dist/services/eval/run-get.d.ts +0 -48
- package/dist/services/eval/run-get.d.ts.map +0 -1
- package/dist/services/eval/run-get.js +0 -29
- package/dist/services/eval/run-get.js.map +0 -1
- package/dist/services/eval/run-list.d.ts +0 -70
- package/dist/services/eval/run-list.d.ts.map +0 -1
- package/dist/services/eval/run-list.js +0 -42
- package/dist/services/eval/run-list.js.map +0 -1
- package/dist/webrtc.d.ts +0 -243
- package/dist/webrtc.d.ts.map +0 -1
- package/dist/webrtc.js +0 -5
- package/dist/webrtc.js.map +0 -1
- package/dist/workbench-config.d.ts +0 -62
- package/dist/workbench-config.d.ts.map +0 -1
- package/dist/workbench-config.js +0 -58
- package/dist/workbench-config.js.map +0 -1
- package/dist/workbench.d.ts +0 -2
- package/dist/workbench.d.ts.map +0 -1
- package/dist/workbench.js +0 -2
- package/dist/workbench.js.map +0 -1
- package/src/services/auth/index.ts +0 -19
- package/src/services/auth/types.ts +0 -223
- package/src/services/eval/api-reference.ts +0 -124
- package/src/services/eval/events.ts +0 -92
- package/src/services/eval/get.ts +0 -33
- package/src/services/eval/index.ts +0 -29
- package/src/services/eval/list.ts +0 -49
- package/src/services/eval/run-get.ts +0 -39
- package/src/services/eval/run-list.ts +0 -59
- package/src/webrtc.ts +0 -259
- package/src/workbench-config.ts +0 -79
- package/src/workbench.ts +0 -1
|
@@ -520,6 +520,59 @@ export const CoderCreateSessionRequestSchema = z
|
|
|
520
520
|
.describe('Request body for creating a coder session');
|
|
521
521
|
export type CoderCreateSessionRequest = z.infer<typeof CoderCreateSessionRequestSchema>;
|
|
522
522
|
|
|
523
|
+
function inferCoderAgentBuilderSessionMode(input: {
|
|
524
|
+
mode?: 'new' | 'edit' | 'from_session';
|
|
525
|
+
sourceSessionId?: string;
|
|
526
|
+
targetAgentId?: string;
|
|
527
|
+
targetAgentSlug?: string;
|
|
528
|
+
}): 'new' | 'edit' | 'from_session' {
|
|
529
|
+
if (input.mode) return input.mode;
|
|
530
|
+
if (input.sourceSessionId) return 'from_session';
|
|
531
|
+
if (input.targetAgentId || input.targetAgentSlug) return 'edit';
|
|
532
|
+
return 'new';
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
export const CoderCreateAgentBuilderSessionRequestSchema = z
|
|
536
|
+
.object({
|
|
537
|
+
label: z.string().optional().describe('Builder session label override'),
|
|
538
|
+
prompt: z.string().optional().describe('Optional user focus for the builder session kickoff'),
|
|
539
|
+
mode: z
|
|
540
|
+
.enum(['new', 'edit', 'from_session'])
|
|
541
|
+
.optional()
|
|
542
|
+
.describe('Builder launch mode override'),
|
|
543
|
+
visibility: CoderSessionVisibilitySchema.optional().describe('Builder session visibility'),
|
|
544
|
+
sourceSessionId: z
|
|
545
|
+
.string()
|
|
546
|
+
.optional()
|
|
547
|
+
.describe('Source session identifier for build-from-session launches'),
|
|
548
|
+
targetAgentId: z
|
|
549
|
+
.string()
|
|
550
|
+
.optional()
|
|
551
|
+
.describe('Target custom-agent identifier for edit launches'),
|
|
552
|
+
targetAgentSlug: z.string().optional().describe('Target custom-agent slug for edit launches'),
|
|
553
|
+
})
|
|
554
|
+
.superRefine((value, ctx) => {
|
|
555
|
+
const mode = inferCoderAgentBuilderSessionMode(value);
|
|
556
|
+
if (mode === 'from_session' && !value.sourceSessionId?.trim()) {
|
|
557
|
+
ctx.addIssue({
|
|
558
|
+
code: z.ZodIssueCode.custom,
|
|
559
|
+
path: ['sourceSessionId'],
|
|
560
|
+
message: 'sourceSessionId is required for from-session builder launches.',
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
if (mode === 'edit' && !value.targetAgentId?.trim() && !value.targetAgentSlug?.trim()) {
|
|
564
|
+
ctx.addIssue({
|
|
565
|
+
code: z.ZodIssueCode.custom,
|
|
566
|
+
path: ['targetAgentId'],
|
|
567
|
+
message: 'targetAgentId or targetAgentSlug is required for edit launches.',
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
})
|
|
571
|
+
.describe('Request body for creating an agent-builder session');
|
|
572
|
+
export type CoderCreateAgentBuilderSessionRequest = z.infer<
|
|
573
|
+
typeof CoderCreateAgentBuilderSessionRequestSchema
|
|
574
|
+
>;
|
|
575
|
+
|
|
523
576
|
export const CoderUpdateSessionRequestSchema = z
|
|
524
577
|
.object({
|
|
525
578
|
label: z.string().optional().describe('Updated session label'),
|
|
@@ -574,6 +627,126 @@ export const CoderSessionWorkspaceSchema = z
|
|
|
574
627
|
.describe('Workspace associated with a coder session');
|
|
575
628
|
export type CoderSessionWorkspace = z.infer<typeof CoderSessionWorkspaceSchema>;
|
|
576
629
|
|
|
630
|
+
export const CoderAgentBuilderSessionModeSchema = z
|
|
631
|
+
.enum(['new', 'edit', 'from_session'])
|
|
632
|
+
.describe('Agent-builder launch mode for a builder session');
|
|
633
|
+
export type CoderAgentBuilderSessionMode = z.infer<typeof CoderAgentBuilderSessionModeSchema>;
|
|
634
|
+
|
|
635
|
+
export const CoderAgentBuilderActionKindSchema = z
|
|
636
|
+
.enum(['create_draft', 'update_draft', 'publish'])
|
|
637
|
+
.describe('Durable builder action emitted by an agent-builder session');
|
|
638
|
+
export type CoderAgentBuilderActionKind = z.infer<typeof CoderAgentBuilderActionKindSchema>;
|
|
639
|
+
|
|
640
|
+
export const CoderAgentBuilderSourceSessionSchema = z
|
|
641
|
+
.object({
|
|
642
|
+
sessionId: z.string().describe('Source session identifier linked to the builder session'),
|
|
643
|
+
label: z.string().optional().describe('Source session label when available'),
|
|
644
|
+
})
|
|
645
|
+
.describe('Source session reference used by agent-builder flows');
|
|
646
|
+
export type CoderAgentBuilderSourceSession = z.infer<typeof CoderAgentBuilderSourceSessionSchema>;
|
|
647
|
+
|
|
648
|
+
export const CoderAgentBuilderTargetAgentSchema = z
|
|
649
|
+
.object({
|
|
650
|
+
agentId: z.string().optional().describe('Target custom-agent identifier when editing'),
|
|
651
|
+
slug: z.string().describe('Target custom-agent slug'),
|
|
652
|
+
displayName: z.string().optional().describe('Target custom-agent display name'),
|
|
653
|
+
})
|
|
654
|
+
.describe('Target custom-agent reference for agent-builder edit flows');
|
|
655
|
+
export type CoderAgentBuilderTargetAgent = z.infer<typeof CoderAgentBuilderTargetAgentSchema>;
|
|
656
|
+
|
|
657
|
+
export const CoderAgentBuilderProposalSchema = z
|
|
658
|
+
.object({
|
|
659
|
+
slug: z.string().optional().describe('Proposed custom-agent slug'),
|
|
660
|
+
displayName: z.string().optional().describe('Proposed custom-agent name'),
|
|
661
|
+
description: z.string().optional().describe('Proposed custom-agent description'),
|
|
662
|
+
instructions: z.string().optional().describe('Proposed custom-agent system prompt'),
|
|
663
|
+
model: z.string().optional().describe('Proposed model override'),
|
|
664
|
+
thinkingLevel: CoderCustomAgentThinkingLevelSchema.optional().describe(
|
|
665
|
+
'Proposed thinking level override'
|
|
666
|
+
),
|
|
667
|
+
headlessCompatible: z
|
|
668
|
+
.boolean()
|
|
669
|
+
.optional()
|
|
670
|
+
.describe('Whether the proposed agent is safe for non-interactive callers'),
|
|
671
|
+
tools: z
|
|
672
|
+
.array(CoderCustomAgentToolResponseSchema)
|
|
673
|
+
.default([])
|
|
674
|
+
.describe('Proposed workspace tools for the agent'),
|
|
675
|
+
serviceTools: z
|
|
676
|
+
.array(CoderCustomAgentServiceToolResponseSchema)
|
|
677
|
+
.default([])
|
|
678
|
+
.describe('Proposed service tools for the agent'),
|
|
679
|
+
savedSkills: z
|
|
680
|
+
.array(CoderSkillRefSchema)
|
|
681
|
+
.default([])
|
|
682
|
+
.describe('Proposed frozen skill refs to attach'),
|
|
683
|
+
companionAgents: z
|
|
684
|
+
.array(z.string())
|
|
685
|
+
.default([])
|
|
686
|
+
.describe('Proposed companion agents to auto-include'),
|
|
687
|
+
})
|
|
688
|
+
.passthrough()
|
|
689
|
+
.describe('Session-scoped agent-builder proposal state');
|
|
690
|
+
export type CoderAgentBuilderProposal = z.infer<typeof CoderAgentBuilderProposalSchema>;
|
|
691
|
+
|
|
692
|
+
export const CoderAgentBuilderDurableStateSchema = z
|
|
693
|
+
.object({
|
|
694
|
+
draftAgentId: z.string().optional().describe('Linked draft custom-agent identifier'),
|
|
695
|
+
draftAgentSlug: z.string().optional().describe('Linked draft custom-agent slug'),
|
|
696
|
+
lastPublishedVersion: z
|
|
697
|
+
.number()
|
|
698
|
+
.int()
|
|
699
|
+
.optional()
|
|
700
|
+
.describe('Latest published version created through the builder flow'),
|
|
701
|
+
})
|
|
702
|
+
.describe('Durable agent-library state associated with a builder session');
|
|
703
|
+
export type CoderAgentBuilderDurableState = z.infer<typeof CoderAgentBuilderDurableStateSchema>;
|
|
704
|
+
|
|
705
|
+
export const CoderAgentBuilderActionStateSchema = z
|
|
706
|
+
.object({
|
|
707
|
+
kind: CoderAgentBuilderActionKindSchema.describe('Last durable builder action'),
|
|
708
|
+
status: z.enum(['completed', 'failed']).describe('Result of the last durable builder action'),
|
|
709
|
+
occurredAt: z.string().describe('Timestamp of the last durable builder action'),
|
|
710
|
+
message: z.string().optional().describe('Human-readable builder action result summary'),
|
|
711
|
+
agentId: z.string().optional().describe('Affected custom-agent identifier'),
|
|
712
|
+
agentSlug: z.string().optional().describe('Affected custom-agent slug'),
|
|
713
|
+
publishedVersion: z
|
|
714
|
+
.number()
|
|
715
|
+
.int()
|
|
716
|
+
.optional()
|
|
717
|
+
.describe('Published version number when publish succeeded'),
|
|
718
|
+
})
|
|
719
|
+
.describe('Latest durable action emitted by a builder session');
|
|
720
|
+
export type CoderAgentBuilderActionState = z.infer<typeof CoderAgentBuilderActionStateSchema>;
|
|
721
|
+
|
|
722
|
+
export const CoderAgentBuilderSessionSummarySchema = z
|
|
723
|
+
.object({
|
|
724
|
+
mode: CoderAgentBuilderSessionModeSchema.describe('Builder session mode'),
|
|
725
|
+
sourceSession: CoderAgentBuilderSourceSessionSchema.optional().describe(
|
|
726
|
+
'Linked source session when the builder was launched from an existing session'
|
|
727
|
+
),
|
|
728
|
+
targetAgent: CoderAgentBuilderTargetAgentSchema.optional().describe(
|
|
729
|
+
'Target agent baseline when the builder is editing an existing custom agent'
|
|
730
|
+
),
|
|
731
|
+
durable: CoderAgentBuilderDurableStateSchema.optional().describe(
|
|
732
|
+
'Linked durable draft/publish state'
|
|
733
|
+
),
|
|
734
|
+
lastAction: CoderAgentBuilderActionStateSchema.optional().describe(
|
|
735
|
+
'Most recent durable builder action'
|
|
736
|
+
),
|
|
737
|
+
})
|
|
738
|
+
.describe('Projected builder-session summary returned in session listings');
|
|
739
|
+
export type CoderAgentBuilderSessionSummary = z.infer<typeof CoderAgentBuilderSessionSummarySchema>;
|
|
740
|
+
|
|
741
|
+
export const CoderAgentBuilderSessionStateSchema = CoderAgentBuilderSessionSummarySchema.extend({
|
|
742
|
+
proposal: CoderAgentBuilderProposalSchema.optional().describe(
|
|
743
|
+
'Full builder proposal state projected in session detail responses'
|
|
744
|
+
),
|
|
745
|
+
})
|
|
746
|
+
.passthrough()
|
|
747
|
+
.describe('Full builder-session state returned in session details');
|
|
748
|
+
export type CoderAgentBuilderSessionState = z.infer<typeof CoderAgentBuilderSessionStateSchema>;
|
|
749
|
+
|
|
577
750
|
export const CoderSessionListItemSchema = z
|
|
578
751
|
.object({
|
|
579
752
|
sessionId: z.string().describe('Unique session identifier'),
|
|
@@ -619,6 +792,9 @@ export const CoderSessionListItemSchema = z
|
|
|
619
792
|
.optional()
|
|
620
793
|
.default([])
|
|
621
794
|
.describe('Enabled agent roster attached to the session'),
|
|
795
|
+
builder: CoderAgentBuilderSessionSummarySchema.optional().describe(
|
|
796
|
+
'Projected builder-session summary when this session is an agent-builder flow'
|
|
797
|
+
),
|
|
622
798
|
defaultAgent: z.string().optional().describe('Default agent assigned to session operations'),
|
|
623
799
|
bucket: CoderSessionBucketSchema.describe('Derived bucket for session listing'),
|
|
624
800
|
runtimeAvailable: z.boolean().describe('Whether runtime is currently reachable'),
|
|
@@ -650,6 +826,9 @@ export const CoderSessionSchema = CoderSessionListItemSchema.extend({
|
|
|
650
826
|
.string()
|
|
651
827
|
.optional()
|
|
652
828
|
.describe('Last update timestamp for session metadata (ISO-8601)'),
|
|
829
|
+
builder: CoderAgentBuilderSessionStateSchema.optional().describe(
|
|
830
|
+
'Full builder-session state when this session is an agent-builder flow'
|
|
831
|
+
),
|
|
653
832
|
// These fields are present in list items but may be absent in detail responses
|
|
654
833
|
lastActivityAt: z.string().optional().describe('Timestamp of most recent activity (ISO-8601)'),
|
|
655
834
|
taskCount: z.number().optional().describe('Number of tasks associated with the session'),
|
package/src/services/index.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './adapter.ts';
|
|
2
|
-
export * from './auth/index.ts';
|
|
3
2
|
export * from './email/index.ts';
|
|
4
3
|
export * from './exception.ts';
|
|
5
4
|
export * from './keyvalue/index.ts';
|
|
@@ -16,7 +15,6 @@ export * from './api.ts';
|
|
|
16
15
|
|
|
17
16
|
export * from './apikey/index.ts';
|
|
18
17
|
export * from './db/index.ts';
|
|
19
|
-
export * from './eval/index.ts';
|
|
20
18
|
export * from './machine/index.ts';
|
|
21
19
|
export * from './monitoring/index.ts';
|
|
22
20
|
export * from './oauth/index.ts';
|
|
@@ -73,8 +73,19 @@ export async function sandboxRun(
|
|
|
73
73
|
let stdinStreamId: string | undefined;
|
|
74
74
|
let stdinStreamUrl: string | undefined;
|
|
75
75
|
|
|
76
|
-
//
|
|
77
|
-
|
|
76
|
+
// Handle stdin stream configuration:
|
|
77
|
+
// - If stdin is "ignore", pass it through to skip stdin handling on server
|
|
78
|
+
// - If stdin is an explicit stream ID, use it directly
|
|
79
|
+
// - If stdin readable is provided, create a stream for it
|
|
80
|
+
const stdinConfig = options.stream?.stdin;
|
|
81
|
+
if (stdinConfig === 'ignore') {
|
|
82
|
+
stdinStreamId = 'ignore';
|
|
83
|
+
logger?.debug('stdin explicitly ignored');
|
|
84
|
+
} else if (stdinConfig && stdinConfig !== 'ignore') {
|
|
85
|
+
// User provided an explicit stream ID
|
|
86
|
+
stdinStreamId = stdinConfig;
|
|
87
|
+
logger?.debug('using provided stdin stream ID: %s', stdinStreamId);
|
|
88
|
+
} else if (stdin && region && apiKey) {
|
|
78
89
|
const streamResult = await createStdinStream(region, apiKey, orgId, logger);
|
|
79
90
|
stdinStreamId = streamResult.id;
|
|
80
91
|
stdinStreamUrl = streamResult.url;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Authentication service types.
|
|
3
|
-
*
|
|
4
|
-
* @module services/auth
|
|
5
|
-
*/
|
|
6
|
-
export type { AuthUser, AuthSession, AuthContext, AuthOrgContext, AuthApiKeyPermissions, AuthApiKeyContext, AuthMethod, AgentuityAuth, AuthOrgHelpers, AuthApiKeyHelpers, AuthInterface, } from './types.ts';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/auth/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACX,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,aAAa,GACb,MAAM,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/auth/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core authentication types for Agentuity.
|
|
3
|
-
*
|
|
4
|
-
* These types are defined in @agentuity/core to avoid circular dependencies
|
|
5
|
-
* and allow packages like @agentuity/runtime to use auth types without
|
|
6
|
-
* pulling in heavy dependencies like drizzle-orm.
|
|
7
|
-
*
|
|
8
|
-
* @module services/auth/types
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Canonical authenticated user type for Agentuity Auth.
|
|
12
|
-
*
|
|
13
|
-
* Common fields include:
|
|
14
|
-
* - `id` – Stable user identifier
|
|
15
|
-
* - `email` – Primary email address
|
|
16
|
-
* - `name` – Display name
|
|
17
|
-
* - `image` – Avatar URL (if configured)
|
|
18
|
-
* - `createdAt` / `updatedAt` – Timestamps
|
|
19
|
-
*/
|
|
20
|
-
export interface AuthUser {
|
|
21
|
-
id: string;
|
|
22
|
-
email: string;
|
|
23
|
-
name?: string | null;
|
|
24
|
-
image?: string | null;
|
|
25
|
-
createdAt?: Date | string;
|
|
26
|
-
updatedAt?: Date | string;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Auth session type with organization plugin fields.
|
|
30
|
-
*/
|
|
31
|
-
export interface AuthSession {
|
|
32
|
-
id: string;
|
|
33
|
-
userId: string;
|
|
34
|
-
expiresAt: Date | string;
|
|
35
|
-
/** Active organization ID from the organization plugin */
|
|
36
|
-
activeOrganizationId?: string;
|
|
37
|
-
ipAddress?: string | null;
|
|
38
|
-
userAgent?: string | null;
|
|
39
|
-
createdAt?: Date | string;
|
|
40
|
-
updatedAt?: Date | string;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Auth context containing user, session, and org data.
|
|
44
|
-
* This is the full auth context available on AgentContext.auth and c.var.auth.
|
|
45
|
-
* Session may be null for API key authentication.
|
|
46
|
-
*/
|
|
47
|
-
export interface AuthContext<TUser = AuthUser, TSession = AuthSession | null> {
|
|
48
|
-
user: TUser;
|
|
49
|
-
session: TSession;
|
|
50
|
-
org: AuthOrgContext | null;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Organization context from the organization plugin.
|
|
54
|
-
*/
|
|
55
|
-
export interface AuthOrgContext {
|
|
56
|
-
/** Organization ID */
|
|
57
|
-
id: string;
|
|
58
|
-
/** Organization slug (URL-friendly identifier) */
|
|
59
|
-
slug?: string | null;
|
|
60
|
-
/** Organization display name */
|
|
61
|
-
name?: string | null;
|
|
62
|
-
/** Member's role in this organization (e.g., 'owner', 'admin', 'member') */
|
|
63
|
-
role?: string | null;
|
|
64
|
-
/** Member ID for this user in this organization */
|
|
65
|
-
memberId?: string | null;
|
|
66
|
-
/** Organization metadata (if enabled) */
|
|
67
|
-
metadata?: unknown;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* API key permissions format.
|
|
71
|
-
* Maps resource names to arrays of allowed actions.
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* const permissions: AuthApiKeyPermissions = {
|
|
76
|
-
* project: ['read', 'write'],
|
|
77
|
-
* user: ['read'],
|
|
78
|
-
* admin: ['*'], // wildcard - all actions
|
|
79
|
-
* };
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
export interface AuthApiKeyPermissions {
|
|
83
|
-
[key: string]: string[];
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* API key context when request is authenticated via API key.
|
|
87
|
-
*/
|
|
88
|
-
export interface AuthApiKeyContext {
|
|
89
|
-
/** API key ID */
|
|
90
|
-
id: string;
|
|
91
|
-
/** Display name of the API key */
|
|
92
|
-
name?: string | null;
|
|
93
|
-
/** Permissions associated with this API key */
|
|
94
|
-
permissions: AuthApiKeyPermissions;
|
|
95
|
-
/** User ID the API key belongs to */
|
|
96
|
-
userId?: string | null;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Authentication method used for the current request.
|
|
100
|
-
*/
|
|
101
|
-
export type AuthMethod = 'session' | 'api-key' | 'bearer';
|
|
102
|
-
/**
|
|
103
|
-
* Generic authentication interface exposed on Hono context.
|
|
104
|
-
*
|
|
105
|
-
* This type is intentionally provider-agnostic.
|
|
106
|
-
*
|
|
107
|
-
* @typeParam TUser - Domain user type (defaults to unknown for flexibility).
|
|
108
|
-
* @typeParam TRaw - Underlying auth context (defaults to unknown for flexibility).
|
|
109
|
-
*/
|
|
110
|
-
export interface AgentuityAuth<TUser = unknown, TRaw = unknown> {
|
|
111
|
-
/** Get the authenticated user, throws if not authenticated */
|
|
112
|
-
getUser(): Promise<TUser>;
|
|
113
|
-
/** Get the raw JWT token */
|
|
114
|
-
getToken(): Promise<string | null>;
|
|
115
|
-
/** Raw provider-specific auth object or auth context */
|
|
116
|
-
raw: TRaw;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Organization helpers available on the auth context.
|
|
120
|
-
*/
|
|
121
|
-
export interface AuthOrgHelpers {
|
|
122
|
-
/** Active organization context if available, null otherwise */
|
|
123
|
-
org: AuthOrgContext | null;
|
|
124
|
-
/** Returns active org or null (never throws) */
|
|
125
|
-
getOrg(): Promise<AuthOrgContext | null>;
|
|
126
|
-
/** Convenience accessor for the member's role on the active org */
|
|
127
|
-
getOrgRole(): Promise<string | null>;
|
|
128
|
-
/** True if the current member's role is one of the provided roles */
|
|
129
|
-
hasOrgRole(...roles: string[]): Promise<boolean>;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* API key helpers available on the auth context.
|
|
133
|
-
*/
|
|
134
|
-
export interface AuthApiKeyHelpers {
|
|
135
|
-
/** How this request was authenticated */
|
|
136
|
-
authMethod: AuthMethod;
|
|
137
|
-
/** API key context when request is authenticated via API key, null otherwise */
|
|
138
|
-
apiKey: AuthApiKeyContext | null;
|
|
139
|
-
/**
|
|
140
|
-
* Check if the API key has the required permissions.
|
|
141
|
-
* All specified actions must be present for the resource.
|
|
142
|
-
* Supports '*' wildcard which matches any action.
|
|
143
|
-
*
|
|
144
|
-
* @param resource - The resource to check (e.g., 'project', 'user')
|
|
145
|
-
* @param actions - Actions required (e.g., 'read', 'write')
|
|
146
|
-
* @returns true if all actions are permitted, false otherwise
|
|
147
|
-
*
|
|
148
|
-
* @example
|
|
149
|
-
* ```typescript
|
|
150
|
-
* // Check for specific permission
|
|
151
|
-
* if (c.var.auth.hasPermission('project', 'write')) { ... }
|
|
152
|
-
*
|
|
153
|
-
* // Check for multiple permissions (all required)
|
|
154
|
-
* if (c.var.auth.hasPermission('project', 'read', 'write')) { ... }
|
|
155
|
-
* ```
|
|
156
|
-
*/
|
|
157
|
-
hasPermission(resource: string, ...actions: string[]): boolean;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Full authentication interface available on `c.var.auth` and `ctx.auth`.
|
|
161
|
-
*
|
|
162
|
-
* This is the primary interface you'll use to access authentication data
|
|
163
|
-
* in your route handlers and agents. It provides:
|
|
164
|
-
*
|
|
165
|
-
* - User data via `getUser()`
|
|
166
|
-
* - Organization helpers via `getOrg()`, `getOrgRole()`, `hasOrgRole()`
|
|
167
|
-
* - API key helpers via `apiKey`, `hasPermission()`
|
|
168
|
-
* - Token access via `getToken()`
|
|
169
|
-
*
|
|
170
|
-
* @example Route handler
|
|
171
|
-
* ```typescript
|
|
172
|
-
* app.get('/api/profile', async (c) => {
|
|
173
|
-
* const user = await c.var.auth.getUser();
|
|
174
|
-
* const org = await c.var.auth.getOrg();
|
|
175
|
-
* return c.json({ user, org });
|
|
176
|
-
* });
|
|
177
|
-
* ```
|
|
178
|
-
*
|
|
179
|
-
* @example Agent handler
|
|
180
|
-
* ```typescript
|
|
181
|
-
* handler: async (ctx, input) => {
|
|
182
|
-
* if (!ctx.auth) return { error: 'Unauthorized' };
|
|
183
|
-
* const user = await ctx.auth.getUser();
|
|
184
|
-
* return { message: `Hello, ${user.email}!` };
|
|
185
|
-
* }
|
|
186
|
-
* ```
|
|
187
|
-
*
|
|
188
|
-
* @typeParam TUser - User type (extends AuthUser, defaults to AuthUser)
|
|
189
|
-
*/
|
|
190
|
-
export interface AuthInterface<TUser extends AuthUser = AuthUser> extends AgentuityAuth<TUser, AuthContext<TUser>>, AuthOrgHelpers, AuthApiKeyHelpers {
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/auth/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core authentication types for Agentuity.
|
|
3
|
-
*
|
|
4
|
-
* These types are defined in @agentuity/core to avoid circular dependencies
|
|
5
|
-
* and allow packages like @agentuity/runtime to use auth types without
|
|
6
|
-
* pulling in heavy dependencies like drizzle-orm.
|
|
7
|
-
*
|
|
8
|
-
* @module services/auth/types
|
|
9
|
-
*/
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-reference.d.ts","sourceRoot":"","sources":["../../../src/services/eval/api-reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD,QAAA,MAAM,OAAO,EAAE,OAqHd,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { EvaluationSchema } from "./list.js";
|
|
2
|
-
import { EvalRunSchema } from "./run-list.js";
|
|
3
|
-
const service = {
|
|
4
|
-
name: 'Evaluations',
|
|
5
|
-
slug: 'evaluations',
|
|
6
|
-
description: 'List and retrieve evaluations and their run history',
|
|
7
|
-
endpoints: [
|
|
8
|
-
{
|
|
9
|
-
id: 'list-evaluations',
|
|
10
|
-
title: 'List Evaluations',
|
|
11
|
-
method: 'GET',
|
|
12
|
-
path: '/cli/eval',
|
|
13
|
-
description: 'List evaluations with optional filtering by organization, project, or agent.',
|
|
14
|
-
pathParams: [],
|
|
15
|
-
queryParams: [
|
|
16
|
-
{
|
|
17
|
-
name: 'orgId',
|
|
18
|
-
type: 'string',
|
|
19
|
-
description: 'Filter by organization ID',
|
|
20
|
-
required: false,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'projectId',
|
|
24
|
-
type: 'string',
|
|
25
|
-
description: 'Filter by project ID',
|
|
26
|
-
required: false,
|
|
27
|
-
},
|
|
28
|
-
{ name: 'agentId', type: 'string', description: 'Filter by agent ID', required: false },
|
|
29
|
-
],
|
|
30
|
-
requestBody: null,
|
|
31
|
-
responseDescription: 'Array of evaluation objects.',
|
|
32
|
-
responseFields: { schema: EvaluationSchema },
|
|
33
|
-
statuses: [
|
|
34
|
-
{ code: 200, description: 'Evaluations returned' },
|
|
35
|
-
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
36
|
-
],
|
|
37
|
-
examplePath: '/cli/eval',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
id: 'get-evaluation',
|
|
41
|
-
title: 'Get Evaluation',
|
|
42
|
-
method: 'GET',
|
|
43
|
-
path: '/cli/eval/{id}',
|
|
44
|
-
description: 'Get a specific evaluation by ID.',
|
|
45
|
-
pathParams: [{ name: 'id', type: 'string', description: 'Evaluation ID', required: true }],
|
|
46
|
-
queryParams: [],
|
|
47
|
-
requestBody: null,
|
|
48
|
-
responseDescription: 'Evaluation object.',
|
|
49
|
-
statuses: [
|
|
50
|
-
{ code: 200, description: 'Evaluation returned' },
|
|
51
|
-
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
52
|
-
{ code: 404, description: 'Evaluation not found' },
|
|
53
|
-
],
|
|
54
|
-
examplePath: '/cli/eval/eval_abc123',
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
id: 'list-eval-runs',
|
|
58
|
-
title: 'List Eval Runs',
|
|
59
|
-
sectionTitle: 'Eval Runs',
|
|
60
|
-
method: 'GET',
|
|
61
|
-
path: '/cli/eval-run',
|
|
62
|
-
description: 'List evaluation runs with optional filtering.',
|
|
63
|
-
pathParams: [],
|
|
64
|
-
queryParams: [
|
|
65
|
-
{
|
|
66
|
-
name: 'orgId',
|
|
67
|
-
type: 'string',
|
|
68
|
-
description: 'Filter by organization ID',
|
|
69
|
-
required: false,
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
name: 'projectId',
|
|
73
|
-
type: 'string',
|
|
74
|
-
description: 'Filter by project ID',
|
|
75
|
-
required: false,
|
|
76
|
-
},
|
|
77
|
-
{ name: 'agentId', type: 'string', description: 'Filter by agent ID', required: false },
|
|
78
|
-
{
|
|
79
|
-
name: 'evalId',
|
|
80
|
-
type: 'string',
|
|
81
|
-
description: 'Filter by evaluation ID',
|
|
82
|
-
required: false,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'sessionId',
|
|
86
|
-
type: 'string',
|
|
87
|
-
description: 'Filter by session ID',
|
|
88
|
-
required: false,
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
requestBody: null,
|
|
92
|
-
responseDescription: 'Array of evaluation run objects.',
|
|
93
|
-
responseFields: { schema: EvalRunSchema },
|
|
94
|
-
statuses: [
|
|
95
|
-
{ code: 200, description: 'Eval runs returned' },
|
|
96
|
-
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
97
|
-
],
|
|
98
|
-
examplePath: '/cli/eval-run',
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
id: 'get-eval-run',
|
|
102
|
-
title: 'Get Eval Run',
|
|
103
|
-
sectionTitle: 'Eval Runs',
|
|
104
|
-
method: 'GET',
|
|
105
|
-
path: '/cli/eval-run/{id}',
|
|
106
|
-
description: 'Get a specific evaluation run by ID.',
|
|
107
|
-
pathParams: [{ name: 'id', type: 'string', description: 'Eval run ID', required: true }],
|
|
108
|
-
queryParams: [],
|
|
109
|
-
requestBody: null,
|
|
110
|
-
responseDescription: 'Evaluation run object.',
|
|
111
|
-
statuses: [
|
|
112
|
-
{ code: 200, description: 'Eval run returned' },
|
|
113
|
-
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
114
|
-
{ code: 404, description: 'Eval run not found' },
|
|
115
|
-
],
|
|
116
|
-
examplePath: '/cli/eval-run/er_abc123',
|
|
117
|
-
},
|
|
118
|
-
],
|
|
119
|
-
};
|
|
120
|
-
export default service;
|
|
121
|
-
//# sourceMappingURL=api-reference.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-reference.js","sourceRoot":"","sources":["../../../src/services/eval/api-reference.ts"],"names":[],"mappings":"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"}
|