@pantheon-systems/css-client 0.4.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/dist/auth.d.ts +54 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +72 -0
- package/dist/auth.js.map +1 -0
- package/dist/broker.d.ts +41 -0
- package/dist/broker.d.ts.map +1 -0
- package/dist/broker.js +187 -0
- package/dist/broker.js.map +1 -0
- package/dist/client.d.ts +138 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +130 -0
- package/dist/client.js.map +1 -0
- package/dist/content.d.ts +45 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +65 -0
- package/dist/content.js.map +1 -0
- package/dist/endpoints/agent-edit.d.ts +79 -0
- package/dist/endpoints/agent-edit.d.ts.map +1 -0
- package/dist/endpoints/agent-edit.js +125 -0
- package/dist/endpoints/agent-edit.js.map +1 -0
- package/dist/endpoints/agent-registry.d.ts +59 -0
- package/dist/endpoints/agent-registry.d.ts.map +1 -0
- package/dist/endpoints/agent-registry.js +96 -0
- package/dist/endpoints/agent-registry.js.map +1 -0
- package/dist/endpoints/base.d.ts +49 -0
- package/dist/endpoints/base.d.ts.map +1 -0
- package/dist/endpoints/base.js +150 -0
- package/dist/endpoints/base.js.map +1 -0
- package/dist/endpoints/branches.d.ts +32 -0
- package/dist/endpoints/branches.d.ts.map +1 -0
- package/dist/endpoints/branches.js +69 -0
- package/dist/endpoints/branches.js.map +1 -0
- package/dist/endpoints/checkpoints.d.ts +36 -0
- package/dist/endpoints/checkpoints.d.ts.map +1 -0
- package/dist/endpoints/checkpoints.js +76 -0
- package/dist/endpoints/checkpoints.js.map +1 -0
- package/dist/endpoints/documents.d.ts +46 -0
- package/dist/endpoints/documents.d.ts.map +1 -0
- package/dist/endpoints/documents.js +101 -0
- package/dist/endpoints/documents.js.map +1 -0
- package/dist/endpoints/index.d.ts +15 -0
- package/dist/endpoints/index.d.ts.map +1 -0
- package/dist/endpoints/index.js +16 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/endpoints/merge.d.ts +51 -0
- package/dist/endpoints/merge.d.ts.map +1 -0
- package/dist/endpoints/merge.js +104 -0
- package/dist/endpoints/merge.js.map +1 -0
- package/dist/endpoints/presence.d.ts +55 -0
- package/dist/endpoints/presence.d.ts.map +1 -0
- package/dist/endpoints/presence.js +72 -0
- package/dist/endpoints/presence.js.map +1 -0
- package/dist/endpoints/sites.d.ts +20 -0
- package/dist/endpoints/sites.d.ts.map +1 -0
- package/dist/endpoints/sites.js +38 -0
- package/dist/endpoints/sites.js.map +1 -0
- package/dist/endpoints/versions.d.ts +37 -0
- package/dist/endpoints/versions.d.ts.map +1 -0
- package/dist/endpoints/versions.js +64 -0
- package/dist/endpoints/versions.js.map +1 -0
- package/dist/errors.d.ts +61 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +87 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/jwt-utils.d.ts +13 -0
- package/dist/jwt-utils.d.ts.map +1 -0
- package/dist/jwt-utils.js +45 -0
- package/dist/jwt-utils.js.map +1 -0
- package/dist/oauth.d.ts +64 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +62 -0
- package/dist/oauth.js.map +1 -0
- package/dist/realtime.d.ts +314 -0
- package/dist/realtime.d.ts.map +1 -0
- package/dist/realtime.js +615 -0
- package/dist/realtime.js.map +1 -0
- package/dist/types.d.ts +703 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +17 -0
- package/dist/utils.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P1 Content Client
|
|
3
|
+
*
|
|
4
|
+
* Read-only client for fetching published content from the P1 content delivery API.
|
|
5
|
+
* Designed for server-side use (e.g., Next.js SSR/SSG) without pulling in
|
|
6
|
+
* browser dependencies like partysocket.
|
|
7
|
+
*/
|
|
8
|
+
export interface P1ContentClientConfig {
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
apiToken: string;
|
|
11
|
+
siteId: string;
|
|
12
|
+
branchId?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface PageContent {
|
|
15
|
+
documentId: string;
|
|
16
|
+
path: string;
|
|
17
|
+
data: Record<string, unknown>;
|
|
18
|
+
branchId: string;
|
|
19
|
+
branchName: string;
|
|
20
|
+
isMainBranch: boolean;
|
|
21
|
+
versionNumber: number;
|
|
22
|
+
versionCreatedAt: string;
|
|
23
|
+
etag: string;
|
|
24
|
+
}
|
|
25
|
+
export interface PageListEntry {
|
|
26
|
+
path: string;
|
|
27
|
+
documentId: string;
|
|
28
|
+
lastModifiedAt: string;
|
|
29
|
+
}
|
|
30
|
+
export interface PageListResult {
|
|
31
|
+
pages: PageListEntry[];
|
|
32
|
+
branchId: string;
|
|
33
|
+
branchName: string;
|
|
34
|
+
isMainBranch: boolean;
|
|
35
|
+
}
|
|
36
|
+
export declare class P1ContentClient {
|
|
37
|
+
private baseUrl;
|
|
38
|
+
private apiToken;
|
|
39
|
+
private siteId;
|
|
40
|
+
private branchId?;
|
|
41
|
+
constructor(config: P1ContentClientConfig);
|
|
42
|
+
getPage(documentPath: string): Promise<PageContent | null>;
|
|
43
|
+
getPagePaths(): Promise<PageListResult>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAcD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,qBAAqB;IAOnC,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAsB1D,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;CAiB9C"}
|
package/dist/content.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P1 Content Client
|
|
3
|
+
*
|
|
4
|
+
* Read-only client for fetching published content from the P1 content delivery API.
|
|
5
|
+
* Designed for server-side use (e.g., Next.js SSR/SSG) without pulling in
|
|
6
|
+
* browser dependencies like partysocket.
|
|
7
|
+
*/
|
|
8
|
+
import { P1ApiError } from './errors.js';
|
|
9
|
+
function trimTrailingSlashes(value) {
|
|
10
|
+
let end = value.length;
|
|
11
|
+
while (end > 0 && value[end - 1] === '/')
|
|
12
|
+
end--;
|
|
13
|
+
return value.slice(0, end);
|
|
14
|
+
}
|
|
15
|
+
function trimLeadingSlashes(value) {
|
|
16
|
+
let start = 0;
|
|
17
|
+
while (start < value.length && value[start] === '/')
|
|
18
|
+
start++;
|
|
19
|
+
return value.slice(start);
|
|
20
|
+
}
|
|
21
|
+
export class P1ContentClient {
|
|
22
|
+
baseUrl;
|
|
23
|
+
apiToken;
|
|
24
|
+
siteId;
|
|
25
|
+
branchId;
|
|
26
|
+
constructor(config) {
|
|
27
|
+
this.baseUrl = trimTrailingSlashes(config.baseUrl);
|
|
28
|
+
this.apiToken = config.apiToken;
|
|
29
|
+
this.siteId = config.siteId;
|
|
30
|
+
this.branchId = config.branchId;
|
|
31
|
+
}
|
|
32
|
+
async getPage(documentPath) {
|
|
33
|
+
const cleanPath = trimLeadingSlashes(documentPath);
|
|
34
|
+
let url = `${this.baseUrl}/api/sites/${this.siteId}/content/${cleanPath}`;
|
|
35
|
+
if (this.branchId) {
|
|
36
|
+
url += `?branch=${this.branchId}`;
|
|
37
|
+
}
|
|
38
|
+
const response = await fetch(url, {
|
|
39
|
+
headers: { 'X-API-Key': this.apiToken },
|
|
40
|
+
});
|
|
41
|
+
if (response.status === 404) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
const body = await response.json().catch(() => ({ error: 'Unknown error' }));
|
|
46
|
+
throw new P1ApiError(body.error || `HTTP ${response.status}`, response.status);
|
|
47
|
+
}
|
|
48
|
+
return response.json();
|
|
49
|
+
}
|
|
50
|
+
async getPagePaths() {
|
|
51
|
+
let url = `${this.baseUrl}/api/sites/${this.siteId}/content-pages`;
|
|
52
|
+
if (this.branchId) {
|
|
53
|
+
url += `?branch=${this.branchId}`;
|
|
54
|
+
}
|
|
55
|
+
const response = await fetch(url, {
|
|
56
|
+
headers: { 'X-API-Key': this.apiToken },
|
|
57
|
+
});
|
|
58
|
+
if (!response.ok) {
|
|
59
|
+
const body = await response.json().catch(() => ({ error: 'Unknown error' }));
|
|
60
|
+
throw new P1ApiError(body.error || `HTTP ${response.status}`, response.status);
|
|
61
|
+
}
|
|
62
|
+
return response.json();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Edit Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API endpoints for the agent edit workflow (politeness protocol).
|
|
5
|
+
*/
|
|
6
|
+
import type { BaseEndpoint } from './base.js';
|
|
7
|
+
import type { AgentEditContext, AgentEditPermission, AgentEditSession, AgentEditCompleteResult, AgentEditAbortResult, AgentStopResult } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Agent edit endpoint for managing agent edit sessions.
|
|
10
|
+
*/
|
|
11
|
+
export declare class AgentEditEndpoint {
|
|
12
|
+
private readonly base;
|
|
13
|
+
constructor(base: BaseEndpoint);
|
|
14
|
+
/**
|
|
15
|
+
* Encode document path for URL.
|
|
16
|
+
* Document paths start with / which needs proper encoding.
|
|
17
|
+
*/
|
|
18
|
+
private encodeDocumentPath;
|
|
19
|
+
/**
|
|
20
|
+
* Check if an agent can edit a document.
|
|
21
|
+
*
|
|
22
|
+
* Returns whether the agent can proceed and, if not, the reason why.
|
|
23
|
+
*
|
|
24
|
+
* @param siteId - Site ID
|
|
25
|
+
* @param branchId - Branch ID
|
|
26
|
+
* @param documentPath - Document path (e.g., "/home")
|
|
27
|
+
* @param context - Agent edit context (agentId, trigger, intent, targetRegions)
|
|
28
|
+
*/
|
|
29
|
+
canEdit(siteId: string, branchId: string, documentPath: string, context: AgentEditContext): Promise<AgentEditPermission>;
|
|
30
|
+
/**
|
|
31
|
+
* Start an agent edit session.
|
|
32
|
+
*
|
|
33
|
+
* Reserves the edit session, sets focus regions, and optionally creates
|
|
34
|
+
* a checkpoint for autonomous edits.
|
|
35
|
+
*
|
|
36
|
+
* @param siteId - Site ID
|
|
37
|
+
* @param branchId - Branch ID
|
|
38
|
+
* @param documentPath - Document path
|
|
39
|
+
* @param context - Agent edit context
|
|
40
|
+
*/
|
|
41
|
+
startEdit(siteId: string, branchId: string, documentPath: string, context: AgentEditContext): Promise<AgentEditSession>;
|
|
42
|
+
/**
|
|
43
|
+
* Complete an agent edit session.
|
|
44
|
+
*
|
|
45
|
+
* Clears focus regions and updates checkpoint status.
|
|
46
|
+
*
|
|
47
|
+
* @param siteId - Site ID
|
|
48
|
+
* @param branchId - Branch ID
|
|
49
|
+
* @param documentPath - Document path
|
|
50
|
+
* @param agentId - Agent ID
|
|
51
|
+
*/
|
|
52
|
+
completeEdit(siteId: string, branchId: string, documentPath: string, agentId: string): Promise<AgentEditCompleteResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Abort an agent edit session.
|
|
55
|
+
*
|
|
56
|
+
* Rolls back to the checkpoint created at edit-start.
|
|
57
|
+
*
|
|
58
|
+
* @param siteId - Site ID
|
|
59
|
+
* @param branchId - Branch ID
|
|
60
|
+
* @param documentPath - Document path
|
|
61
|
+
* @param agentId - Agent ID
|
|
62
|
+
* @param checkpointId - Checkpoint to rollback to
|
|
63
|
+
*/
|
|
64
|
+
abortEdit(siteId: string, branchId: string, documentPath: string, agentId: string, checkpointId: string): Promise<AgentEditAbortResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Stop an agent's edit session (human-initiated).
|
|
67
|
+
*
|
|
68
|
+
* Server looks up the agent's active session and rolls back
|
|
69
|
+
* to the checkpoint created at edit-start. This allows humans
|
|
70
|
+
* to stop an agent without knowing the session/checkpoint IDs.
|
|
71
|
+
*
|
|
72
|
+
* @param siteId - Site ID
|
|
73
|
+
* @param branchId - Branch ID
|
|
74
|
+
* @param documentPath - Document path
|
|
75
|
+
* @param agentId - Agent ID to stop
|
|
76
|
+
*/
|
|
77
|
+
stopAgent(siteId: string, branchId: string, documentPath: string, agentId: string): Promise<AgentStopResult>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=agent-edit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-edit.d.ts","sourceRoot":"","sources":["../../src/endpoints/agent-edit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;;;;;;OASG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC;IAmB/B;;;;;;;;;;OAUG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,CAAC;IAmB5B;;;;;;;;;OASG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,CAAC;IAYnC;;;;;;;;;;OAUG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAYhC;;;;;;;;;;;OAWG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC;CAW5B"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Edit Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API endpoints for the agent edit workflow (politeness protocol).
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Agent edit endpoint for managing agent edit sessions.
|
|
8
|
+
*/
|
|
9
|
+
export class AgentEditEndpoint {
|
|
10
|
+
base;
|
|
11
|
+
constructor(base) {
|
|
12
|
+
this.base = base;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Encode document path for URL.
|
|
16
|
+
* Document paths start with / which needs proper encoding.
|
|
17
|
+
*/
|
|
18
|
+
encodeDocumentPath(documentPath) {
|
|
19
|
+
return encodeURIComponent(documentPath);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check if an agent can edit a document.
|
|
23
|
+
*
|
|
24
|
+
* Returns whether the agent can proceed and, if not, the reason why.
|
|
25
|
+
*
|
|
26
|
+
* @param siteId - Site ID
|
|
27
|
+
* @param branchId - Branch ID
|
|
28
|
+
* @param documentPath - Document path (e.g., "/home")
|
|
29
|
+
* @param context - Agent edit context (agentId, trigger, intent, targetRegions)
|
|
30
|
+
*/
|
|
31
|
+
async canEdit(siteId, branchId, documentPath, context) {
|
|
32
|
+
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
33
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/can-agent-edit`, {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
body: JSON.stringify({
|
|
36
|
+
agentId: context.agentId,
|
|
37
|
+
trigger: context.trigger,
|
|
38
|
+
requestedById: context.requestedById,
|
|
39
|
+
intent: context.intent,
|
|
40
|
+
targetRegions: context.targetRegions,
|
|
41
|
+
operationType: context.operationType,
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Start an agent edit session.
|
|
47
|
+
*
|
|
48
|
+
* Reserves the edit session, sets focus regions, and optionally creates
|
|
49
|
+
* a checkpoint for autonomous edits.
|
|
50
|
+
*
|
|
51
|
+
* @param siteId - Site ID
|
|
52
|
+
* @param branchId - Branch ID
|
|
53
|
+
* @param documentPath - Document path
|
|
54
|
+
* @param context - Agent edit context
|
|
55
|
+
*/
|
|
56
|
+
async startEdit(siteId, branchId, documentPath, context) {
|
|
57
|
+
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
58
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/agent-edit-start`, {
|
|
59
|
+
method: 'POST',
|
|
60
|
+
body: JSON.stringify({
|
|
61
|
+
agentId: context.agentId,
|
|
62
|
+
trigger: context.trigger,
|
|
63
|
+
requestedById: context.requestedById,
|
|
64
|
+
intent: context.intent,
|
|
65
|
+
targetRegions: context.targetRegions,
|
|
66
|
+
operationType: context.operationType,
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Complete an agent edit session.
|
|
72
|
+
*
|
|
73
|
+
* Clears focus regions and updates checkpoint status.
|
|
74
|
+
*
|
|
75
|
+
* @param siteId - Site ID
|
|
76
|
+
* @param branchId - Branch ID
|
|
77
|
+
* @param documentPath - Document path
|
|
78
|
+
* @param agentId - Agent ID
|
|
79
|
+
*/
|
|
80
|
+
async completeEdit(siteId, branchId, documentPath, agentId) {
|
|
81
|
+
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
82
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/agent-edit-complete`, {
|
|
83
|
+
method: 'POST',
|
|
84
|
+
body: JSON.stringify({ agentId }),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Abort an agent edit session.
|
|
89
|
+
*
|
|
90
|
+
* Rolls back to the checkpoint created at edit-start.
|
|
91
|
+
*
|
|
92
|
+
* @param siteId - Site ID
|
|
93
|
+
* @param branchId - Branch ID
|
|
94
|
+
* @param documentPath - Document path
|
|
95
|
+
* @param agentId - Agent ID
|
|
96
|
+
* @param checkpointId - Checkpoint to rollback to
|
|
97
|
+
*/
|
|
98
|
+
async abortEdit(siteId, branchId, documentPath, agentId, checkpointId) {
|
|
99
|
+
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
100
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/agent-edit-abort`, {
|
|
101
|
+
method: 'POST',
|
|
102
|
+
body: JSON.stringify({ agentId, checkpointId }),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Stop an agent's edit session (human-initiated).
|
|
107
|
+
*
|
|
108
|
+
* Server looks up the agent's active session and rolls back
|
|
109
|
+
* to the checkpoint created at edit-start. This allows humans
|
|
110
|
+
* to stop an agent without knowing the session/checkpoint IDs.
|
|
111
|
+
*
|
|
112
|
+
* @param siteId - Site ID
|
|
113
|
+
* @param branchId - Branch ID
|
|
114
|
+
* @param documentPath - Document path
|
|
115
|
+
* @param agentId - Agent ID to stop
|
|
116
|
+
*/
|
|
117
|
+
async stopAgent(siteId, branchId, documentPath, agentId) {
|
|
118
|
+
const encodedPath = this.encodeDocumentPath(documentPath);
|
|
119
|
+
return this.base.request(`/api/sites/${siteId}/branches/${branchId}/documents/${encodedPath}/agent-stop`, {
|
|
120
|
+
method: 'POST',
|
|
121
|
+
body: JSON.stringify({ agentId }),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=agent-edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-edit.js","sourceRoot":"","sources":["../../src/endpoints/agent-edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Registry Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API endpoints for managing registered agents in an organization.
|
|
5
|
+
*/
|
|
6
|
+
import type { BaseEndpoint } from './base.js';
|
|
7
|
+
import type { RegisteredAgent, CreateAgentParams, UpdateAgentParams, ListAgentsOptions, AgentStatus } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Agent registry endpoint for managing organization agents.
|
|
10
|
+
*/
|
|
11
|
+
export declare class AgentRegistryEndpoint {
|
|
12
|
+
private readonly base;
|
|
13
|
+
constructor(base: BaseEndpoint);
|
|
14
|
+
/**
|
|
15
|
+
* List all agents in an organization.
|
|
16
|
+
*
|
|
17
|
+
* @param orgId - Organization ID
|
|
18
|
+
* @param options - Optional filters (status)
|
|
19
|
+
*/
|
|
20
|
+
list(orgId: string, options?: ListAgentsOptions): Promise<RegisteredAgent[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Get a specific agent by ID.
|
|
23
|
+
*
|
|
24
|
+
* @param orgId - Organization ID
|
|
25
|
+
* @param agentId - Agent ID
|
|
26
|
+
*/
|
|
27
|
+
get(orgId: string, agentId: string): Promise<RegisteredAgent>;
|
|
28
|
+
/**
|
|
29
|
+
* Create a new agent in an organization.
|
|
30
|
+
*
|
|
31
|
+
* @param orgId - Organization ID
|
|
32
|
+
* @param params - Agent creation parameters
|
|
33
|
+
*/
|
|
34
|
+
create(orgId: string, params: CreateAgentParams): Promise<RegisteredAgent>;
|
|
35
|
+
/**
|
|
36
|
+
* Update an agent's properties.
|
|
37
|
+
*
|
|
38
|
+
* @param orgId - Organization ID
|
|
39
|
+
* @param agentId - Agent ID
|
|
40
|
+
* @param params - Properties to update
|
|
41
|
+
*/
|
|
42
|
+
update(orgId: string, agentId: string, params: UpdateAgentParams): Promise<RegisteredAgent>;
|
|
43
|
+
/**
|
|
44
|
+
* Update an agent's status.
|
|
45
|
+
*
|
|
46
|
+
* @param orgId - Organization ID
|
|
47
|
+
* @param agentId - Agent ID
|
|
48
|
+
* @param status - New status (active, suspended, disabled)
|
|
49
|
+
*/
|
|
50
|
+
updateStatus(orgId: string, agentId: string, status: AgentStatus): Promise<RegisteredAgent>;
|
|
51
|
+
/**
|
|
52
|
+
* Delete an agent.
|
|
53
|
+
*
|
|
54
|
+
* @param orgId - Organization ID
|
|
55
|
+
* @param agentId - Agent ID
|
|
56
|
+
*/
|
|
57
|
+
delete(orgId: string, agentId: string): Promise<void>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=agent-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-registry.d.ts","sourceRoot":"","sources":["../../src/endpoints/agent-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C;;;;;OAKG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAgBlF;;;;;OAKG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAOnE;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAYhF;;;;;;OAMG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,eAAe,CAAC;IAU3B;;;;;;OAMG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC;IAU3B;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK5D"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Registry Endpoint
|
|
3
|
+
*
|
|
4
|
+
* API endpoints for managing registered agents in an organization.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Agent registry endpoint for managing organization agents.
|
|
8
|
+
*/
|
|
9
|
+
export class AgentRegistryEndpoint {
|
|
10
|
+
base;
|
|
11
|
+
constructor(base) {
|
|
12
|
+
this.base = base;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* List all agents in an organization.
|
|
16
|
+
*
|
|
17
|
+
* @param orgId - Organization ID
|
|
18
|
+
* @param options - Optional filters (status)
|
|
19
|
+
*/
|
|
20
|
+
async list(orgId, options) {
|
|
21
|
+
let path = `/api/organizations/${orgId}/agents`;
|
|
22
|
+
if (options?.status) {
|
|
23
|
+
const params = new URLSearchParams();
|
|
24
|
+
params.set('status', options.status);
|
|
25
|
+
path += `?${params.toString()}`;
|
|
26
|
+
}
|
|
27
|
+
const response = await this.base.request(path, {
|
|
28
|
+
method: 'GET',
|
|
29
|
+
});
|
|
30
|
+
return response.agents;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get a specific agent by ID.
|
|
34
|
+
*
|
|
35
|
+
* @param orgId - Organization ID
|
|
36
|
+
* @param agentId - Agent ID
|
|
37
|
+
*/
|
|
38
|
+
async get(orgId, agentId) {
|
|
39
|
+
return this.base.request(`/api/organizations/${orgId}/agents/${agentId}`, { method: 'GET' });
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create a new agent in an organization.
|
|
43
|
+
*
|
|
44
|
+
* @param orgId - Organization ID
|
|
45
|
+
* @param params - Agent creation parameters
|
|
46
|
+
*/
|
|
47
|
+
async create(orgId, params) {
|
|
48
|
+
return this.base.request(`/api/organizations/${orgId}/agents`, {
|
|
49
|
+
method: 'POST',
|
|
50
|
+
body: JSON.stringify({
|
|
51
|
+
name: params.name,
|
|
52
|
+
description: params.description,
|
|
53
|
+
capabilities: params.capabilities,
|
|
54
|
+
settings: params.settings,
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Update an agent's properties.
|
|
60
|
+
*
|
|
61
|
+
* @param orgId - Organization ID
|
|
62
|
+
* @param agentId - Agent ID
|
|
63
|
+
* @param params - Properties to update
|
|
64
|
+
*/
|
|
65
|
+
async update(orgId, agentId, params) {
|
|
66
|
+
return this.base.request(`/api/organizations/${orgId}/agents/${agentId}`, {
|
|
67
|
+
method: 'PATCH',
|
|
68
|
+
body: JSON.stringify(params),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Update an agent's status.
|
|
73
|
+
*
|
|
74
|
+
* @param orgId - Organization ID
|
|
75
|
+
* @param agentId - Agent ID
|
|
76
|
+
* @param status - New status (active, suspended, disabled)
|
|
77
|
+
*/
|
|
78
|
+
async updateStatus(orgId, agentId, status) {
|
|
79
|
+
return this.base.request(`/api/organizations/${orgId}/agents/${agentId}/status`, {
|
|
80
|
+
method: 'PUT',
|
|
81
|
+
body: JSON.stringify({ status }),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Delete an agent.
|
|
86
|
+
*
|
|
87
|
+
* @param orgId - Organization ID
|
|
88
|
+
* @param agentId - Agent ID
|
|
89
|
+
*/
|
|
90
|
+
async delete(orgId, agentId) {
|
|
91
|
+
await this.base.request(`/api/organizations/${orgId}/agents/${agentId}`, {
|
|
92
|
+
method: 'DELETE',
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=agent-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../src/endpoints/agent-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,OAA2B;QACnD,IAAI,IAAI,GAAG,sBAAsB,KAAK,SAAS,CAAC;QAEhD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC,IAAI,EAAE;YAC5E,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,OAAe;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,sBAAsB,KAAK,WAAW,OAAO,EAAE,EAC/C,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,MAAyB;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAkB,sBAAsB,KAAK,SAAS,EAAE;YAC9E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,OAAe,EACf,MAAyB;QAEzB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,sBAAsB,KAAK,WAAW,OAAO,EAAE,EAC/C;YACE,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,OAAe,EACf,MAAmB;QAEnB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,sBAAsB,KAAK,WAAW,OAAO,SAAS,EACtD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAe;QACzC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,sBAAsB,KAAK,WAAW,OAAO,EAAE,EAAE;YAC7E,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Endpoint
|
|
3
|
+
*
|
|
4
|
+
* Shared HTTP request logic for all endpoints.
|
|
5
|
+
*/
|
|
6
|
+
import type { AuthProvider } from '../auth.js';
|
|
7
|
+
import type { Principal } from '../types.js';
|
|
8
|
+
export interface BaseEndpointConfig {
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
authProvider?: AuthProvider;
|
|
11
|
+
principal?: Principal;
|
|
12
|
+
/**
|
|
13
|
+
* Session ID for agent authorization.
|
|
14
|
+
* When set, the X-Agent-Session-Id header will be sent with all requests.
|
|
15
|
+
*/
|
|
16
|
+
sessionId?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Optional token refresher for dynamic token management.
|
|
19
|
+
* Called when a 401 Unauthorized response is received.
|
|
20
|
+
* Returns a fresh token string, or null if the session cannot be refreshed.
|
|
21
|
+
*/
|
|
22
|
+
tokenRefresher?: () => Promise<string | null>;
|
|
23
|
+
}
|
|
24
|
+
export interface RequestOptions {
|
|
25
|
+
method: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE';
|
|
26
|
+
body?: string;
|
|
27
|
+
headers?: Record<string, string>;
|
|
28
|
+
}
|
|
29
|
+
export declare class BaseEndpoint {
|
|
30
|
+
private readonly baseUrl;
|
|
31
|
+
private readonly authProvider?;
|
|
32
|
+
private readonly principal?;
|
|
33
|
+
private readonly sessionId?;
|
|
34
|
+
private readonly tokenRefresher?;
|
|
35
|
+
constructor(config: BaseEndpointConfig);
|
|
36
|
+
/**
|
|
37
|
+
* Make an authenticated HTTP request to the P1 API.
|
|
38
|
+
*/
|
|
39
|
+
request<T>(path: string, options: RequestOptions): Promise<T>;
|
|
40
|
+
/**
|
|
41
|
+
* Create a new BaseEndpoint with updated principal.
|
|
42
|
+
*/
|
|
43
|
+
withPrincipal(principal: Principal): BaseEndpoint;
|
|
44
|
+
/**
|
|
45
|
+
* Create a new BaseEndpoint with session ID for agent authorization.
|
|
46
|
+
*/
|
|
47
|
+
withSessionId(sessionId: string): BaseEndpoint;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/endpoints/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAW7C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAOD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA+B;gBAEnD,MAAM,EAAE,kBAAkB;IAStC;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAkHnE;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY;IAUjD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;CAS/C"}
|