@axtary/adapters 0.0.1

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/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # @axtary/adapters
2
+
3
+ Tool adapters for Axtary proxy demos, tests, and early real-provider wiring.
4
+
5
+ This package is private workspace code. Fake adapters remain the safe default, and real GitHub, Slack, Linear, AWS, GCP, and local docs handlers are available behind explicit config.
6
+
7
+ ## What It Does
8
+
9
+ - Provides fake GitHub PR and content-read handlers.
10
+ - Provides a fake Slack message handler.
11
+ - Provides fake Linear and Jira issue/comment/update handlers.
12
+ - Wraps handlers with ActionPass verification so adapter-side effects require a valid payload-bound pass.
13
+ - Provides real GitHub REST handlers for content reads, branch creation, content writes, and PR creation.
14
+ - Provides a real Slack Web API handler for `chat.postMessage`.
15
+ - Provides real Linear GraphQL handlers for issue reads, comments, and updates.
16
+ - Provides read-only AWS REST handlers for STS identity and S3 object listing.
17
+ - Provides read-only GCP REST handlers for project reads and Cloud Storage object listing.
18
+ - Provides local docs search/read handlers with configured roots, result/byte caps, path traversal protection, and redaction.
19
+ - Provides non-destructive smoke helpers for GitHub `/user`, Slack `auth.test`, Linear `viewer`, AWS STS `GetCallerIdentity`, GCP project access, and local docs roots.
20
+ - Classifies provider rate limits, server errors, auth errors, and provider errors for retries and diagnostics.
21
+ - Captures adapter state in memory for tests and local demos.
22
+ - Returns predictable JSON payloads from proxy handlers.
23
+
24
+ ## Smoke Helpers
25
+
26
+ The smoke helpers exercise the same provider clients as the real handlers, but only call read/auth endpoints:
27
+
28
+ - `smokeGitHubRestCredentials`
29
+ - `smokeSlackWebCredentials`
30
+ - `smokeLinearGraphqlCredentials`
31
+ - `smokeAwsRestCredentials`
32
+ - `smokeGcpRestCredentials`
33
+ - `smokeLocalDocsRoots`
34
+
35
+ They are used by `axtary smoke` to validate credentials before running a real integration.
36
+
37
+ ## Design Notes
38
+
39
+ The fake adapters let us prove the authorization flow without credentials. Real adapters should still be wrapped with ActionPass verification so the proxy and adapter boundary both enforce the same action hash, audience, issuer, and expiration.
@@ -0,0 +1,223 @@
1
+ import { type JsonValue, type SigningAlgorithm, type VerificationKey } from "@axtary/actionpass";
2
+ import type { ToolHandler } from "@axtary/proxy";
3
+ export declare const GITHUB_REST_API_BASE_URL = "https://api.github.com";
4
+ export declare const GITHUB_REST_USER_AGENT = "axtary-local-proxy";
5
+ export declare const SLACK_WEB_API_BASE_URL = "https://slack.com/api";
6
+ export declare const LINEAR_GRAPHQL_API_URL = "https://api.linear.app/graphql";
7
+ export declare const AWS_STS_API_URL = "https://sts.amazonaws.com/";
8
+ export declare const GCP_CLOUD_RESOURCE_MANAGER_API_BASE_URL = "https://cloudresourcemanager.googleapis.com";
9
+ export declare const GCP_STORAGE_API_BASE_URL = "https://storage.googleapis.com/storage/v1";
10
+ export declare const DEFAULT_PROVIDER_RETRIES = 2;
11
+ export type FakeGitHubPullRequest = {
12
+ id: string;
13
+ number: number;
14
+ resource: string;
15
+ title: string;
16
+ baseBranch: string | null;
17
+ filesChanged: string[];
18
+ actionPassId: string | null;
19
+ };
20
+ export type FakeGitHubContentRead = {
21
+ resource: string;
22
+ path: string;
23
+ actionPassId: string | null;
24
+ };
25
+ export type FakeGitHubContentWrite = {
26
+ resource: string;
27
+ path: string;
28
+ branch: string;
29
+ message: string;
30
+ contentLength: number;
31
+ actionPassId: string | null;
32
+ };
33
+ export type FakeGitHubBranch = {
34
+ resource: string;
35
+ branch: string;
36
+ baseBranch: string | null;
37
+ sha: string | null;
38
+ actionPassId: string | null;
39
+ };
40
+ export type FakeSlackMessage = {
41
+ id: string;
42
+ workspace: string;
43
+ channel: string;
44
+ message: string;
45
+ actionPassId: string | null;
46
+ };
47
+ export type FakeIssue = {
48
+ provider: "linear" | "jira";
49
+ issueKey: string;
50
+ projectKey: string;
51
+ title: string;
52
+ status: string;
53
+ };
54
+ export type FakeIssueComment = {
55
+ id: string;
56
+ provider: "linear" | "jira";
57
+ issueKey: string;
58
+ body: string;
59
+ actionPassId: string | null;
60
+ };
61
+ export type FakeAdapterState = {
62
+ github: {
63
+ pullRequests: FakeGitHubPullRequest[];
64
+ contentReads: FakeGitHubContentRead[];
65
+ contentWrites: FakeGitHubContentWrite[];
66
+ branches: FakeGitHubBranch[];
67
+ };
68
+ slack: {
69
+ messages: FakeSlackMessage[];
70
+ };
71
+ issueTrackers: {
72
+ linear: {
73
+ issues: FakeIssue[];
74
+ comments: FakeIssueComment[];
75
+ };
76
+ jira: {
77
+ issues: FakeIssue[];
78
+ comments: FakeIssueComment[];
79
+ };
80
+ };
81
+ };
82
+ export type AdapterVerificationConfig = {
83
+ issuer: string;
84
+ verificationKey: VerificationKey;
85
+ algorithms?: SigningAlgorithm[];
86
+ clockTolerance?: string | number;
87
+ currentDate?: () => Date;
88
+ };
89
+ export type AdapterHandlerOptions = {
90
+ verification?: AdapterVerificationConfig;
91
+ };
92
+ export type FakeHandlers = Record<"github.pull_requests.create" | "github.contents.read" | "github.contents.write" | "github.branches.create" | "slack.chat.postMessage" | "linear.issues.read" | "linear.comments.create" | "linear.issues.update" | "jira.issues.read" | "jira.comments.create" | "jira.issues.update", ToolHandler>;
93
+ export type AwsCredentials = {
94
+ accessKeyId: string;
95
+ secretAccessKey: string;
96
+ sessionToken?: string;
97
+ };
98
+ export type GitHubRestConfig = {
99
+ token: string;
100
+ apiBaseUrl?: string;
101
+ userAgent?: string;
102
+ maxRetries?: number;
103
+ fetch?: typeof fetch;
104
+ };
105
+ export type GitHubRestHandlers = Pick<FakeHandlers, "github.pull_requests.create" | "github.contents.read">;
106
+ export type SlackWebConfig = {
107
+ token: string;
108
+ apiBaseUrl?: string;
109
+ maxRetries?: number;
110
+ fetch?: typeof fetch;
111
+ };
112
+ export type SlackWebHandlers = Pick<FakeHandlers, "slack.chat.postMessage">;
113
+ export type LinearGraphqlConfig = {
114
+ token: string;
115
+ apiUrl?: string;
116
+ maxRetries?: number;
117
+ fetch?: typeof fetch;
118
+ };
119
+ export type LinearGraphqlHandlers = Pick<FakeHandlers, "linear.issues.read" | "linear.comments.create" | "linear.issues.update">;
120
+ export type AwsRestConfig = {
121
+ credentials: AwsCredentials;
122
+ region?: string;
123
+ stsUrl?: string;
124
+ maxRetries?: number;
125
+ fetch?: typeof fetch;
126
+ };
127
+ export type AwsRestHandlers = {
128
+ "aws.identity.get": ToolHandler;
129
+ "aws.s3.objects.list": ToolHandler;
130
+ };
131
+ export type GcpRestConfig = {
132
+ accessToken: string;
133
+ projectId?: string;
134
+ cloudResourceManagerApiBaseUrl?: string;
135
+ storageApiBaseUrl?: string;
136
+ maxRetries?: number;
137
+ fetch?: typeof fetch;
138
+ };
139
+ export type GcpRestHandlers = {
140
+ "gcp.projects.get": ToolHandler;
141
+ "gcp.storage.objects.list": ToolHandler;
142
+ };
143
+ export type LocalDocsConfig = {
144
+ workspace?: string;
145
+ roots: string[];
146
+ maxSearchResults?: number;
147
+ maxReadBytes?: number;
148
+ allowedExtensions?: string[];
149
+ };
150
+ export type LocalDocsHandlers = {
151
+ "docs.documents.search": ToolHandler;
152
+ "docs.documents.read": ToolHandler;
153
+ };
154
+ export type AdapterSmokeResult = {
155
+ provider: "github" | "slack" | "linear" | "aws" | "gcp" | "docs";
156
+ ok: true;
157
+ summary: string;
158
+ details: {
159
+ [key: string]: JsonValue;
160
+ };
161
+ };
162
+ export type ConnectorProvider = "github" | "slack" | "linear" | "jira" | "aws" | "gcp" | "mcp" | "docs";
163
+ export type ConnectorCapabilityOperation = "read" | "write" | "external_message" | "identity_read" | "identity_mutation";
164
+ export type ConnectorCapabilityStatus = "supported" | "planned";
165
+ export type ConnectorCapability = {
166
+ id: string;
167
+ provider: ConnectorProvider;
168
+ connector: string;
169
+ label: string;
170
+ tool: string;
171
+ operation: ConnectorCapabilityOperation;
172
+ status: ConnectorCapabilityStatus;
173
+ supportedModes: string[];
174
+ requiresActionPass: boolean;
175
+ defaultPolicy: "allow" | "deny" | "step_up" | "deny_until_scoped";
176
+ payloadFields: string[];
177
+ approvalTriggers: string[];
178
+ credentialBoundary: string;
179
+ smokeCheck: string | null;
180
+ };
181
+ export declare const CONNECTOR_CAPABILITY_REGISTRY: ConnectorCapability[];
182
+ export declare function getConnectorCapabilities(): ConnectorCapability[];
183
+ export declare function getConnectorCapability(tool: string): ConnectorCapability | null;
184
+ export declare function getConnectorCapabilitiesByProvider(provider: ConnectorProvider): ConnectorCapability[];
185
+ export declare function createFakeAdapterState(): FakeAdapterState;
186
+ export declare function createFakeHandlers(state?: FakeAdapterState, options?: AdapterHandlerOptions): FakeHandlers;
187
+ export declare function createGitHubRestHandlers(config: GitHubRestConfig, options?: AdapterHandlerOptions): GitHubRestHandlers & Partial<FakeHandlers>;
188
+ export declare function createSlackWebHandlers(config: SlackWebConfig, options?: AdapterHandlerOptions): SlackWebHandlers;
189
+ export declare function createLinearGraphqlHandlers(config: LinearGraphqlConfig, options?: AdapterHandlerOptions): LinearGraphqlHandlers;
190
+ export declare function createAwsRestHandlers(config: AwsRestConfig, options?: AdapterHandlerOptions): AwsRestHandlers;
191
+ export declare function createGcpRestHandlers(config: GcpRestConfig, options?: AdapterHandlerOptions): GcpRestHandlers;
192
+ export declare function createLocalDocsHandlers(config: LocalDocsConfig, options?: AdapterHandlerOptions): LocalDocsHandlers;
193
+ export declare function smokeLocalDocsRoots(config: LocalDocsConfig): Promise<AdapterSmokeResult>;
194
+ export declare function smokeGitHubRestCredentials(config: GitHubRestConfig): Promise<AdapterSmokeResult>;
195
+ export declare function smokeSlackWebCredentials(config: SlackWebConfig): Promise<AdapterSmokeResult>;
196
+ export declare function smokeLinearGraphqlCredentials(config: LinearGraphqlConfig): Promise<AdapterSmokeResult>;
197
+ export declare function smokeAwsRestCredentials(config: AwsRestConfig): Promise<AdapterSmokeResult>;
198
+ export declare function smokeGcpRestCredentials(config: GcpRestConfig): Promise<AdapterSmokeResult>;
199
+ export declare function wrapHandlersWithActionPassVerification<THandlers extends Record<string, ToolHandler>>(handlers: THandlers, config: AdapterVerificationConfig): THandlers;
200
+ export declare function createActionPassVerifiedHandler(handler: ToolHandler, config: AdapterVerificationConfig): ToolHandler;
201
+ export declare function createFakeGitHubPullRequestHandler(state: FakeAdapterState): ToolHandler;
202
+ export declare function createFakeGitHubContentReadHandler(state: FakeAdapterState): ToolHandler;
203
+ export declare function createFakeGitHubContentWriteHandler(state: FakeAdapterState): ToolHandler;
204
+ export declare function createFakeGitHubBranchCreateHandler(state: FakeAdapterState): ToolHandler;
205
+ export declare function createFakeSlackMessageHandler(state: FakeAdapterState): ToolHandler;
206
+ export declare function createFakeIssueReadHandler(state: FakeAdapterState, provider: "linear" | "jira"): ToolHandler;
207
+ export declare function createFakeIssueCommentHandler(state: FakeAdapterState, provider: "linear" | "jira"): ToolHandler;
208
+ export declare function createFakeIssueUpdateHandler(state: FakeAdapterState, provider: "linear" | "jira"): ToolHandler;
209
+ export declare function createGitHubRestContentReadHandler(config: GitHubRestConfig): ToolHandler;
210
+ export declare function createGitHubRestPullRequestHandler(config: GitHubRestConfig): ToolHandler;
211
+ export declare function createGitHubRestBranchCreateHandler(config: GitHubRestConfig): ToolHandler;
212
+ export declare function createGitHubRestContentWriteHandler(config: GitHubRestConfig): ToolHandler;
213
+ export declare function createSlackWebPostMessageHandler(config: SlackWebConfig): ToolHandler;
214
+ export declare function createLinearIssueReadHandler(config: LinearGraphqlConfig): ToolHandler;
215
+ export declare function createLinearCommentCreateHandler(config: LinearGraphqlConfig): ToolHandler;
216
+ export declare function createLinearIssueUpdateHandler(config: LinearGraphqlConfig): ToolHandler;
217
+ export declare function createAwsIdentityGetHandler(config: AwsRestConfig): ToolHandler;
218
+ export declare function createAwsS3ObjectsListHandler(config: AwsRestConfig): ToolHandler;
219
+ export declare function createGcpProjectGetHandler(config: GcpRestConfig): ToolHandler;
220
+ export declare function createGcpStorageObjectsListHandler(config: GcpRestConfig): ToolHandler;
221
+ export declare function createLocalDocsSearchHandler(config: LocalDocsConfig): ToolHandler;
222
+ export declare function createLocalDocsReadHandler(config: LocalDocsConfig): ToolHandler;
223
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}