@filepad/agent-access-sdk 0.1.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.
@@ -0,0 +1,104 @@
1
+ // FILE MEMO: Low-level typed HTTP wrappers for every Agent Access and MCP endpoint.
2
+ import { signRequest } from './auth.js';
3
+ import { fromResponse, FilepadAgentError } from './errors.js';
4
+ const DEFAULT_TIMEOUT_MS = 30_000;
5
+ const DEFAULT_MAX_RETRIES = 3;
6
+ const DEFAULT_RETRY_DELAY_MS = 1_000;
7
+ function sleep(ms) {
8
+ return new Promise((resolve) => setTimeout(resolve, ms));
9
+ }
10
+ function isRetryableStatus(status) {
11
+ return status >= 500 || status === 429;
12
+ }
13
+ export class FilepadAgentHttpClient {
14
+ baseUrl;
15
+ keyId;
16
+ secret;
17
+ timeoutMs;
18
+ maxRetries;
19
+ retryDelayMs;
20
+ constructor(config) {
21
+ this.baseUrl = config.baseUrl.replace(/\/$/, '');
22
+ this.keyId = config.keyId;
23
+ this.secret = config.secret;
24
+ this.timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
25
+ this.maxRetries = config.maxRetries ?? DEFAULT_MAX_RETRIES;
26
+ this.retryDelayMs = config.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;
27
+ }
28
+ buildUrl(pathWithQuery) {
29
+ return `${this.baseUrl}${pathWithQuery}`;
30
+ }
31
+ async fetchWithTimeout(url, init) {
32
+ const controller = new AbortController();
33
+ const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
34
+ try {
35
+ const response = await fetch(url, { ...init, signal: controller.signal });
36
+ return response;
37
+ }
38
+ finally {
39
+ clearTimeout(timeoutId);
40
+ }
41
+ }
42
+ async request(method, pathWithQuery, body) {
43
+ const signed = signRequest(this.keyId, this.secret, method, pathWithQuery, body);
44
+ let lastError;
45
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
46
+ try {
47
+ const init = {
48
+ method: method.toUpperCase(),
49
+ headers: signed.headers,
50
+ };
51
+ if (signed.rawBody.length > 0) {
52
+ init.body = signed.rawBody;
53
+ }
54
+ const response = await this.fetchWithTimeout(this.buildUrl(pathWithQuery), init);
55
+ if (!response.ok) {
56
+ const text = await response.text();
57
+ let parsed = {};
58
+ try {
59
+ parsed = JSON.parse(text);
60
+ }
61
+ catch {
62
+ // raw text response
63
+ }
64
+ const code = parsed.error?.code ?? 'UNKNOWN';
65
+ const message = (parsed.error?.message ?? text) || `HTTP ${response.status}`;
66
+ const error = fromResponse(response.status, code, message);
67
+ if (isRetryableStatus(response.status) && attempt < this.maxRetries) {
68
+ lastError = error;
69
+ const delay = this.retryDelayMs * 2 ** attempt;
70
+ await sleep(delay);
71
+ continue;
72
+ }
73
+ throw error;
74
+ }
75
+ if (response.status === 204) {
76
+ return undefined;
77
+ }
78
+ return (await response.json());
79
+ }
80
+ catch (err) {
81
+ if (err instanceof FilepadAgentError)
82
+ throw err;
83
+ if (err instanceof Error && err.name === 'AbortError') {
84
+ throw new FilepadAgentError('TIMEOUT', `Request timed out after ${this.timeoutMs}ms`, 0);
85
+ }
86
+ if (attempt < this.maxRetries) {
87
+ lastError = err instanceof Error ? err : new Error(String(err));
88
+ const delay = this.retryDelayMs * 2 ** attempt;
89
+ await sleep(delay);
90
+ continue;
91
+ }
92
+ throw lastError ?? err;
93
+ }
94
+ }
95
+ throw lastError ?? new Error('Request failed after retries');
96
+ }
97
+ get(pathWithQuery) {
98
+ return this.request('GET', pathWithQuery);
99
+ }
100
+ post(pathWithQuery, body) {
101
+ return this.request('POST', pathWithQuery, body);
102
+ }
103
+ }
104
+ //# sourceMappingURL=endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export declare class FilepadAgentError extends Error {
2
+ readonly code: string;
3
+ readonly status: number;
4
+ constructor(code: string, message: string, status: number);
5
+ }
6
+ export declare class AuthenticationError extends FilepadAgentError {
7
+ constructor(message: string, status?: number);
8
+ }
9
+ export declare class ForbiddenScopeError extends FilepadAgentError {
10
+ constructor(message: string);
11
+ }
12
+ export declare class NotFoundError extends FilepadAgentError {
13
+ constructor(message: string);
14
+ }
15
+ export declare class ConflictError extends FilepadAgentError {
16
+ constructor(code: string, message: string);
17
+ }
18
+ export declare class RateLimitError extends FilepadAgentError {
19
+ constructor(message: string, status?: number);
20
+ }
21
+ export declare class ProposalPathError extends FilepadAgentError {
22
+ constructor(message: string);
23
+ }
24
+ export declare class BaseTextMismatchError extends FilepadAgentError {
25
+ constructor(message: string);
26
+ }
27
+ export declare class StaleVersionError extends FilepadAgentError {
28
+ constructor(message: string);
29
+ }
30
+ export declare class InvalidRequestError extends FilepadAgentError {
31
+ constructor(code: string, message: string);
32
+ }
33
+ export declare function fromResponse(status: number, code: string, message: string): FilepadAgentError;
34
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,IAAI,EAAE,MAAM;aAEZ,MAAM,EAAE,MAAM;gBAFd,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM;CAKjC;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;gBAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAM;CAI1C;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;gBAC5C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAED,qBAAa,cAAe,SAAQ,iBAAiB;gBACvC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAM;CAI1C;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB;gBAC1C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,qBAAsB,SAAQ,iBAAiB;gBAC9C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB;gBAC1C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;gBAC5C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,iBAAiB,CAgCnB"}
package/dist/errors.js ADDED
@@ -0,0 +1,99 @@
1
+ // FILE MEMO: Typed error taxonomy for the Filepad Agent Access SDK, mapped to backend error codes.
2
+ export class FilepadAgentError extends Error {
3
+ code;
4
+ status;
5
+ constructor(code, message, status) {
6
+ super(message);
7
+ this.code = code;
8
+ this.status = status;
9
+ this.name = 'FilepadAgentError';
10
+ }
11
+ }
12
+ export class AuthenticationError extends FilepadAgentError {
13
+ constructor(message, status = 401) {
14
+ super('UNAUTHENTICATED', message, status);
15
+ this.name = 'AuthenticationError';
16
+ }
17
+ }
18
+ export class ForbiddenScopeError extends FilepadAgentError {
19
+ constructor(message) {
20
+ super('FORBIDDEN_SCOPE', message, 403);
21
+ this.name = 'ForbiddenScopeError';
22
+ }
23
+ }
24
+ export class NotFoundError extends FilepadAgentError {
25
+ constructor(message) {
26
+ super('NOT_FOUND', message, 404);
27
+ this.name = 'NotFoundError';
28
+ }
29
+ }
30
+ export class ConflictError extends FilepadAgentError {
31
+ constructor(code, message) {
32
+ super(code, message, 409);
33
+ this.name = 'ConflictError';
34
+ }
35
+ }
36
+ export class RateLimitError extends FilepadAgentError {
37
+ constructor(message, status = 429) {
38
+ super('RATE_LIMITED', message, status);
39
+ this.name = 'RateLimitError';
40
+ }
41
+ }
42
+ export class ProposalPathError extends FilepadAgentError {
43
+ constructor(message) {
44
+ super('FORBIDDEN_FILE_PROPOSAL_TARGET', message, 403);
45
+ this.name = 'ProposalPathError';
46
+ }
47
+ }
48
+ export class BaseTextMismatchError extends FilepadAgentError {
49
+ constructor(message) {
50
+ super('BASE_TEXT_HASH_MISMATCH', message, 409);
51
+ this.name = 'BaseTextMismatchError';
52
+ }
53
+ }
54
+ export class StaleVersionError extends FilepadAgentError {
55
+ constructor(message) {
56
+ super('STALE_ARTIFACT_VERSION', message, 409);
57
+ this.name = 'StaleVersionError';
58
+ }
59
+ }
60
+ export class InvalidRequestError extends FilepadAgentError {
61
+ constructor(code, message) {
62
+ super(code, message, 400);
63
+ this.name = 'InvalidRequestError';
64
+ }
65
+ }
66
+ export function fromResponse(status, code, message) {
67
+ switch (code) {
68
+ case 'UNAUTHENTICATED':
69
+ return new AuthenticationError(message, status);
70
+ case 'FORBIDDEN_SCOPE':
71
+ return new ForbiddenScopeError(message);
72
+ case 'NOT_FOUND':
73
+ return new NotFoundError(message);
74
+ case 'RATE_LIMITED':
75
+ return new RateLimitError(message, status);
76
+ case 'BASE_TEXT_HASH_MISMATCH':
77
+ return new BaseTextMismatchError(message);
78
+ case 'STALE_ARTIFACT_VERSION':
79
+ return new StaleVersionError(message);
80
+ case 'FORBIDDEN_FILE_PROPOSAL_TARGET':
81
+ return new ProposalPathError(message);
82
+ case 'ENVIRONMENT_NOT_INITIALIZED':
83
+ case 'ARTIFACTS_FOLDER_MISSING':
84
+ return new ConflictError(code, message);
85
+ case 'INVALID_REQUEST':
86
+ case 'INVALID_PARAMS':
87
+ case 'INVALID_OCCURRED_AT':
88
+ case 'INVALID_SOURCE':
89
+ case 'INVALID_OPS':
90
+ case 'INVALID_SCOPE':
91
+ case 'INVALID_EDITOR_KIND':
92
+ case 'INVALID_DOCUMENT':
93
+ case 'NO_CHANGES_TO_PROPOSE':
94
+ return new InvalidRequestError(code, message);
95
+ default:
96
+ return new FilepadAgentError(code, message, status);
97
+ }
98
+ }
99
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { FilepadAgentClient } from './client.js';
2
+ export { FilepadAgentHttpClient } from './endpoints.js';
3
+ export { McpAdapter } from './mcp.js';
4
+ export { signRequest, buildCanonicalString, serializeBody, sha256Hex } from './auth.js';
5
+ export { FilepadAgentError, AuthenticationError, ForbiddenScopeError, NotFoundError, ConflictError, RateLimitError, ProposalPathError, BaseTextMismatchError, StaleVersionError, InvalidRequestError, fromResponse, } from './errors.js';
6
+ export type { FilepadAgentClientConfig, SignedRequest, AgentAccessScope, AgentApiPrompt, AgentApiSearchMode, AgentApiSearchResult, CreateAgentApiArtifactRequest, CreateAgentApiArtifactResponse, CreateAgentApiEventRequest, CreateAgentApiEventResponse, CreateAgentApiSignalRequest, CreateAgentApiSignalResponse, AckAgentMailboxResponse, AgentProfile, AgentProfileField, AgentProfileFile, AgentMailboxItem, AgentMailboxItemKind, AgentSignal, AgentSignalSeverity, AgentSignalStatus, GetAgentApiCapabilitiesResponse, GetAgentApiEnvironmentResponse, GetAgentApiFileResponse, GetAgentApiFileTreeResponse, GetAgentApiPromptsResponse, ListAgentMailboxResponse, ListAgentSignalsResponse, GetMcpPromptsResponse, GetMcpResourcesResponse, McpPrompt, McpResource, SearchAgentApiWorkspaceRequest, SearchAgentApiWorkspaceResponse, UpdateAgentProfileRequest, UpdateAgentProfileResponse, } from './types.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,+BAA+B,EAC/B,8BAA8B,EAC9B,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ // FILE MEMO: Public exports for @filepad/agent-access-sdk.
2
+ export { FilepadAgentClient } from './client.js';
3
+ export { FilepadAgentHttpClient } from './endpoints.js';
4
+ export { McpAdapter } from './mcp.js';
5
+ export { signRequest, buildCanonicalString, serializeBody, sha256Hex } from './auth.js';
6
+ export { FilepadAgentError, AuthenticationError, ForbiddenScopeError, NotFoundError, ConflictError, RateLimitError, ProposalPathError, BaseTextMismatchError, StaleVersionError, InvalidRequestError, fromResponse, } from './errors.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,GACb,MAAM,aAAa,CAAC"}
package/dist/mcp.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ import type { FilepadAgentClient } from './client.js';
2
+ import type { McpPrompt, McpResource } from './types.js';
3
+ export declare class McpAdapter {
4
+ private readonly client;
5
+ constructor(client: FilepadAgentClient);
6
+ listPrompts(): Promise<McpPrompt[]>;
7
+ listResources(): Promise<McpResource[]>;
8
+ /**
9
+ * Read the content of an MCP resource by its stable URI.
10
+ * Supported URI shapes:
11
+ * - filepad://workspace/{workspaceId}/mailbox
12
+ * - filepad://workspace/{workspaceId}/files/{fileNodeId}
13
+ */
14
+ getResource(uri: string): Promise<{
15
+ mimeType: string;
16
+ text: string;
17
+ }>;
18
+ }
19
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAkD,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzG,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAEjD,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKnC,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAK7C;;;;;OAKG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAuB5E"}
package/dist/mcp.js ADDED
@@ -0,0 +1,44 @@
1
+ // FILE MEMO: Thin MCP-compatible adapter over the Agent Access client.
2
+ export class McpAdapter {
3
+ client;
4
+ constructor(client) {
5
+ this.client = client;
6
+ }
7
+ async listPrompts() {
8
+ const res = await this.client.getMcpPrompts();
9
+ return res.prompts;
10
+ }
11
+ async listResources() {
12
+ const res = await this.client.getMcpResources();
13
+ return res.resources;
14
+ }
15
+ /**
16
+ * Read the content of an MCP resource by its stable URI.
17
+ * Supported URI shapes:
18
+ * - filepad://workspace/{workspaceId}/mailbox
19
+ * - filepad://workspace/{workspaceId}/files/{fileNodeId}
20
+ */
21
+ async getResource(uri) {
22
+ if (/^filepad:\/\/workspace\/[^/]+\/mailbox$/.test(uri)) {
23
+ const mailbox = await this.client.getMailbox({ limit: 50 });
24
+ return {
25
+ mimeType: 'application/json',
26
+ text: JSON.stringify(mailbox, null, 2),
27
+ };
28
+ }
29
+ const match = uri.match(/^filepad:\/\/workspace\/[^/]+\/files\/(.+)$/);
30
+ if (!match || !match[1]) {
31
+ throw new Error(`Unsupported resource URI: ${uri}`);
32
+ }
33
+ const fileNodeId = match[1];
34
+ const file = await this.client.getFile(fileNodeId);
35
+ if (file.content.kind !== 'inlineText') {
36
+ throw new Error(`Resource ${uri} is not inlineText-readable`);
37
+ }
38
+ return {
39
+ mimeType: 'text/markdown',
40
+ text: file.content.text || '',
41
+ };
42
+ }
43
+ }
44
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAKvE,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAE3D,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,GAAG,CAAC,SAAS,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,GAAW;QAC3B,IAAI,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aACvC,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,6BAA6B,CAAC,CAAC;QAChE,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;SAC9B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,234 @@
1
+ export type AgentAccessScope = 'env:read' | 'artifacts:write' | 'files:propose' | 'memory:read' | 'events.write' | 'signals:write' | 'notifications:read';
2
+ export type AgentApiSearchMode = 'semantic' | 'keyword' | 'hybrid';
3
+ export interface AgentApiFileTreeNode {
4
+ id: string;
5
+ parentId: string | null;
6
+ name: string;
7
+ kind: 'folder' | 'file';
8
+ artifactId: string | null;
9
+ artifactKind: string | null;
10
+ }
11
+ export interface AgentApiEnvironmentFolder {
12
+ name: string;
13
+ purpose: string;
14
+ fileNodeId: string | null;
15
+ status: 'ready' | 'missing';
16
+ }
17
+ export interface GetAgentApiCapabilitiesResponse {
18
+ agent: {
19
+ keyId: string;
20
+ integrationId: string;
21
+ workspaceId: string;
22
+ };
23
+ scopes: AgentAccessScope[];
24
+ }
25
+ export interface GetAgentApiEnvironmentResponse {
26
+ workspaceId: string;
27
+ rootFileNodeId: string | null;
28
+ folders: AgentApiEnvironmentFolder[];
29
+ }
30
+ export interface GetAgentApiFileTreeResponse {
31
+ nodes: AgentApiFileTreeNode[];
32
+ }
33
+ export interface AgentApiPrompt {
34
+ path: string;
35
+ fileNodeId: string;
36
+ name: string;
37
+ title: string;
38
+ description: string | null;
39
+ resourceUri: string;
40
+ contentUrl: string;
41
+ }
42
+ export interface GetAgentApiPromptsResponse {
43
+ prompts: AgentApiPrompt[];
44
+ }
45
+ export interface McpPrompt {
46
+ name: string;
47
+ title: string;
48
+ description: string;
49
+ arguments: unknown[];
50
+ resourceUri: string;
51
+ contentUrl: string;
52
+ }
53
+ export interface GetMcpPromptsResponse {
54
+ prompts: McpPrompt[];
55
+ }
56
+ export interface McpResource {
57
+ uri: string;
58
+ name: string;
59
+ title: string;
60
+ description: string | null;
61
+ mimeType: string;
62
+ contentUrl?: string | undefined;
63
+ }
64
+ export interface GetMcpResourcesResponse {
65
+ resources: McpResource[];
66
+ }
67
+ export interface AgentApiSearchResult {
68
+ artifactId: string;
69
+ fileNodeId: string;
70
+ artifactVersionId: string;
71
+ title: string;
72
+ kind: string;
73
+ excerpt: string;
74
+ score: number;
75
+ contentUrl: string;
76
+ }
77
+ export interface SearchAgentApiWorkspaceRequest {
78
+ query: string;
79
+ limit?: number | undefined;
80
+ type?: AgentApiSearchMode | undefined;
81
+ }
82
+ export interface SearchAgentApiWorkspaceResponse {
83
+ results: AgentApiSearchResult[];
84
+ message?: string | undefined;
85
+ }
86
+ export interface Artifact {
87
+ id: string;
88
+ workspaceId: string;
89
+ fileNodeId: string;
90
+ kind: string;
91
+ title: string;
92
+ createdAt: string;
93
+ updatedAt: string;
94
+ privateToUserId?: string | undefined;
95
+ candidateForSubmissionId?: string | undefined;
96
+ latestVersionId: string;
97
+ }
98
+ export interface ArtifactVersion {
99
+ id: string;
100
+ artifactId: string;
101
+ createdAt: string;
102
+ createdByUserId: string;
103
+ metadata?: {
104
+ label?: string | undefined;
105
+ } | undefined;
106
+ }
107
+ export interface GetAgentApiFileResponse {
108
+ node: AgentApiFileTreeNode;
109
+ artifact: Artifact | null;
110
+ latestVersion: ArtifactVersion | null;
111
+ content: {
112
+ kind: 'inlineText' | 'unsupported';
113
+ text?: string | undefined;
114
+ };
115
+ }
116
+ export interface CreateAgentApiArtifactRequest {
117
+ title: string;
118
+ text?: string | undefined;
119
+ }
120
+ export interface CreateAgentApiArtifactResponse {
121
+ artifact: Artifact;
122
+ version: ArtifactVersion;
123
+ }
124
+ export interface CreateAgentApiEventRequest {
125
+ idempotencyKey: string;
126
+ occurredAt: string;
127
+ eventType: string;
128
+ payload?: unknown;
129
+ }
130
+ export interface CreateAgentApiEventResponse {
131
+ eventId: string;
132
+ }
133
+ export interface CreateAgentApiSignalRequest {
134
+ findingTypeKey: string;
135
+ summary: string;
136
+ severity?: 'info' | 'warn' | 'high_alert' | undefined;
137
+ value?: Record<string, unknown> | undefined;
138
+ idempotencyKey: string;
139
+ }
140
+ export interface CreateAgentApiSignalResponse {
141
+ signalId: string;
142
+ }
143
+ export type AgentSignalSeverity = 'info' | 'warn' | 'high_alert';
144
+ export type AgentSignalStatus = 'suggested' | 'accepted' | 'rejected';
145
+ export interface AgentSignal {
146
+ id: string;
147
+ workspaceId: string;
148
+ findingTypeKey: string;
149
+ severity: AgentSignalSeverity;
150
+ status: AgentSignalStatus;
151
+ summary: string;
152
+ target: Record<string, unknown>;
153
+ value: Record<string, unknown>;
154
+ citations: unknown[];
155
+ provenance: Record<string, unknown>;
156
+ links: Record<string, unknown>;
157
+ createdAt: string;
158
+ updatedAt: string;
159
+ }
160
+ export interface ListAgentSignalsResponse {
161
+ signals: AgentSignal[];
162
+ nextCursor: string | null;
163
+ asOf: string;
164
+ }
165
+ export type AgentMailboxItemKind = 'automation.completed' | 'automation.failed' | 'signal.accepted' | 'signal.rejected' | 'proposal.approved' | 'proposal.rejected';
166
+ export interface AgentMailboxItem {
167
+ id: string;
168
+ workspaceId: string;
169
+ integrationId: string;
170
+ kind: AgentMailboxItemKind;
171
+ sourceType: string;
172
+ sourceId: string;
173
+ summary: string;
174
+ links: Record<string, unknown>;
175
+ payload: Record<string, unknown>;
176
+ createdAt: string;
177
+ readAt: string | null;
178
+ }
179
+ export interface ListAgentMailboxResponse {
180
+ items: AgentMailboxItem[];
181
+ nextCursor: string | null;
182
+ unreadCount: number;
183
+ asOf: string;
184
+ }
185
+ export interface AckAgentMailboxResponse {
186
+ acknowledgedIds: string[];
187
+ }
188
+ export type AgentProfileField = 'identity' | 'learnings' | 'goals' | 'timeline';
189
+ export interface AgentProfileFile {
190
+ field: AgentProfileField;
191
+ path: string;
192
+ fileNodeId: string;
193
+ artifactId: string | null;
194
+ baseVersionId: string | null;
195
+ text: string;
196
+ }
197
+ export interface AgentProfile {
198
+ keyId: string;
199
+ files: Partial<Record<AgentProfileField, AgentProfileFile>>;
200
+ }
201
+ export interface UpdateAgentProfileRequest {
202
+ field: AgentProfileField;
203
+ content: string;
204
+ mode?: 'append' | 'replace' | undefined;
205
+ }
206
+ export interface UpdateAgentProfileResponse {
207
+ proposalId: string;
208
+ artifactId: string;
209
+ baseVersionId: string;
210
+ field: AgentProfileField;
211
+ mode: 'append' | 'replace';
212
+ status: 'pending_review';
213
+ }
214
+ export interface FilepadAgentClientConfig {
215
+ /** Base URL of the Filepad backend, e.g. https://app.filepad.ai/api */
216
+ baseUrl: string;
217
+ /** Workspace id, e.g. ws_... */
218
+ workspaceId: string;
219
+ /** Agent Access key id, e.g. ik_... */
220
+ keyId: string;
221
+ /** Agent Access secret (plaintext, shown once on creation) */
222
+ secret: string;
223
+ /** Request timeout in milliseconds. Default: 30000 */
224
+ timeoutMs?: number | undefined;
225
+ /** Maximum retries on 5xx. Default: 3 */
226
+ maxRetries?: number | undefined;
227
+ /** Initial retry delay in milliseconds. Default: 1000 */
228
+ retryDelayMs?: number | undefined;
229
+ }
230
+ export interface SignedRequest {
231
+ headers: Record<string, string>;
232
+ rawBody: string;
233
+ }
234
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ // FILE MEMO: Self-contained Agent Access types. No external workspace dependencies.
2
+ // These are TypeScript compile-time interfaces mirroring the backend contract.
3
+ // Keep in sync with packages/contracts/src/endpoints/agent-access/agent-access.ts
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,+EAA+E;AAC/E,kFAAkF"}