@supportpages.io/wtfm 0.0.0-stage → 0.3.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/LICENSE +201 -0
- package/NOTICE +23 -0
- package/README.md +392 -2
- package/dist/actions.d.ts +98 -0
- package/dist/actions.js +86 -0
- package/dist/actions.js.map +1 -0
- package/dist/agent-settings.d.ts +22 -0
- package/dist/agent-settings.js +35 -0
- package/dist/agent-settings.js.map +1 -0
- package/dist/api.d.ts +14 -0
- package/dist/api.js +159 -0
- package/dist/api.js.map +1 -0
- package/dist/article-link.d.ts +16 -0
- package/dist/article-link.js +25 -0
- package/dist/article-link.js.map +1 -0
- package/dist/artifacts.d.ts +45 -0
- package/dist/artifacts.js +144 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/brand.d.ts +4 -0
- package/dist/brand.js +9 -0
- package/dist/brand.js.map +1 -0
- package/dist/bridge.d.ts +2964 -0
- package/dist/bridge.js +1036 -0
- package/dist/bridge.js.map +1 -0
- package/dist/capacity.d.ts +5 -0
- package/dist/capacity.js +11 -0
- package/dist/capacity.js.map +1 -0
- package/dist/credentials.d.ts +13 -0
- package/dist/credentials.js +88 -0
- package/dist/credentials.js.map +1 -0
- package/dist/development-tls.d.ts +8 -0
- package/dist/development-tls.js +38 -0
- package/dist/development-tls.js.map +1 -0
- package/dist/errors.d.ts +15 -0
- package/dist/errors.js +18 -0
- package/dist/errors.js.map +1 -0
- package/dist/export.d.ts +11 -0
- package/dist/export.js +91 -0
- package/dist/export.js.map +1 -0
- package/dist/hosted-operations.d.ts +108 -0
- package/dist/hosted-operations.js +120 -0
- package/dist/hosted-operations.js.map +1 -0
- package/dist/hosting-benefits.d.ts +66 -0
- package/dist/hosting-benefits.js +67 -0
- package/dist/hosting-benefits.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/local-inventory.d.ts +22 -0
- package/dist/local-inventory.js +59 -0
- package/dist/local-inventory.js.map +1 -0
- package/dist/local-setup.d.ts +208 -0
- package/dist/local-setup.js +140 -0
- package/dist/local-setup.js.map +1 -0
- package/dist/pairing.d.ts +71 -0
- package/dist/pairing.js +235 -0
- package/dist/pairing.js.map +1 -0
- package/dist/preferences.d.ts +18 -0
- package/dist/preferences.js +44 -0
- package/dist/preferences.js.map +1 -0
- package/dist/progress.d.ts +205 -0
- package/dist/progress.js +224 -0
- package/dist/progress.js.map +1 -0
- package/dist/reminders.d.ts +31 -0
- package/dist/reminders.js +73 -0
- package/dist/reminders.js.map +1 -0
- package/dist/replace-connection.d.ts +6 -0
- package/dist/replace-connection.js +77 -0
- package/dist/replace-connection.js.map +1 -0
- package/dist/repository-actions.d.ts +18 -0
- package/dist/repository-actions.js +9 -0
- package/dist/repository-actions.js.map +1 -0
- package/dist/repository-benefits.d.ts +96 -0
- package/dist/repository-benefits.js +64 -0
- package/dist/repository-benefits.js.map +1 -0
- package/dist/run-update.d.ts +17 -0
- package/dist/run-update.js +27 -0
- package/dist/run-update.js.map +1 -0
- package/dist/runs.d.ts +541 -0
- package/dist/runs.js +146 -0
- package/dist/runs.js.map +1 -0
- package/dist/runtime.d.ts +12 -0
- package/dist/runtime.js +58 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema.d.ts +277 -0
- package/dist/schema.js +66 -0
- package/dist/schema.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.js +298 -0
- package/dist/server.js.map +1 -0
- package/dist/session.d.ts +1714 -0
- package/dist/session.js +619 -0
- package/dist/session.js.map +1 -0
- package/dist/settings.d.ts +9 -0
- package/dist/settings.js +21 -0
- package/dist/settings.js.map +1 -0
- package/dist/sync.d.ts +495 -0
- package/dist/sync.js +191 -0
- package/dist/sync.js.map +1 -0
- package/dist/telemetry-scrub.d.ts +13 -0
- package/dist/telemetry-scrub.js +51 -0
- package/dist/telemetry-scrub.js.map +1 -0
- package/dist/telemetry.d.ts +73 -0
- package/dist/telemetry.js +173 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/walkthroughs.d.ts +224 -0
- package/dist/walkthroughs.js +109 -0
- package/dist/walkthroughs.js.map +1 -0
- package/dist/workspace.d.ts +14 -0
- package/dist/workspace.js +127 -0
- package/dist/workspace.js.map +1 -0
- package/dist/writer-agent.d.ts +21 -0
- package/dist/writer-agent.js +27 -0
- package/dist/writer-agent.js.map +1 -0
- package/dist/writer-entry.d.ts +171 -0
- package/dist/writer-entry.js +233 -0
- package/dist/writer-entry.js.map +1 -0
- package/dist/writing-style.d.ts +7 -0
- package/dist/writing-style.js +52 -0
- package/dist/writing-style.js.map +1 -0
- package/engine/SYNC.json +4 -0
- package/engine/VERSION +1 -0
- package/engine/detect-project/README.md +141 -0
- package/engine/detect-project/SKILL.md +1421 -0
- package/engine/detect-project/assets/desktop/desktop-frame.css +428 -0
- package/engine/detect-project/assets/game/game-frame.css +132 -0
- package/engine/detect-project/assets/macosui/LICENSE-puppertino.txt +21 -0
- package/engine/detect-project/assets/macosui/VERSIONS.txt +1 -0
- package/engine/detect-project/assets/macosui/fonts.css +15 -0
- package/engine/detect-project/assets/macosui/macos-frame.css +481 -0
- package/engine/detect-project/assets/macosui/puppertino.css +2153 -0
- package/engine/detect-project/assets/mobileui/LICENSE-fonts.txt +13 -0
- package/engine/detect-project/assets/mobileui/LICENSE-framework7.txt +52 -0
- package/engine/detect-project/assets/mobileui/VERSIONS.txt +6 -0
- package/engine/detect-project/assets/mobileui/device-frame.css +316 -0
- package/engine/detect-project/assets/mobileui/f7-color-theme.mjs +1345 -0
- package/engine/detect-project/assets/mobileui/f7-icons-names.json +1254 -0
- package/engine/detect-project/assets/mobileui/fonts.css +16 -0
- package/engine/detect-project/assets/mobileui/framework7-components.css +39 -0
- package/engine/detect-project/assets/mobileui/framework7-core.css +5245 -0
- package/engine/detect-project/assets/mobileui/icons.css +31 -0
- package/engine/detect-project/assets/mobileui/md3-defaults.css +89 -0
- package/engine/detect-project/assets/mobileui/platforms.json +46 -0
- package/engine/detect-project/assets/tailwind-fallback.css +1729 -0
- package/engine/detect-project/assets/webtui/LICENSE-webtui.txt +28 -0
- package/engine/detect-project/assets/webtui/VERSIONS.txt +7 -0
- package/engine/detect-project/assets/webtui/terminal-frame.css +195 -0
- package/engine/detect-project/assets/webtui/theme-catppuccin.css +1 -0
- package/engine/detect-project/assets/webtui/theme-everforest.css +1 -0
- package/engine/detect-project/assets/webtui/theme-gruvbox.css +1 -0
- package/engine/detect-project/assets/webtui/theme-nord.css +1 -0
- package/engine/detect-project/assets/webtui/theme-vitesse.css +1 -0
- package/engine/detect-project/assets/webtui/themes.json +37 -0
- package/engine/detect-project/assets/webtui/webtui-core.css +1 -0
- package/engine/detect-project/assets/win32ui/7css.css +2 -0
- package/engine/detect-project/assets/win32ui/LICENSE-7css.txt +21 -0
- package/engine/detect-project/assets/win32ui/VERSIONS.txt +1 -0
- package/engine/detect-project/assets/win32ui/win32-frame.css +278 -0
- package/engine/detect-project/package-lock.json +12 -0
- package/engine/detect-project/package.json +10 -0
- package/engine/detect-project/scripts/apply_runtime_profiles.js +313 -0
- package/engine/detect-project/scripts/check_css_health.js +412 -0
- package/engine/detect-project/scripts/check_project_map.js +150 -0
- package/engine/detect-project/scripts/check_runtime_coverage.js +311 -0
- package/engine/detect-project/scripts/check_runtime_recipe_quality.js +184 -0
- package/engine/detect-project/scripts/classify_app_type.sh +246 -0
- package/engine/detect-project/scripts/classify_surface.sh +95 -0
- package/engine/detect-project/scripts/classify_workspace.js +39 -0
- package/engine/detect-project/scripts/compile_css.sh +447 -0
- package/engine/detect-project/scripts/detect_static.js +645 -0
- package/engine/detect-project/scripts/detect_structure.js +187 -0
- package/engine/detect-project/scripts/include_census.js +451 -0
- package/engine/detect-project/scripts/json_get.js +142 -0
- package/engine/detect-project/scripts/merge_json.js +52 -0
- package/engine/detect-project/scripts/recommend_model_tier.js +252 -0
- package/engine/detect-project/scripts/resolve_route_chains.js +135 -0
- package/engine/detect-project/scripts/run_css_build.sh +40 -0
- package/engine/detect-project/scripts/sanitize_css.js +83 -0
- package/engine/detect-project/scripts/test_classify_surface.js +108 -0
- package/engine/detect-project/scripts/test_node_helpers.js +142 -0
- package/engine/detect-project/scripts/test_recommend_model_tier.js +119 -0
- package/engine/detect-project/scripts/test_resolve_route_chains.js +182 -0
- package/engine/detect-project/scripts/test_runtime_coverage.js +323 -0
- package/engine/detect-project/scripts/test_runtime_recipe_quality.js +187 -0
- package/engine/detect-project/scripts/theme_overrides.js +169 -0
- package/engine/detect-project/scripts/write_branding.js +129 -0
- package/engine/generate-illustrated-article/SKILL.md +461 -0
- package/engine/generate-illustrated-article/contracts/desktop.md +90 -0
- package/engine/generate-illustrated-article/contracts/game.md +38 -0
- package/engine/generate-illustrated-article/contracts/label-evidence.md +38 -0
- package/engine/generate-illustrated-article/contracts/macos.md +79 -0
- package/engine/generate-illustrated-article/contracts/mobile.md +40 -0
- package/engine/generate-illustrated-article/contracts/terminal.md +29 -0
- package/engine/generate-illustrated-article/contracts/win32.md +43 -0
- package/engine/generate-illustrated-article/package-lock.json +366 -0
- package/engine/generate-illustrated-article/package.json +15 -0
- package/engine/generate-illustrated-article/scripts/article_blocks.js +34 -0
- package/engine/generate-illustrated-article/scripts/check_article_json.js +105 -0
- package/engine/generate-illustrated-article/scripts/emit_walkthrough_signals.js +100 -0
- package/engine/generate-illustrated-article/scripts/extract_images.js +187 -0
- package/engine/generate-illustrated-article/scripts/generate_content_images.js +376 -0
- package/engine/generate-illustrated-article/scripts/include_census.js +451 -0
- package/engine/generate-illustrated-article/scripts/inject_assets.js +1691 -0
- package/engine/generate-illustrated-article/scripts/jit_mockup_css.js +191 -0
- package/engine/generate-illustrated-article/scripts/label_evidence.js +87 -0
- package/engine/generate-illustrated-article/scripts/lint_article_copy.js +252 -0
- package/engine/generate-illustrated-article/scripts/lint_mockup_fidelity.js +2403 -0
- package/engine/generate-illustrated-article/scripts/polish_tickets.js +1148 -0
- package/engine/generate-illustrated-article/scripts/related_repos.sh +52 -0
- package/engine/generate-illustrated-article/scripts/render_all.js +177 -0
- package/engine/generate-illustrated-article/scripts/render_mockup.js +665 -0
- package/engine/generate-illustrated-article/scripts/render_ready.js +164 -0
- package/engine/generate-illustrated-article/scripts/resolve_workspace.sh +86 -0
- package/engine/generate-illustrated-article/scripts/runtime_region_geometry.js +55 -0
- package/engine/generate-illustrated-article/scripts/source_paths.js +49 -0
- package/engine/generate-illustrated-article/scripts/test_control_visibility.js +30 -0
- package/engine/generate-illustrated-article/scripts/test_emit_walkthrough_signals.js +157 -0
- package/engine/generate-illustrated-article/scripts/test_generate_content_images.js +168 -0
- package/engine/generate-illustrated-article/scripts/test_include_census.js +126 -0
- package/engine/generate-illustrated-article/scripts/test_label_evidence.js +49 -0
- package/engine/generate-illustrated-article/scripts/test_lint_article_copy.js +138 -0
- package/engine/generate-illustrated-article/scripts/test_lint_mockup_fidelity.js +653 -0
- package/engine/generate-illustrated-article/scripts/test_node_ports.js +152 -0
- package/engine/generate-illustrated-article/scripts/test_polish_tickets.js +481 -0
- package/engine/generate-illustrated-article/scripts/test_related_repos.js +64 -0
- package/engine/generate-illustrated-article/scripts/test_render_ready.js +85 -0
- package/engine/generate-illustrated-article/scripts/test_source_paths.js +68 -0
- package/engine/generate-illustrated-article/scripts/trace_hook.js +79 -0
- package/engine/generate-illustrated-article/scripts/trace_hook.sh +4 -0
- package/engine/generate-illustrated-article/scripts/validate_html.js +114 -0
- package/engine/generate-illustrated-article/scripts/watermark.js +69 -0
- package/install.sh +14 -0
- package/package.json +57 -4
- package/scripts/auth.mjs +33 -0
- package/scripts/auto-update.mjs +7 -0
- package/scripts/build-plugin.mjs +58 -0
- package/scripts/build-release.mjs +94 -0
- package/scripts/check-release.mjs +40 -0
- package/scripts/check-runtime.mjs +10 -0
- package/scripts/cli.mjs +8 -0
- package/scripts/install.mjs +64 -0
- package/scripts/lib/agent-runner.mjs +181 -0
- package/scripts/lib/agent-settings.mjs +215 -0
- package/scripts/lib/article-skills.mjs +82 -0
- package/scripts/lib/auto-update.mjs +50 -0
- package/scripts/lib/brand.mjs +9 -0
- package/scripts/lib/browser.mjs +12 -0
- package/scripts/lib/claude-connection.mjs +33 -0
- package/scripts/lib/claude-permissions.mjs +47 -0
- package/scripts/lib/claude-plugin.mjs +15 -0
- package/scripts/lib/claude-writer.mjs +10 -0
- package/scripts/lib/cli-main.mjs +85 -0
- package/scripts/lib/cli.mjs +888 -0
- package/scripts/lib/codex-config.mjs +51 -0
- package/scripts/lib/codex-integration.mjs +61 -0
- package/scripts/lib/codex-skill.mjs +34 -0
- package/scripts/lib/harness-models.mjs +109 -0
- package/scripts/lib/install.mjs +269 -0
- package/scripts/lib/managed-writer.mjs +38 -0
- package/scripts/lib/planning.mjs +263 -0
- package/scripts/lib/prepare-update.mjs +85 -0
- package/scripts/lib/refresh-writers.mjs +12 -0
- package/scripts/lib/remove.mjs +167 -0
- package/scripts/lib/renderer.mjs +34 -0
- package/scripts/lib/terminal.mjs +252 -0
- package/scripts/lib/uninit.mjs +72 -0
- package/scripts/lib/update.mjs +55 -0
- package/scripts/lib/writer-recovery.mjs +35 -0
- package/scripts/lib/yolo.mjs +362 -0
- package/scripts/plugin-session.mjs +65 -0
- package/scripts/prepare-update.mjs +12 -0
- package/scripts/publish-release.mjs +92 -0
- package/scripts/skills/supportpages/SKILL.md +120 -0
- package/scripts/smoke-release.mjs +101 -0
- package/server.json +27 -0
package/dist/runs.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { remoteId, remoteArticleSchema } from './schema.js';
|
|
4
|
+
import { parse } from './artifacts.js';
|
|
5
|
+
import { fail } from './errors.js';
|
|
6
|
+
import { articleLink } from './article-link.js';
|
|
7
|
+
import { repositoryInvitationSchema } from './repository-benefits.js';
|
|
8
|
+
import { hostingInvitationSchema } from './hosting-benefits.js';
|
|
9
|
+
import { CLI_NAME } from './brand.js';
|
|
10
|
+
export const processSessionId = randomUUID();
|
|
11
|
+
export const runSchema = z.object({
|
|
12
|
+
id: z.uuid(), local_article_id: z.uuid(), artifact_dir: z.string(), started_at: z.string(),
|
|
13
|
+
section_id: remoteId.nullable(), status: z.enum(['prepared', 'finalized', 'cancelled', 'failed', 'interrupted']), skills_version: z.string(),
|
|
14
|
+
article_type: z.string().optional(),
|
|
15
|
+
progress: z.object({
|
|
16
|
+
attempt: z.uuid(), next_attempt: z.uuid().optional(), article: remoteArticleSchema.optional(),
|
|
17
|
+
sequence: z.number().int().nonnegative(), article_hash: z.string().optional(),
|
|
18
|
+
image_hashes: z.record(z.string(), z.string()).optional(), last_heartbeat: z.number().optional(),
|
|
19
|
+
open_attempted: z.boolean().optional(), browser_opened: z.boolean().optional(),
|
|
20
|
+
sync_error: z.string().optional(), sync_failures: z.number().int().nonnegative().optional(),
|
|
21
|
+
pending: z.object({ sequence: z.number().int().positive(), directory: z.string() }).optional(),
|
|
22
|
+
}).optional(),
|
|
23
|
+
title: z.string().optional(), api_origin: z.string().optional(), project_id: remoteId.optional(),
|
|
24
|
+
codebase_dir: z.string().optional(),
|
|
25
|
+
prefer_background: z.boolean().optional(), open_when_ready: z.boolean().optional(),
|
|
26
|
+
execution_mode: z.enum(['background', 'foreground']).optional(), host_task_id: z.string().max(200).optional(),
|
|
27
|
+
writer_token: z.uuid().optional(), writer_started_at: z.iso.datetime().optional(),
|
|
28
|
+
writer_completed_at: z.iso.datetime().optional(),
|
|
29
|
+
first_writer_started_at: z.iso.datetime().optional(), ready_for_review_at: z.iso.datetime().optional(),
|
|
30
|
+
repository_invitation: repositoryInvitationSchema.optional(), repository_reminder_checked: z.boolean().optional(),
|
|
31
|
+
hosting_invitation: hostingInvitationSchema.optional(), hosting_reminder_checked: z.boolean().optional(),
|
|
32
|
+
session_id: z.string().optional(), updated_at: z.string().optional(),
|
|
33
|
+
phase: z.enum(['prepared', 'writing', 'finalizing', 'uploading', 'upload_failed', 'ready_for_review', 'published', 'saved', 'failed', 'interrupted', 'cancelled']).optional(),
|
|
34
|
+
bundle_dir: z.string().optional(), bundle_hash: z.string().optional(),
|
|
35
|
+
// Preview exports do not mean the writer has finished or passed validation.
|
|
36
|
+
local_export: z.object({ directory: z.string(), markdown_path: z.string().optional(), sync_error: z.string().optional() }).optional(),
|
|
37
|
+
export_path: z.string().optional(),
|
|
38
|
+
remote: remoteArticleSchema.optional(),
|
|
39
|
+
error: z.object({ code: z.string(), message: z.string() }).optional(),
|
|
40
|
+
});
|
|
41
|
+
export function uploadRecovery(run) {
|
|
42
|
+
const reason = run.error?.code === 'plan_limit'
|
|
43
|
+
? 'Free up article capacity or update the account plan.'
|
|
44
|
+
: ['permission_denied', 'invalid_credentials'].includes(run.error?.code ?? '')
|
|
45
|
+
? `Check the token permissions and project access; reconnect with ${CLI_NAME} init if needed.`
|
|
46
|
+
: ['run_closed', 'revision_conflict', 'article_deleted', 'article_unavailable'].includes(run.error?.code ?? '')
|
|
47
|
+
? 'Review the existing article in the web app. Do not overwrite browser changes or restart a closed run.'
|
|
48
|
+
: 'Resolve the reported upload problem.';
|
|
49
|
+
const retry = ['run_closed', 'revision_conflict', 'article_deleted', 'article_unavailable'].includes(run.error?.code ?? '') ? ''
|
|
50
|
+
: ` Then retry supportpages_complete_article with run_id=${run.id} and completed=true to reuse the saved bundle.`;
|
|
51
|
+
return `${reason}${retry} Do not regenerate the article or report the writer as failed because delivery failed. Local upload state does not prove that no remote draft exists.`;
|
|
52
|
+
}
|
|
53
|
+
export class Runs {
|
|
54
|
+
ws;
|
|
55
|
+
root;
|
|
56
|
+
sessionId;
|
|
57
|
+
constructor(ws, root, sessionId = processSessionId) {
|
|
58
|
+
this.ws = ws;
|
|
59
|
+
this.root = root;
|
|
60
|
+
this.sessionId = sessionId;
|
|
61
|
+
}
|
|
62
|
+
async read(id) {
|
|
63
|
+
parse(z.uuid(), id, 'invalid_run');
|
|
64
|
+
const file = `${this.root}/runs/${id}/run.json`;
|
|
65
|
+
if (!await this.ws.exists(file))
|
|
66
|
+
fail('invalid_run', 'This run does not belong to the selected workspace and API origin.');
|
|
67
|
+
const run = parse(runSchema, await this.ws.json(file));
|
|
68
|
+
if (run.id !== id)
|
|
69
|
+
fail('invalid_run', 'Run identity mismatch.');
|
|
70
|
+
return run;
|
|
71
|
+
}
|
|
72
|
+
// Caller holds the workspace operation lock for all writes and reservations.
|
|
73
|
+
async save(run) {
|
|
74
|
+
const previous = await this.ws.exists(`${this.root}/runs/${run.id}/run.json`) ? await this.read(run.id) : undefined;
|
|
75
|
+
const now = new Date().toISOString();
|
|
76
|
+
const value = { ...run, updated_at: now,
|
|
77
|
+
first_writer_started_at: previous?.first_writer_started_at ?? run.first_writer_started_at ?? previous?.writer_started_at ?? run.writer_started_at,
|
|
78
|
+
ready_for_review_at: previous?.ready_for_review_at ?? run.ready_for_review_at ?? (run.phase === 'ready_for_review' ? now : undefined),
|
|
79
|
+
repository_reminder_checked: previous?.repository_reminder_checked ?? run.repository_reminder_checked,
|
|
80
|
+
repository_invitation: previous?.repository_invitation ?? run.repository_invitation,
|
|
81
|
+
hosting_reminder_checked: previous?.hosting_reminder_checked ?? run.hosting_reminder_checked,
|
|
82
|
+
hosting_invitation: previous?.hosting_invitation ?? run.hosting_invitation };
|
|
83
|
+
await this.ws.writeJson(`${this.root}/runs/${run.id}/run.json`, value);
|
|
84
|
+
const activeFile = `${this.root}/active-run.json`;
|
|
85
|
+
if (await this.ws.exists(activeFile) && parse(runSchema, await this.ws.json(activeFile)).id === run.id) {
|
|
86
|
+
await this.ws.writeJson(activeFile, value);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async blocking(allowedId) {
|
|
90
|
+
// Include legacy active-run files. All environments share the skills' outputs.
|
|
91
|
+
const roots = ['.rtfm/supportpages'];
|
|
92
|
+
for (const entry of await this.ws.list('.rtfm/supportpages/dev')) {
|
|
93
|
+
if (entry.isDirectory())
|
|
94
|
+
roots.push(`.rtfm/supportpages/dev/${entry.name}`);
|
|
95
|
+
}
|
|
96
|
+
for (const root of roots) {
|
|
97
|
+
const file = `${root}/active-run.json`;
|
|
98
|
+
if (!await this.ws.exists(file))
|
|
99
|
+
continue;
|
|
100
|
+
const pointer = parse(runSchema, await this.ws.json(file));
|
|
101
|
+
const record = `${root}/runs/${pointer.id}/run.json`;
|
|
102
|
+
const active = await this.ws.exists(record) ? parse(runSchema, await this.ws.json(record)) : pointer;
|
|
103
|
+
if (active.status === 'prepared' && !(root === this.root && active.id === allowedId)) {
|
|
104
|
+
return { run: active, state_directory: root };
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
async assertAvailable(allowedId) {
|
|
110
|
+
const active = await this.blocking(allowedId);
|
|
111
|
+
if (active)
|
|
112
|
+
fail('generation_active', 'Finish or stop and cancel the existing writer before starting another in this workspace.', { run_id: active.run.id, state_directory: active.state_directory });
|
|
113
|
+
}
|
|
114
|
+
async progress(id) {
|
|
115
|
+
let run;
|
|
116
|
+
if (id)
|
|
117
|
+
run = await this.read(id);
|
|
118
|
+
else {
|
|
119
|
+
if (!await this.ws.exists(`${this.root}/active-run.json`))
|
|
120
|
+
return null;
|
|
121
|
+
const active = parse(runSchema, await this.ws.json(`${this.root}/active-run.json`));
|
|
122
|
+
run = await this.read(active.id);
|
|
123
|
+
}
|
|
124
|
+
// Interpret older journals without rewriting them: a finalized run whose
|
|
125
|
+
// delivery failed is still a completed local article, not a failed writer.
|
|
126
|
+
const uploadFailed = run.phase === 'upload_failed' || (run.status === 'finalized' && run.phase === 'failed');
|
|
127
|
+
const deliveryPending = Boolean(run.writer_completed_at && !run.remote && run.phase !== 'saved');
|
|
128
|
+
return { run_id: run.id, title: run.title, phase: uploadFailed ? 'upload_failed' : run.phase ?? (run.status === 'finalized' ? 'finalizing' : run.status),
|
|
129
|
+
generation_completed_locally: run.status === 'finalized',
|
|
130
|
+
delivery_pending: deliveryPending,
|
|
131
|
+
recovery: uploadFailed ? uploadRecovery(run) : deliveryPending
|
|
132
|
+
? (run.project_id
|
|
133
|
+
? `Writing has finished but final delivery is pending. Call supportpages_complete_article with run_id=${run.id} and completed=true; do not regenerate or claim the editor is ready.`
|
|
134
|
+
: `Writing has finished but the article has not been saved yet. Call supportpages_complete_article with run_id=${run.id} and completed=true to save it; do not regenerate.`) : undefined,
|
|
135
|
+
artifact_dir: run.artifact_dir, execution_mode: run.execution_mode, host_task_id: run.host_task_id,
|
|
136
|
+
progress_source: 'last_reported', session_current: run.session_id === this.sessionId,
|
|
137
|
+
started_at: run.started_at, updated_at: run.updated_at ?? run.started_at,
|
|
138
|
+
project_id: run.project_id, error: run.error, article: run.remote, export_path: run.export_path,
|
|
139
|
+
preview: run.progress?.article, local_preview_path: run.local_export?.markdown_path,
|
|
140
|
+
synchronization_error: run.progress?.sync_error ?? run.local_export?.sync_error,
|
|
141
|
+
...articleLink(run), open_when_ready: Boolean(run.open_when_ready && !run.progress?.open_attempted), browser_opened: run.progress?.browser_opened,
|
|
142
|
+
instructions: run.status === 'prepared' && run.session_id !== this.sessionId
|
|
143
|
+
? 'Progress is from an earlier MCP session. Verify the host task before completing, stopping, or restarting it; do not start a duplicate writer.' : undefined };
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=runs.js.map
|
package/dist/runs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
/** Only the managed versions/<release>/mcp layout can update itself. */
|
|
3
|
+
export declare function installationRoot(installRoot: string): string | undefined;
|
|
4
|
+
export declare function autoUpdateEnabled(env: NodeJS.ProcessEnv): boolean;
|
|
5
|
+
/** Keep this session's engine on the same immutable release as its JS modules.
|
|
6
|
+
* Older installers registered the bundled skills by an absolute version path,
|
|
7
|
+
* first as mcp/skills and now as mcp/engine; both map to this release's engine.
|
|
8
|
+
* External engine checkouts remain exactly the user's choice.
|
|
9
|
+
*/
|
|
10
|
+
export declare function pinSkills(installRoot: string, skillsDir: string): Promise<string>;
|
|
11
|
+
/** No inherited protocol streams, no waiting, and no prompts in an agent session. */
|
|
12
|
+
export declare function startBackgroundUpdate(installRoot: string, env?: NodeJS.ProcessEnv, spawnProcess?: typeof spawn): void;
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { access, realpath } from 'node:fs/promises';
|
|
3
|
+
import { spawn } from 'node:child_process';
|
|
4
|
+
/** Only the managed versions/<release>/mcp layout can update itself. */
|
|
5
|
+
export function installationRoot(installRoot) {
|
|
6
|
+
const version = path.dirname(installRoot);
|
|
7
|
+
if (path.basename(installRoot) !== 'mcp' || path.basename(path.dirname(version)) !== 'versions')
|
|
8
|
+
return;
|
|
9
|
+
return path.dirname(path.dirname(version));
|
|
10
|
+
}
|
|
11
|
+
export function autoUpdateEnabled(env) {
|
|
12
|
+
return !['0', 'false', 'off'].includes((env.SUPPORTPAGES_AUTO_UPDATE ?? '').toLowerCase()) &&
|
|
13
|
+
(!env.CI || ['0', 'false'].includes(env.CI.toLowerCase()));
|
|
14
|
+
}
|
|
15
|
+
/** Keep this session's engine on the same immutable release as its JS modules.
|
|
16
|
+
* Older installers registered the bundled skills by an absolute version path,
|
|
17
|
+
* first as mcp/skills and now as mcp/engine; both map to this release's engine.
|
|
18
|
+
* External engine checkouts remain exactly the user's choice.
|
|
19
|
+
*/
|
|
20
|
+
export async function pinSkills(installRoot, skillsDir) {
|
|
21
|
+
const root = installationRoot(installRoot);
|
|
22
|
+
if (root) {
|
|
23
|
+
const relative = path.relative(root, skillsDir).split(path.sep);
|
|
24
|
+
const bundledName = (name) => name === 'skills' || name === 'engine';
|
|
25
|
+
// Skills copies that earlier setups kept in the shared data directory
|
|
26
|
+
// (<data>/skills/<name>, beside <data>/cli) are managed too.
|
|
27
|
+
const shared = path.relative(path.join(path.dirname(root), 'skills'), skillsDir).split(path.sep);
|
|
28
|
+
const bundled = (relative.length === 3 && relative[0] === 'current' && relative[1] === 'mcp' && bundledName(relative[2])) ||
|
|
29
|
+
(relative.length === 4 && relative[0] === 'versions' && relative[2] === 'mcp' && bundledName(relative[3])) ||
|
|
30
|
+
(shared.length === 1 && shared[0] !== '' && shared[0] !== '..');
|
|
31
|
+
if (bundled) {
|
|
32
|
+
const candidate = path.join(installRoot, 'engine');
|
|
33
|
+
try {
|
|
34
|
+
await access(path.join(candidate, 'generate-illustrated-article', 'SKILL.md'));
|
|
35
|
+
skillsDir = candidate;
|
|
36
|
+
}
|
|
37
|
+
catch { /* An older release without an engine keeps its registered skills. */ }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return realpath(skillsDir).catch(() => skillsDir);
|
|
41
|
+
}
|
|
42
|
+
/** No inherited protocol streams, no waiting, and no prompts in an agent session. */
|
|
43
|
+
export function startBackgroundUpdate(installRoot, env = process.env, spawnProcess = spawn) {
|
|
44
|
+
if (!autoUpdateEnabled(env) || !installationRoot(installRoot))
|
|
45
|
+
return;
|
|
46
|
+
const safeEnv = { ...env };
|
|
47
|
+
delete safeEnv.SUPPORTPAGES_API_TOKEN;
|
|
48
|
+
delete safeEnv.SUPPORTPAGES_API_TOKEN_FILE;
|
|
49
|
+
try {
|
|
50
|
+
const child = spawnProcess(process.execPath, [path.join(installRoot, 'scripts/auto-update.mjs')], {
|
|
51
|
+
cwd: installRoot, env: safeEnv, detached: true, stdio: 'ignore',
|
|
52
|
+
});
|
|
53
|
+
child.on('error', () => { });
|
|
54
|
+
child.unref();
|
|
55
|
+
}
|
|
56
|
+
catch { /* Updating must never prevent a connection. */ }
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const idSchema: z.ZodString;
|
|
3
|
+
export declare const remoteId: z.ZodString;
|
|
4
|
+
export declare const articleType: z.ZodEnum<{
|
|
5
|
+
"how-to": "how-to";
|
|
6
|
+
troubleshooting: "troubleshooting";
|
|
7
|
+
concept: "concept";
|
|
8
|
+
faq: "faq";
|
|
9
|
+
}>;
|
|
10
|
+
export declare const articleSchema: z.ZodObject<{
|
|
11
|
+
schema_version: z.ZodLiteral<2>;
|
|
12
|
+
title: z.ZodString;
|
|
13
|
+
article_type: z.ZodEnum<{
|
|
14
|
+
"how-to": "how-to";
|
|
15
|
+
troubleshooting: "troubleshooting";
|
|
16
|
+
concept: "concept";
|
|
17
|
+
faq: "faq";
|
|
18
|
+
}>;
|
|
19
|
+
blocks: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
20
|
+
type: z.ZodLiteral<"prose">;
|
|
21
|
+
presentation: z.ZodEnum<{
|
|
22
|
+
lead: "lead";
|
|
23
|
+
body: "body";
|
|
24
|
+
summary: "summary";
|
|
25
|
+
}>;
|
|
26
|
+
title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
27
|
+
content: z.ZodString;
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
30
|
+
type: z.ZodLiteral<"section">;
|
|
31
|
+
presentation: z.ZodEnum<{
|
|
32
|
+
numbered: "numbered";
|
|
33
|
+
plain: "plain";
|
|
34
|
+
}>;
|
|
35
|
+
title: z.ZodString;
|
|
36
|
+
content: z.ZodString;
|
|
37
|
+
has_image: z.ZodBoolean;
|
|
38
|
+
id: z.ZodString;
|
|
39
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
40
|
+
type: z.ZodLiteral<"list">;
|
|
41
|
+
presentation: z.ZodEnum<{
|
|
42
|
+
bullets: "bullets";
|
|
43
|
+
checklist: "checklist";
|
|
44
|
+
tips: "tips";
|
|
45
|
+
}>;
|
|
46
|
+
title: z.ZodString;
|
|
47
|
+
items: z.ZodArray<z.ZodString>;
|
|
48
|
+
id: z.ZodString;
|
|
49
|
+
}, z.core.$strict>], "type">>;
|
|
50
|
+
}, z.core.$strict>;
|
|
51
|
+
export type Article = z.infer<typeof articleSchema>;
|
|
52
|
+
export declare const manifestSchema: z.ZodObject<{
|
|
53
|
+
bundle_version: z.ZodLiteral<1>;
|
|
54
|
+
local_article_id: z.ZodUUID;
|
|
55
|
+
run_id: z.ZodUUID;
|
|
56
|
+
skills_version: z.ZodString;
|
|
57
|
+
source_commit: z.ZodNullable<z.ZodString>;
|
|
58
|
+
source_dirty: z.ZodBoolean;
|
|
59
|
+
section_id: z.ZodNullable<z.ZodString>;
|
|
60
|
+
article_sha256: z.ZodString;
|
|
61
|
+
images: z.ZodArray<z.ZodObject<{
|
|
62
|
+
block_id: z.ZodString;
|
|
63
|
+
filename: z.ZodString;
|
|
64
|
+
sha256: z.ZodString;
|
|
65
|
+
size: z.ZodNumber;
|
|
66
|
+
mime_type: z.ZodLiteral<"image/png">;
|
|
67
|
+
}, z.core.$strict>>;
|
|
68
|
+
bundle_hash: z.ZodString;
|
|
69
|
+
}, z.core.$strict>;
|
|
70
|
+
export type Manifest = z.infer<typeof manifestSchema>;
|
|
71
|
+
export declare const bindingSchema: z.ZodObject<{
|
|
72
|
+
version: z.ZodLiteral<1>;
|
|
73
|
+
project_id: z.ZodString;
|
|
74
|
+
api_origin: z.ZodURL;
|
|
75
|
+
}, z.core.$strict>;
|
|
76
|
+
export type Binding = z.infer<typeof bindingSchema>;
|
|
77
|
+
/** A workspace that saves finished articles locally instead of (or before) uploading them. */
|
|
78
|
+
export declare const localSchema: z.ZodObject<{
|
|
79
|
+
version: z.ZodLiteral<1>;
|
|
80
|
+
export_dir: z.ZodString;
|
|
81
|
+
writing_style: z.ZodOptional<z.ZodString>;
|
|
82
|
+
preferences: z.ZodOptional<z.ZodObject<{
|
|
83
|
+
prefer_background: z.ZodBoolean;
|
|
84
|
+
open_when_ready: z.ZodBoolean;
|
|
85
|
+
}, z.core.$strip>>;
|
|
86
|
+
}, z.core.$strict>;
|
|
87
|
+
export type LocalSettings = z.infer<typeof localSchema>;
|
|
88
|
+
export declare const repositoryConnectionSchema: z.ZodObject<{
|
|
89
|
+
writer: z.ZodOptional<z.ZodObject<{
|
|
90
|
+
version: z.ZodLiteral<1>;
|
|
91
|
+
actions: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodTransform<Partial<Record<"read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre", {
|
|
92
|
+
action: "read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre";
|
|
93
|
+
allowed: boolean;
|
|
94
|
+
execution: "local" | "remote" | "hosted";
|
|
95
|
+
required_scopes: string[];
|
|
96
|
+
next_step: {
|
|
97
|
+
code: string;
|
|
98
|
+
message: string;
|
|
99
|
+
requested_action: "read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre";
|
|
100
|
+
missing_scopes?: ("read" | "import" | "publish" | "manage" | "generate")[] | undefined;
|
|
101
|
+
url?: string | undefined;
|
|
102
|
+
} | null;
|
|
103
|
+
}>>, Record<string, unknown>>>;
|
|
104
|
+
}, z.core.$strip>>;
|
|
105
|
+
state: z.ZodEnum<{
|
|
106
|
+
not_connected: "not_connected";
|
|
107
|
+
connected: "connected";
|
|
108
|
+
disconnected: "disconnected";
|
|
109
|
+
suspended: "suspended";
|
|
110
|
+
}>;
|
|
111
|
+
connect_url: z.ZodURL;
|
|
112
|
+
capabilities: z.ZodObject<{
|
|
113
|
+
sections: z.ZodBoolean;
|
|
114
|
+
suggestions: z.ZodBoolean;
|
|
115
|
+
code_analysis: z.ZodBoolean;
|
|
116
|
+
maintenance: z.ZodBoolean;
|
|
117
|
+
}, z.core.$strip>;
|
|
118
|
+
}, z.core.$strip>;
|
|
119
|
+
export declare const remoteArticleSchema: z.ZodObject<{
|
|
120
|
+
repository_connection: z.ZodOptional<z.ZodObject<{
|
|
121
|
+
writer: z.ZodOptional<z.ZodObject<{
|
|
122
|
+
version: z.ZodLiteral<1>;
|
|
123
|
+
actions: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodTransform<Partial<Record<"read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre", {
|
|
124
|
+
action: "read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre";
|
|
125
|
+
allowed: boolean;
|
|
126
|
+
execution: "local" | "remote" | "hosted";
|
|
127
|
+
required_scopes: string[];
|
|
128
|
+
next_step: {
|
|
129
|
+
code: string;
|
|
130
|
+
message: string;
|
|
131
|
+
requested_action: "read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre";
|
|
132
|
+
missing_scopes?: ("read" | "import" | "publish" | "manage" | "generate")[] | undefined;
|
|
133
|
+
url?: string | undefined;
|
|
134
|
+
} | null;
|
|
135
|
+
}>>, Record<string, unknown>>>;
|
|
136
|
+
}, z.core.$strip>>;
|
|
137
|
+
state: z.ZodEnum<{
|
|
138
|
+
not_connected: "not_connected";
|
|
139
|
+
connected: "connected";
|
|
140
|
+
disconnected: "disconnected";
|
|
141
|
+
suspended: "suspended";
|
|
142
|
+
}>;
|
|
143
|
+
connect_url: z.ZodURL;
|
|
144
|
+
capabilities: z.ZodObject<{
|
|
145
|
+
sections: z.ZodBoolean;
|
|
146
|
+
suggestions: z.ZodBoolean;
|
|
147
|
+
code_analysis: z.ZodBoolean;
|
|
148
|
+
maintenance: z.ZodBoolean;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
}, z.core.$strip>>;
|
|
151
|
+
id: z.ZodString;
|
|
152
|
+
revision: z.ZodString;
|
|
153
|
+
status: z.ZodEnum<{
|
|
154
|
+
draft: "draft";
|
|
155
|
+
published: "published";
|
|
156
|
+
}>;
|
|
157
|
+
editor_url: z.ZodURL;
|
|
158
|
+
public_url: z.ZodNullable<z.ZodURL>;
|
|
159
|
+
}, z.core.$strip>;
|
|
160
|
+
export declare const importResponseSchema: z.ZodObject<{
|
|
161
|
+
import_id: z.ZodString;
|
|
162
|
+
article: z.ZodObject<{
|
|
163
|
+
repository_connection: z.ZodOptional<z.ZodObject<{
|
|
164
|
+
writer: z.ZodOptional<z.ZodObject<{
|
|
165
|
+
version: z.ZodLiteral<1>;
|
|
166
|
+
actions: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodTransform<Partial<Record<"read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre", {
|
|
167
|
+
action: "read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre";
|
|
168
|
+
allowed: boolean;
|
|
169
|
+
execution: "local" | "remote" | "hosted";
|
|
170
|
+
required_scopes: string[];
|
|
171
|
+
next_step: {
|
|
172
|
+
code: string;
|
|
173
|
+
message: string;
|
|
174
|
+
requested_action: "read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre";
|
|
175
|
+
missing_scopes?: ("read" | "import" | "publish" | "manage" | "generate")[] | undefined;
|
|
176
|
+
url?: string | undefined;
|
|
177
|
+
} | null;
|
|
178
|
+
}>>, Record<string, unknown>>>;
|
|
179
|
+
}, z.core.$strip>>;
|
|
180
|
+
state: z.ZodEnum<{
|
|
181
|
+
not_connected: "not_connected";
|
|
182
|
+
connected: "connected";
|
|
183
|
+
disconnected: "disconnected";
|
|
184
|
+
suspended: "suspended";
|
|
185
|
+
}>;
|
|
186
|
+
connect_url: z.ZodURL;
|
|
187
|
+
capabilities: z.ZodObject<{
|
|
188
|
+
sections: z.ZodBoolean;
|
|
189
|
+
suggestions: z.ZodBoolean;
|
|
190
|
+
code_analysis: z.ZodBoolean;
|
|
191
|
+
maintenance: z.ZodBoolean;
|
|
192
|
+
}, z.core.$strip>;
|
|
193
|
+
}, z.core.$strip>>;
|
|
194
|
+
id: z.ZodString;
|
|
195
|
+
revision: z.ZodString;
|
|
196
|
+
status: z.ZodEnum<{
|
|
197
|
+
draft: "draft";
|
|
198
|
+
published: "published";
|
|
199
|
+
}>;
|
|
200
|
+
editor_url: z.ZodURL;
|
|
201
|
+
public_url: z.ZodNullable<z.ZodURL>;
|
|
202
|
+
}, z.core.$strip>;
|
|
203
|
+
}, z.core.$strip>;
|
|
204
|
+
export declare const articleCapacitySchema: z.ZodObject<{
|
|
205
|
+
used: z.ZodNumber;
|
|
206
|
+
limit: z.ZodNullable<z.ZodNumber>;
|
|
207
|
+
can_create: z.ZodBoolean;
|
|
208
|
+
upgrade_url: z.ZodURL;
|
|
209
|
+
manage_articles_url: z.ZodURL;
|
|
210
|
+
}, z.core.$strip>;
|
|
211
|
+
export declare const contextSchema: z.ZodObject<{
|
|
212
|
+
local: z.ZodOptional<z.ZodBoolean>;
|
|
213
|
+
article_sync: z.ZodOptional<z.ZodBoolean>;
|
|
214
|
+
walkthrough_sync: z.ZodOptional<z.ZodBoolean>;
|
|
215
|
+
article_capacity: z.ZodOptional<z.ZodObject<{
|
|
216
|
+
used: z.ZodNumber;
|
|
217
|
+
limit: z.ZodNullable<z.ZodNumber>;
|
|
218
|
+
can_create: z.ZodBoolean;
|
|
219
|
+
upgrade_url: z.ZodURL;
|
|
220
|
+
manage_articles_url: z.ZodURL;
|
|
221
|
+
}, z.core.$strip>>;
|
|
222
|
+
progressive_articles: z.ZodOptional<z.ZodBoolean>;
|
|
223
|
+
repository_connection: z.ZodOptional<z.ZodObject<{
|
|
224
|
+
writer: z.ZodOptional<z.ZodObject<{
|
|
225
|
+
version: z.ZodLiteral<1>;
|
|
226
|
+
actions: z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodTransform<Partial<Record<"read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre", {
|
|
227
|
+
action: "read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre";
|
|
228
|
+
allowed: boolean;
|
|
229
|
+
execution: "local" | "remote" | "hosted";
|
|
230
|
+
required_scopes: string[];
|
|
231
|
+
next_step: {
|
|
232
|
+
code: string;
|
|
233
|
+
message: string;
|
|
234
|
+
requested_action: "read_articles" | "create_article" | "update_article" | "edit_article" | "publish_article" | "unpublish_article" | "delete_article" | "find_article_gaps" | "suggest_sections" | "recommend_articles" | "review_sections" | "review_recommendations" | "create_video_walkthrough" | "get_operation" | "generate_help_centre";
|
|
235
|
+
missing_scopes?: ("read" | "import" | "publish" | "manage" | "generate")[] | undefined;
|
|
236
|
+
url?: string | undefined;
|
|
237
|
+
} | null;
|
|
238
|
+
}>>, Record<string, unknown>>>;
|
|
239
|
+
}, z.core.$strip>>;
|
|
240
|
+
state: z.ZodEnum<{
|
|
241
|
+
not_connected: "not_connected";
|
|
242
|
+
connected: "connected";
|
|
243
|
+
disconnected: "disconnected";
|
|
244
|
+
suspended: "suspended";
|
|
245
|
+
}>;
|
|
246
|
+
connect_url: z.ZodURL;
|
|
247
|
+
capabilities: z.ZodObject<{
|
|
248
|
+
sections: z.ZodBoolean;
|
|
249
|
+
suggestions: z.ZodBoolean;
|
|
250
|
+
code_analysis: z.ZodBoolean;
|
|
251
|
+
maintenance: z.ZodBoolean;
|
|
252
|
+
}, z.core.$strip>;
|
|
253
|
+
}, z.core.$strip>>;
|
|
254
|
+
project: z.ZodObject<{
|
|
255
|
+
id: z.ZodOptional<z.ZodString>;
|
|
256
|
+
name: z.ZodString;
|
|
257
|
+
help_centre_url: z.ZodOptional<z.ZodURL>;
|
|
258
|
+
}, z.core.$strip>;
|
|
259
|
+
supported_bundle_versions: z.ZodArray<z.ZodNumber>;
|
|
260
|
+
sections: z.ZodArray<z.ZodObject<{
|
|
261
|
+
id: z.ZodString;
|
|
262
|
+
name: z.ZodString;
|
|
263
|
+
slug: z.ZodString;
|
|
264
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
265
|
+
icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
266
|
+
}, z.core.$strip>>;
|
|
267
|
+
articles: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
268
|
+
id: z.ZodString;
|
|
269
|
+
title: z.ZodString;
|
|
270
|
+
section_id: z.ZodNullable<z.ZodString>;
|
|
271
|
+
}, z.core.$strip>>>;
|
|
272
|
+
product_context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodNull]>>>;
|
|
273
|
+
inventory_truncated: z.ZodDefault<z.ZodBoolean>;
|
|
274
|
+
project_overview: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
275
|
+
analysis_summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
276
|
+
writing_style: z.ZodOptional<z.ZodString>;
|
|
277
|
+
}, z.core.$strip>;
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { writerCapabilitiesSchema } from './actions.js';
|
|
3
|
+
export const idSchema = z.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).max(120);
|
|
4
|
+
export const remoteId = z.string().regex(/^[1-9][0-9]*$/);
|
|
5
|
+
export const articleType = z.enum(['how-to', 'troubleshooting', 'concept', 'faq']);
|
|
6
|
+
const text = z.string().max(200_000);
|
|
7
|
+
const title = z.string().trim().min(1).max(500);
|
|
8
|
+
const common = { id: idSchema };
|
|
9
|
+
export const articleSchema = z.strictObject({
|
|
10
|
+
schema_version: z.literal(2), title, article_type: articleType,
|
|
11
|
+
blocks: z.array(z.discriminatedUnion('type', [
|
|
12
|
+
z.strictObject({ ...common, type: z.literal('prose'), presentation: z.enum(['lead', 'body', 'summary']), title: text.nullish(), content: text }),
|
|
13
|
+
z.strictObject({ ...common, type: z.literal('section'), presentation: z.enum(['numbered', 'plain']), title, content: text, has_image: z.boolean() }),
|
|
14
|
+
z.strictObject({ ...common, type: z.literal('list'), presentation: z.enum(['bullets', 'checklist', 'tips']), title, items: z.array(text).max(500) }),
|
|
15
|
+
])).min(1).max(500),
|
|
16
|
+
}).superRefine((article, ctx) => {
|
|
17
|
+
const ids = article.blocks.map(b => b.id);
|
|
18
|
+
if (new Set(ids).size !== ids.length)
|
|
19
|
+
ctx.addIssue({ code: 'custom', message: 'Block IDs must be unique', path: ['blocks'] });
|
|
20
|
+
});
|
|
21
|
+
const hash = z.string().regex(/^[a-f0-9]{64}$/);
|
|
22
|
+
export const manifestSchema = z.strictObject({
|
|
23
|
+
bundle_version: z.literal(1), local_article_id: z.uuid(), run_id: z.uuid(),
|
|
24
|
+
skills_version: z.string().max(100), source_commit: z.string().nullable(), source_dirty: z.boolean(),
|
|
25
|
+
section_id: remoteId.nullable(), article_sha256: hash,
|
|
26
|
+
images: z.array(z.strictObject({ block_id: idSchema, filename: z.string(), sha256: hash, size: z.number().int().positive().max(10 * 1024 * 1024), mime_type: z.literal('image/png') })).max(30),
|
|
27
|
+
bundle_hash: hash,
|
|
28
|
+
});
|
|
29
|
+
export const bindingSchema = z.strictObject({ version: z.literal(1), project_id: remoteId, api_origin: z.url() });
|
|
30
|
+
/** A workspace that saves finished articles locally instead of (or before) uploading them. */
|
|
31
|
+
export const localSchema = z.strictObject({ version: z.literal(1), export_dir: z.string().min(1).max(500),
|
|
32
|
+
writing_style: z.string().max(100).optional(),
|
|
33
|
+
preferences: z.object({ prefer_background: z.boolean(), open_when_ready: z.boolean() }).optional() });
|
|
34
|
+
export const repositoryConnectionSchema = z.object({
|
|
35
|
+
writer: writerCapabilitiesSchema.optional(),
|
|
36
|
+
state: z.enum(['not_connected', 'connected', 'disconnected', 'suspended']),
|
|
37
|
+
connect_url: z.url(),
|
|
38
|
+
capabilities: z.object({ sections: z.boolean(), suggestions: z.boolean(), code_analysis: z.boolean(), maintenance: z.boolean() }),
|
|
39
|
+
});
|
|
40
|
+
export const remoteArticleSchema = z.object({ repository_connection: repositoryConnectionSchema.optional(), id: remoteId, revision: hash, status: z.enum(['draft', 'published']), editor_url: z.url(), public_url: z.url().nullable() });
|
|
41
|
+
export const importResponseSchema = z.object({ import_id: remoteId, article: remoteArticleSchema });
|
|
42
|
+
const browserUrl = z.url().max(2000).refine(value => {
|
|
43
|
+
const url = new URL(value);
|
|
44
|
+
return ['http:', 'https:'].includes(url.protocol) && !url.username && !url.password;
|
|
45
|
+
});
|
|
46
|
+
export const articleCapacitySchema = z.object({
|
|
47
|
+
used: z.number().int().nonnegative(), limit: z.number().int().nonnegative().nullable(), can_create: z.boolean(),
|
|
48
|
+
upgrade_url: browserUrl, manage_articles_url: browserUrl,
|
|
49
|
+
}).refine(value => value.can_create === (value.limit === null || value.used < value.limit));
|
|
50
|
+
export const contextSchema = z.object({
|
|
51
|
+
local: z.boolean().optional(),
|
|
52
|
+
article_sync: z.boolean().optional(),
|
|
53
|
+
walkthrough_sync: z.boolean().optional(),
|
|
54
|
+
article_capacity: articleCapacitySchema.optional(),
|
|
55
|
+
progressive_articles: z.boolean().optional(),
|
|
56
|
+
repository_connection: repositoryConnectionSchema.optional(),
|
|
57
|
+
// A local workspace has no remote project; every bound path compares the id to a binding.
|
|
58
|
+
project: z.object({ id: remoteId.optional(), name: z.string(), help_centre_url: z.url().optional() }),
|
|
59
|
+
supported_bundle_versions: z.array(z.number()),
|
|
60
|
+
sections: z.array(z.object({ id: remoteId, name: z.string(), slug: z.string(), description: z.string().nullable().optional(), icon: z.string().nullable().optional() })),
|
|
61
|
+
articles: z.array(z.object({ id: remoteId, title: z.string(), section_id: remoteId.nullable() })).default([]),
|
|
62
|
+
product_context: z.record(z.string(), z.union([z.string(), z.array(z.string()), z.null()])).optional(),
|
|
63
|
+
inventory_truncated: z.boolean().default(false),
|
|
64
|
+
project_overview: z.string().nullable().optional(), analysis_summary: z.string().nullable().optional(), writing_style: z.string().optional(),
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED