@arbiterhq/sdk 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +563 -0
- package/dist/approvalMapping.d.ts +26 -0
- package/dist/approvalMapping.d.ts.map +1 -0
- package/dist/approvalMapping.js +27 -0
- package/dist/approvalMapping.js.map +1 -0
- package/dist/arbiter.d.ts +23 -0
- package/dist/arbiter.d.ts.map +1 -0
- package/dist/arbiter.js +58 -0
- package/dist/arbiter.js.map +1 -0
- package/dist/arbiterAdmin.d.ts +32 -0
- package/dist/arbiterAdmin.d.ts.map +1 -0
- package/dist/arbiterAdmin.js +125 -0
- package/dist/arbiterAdmin.js.map +1 -0
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +36 -0
- package/dist/errors.js.map +1 -0
- package/dist/httpClient.d.ts +16 -0
- package/dist/httpClient.d.ts.map +1 -0
- package/dist/httpClient.js +45 -0
- package/dist/httpClient.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +11 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +51 -0
- package/dist/manifest.js.map +1 -0
- package/dist/manifestValidation.d.ts +9 -0
- package/dist/manifestValidation.d.ts.map +1 -0
- package/dist/manifestValidation.js +456 -0
- package/dist/manifestValidation.js.map +1 -0
- package/dist/resolveBaseUrl.d.ts +3 -0
- package/dist/resolveBaseUrl.d.ts.map +1 -0
- package/dist/resolveBaseUrl.js +12 -0
- package/dist/resolveBaseUrl.js.map +1 -0
- package/dist/runtime/ArbiterRuntime.d.ts +30 -0
- package/dist/runtime/ArbiterRuntime.d.ts.map +1 -0
- package/dist/runtime/ArbiterRuntime.js +163 -0
- package/dist/runtime/ArbiterRuntime.js.map +1 -0
- package/dist/runtime/credentialKind.d.ts +5 -0
- package/dist/runtime/credentialKind.d.ts.map +1 -0
- package/dist/runtime/credentialKind.js +9 -0
- package/dist/runtime/credentialKind.js.map +1 -0
- package/dist/runtime/resolveRuntimeAgentExternalId.d.ts +9 -0
- package/dist/runtime/resolveRuntimeAgentExternalId.d.ts.map +1 -0
- package/dist/runtime/resolveRuntimeAgentExternalId.js +38 -0
- package/dist/runtime/resolveRuntimeAgentExternalId.js.map +1 -0
- package/dist/types.d.ts +382 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +54 -0
package/dist/arbiter.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ArbiterAdmin } from './arbiterAdmin.js';
|
|
2
|
+
let deprecationWarningShown = false;
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use {@link ArbiterAdmin} for control-plane operations and {@link ArbiterRuntime} for autonomous agent execution.
|
|
5
|
+
*/
|
|
6
|
+
export class Arbiter {
|
|
7
|
+
admin;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
if (!deprecationWarningShown) {
|
|
10
|
+
deprecationWarningShown = true;
|
|
11
|
+
console.warn('[@arbiterhq/sdk] Arbiter is deprecated. Use ArbiterAdmin (control plane) and ArbiterRuntime (agent execution) instead.');
|
|
12
|
+
}
|
|
13
|
+
this.admin = new ArbiterAdmin(options);
|
|
14
|
+
}
|
|
15
|
+
async registerAgent(input) {
|
|
16
|
+
return await this.admin.registerAgent(input);
|
|
17
|
+
}
|
|
18
|
+
async registerPermission(input) {
|
|
19
|
+
return await this.admin.registerPermission(input);
|
|
20
|
+
}
|
|
21
|
+
async grantPermission(input) {
|
|
22
|
+
return await this.admin.grantPermission(input);
|
|
23
|
+
}
|
|
24
|
+
async registerPolicy(input) {
|
|
25
|
+
return await this.admin.registerPolicy(input);
|
|
26
|
+
}
|
|
27
|
+
async evaluate(input) {
|
|
28
|
+
return await this.admin.evaluate(input);
|
|
29
|
+
}
|
|
30
|
+
async getApproval(id) {
|
|
31
|
+
return await this.admin.getApproval(id);
|
|
32
|
+
}
|
|
33
|
+
async listApprovals(options = {}) {
|
|
34
|
+
return await this.admin.listApprovals(options);
|
|
35
|
+
}
|
|
36
|
+
async approve(approvalRequestId, options) {
|
|
37
|
+
return await this.admin.approve(approvalRequestId, options);
|
|
38
|
+
}
|
|
39
|
+
async reject(approvalRequestId, options) {
|
|
40
|
+
return await this.admin.reject(approvalRequestId, options);
|
|
41
|
+
}
|
|
42
|
+
async consumeRelease(input) {
|
|
43
|
+
return await this.admin.consumeRelease(input);
|
|
44
|
+
}
|
|
45
|
+
async syncRegistry(manifest) {
|
|
46
|
+
return await this.admin.syncRegistryManifest(manifest);
|
|
47
|
+
}
|
|
48
|
+
async plan(manifest) {
|
|
49
|
+
return await this.admin.plan(manifest);
|
|
50
|
+
}
|
|
51
|
+
async getDrift() {
|
|
52
|
+
return await this.admin.getDrift();
|
|
53
|
+
}
|
|
54
|
+
async getStateSignature() {
|
|
55
|
+
return await this.admin.getStateSignature();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=arbiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbiter.js","sourceRoot":"","sources":["../src/arbiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA0BjD,IAAI,uBAAuB,GAAG,KAAK,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,OAAO;IACD,KAAK,CAAe;IAErC,YAAmB,OAAuB;QACxC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,uBAAuB,GAAG,IAAI,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,wHAAwH,CACzH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAyB;QAClD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,KAA8B;QAE9B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,KAA2B;QACtD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAA0B;QACpD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAoB;QACxC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,EAAU;QACjC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,UAAgC,EAAE;QAElC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,iBAAyB,EACzB,OAA2B;QAE3B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,iBAAyB,EACzB,OAA8B;QAE9B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAA0B;QACpD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAA2B;QACnD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,QAA2B;QAC3C,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ApprovalResult, ArbiterAdminOptions, ConsumeReleaseInput, ConsumeReleaseResult, CreateAgentCredentialInput, CreateAgentCredentialResult, DriftResult, EvaluateInput, EvaluateResult, GrantPermissionInput, GrantPermissionResult, HumanActionOptions, ListApprovalsOptions, ManifestWorkspace, PlanResult, RegisterAgentInput, RegisterAgentResult, RegisterPermissionInput, RegisterPermissionResult, RegisterPolicyInput, RegisterPolicyResult, RejectApprovalOptions, StateSignatureResult, SyncRegistryInput, SyncRegistryResult } from './types.js';
|
|
2
|
+
export declare class ArbiterAdmin {
|
|
3
|
+
private readonly client;
|
|
4
|
+
private readonly manifest;
|
|
5
|
+
constructor(options: ArbiterAdminOptions);
|
|
6
|
+
registerAgent(input: RegisterAgentInput): Promise<RegisterAgentResult>;
|
|
7
|
+
registerPermission(input: RegisterPermissionInput): Promise<RegisterPermissionResult>;
|
|
8
|
+
grantPermission(input: GrantPermissionInput): Promise<GrantPermissionResult>;
|
|
9
|
+
registerPolicy(input: RegisterPolicyInput): Promise<RegisterPolicyResult>;
|
|
10
|
+
syncRegistry(input: SyncRegistryInput): Promise<SyncRegistryResult>;
|
|
11
|
+
syncRegistryManifest(manifest: ManifestWorkspace): Promise<SyncRegistryResult>;
|
|
12
|
+
plan(manifest: ManifestWorkspace): Promise<PlanResult>;
|
|
13
|
+
getDrift(): Promise<DriftResult>;
|
|
14
|
+
getStateSignature(): Promise<StateSignatureResult>;
|
|
15
|
+
createAgentCredential(input: CreateAgentCredentialInput): Promise<CreateAgentCredentialResult>;
|
|
16
|
+
createAgentCredentialByExternalId(input: {
|
|
17
|
+
externalId: string;
|
|
18
|
+
name: string;
|
|
19
|
+
createdByUserId: string;
|
|
20
|
+
}): Promise<CreateAgentCredentialResult>;
|
|
21
|
+
/** @deprecated Use ArbiterRuntime.evaluate() with an agent credential instead. */
|
|
22
|
+
evaluate(input: EvaluateInput): Promise<EvaluateResult>;
|
|
23
|
+
/** @deprecated Use {@link ArbiterRuntime.getApproval} or {@link ArbiterRuntime.pollApproval} with an agent credential instead. */
|
|
24
|
+
getApproval(id: string): Promise<ApprovalResult>;
|
|
25
|
+
/** @deprecated Use ArbiterRuntime.pollApproval() with an agent credential instead. */
|
|
26
|
+
listApprovals(options?: ListApprovalsOptions): Promise<ApprovalResult[]>;
|
|
27
|
+
approve(approvalRequestId: string, options: HumanActionOptions): Promise<ApprovalResult>;
|
|
28
|
+
reject(approvalRequestId: string, options: RejectApprovalOptions): Promise<ApprovalResult>;
|
|
29
|
+
/** @deprecated Use ArbiterRuntime.consumeRelease() with an agent credential instead. */
|
|
30
|
+
consumeRelease(input: ConsumeReleaseInput): Promise<ConsumeReleaseResult>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=arbiterAdmin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbiterAdmin.d.ts","sourceRoot":"","sources":["../src/arbiterAdmin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,WAAW,EACX,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAkCpB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAEvB,OAAO,EAAE,mBAAmB;IAYlC,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAatE,kBAAkB,CAC7B,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAoBvB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAS5E,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAezE,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInE,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI9E,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAItD,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAIhC,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAIlD,qBAAqB,CAChC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,2BAA2B,CAAC;IAU1B,iCAAiC,CAAC,KAAK,EAAE;QACpD,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAexC,kFAAkF;IACrE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpE,kIAAkI;IACrH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM7D,sFAAsF;IACzE,aAAa,CACxB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC;IASf,OAAO,CAClB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,cAAc,CAAC;IAcb,MAAM,CACjB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC;IAc1B,wFAAwF;IAC3E,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAGvF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { HttpClient } from './httpClient.js';
|
|
2
|
+
import { resolveBaseUrl } from './resolveBaseUrl.js';
|
|
3
|
+
import { mapApproval } from './approvalMapping.js';
|
|
4
|
+
import { ManifestClient } from './manifest.js';
|
|
5
|
+
export class ArbiterAdmin {
|
|
6
|
+
client;
|
|
7
|
+
manifest;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
if (!options.apiKey || options.apiKey.trim().length === 0) {
|
|
10
|
+
throw new Error('apiKey is required');
|
|
11
|
+
}
|
|
12
|
+
this.client = new HttpClient({
|
|
13
|
+
bearerToken: options.apiKey,
|
|
14
|
+
baseUrl: resolveBaseUrl(options.baseUrl),
|
|
15
|
+
});
|
|
16
|
+
this.manifest = new ManifestClient(this.client);
|
|
17
|
+
}
|
|
18
|
+
async registerAgent(input) {
|
|
19
|
+
const response = await this.client.post('/sdk/register-agent', input);
|
|
20
|
+
return {
|
|
21
|
+
externalId: response.externalId,
|
|
22
|
+
name: response.name,
|
|
23
|
+
created: response.created,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
async registerPermission(input) {
|
|
27
|
+
const response = await this.client.post('/sdk/register-permission', input);
|
|
28
|
+
return {
|
|
29
|
+
action: response.action,
|
|
30
|
+
description: response.description,
|
|
31
|
+
displayName: response.displayName,
|
|
32
|
+
category: response.category,
|
|
33
|
+
documentation: response.documentation,
|
|
34
|
+
tags: response.tags,
|
|
35
|
+
metadata: response.metadata,
|
|
36
|
+
lifecycleStatus: response.lifecycleStatus,
|
|
37
|
+
version: response.version,
|
|
38
|
+
status: response.status,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
async grantPermission(input) {
|
|
42
|
+
await this.client.post('/sdk/register-agent-permission', input);
|
|
43
|
+
return {
|
|
44
|
+
agent: input.agent,
|
|
45
|
+
action: input.action,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
async registerPolicy(input) {
|
|
49
|
+
const response = await this.client.post('/sdk/register-policy', input);
|
|
50
|
+
return {
|
|
51
|
+
id: response.id,
|
|
52
|
+
action: response.action,
|
|
53
|
+
field: response.field,
|
|
54
|
+
operator: response.operator,
|
|
55
|
+
decision: response.decision,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async syncRegistry(input) {
|
|
59
|
+
return await this.client.post('/sdk/sync-registry', input);
|
|
60
|
+
}
|
|
61
|
+
async syncRegistryManifest(manifest) {
|
|
62
|
+
return await this.manifest.syncRegistry(manifest, 'apply');
|
|
63
|
+
}
|
|
64
|
+
async plan(manifest) {
|
|
65
|
+
return await this.manifest.plan(manifest);
|
|
66
|
+
}
|
|
67
|
+
async getDrift() {
|
|
68
|
+
return await this.manifest.getDrift();
|
|
69
|
+
}
|
|
70
|
+
async getStateSignature() {
|
|
71
|
+
return await this.manifest.getStateSignature();
|
|
72
|
+
}
|
|
73
|
+
async createAgentCredential(input) {
|
|
74
|
+
return await this.client.post(`/agents/${input.agentId}/credentials`, {
|
|
75
|
+
name: input.name,
|
|
76
|
+
createdByUserId: input.createdByUserId,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
async createAgentCredentialByExternalId(input) {
|
|
80
|
+
const agents = await this.client.get('/agents');
|
|
81
|
+
const agent = agents.find((entry) => entry.externalId === input.externalId);
|
|
82
|
+
if (!agent) {
|
|
83
|
+
throw new Error(`Agent not found for externalId: ${input.externalId}`);
|
|
84
|
+
}
|
|
85
|
+
return await this.createAgentCredential({
|
|
86
|
+
agentId: agent.id,
|
|
87
|
+
name: input.name,
|
|
88
|
+
createdByUserId: input.createdByUserId,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/** @deprecated Use ArbiterRuntime.evaluate() with an agent credential instead. */
|
|
92
|
+
async evaluate(input) {
|
|
93
|
+
return await this.client.post('/evaluate', input);
|
|
94
|
+
}
|
|
95
|
+
/** @deprecated Use {@link ArbiterRuntime.getApproval} or {@link ArbiterRuntime.pollApproval} with an agent credential instead. */
|
|
96
|
+
async getApproval(id) {
|
|
97
|
+
const response = await this.client.get(`/approvals/${id}`);
|
|
98
|
+
return mapApproval(response);
|
|
99
|
+
}
|
|
100
|
+
/** @deprecated Use ArbiterRuntime.pollApproval() with an agent credential instead. */
|
|
101
|
+
async listApprovals(options = {}) {
|
|
102
|
+
const status = options.status ?? 'pending';
|
|
103
|
+
const response = await this.client.get(`/approvals?status=${encodeURIComponent(status)}`);
|
|
104
|
+
return response.map(mapApproval);
|
|
105
|
+
}
|
|
106
|
+
async approve(approvalRequestId, options) {
|
|
107
|
+
if (!options.humanToken || options.humanToken.trim().length === 0) {
|
|
108
|
+
throw new Error('humanToken is required for approve()');
|
|
109
|
+
}
|
|
110
|
+
const response = await this.client.postWithToken(`/approvals/${approvalRequestId}/approve`, {}, options.humanToken);
|
|
111
|
+
return mapApproval(response);
|
|
112
|
+
}
|
|
113
|
+
async reject(approvalRequestId, options) {
|
|
114
|
+
if (!options.humanToken || options.humanToken.trim().length === 0) {
|
|
115
|
+
throw new Error('humanToken is required for reject()');
|
|
116
|
+
}
|
|
117
|
+
const response = await this.client.postWithToken(`/approvals/${approvalRequestId}/reject`, { reason: options.reason }, options.humanToken);
|
|
118
|
+
return mapApproval(response);
|
|
119
|
+
}
|
|
120
|
+
/** @deprecated Use ArbiterRuntime.consumeRelease() with an agent credential instead. */
|
|
121
|
+
async consumeRelease(input) {
|
|
122
|
+
return await this.client.post('/releases/consume', input);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=arbiterAdmin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbiterAdmin.js","sourceRoot":"","sources":["../src/arbiterAdmin.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class ArbiterError extends Error {
|
|
2
|
+
readonly statusCode: number;
|
|
3
|
+
readonly body: unknown;
|
|
4
|
+
constructor(message: string, statusCode: number, body: unknown);
|
|
5
|
+
}
|
|
6
|
+
export declare class ArbiterValidationError extends ArbiterError {
|
|
7
|
+
constructor(message?: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class PollApprovalTimeoutError extends Error {
|
|
10
|
+
readonly approvalRequestId: string;
|
|
11
|
+
readonly timeoutMs: number;
|
|
12
|
+
constructor(approvalRequestId: string, timeoutMs: number);
|
|
13
|
+
}
|
|
14
|
+
export declare function parseErrorMessage(body: unknown, fallback: string): string;
|
|
15
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,IAAI,EAAE,OAAO,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;CAM/D;AAED,qBAAa,sBAAuB,SAAQ,YAAY;gBAC1C,OAAO,SAA8B;CAIlD;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAC1C,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAQzD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUzE"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export class ArbiterError extends Error {
|
|
2
|
+
statusCode;
|
|
3
|
+
body;
|
|
4
|
+
constructor(message, statusCode, body) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = 'ArbiterError';
|
|
7
|
+
this.statusCode = statusCode;
|
|
8
|
+
this.body = body;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class ArbiterValidationError extends ArbiterError {
|
|
12
|
+
constructor(message = 'Request validation failed') {
|
|
13
|
+
super(message, 422, null);
|
|
14
|
+
this.name = 'ArbiterValidationError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class PollApprovalTimeoutError extends Error {
|
|
18
|
+
approvalRequestId;
|
|
19
|
+
timeoutMs;
|
|
20
|
+
constructor(approvalRequestId, timeoutMs) {
|
|
21
|
+
super(`Approval ${approvalRequestId} did not reach a terminal state within ${timeoutMs}ms`);
|
|
22
|
+
this.name = 'PollApprovalTimeoutError';
|
|
23
|
+
this.approvalRequestId = approvalRequestId;
|
|
24
|
+
this.timeoutMs = timeoutMs;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function parseErrorMessage(body, fallback) {
|
|
28
|
+
if (typeof body === 'object' && body !== null && 'error' in body) {
|
|
29
|
+
const error = body.error;
|
|
30
|
+
if (typeof error === 'string' && error.length > 0) {
|
|
31
|
+
return error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return fallback;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrB,UAAU,CAAS;IACnB,IAAI,CAAU;IAE9B,YAAY,OAAe,EAAE,UAAkB,EAAE,IAAa;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD,YAAY,OAAO,GAAG,2BAA2B;QAC/C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjC,iBAAiB,CAAS;IAC1B,SAAS,CAAS;IAElC,YAAY,iBAAyB,EAAE,SAAiB;QACtD,KAAK,CACH,YAAY,iBAAiB,0CAA0C,SAAS,IAAI,CACrF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAa,EAAE,QAAgB;IAC/D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACjE,MAAM,KAAK,GAAI,IAA4B,CAAC,KAAK,CAAC;QAElD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface HttpClientOptions {
|
|
2
|
+
bearerToken: string;
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class HttpClient {
|
|
6
|
+
private readonly bearerToken;
|
|
7
|
+
private readonly baseUrl;
|
|
8
|
+
constructor(options: HttpClientOptions);
|
|
9
|
+
get<T>(path: string): Promise<T>;
|
|
10
|
+
post<T>(path: string, body: unknown): Promise<T>;
|
|
11
|
+
postWithToken<T>(path: string, body: unknown, bearerToken: string): Promise<T>;
|
|
12
|
+
private requestWithToken;
|
|
13
|
+
private request;
|
|
14
|
+
private parseResponse;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=httpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../src/httpClient.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAEd,OAAO,EAAE,iBAAiB;IAKhC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD,aAAa,CAAC,CAAC,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,CAAC,CAAC;YAIC,gBAAgB;YAwBhB,OAAO;YAQP,aAAa;CAc5B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ArbiterError, parseErrorMessage } from './errors.js';
|
|
2
|
+
export class HttpClient {
|
|
3
|
+
bearerToken;
|
|
4
|
+
baseUrl;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.bearerToken = options.bearerToken;
|
|
7
|
+
this.baseUrl = options.baseUrl.replace(/\/$/, '');
|
|
8
|
+
}
|
|
9
|
+
async get(path) {
|
|
10
|
+
return await this.request('GET', path);
|
|
11
|
+
}
|
|
12
|
+
async post(path, body) {
|
|
13
|
+
return await this.request('POST', path, body);
|
|
14
|
+
}
|
|
15
|
+
async postWithToken(path, body, bearerToken) {
|
|
16
|
+
return await this.requestWithToken('POST', path, bearerToken, body);
|
|
17
|
+
}
|
|
18
|
+
async requestWithToken(method, path, bearerToken, body) {
|
|
19
|
+
const init = {
|
|
20
|
+
method,
|
|
21
|
+
headers: {
|
|
22
|
+
Authorization: `Bearer ${bearerToken}`,
|
|
23
|
+
'Content-Type': 'application/json',
|
|
24
|
+
Accept: 'application/json',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
if (body !== undefined) {
|
|
28
|
+
init.body = JSON.stringify(body);
|
|
29
|
+
}
|
|
30
|
+
const response = await fetch(`${this.baseUrl}${path}`, init);
|
|
31
|
+
return await this.parseResponse(response);
|
|
32
|
+
}
|
|
33
|
+
async request(method, path, body) {
|
|
34
|
+
return await this.requestWithToken(method, path, this.bearerToken, body);
|
|
35
|
+
}
|
|
36
|
+
async parseResponse(response) {
|
|
37
|
+
const text = await response.text();
|
|
38
|
+
const parsed = text.length > 0 ? JSON.parse(text) : null;
|
|
39
|
+
if (!response.ok) {
|
|
40
|
+
throw new ArbiterError(parseErrorMessage(parsed, `Arbiter API request failed with status ${response.status}`), response.status, parsed);
|
|
41
|
+
}
|
|
42
|
+
return parsed;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=httpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAO9D,MAAM,OAAO,UAAU;IACJ,WAAW,CAAS;IACpB,OAAO,CAAS;IAEjC,YAAmB,OAA0B;QAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa;QAC9C,OAAO,MAAM,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,IAAY,EACZ,IAAa,EACb,WAAmB;QAEnB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAI,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,MAAsB,EACtB,IAAY,EACZ,WAAmB,EACnB,IAAc;QAEd,MAAM,IAAI,GAAgB;YACxB,MAAM;YACN,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7D,OAAO,MAAM,IAAI,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAsB,EACtB,IAAY,EACZ,IAAc;QAEd,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,aAAa,CAAI,QAAkB;QAC/C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,YAAY,CACpB,iBAAiB,CAAC,MAAM,EAAE,0CAA0C,QAAQ,CAAC,MAAM,EAAE,CAAC,EACtF,QAAQ,CAAC,MAAM,EACf,MAAM,CACP,CAAC;QACJ,CAAC;QAED,OAAO,MAAW,CAAC;IACrB,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { Arbiter } from './arbiter.js';
|
|
2
|
+
export { ArbiterAdmin } from './arbiterAdmin.js';
|
|
3
|
+
export { ArbiterRuntime } from './runtime/ArbiterRuntime.js';
|
|
4
|
+
export { SDK_VERSION } from './version.js';
|
|
5
|
+
export { ArbiterError, ArbiterValidationError, PollApprovalTimeoutError } from './errors.js';
|
|
6
|
+
export { assertManifestWorkspace, validateManifestWorkspace, } from './manifestValidation.js';
|
|
7
|
+
export type { AdoptionSuggestion, ApprovalResult, ApprovalStatusFilter, ApprovalTerminalStatus, ArbiterAdminOptions, ArbiterOptions, ArbiterRuntimeOptions, ConnectInput, ConnectResult, ConsumeReleaseInput, ConsumeReleaseResult, CreateAgentCredentialInput, CreateAgentCredentialResult, Decision, DriftReason, DriftRecord, DriftResult, EvaluateInput, EvaluateResult, GrantPermissionInput, GrantPermissionResult, HeartbeatResult, HumanActionOptions, ListApprovalsOptions, ManifestAgent, ManifestOwner, ManifestPermission, ManifestPolicy, ManifestWorkspace, AgentStatus, GrantMutation, OwnerType, PermissionStatus, PolicyCondition, RiskTier, PlanChangeItem, PlanDeepAnalysisResult, PlanFastPathResult, PlanResourceSummary, PlanResult, PolicyDecision, PolicyOperator, PollApprovalOptions, ReceiptResult, RegisterAgentInput, RegisterAgentResult, RegisterPermissionInput, RegisterPermissionResult, RegisterPolicyInput, RegisterPolicyResult, RejectApprovalOptions, ResourceManagement, ResourceSource, ResourceSyncSummary, RuntimeConsumeReleaseInput, RuntimeEvaluateInput, StateSignatureResult, SyncManifestAgent, SyncManifestPolicy, SyncMode, SyncRegistryInput, SyncRegistryPayload, SyncRegistryResult, SyncSummary, } from './types.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Arbiter } from './arbiter.js';
|
|
2
|
+
export { ArbiterAdmin } from './arbiterAdmin.js';
|
|
3
|
+
export { ArbiterRuntime } from './runtime/ArbiterRuntime.js';
|
|
4
|
+
export { SDK_VERSION } from './version.js';
|
|
5
|
+
export { ArbiterError, ArbiterValidationError, PollApprovalTimeoutError } from './errors.js';
|
|
6
|
+
export { assertManifestWorkspace, validateManifestWorkspace, } from './manifestValidation.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HttpClient } from './httpClient.js';
|
|
2
|
+
import type { DriftResult, ManifestWorkspace, PlanResult, StateSignatureResult, SyncRegistryResult } from './types.js';
|
|
3
|
+
export declare class ManifestClient {
|
|
4
|
+
private readonly client;
|
|
5
|
+
constructor(client: HttpClient);
|
|
6
|
+
syncRegistry(manifest: ManifestWorkspace, mode?: 'apply' | 'plan'): Promise<SyncRegistryResult>;
|
|
7
|
+
plan(manifest: ManifestWorkspace): Promise<PlanResult>;
|
|
8
|
+
getDrift(): Promise<DriftResult>;
|
|
9
|
+
getStateSignature(): Promise<StateSignatureResult>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAMlD,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EAIpB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAElC,YAAY,CACvB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,GAAE,OAAO,GAAG,MAAgB,GAC/B,OAAO,CAAC,kBAAkB,CAAC;IAMjB,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAMtD,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAIhC,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAGhE"}
|
package/dist/manifest.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { assertManifestWorkspace, assertSyncManifestAgent, assertSyncManifestPolicy, } from './manifestValidation.js';
|
|
2
|
+
export class ManifestClient {
|
|
3
|
+
client;
|
|
4
|
+
constructor(client) {
|
|
5
|
+
this.client = client;
|
|
6
|
+
}
|
|
7
|
+
async syncRegistry(manifest, mode = 'apply') {
|
|
8
|
+
const validated = assertManifestWorkspace(manifest, 'syncRegistryManifest');
|
|
9
|
+
const payload = toSyncRegistryPayload(validated, mode);
|
|
10
|
+
return await this.client.post('/sdk/sync-registry', payload);
|
|
11
|
+
}
|
|
12
|
+
async plan(manifest) {
|
|
13
|
+
const validated = assertManifestWorkspace(manifest, 'plan');
|
|
14
|
+
const payload = toPlanPayload(validated);
|
|
15
|
+
return await this.client.post('/sdk/plan', payload);
|
|
16
|
+
}
|
|
17
|
+
async getDrift() {
|
|
18
|
+
return await this.client.get('/manifest/drift');
|
|
19
|
+
}
|
|
20
|
+
async getStateSignature() {
|
|
21
|
+
return await this.client.get('/state-signature');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function toSyncRegistryPayload(manifest, mode) {
|
|
25
|
+
return {
|
|
26
|
+
mode,
|
|
27
|
+
agents: assertSyncAgents(manifest),
|
|
28
|
+
permissions: manifest.permissions,
|
|
29
|
+
policies: assertSyncPolicies(manifest),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function toPlanPayload(manifest) {
|
|
33
|
+
return {
|
|
34
|
+
agents: assertSyncAgents(manifest),
|
|
35
|
+
permissions: manifest.permissions,
|
|
36
|
+
policies: assertSyncPolicies(manifest),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function assertSyncAgents(manifest) {
|
|
40
|
+
return manifest.agents.map((agent, index) => {
|
|
41
|
+
assertSyncManifestAgent(agent, index);
|
|
42
|
+
return { ...agent, externalId: agent.externalId };
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function assertSyncPolicies(manifest) {
|
|
46
|
+
return manifest.policies.map((policy, index) => {
|
|
47
|
+
assertSyncManifestPolicy(policy, index);
|
|
48
|
+
return { ...policy, id: policy.id };
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAYjC,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAE5C,KAAK,CAAC,YAAY,CACvB,QAA2B,EAC3B,OAAyB,OAAO;QAEhC,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAqB,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,QAA2B;QAC3C,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAa,WAAW,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuB,kBAAkB,CAAC,CAAC;IACzE,CAAC;CACF;AAED,SAAS,qBAAqB,CAC5B,QAA2B,EAC3B,IAAsB;IAEtB,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QAClC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAA2B;IAKhD,OAAO;QACL,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QAClC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAA2B;IACnD,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1C,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAW,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA2B;IACrD,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7C,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAG,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ManifestAgent, ManifestPermission, ManifestPolicy, ManifestWorkspace } from './types.js';
|
|
2
|
+
export declare function validateManifestAgent(agent: unknown, index: number): ManifestAgent;
|
|
3
|
+
export declare function validateManifestPermission(permission: unknown, index: number): ManifestPermission;
|
|
4
|
+
export declare function validateManifestPolicy(policy: unknown, index: number): ManifestPolicy;
|
|
5
|
+
export declare function validateManifestWorkspace(input: unknown): ManifestWorkspace;
|
|
6
|
+
export declare function assertManifestWorkspace(input: unknown, methodName: string): ManifestWorkspace;
|
|
7
|
+
export declare function assertSyncManifestAgent(agent: ManifestAgent, index: number): void;
|
|
8
|
+
export declare function assertSyncManifestPolicy(policy: ManifestPolicy, index: number): void;
|
|
9
|
+
//# sourceMappingURL=manifestValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifestValidation.d.ts","sourceRoot":"","sources":["../src/manifestValidation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EAGlB,MAAM,YAAY,CAAC;AA2PpB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAgElF;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,OAAO,EACnB,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAsEpB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAiFrF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CA0C3E;AA4DD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,GACjB,iBAAiB,CAcnB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQjF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQpF"}
|