@forumone/throughline-publishing 0.2.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +154 -1
- package/dist/admin/PublishButton.d.ts +24 -0
- package/dist/admin/PublishButton.d.ts.map +1 -0
- package/dist/admin/PublishButton.js +128 -0
- package/dist/admin/PublishButton.js.map +1 -0
- package/dist/admin/UnpublishButton.d.ts +15 -0
- package/dist/admin/UnpublishButton.d.ts.map +1 -0
- package/dist/admin/UnpublishButton.js +90 -0
- package/dist/admin/UnpublishButton.js.map +1 -0
- package/dist/admin/publishing-client.d.ts +55 -0
- package/dist/admin/publishing-client.d.ts.map +1 -0
- package/dist/admin/publishing-client.js +64 -0
- package/dist/admin/publishing-client.js.map +1 -0
- package/dist/checks/alt-text.d.ts +8 -2
- package/dist/checks/alt-text.d.ts.map +1 -1
- package/dist/checks/alt-text.js +13 -3
- package/dist/checks/alt-text.js.map +1 -1
- package/dist/endpoints/admin.d.ts +19 -0
- package/dist/endpoints/admin.d.ts.map +1 -0
- package/dist/endpoints/admin.js +93 -0
- package/dist/endpoints/admin.js.map +1 -0
- package/dist/events.d.ts +16 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +30 -0
- package/dist/events.js.map +1 -0
- package/dist/exports/client.d.ts +14 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +11 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/hooks/block-status-writes.d.ts +4 -0
- package/dist/hooks/block-status-writes.d.ts.map +1 -1
- package/dist/hooks/block-status-writes.js +6 -1
- package/dist/hooks/block-status-writes.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +19 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js.map +1 -1
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +9 -1
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/steps/accessibility.d.ts +4 -0
- package/dist/pipeline/steps/accessibility.d.ts.map +1 -1
- package/dist/pipeline/steps/accessibility.js +6 -1
- package/dist/pipeline/steps/accessibility.js.map +1 -1
- package/dist/pipeline/steps/execute.d.ts +9 -0
- package/dist/pipeline/steps/execute.d.ts.map +1 -1
- package/dist/pipeline/steps/execute.js +17 -2
- package/dist/pipeline/steps/execute.js.map +1 -1
- package/dist/pipeline/types.d.ts +15 -1
- package/dist/pipeline/types.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +62 -5
- package/dist/plugin.js.map +1 -1
- package/dist/service.d.ts +116 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +245 -0
- package/dist/service.js.map +1 -0
- package/dist/tools/get-publish-status.d.ts +4 -1
- package/dist/tools/get-publish-status.d.ts.map +1 -1
- package/dist/tools/get-publish-status.js +16 -30
- package/dist/tools/get-publish-status.js.map +1 -1
- package/dist/tools/publish.d.ts +4 -1
- package/dist/tools/publish.d.ts.map +1 -1
- package/dist/tools/publish.js +8 -57
- package/dist/tools/publish.js.map +1 -1
- package/dist/tools/rollback.d.ts.map +1 -1
- package/dist/tools/rollback.js +5 -1
- package/dist/tools/rollback.js.map +1 -1
- package/dist/tools/schedule-publish.d.ts.map +1 -1
- package/dist/tools/schedule-publish.js +9 -2
- package/dist/tools/schedule-publish.js.map +1 -1
- package/dist/tools/unpublish.d.ts +4 -1
- package/dist/tools/unpublish.d.ts.map +1 -1
- package/dist/tools/unpublish.js +8 -47
- package/dist/tools/unpublish.js.map +1 -1
- package/package.json +19 -2
package/dist/tools/publish.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { Payload } from 'payload';
|
|
2
2
|
import { type AuditWriter } from '@forumone/throughline-core';
|
|
3
3
|
import type { McpToolDefinition } from '@forumone/throughline-plugin-contract';
|
|
4
|
-
import {
|
|
4
|
+
import type { PublishingPluginOptions } from '../options.js';
|
|
5
|
+
import { type PublishingService } from '../service.js';
|
|
5
6
|
export interface PublishToolDeps {
|
|
6
7
|
payload: Payload;
|
|
7
8
|
options: PublishingPluginOptions;
|
|
8
9
|
auditWriter: AuditWriter;
|
|
10
|
+
/** Injected by the plugin so every channel shares one service instance. */
|
|
11
|
+
service?: PublishingService;
|
|
9
12
|
}
|
|
10
13
|
export declare function createPublishTool(deps: PublishToolDeps): McpToolDefinition;
|
|
11
14
|
//# sourceMappingURL=publish.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/tools/publish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/tools/publish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE/E,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,uBAAuB,CAAA;IAChC,WAAW,EAAE,WAAW,CAAA;IACxB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,iBAAiB,CAAA;CAC5B;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAqB1E"}
|
package/dist/tools/publish.js
CHANGED
|
@@ -1,71 +1,22 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { withMeta } from '@forumone/throughline-core';
|
|
3
|
-
import {
|
|
4
|
-
import { runPublishPipeline } from '../pipeline/index.js';
|
|
3
|
+
import { createPublishingService } from '../service.js';
|
|
5
4
|
export function createPublishTool(deps) {
|
|
6
5
|
const inputSchema = withMeta({
|
|
7
6
|
collection: z.string().describe('The collection slug (e.g. "pages")'),
|
|
8
7
|
id: z.string().describe('The document ID'),
|
|
9
8
|
});
|
|
9
|
+
const service = deps.service ?? createPublishingService(deps);
|
|
10
10
|
return {
|
|
11
11
|
name: 'publish',
|
|
12
12
|
description: "Publishes a draft document. Runs the full publish pipeline: composition, accessibility, required-field, embargo, and approval checks. Returns success with the publish timestamp, or a specific failedAt step with reason / suggestion when something blocks the publish.",
|
|
13
13
|
inputSchema,
|
|
14
|
-
handler: async (input, ctx) => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}));
|
|
21
|
-
const result = await runPublishPipeline({
|
|
22
|
-
payload: deps.payload,
|
|
23
|
-
inngest: deps.options.inngest,
|
|
24
|
-
options: deps.options,
|
|
25
|
-
collection,
|
|
26
|
-
document,
|
|
27
|
-
documentId: input.id,
|
|
28
|
-
actor: { user: ctx.user, apiKeyName: ctx.apiKeyName },
|
|
29
|
-
...(input._meta ? { meta: input._meta } : {}),
|
|
30
|
-
});
|
|
31
|
-
await deps.auditWriter({
|
|
32
|
-
actor: {
|
|
33
|
-
type: ctx.user ? 'user' : 'system',
|
|
34
|
-
userId: ctx.user?.id,
|
|
35
|
-
userName: ctx.user?.name,
|
|
36
|
-
apiKeyName: ctx.apiKeyName,
|
|
37
|
-
},
|
|
38
|
-
action: 'publishing.publish',
|
|
39
|
-
mcpServer: 'publishing',
|
|
40
|
-
mcpTool: 'publish',
|
|
41
|
-
targetCollection: input.collection,
|
|
42
|
-
targetId: input.id,
|
|
43
|
-
targetTitle: stringField(document, 'title') ?? input.id,
|
|
44
|
-
prompt: input._meta?.userPrompt,
|
|
45
|
-
reasoning: input._meta?.reasoning,
|
|
46
|
-
changesSummary: input._meta?.changesSummary,
|
|
47
|
-
success: result.success,
|
|
48
|
-
errorMessage: result.success ? undefined : result.reason,
|
|
49
|
-
});
|
|
50
|
-
if (result.success) {
|
|
51
|
-
return {
|
|
52
|
-
published: true,
|
|
53
|
-
publishedAt: result.publishedAt,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
published: false,
|
|
58
|
-
failedAt: result.failedAt,
|
|
59
|
-
reason: result.reason,
|
|
60
|
-
code: result.code,
|
|
61
|
-
issues: result.issues,
|
|
62
|
-
suggestion: result.suggestion,
|
|
63
|
-
};
|
|
64
|
-
},
|
|
14
|
+
handler: async (input, ctx) => service.publish({
|
|
15
|
+
collection: input.collection,
|
|
16
|
+
id: input.id,
|
|
17
|
+
actor: { user: ctx.user, apiKeyName: ctx.apiKeyName, channel: 'mcp' },
|
|
18
|
+
...(input._meta ? { meta: input._meta } : {}),
|
|
19
|
+
}),
|
|
65
20
|
};
|
|
66
21
|
}
|
|
67
|
-
function stringField(doc, name) {
|
|
68
|
-
const value = doc[name];
|
|
69
|
-
return typeof value === 'string' ? value : undefined;
|
|
70
|
-
}
|
|
71
22
|
//# sourceMappingURL=publish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/tools/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/tools/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGvE,OAAO,EAAE,uBAAuB,EAA0B,MAAM,eAAe,CAAA;AAU/E,MAAM,UAAU,iBAAiB,CAAC,IAAqB;IACrD,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACrE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KAC3C,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAE7D,OAAO;QACL,IAAI,EAAE,SAAS;QACf,WAAW,EACT,2QAA2Q;QAC7Q,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAC5B,OAAO,CAAC,OAAO,CAAC;YACd,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE;YACrE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;KACL,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/tools/rollback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/tools/rollback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAE9E,OAAO,EAAE,KAAK,uBAAuB,EAAqB,MAAM,eAAe,CAAA;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,uBAAuB,CAAA;IAChC,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAoF5E"}
|
package/dist/tools/rollback.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { withMeta } from '@forumone/throughline-core';
|
|
3
|
+
import { sendEventSafely } from '../events.js';
|
|
3
4
|
import { resolveCollection } from '../options.js';
|
|
4
5
|
export function createRollbackTool(deps) {
|
|
5
6
|
const inputSchema = withMeta({
|
|
@@ -41,7 +42,9 @@ export function createRollbackTool(deps) {
|
|
|
41
42
|
collection: collection.slug,
|
|
42
43
|
id: input.versionId,
|
|
43
44
|
});
|
|
44
|
-
|
|
45
|
+
// The version is already restored; a failed emission must not undo
|
|
46
|
+
// that or lose the audit record below.
|
|
47
|
+
const warning = await sendEventSafely(deps.options.inngest, {
|
|
45
48
|
name: 'content/page.rolled_back',
|
|
46
49
|
data: {
|
|
47
50
|
collection: collection.slug,
|
|
@@ -71,6 +74,7 @@ export function createRollbackTool(deps) {
|
|
|
71
74
|
restored: true,
|
|
72
75
|
toVersionId: input.versionId,
|
|
73
76
|
note: 'The restored content is a draft. Call `publish` to make it live.',
|
|
77
|
+
...(warning ? { warnings: [warning] } : {}),
|
|
74
78
|
};
|
|
75
79
|
},
|
|
76
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/tools/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAgC,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAQ/E,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;KAC9E,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,2NAA2N;QAC7N,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YAEpE,iEAAiE;YACjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBAC/C,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,KAAK,EAAE;oBACL,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;iBAC7E;gBACD,KAAK,EAAE,CAAC;aACT,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,WAAW,CAAC;oBACrB,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE;oBAC/F,MAAM,EAAE,qBAAqB;oBAC7B,SAAS,EAAE,YAAY;oBACvB,OAAO,EAAE,UAAU;oBACnB,gBAAgB,EAAE,KAAK,CAAC,UAAU;oBAClC,QAAQ,EAAE,KAAK,CAAC,EAAE;oBAClB,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,6CAA6C;iBAC5D,CAAC,CAAA;gBACF,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,YAAY,KAAK,CAAC,SAAS,6BAA6B,KAAK,CAAC,EAAE,SAAS,KAAK,CAAC,UAAU,GAAG;iBACrG,CAAA;YACH,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;gBAChC,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,EAAE,EAAE,KAAK,CAAC,SAAS;aACpB,CAAC,CAAA;YAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/tools/rollback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-publish.d.ts","sourceRoot":"","sources":["../../src/tools/schedule-publish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"schedule-publish.d.ts","sourceRoot":"","sources":["../../src/tools/schedule-publish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAE9E,OAAO,EAAE,KAAK,uBAAuB,EAAqB,MAAM,eAAe,CAAA;AAG/E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,uBAAuB,CAAA;IAChC,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,iBAAiB,CAuG1F"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { withMeta } from '@forumone/throughline-core';
|
|
3
|
+
import { sendEventSafely } from '../events.js';
|
|
3
4
|
import { resolveCollection } from '../options.js';
|
|
4
5
|
import { runPreflightPipeline } from '../pipeline/index.js';
|
|
5
6
|
export function createSchedulePublishTool(deps) {
|
|
@@ -66,7 +67,9 @@ export function createSchedulePublishTool(deps) {
|
|
|
66
67
|
data: { [collection.scheduledPublishField]: input.publishAt },
|
|
67
68
|
context: { bypassPublishingServer: false },
|
|
68
69
|
});
|
|
69
|
-
|
|
70
|
+
// The schedule is already persisted; a failed emission must not undo
|
|
71
|
+
// that or lose the audit record below.
|
|
72
|
+
const warning = await sendEventSafely(deps.options.inngest, {
|
|
70
73
|
name: 'content/page.scheduled',
|
|
71
74
|
data: {
|
|
72
75
|
collection: collection.slug,
|
|
@@ -87,7 +90,11 @@ export function createSchedulePublishTool(deps) {
|
|
|
87
90
|
changesSummary: `Scheduled publish for ${input.publishAt}`,
|
|
88
91
|
success: true,
|
|
89
92
|
});
|
|
90
|
-
return {
|
|
93
|
+
return {
|
|
94
|
+
scheduled: true,
|
|
95
|
+
scheduledFor: input.publishAt,
|
|
96
|
+
...(warning ? { warnings: [warning] } : {}),
|
|
97
|
+
};
|
|
91
98
|
},
|
|
92
99
|
};
|
|
93
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-publish.js","sourceRoot":"","sources":["../../src/tools/schedule-publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAgC,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAQ3D,MAAM,UAAU,yBAAyB,CAAC,IAA6B;IACrE,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;KAC5E,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,+TAA+T;QACjU,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC/C,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC9B,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,iCAAiC;iBAC1C,CAAA;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC5C,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,IAAI;aACZ,CAAC,CAA4B,CAAA;YAE9B,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC;gBAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU;gBACV,QAAQ;gBACR,UAAU,EAAE,KAAK,CAAC,EAAE;gBACpB,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE;gBACrD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CAAC,CAAA;YAEF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,WAAW,CAAC;oBACrB,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE;oBAC/F,MAAM,EAAE,qBAAqB;oBAC7B,SAAS,EAAE,YAAY;oBACvB,OAAO,EAAE,kBAAkB;oBAC3B,gBAAgB,EAAE,KAAK,CAAC,UAAU;oBAClC,QAAQ,EAAE,KAAK,CAAC,EAAE;oBAClB,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU;oBAC/B,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,SAAS,CAAC,MAAM;iBAC/B,CAAC,CAAA;gBACF,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,UAAU,EAAE,SAAS,CAAC,UAAU;iBACjC,CAAA;YACH,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE;gBAC7D,OAAO,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE;aAC3C,CAAC,CAAA;YAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"schedule-publish.js","sourceRoot":"","sources":["../../src/tools/schedule-publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { Payload } from 'payload';
|
|
2
2
|
import { type AuditWriter } from '@forumone/throughline-core';
|
|
3
3
|
import type { McpToolDefinition } from '@forumone/throughline-plugin-contract';
|
|
4
|
-
import {
|
|
4
|
+
import type { PublishingPluginOptions } from '../options.js';
|
|
5
|
+
import { type PublishingService } from '../service.js';
|
|
5
6
|
export interface UnpublishToolDeps {
|
|
6
7
|
payload: Payload;
|
|
7
8
|
options: PublishingPluginOptions;
|
|
8
9
|
auditWriter: AuditWriter;
|
|
10
|
+
/** Injected by the plugin so every channel shares one service instance. */
|
|
11
|
+
service?: PublishingService;
|
|
9
12
|
}
|
|
10
13
|
export declare function createUnpublishTool(deps: UnpublishToolDeps): McpToolDefinition;
|
|
11
14
|
//# sourceMappingURL=unpublish.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unpublish.d.ts","sourceRoot":"","sources":["../../src/tools/unpublish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"unpublish.d.ts","sourceRoot":"","sources":["../../src/tools/unpublish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE/E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,uBAAuB,CAAA;IAChC,WAAW,EAAE,WAAW,CAAA;IACxB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,iBAAiB,CAAA;CAC5B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAqB9E"}
|
package/dist/tools/unpublish.js
CHANGED
|
@@ -1,61 +1,22 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { withMeta } from '@forumone/throughline-core';
|
|
3
|
-
import {
|
|
3
|
+
import { createPublishingService } from '../service.js';
|
|
4
4
|
export function createUnpublishTool(deps) {
|
|
5
5
|
const inputSchema = withMeta({
|
|
6
6
|
collection: z.string(),
|
|
7
7
|
id: z.string(),
|
|
8
8
|
});
|
|
9
|
+
const service = deps.service ?? createPublishingService(deps);
|
|
9
10
|
return {
|
|
10
11
|
name: 'unpublish',
|
|
11
12
|
description: 'Unpublishes a published document by reverting it to draft. Use when content needs to be removed from the public site without deleting it. Fires content/page.unpublished so revalidation and integrations can react.',
|
|
12
13
|
inputSchema,
|
|
13
|
-
handler: async (input, ctx) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}));
|
|
20
|
-
if (document['_status'] !== 'published') {
|
|
21
|
-
return { unpublished: false, reason: 'Document is not currently published' };
|
|
22
|
-
}
|
|
23
|
-
await deps.payload.update({
|
|
24
|
-
collection: collection.slug,
|
|
25
|
-
id: input.id,
|
|
26
|
-
data: { _status: 'draft' },
|
|
27
|
-
context: { bypassPublishingServer: true },
|
|
28
|
-
});
|
|
29
|
-
const slug = document[collection.slugField];
|
|
30
|
-
await deps.options.inngest.send({
|
|
31
|
-
name: 'content/page.unpublished',
|
|
32
|
-
data: {
|
|
33
|
-
collection: collection.slug,
|
|
34
|
-
id: input.id,
|
|
35
|
-
slug: typeof slug === 'string' ? slug : input.id,
|
|
36
|
-
unpublishedBy: ctx.user?.id ?? 'system',
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
await deps.auditWriter({
|
|
40
|
-
actor: {
|
|
41
|
-
type: ctx.user ? 'user' : 'system',
|
|
42
|
-
userId: ctx.user?.id,
|
|
43
|
-
userName: ctx.user?.name,
|
|
44
|
-
apiKeyName: ctx.apiKeyName,
|
|
45
|
-
},
|
|
46
|
-
action: 'publishing.unpublish',
|
|
47
|
-
mcpServer: 'publishing',
|
|
48
|
-
mcpTool: 'unpublish',
|
|
49
|
-
targetCollection: input.collection,
|
|
50
|
-
targetId: input.id,
|
|
51
|
-
targetTitle: typeof document['title'] === 'string' ? document['title'] : input.id,
|
|
52
|
-
prompt: input._meta?.userPrompt,
|
|
53
|
-
reasoning: input._meta?.reasoning,
|
|
54
|
-
changesSummary: input._meta?.changesSummary,
|
|
55
|
-
success: true,
|
|
56
|
-
});
|
|
57
|
-
return { unpublished: true };
|
|
58
|
-
},
|
|
14
|
+
handler: async (input, ctx) => service.unpublish({
|
|
15
|
+
collection: input.collection,
|
|
16
|
+
id: input.id,
|
|
17
|
+
actor: { user: ctx.user, apiKeyName: ctx.apiKeyName, channel: 'mcp' },
|
|
18
|
+
...(input._meta ? { meta: input._meta } : {}),
|
|
19
|
+
}),
|
|
59
20
|
};
|
|
60
21
|
}
|
|
61
22
|
//# sourceMappingURL=unpublish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unpublish.js","sourceRoot":"","sources":["../../src/tools/unpublish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"unpublish.js","sourceRoot":"","sources":["../../src/tools/unpublish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAoB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGvE,OAAO,EAAE,uBAAuB,EAA0B,MAAM,eAAe,CAAA;AAU/E,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;KACf,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAE7D,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,sNAAsN;QACxN,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAC5B,OAAO,CAAC,SAAS,CAAC;YAChB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE;YACrE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;KACL,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forumone/throughline-publishing",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Policy-gated publishing server for Throughline. Wraps Payload's update operation with composition, accessibility, required-field, embargo, and approval gating.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
"./checks": {
|
|
14
14
|
"types": "./dist/checks/index.d.ts",
|
|
15
15
|
"default": "./dist/checks/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./client": {
|
|
18
|
+
"types": "./dist/exports/client.d.ts",
|
|
19
|
+
"default": "./dist/exports/client.js"
|
|
16
20
|
}
|
|
17
21
|
},
|
|
18
22
|
"files": [
|
|
@@ -40,8 +44,18 @@
|
|
|
40
44
|
"access": "public"
|
|
41
45
|
},
|
|
42
46
|
"peerDependencies": {
|
|
47
|
+
"@payloadcms/ui": "^3.0.0",
|
|
48
|
+
"inngest": "^4.0.0",
|
|
43
49
|
"payload": "^3.0.0",
|
|
44
|
-
"
|
|
50
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
51
|
+
},
|
|
52
|
+
"peerDependenciesMeta": {
|
|
53
|
+
"@payloadcms/ui": {
|
|
54
|
+
"optional": true
|
|
55
|
+
},
|
|
56
|
+
"react": {
|
|
57
|
+
"optional": true
|
|
58
|
+
}
|
|
45
59
|
},
|
|
46
60
|
"dependencies": {
|
|
47
61
|
"zod": "^3.23.0",
|
|
@@ -49,10 +63,13 @@
|
|
|
49
63
|
"@forumone/throughline-plugin-contract": "0.2.1"
|
|
50
64
|
},
|
|
51
65
|
"devDependencies": {
|
|
66
|
+
"@payloadcms/ui": "^3.83.0",
|
|
52
67
|
"@types/node": "^20.17.0",
|
|
68
|
+
"@types/react": "^19.2.0",
|
|
53
69
|
"eslint": "^9.15.0",
|
|
54
70
|
"inngest": "^4.2.0",
|
|
55
71
|
"payload": "^3.83.0",
|
|
72
|
+
"react": "^19.2.0",
|
|
56
73
|
"typescript": "^5.6.0",
|
|
57
74
|
"vitest": "^2.1.0",
|
|
58
75
|
"@forumone/throughline-eslint-config": "0.0.0",
|