@pixelbyte-software/pixcode 1.51.8 → 1.51.9
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/CODE_OF_CONDUCT.md +41 -41
- package/CONTRIBUTING.md +155 -155
- package/LICENSE +718 -718
- package/README.de.md +169 -169
- package/README.ja.md +167 -167
- package/README.ko.md +167 -167
- package/README.md +419 -419
- package/README.ru.md +169 -169
- package/README.tr.md +298 -298
- package/README.zh-CN.md +167 -167
- package/SECURITY.md +46 -46
- package/dist/api-automation.html +110 -110
- package/dist/api-docs.html +548 -548
- package/dist/assets/{index--kNEhygZ.js → index-Gs7C4hZT.js} +69 -69
- package/dist/clear-cache.html +85 -85
- package/dist/convert-icons.md +52 -52
- package/dist/docs.html +308 -308
- package/dist/favicon.svg +8 -8
- package/dist/features.html +133 -133
- package/dist/generate-icons.js +48 -48
- package/dist/humans.txt +15 -15
- package/dist/icons/codex-white.svg +3 -3
- package/dist/icons/codex.svg +3 -3
- package/dist/icons/cursor-white.svg +11 -11
- package/dist/icons/icon-128x128.svg +9 -9
- package/dist/icons/icon-144x144.svg +9 -9
- package/dist/icons/icon-152x152.svg +9 -9
- package/dist/icons/icon-192x192.svg +9 -9
- package/dist/icons/icon-384x384.svg +9 -9
- package/dist/icons/icon-512x512.svg +9 -9
- package/dist/icons/icon-72x72.svg +9 -9
- package/dist/icons/icon-96x96.svg +9 -9
- package/dist/icons/icon-template.svg +9 -9
- package/dist/icons/qwen-logo.svg +14 -14
- package/dist/index.html +58 -58
- package/dist/landing.html +268 -268
- package/dist/llms-full.txt +119 -119
- package/dist/llms.txt +53 -53
- package/dist/logo.svg +12 -12
- package/dist/manifest.json +60 -60
- package/dist/openapi.yaml +1696 -1696
- package/dist/orchestration.html +125 -125
- package/dist/robots.txt +4 -4
- package/dist/site.css +692 -692
- package/dist/sitemap.xml +51 -51
- package/dist/sw.js +132 -132
- package/dist-server/server/cli.js +96 -96
- package/dist-server/server/daemon/manager.js +33 -33
- package/dist-server/server/daemon-manager.js +64 -64
- package/dist-server/server/index.js +91 -65
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/routes/commands.js +25 -25
- package/dist-server/server/routes/git.js +17 -17
- package/dist-server/server/routes/live-view.js +46 -46
- package/dist-server/server/services/hermes-gateway.js +5 -5
- package/dist-server/server/services/public-api-manifest.js +51 -51
- package/package.json +222 -222
- package/scripts/fix-node-pty.js +67 -67
- package/scripts/github/create-v1.38-issues.mjs +351 -351
- package/scripts/github/create-vscode-workbench-issues.mjs +121 -121
- package/scripts/hermes/configure-pixcode-mcp.mjs +165 -165
- package/scripts/hermes/pixcode-mcp-server.mjs +1009 -1009
- package/scripts/smoke/changes-panel-layout.mjs +48 -48
- package/scripts/smoke/chat-composer-fixed-layout.mjs +55 -55
- package/scripts/smoke/chat-message-timeline-order.mjs +41 -41
- package/scripts/smoke/chat-realtime-hydration.mjs +44 -44
- package/scripts/smoke/chat-session-provider-pools.mjs +35 -35
- package/scripts/smoke/chat-session-state.mjs +19 -19
- package/scripts/smoke/code-editor-theme.mjs +55 -55
- package/scripts/smoke/code-editor-vscode-engine.mjs +91 -91
- package/scripts/smoke/command-center-agent-writes.mjs +79 -79
- package/scripts/smoke/command-center-non-git.mjs +46 -46
- package/scripts/smoke/context-packet.mjs +43 -43
- package/scripts/smoke/control-room-ux-redesign.mjs +91 -91
- package/scripts/smoke/daemon-entrypoint.mjs +20 -20
- package/scripts/smoke/default-landing-routing.mjs +33 -33
- package/scripts/smoke/desktop-native-notifications.mjs +30 -30
- package/scripts/smoke/desktop-tray-icon.mjs +33 -33
- package/scripts/smoke/discord-release-workflow.mjs +24 -24
- package/scripts/smoke/git-install-update.mjs +255 -255
- package/scripts/smoke/handoff-artifact-protocol.mjs +50 -50
- package/scripts/smoke/hermes-api-install.mjs +56 -56
- package/scripts/smoke/hermes-gateway-persistence.mjs +104 -104
- package/scripts/smoke/hermes-mcp-pixcode-roundtrip.mjs +426 -426
- package/scripts/smoke/hermes-rest-chat-api.mjs +162 -162
- package/scripts/smoke/hermes-rest-chat-live.mjs +45 -45
- package/scripts/smoke/hermes-rest-codex-launch.mjs +209 -209
- package/scripts/smoke/hermes-rest-gateway.mjs +79 -79
- package/scripts/smoke/hermes-rest-live.mjs +42 -42
- package/scripts/smoke/hermes-roundtrip.mjs +167 -167
- package/scripts/smoke/hermes-settings-commands.mjs +349 -349
- package/scripts/smoke/hermes-smoke-launcher-guard.mjs +34 -34
- package/scripts/smoke/live-view-diagnostics.mjs +53 -53
- package/scripts/smoke/live-view-environment.mjs +92 -92
- package/scripts/smoke/live-view-integration.mjs +450 -450
- package/scripts/smoke/mac-desktop-runtime.mjs +37 -37
- package/scripts/smoke/mobile-tunnel-guidance.mjs +29 -29
- package/scripts/smoke/model-registry.mjs +36 -36
- package/scripts/smoke/multi-project-ui.mjs +45 -45
- package/scripts/smoke/multi-worker-slots.mjs +42 -42
- package/scripts/smoke/notification-center.mjs +87 -87
- package/scripts/smoke/notification-inapp-preference.mjs +23 -23
- package/scripts/smoke/notification-taxonomy.mjs +58 -58
- package/scripts/smoke/orchestration-api.mjs +172 -172
- package/scripts/smoke/orchestration-execution-dashboard.mjs +33 -33
- package/scripts/smoke/orchestration-live-run.mjs +176 -176
- package/scripts/smoke/orchestration-mobile-scroll.mjs +29 -29
- package/scripts/smoke/orchestration-model-sync.mjs +30 -30
- package/scripts/smoke/orchestration-permission-fallback.mjs +34 -34
- package/scripts/smoke/orchestration-runtime-guards.mjs +48 -48
- package/scripts/smoke/orchestration-user-facing-output.mjs +25 -25
- package/scripts/smoke/permission-policy.mjs +50 -50
- package/scripts/smoke/pixcode-workbench-1-48.mjs +167 -167
- package/scripts/smoke/provider-models-opencode-live.mjs +66 -66
- package/scripts/smoke/provider-rest-api.mjs +124 -124
- package/scripts/smoke/provider-selection-status.mjs +52 -52
- package/scripts/smoke/run-state-refresh.mjs +52 -52
- package/scripts/smoke/runtime-manager.mjs +99 -99
- package/scripts/smoke/shell-manual-disconnect.mjs +30 -30
- package/scripts/smoke/side-panel-editor-layout.mjs +34 -34
- package/scripts/smoke/static-root-routing.mjs +21 -21
- package/scripts/smoke/strict-handoff-compact.mjs +60 -60
- package/scripts/smoke/taskmaster-config.mjs +24 -24
- package/scripts/smoke/taskmaster-execution-telegram.mjs +3 -3
- package/scripts/smoke/taskmaster-onboarding.mjs +3 -3
- package/scripts/smoke/taskmaster-run-graph.mjs +3 -3
- package/scripts/smoke/telegram-control.mjs +242 -242
- package/scripts/smoke/tunnel-persistence.mjs +56 -56
- package/scripts/smoke/update-issue-progress.mjs +69 -69
- package/scripts/smoke/update-ux.mjs +55 -55
- package/scripts/smoke/v138-completion.mjs +132 -132
- package/scripts/smoke/v138-desktop-release-hardening.mjs +69 -69
- package/scripts/smoke/v138-diagnostics.mjs +63 -63
- package/scripts/smoke/v138-issue-planner.mjs +33 -33
- package/scripts/smoke/v143-remote-control.mjs +76 -76
- package/scripts/smoke/v144-production-loop.mjs +47 -47
- package/scripts/smoke/v145-platformization.mjs +46 -46
- package/scripts/smoke/v146-control-room-ui.mjs +150 -150
- package/scripts/smoke/version-modal-autoshow.mjs +29 -29
- package/scripts/smoke/vscode-workbench-layout.mjs +63 -63
- package/scripts/smoke/vscode-workbench-polish.mjs +461 -461
- package/scripts/smoke/workflow-fallback-replay.mjs +56 -56
- package/scripts/smoke/workflow-templates.mjs +43 -43
- package/scripts/smoke/workflow-trace-timeline.mjs +46 -46
- package/scripts/update-git-install.mjs +283 -283
- package/server/claude-sdk.js +920 -920
- package/server/cli.js +1035 -1035
- package/server/constants/config.js +4 -4
- package/server/cursor-cli.js +344 -344
- package/server/daemon/manager.js +563 -563
- package/server/daemon-manager.js +964 -964
- package/server/database/db.js +895 -895
- package/server/database/json-store.js +197 -197
- package/server/gemini-cli.js +550 -550
- package/server/gemini-response-handler.js +79 -79
- package/server/index.js +111 -81
- package/server/load-env.js +35 -35
- package/server/middleware/auth.js +155 -155
- package/server/modules/orchestration/a2a/adapter-registry.ts +108 -108
- package/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.ts +63 -63
- package/server/modules/orchestration/a2a/adapters/claude-code.adapter.ts +286 -286
- package/server/modules/orchestration/a2a/adapters/codex.adapter.ts +244 -244
- package/server/modules/orchestration/a2a/adapters/cursor.adapter.ts +249 -249
- package/server/modules/orchestration/a2a/adapters/gemini.adapter.ts +248 -248
- package/server/modules/orchestration/a2a/adapters/json-event.adapter.ts +100 -100
- package/server/modules/orchestration/a2a/adapters/opencode.adapter.ts +248 -248
- package/server/modules/orchestration/a2a/adapters/qwen.adapter.ts +248 -248
- package/server/modules/orchestration/a2a/agent-card.ts +55 -55
- package/server/modules/orchestration/a2a/routes.ts +590 -590
- package/server/modules/orchestration/a2a/task-store.ts +178 -178
- package/server/modules/orchestration/a2a/types.ts +126 -126
- package/server/modules/orchestration/a2a/validator.ts +113 -113
- package/server/modules/orchestration/hermes/hermes.routes.ts +642 -642
- package/server/modules/orchestration/index.ts +101 -101
- package/server/modules/orchestration/preview/port-watcher.ts +112 -112
- package/server/modules/orchestration/preview/preview-proxy.ts +60 -60
- package/server/modules/orchestration/preview/types.ts +19 -19
- package/server/modules/orchestration/security/permission-policy.ts +401 -401
- package/server/modules/orchestration/tasks/orchestration-task-store.ts +41 -41
- package/server/modules/orchestration/tasks/orchestration-task.routes.ts +64 -64
- package/server/modules/orchestration/tasks/orchestration-task.service.ts +209 -209
- package/server/modules/orchestration/tasks/orchestration-task.types.ts +40 -40
- package/server/modules/orchestration/tasks/task-run-graph.ts +155 -155
- package/server/modules/orchestration/workflows/approval-queue.ts +106 -106
- package/server/modules/orchestration/workflows/built-in-workflows.ts +127 -127
- package/server/modules/orchestration/workflows/context-packet.ts +186 -186
- package/server/modules/orchestration/workflows/handoff-artifact.ts +175 -175
- package/server/modules/orchestration/workflows/workflow-fallback-policy.ts +161 -161
- package/server/modules/orchestration/workflows/workflow-replay.ts +254 -254
- package/server/modules/orchestration/workflows/workflow-runner.ts +2070 -2070
- package/server/modules/orchestration/workflows/workflow-store.ts +97 -97
- package/server/modules/orchestration/workflows/workflow-templates.ts +272 -272
- package/server/modules/orchestration/workflows/workflow-trace.ts +424 -424
- package/server/modules/orchestration/workflows/workflow.routes.ts +586 -586
- package/server/modules/orchestration/workflows/workflow.types.ts +111 -111
- package/server/modules/orchestration/workflows/workspace-target.ts +122 -122
- package/server/modules/orchestration/workspace/docker-workspace.ts +136 -136
- package/server/modules/orchestration/workspace/path-safety.ts +55 -55
- package/server/modules/orchestration/workspace/types.ts +52 -52
- package/server/modules/orchestration/workspace/workspace-manager.ts +102 -102
- package/server/modules/orchestration/workspace/worktree-workspace.ts +126 -126
- package/server/modules/providers/index.ts +2 -2
- package/server/modules/providers/list/claude/claude-auth.provider.ts +146 -146
- package/server/modules/providers/list/claude/claude-mcp.provider.ts +135 -135
- package/server/modules/providers/list/claude/claude-sessions.provider.ts +306 -306
- package/server/modules/providers/list/claude/claude.provider.ts +15 -15
- package/server/modules/providers/list/codex/codex-auth.provider.ts +117 -117
- package/server/modules/providers/list/codex/codex-mcp.provider.ts +135 -135
- package/server/modules/providers/list/codex/codex-sessions.provider.ts +319 -319
- package/server/modules/providers/list/codex/codex.provider.ts +15 -15
- package/server/modules/providers/list/cursor/cursor-auth.provider.ts +147 -147
- package/server/modules/providers/list/cursor/cursor-mcp.provider.ts +108 -108
- package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +421 -421
- package/server/modules/providers/list/cursor/cursor.provider.ts +15 -15
- package/server/modules/providers/list/gemini/gemini-auth.provider.ts +173 -173
- package/server/modules/providers/list/gemini/gemini-mcp.provider.ts +110 -110
- package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +227 -227
- package/server/modules/providers/list/gemini/gemini.provider.ts +15 -15
- package/server/modules/providers/list/opencode/opencode-auth.provider.ts +131 -131
- package/server/modules/providers/list/opencode/opencode-mcp.provider.ts +126 -126
- package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +286 -286
- package/server/modules/providers/list/opencode/opencode.provider.ts +29 -29
- package/server/modules/providers/list/qwen/qwen-auth.provider.ts +146 -146
- package/server/modules/providers/list/qwen/qwen-mcp.provider.ts +114 -114
- package/server/modules/providers/list/qwen/qwen-sessions.provider.ts +265 -265
- package/server/modules/providers/list/qwen/qwen.provider.ts +21 -21
- package/server/modules/providers/provider.registry.ts +40 -40
- package/server/modules/providers/provider.routes.ts +891 -891
- package/server/modules/providers/services/mcp.service.ts +86 -86
- package/server/modules/providers/services/provider-auth.service.ts +26 -26
- package/server/modules/providers/services/sessions.service.ts +45 -45
- package/server/modules/providers/shared/base/abstract.provider.ts +20 -20
- package/server/modules/providers/shared/mcp/mcp.provider.ts +151 -151
- package/server/modules/providers/shared/provider-configs.ts +142 -142
- package/server/modules/providers/tests/mcp.test.ts +293 -293
- package/server/openai-codex.js +462 -462
- package/server/opencode-cli.js +491 -491
- package/server/opencode-response-handler.js +111 -111
- package/server/projects.js +3008 -3008
- package/server/qwen-code-cli.js +410 -410
- package/server/qwen-response-handler.js +73 -73
- package/server/routes/agent.js +1435 -1435
- package/server/routes/auth.js +142 -142
- package/server/routes/codex.js +20 -20
- package/server/routes/commands.js +538 -538
- package/server/routes/cursor.js +61 -61
- package/server/routes/diagnostics.js +41 -41
- package/server/routes/gemini.js +25 -25
- package/server/routes/git.js +1641 -1641
- package/server/routes/live-view.js +387 -387
- package/server/routes/mcp-utils.js +13 -13
- package/server/routes/messages.js +50 -50
- package/server/routes/network.js +117 -117
- package/server/routes/platformization.js +182 -182
- package/server/routes/plugins.js +320 -320
- package/server/routes/production-agent-loop.js +90 -90
- package/server/routes/projects.js +911 -911
- package/server/routes/public-api.js +34 -34
- package/server/routes/qwen.js +27 -27
- package/server/routes/remote.js +50 -50
- package/server/routes/settings.js +321 -321
- package/server/routes/telegram.js +140 -140
- package/server/routes/user.js +125 -125
- package/server/routes/webhooks.js +63 -63
- package/server/services/control-room.js +102 -102
- package/server/services/diagnostics.js +165 -165
- package/server/services/external-access.js +375 -375
- package/server/services/hermes-gateway.js +1562 -1562
- package/server/services/hermes-install-jobs.js +729 -729
- package/server/services/install-jobs.js +715 -715
- package/server/services/live-view.js +956 -956
- package/server/services/managed-runtimes.js +493 -493
- package/server/services/model-registry.js +144 -144
- package/server/services/notification-orchestrator.js +365 -365
- package/server/services/notification-taxonomy.js +204 -204
- package/server/services/platformization.js +773 -773
- package/server/services/production-agent-loop.js +248 -248
- package/server/services/provider-cli-versions.js +149 -149
- package/server/services/provider-credentials.js +189 -189
- package/server/services/provider-models.js +396 -396
- package/server/services/public-api-manifest.js +190 -190
- package/server/services/remote-connection.js +127 -127
- package/server/services/runtime-manager.js +323 -323
- package/server/services/startup-update.js +234 -234
- package/server/services/telegram/bot.js +331 -331
- package/server/services/telegram/control-center.js +979 -979
- package/server/services/telegram/telegram-http-client.js +151 -151
- package/server/services/telegram/translations.js +340 -340
- package/server/services/vapid-keys.js +36 -36
- package/server/services/webhooks.js +216 -216
- package/server/sessionManager.js +225 -225
- package/server/shared/interfaces.ts +54 -54
- package/server/shared/types.ts +172 -172
- package/server/shared/utils.ts +193 -193
- package/server/tsconfig.json +36 -36
- package/server/utils/colors.js +21 -21
- package/server/utils/commandParser.js +305 -305
- package/server/utils/frontmatter.js +18 -18
- package/server/utils/gitConfig.js +34 -34
- package/server/utils/plugin-loader.js +457 -457
- package/server/utils/plugin-process-manager.js +185 -185
- package/server/utils/port-access.js +209 -209
- package/server/utils/runtime-paths.js +37 -37
- package/server/utils/url-detection.js +71 -71
- package/server/vite-daemon.js +79 -79
- package/shared/modelConstants.js +161 -161
- package/shared/networkHosts.js +22 -22
|
@@ -144,31 +144,31 @@ function getProviderDefaultModel(provider) {
|
|
|
144
144
|
*/
|
|
145
145
|
const builtInHandlers = {
|
|
146
146
|
'/help': async (args, context) => {
|
|
147
|
-
const helpText = `# Claude Code Commands
|
|
148
|
-
|
|
149
|
-
## Built-in Commands
|
|
150
|
-
|
|
151
|
-
${builtInCommands.map(cmd => `### ${cmd.name}
|
|
152
|
-
${cmd.description}
|
|
153
|
-
`).join('\n')}
|
|
154
|
-
|
|
155
|
-
## Custom Commands
|
|
156
|
-
|
|
157
|
-
Custom commands can be created in:
|
|
158
|
-
- Project: \`.claude/commands/\` (project-specific)
|
|
159
|
-
- User: \`~/.claude/commands/\` (available in all projects)
|
|
160
|
-
|
|
161
|
-
### Command Syntax
|
|
162
|
-
|
|
163
|
-
- **Arguments**: Use \`$ARGUMENTS\` for all args or \`$1\`, \`$2\`, etc. for positional
|
|
164
|
-
- **File Includes**: Use \`@filename\` to include file contents
|
|
165
|
-
- **Bash Commands**: Use \`!command\` to execute bash commands
|
|
166
|
-
|
|
167
|
-
### Examples
|
|
168
|
-
|
|
169
|
-
\`\`\`markdown
|
|
170
|
-
/mycommand arg1 arg2
|
|
171
|
-
\`\`\`
|
|
147
|
+
const helpText = `# Claude Code Commands
|
|
148
|
+
|
|
149
|
+
## Built-in Commands
|
|
150
|
+
|
|
151
|
+
${builtInCommands.map(cmd => `### ${cmd.name}
|
|
152
|
+
${cmd.description}
|
|
153
|
+
`).join('\n')}
|
|
154
|
+
|
|
155
|
+
## Custom Commands
|
|
156
|
+
|
|
157
|
+
Custom commands can be created in:
|
|
158
|
+
- Project: \`.claude/commands/\` (project-specific)
|
|
159
|
+
- User: \`~/.claude/commands/\` (available in all projects)
|
|
160
|
+
|
|
161
|
+
### Command Syntax
|
|
162
|
+
|
|
163
|
+
- **Arguments**: Use \`$ARGUMENTS\` for all args or \`$1\`, \`$2\`, etc. for positional
|
|
164
|
+
- **File Includes**: Use \`@filename\` to include file contents
|
|
165
|
+
- **Bash Commands**: Use \`!command\` to execute bash commands
|
|
166
|
+
|
|
167
|
+
### Examples
|
|
168
|
+
|
|
169
|
+
\`\`\`markdown
|
|
170
|
+
/mycommand arg1 arg2
|
|
171
|
+
\`\`\`
|
|
172
172
|
`;
|
|
173
173
|
return {
|
|
174
174
|
type: 'builtin',
|
|
@@ -906,23 +906,23 @@ router.post('/generate-commit-message', async (req, res) => {
|
|
|
906
906
|
*/
|
|
907
907
|
async function generateCommitMessageWithAI(files, diffContext, provider, projectPath) {
|
|
908
908
|
// Create the prompt
|
|
909
|
-
const prompt = `Generate a conventional commit message for these changes.
|
|
910
|
-
|
|
911
|
-
REQUIREMENTS:
|
|
912
|
-
- Format: type(scope): subject
|
|
913
|
-
- Include body explaining what changed and why
|
|
914
|
-
- Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore
|
|
915
|
-
- Subject under 50 chars, body wrapped at 72 chars
|
|
916
|
-
- Focus on user-facing changes, not implementation details
|
|
917
|
-
- Consider what's being added AND removed
|
|
918
|
-
- Return ONLY the commit message (no markdown, explanations, or code blocks)
|
|
919
|
-
|
|
920
|
-
FILES CHANGED:
|
|
921
|
-
${files.map(f => `- ${f}`).join('\n')}
|
|
922
|
-
|
|
923
|
-
DIFFS:
|
|
924
|
-
${diffContext.substring(0, 4000)}
|
|
925
|
-
|
|
909
|
+
const prompt = `Generate a conventional commit message for these changes.
|
|
910
|
+
|
|
911
|
+
REQUIREMENTS:
|
|
912
|
+
- Format: type(scope): subject
|
|
913
|
+
- Include body explaining what changed and why
|
|
914
|
+
- Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore
|
|
915
|
+
- Subject under 50 chars, body wrapped at 72 chars
|
|
916
|
+
- Focus on user-facing changes, not implementation details
|
|
917
|
+
- Consider what's being added AND removed
|
|
918
|
+
- Return ONLY the commit message (no markdown, explanations, or code blocks)
|
|
919
|
+
|
|
920
|
+
FILES CHANGED:
|
|
921
|
+
${files.map(f => `- ${f}`).join('\n')}
|
|
922
|
+
|
|
923
|
+
DIFFS:
|
|
924
|
+
${diffContext.substring(0, 4000)}
|
|
925
|
+
|
|
926
926
|
Generate the commit message:`;
|
|
927
927
|
try {
|
|
928
928
|
// Create a simple writer that collects the response
|
|
@@ -124,52 +124,52 @@ export function renderLiveViewDiagnosticHtml(payload) {
|
|
|
124
124
|
const logs = payload.diagnostics?.logs?.length
|
|
125
125
|
? payload.diagnostics.logs.map((line) => escapeHtml(line)).join('\n')
|
|
126
126
|
: 'No process logs were captured yet.';
|
|
127
|
-
return `<!doctype html>
|
|
128
|
-
<html lang="en">
|
|
129
|
-
<head>
|
|
130
|
-
<meta charset="utf-8">
|
|
131
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
132
|
-
<title>Pixcode Live View diagnostics</title>
|
|
133
|
-
<style>
|
|
134
|
-
:root { color-scheme: light dark; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
|
|
135
|
-
body { margin: 0; min-height: 100vh; background: #0b0f14; color: #e5edf5; }
|
|
136
|
-
main { box-sizing: border-box; max-width: 980px; margin: 0 auto; padding: 32px 20px; }
|
|
137
|
-
.eyebrow { color: #f97316; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
|
|
138
|
-
h1 { margin: 8px 0 10px; font-size: clamp(26px, 5vw, 44px); line-height: 1.05; }
|
|
139
|
-
p { color: #a8b3c2; line-height: 1.6; }
|
|
140
|
-
section { margin-top: 18px; border: 1px solid rgba(148, 163, 184, .24); border-radius: 12px; background: rgba(15, 23, 42, .72); padding: 16px; }
|
|
141
|
-
dl { display: grid; grid-template-columns: minmax(110px, 180px) minmax(0, 1fr); gap: 10px 14px; margin: 0; }
|
|
142
|
-
dt { color: #94a3b8; font-size: 12px; text-transform: uppercase; }
|
|
143
|
-
dd { margin: 0; overflow-wrap: anywhere; }
|
|
144
|
-
pre { margin: 0; max-height: 280px; overflow: auto; white-space: pre-wrap; color: #dbeafe; background: #020617; border-radius: 10px; padding: 14px; }
|
|
145
|
-
code { color: #bfdbfe; }
|
|
146
|
-
li { margin: 8px 0; color: #d0d8e4; }
|
|
147
|
-
</style>
|
|
148
|
-
</head>
|
|
149
|
-
<body>
|
|
150
|
-
<main>
|
|
151
|
-
<div class="eyebrow">Pixcode Live View</div>
|
|
152
|
-
<h1>${escapeHtml(payload.message)}</h1>
|
|
153
|
-
<p>${escapeHtml(payload.errorDetail || 'The preview link is active, but the local runner is not ready.')}</p>
|
|
154
|
-
<section>
|
|
155
|
-
<dl>
|
|
156
|
-
<dt>Status</dt><dd>${escapeHtml(payload.status)}</dd>
|
|
157
|
-
<dt>Framework</dt><dd>${escapeHtml(payload.framework || 'Unknown')}</dd>
|
|
158
|
-
<dt>Command</dt><dd><code>${escapeHtml(payload.diagnostics?.command || 'No command captured')}</code></dd>
|
|
159
|
-
<dt>Upstream</dt><dd>${escapeHtml(payload.upstreamUrl || 'Not ready')}</dd>
|
|
160
|
-
<dt>Share ID</dt><dd>${escapeHtml(payload.shareId || 'Unknown')}</dd>
|
|
161
|
-
</dl>
|
|
162
|
-
</section>
|
|
163
|
-
<section>
|
|
164
|
-
<h2>What to check</h2>
|
|
165
|
-
<ul>${suggestions}</ul>
|
|
166
|
-
</section>
|
|
167
|
-
<section>
|
|
168
|
-
<h2>Process logs</h2>
|
|
169
|
-
<pre>${logs}</pre>
|
|
170
|
-
</section>
|
|
171
|
-
</main>
|
|
172
|
-
</body>
|
|
127
|
+
return `<!doctype html>
|
|
128
|
+
<html lang="en">
|
|
129
|
+
<head>
|
|
130
|
+
<meta charset="utf-8">
|
|
131
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
132
|
+
<title>Pixcode Live View diagnostics</title>
|
|
133
|
+
<style>
|
|
134
|
+
:root { color-scheme: light dark; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
|
|
135
|
+
body { margin: 0; min-height: 100vh; background: #0b0f14; color: #e5edf5; }
|
|
136
|
+
main { box-sizing: border-box; max-width: 980px; margin: 0 auto; padding: 32px 20px; }
|
|
137
|
+
.eyebrow { color: #f97316; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
|
|
138
|
+
h1 { margin: 8px 0 10px; font-size: clamp(26px, 5vw, 44px); line-height: 1.05; }
|
|
139
|
+
p { color: #a8b3c2; line-height: 1.6; }
|
|
140
|
+
section { margin-top: 18px; border: 1px solid rgba(148, 163, 184, .24); border-radius: 12px; background: rgba(15, 23, 42, .72); padding: 16px; }
|
|
141
|
+
dl { display: grid; grid-template-columns: minmax(110px, 180px) minmax(0, 1fr); gap: 10px 14px; margin: 0; }
|
|
142
|
+
dt { color: #94a3b8; font-size: 12px; text-transform: uppercase; }
|
|
143
|
+
dd { margin: 0; overflow-wrap: anywhere; }
|
|
144
|
+
pre { margin: 0; max-height: 280px; overflow: auto; white-space: pre-wrap; color: #dbeafe; background: #020617; border-radius: 10px; padding: 14px; }
|
|
145
|
+
code { color: #bfdbfe; }
|
|
146
|
+
li { margin: 8px 0; color: #d0d8e4; }
|
|
147
|
+
</style>
|
|
148
|
+
</head>
|
|
149
|
+
<body>
|
|
150
|
+
<main>
|
|
151
|
+
<div class="eyebrow">Pixcode Live View</div>
|
|
152
|
+
<h1>${escapeHtml(payload.message)}</h1>
|
|
153
|
+
<p>${escapeHtml(payload.errorDetail || 'The preview link is active, but the local runner is not ready.')}</p>
|
|
154
|
+
<section>
|
|
155
|
+
<dl>
|
|
156
|
+
<dt>Status</dt><dd>${escapeHtml(payload.status)}</dd>
|
|
157
|
+
<dt>Framework</dt><dd>${escapeHtml(payload.framework || 'Unknown')}</dd>
|
|
158
|
+
<dt>Command</dt><dd><code>${escapeHtml(payload.diagnostics?.command || 'No command captured')}</code></dd>
|
|
159
|
+
<dt>Upstream</dt><dd>${escapeHtml(payload.upstreamUrl || 'Not ready')}</dd>
|
|
160
|
+
<dt>Share ID</dt><dd>${escapeHtml(payload.shareId || 'Unknown')}</dd>
|
|
161
|
+
</dl>
|
|
162
|
+
</section>
|
|
163
|
+
<section>
|
|
164
|
+
<h2>What to check</h2>
|
|
165
|
+
<ul>${suggestions}</ul>
|
|
166
|
+
</section>
|
|
167
|
+
<section>
|
|
168
|
+
<h2>Process logs</h2>
|
|
169
|
+
<pre>${logs}</pre>
|
|
170
|
+
</section>
|
|
171
|
+
</main>
|
|
172
|
+
</body>
|
|
173
173
|
</html>`;
|
|
174
174
|
}
|
|
175
175
|
function requestPrefersHtml(req) {
|
|
@@ -531,11 +531,11 @@ function readHermesSessionSummary(hermesHome, limit = 5) {
|
|
|
531
531
|
try {
|
|
532
532
|
db = new Database(dbPath, { readonly: true, fileMustExist: true });
|
|
533
533
|
const total = db.prepare('SELECT COUNT(*) AS count FROM sessions').get()?.count ?? 0;
|
|
534
|
-
const recent = db.prepare(`
|
|
535
|
-
SELECT id, source, started_at, ended_at, message_count, model, title
|
|
536
|
-
FROM sessions
|
|
537
|
-
ORDER BY started_at DESC
|
|
538
|
-
LIMIT ?
|
|
534
|
+
const recent = db.prepare(`
|
|
535
|
+
SELECT id, source, started_at, ended_at, message_count, model, title
|
|
536
|
+
FROM sessions
|
|
537
|
+
ORDER BY started_at DESC
|
|
538
|
+
LIMIT ?
|
|
539
539
|
`).all(limit).map((row) => ({
|
|
540
540
|
id: row.id,
|
|
541
541
|
source: row.source || null,
|
|
@@ -61,57 +61,57 @@ export function buildPublicApiManifest({ baseUrl = '' } = {}) {
|
|
|
61
61
|
}
|
|
62
62
|
export function buildTypeScriptSdkStarter({ baseUrl = '' } = {}) {
|
|
63
63
|
const origin = String(baseUrl || 'http://127.0.0.1:3001').replace(/\/+$/, '');
|
|
64
|
-
return `export type PixcodeRun = {
|
|
65
|
-
id: string;
|
|
66
|
-
workflowId: string;
|
|
67
|
-
status: 'queued' | 'running' | 'completed' | 'failed' | 'canceled';
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export class PixcodeClient {
|
|
71
|
-
constructor(
|
|
72
|
-
private readonly apiKey: string,
|
|
73
|
-
private readonly baseUrl = '${origin}',
|
|
74
|
-
) {}
|
|
75
|
-
|
|
76
|
-
private async request<T>(path: string, init: RequestInit = {}): Promise<T> {
|
|
77
|
-
const response = await fetch(new URL(path, this.baseUrl), {
|
|
78
|
-
...init,
|
|
79
|
-
headers: {
|
|
80
|
-
'Content-Type': 'application/json',
|
|
81
|
-
'X-API-Key': this.apiKey,
|
|
82
|
-
...(init.headers || {}),
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
if (!response.ok) throw new Error(\`Pixcode API \${response.status}: \${await response.text()}\`);
|
|
86
|
-
return response.json() as Promise<T>;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
projects() {
|
|
90
|
-
return this.request<{ projects: unknown[] }>('/api/projects');
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
controlRoom() {
|
|
94
|
-
return this.request<{ success: true; controlRoom: unknown }>('/api/remote/control-room');
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
approvals() {
|
|
98
|
-
return this.request<{ pendingApprovals: unknown[] }>('/api/orchestration/workflows/approvals');
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
decideApproval(approvalId: string, allow: boolean) {
|
|
102
|
-
return this.request(\`/api/orchestration/workflows/approvals/\${encodeURIComponent(approvalId)}\`, {
|
|
103
|
-
method: 'POST',
|
|
104
|
-
body: JSON.stringify({ allow, source: 'api' }),
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
startWorkflow(workflowId: string, input: string, metadata: Record<string, unknown> = {}) {
|
|
109
|
-
return this.request<PixcodeRun>(\`/api/orchestration/workflows/\${encodeURIComponent(workflowId)}/runs\`, {
|
|
110
|
-
method: 'POST',
|
|
111
|
-
body: JSON.stringify({ input, metadata }),
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
64
|
+
return `export type PixcodeRun = {
|
|
65
|
+
id: string;
|
|
66
|
+
workflowId: string;
|
|
67
|
+
status: 'queued' | 'running' | 'completed' | 'failed' | 'canceled';
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export class PixcodeClient {
|
|
71
|
+
constructor(
|
|
72
|
+
private readonly apiKey: string,
|
|
73
|
+
private readonly baseUrl = '${origin}',
|
|
74
|
+
) {}
|
|
75
|
+
|
|
76
|
+
private async request<T>(path: string, init: RequestInit = {}): Promise<T> {
|
|
77
|
+
const response = await fetch(new URL(path, this.baseUrl), {
|
|
78
|
+
...init,
|
|
79
|
+
headers: {
|
|
80
|
+
'Content-Type': 'application/json',
|
|
81
|
+
'X-API-Key': this.apiKey,
|
|
82
|
+
...(init.headers || {}),
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
if (!response.ok) throw new Error(\`Pixcode API \${response.status}: \${await response.text()}\`);
|
|
86
|
+
return response.json() as Promise<T>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
projects() {
|
|
90
|
+
return this.request<{ projects: unknown[] }>('/api/projects');
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
controlRoom() {
|
|
94
|
+
return this.request<{ success: true; controlRoom: unknown }>('/api/remote/control-room');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
approvals() {
|
|
98
|
+
return this.request<{ pendingApprovals: unknown[] }>('/api/orchestration/workflows/approvals');
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
decideApproval(approvalId: string, allow: boolean) {
|
|
102
|
+
return this.request(\`/api/orchestration/workflows/approvals/\${encodeURIComponent(approvalId)}\`, {
|
|
103
|
+
method: 'POST',
|
|
104
|
+
body: JSON.stringify({ allow, source: 'api' }),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
startWorkflow(workflowId: string, input: string, metadata: Record<string, unknown> = {}) {
|
|
109
|
+
return this.request<PixcodeRun>(\`/api/orchestration/workflows/\${encodeURIComponent(workflowId)}/runs\`, {
|
|
110
|
+
method: 'POST',
|
|
111
|
+
body: JSON.stringify({ input, metadata }),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
115
|
`;
|
|
116
116
|
}
|
|
117
117
|
export function buildCurlCookbook({ baseUrl = '' } = {}) {
|