@promptbook/cli 0.114.0-0 → 0.114.0-2

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.
Files changed (113) hide show
  1. package/README.md +16 -15
  2. package/apps/agents-server/package.json +6 -4
  3. package/apps/agents-server/playwright.config.ts +28 -38
  4. package/apps/agents-server/scripts/build-agents-server.js +62 -0
  5. package/apps/agents-server/scripts/build-e2e.js +38 -0
  6. package/apps/agents-server/scripts/ensure-root-dependencies.js +86 -0
  7. package/apps/agents-server/scripts/prerender-homepage.js +1 -1
  8. package/apps/agents-server/scripts/run-e2e-tests.js +34 -0
  9. package/apps/agents-server/scripts/run-npm.js +42 -0
  10. package/apps/agents-server/src/app/admin/email-server/page.tsx +14 -6
  11. package/apps/agents-server/src/app/api/elevenlabs/tts/route.ts +3 -3
  12. package/apps/agents-server/src/app/api/onboarding/book/route.ts +7 -6
  13. package/apps/agents-server/src/app/superadmin/servers/ServersRegistryTable.tsx +105 -102
  14. package/apps/agents-server/src/app/superadmin/servers/useServersRegistryState.ts +15 -7
  15. package/apps/agents-server/src/components/AgentProjectDnsInstructions/AgentProjectDnsInstructions.tsx +11 -11
  16. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ManGoBookEditor.tsx +82 -0
  17. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/WizardShell.tsx +2 -2
  18. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/BookStep.tsx +13 -16
  19. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/ZadaniStep.tsx +4 -4
  20. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/config/bookSections.ts +23 -16
  21. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/lib/bookSource.ts +54 -0
  22. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/bookService.ts +15 -8
  23. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/createManGoAgentSource.ts +3 -37
  24. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/createManGoOpenEditorRequest.ts +1 -1
  25. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/state/OnboardingProvider.tsx +2 -2
  26. package/apps/agents-server/src/components/UsersList/CreateUserDialog.tsx +13 -22
  27. package/apps/agents-server/src/components/UsersList/PasswordGeneratorDialog.tsx +216 -0
  28. package/apps/agents-server/src/components/UsersList/UsersList.tsx +16 -11
  29. package/apps/agents-server/src/components/UsersList/generateSecurePassword.ts +112 -24
  30. package/apps/agents-server/src/components/UsersList/userDialogClassNames.ts +11 -0
  31. package/apps/agents-server/src/languages/ServerTranslationKeys.ts +11 -0
  32. package/apps/agents-server/src/languages/translations/czech.yaml +11 -0
  33. package/apps/agents-server/src/languages/translations/english.yaml +11 -0
  34. package/apps/agents-server/src/utils/agentProjects/agentProjectHrefs.ts +11 -0
  35. package/apps/agents-server/src/utils/agentProjects/createAgentProjectDnsRecords.ts +53 -7
  36. package/apps/agents-server/src/utils/agentProjects/createAgentProjectMarkdownReferences.ts +37 -27
  37. package/apps/agents-server/src/utils/manGoOnboarding/manGoOnboardingAgentBooks.ts +2 -13
  38. package/apps/agents-server/src/utils/manGoOnboarding/manGoOnboardingAgentRuntime.ts +21 -73
  39. package/apps/agents-server/src/utils/stalwart/createEmailDnsInstructions.ts +9 -5
  40. package/apps/agents-server/src/utils/stalwart/readStalwartEmailSnapshot.ts +23 -5
  41. package/apps/agents-server/src/utils/stalwart/stalwartBootstrap.ts +2 -1
  42. package/apps/agents-server/src/utils/stalwart/stalwartMailBridge.ts +7 -0
  43. package/apps/agents-server/tests/e2e/e2eEnvironment.cjs +49 -0
  44. package/esm/index.es.js +523 -169
  45. package/esm/index.es.js.map +1 -1
  46. package/esm/scripts/run-agent-chat/runCoderPing.d.ts +48 -0
  47. package/esm/scripts/run-codex-prompts/prompts/findNextTodoPrompt.d.ts +2 -1
  48. package/esm/scripts/run-codex-prompts/prompts/isPromptCompatibleWithRunner.d.ts +27 -0
  49. package/esm/scripts/run-codex-prompts/prompts/listRunnablePrompts.d.ts +2 -1
  50. package/esm/scripts/run-codex-prompts/prompts/listUpcomingTasks.d.ts +2 -1
  51. package/esm/scripts/run-codex-prompts/prompts/replacePromptTodoStatusLine.d.ts +7 -0
  52. package/esm/scripts/run-codex-prompts/testing/TestBeforeMode.d.ts +16 -0
  53. package/esm/scripts/run-codex-prompts/testing/createTestBeforeRepairPrompt.d.ts +9 -0
  54. package/esm/scripts/run-codex-prompts/testing/limitTestOutput.d.ts +4 -0
  55. package/esm/scripts/run-codex-prompts/testing/runPromptTestCommand.d.ts +1 -2
  56. package/esm/scripts/run-codex-prompts/testing/runTestBefore.d.ts +24 -0
  57. package/esm/scripts/run-codex-prompts/ui/buildRunUiFrameShared.d.ts +1 -0
  58. package/esm/src/book-2.0/book-language-documentation/BookLanguageManualDictionary.d.ts +1 -15
  59. package/esm/src/book-2.0/book-language-documentation/getBookLanguageManualCommitmentGroups.d.ts +1 -1
  60. package/esm/src/book-2.0/book-language-documentation/renderCommitmentCatalogSection.d.ts +0 -4
  61. package/esm/src/book-components/Chat/utils/renderMarkdown.d.ts +7 -0
  62. package/esm/src/cli/cli-commands/coder/agentCodingFile.d.ts +2 -3
  63. package/esm/src/cli/cli-commands/coder/ping.d.ts +13 -0
  64. package/esm/src/cli/cli-commands/coder/ping.test.d.ts +1 -0
  65. package/esm/src/cli/cli-commands/coder.d.ts +1 -0
  66. package/package.json +1 -1
  67. package/src/book-2.0/book-language-documentation/BookLanguageManualDictionary.ts +1 -15
  68. package/src/book-2.0/book-language-documentation/bookLanguageDocumentationExamples.ts +1 -2
  69. package/src/book-2.0/book-language-documentation/createStandaloneBookLanguageMarkdown.ts +92 -32
  70. package/src/book-2.0/book-language-documentation/czechBookLanguageManualDictionary.ts +16 -39
  71. package/src/book-2.0/book-language-documentation/englishBookLanguageManualDictionary.ts +16 -36
  72. package/src/book-2.0/book-language-documentation/getBookLanguageManualCommitmentGroups.ts +9 -1
  73. package/src/book-2.0/book-language-documentation/renderCommitmentCatalogSection.ts +4 -51
  74. package/src/book-2.0/book-language-documentation/renderGroupedCommitmentDocumentationMarkdown.ts +291 -4
  75. package/src/book-components/Chat/utils/renderMarkdown.ts +133 -9
  76. package/src/cli/cli-commands/agents-server/startAgentsServer/createLocalAgentRunOptions.ts +1 -0
  77. package/src/cli/cli-commands/coder/agentCodingFile.ts +6 -129
  78. package/src/cli/cli-commands/coder/getDefaultCoderPackageJsonScripts.ts +1 -1
  79. package/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.ts +1 -4
  80. package/src/cli/cli-commands/coder/ping.ts +94 -0
  81. package/src/cli/cli-commands/coder/run.ts +25 -2
  82. package/src/cli/cli-commands/coder.ts +4 -0
  83. package/src/other/templates/getTemplatesPipelineCollection.ts +805 -842
  84. package/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.ts +101 -0
  85. package/src/version.ts +1 -1
  86. package/src/versions.txt +1 -1
  87. package/umd/index.umd.js +525 -171
  88. package/umd/index.umd.js.map +1 -1
  89. package/umd/scripts/run-agent-chat/runCoderPing.d.ts +48 -0
  90. package/umd/scripts/run-codex-prompts/prompts/findNextTodoPrompt.d.ts +2 -1
  91. package/umd/scripts/run-codex-prompts/prompts/isPromptCompatibleWithRunner.d.ts +27 -0
  92. package/umd/scripts/run-codex-prompts/prompts/listRunnablePrompts.d.ts +2 -1
  93. package/umd/scripts/run-codex-prompts/prompts/listUpcomingTasks.d.ts +2 -1
  94. package/umd/scripts/run-codex-prompts/prompts/replacePromptTodoStatusLine.d.ts +7 -0
  95. package/umd/scripts/run-codex-prompts/testing/TestBeforeMode.d.ts +16 -0
  96. package/umd/scripts/run-codex-prompts/testing/createTestBeforeRepairPrompt.d.ts +9 -0
  97. package/umd/scripts/run-codex-prompts/testing/limitTestOutput.d.ts +4 -0
  98. package/umd/scripts/run-codex-prompts/testing/runPromptTestCommand.d.ts +1 -2
  99. package/umd/scripts/run-codex-prompts/testing/runTestBefore.d.ts +24 -0
  100. package/umd/scripts/run-codex-prompts/ui/buildRunUiFrameShared.d.ts +1 -0
  101. package/umd/src/book-2.0/book-language-documentation/BookLanguageManualDictionary.d.ts +1 -15
  102. package/umd/src/book-2.0/book-language-documentation/getBookLanguageManualCommitmentGroups.d.ts +1 -1
  103. package/umd/src/book-2.0/book-language-documentation/renderCommitmentCatalogSection.d.ts +0 -4
  104. package/umd/src/book-components/Chat/utils/renderMarkdown.d.ts +7 -0
  105. package/umd/src/cli/cli-commands/coder/agentCodingFile.d.ts +2 -3
  106. package/umd/src/cli/cli-commands/coder/ping.d.ts +13 -0
  107. package/umd/src/cli/cli-commands/coder/ping.test.d.ts +1 -0
  108. package/umd/src/cli/cli-commands/coder.d.ts +1 -0
  109. package/apps/agents-server/src/app/api/onboarding/draft/route.ts +0 -23
  110. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/BookLanguagePanel.tsx +0 -125
  111. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/MarkdownBookEditor.tsx +0 -154
  112. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/MarkdownPreview.tsx +0 -188
  113. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/draftService.ts +0 -32
@@ -1,188 +0,0 @@
1
- import type { ReactNode } from 'react';
2
-
3
- import { cn } from '../lib/cn';
4
-
5
- /**
6
- * Tiny, dependency-free Markdown renderer for the book preview. Renders to React nodes
7
- * (no `dangerouslySetInnerHTML`), covering the subset used in agent books: headings,
8
- * bold/italic/inline-code/links, unordered & ordered lists, blockquotes, horizontal rules
9
- * and paragraphs. Anything it doesn't recognize falls through as plain paragraph text.
10
- */
11
- export function MarkdownPreview({ source, className }: { readonly source: string; readonly className?: string }) {
12
- return <div className={cn('text-sm leading-relaxed text-zinc-700', className)}>{renderBlocks(source)}</div>;
13
- }
14
-
15
- function renderBlocks(source: string): ReactNode[] {
16
- const lines = source.replace(/\r\n/g, '\n').split('\n');
17
- const blocks: ReactNode[] = [];
18
- let index = 0;
19
- let key = 0;
20
-
21
- while (index < lines.length) {
22
- const line = lines[index];
23
-
24
- if (line.trim() === '') {
25
- index += 1;
26
- continue;
27
- }
28
-
29
- const heading = /^(#{1,4})\s+(.*)$/.exec(line);
30
- if (heading) {
31
- blocks.push(renderHeading(heading[1].length, heading[2], key++));
32
- index += 1;
33
- continue;
34
- }
35
-
36
- if (/^(-{3,}|\*{3,}|_{3,})\s*$/.test(line)) {
37
- blocks.push(<hr key={key++} className="my-4 border-zinc-200" />);
38
- index += 1;
39
- continue;
40
- }
41
-
42
- if (line.startsWith('>')) {
43
- const quote: string[] = [];
44
- while (index < lines.length && lines[index].startsWith('>')) {
45
- quote.push(lines[index].replace(/^>\s?/, ''));
46
- index += 1;
47
- }
48
- blocks.push(
49
- <blockquote key={key++} className="my-3 border-l-2 border-[color:var(--ob-accent-300)] pl-3 italic text-zinc-500">
50
- {renderInline(quote.join(' '))}
51
- </blockquote>,
52
- );
53
- continue;
54
- }
55
-
56
- if (/^[-*+]\s+/.test(line)) {
57
- const items: string[] = [];
58
- while (index < lines.length && /^[-*+]\s+/.test(lines[index])) {
59
- items.push(lines[index].replace(/^[-*+]\s+/, ''));
60
- index += 1;
61
- }
62
- blocks.push(
63
- <ul key={key++} className="my-2 list-disc space-y-1 pl-5">
64
- {items.map((item, itemIndex) => (
65
- <li key={itemIndex}>{renderInline(item)}</li>
66
- ))}
67
- </ul>,
68
- );
69
- continue;
70
- }
71
-
72
- if (/^\d+\.\s+/.test(line)) {
73
- const items: string[] = [];
74
- while (index < lines.length && /^\d+\.\s+/.test(lines[index])) {
75
- items.push(lines[index].replace(/^\d+\.\s+/, ''));
76
- index += 1;
77
- }
78
- blocks.push(
79
- <ol key={key++} className="my-2 list-decimal space-y-1 pl-5">
80
- {items.map((item, itemIndex) => (
81
- <li key={itemIndex}>{renderInline(item)}</li>
82
- ))}
83
- </ol>,
84
- );
85
- continue;
86
- }
87
-
88
- // Paragraph: gather consecutive plain lines.
89
- const paragraph: string[] = [];
90
- while (index < lines.length && lines[index].trim() !== '' && !isBlockStart(lines[index])) {
91
- paragraph.push(lines[index]);
92
- index += 1;
93
- }
94
- blocks.push(
95
- <p key={key++} className="my-2">
96
- {paragraph.map((text, lineIndex) => (
97
- <span key={lineIndex}>
98
- {lineIndex > 0 && <br />}
99
- {renderInline(text)}
100
- </span>
101
- ))}
102
- </p>,
103
- );
104
- }
105
-
106
- return blocks;
107
- }
108
-
109
- function isBlockStart(line: string): boolean {
110
- return (
111
- /^(#{1,4})\s+/.test(line) ||
112
- /^(-{3,}|\*{3,}|_{3,})\s*$/.test(line) ||
113
- line.startsWith('>') ||
114
- /^[-*+]\s+/.test(line) ||
115
- /^\d+\.\s+/.test(line)
116
- );
117
- }
118
-
119
- function renderHeading(level: number, text: string, key: number): ReactNode {
120
- const content = renderInline(text);
121
- const className = {
122
- 1: 'mt-5 mb-2 text-xl font-bold text-zinc-900 first:mt-0',
123
- 2: 'mt-5 mb-1.5 text-base font-bold text-zinc-900 first:mt-0',
124
- 3: 'mt-4 mb-1 text-sm font-semibold text-zinc-900 first:mt-0',
125
- 4: 'mt-3 mb-1 text-[13px] font-semibold tracking-wide text-zinc-500 first:mt-0',
126
- }[level as 1 | 2 | 3 | 4];
127
-
128
- if (level === 1) return <h1 key={key} className={className}>{content}</h1>;
129
- if (level === 2) return <h2 key={key} className={className}>{content}</h2>;
130
- if (level === 3) return <h3 key={key} className={className}>{content}</h3>;
131
- return <h4 key={key} className={className}>{content}</h4>;
132
- }
133
-
134
- const INLINE_PATTERN = /(`[^`]+`)|(\*\*[^*]+?\*\*)|(\*[^*]+?\*)|(_[^_]+?_)|(\[[^\]]+?\]\([^)]+?\))/g;
135
-
136
- function renderInline(text: string): ReactNode[] {
137
- const nodes: ReactNode[] = [];
138
- const pattern = new RegExp(INLINE_PATTERN.source, 'g');
139
- let lastIndex = 0;
140
- let key = 0;
141
- let match: RegExpExecArray | null;
142
-
143
- while ((match = pattern.exec(text)) !== null) {
144
- if (match.index > lastIndex) {
145
- nodes.push(text.slice(lastIndex, match.index));
146
- }
147
-
148
- const token = match[0];
149
- if (token.startsWith('`')) {
150
- nodes.push(
151
- <code key={key++} className="rounded bg-zinc-100 px-1 py-0.5 font-mono text-[12px] text-zinc-700">
152
- {token.slice(1, -1)}
153
- </code>,
154
- );
155
- } else if (token.startsWith('**')) {
156
- nodes.push(<strong key={key++} className="font-semibold text-zinc-900">{token.slice(2, -2)}</strong>);
157
- } else if (token.startsWith('*')) {
158
- nodes.push(<em key={key++}>{token.slice(1, -1)}</em>);
159
- } else if (token.startsWith('_')) {
160
- nodes.push(<em key={key++}>{token.slice(1, -1)}</em>);
161
- } else {
162
- const link = /^\[([^\]]+)\]\(([^)]+)\)$/.exec(token);
163
- if (link) {
164
- nodes.push(
165
- <a
166
- key={key++}
167
- href={link[2]}
168
- target="_blank"
169
- rel="noreferrer"
170
- className="text-[color:var(--ob-accent-700)] underline underline-offset-2"
171
- >
172
- {link[1]}
173
- </a>,
174
- );
175
- } else {
176
- nodes.push(token);
177
- }
178
- }
179
-
180
- lastIndex = match.index + token.length;
181
- }
182
-
183
- if (lastIndex < text.length) {
184
- nodes.push(text.slice(lastIndex));
185
- }
186
-
187
- return nodes;
188
- }
@@ -1,32 +0,0 @@
1
- import { postManGoOnboardingJson } from './postManGoOnboardingJson';
2
-
3
- /**
4
- * Response returned by the manGo Book draft endpoint.
5
- *
6
- * @private internal type of the manGo wizard draft service.
7
- */
8
- type GenerateBookDraftResponse = {
9
- readonly draft: string;
10
- };
11
-
12
- /**
13
- * Builds the initial Book source for the imported manGo wizard.
14
- *
15
- * The external experiment generated a markdown draft through a separate API. The Agents
16
- * Server creates agents from Book language directly, so this boundary keeps the same
17
- * loading UX while returning a valid editable Book draft.
18
- *
19
- * @param input - Agent name and brief captured by the entry step.
20
- * @returns Editable Book source used by the following wizard steps.
21
- */
22
- export async function generateBookDraft(input: {
23
- readonly agentName: string;
24
- readonly agentBrief: string;
25
- }): Promise<string> {
26
- const response = await postManGoOnboardingJson<GenerateBookDraftResponse>('/api/onboarding/draft', {
27
- agentName: input.agentName,
28
- agentBrief: input.agentBrief,
29
- });
30
-
31
- return response.draft;
32
- }