@agent-os-sdk/client 0.2.2 → 0.2.3

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/dist/index.d.ts CHANGED
@@ -72,7 +72,7 @@ export { HandoffModule, type HandoffOptions, type HandoffResult, type ForkOption
72
72
  export { FlowsModule, type Flow, type FlowStep, type FlowRun, type FlowVisualization, type FlowSimulationResult, type FlowStatus, type FlowListResponse } from "./modules/flows.js";
73
73
  export { CapabilitiesModule, type Capability, type CapabilityType, type CapabilityTest, type CapabilityMatrix } from "./modules/capabilities.js";
74
74
  export { PoliciesModule, type Policy, type PolicyScope, type PolicyEnforcement, type PolicyRule, type PolicyEvaluation, type PolicyEvaluationResult } from "./modules/policies.js";
75
- export { ApprovalsModule, type Approval, type ApprovalStatus, type ApprovalRequest, type ApprovalDecision, type ApprovalListResponse } from "./modules/approvals.js";
75
+ export { ApprovalsModule, type Approval, type ApprovalStatus, type ApprovalDecision, type ApprovalListResponse, type ApprovalStatusResponse } from "./modules/approvals.js";
76
76
  export { BudgetsModule, type Budget, type BudgetPeriod, type BudgetScope, type BudgetResourceType, type BudgetUsage, type BudgetAlert, type BudgetBreakdownItem } from "./modules/budgets.js";
77
77
  export { DeploymentsModule, type Environment, type Deployment, type DeploymentStatus, type DeploymentConfig, type DeploymentHealth } from "./modules/deployments.js";
78
78
  export { IncidentsModule, type Incident, type IncidentSeverity, type IncidentStatus, type IncidentUpdate, type IncidentMetrics } from "./modules/incidents.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,64 +1,75 @@
1
1
  /**
2
2
  * Approvals Module - Human-in-the-Loop Native
3
3
  *
4
- * NOT IMPLEMENTED - Backend endpoint not available.
5
- * All methods return 501 NotImplemented.
4
+ * Wave 2.x: Real implementation for HITL workflow.
5
+ * Endpoints: /v1/api/workspaces/{workspaceId}/approvals
6
6
  */
7
7
  import type { RawClient, APIResponse } from "../client/raw.js";
8
- export type ApprovalStatus = "pending" | "approved" | "rejected" | "expired" | "auto_approved";
8
+ export type ApprovalStatus = "pending" | "approved" | "denied" | "expired";
9
9
  export interface Approval {
10
10
  id: string;
11
11
  run_id: string;
12
- thread_id?: string;
13
- action: string;
14
- payload: Record<string, unknown>;
12
+ attempt_id: string;
13
+ policy_name: string;
14
+ reason: string;
15
15
  status: ApprovalStatus;
16
- reason?: string;
17
- requested_at: string;
18
- responded_at?: string;
19
- responded_by?: string;
20
- expires_at?: string;
21
- auto_approve_after?: number;
16
+ created_at: string;
17
+ decided_at?: string;
18
+ decided_by_actor?: string;
19
+ payload?: Record<string, unknown>;
22
20
  }
23
- export interface ApprovalRequest {
24
- run_id: string;
25
- action: string;
26
- payload: Record<string, unknown>;
27
- expires_in_seconds?: number;
28
- auto_approve_after_seconds?: number;
29
- notify_channels?: string[];
21
+ export interface ApprovalDecision {
22
+ decision: "approve" | "deny";
23
+ comment?: string;
30
24
  }
31
25
  export interface ApprovalListResponse {
32
26
  items: Approval[];
33
27
  total: number;
34
- pending_count: number;
35
28
  }
36
- export interface ApprovalDecision {
37
- approval_id: string;
38
- decision: "approve" | "reject";
39
- reason?: string;
40
- modified_payload?: Record<string, unknown>;
29
+ export interface ApprovalStatusResponse {
30
+ id: string;
31
+ status: ApprovalStatus;
32
+ decided_at?: string;
33
+ decided_by_actor?: string;
34
+ decision_comment?: string;
41
35
  }
42
36
  export declare class ApprovalsModule {
43
37
  private client;
44
38
  private headers;
45
39
  constructor(client: RawClient, headers: () => Record<string, string>);
46
- /** @returns 501 Not Implemented */
47
- list(params?: {
40
+ /**
41
+ * List approvals for a workspace.
42
+ * @param workspaceId - Workspace ID
43
+ * @param params - Filter options
44
+ */
45
+ list(workspaceId: string, params?: {
48
46
  status?: ApprovalStatus;
49
- run_id?: string;
50
47
  limit?: number;
51
- offset?: number;
52
48
  }): Promise<APIResponse<ApprovalListResponse>>;
53
- /** @returns 501 Not Implemented */
54
- get(approvalId: string): Promise<APIResponse<Approval>>;
55
- /** @returns 501 Not Implemented */
56
- create(request: ApprovalRequest): Promise<APIResponse<Approval>>;
57
- /** @returns 501 Not Implemented */
58
- approve(approvalId: string, reason?: string): Promise<APIResponse<Approval>>;
59
- /** @returns 501 Not Implemented */
60
- reject(approvalId: string, reason?: string): Promise<APIResponse<Approval>>;
61
- /** @returns 501 Not Implemented */
62
- awaitApproval(runId: string, timeoutSeconds?: number): Promise<APIResponse<Approval>>;
49
+ /**
50
+ * Get a specific approval by ID.
51
+ * @param workspaceId - Workspace ID
52
+ * @param approvalId - Approval ID
53
+ */
54
+ get(workspaceId: string, approvalId: string): Promise<APIResponse<Approval>>;
55
+ /**
56
+ * Approve an approval request.
57
+ * @param workspaceId - Workspace ID
58
+ * @param approvalId - Approval ID
59
+ * @param comment - Optional reason for approval
60
+ */
61
+ approve(workspaceId: string, approvalId: string, comment?: string): Promise<APIResponse<ApprovalStatusResponse>>;
62
+ /**
63
+ * Deny an approval request.
64
+ * @param workspaceId - Workspace ID
65
+ * @param approvalId - Approval ID
66
+ * @param comment - Optional reason for denial
67
+ */
68
+ deny(workspaceId: string, approvalId: string, comment?: string): Promise<APIResponse<ApprovalStatusResponse>>;
69
+ /**
70
+ * Shorthand: List pending approvals for a workspace.
71
+ */
72
+ listPending(workspaceId: string, limit?: number): Promise<APIResponse<ApprovalListResponse>>;
73
+ reject: (workspaceId: string, approvalId: string, comment?: string) => Promise<APIResponse<ApprovalStatusResponse>>;
63
74
  }
64
75
  //# sourceMappingURL=approvals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/modules/approvals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAM/D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC;AAE/F,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAqBD,qBAAa,eAAe;IACZ,OAAO,CAAC,MAAM;IAAa,OAAO,CAAC,OAAO;gBAAlC,MAAM,EAAE,SAAS,EAAU,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEpF,mCAAmC;IAC7B,IAAI,CAAC,MAAM,CAAC,EAAE;QAChB,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAI9C,mCAAmC;IAC7B,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAI7D,mCAAmC;IAC7B,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAItE,mCAAmC;IAC7B,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIlF,mCAAmC;IAC7B,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAIjF,mCAAmC;IAC7B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;CAG9F"}
1
+ {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/modules/approvals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAM/D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,qBAAa,eAAe;IAEpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;gBADP,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGjD;;;;OAIG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QACrC,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAgB9C;;;;OAIG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAYlF;;;;;OAKG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAgBtH;;;;;OAKG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAgBnH;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAK9F,MAAM,gBAxBkB,MAAM,cAAc,MAAM,YAAY,MAAM,KAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAwBhG;CACtB"}
@@ -1,23 +1,10 @@
1
1
  /**
2
2
  * Approvals Module - Human-in-the-Loop Native
3
3
  *
4
- * NOT IMPLEMENTED - Backend endpoint not available.
5
- * All methods return 501 NotImplemented.
4
+ * Wave 2.x: Real implementation for HITL workflow.
5
+ * Endpoints: /v1/api/workspaces/{workspaceId}/approvals
6
6
  */
7
7
  // ============================================================================
8
- // Helper for 501 responses
9
- // ============================================================================
10
- function notImplemented(method) {
11
- return {
12
- data: undefined,
13
- error: {
14
- code: "NOT_IMPLEMENTED",
15
- message: `ApprovalsModule.${method}() is not implemented. Backend endpoint not available.`,
16
- },
17
- response: new Response(null, { status: 501, statusText: "Not Implemented" }),
18
- };
19
- }
20
- // ============================================================================
21
8
  // Module
22
9
  // ============================================================================
23
10
  export class ApprovalsModule {
@@ -27,28 +14,78 @@ export class ApprovalsModule {
27
14
  this.client = client;
28
15
  this.headers = headers;
29
16
  }
30
- /** @returns 501 Not Implemented */
31
- async list(params) {
32
- return notImplemented("list");
33
- }
34
- /** @returns 501 Not Implemented */
35
- async get(approvalId) {
36
- return notImplemented("get");
17
+ /**
18
+ * List approvals for a workspace.
19
+ * @param workspaceId - Workspace ID
20
+ * @param params - Filter options
21
+ */
22
+ async list(workspaceId, params) {
23
+ return this.client.GET("/v1/api/workspaces/{workspaceId}/approvals", {
24
+ params: {
25
+ path: { workspaceId },
26
+ query: {
27
+ status: params?.status,
28
+ limit: params?.limit ?? 50
29
+ }
30
+ },
31
+ headers: this.headers(),
32
+ });
37
33
  }
38
- /** @returns 501 Not Implemented */
39
- async create(request) {
40
- return notImplemented("create");
34
+ /**
35
+ * Get a specific approval by ID.
36
+ * @param workspaceId - Workspace ID
37
+ * @param approvalId - Approval ID
38
+ */
39
+ async get(workspaceId, approvalId) {
40
+ return this.client.GET("/v1/api/workspaces/{workspaceId}/approvals/{approvalId}", {
41
+ params: {
42
+ path: { workspaceId, approvalId }
43
+ },
44
+ headers: this.headers(),
45
+ });
41
46
  }
42
- /** @returns 501 Not Implemented */
43
- async approve(approvalId, reason) {
44
- return notImplemented("approve");
47
+ /**
48
+ * Approve an approval request.
49
+ * @param workspaceId - Workspace ID
50
+ * @param approvalId - Approval ID
51
+ * @param comment - Optional reason for approval
52
+ */
53
+ async approve(workspaceId, approvalId, comment) {
54
+ return this.client.POST("/v1/api/workspaces/{workspaceId}/approvals/{approvalId}/decision", {
55
+ params: {
56
+ path: { workspaceId, approvalId }
57
+ },
58
+ body: {
59
+ decision: "approve",
60
+ comment
61
+ },
62
+ headers: this.headers(),
63
+ });
45
64
  }
46
- /** @returns 501 Not Implemented */
47
- async reject(approvalId, reason) {
48
- return notImplemented("reject");
65
+ /**
66
+ * Deny an approval request.
67
+ * @param workspaceId - Workspace ID
68
+ * @param approvalId - Approval ID
69
+ * @param comment - Optional reason for denial
70
+ */
71
+ async deny(workspaceId, approvalId, comment) {
72
+ return this.client.POST("/v1/api/workspaces/{workspaceId}/approvals/{approvalId}/decision", {
73
+ params: {
74
+ path: { workspaceId, approvalId }
75
+ },
76
+ body: {
77
+ decision: "deny",
78
+ comment
79
+ },
80
+ headers: this.headers(),
81
+ });
49
82
  }
50
- /** @returns 501 Not Implemented */
51
- async awaitApproval(runId, timeoutSeconds) {
52
- return notImplemented("awaitApproval");
83
+ /**
84
+ * Shorthand: List pending approvals for a workspace.
85
+ */
86
+ async listPending(workspaceId, limit = 50) {
87
+ return this.list(workspaceId, { status: "pending", limit });
53
88
  }
89
+ // Convenience aliases
90
+ reject = this.deny;
54
91
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-os-sdk/client",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Official TypeScript SDK for Agent OS platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -122,7 +122,7 @@ export { HandoffModule, type HandoffOptions, type HandoffResult, type ForkOption
122
122
  export { FlowsModule, type Flow, type FlowStep, type FlowRun, type FlowVisualization, type FlowSimulationResult, type FlowStatus, type FlowListResponse } from "./modules/flows.js";
123
123
  export { CapabilitiesModule, type Capability, type CapabilityType, type CapabilityTest, type CapabilityMatrix } from "./modules/capabilities.js";
124
124
  export { PoliciesModule, type Policy, type PolicyScope, type PolicyEnforcement, type PolicyRule, type PolicyEvaluation, type PolicyEvaluationResult } from "./modules/policies.js";
125
- export { ApprovalsModule, type Approval, type ApprovalStatus, type ApprovalRequest, type ApprovalDecision, type ApprovalListResponse } from "./modules/approvals.js";
125
+ export { ApprovalsModule, type Approval, type ApprovalStatus, type ApprovalDecision, type ApprovalListResponse, type ApprovalStatusResponse } from "./modules/approvals.js";
126
126
  export { BudgetsModule, type Budget, type BudgetPeriod, type BudgetScope, type BudgetResourceType, type BudgetUsage, type BudgetAlert, type BudgetBreakdownItem } from "./modules/budgets.js";
127
127
  export { DeploymentsModule, type Environment, type Deployment, type DeploymentStatus, type DeploymentConfig, type DeploymentHealth } from "./modules/deployments.js";
128
128
  export { IncidentsModule, type Incident, type IncidentSeverity, type IncidentStatus, type IncidentUpdate, type IncidentMetrics } from "./modules/incidents.js";
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Approvals Module - Human-in-the-Loop Native
3
- *
4
- * NOT IMPLEMENTED - Backend endpoint not available.
5
- * All methods return 501 NotImplemented.
3
+ *
4
+ * Wave 2.x: Real implementation for HITL workflow.
5
+ * Endpoints: /v1/api/workspaces/{workspaceId}/approvals
6
6
  */
7
7
 
8
8
  import type { RawClient, APIResponse } from "../client/raw.js";
@@ -11,58 +11,37 @@ import type { RawClient, APIResponse } from "../client/raw.js";
11
11
  // Types
12
12
  // ============================================================================
13
13
 
14
- export type ApprovalStatus = "pending" | "approved" | "rejected" | "expired" | "auto_approved";
14
+ export type ApprovalStatus = "pending" | "approved" | "denied" | "expired";
15
15
 
16
16
  export interface Approval {
17
17
  id: string;
18
18
  run_id: string;
19
- thread_id?: string;
20
- action: string;
21
- payload: Record<string, unknown>;
19
+ attempt_id: string;
20
+ policy_name: string;
21
+ reason: string;
22
22
  status: ApprovalStatus;
23
- reason?: string;
24
- requested_at: string;
25
- responded_at?: string;
26
- responded_by?: string;
27
- expires_at?: string;
28
- auto_approve_after?: number;
23
+ created_at: string;
24
+ decided_at?: string;
25
+ decided_by_actor?: string;
26
+ payload?: Record<string, unknown>;
29
27
  }
30
28
 
31
- export interface ApprovalRequest {
32
- run_id: string;
33
- action: string;
34
- payload: Record<string, unknown>;
35
- expires_in_seconds?: number;
36
- auto_approve_after_seconds?: number;
37
- notify_channels?: string[];
29
+ export interface ApprovalDecision {
30
+ decision: "approve" | "deny";
31
+ comment?: string;
38
32
  }
39
33
 
40
34
  export interface ApprovalListResponse {
41
35
  items: Approval[];
42
36
  total: number;
43
- pending_count: number;
44
- }
45
-
46
- export interface ApprovalDecision {
47
- approval_id: string;
48
- decision: "approve" | "reject";
49
- reason?: string;
50
- modified_payload?: Record<string, unknown>;
51
37
  }
52
38
 
53
- // ============================================================================
54
- // Helper for 501 responses
55
- // ============================================================================
56
-
57
- function notImplemented<T>(method: string): APIResponse<T> {
58
- return {
59
- data: undefined,
60
- error: {
61
- code: "NOT_IMPLEMENTED",
62
- message: `ApprovalsModule.${method}() is not implemented. Backend endpoint not available.`,
63
- },
64
- response: new Response(null, { status: 501, statusText: "Not Implemented" }),
65
- };
39
+ export interface ApprovalStatusResponse {
40
+ id: string;
41
+ status: ApprovalStatus;
42
+ decided_at?: string;
43
+ decided_by_actor?: string;
44
+ decision_comment?: string;
66
45
  }
67
46
 
68
47
  // ============================================================================
@@ -70,40 +49,103 @@ function notImplemented<T>(method: string): APIResponse<T> {
70
49
  // ============================================================================
71
50
 
72
51
  export class ApprovalsModule {
73
- constructor(private client: RawClient, private headers: () => Record<string, string>) { }
74
-
75
- /** @returns 501 Not Implemented */
76
- async list(params?: {
52
+ constructor(
53
+ private client: RawClient,
54
+ private headers: () => Record<string, string>
55
+ ) { }
56
+
57
+ /**
58
+ * List approvals for a workspace.
59
+ * @param workspaceId - Workspace ID
60
+ * @param params - Filter options
61
+ */
62
+ async list(workspaceId: string, params?: {
77
63
  status?: ApprovalStatus;
78
- run_id?: string;
79
64
  limit?: number;
80
- offset?: number;
81
65
  }): Promise<APIResponse<ApprovalListResponse>> {
82
- return notImplemented<ApprovalListResponse>("list");
66
+ return this.client.GET<ApprovalListResponse>(
67
+ "/v1/api/workspaces/{workspaceId}/approvals",
68
+ {
69
+ params: {
70
+ path: { workspaceId },
71
+ query: {
72
+ status: params?.status,
73
+ limit: params?.limit ?? 50
74
+ }
75
+ },
76
+ headers: this.headers(),
77
+ }
78
+ );
83
79
  }
84
80
 
85
- /** @returns 501 Not Implemented */
86
- async get(approvalId: string): Promise<APIResponse<Approval>> {
87
- return notImplemented<Approval>("get");
81
+ /**
82
+ * Get a specific approval by ID.
83
+ * @param workspaceId - Workspace ID
84
+ * @param approvalId - Approval ID
85
+ */
86
+ async get(workspaceId: string, approvalId: string): Promise<APIResponse<Approval>> {
87
+ return this.client.GET<Approval>(
88
+ "/v1/api/workspaces/{workspaceId}/approvals/{approvalId}",
89
+ {
90
+ params: {
91
+ path: { workspaceId, approvalId }
92
+ },
93
+ headers: this.headers(),
94
+ }
95
+ );
88
96
  }
89
97
 
90
- /** @returns 501 Not Implemented */
91
- async create(request: ApprovalRequest): Promise<APIResponse<Approval>> {
92
- return notImplemented<Approval>("create");
98
+ /**
99
+ * Approve an approval request.
100
+ * @param workspaceId - Workspace ID
101
+ * @param approvalId - Approval ID
102
+ * @param comment - Optional reason for approval
103
+ */
104
+ async approve(workspaceId: string, approvalId: string, comment?: string): Promise<APIResponse<ApprovalStatusResponse>> {
105
+ return this.client.POST<ApprovalStatusResponse>(
106
+ "/v1/api/workspaces/{workspaceId}/approvals/{approvalId}/decision",
107
+ {
108
+ params: {
109
+ path: { workspaceId, approvalId }
110
+ },
111
+ body: {
112
+ decision: "approve",
113
+ comment
114
+ },
115
+ headers: this.headers(),
116
+ }
117
+ );
93
118
  }
94
119
 
95
- /** @returns 501 Not Implemented */
96
- async approve(approvalId: string, reason?: string): Promise<APIResponse<Approval>> {
97
- return notImplemented<Approval>("approve");
120
+ /**
121
+ * Deny an approval request.
122
+ * @param workspaceId - Workspace ID
123
+ * @param approvalId - Approval ID
124
+ * @param comment - Optional reason for denial
125
+ */
126
+ async deny(workspaceId: string, approvalId: string, comment?: string): Promise<APIResponse<ApprovalStatusResponse>> {
127
+ return this.client.POST<ApprovalStatusResponse>(
128
+ "/v1/api/workspaces/{workspaceId}/approvals/{approvalId}/decision",
129
+ {
130
+ params: {
131
+ path: { workspaceId, approvalId }
132
+ },
133
+ body: {
134
+ decision: "deny",
135
+ comment
136
+ },
137
+ headers: this.headers(),
138
+ }
139
+ );
98
140
  }
99
141
 
100
- /** @returns 501 Not Implemented */
101
- async reject(approvalId: string, reason?: string): Promise<APIResponse<Approval>> {
102
- return notImplemented<Approval>("reject");
142
+ /**
143
+ * Shorthand: List pending approvals for a workspace.
144
+ */
145
+ async listPending(workspaceId: string, limit = 50): Promise<APIResponse<ApprovalListResponse>> {
146
+ return this.list(workspaceId, { status: "pending", limit });
103
147
  }
104
148
 
105
- /** @returns 501 Not Implemented */
106
- async awaitApproval(runId: string, timeoutSeconds?: number): Promise<APIResponse<Approval>> {
107
- return notImplemented<Approval>("awaitApproval");
108
- }
149
+ // Convenience aliases
150
+ reject = this.deny;
109
151
  }