neondeck 1.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +76 -0
- package/DEVELOPMENT.md +304 -0
- package/LICENSE +21 -0
- package/README.md +129 -0
- package/SOUL.md +8 -0
- package/bin/neondeck.mjs +27 -0
- package/config/dashboard.json +224 -0
- package/config/dashboard.schema.json +247 -0
- package/dist/SOUL.md +8 -0
- package/dist/assets/app-CnXGMuTl.js +3878 -0
- package/dist/assets/app-CnXGMuTl.js.map +1 -0
- package/dist/assets/autopilot-B8lfWyA1.js +68813 -0
- package/dist/assets/autopilot-B8lfWyA1.js.map +1 -0
- package/dist/assets/briefing-BT8h9XXT.js +52 -0
- package/dist/assets/briefing-BT8h9XXT.js.map +1 -0
- package/dist/assets/briefing-VMdQPEGc.js +2 -0
- package/dist/assets/briefings-DuApznpN.js +1596 -0
- package/dist/assets/briefings-DuApznpN.js.map +1 -0
- package/dist/assets/command-run-CnPOA8iY.js +20 -0
- package/dist/assets/command-run-CnPOA8iY.js.map +1 -0
- package/dist/assets/command-run-Smpq7waT.js +2 -0
- package/dist/assets/display-assistant-CKU4YJlc.js +392 -0
- package/dist/assets/display-assistant-CKU4YJlc.js.map +1 -0
- package/dist/assets/fix-pr-ci-Ce2SIcyf.js +46 -0
- package/dist/assets/fix-pr-ci-Ce2SIcyf.js.map +1 -0
- package/dist/assets/fix-pr-ci-P3dLxmbx.js +2 -0
- package/dist/assets/migrations/20260710061339_neondeck_pre_1_0_baseline/migration.sql +748 -0
- package/dist/assets/migrations/20260710061339_neondeck_pre_1_0_baseline/snapshot.json +7126 -0
- package/dist/assets/migrations/20260711171708_conversational_briefings/migration.sql +35 -0
- package/dist/assets/migrations/20260711171708_conversational_briefings/snapshot.json +7458 -0
- package/dist/assets/migrations/20260714191624_worktree_lock_revocation/migration.sql +1 -0
- package/dist/assets/migrations/20260714191624_worktree_lock_revocation/snapshot.json +7468 -0
- package/dist/assets/migrations/20260714213018_pr_reviews/migration.sql +34 -0
- package/dist/assets/migrations/20260714213018_pr_reviews/snapshot.json +7809 -0
- package/dist/assets/pr-reviews-BtJ5cm5P.js +521 -0
- package/dist/assets/pr-reviews-BtJ5cm5P.js.map +1 -0
- package/dist/assets/prepare-pr-worktree-B0qMZMRP.js +2 -0
- package/dist/assets/prepare-pr-worktree-C7SmiaTp.js +17 -0
- package/dist/assets/prepare-pr-worktree-C7SmiaTp.js.map +1 -0
- package/dist/assets/push-pr-autofix-CsMbrnXR.js +17 -0
- package/dist/assets/push-pr-autofix-CsMbrnXR.js.map +1 -0
- package/dist/assets/push-pr-autofix-njuM6ej2.js +2 -0
- package/dist/assets/review-pr-for-human-CEciM46A.js +2 -0
- package/dist/assets/review-pr-for-human-TPiQNRWV.js +790 -0
- package/dist/assets/review-pr-for-human-TPiQNRWV.js.map +1 -0
- package/dist/assets/safety-BQC7exnI.js +1931 -0
- package/dist/assets/safety-BQC7exnI.js.map +1 -0
- package/dist/assets/scheduled-agent-instruction-BbxwCKbU.js +2 -0
- package/dist/assets/scheduled-agent-instruction-C58itQyU.js +22 -0
- package/dist/assets/scheduled-agent-instruction-C58itQyU.js.map +1 -0
- package/dist/assets/scheduler-tick-B2S9jCYS.js +90 -0
- package/dist/assets/scheduler-tick-B2S9jCYS.js.map +1 -0
- package/dist/assets/scheduler-workflow-CnI0tWbg.js +21 -0
- package/dist/assets/scheduler-workflow-CnI0tWbg.js.map +1 -0
- package/dist/assets/skills/github-gh/SKILL.md +56 -0
- package/dist/assets/skills/neon-ci-fix/SKILL.md +15 -0
- package/dist/assets/skills/neon-docs-fix/SKILL.md +15 -0
- package/dist/assets/skills/neon-issue-triage/SKILL.md +13 -0
- package/dist/assets/skills/neon-pr-review/SKILL.md +19 -0
- package/dist/assets/skills/neondeck/SKILL.md +127 -0
- package/dist/assets/skills/neondeck-handoff/SKILL.md +31 -0
- package/dist/assets/triage-pr-event-CBje6df5.js +2 -0
- package/dist/assets/triage-pr-event-IgC-IrNs.js +17 -0
- package/dist/assets/triage-pr-event-IgC-IrNs.js.map +1 -0
- package/dist/assets/verify-then-push-pr-autofix-C5Dpomtd.js +75 -0
- package/dist/assets/verify-then-push-pr-autofix-C5Dpomtd.js.map +1 -0
- package/dist/assets/verify-then-push-pr-autofix-oZ0-wa7L.js +2 -0
- package/dist/config/dashboard.json +224 -0
- package/dist/config/dashboard.schema.json +247 -0
- package/dist/server.mjs +583 -0
- package/dist/server.mjs.map +1 -0
- package/dist/skills/github-gh/SKILL.md +56 -0
- package/dist/skills/neon-ci-fix/SKILL.md +15 -0
- package/dist/skills/neon-docs-fix/SKILL.md +15 -0
- package/dist/skills/neon-issue-triage/SKILL.md +13 -0
- package/dist/skills/neon-pr-review/SKILL.md +19 -0
- package/dist/skills/neondeck/SKILL.md +127 -0
- package/dist/skills/neondeck-handoff/SKILL.md +31 -0
- package/drizzle.config.ts +7 -0
- package/package.json +156 -0
- package/shared/patch-anchors.ts +78 -0
- package/shared/report-document.ts +91 -0
- package/src/agents/busywork-workflow.ts +24 -0
- package/src/agents/display-assistant.ts +137 -0
- package/src/agents/pr-review-assistant.ts +25 -0
- package/src/agents/scheduler-workflow.ts +20 -0
- package/src/agents/support/tools.ts +346 -0
- package/src/app.ts +1 -0
- package/src/cli/index.ts +560 -0
- package/src/cli/learning.ts +44 -0
- package/src/cli/mcp.ts +496 -0
- package/src/cli/modules.ts +107 -0
- package/src/cli/onboarding.ts +666 -0
- package/src/cli/options.ts +102 -0
- package/src/cli/output.ts +399 -0
- package/src/cli/preapprovals.ts +204 -0
- package/src/cli/prompts.ts +108 -0
- package/src/cli/types.ts +59 -0
- package/src/db.ts +41 -0
- package/src/desktop/open.ts +698 -0
- package/src/desktop/service.ts +863 -0
- package/src/domains/mcp/actions.ts +420 -0
- package/src/domains/mcp/config.ts +501 -0
- package/src/domains/mcp/format.ts +35 -0
- package/src/domains/mcp/gate.ts +188 -0
- package/src/domains/mcp/index.ts +9 -0
- package/src/domains/mcp/instructions.ts +18 -0
- package/src/domains/mcp/oauth.ts +1063 -0
- package/src/domains/mcp/policy.ts +15 -0
- package/src/domains/mcp/registry.ts +461 -0
- package/src/domains/mcp/schemas.ts +171 -0
- package/src/domains/mcp/stdio.ts +451 -0
- package/src/domains/mcp/store.ts +905 -0
- package/src/domains/mcp/tools.ts +119 -0
- package/src/lib/action-result.ts +51 -0
- package/src/lib/exec.ts +118 -0
- package/src/lib/git.ts +20 -0
- package/src/lib/report-html.ts +193 -0
- package/src/lib/sqlite.ts +51 -0
- package/src/lib/valibot.ts +33 -0
- package/src/modules/app-state/index.ts +4 -0
- package/src/modules/app-state/notification-events.ts +44 -0
- package/src/modules/app-state/notifications.ts +259 -0
- package/src/modules/app-state/types.ts +42 -0
- package/src/modules/app-state/workflow-summaries.ts +201 -0
- package/src/modules/autonomous-audit/index.ts +225 -0
- package/src/modules/autopilot/actions.ts +186 -0
- package/src/modules/autopilot/admissions.ts +865 -0
- package/src/modules/autopilot/approvals.ts +59 -0
- package/src/modules/autopilot/ci-fix-run.ts +1332 -0
- package/src/modules/autopilot/ci-fix.ts +718 -0
- package/src/modules/autopilot/comments.ts +426 -0
- package/src/modules/autopilot/fixtures.ts +344 -0
- package/src/modules/autopilot/github-facts.ts +306 -0
- package/src/modules/autopilot/index.ts +64 -0
- package/src/modules/autopilot/notifications.ts +271 -0
- package/src/modules/autopilot/push-support.ts +260 -0
- package/src/modules/autopilot/push.ts +670 -0
- package/src/modules/autopilot/recovery.ts +656 -0
- package/src/modules/autopilot/review-feedback.ts +649 -0
- package/src/modules/autopilot/review-support.ts +524 -0
- package/src/modules/autopilot/revision-run.ts +445 -0
- package/src/modules/autopilot/schemas.ts +485 -0
- package/src/modules/autopilot/state-mappers.ts +517 -0
- package/src/modules/autopilot/state-schemas.ts +450 -0
- package/src/modules/autopilot/state-store.ts +183 -0
- package/src/modules/autopilot/state.ts +255 -0
- package/src/modules/autopilot/triage-support.ts +234 -0
- package/src/modules/autopilot/triage.ts +156 -0
- package/src/modules/autopilot/utils.ts +145 -0
- package/src/modules/autopilot/worktree.ts +637 -0
- package/src/modules/autopilot-policy/config.ts +101 -0
- package/src/modules/autopilot-policy/index.ts +4 -0
- package/src/modules/autopilot-policy/risk.ts +359 -0
- package/src/modules/autopilot-policy/schemas.ts +229 -0
- package/src/modules/autopilot-policy/service.ts +272 -0
- package/src/modules/briefings/actions.ts +80 -0
- package/src/modules/briefings/index.ts +5 -0
- package/src/modules/briefings/schemas.ts +125 -0
- package/src/modules/briefings/service.ts +642 -0
- package/src/modules/briefings/snapshot.ts +291 -0
- package/src/modules/briefings/store.ts +644 -0
- package/src/modules/commands/actions.ts +112 -0
- package/src/modules/commands/handlers/index.ts +3 -0
- package/src/modules/commands/handlers/misc.ts +367 -0
- package/src/modules/commands/handlers/queue.ts +710 -0
- package/src/modules/commands/handlers/repo.ts +339 -0
- package/src/modules/commands/index.ts +5 -0
- package/src/modules/commands/registry.ts +157 -0
- package/src/modules/commands/runner.ts +152 -0
- package/src/modules/commands/schemas.ts +109 -0
- package/src/modules/commands/summaries.ts +108 -0
- package/src/modules/commands/utils.ts +113 -0
- package/src/modules/config/actions.ts +253 -0
- package/src/modules/config/events.ts +80 -0
- package/src/modules/config/files.ts +9 -0
- package/src/modules/config/history.ts +74 -0
- package/src/modules/config/index.ts +9 -0
- package/src/modules/config/mutations/dashboard.ts +333 -0
- package/src/modules/config/mutations/execution.ts +89 -0
- package/src/modules/config/mutations/models.ts +467 -0
- package/src/modules/config/mutations/providers.ts +163 -0
- package/src/modules/config/mutations/repos.ts +663 -0
- package/src/modules/config/read.ts +130 -0
- package/src/modules/config/result.ts +66 -0
- package/src/modules/config/schemas.ts +180 -0
- package/src/modules/docs-drift/index.ts +1 -0
- package/src/modules/docs-drift/service.ts +863 -0
- package/src/modules/execution/actions.ts +35 -0
- package/src/modules/execution/approvals.ts +322 -0
- package/src/modules/execution/exedev/checkouts.ts +356 -0
- package/src/modules/execution/exedev/context.ts +286 -0
- package/src/modules/execution/index.ts +7 -0
- package/src/modules/execution/policy.ts +102 -0
- package/src/modules/execution/run.ts +589 -0
- package/src/modules/execution/schemas.ts +116 -0
- package/src/modules/execution/scope.ts +137 -0
- package/src/modules/execution/store.ts +320 -0
- package/src/modules/execution/utils.ts +105 -0
- package/src/modules/execution-policy/index.ts +424 -0
- package/src/modules/flue/execution-context.ts +40 -0
- package/src/modules/flue/index.ts +2 -0
- package/src/modules/flue/origin.ts +7 -0
- package/src/modules/github/actions.ts +334 -0
- package/src/modules/github/checks.ts +484 -0
- package/src/modules/github/client.ts +110 -0
- package/src/modules/github/comments.ts +204 -0
- package/src/modules/github/errors.ts +50 -0
- package/src/modules/github/index.ts +93 -0
- package/src/modules/github/issues.ts +116 -0
- package/src/modules/github/pr-file-cache.ts +264 -0
- package/src/modules/github/pull-requests.ts +411 -0
- package/src/modules/github/queue.ts +350 -0
- package/src/modules/github/reviews.ts +1446 -0
- package/src/modules/github/schemas.ts +794 -0
- package/src/modules/github/state-truncation.ts +31 -0
- package/src/modules/handoff/index.ts +2 -0
- package/src/modules/handoff/schemas.ts +61 -0
- package/src/modules/handoff/service.ts +587 -0
- package/src/modules/hygiene/index.ts +1 -0
- package/src/modules/hygiene/service.ts +513 -0
- package/src/modules/kilo/actions.ts +229 -0
- package/src/modules/kilo/ci-fix-run-reconcile.ts +299 -0
- package/src/modules/kilo/docs-drift-boundary.ts +178 -0
- package/src/modules/kilo/index.ts +8 -0
- package/src/modules/kilo/notifications.ts +295 -0
- package/src/modules/kilo/process.ts +637 -0
- package/src/modules/kilo/results/actions.ts +66 -0
- package/src/modules/kilo/results/gates.ts +227 -0
- package/src/modules/kilo/results/index.ts +23 -0
- package/src/modules/kilo/results/schemas.ts +112 -0
- package/src/modules/kilo/results/service.ts +512 -0
- package/src/modules/kilo/results/state.ts +508 -0
- package/src/modules/kilo/results/verify.ts +328 -0
- package/src/modules/kilo/revision-reconcile.ts +187 -0
- package/src/modules/kilo/runtime-facts.ts +128 -0
- package/src/modules/kilo/schemas.ts +265 -0
- package/src/modules/kilo/service.ts +714 -0
- package/src/modules/kilo/sessions-adapters.ts +343 -0
- package/src/modules/kilo/sessions.ts +446 -0
- package/src/modules/kilo/store.ts +689 -0
- package/src/modules/kilo/utils.ts +166 -0
- package/src/modules/learning/automation-health.ts +441 -0
- package/src/modules/learning/automation-memory.ts +179 -0
- package/src/modules/learning/index.ts +6 -0
- package/src/modules/learning/observability.ts +616 -0
- package/src/modules/learning/operator.ts +404 -0
- package/src/modules/learning/reviews/agents.ts +33 -0
- package/src/modules/learning/reviews/complete.ts +321 -0
- package/src/modules/learning/reviews/context.ts +145 -0
- package/src/modules/learning/reviews/events.ts +306 -0
- package/src/modules/learning/reviews/index.ts +6 -0
- package/src/modules/learning/reviews/pr-cadence.ts +157 -0
- package/src/modules/learning/reviews/pr-context.ts +749 -0
- package/src/modules/learning/reviews/prepare.ts +387 -0
- package/src/modules/learning/reviews/schemas.ts +184 -0
- package/src/modules/learning/reviews/store.ts +405 -0
- package/src/modules/learning/skill-patches/actions.ts +86 -0
- package/src/modules/learning/skill-patches/index.ts +3 -0
- package/src/modules/learning/skill-patches/schemas.ts +60 -0
- package/src/modules/learning/skill-patches/service.ts +571 -0
- package/src/modules/learning/skill-patches/support.ts +417 -0
- package/src/modules/memory/actions.ts +183 -0
- package/src/modules/memory/candidates.ts +525 -0
- package/src/modules/memory/events.ts +2 -0
- package/src/modules/memory/index.ts +6 -0
- package/src/modules/memory/prompt.ts +214 -0
- package/src/modules/memory/schemas.ts +170 -0
- package/src/modules/memory/service.ts +578 -0
- package/src/modules/memory/store.ts +489 -0
- package/src/modules/pr-events/actions.ts +191 -0
- package/src/modules/pr-events/index.ts +46 -0
- package/src/modules/pr-events/schemas.ts +186 -0
- package/src/modules/pr-events/service.ts +1414 -0
- package/src/modules/pr-events/target.ts +222 -0
- package/src/modules/pr-events/utils.ts +85 -0
- package/src/modules/pr-events/watermarks.ts +308 -0
- package/src/modules/pr-local-diffs/index.ts +334 -0
- package/src/modules/pr-review-assist/actions.ts +239 -0
- package/src/modules/pr-review-assist/index.ts +3 -0
- package/src/modules/pr-review-assist/schemas.ts +86 -0
- package/src/modules/pr-review-assist/service.ts +706 -0
- package/src/modules/pr-reviews/events.ts +39 -0
- package/src/modules/pr-reviews/index.ts +4 -0
- package/src/modules/pr-reviews/service.ts +655 -0
- package/src/modules/pr-reviews/store.ts +186 -0
- package/src/modules/pr-reviews/types.ts +48 -0
- package/src/modules/prepared-diffs/actions.ts +132 -0
- package/src/modules/prepared-diffs/index.ts +53 -0
- package/src/modules/prepared-diffs/schemas.ts +255 -0
- package/src/modules/prepared-diffs/service.ts +791 -0
- package/src/modules/prepared-diffs/store.ts +678 -0
- package/src/modules/repo-guardrails/config.ts +61 -0
- package/src/modules/repo-guardrails/index.ts +162 -0
- package/src/modules/repo-guardrails/risk.ts +2 -0
- package/src/modules/reports/index.ts +1 -0
- package/src/modules/reports/service.ts +337 -0
- package/src/modules/repos/index.ts +3 -0
- package/src/modules/repos/model-discovery.ts +233 -0
- package/src/modules/repos/providers.ts +194 -0
- package/src/modules/repos/registry.ts +232 -0
- package/src/modules/runtime/agent-config.ts +167 -0
- package/src/modules/runtime/doctor.ts +528 -0
- package/src/modules/runtime/env.ts +123 -0
- package/src/modules/runtime/index.ts +12 -0
- package/src/modules/runtime/local-api-auth.ts +43 -0
- package/src/modules/runtime/metrics.ts +211 -0
- package/src/modules/runtime/skills-actions.ts +141 -0
- package/src/modules/runtime/skills.ts +689 -0
- package/src/modules/runtime/soul.ts +68 -0
- package/src/modules/runtime/status-database.ts +252 -0
- package/src/modules/runtime/status-schema.ts +149 -0
- package/src/modules/runtime/status.ts +481 -0
- package/src/modules/runtime/subagents.ts +37 -0
- package/src/modules/runtime/utility-model.ts +47 -0
- package/src/modules/safety/index.ts +3 -0
- package/src/modules/safety/policy-entries.ts +2528 -0
- package/src/modules/safety/schemas.ts +63 -0
- package/src/modules/safety/service.ts +58 -0
- package/src/modules/safety/tools.ts +15 -0
- package/src/modules/scheduled-tasks/actions.ts +113 -0
- package/src/modules/scheduled-tasks/dispatch.ts +107 -0
- package/src/modules/scheduled-tasks/index.ts +6 -0
- package/src/modules/scheduled-tasks/schemas.ts +91 -0
- package/src/modules/scheduled-tasks/service.ts +296 -0
- package/src/modules/scheduled-tasks/store.ts +814 -0
- package/src/modules/scheduled-tasks/triggers.ts +87 -0
- package/src/modules/scheduler/actions.ts +37 -0
- package/src/modules/scheduler/dispatch.ts +192 -0
- package/src/modules/scheduler/index.ts +4 -0
- package/src/modules/scheduler/lease.ts +247 -0
- package/src/modules/scheduler/pr-watch-event-deltas.ts +367 -0
- package/src/modules/scheduler/pr-watch-events.ts +834 -0
- package/src/modules/scheduler/schemas.ts +79 -0
- package/src/modules/scheduler/service.ts +228 -0
- package/src/modules/scheduler/utils.ts +106 -0
- package/src/modules/scheduler/workflow-invocation.ts +48 -0
- package/src/modules/sessions/actions.ts +213 -0
- package/src/modules/sessions/active-session.ts +46 -0
- package/src/modules/sessions/activity.ts +122 -0
- package/src/modules/sessions/agent-context.ts +152 -0
- package/src/modules/sessions/approval-nudges.ts +156 -0
- package/src/modules/sessions/events.ts +57 -0
- package/src/modules/sessions/index.ts +12 -0
- package/src/modules/sessions/queries.ts +252 -0
- package/src/modules/sessions/references.ts +113 -0
- package/src/modules/sessions/repo-context.ts +131 -0
- package/src/modules/sessions/schemas.ts +285 -0
- package/src/modules/sessions/service.ts +845 -0
- package/src/modules/sessions/store.ts +560 -0
- package/src/modules/sessions/summaries.ts +129 -0
- package/src/modules/sessions/utils.ts +18 -0
- package/src/modules/watches/actions.ts +115 -0
- package/src/modules/watches/index.ts +6 -0
- package/src/modules/watches/polling.ts +245 -0
- package/src/modules/watches/references.ts +293 -0
- package/src/modules/watches/schemas.ts +156 -0
- package/src/modules/watches/service.ts +557 -0
- package/src/modules/watches/store.ts +398 -0
- package/src/modules/watches/utils.ts +51 -0
- package/src/modules/worktree-verification/index.ts +256 -0
- package/src/modules/worktrees/access.ts +129 -0
- package/src/modules/worktrees/actions.ts +108 -0
- package/src/modules/worktrees/cleanup.ts +98 -0
- package/src/modules/worktrees/ensure-pr-worktree.ts +63 -0
- package/src/modules/worktrees/errors.ts +38 -0
- package/src/modules/worktrees/git.ts +48 -0
- package/src/modules/worktrees/index.ts +7 -0
- package/src/modules/worktrees/locks.ts +231 -0
- package/src/modules/worktrees/paths.ts +209 -0
- package/src/modules/worktrees/push-target.ts +39 -0
- package/src/modules/worktrees/queries.ts +31 -0
- package/src/modules/worktrees/schemas.ts +237 -0
- package/src/modules/worktrees/service.ts +680 -0
- package/src/modules/worktrees/store.ts +415 -0
- package/src/repo-edit/actions.ts +509 -0
- package/src/repo-edit/audit.ts +180 -0
- package/src/repo-edit/fuzzy-replace.ts +256 -0
- package/src/repo-edit/git.ts +830 -0
- package/src/repo-edit/index.ts +4 -0
- package/src/repo-edit/locks.ts +27 -0
- package/src/repo-edit/patch-parser.ts +212 -0
- package/src/repo-edit/patch-service.ts +572 -0
- package/src/repo-edit/path-safety.ts +299 -0
- package/src/repo-edit/schemas.ts +239 -0
- package/src/repo-edit/service.ts +488 -0
- package/src/repo-edit/support.ts +459 -0
- package/src/runtime-home/app-db/index.ts +74 -0
- package/src/runtime-home/app-db/migrate.ts +491 -0
- package/src/runtime-home/app-db/migrations/20260710061339_neondeck_pre_1_0_baseline/migration.sql +748 -0
- package/src/runtime-home/app-db/migrations/20260710061339_neondeck_pre_1_0_baseline/snapshot.json +7126 -0
- package/src/runtime-home/app-db/migrations/20260711171708_conversational_briefings/migration.sql +35 -0
- package/src/runtime-home/app-db/migrations/20260711171708_conversational_briefings/snapshot.json +7458 -0
- package/src/runtime-home/app-db/migrations/20260714191624_worktree_lock_revocation/migration.sql +1 -0
- package/src/runtime-home/app-db/migrations/20260714191624_worktree_lock_revocation/snapshot.json +7468 -0
- package/src/runtime-home/app-db/migrations/20260714213018_pr_reviews/migration.sql +34 -0
- package/src/runtime-home/app-db/migrations/20260714213018_pr_reviews/snapshot.json +7809 -0
- package/src/runtime-home/app-db/reconcile.ts +155 -0
- package/src/runtime-home/app-db/schema.ts +1209 -0
- package/src/runtime-home/bootstrap.ts +177 -0
- package/src/runtime-home/dashboard-migrations.ts +101 -0
- package/src/runtime-home/defaults.ts +54 -0
- package/src/runtime-home/files.ts +193 -0
- package/src/runtime-home/guardrails.ts +77 -0
- package/src/runtime-home/index.ts +71 -0
- package/src/runtime-home/paths.ts +75 -0
- package/src/runtime-home/schemas.ts +520 -0
- package/src/sandboxes/exedev.ts +676 -0
- package/src/server/app.ts +5 -0
- package/src/server/autopilot-push-dispatch.ts +326 -0
- package/src/server/create-app.ts +160 -0
- package/src/server/events/event-stream.ts +109 -0
- package/src/server/http.ts +56 -0
- package/src/server/learning-hooks.ts +489 -0
- package/src/server/middleware.ts +81 -0
- package/src/server/routes/autopilot.ts +318 -0
- package/src/server/routes/briefings.ts +34 -0
- package/src/server/routes/commands.ts +12 -0
- package/src/server/routes/config.ts +124 -0
- package/src/server/routes/execution.ts +71 -0
- package/src/server/routes/github.ts +559 -0
- package/src/server/routes/handoff.ts +69 -0
- package/src/server/routes/kilo.ts +179 -0
- package/src/server/routes/learning.ts +384 -0
- package/src/server/routes/mcp.ts +301 -0
- package/src/server/routes/memory.ts +99 -0
- package/src/server/routes/metrics.ts +12 -0
- package/src/server/routes/notifications.ts +48 -0
- package/src/server/routes/repo-edit.ts +115 -0
- package/src/server/routes/reports.ts +128 -0
- package/src/server/routes/repos.ts +50 -0
- package/src/server/routes/reviews.ts +257 -0
- package/src/server/routes/runtime.ts +48 -0
- package/src/server/routes/safety.ts +13 -0
- package/src/server/routes/scheduled-tasks.ts +60 -0
- package/src/server/routes/scheduler.ts +13 -0
- package/src/server/routes/sessions.ts +229 -0
- package/src/server/routes/skills.ts +103 -0
- package/src/server/routes/watches.ts +81 -0
- package/src/server/routes/workflows.ts +21 -0
- package/src/server/routes/worktrees.ts +64 -0
- package/src/server/scheduler-workflow.ts +541 -0
- package/src/server/serve.ts +100 -0
- package/src/setup.ts +162 -0
- package/src/skills/github-gh/SKILL.md +56 -0
- package/src/skills/neon-ci-fix/SKILL.md +15 -0
- package/src/skills/neon-docs-fix/SKILL.md +15 -0
- package/src/skills/neon-issue-triage/SKILL.md +13 -0
- package/src/skills/neon-pr-review/SKILL.md +19 -0
- package/src/skills/neondeck/SKILL.md +127 -0
- package/src/skills/neondeck-handoff/SKILL.md +31 -0
- package/src/workflows/briefing.ts +50 -0
- package/src/workflows/command-run.ts +15 -0
- package/src/workflows/comment-pr-autofix-result.ts +10 -0
- package/src/workflows/curate_learning_store.ts +37 -0
- package/src/workflows/dev-doctor.ts +10 -0
- package/src/workflows/fix-pr-ci-failure.ts +10 -0
- package/src/workflows/fix-pr-ci.ts +15 -0
- package/src/workflows/fix-pr-review-feedback.ts +10 -0
- package/src/workflows/handoff_to_kilo.ts +10 -0
- package/src/workflows/prepare-pr-worktree.ts +10 -0
- package/src/workflows/promote_kilo_result.ts +10 -0
- package/src/workflows/push-pr-autofix.ts +10 -0
- package/src/workflows/reconcile_kilo_task.ts +10 -0
- package/src/workflows/review-pr-for-human.ts +15 -0
- package/src/workflows/review_conversation_for_learning.ts +37 -0
- package/src/workflows/review_kilo_result.ts +10 -0
- package/src/workflows/review_pr_batch_for_learning.ts +37 -0
- package/src/workflows/scheduled-agent-instruction.ts +16 -0
- package/src/workflows/scheduler-tick.ts +10 -0
- package/src/workflows/summarize_kilo_session.ts +25 -0
- package/src/workflows/triage-pr-event.ts +10 -0
- package/src/workflows/verify-pr-worktree.ts +10 -0
- package/src/workflows/verify-then-push-pr-autofix.ts +82 -0
- package/src/workflows/verify_kilo_result.ts +10 -0
- package/src/workflows/watch-pr.ts +10 -0
- package/web/dist/assets/GitHubPrReview-Bf8PXCaq.js +3 -0
- package/web/dist/assets/MultiFileView-CFYStqTV.js +2970 -0
- package/web/dist/assets/PrReviewPopoutPage-CZN1CV82.js +1 -0
- package/web/dist/assets/abap-CLvhMVsD.js +1 -0
- package/web/dist/assets/actionscript-3--17pq3dv.js +1 -0
- package/web/dist/assets/ada-C5qYipkI.js +1 -0
- package/web/dist/assets/andromeeda-vGVdxbeo.js +1 -0
- package/web/dist/assets/angular-html-BVBpGdXr.js +1 -0
- package/web/dist/assets/angular-ts-BfdufMKP.js +1 -0
- package/web/dist/assets/apache-U0d_L8uA.js +1 -0
- package/web/dist/assets/apex-VAyPSnFM.js +1 -0
- package/web/dist/assets/apl-DWBSSoBH.js +1 -0
- package/web/dist/assets/applescript-CCn79oCD.js +1 -0
- package/web/dist/assets/ara-4CJ0cIlV.js +1 -0
- package/web/dist/assets/asciidoc-DE70LPWp.js +1 -0
- package/web/dist/assets/asm-Cmm7eHzH.js +1 -0
- package/web/dist/assets/astro-3LtMP0Sq.js +1 -0
- package/web/dist/assets/aurora-x-CDeNXAV0.js +1 -0
- package/web/dist/assets/awk-BWXHIvNe.js +1 -0
- package/web/dist/assets/ayu-dark-DluEY0Gj.js +1 -0
- package/web/dist/assets/ayu-light-C3h-C4tm.js +1 -0
- package/web/dist/assets/ayu-mirage-Bqwy1Gya.js +1 -0
- package/web/dist/assets/ballerina-B7ZEbQpA.js +1 -0
- package/web/dist/assets/bat-Bo4NYOV-.js +1 -0
- package/web/dist/assets/beancount-D-usSTwE.js +1 -0
- package/web/dist/assets/berry-DKpUyyne.js +1 -0
- package/web/dist/assets/bibtex-Ci_nEsc7.js +1 -0
- package/web/dist/assets/bicep-CUHmPFLl.js +1 -0
- package/web/dist/assets/bird2-C6vDhewU.js +1 -0
- package/web/dist/assets/blade-llJRbbtR.js +1 -0
- package/web/dist/assets/bsl-BkkzgIyY.js +1 -0
- package/web/dist/assets/c-Wt1voDr2.js +1 -0
- package/web/dist/assets/c3-BFHwR3_K.js +1 -0
- package/web/dist/assets/cadence-CQ2zXKGN.js +1 -0
- package/web/dist/assets/cairo-DLTphjLi.js +1 -0
- package/web/dist/assets/catppuccin-frappe-3VR1Za6u.js +1 -0
- package/web/dist/assets/catppuccin-latte-DwIHMF0Q.js +1 -0
- package/web/dist/assets/catppuccin-macchiato-DYnBP6_5.js +1 -0
- package/web/dist/assets/catppuccin-mocha-DYhrFGRu.js +1 -0
- package/web/dist/assets/ccount-CMHa3wy6.js +1 -0
- package/web/dist/assets/clarity-SemFz856.js +1 -0
- package/web/dist/assets/clojure-DqKBuwfJ.js +1 -0
- package/web/dist/assets/cmake-Bj61d0ZC.js +1 -0
- package/web/dist/assets/cobol-x_HIyl2P.js +1 -0
- package/web/dist/assets/codeowners-C8r90Shi.js +1 -0
- package/web/dist/assets/codeql-oeQT6MSM.js +1 -0
- package/web/dist/assets/coffee-CThvmt4R.js +1 -0
- package/web/dist/assets/common-lisp-Cv5bFMCO.js +1 -0
- package/web/dist/assets/coq-BrsZFFmf.js +1 -0
- package/web/dist/assets/cpp-NtAeskI3.js +1 -0
- package/web/dist/assets/crystal-DNu_sX0G.js +1 -0
- package/web/dist/assets/csharp-oqKa8noW.js +1 -0
- package/web/dist/assets/css-DJp_X0uY.js +1 -0
- package/web/dist/assets/csv-Dx-8-gkx.js +1 -0
- package/web/dist/assets/cue-CE9AQfxI.js +1 -0
- package/web/dist/assets/cypher-ClKdZ_lG.js +1 -0
- package/web/dist/assets/d-qD-0Kul2.js +1 -0
- package/web/dist/assets/dark-plus-Cs2F2srj.js +1 -0
- package/web/dist/assets/dart-CnvKMtbv.js +1 -0
- package/web/dist/assets/dax-BkyTk9wS.js +1 -0
- package/web/dist/assets/desktop-Dlh5hvp9.js +1 -0
- package/web/dist/assets/diff-woXpYk--.js +1 -0
- package/web/dist/assets/docker-IyjqRm3v.js +1 -0
- package/web/dist/assets/dotenv-_5a1GRtc.js +1 -0
- package/web/dist/assets/dracula-BHWKrbxM.js +1 -0
- package/web/dist/assets/dracula-soft-5eyTD99u.js +1 -0
- package/web/dist/assets/dream-maker-DW3nJb8Q.js +1 -0
- package/web/dist/assets/edge-ozw5tpLl.js +1 -0
- package/web/dist/assets/elixir-VhA6FeZt.js +1 -0
- package/web/dist/assets/elm-dREJmIFz.js +1 -0
- package/web/dist/assets/emacs-lisp-B4R74twV.js +1 -0
- package/web/dist/assets/erb-CIg6G69l.js +1 -0
- package/web/dist/assets/erlang-Cphh6RMH.js +1 -0
- package/web/dist/assets/everforest-dark-sB-x3p7T.js +1 -0
- package/web/dist/assets/everforest-light-Df2xbC6M.js +1 -0
- package/web/dist/assets/fennel-DQxkIbk2.js +1 -0
- package/web/dist/assets/fish-BJitypiv.js +1 -0
- package/web/dist/assets/fluent-C03EYrpw.js +1 -0
- package/web/dist/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
- package/web/dist/assets/fortran-free-form-CYNrtFtB.js +1 -0
- package/web/dist/assets/fsharp-D13ZGOAj.js +1 -0
- package/web/dist/assets/gdresource-C0sCabJj.js +1 -0
- package/web/dist/assets/gdscript-Cp2uCuqX.js +1 -0
- package/web/dist/assets/gdshader-CBce3t8t.js +1 -0
- package/web/dist/assets/genie-CV2tkWYe.js +1 -0
- package/web/dist/assets/gherkin-DExj1W_8.js +1 -0
- package/web/dist/assets/git-commit-BSykSTBG.js +1 -0
- package/web/dist/assets/git-rebase-B44mJPta.js +1 -0
- package/web/dist/assets/github-dark-C-LZuMrd.js +1 -0
- package/web/dist/assets/github-dark-default-DXG-b-1a.js +1 -0
- package/web/dist/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
- package/web/dist/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
- package/web/dist/assets/github-light-EUqPIrTm.js +1 -0
- package/web/dist/assets/github-light-default-BXViO-2h.js +1 -0
- package/web/dist/assets/github-light-high-contrast-B68TUdTA.js +1 -0
- package/web/dist/assets/gleam-CSRkHgEL.js +1 -0
- package/web/dist/assets/glimmer-js-vH_gHG0-.js +1 -0
- package/web/dist/assets/glimmer-ts--abOzSAQ.js +1 -0
- package/web/dist/assets/glsl-Dv5r7kPw.js +1 -0
- package/web/dist/assets/gn-ilITqXS6.js +1 -0
- package/web/dist/assets/gnuplot-7GGW24-e.js +1 -0
- package/web/dist/assets/go-rLFTqkRN.js +1 -0
- package/web/dist/assets/graphql-CB4jsw2E.js +1 -0
- package/web/dist/assets/groovy-CacY0gHj.js +1 -0
- package/web/dist/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
- package/web/dist/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
- package/web/dist/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
- package/web/dist/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
- package/web/dist/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
- package/web/dist/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
- package/web/dist/assets/hack-DvEYX148.js +1 -0
- package/web/dist/assets/haml-zE6W3STP.js +1 -0
- package/web/dist/assets/handlebars-CzBR2SDs.js +1 -0
- package/web/dist/assets/haskell-D8IpX4py.js +1 -0
- package/web/dist/assets/haxe-OTjmBuCE.js +1 -0
- package/web/dist/assets/hcl-Dh228itO.js +1 -0
- package/web/dist/assets/hjson-CxZEssPk.js +1 -0
- package/web/dist/assets/hlsl-Cvrh5tZx.js +1 -0
- package/web/dist/assets/horizon-CE9ld1lL.js +1 -0
- package/web/dist/assets/horizon-bright-DSNQnXHK.js +1 -0
- package/web/dist/assets/houston-CsvMBhTu.js +1 -0
- package/web/dist/assets/html-C8UlPnhE.js +1 -0
- package/web/dist/assets/html-derivative-CY6NRz-J.js +1 -0
- package/web/dist/assets/http-Cyd7bS_S.js +1 -0
- package/web/dist/assets/hurl-CWPsiEpf.js +1 -0
- package/web/dist/assets/hxml-B0Qn7Nwc.js +1 -0
- package/web/dist/assets/hy-CZbG8q4J.js +1 -0
- package/web/dist/assets/imba-DsUTQ-LC.js +1 -0
- package/web/dist/assets/index-BTjK1c82.js +44 -0
- package/web/dist/assets/index-D0kg2-9O.css +2 -0
- package/web/dist/assets/ini-B5eOa1yu.js +1 -0
- package/web/dist/assets/java-CGc3VwQr.js +1 -0
- package/web/dist/assets/javascript-CUt1pgmJ.js +1 -0
- package/web/dist/assets/jinja-CD-Z-FLd.js +1 -0
- package/web/dist/assets/jison-imPNup1l.js +1 -0
- package/web/dist/assets/json-Bg9ijW3F.js +1 -0
- package/web/dist/assets/json5-BR5RXkoi.js +1 -0
- package/web/dist/assets/jsonc-CYpm1nAK.js +1 -0
- package/web/dist/assets/jsonl-CmCQp5Yx.js +1 -0
- package/web/dist/assets/jsonnet-CJTPZ8u_.js +1 -0
- package/web/dist/assets/jssm-DXw9l8Rf.js +1 -0
- package/web/dist/assets/jsx-CY6oMTks.js +1 -0
- package/web/dist/assets/julia-Dc3O-irA.js +1 -0
- package/web/dist/assets/just-BhOq_Kbv.js +1 -0
- package/web/dist/assets/kanagawa-dragon-CXtmUGW6.js +1 -0
- package/web/dist/assets/kanagawa-lotus-BN08jTvb.js +1 -0
- package/web/dist/assets/kanagawa-wave-CTweb8Dz.js +1 -0
- package/web/dist/assets/kdl-CsD5j6eV.js +1 -0
- package/web/dist/assets/kilo-CvN-tXHs.js +1 -0
- package/web/dist/assets/kotlin-DhhofPvG.js +1 -0
- package/web/dist/assets/kusto-C7mF5XQf.js +1 -0
- package/web/dist/assets/laserwave-C_8bwKvT.js +1 -0
- package/web/dist/assets/latex-Cu4Y1d5w.js +1 -0
- package/web/dist/assets/lean-CewbzKMR.js +1 -0
- package/web/dist/assets/less-DVTAwKKz.js +1 -0
- package/web/dist/assets/light-plus-DVQuIRkW.js +1 -0
- package/web/dist/assets/liquid-CvXMrjlQ.js +1 -0
- package/web/dist/assets/llvm-Cm23YOpf.js +1 -0
- package/web/dist/assets/log-BNLmms1o.js +1 -0
- package/web/dist/assets/logo-Cluzi2Zq.js +1 -0
- package/web/dist/assets/lua-BjLEUjKY.js +1 -0
- package/web/dist/assets/luau-FMPmPwt6.js +1 -0
- package/web/dist/assets/make-Dixweg8N.js +1 -0
- package/web/dist/assets/markdown-BYOwaDjH.js +1 -0
- package/web/dist/assets/marko-DvhNOisQ.js +1 -0
- package/web/dist/assets/material-theme-Bm3Qr25_.js +1 -0
- package/web/dist/assets/material-theme-darker-2IIEA8gg.js +1 -0
- package/web/dist/assets/material-theme-lighter-uhdI0v04.js +1 -0
- package/web/dist/assets/material-theme-ocean-CHQ94UKr.js +1 -0
- package/web/dist/assets/material-theme-palenight-B5W6OYN7.js +1 -0
- package/web/dist/assets/matlab-D7qyCx1q.js +1 -0
- package/web/dist/assets/mdc-Bm9TpL1X.js +1 -0
- package/web/dist/assets/mdx-DQZ5AkYe.js +1 -0
- package/web/dist/assets/mermaid-Bk4SNUv9.js +1 -0
- package/web/dist/assets/min-dark-BSWPekZh.js +1 -0
- package/web/dist/assets/min-light-DDpmG2fV.js +1 -0
- package/web/dist/assets/mipsasm-BMqwQI7S.js +1 -0
- package/web/dist/assets/mojo-BgCJLMeH.js +1 -0
- package/web/dist/assets/monokai-CdkpiU2Y.js +1 -0
- package/web/dist/assets/moonbit-CaWjb8XO.js +1 -0
- package/web/dist/assets/move-B1IS1UjX.js +1 -0
- package/web/dist/assets/narrat-_X_XdTYD.js +1 -0
- package/web/dist/assets/nextflow-BJtWHP5T.js +1 -0
- package/web/dist/assets/nextflow-groovy-DJMQeKeT.js +1 -0
- package/web/dist/assets/nginx-Bhc82uuv.js +1 -0
- package/web/dist/assets/night-owl-DhmEMT88.js +1 -0
- package/web/dist/assets/night-owl-light-eJ-hLW7d.js +1 -0
- package/web/dist/assets/nim-DXTVBFnF.js +1 -0
- package/web/dist/assets/nix-IvuFDN5E.js +1 -0
- package/web/dist/assets/nord-Cb4Vim4T.js +1 -0
- package/web/dist/assets/nushell-DcLAeLz5.js +1 -0
- package/web/dist/assets/objective-c-D1A_Heim.js +1 -0
- package/web/dist/assets/objective-cpp-BsSzOQcm.js +1 -0
- package/web/dist/assets/ocaml-O90oeIOV.js +1 -0
- package/web/dist/assets/odin-B1RWQWA5.js +1 -0
- package/web/dist/assets/one-dark-pro-CLwyXe_n.js +1 -0
- package/web/dist/assets/one-light-D7Lr4KcI.js +1 -0
- package/web/dist/assets/openscad-BUDT5pXO.js +1 -0
- package/web/dist/assets/pascal-4ZHwLPI5.js +1 -0
- package/web/dist/assets/perl-C7veXV9z.js +1 -0
- package/web/dist/assets/php-BRiuMnnr.js +1 -0
- package/web/dist/assets/pierre-dark-CpLgRqie.js +1 -0
- package/web/dist/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +1 -0
- package/web/dist/assets/pierre-dark-soft-kZQmAZld.js +1 -0
- package/web/dist/assets/pierre-dark-tritanopia-CpjhbsIL.js +1 -0
- package/web/dist/assets/pierre-dark-vibrant-CpQYzh95.js +1 -0
- package/web/dist/assets/pierre-light-CoaEpmwp.js +1 -0
- package/web/dist/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +1 -0
- package/web/dist/assets/pierre-light-soft-lWLdNTOI.js +1 -0
- package/web/dist/assets/pierre-light-tritanopia-CEbqgOJL.js +1 -0
- package/web/dist/assets/pierre-light-vibrant-D80Fkn33.js +1 -0
- package/web/dist/assets/pkl-ot-7Btpt.js +1 -0
- package/web/dist/assets/plastic-DQwYfKfQ.js +1 -0
- package/web/dist/assets/plsql-DGHpHOYJ.js +1 -0
- package/web/dist/assets/po-BiJDBrnU.js +1 -0
- package/web/dist/assets/poimandres-DRFjx7u4.js +1 -0
- package/web/dist/assets/polar-C7UOKdEL.js +1 -0
- package/web/dist/assets/postcss-BXeXVLqQ.js +1 -0
- package/web/dist/assets/powerquery-DNMTfnFr.js +1 -0
- package/web/dist/assets/powershell-DshXNtvi.js +1 -0
- package/web/dist/assets/prisma-BsRQq5mF.js +1 -0
- package/web/dist/assets/prolog-iXnhIJG7.js +1 -0
- package/web/dist/assets/proto-DB4EqR-F.js +1 -0
- package/web/dist/assets/pug-C5hz5LQ7.js +1 -0
- package/web/dist/assets/puppet-CDv2pdJW.js +1 -0
- package/web/dist/assets/purescript-9MfHhQsQ.js +1 -0
- package/web/dist/assets/python-gzcpVVnB.js +1 -0
- package/web/dist/assets/qml-BdUV3aTS.js +1 -0
- package/web/dist/assets/qmldir-DCQb3MpD.js +1 -0
- package/web/dist/assets/qss-Fe1Jh2GI.js +1 -0
- package/web/dist/assets/r-8R7vtdQc.js +1 -0
- package/web/dist/assets/racket-DcIDlBhZ.js +1 -0
- package/web/dist/assets/raku-B3gFvitq.js +1 -0
- package/web/dist/assets/razor-DRL52XO2.js +1 -0
- package/web/dist/assets/red-CJ3rzSJv.js +1 -0
- package/web/dist/assets/reg-CRGYupPL.js +1 -0
- package/web/dist/assets/regexp-Omp9DhTb.js +1 -0
- package/web/dist/assets/rel-BtDbiS_P.js +1 -0
- package/web/dist/assets/reviews-CUXp47M8.js +1 -0
- package/web/dist/assets/riscv-Ckw8ddFX.js +1 -0
- package/web/dist/assets/rolldown-runtime-QTnfLwEv.js +1 -0
- package/web/dist/assets/ron-VUp2lXgN.js +1 -0
- package/web/dist/assets/rose-pine-BthvhNj6.js +1 -0
- package/web/dist/assets/rose-pine-dawn-Dg85fqjY.js +1 -0
- package/web/dist/assets/rose-pine-moon-hon4tzzS.js +1 -0
- package/web/dist/assets/rosmsg-CAekHB0j.js +1 -0
- package/web/dist/assets/rst-BHX71KW9.js +1 -0
- package/web/dist/assets/ruby-B--HzjGU.js +1 -0
- package/web/dist/assets/rust-Cfkwpbl8.js +1 -0
- package/web/dist/assets/sas-DrLaYOK_.js +1 -0
- package/web/dist/assets/sass-DXrisJhu.js +1 -0
- package/web/dist/assets/scala-DKOlJaKm.js +1 -0
- package/web/dist/assets/scheme-DQCgrYNe.js +1 -0
- package/web/dist/assets/scss-DdSxiZKl.js +1 -0
- package/web/dist/assets/sdbl-bTVj8UrX.js +1 -0
- package/web/dist/assets/shaderlab-TOUzSsQk.js +1 -0
- package/web/dist/assets/shellscript-DwcUjJBL.js +1 -0
- package/web/dist/assets/shellsession-CPZkydE6.js +1 -0
- package/web/dist/assets/slack-dark-DnToyrRv.js +1 -0
- package/web/dist/assets/slack-ochin-B2OO5cIa.js +1 -0
- package/web/dist/assets/smalltalk-B16xEiuN.js +1 -0
- package/web/dist/assets/snazzy-light-4G7pJPwS.js +1 -0
- package/web/dist/assets/solarized-dark-DV17i1UV.js +1 -0
- package/web/dist/assets/solarized-light-DSh2HLQt.js +1 -0
- package/web/dist/assets/solidity-CKzVLygQ.js +1 -0
- package/web/dist/assets/soy-Br5FhD7c.js +1 -0
- package/web/dist/assets/sparql-D_iOobhT.js +1 -0
- package/web/dist/assets/splunk-BC2Px7Mm.js +1 -0
- package/web/dist/assets/sql-DNssxck8.js +1 -0
- package/web/dist/assets/ssh-config-BgfXC-Er.js +1 -0
- package/web/dist/assets/stata-DXn1tqOr.js +1 -0
- package/web/dist/assets/stylus-B6D30XZt.js +1 -0
- package/web/dist/assets/surfaces-Dlg1xLbg.js +1 -0
- package/web/dist/assets/surrealql-IeLNQw0f.js +1 -0
- package/web/dist/assets/svelte-DOdLCIlh.js +1 -0
- package/web/dist/assets/swift-DonLKvLd.js +1 -0
- package/web/dist/assets/synthwave-84-nFMaYfgc.js +1 -0
- package/web/dist/assets/system-verilog-DJ5XKQeo.js +1 -0
- package/web/dist/assets/systemd-BxMlprV5.js +1 -0
- package/web/dist/assets/talonscript-CohzipZa.js +1 -0
- package/web/dist/assets/tasl-DMoTqEGO.js +1 -0
- package/web/dist/assets/tcl-CZd0xW_V.js +1 -0
- package/web/dist/assets/templ-CIwIngms.js +1 -0
- package/web/dist/assets/terraform-DswuEJGm.js +1 -0
- package/web/dist/assets/tex-D8QMumu5.js +1 -0
- package/web/dist/assets/tokyo-night-oM2G3aXe.js +1 -0
- package/web/dist/assets/toml-CcmNWLt0.js +1 -0
- package/web/dist/assets/ts-tags-BMVY4q-l.js +1 -0
- package/web/dist/assets/tsv-sltzmVWM.js +1 -0
- package/web/dist/assets/tsx-5Eka4NBX.js +1 -0
- package/web/dist/assets/turtle-ByJddavk.js +1 -0
- package/web/dist/assets/twig-C8o_5mgw.js +1 -0
- package/web/dist/assets/typescript-DOu2WMV5.js +1 -0
- package/web/dist/assets/typespec-BRdr0IET.js +1 -0
- package/web/dist/assets/typst-DI99ib-x.js +1 -0
- package/web/dist/assets/v-DETTlOr0.js +1 -0
- package/web/dist/assets/vala-zf12oZj6.js +1 -0
- package/web/dist/assets/vb-Djn5o6TS.js +1 -0
- package/web/dist/assets/verilog-CiiDBU1e.js +1 -0
- package/web/dist/assets/vesper-DdrHHSXu.js +1 -0
- package/web/dist/assets/vhdl-BroJfC0k.js +1 -0
- package/web/dist/assets/viml-DvXPmvsu.js +1 -0
- package/web/dist/assets/vitesse-black-fwtXNY1n.js +1 -0
- package/web/dist/assets/vitesse-dark-BZCL-v6S.js +1 -0
- package/web/dist/assets/vitesse-light-VbXTXTou.js +1 -0
- package/web/dist/assets/vue-BU18DNDL.js +1 -0
- package/web/dist/assets/vue-html-BeluIYX0.js +1 -0
- package/web/dist/assets/vue-vine-DGUAbOCX.js +1 -0
- package/web/dist/assets/vyper-CgoNMtux.js +1 -0
- package/web/dist/assets/wasm-BnjxR4X6.js +1 -0
- package/web/dist/assets/wasm-ByWQv1Qj.js +1 -0
- package/web/dist/assets/wenyan-C8pVoKbM.js +1 -0
- package/web/dist/assets/wgsl-BsKzXJz4.js +1 -0
- package/web/dist/assets/wikitext-ClFFjSW2.js +1 -0
- package/web/dist/assets/wit-DdvCle-K.js +1 -0
- package/web/dist/assets/wolfram-DLL8P-h_.js +1 -0
- package/web/dist/assets/worker-05jVtNwz.js +160 -0
- package/web/dist/assets/xml-DIqSwXR3.js +1 -0
- package/web/dist/assets/xsl-Ct_-YIAy.js +1 -0
- package/web/dist/assets/yaml-DTtCYNlS.js +1 -0
- package/web/dist/assets/zenscript-BnlCZFoB.js +1 -0
- package/web/dist/assets/zig-CMLA9XwU.js +1 -0
- package/web/dist/icons/neondeck-icon-192.png +0 -0
- package/web/dist/icons/neondeck-icon-512.png +0 -0
- package/web/dist/icons/neondeck-icon.svg +41 -0
- package/web/dist/icons/neondeck-maskable-512.png +0 -0
- package/web/dist/index.html +27 -0
- package/web/dist/manifest.webmanifest +28 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.0.0-beta.10
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#122](https://github.com/pandemicsyn/neondeck/pull/122) [`b7a9b29`](https://github.com/pandemicsyn/neondeck/commit/b7a9b2996f806bc86e2571d5d2f01484612d553b) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Play a configurable two-note chime when a new in-app notification arrives.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#120](https://github.com/pandemicsyn/neondeck/pull/120) [`61bae11`](https://github.com/pandemicsyn/neondeck/commit/61bae114525bda27a5c900c4ecc7282d0bba8c33) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Multiplex dashboard domain events over one shared connection and render PR review reports inline so active streams cannot starve report loading.
|
|
12
|
+
|
|
13
|
+
## 1.0.0-beta.9
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#118](https://github.com/pandemicsyn/neondeck/pull/118) [`df66b2c`](https://github.com/pandemicsyn/neondeck/commit/df66b2c3b4e1dc75a97534cdc0db99396245062f) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Keep ready dashboard notifications visible for one hour by default and allow configuring them to remain until dismissed.
|
|
18
|
+
|
|
19
|
+
- [#115](https://github.com/pandemicsyn/neondeck/pull/115) [`1e692f4`](https://github.com/pandemicsyn/neondeck/commit/1e692f44819715e102135ef2bd896c208786d310) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Correct PR branch freshness findings, replace stale Neon-generated review artifacts on re-review while preserving human edits, and speed up the focused review pop-out loading path.
|
|
20
|
+
|
|
21
|
+
- [#116](https://github.com/pandemicsyn/neondeck/pull/116) [`8c972c0`](https://github.com/pandemicsyn/neondeck/commit/8c972c0e1898b5e0462d59d69badfc4e08f87dba) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Complete the PR review workbench with in-dashboard artifacts, explicit finding anchors, manual report-only anchoring, workbench-started Neon reviews, reliable behind detection, and reserved whole-review submission.
|
|
22
|
+
|
|
23
|
+
- [#117](https://github.com/pandemicsyn/neondeck/pull/117) [`fc0618d`](https://github.com/pandemicsyn/neondeck/commit/fc0618dc456c67aa5362baf772ef2499a95d55ad) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Add the Reviews tab once to existing dashboard work regions while preserving the configured default tab and respecting later user removal.
|
|
24
|
+
|
|
25
|
+
## 1.0.0-beta.8
|
|
26
|
+
|
|
27
|
+
### Minor Changes
|
|
28
|
+
|
|
29
|
+
- [#113](https://github.com/pandemicsyn/neondeck/pull/113) [`8eaa12d`](https://github.com/pandemicsyn/neondeck/commit/8eaa12df1c4b0344f1f7a11f0fbf491d76678be0) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Add a durable PR review inbox with live chat and dashboard updates, queue-independent review workbenches, linked local reports, and explicit whole-review GitHub submission.
|
|
30
|
+
|
|
31
|
+
## 1.0.0-beta.7
|
|
32
|
+
|
|
33
|
+
### Minor Changes
|
|
34
|
+
|
|
35
|
+
- [#111](https://github.com/pandemicsyn/neondeck/pull/111) [`bf72138`](https://github.com/pandemicsyn/neondeck/commit/bf7213830b1df5f378913b2857a7781fe97c1187) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Separate interactive repo authority from autopilot policy, add typed commit and linked-PR push actions, and share objective repo guardrails across both origins. Existing local config must move any `autopilot.limits` values to the top-level `guardrails` block; the legacy location is no longer read.
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- [#108](https://github.com/pandemicsyn/neondeck/pull/108) [`37296be`](https://github.com/pandemicsyn/neondeck/commit/37296beb48ed4c811f775caae5492656b0f422f7) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Keep dashboard slash-command completion synchronized with the backend command registry and restore `/review-pr` completion for existing runtime homes.
|
|
40
|
+
|
|
41
|
+
- [#109](https://github.com/pandemicsyn/neondeck/pull/109) [`0f7d4b8`](https://github.com/pandemicsyn/neondeck/commit/0f7d4b8770752afb6103939fe11a8d56d788302e) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Explain why a pull request watch needs attention, show durable watch activity inline in linked chat sessions, and require fresh deterministic evidence before the agent answers watch-status questions.
|
|
42
|
+
|
|
43
|
+
## 1.0.0-beta.6
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- [#105](https://github.com/pandemicsyn/neondeck/pull/105) [`d82f8f2`](https://github.com/pandemicsyn/neondeck/commit/d82f8f28914509c6b6ac9710c0c2b09783538cd4) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Keep fresh display-assistant sessions active across host timezones and briefing profile updates so manual briefings can run immediately.
|
|
48
|
+
|
|
49
|
+
## 1.0.0-beta.5
|
|
50
|
+
|
|
51
|
+
### Minor Changes
|
|
52
|
+
|
|
53
|
+
- [#103](https://github.com/pandemicsyn/neondeck/pull/103) [`5475ffe`](https://github.com/pandemicsyn/neondeck/commit/5475ffe1689b2bfeba29db87bcc4ced21e0463da) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Add configurable in-app toast notifications for durable dashboard events.
|
|
54
|
+
|
|
55
|
+
- [#98](https://github.com/pandemicsyn/neondeck/pull/98) [`fc2305b`](https://github.com/pandemicsyn/neondeck/commit/fc2305ba4b08d0a15eab3480f9bcd6b3cf950718) Thanks [@pandemicsyn](https://github.com/pandemicsyn)! - Add durable conversational morning briefings with scheduled Flue dispatch, configurable grounding, persistent conversations, and dashboard controls.
|
|
56
|
+
|
|
57
|
+
## Unreleased
|
|
58
|
+
|
|
59
|
+
## 1.0.0-beta.4 - 2026-07-12
|
|
60
|
+
|
|
61
|
+
- fix(runtime): make concurrent runtime-home initialization atomic
|
|
62
|
+
- fix(flue): expose command, watch, scheduler, GitHub, and doctor operations through Flue actions/workflows
|
|
63
|
+
- feat(release): add release watch command and default-branch check polling
|
|
64
|
+
- feat(dev): add local dev doctor command and diagnostics action
|
|
65
|
+
- feat(dashboard): add runtime overview panel for home, repos, jobs, and skills
|
|
66
|
+
- feat(watches): add automatic PR watch polling and an active watches panel
|
|
67
|
+
- feat(commands): add Neon slash command workflows and dashboard buttons
|
|
68
|
+
- feat(setup): add explicit runtime home setup command
|
|
69
|
+
- feat(skills): add runtime skill discovery, loading, and reload actions
|
|
70
|
+
- feat(scheduler): add durable scheduled jobs, notifications, and blueprint automations
|
|
71
|
+
- feat(watches): add persistent PR watch actions with quiet refresh semantics
|
|
72
|
+
- feat(repos): add repo registry API and registry-aware GitHub PR queries
|
|
73
|
+
- fix(config): reject empty self-configuration action inputs
|
|
74
|
+
- fix(config): audit self-configuration mutations and require confirmation for destructive actions
|
|
75
|
+
- feat(config): add Valibot-backed Neondeck self-configuration actions for repos and schedules
|
|
76
|
+
- feat(runtime): add validated Neondeck runtime home bootstrap with seeded config, runtime skill, and separate app/Flue SQLite state
|
package/DEVELOPMENT.md
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
# Development
|
|
2
|
+
|
|
3
|
+
This file is for people working inside this repository. The root
|
|
4
|
+
[`README.md`](./README.md) is the high-level landing page; the public docs site
|
|
5
|
+
under `docs/` carries the detailed user-facing guides.
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
- Node 26.4.0 or newer
|
|
10
|
+
- A KiloCode, OpenAI, or Anthropic API key for the configured Flue model
|
|
11
|
+
provider
|
|
12
|
+
- A GitHub token for GitHub-backed panels and workflows
|
|
13
|
+
|
|
14
|
+
Use any Node installer or version manager. With `fnm`, that looks like:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
fnm install 26.4.0
|
|
18
|
+
fnm use 26.4.0
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Then install dependencies:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
npm install
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## First Run
|
|
28
|
+
|
|
29
|
+
Run the guided setup wizard:
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
npm run init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The wizard prepares the runtime home, writes local secrets to
|
|
36
|
+
`$NEONDECK_HOME/.env`, tunes `SOUL.md`, configures the selected model provider,
|
|
37
|
+
optionally sets a low-cost utility model, adds local git checkouts, applies a
|
|
38
|
+
dashboard preset, and can create command preapprovals.
|
|
39
|
+
|
|
40
|
+
The CLI is also the base for direct command-and-control surfaces:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
npm run cli -- status
|
|
44
|
+
npm run cli -- doctor
|
|
45
|
+
npm run cli -- db status
|
|
46
|
+
npm run cli -- repo add ~/dev/neondeck
|
|
47
|
+
npm run cli -- watch-pr pandemicsyn/neondeck#123
|
|
48
|
+
npm run cli -- tui
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Runtime Home And Secrets
|
|
52
|
+
|
|
53
|
+
Packaged/local app secrets live in the runtime home:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
$NEONDECK_HOME/.env
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
For checkout-based development, repo-root `.env` is also supported as a
|
|
60
|
+
dev-only fallback when the runtime-home file does not define a value.
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
KILOCODE_API_KEY=...
|
|
64
|
+
KILOCODE_ORGANIZATION_ID=...
|
|
65
|
+
OPENAI_API_KEY=...
|
|
66
|
+
ANTHROPIC_API_KEY=...
|
|
67
|
+
GITHUB_TOKEN=...
|
|
68
|
+
GITHUB_LOGIN=...
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Neondeck resolves runtime home in this order:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
NEONDECK_HOME
|
|
75
|
+
XDG_CONFIG_HOME/neondeck
|
|
76
|
+
~/.config/neondeck
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The runtime home contains `.env`, `config.json`, `mcp.json`, `repos.json`,
|
|
80
|
+
`dashboard.json`, `SOUL.md`, `skills/`, and separate
|
|
81
|
+
`data/neondeck.db` and `data/flue.db` databases. Neondeck app database
|
|
82
|
+
migrations are shipped with the package and auto-apply before app code touches
|
|
83
|
+
`data/neondeck.db`; pre-migration backups are kept under `data/backups/`.
|
|
84
|
+
|
|
85
|
+
Initialize or validate the runtime home explicitly without starting the server:
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
npm run setup
|
|
89
|
+
npm run setup -- --home ./data/dev-home
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
For new installs, prefer `npm run init`; `npm run setup` is the lower-level
|
|
93
|
+
non-interactive initializer.
|
|
94
|
+
|
|
95
|
+
## Local Development
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
npm run dev
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Open `http://127.0.0.1:5173/`.
|
|
102
|
+
|
|
103
|
+
The dev command runs the Flue/Hono backend and Vite dashboard together. Runtime
|
|
104
|
+
home, repository, MCP server/approval, scheduler, and skill state are visible in
|
|
105
|
+
the Runtime Overview panel.
|
|
106
|
+
|
|
107
|
+
Neon command workflows can be run from dashboard controls, typed into chat, or
|
|
108
|
+
invoked through Flue:
|
|
109
|
+
|
|
110
|
+
```sh
|
|
111
|
+
curl -X POST 'http://127.0.0.1:5173/api/flue/workflows/command-run?wait=result' \
|
|
112
|
+
-H 'Content-Type: application/json' \
|
|
113
|
+
-d '{"input":{"command":"/briefing"}}'
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Common commands include `/repo-status`, `/review-queue`, `/review-pr <ref>`,
|
|
117
|
+
`/fix-ci [ref]`, `/explain-ci [--report] [ref]`, `/summarize-pr [ref]`,
|
|
118
|
+
`/draft-pr-description [repo]`, `/prepare-pr [repo]`, `/review-local [repo]`,
|
|
119
|
+
`/briefing`, `/reasoning [level]`, `/memory ...`, `/dev-doctor`,
|
|
120
|
+
`/watch-pr <ref>`.
|
|
121
|
+
|
|
122
|
+
## CLI Surface
|
|
123
|
+
|
|
124
|
+
From a source checkout, use `npm run cli -- <command>`. After package install,
|
|
125
|
+
use `neondeck <command>`.
|
|
126
|
+
|
|
127
|
+
Available top-level commands:
|
|
128
|
+
|
|
129
|
+
```sh
|
|
130
|
+
npm run cli -- init
|
|
131
|
+
npm run cli -- dev
|
|
132
|
+
npm run cli -- serve
|
|
133
|
+
npm run cli -- open [profile]
|
|
134
|
+
npm run cli -- service status
|
|
135
|
+
npm run cli -- status
|
|
136
|
+
npm run cli -- repo list
|
|
137
|
+
npm run cli -- mcp list
|
|
138
|
+
npm run cli -- db status
|
|
139
|
+
npm run cli -- learning status
|
|
140
|
+
npm run cli -- watch-pr <repo#number>
|
|
141
|
+
npm run cli -- note "message"
|
|
142
|
+
npm run cli -- register-pr <repo#number>
|
|
143
|
+
npm run cli -- doctor
|
|
144
|
+
npm run cli -- tui
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
The `tui` command exists as the future OpenTUI entrypoint.
|
|
148
|
+
|
|
149
|
+
## Checks
|
|
150
|
+
|
|
151
|
+
Fast loop:
|
|
152
|
+
|
|
153
|
+
```sh
|
|
154
|
+
npm run check
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Individual checks:
|
|
158
|
+
|
|
159
|
+
```sh
|
|
160
|
+
npm run lint
|
|
161
|
+
npm run typecheck
|
|
162
|
+
npm run test
|
|
163
|
+
npm run test:integration
|
|
164
|
+
npm run test:all
|
|
165
|
+
npm run format:check
|
|
166
|
+
npm run db:check
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Full verification:
|
|
170
|
+
|
|
171
|
+
```sh
|
|
172
|
+
npm run verify
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
`npm run check` is the fast local loop: lint, import-layer check, database
|
|
176
|
+
migration check, typecheck, and the unit Vitest suite. The slower
|
|
177
|
+
git/worktree/Kilo/autopilot workflow coverage lives under
|
|
178
|
+
`npm run test:integration`, while `npm run test:all` runs every Vitest suite.
|
|
179
|
+
`npm run verify` keeps the full pre-release path: lint, import-layer check,
|
|
180
|
+
database migration check, typecheck, all tests, production builds, npm package
|
|
181
|
+
smoke checks, and format check.
|
|
182
|
+
|
|
183
|
+
## Database Migrations
|
|
184
|
+
|
|
185
|
+
Use Drizzle migrations for Neondeck app state:
|
|
186
|
+
|
|
187
|
+
```sh
|
|
188
|
+
npm run db:generate -- --name <migration_name>
|
|
189
|
+
npm run db:check
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Keep Neondeck app state separate from Flue runtime state unless the roadmap says
|
|
193
|
+
otherwise.
|
|
194
|
+
|
|
195
|
+
## Build And Package
|
|
196
|
+
|
|
197
|
+
```sh
|
|
198
|
+
npm run typecheck
|
|
199
|
+
npm run build
|
|
200
|
+
npm start
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Production app release helpers:
|
|
204
|
+
|
|
205
|
+
```sh
|
|
206
|
+
npm run release:app
|
|
207
|
+
npm run release:npm:check
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
After a production build or package install:
|
|
211
|
+
|
|
212
|
+
```sh
|
|
213
|
+
neondeck service install
|
|
214
|
+
neondeck open
|
|
215
|
+
neondeck open sidebar
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
`neondeck service install` creates a macOS launchd agent or Linux systemd user
|
|
219
|
+
unit with absolute Node and built server entry paths and logs under
|
|
220
|
+
runtime-home `data/logs/server.log`. `neondeck open` probes `/api/health`,
|
|
221
|
+
starts the installed service when present, falls back to a detached built server
|
|
222
|
+
process when no service exists, and opens a dedicated browser app window when a
|
|
223
|
+
supported Chromium browser is available.
|
|
224
|
+
|
|
225
|
+
`neondeck serve` and the login service run the built Flue server entry from
|
|
226
|
+
`dist/server.mjs`; from a source checkout, use `npm run dev` for the fast loop
|
|
227
|
+
or run `npm run build:server` before testing the packaged path.
|
|
228
|
+
|
|
229
|
+
## Marketing And Docs Site
|
|
230
|
+
|
|
231
|
+
The Astro site lives under `docs/` and deploys to Cloudflare for
|
|
232
|
+
`neondeck.dev`.
|
|
233
|
+
|
|
234
|
+
```sh
|
|
235
|
+
npm run docs:astro-dev # hot Astro dev server
|
|
236
|
+
npm run docs:dev # build, then preview
|
|
237
|
+
npm run docs:build
|
|
238
|
+
npm run docs:preview
|
|
239
|
+
npm run docs:deploy
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
The Cloudflare deployment config is `docs/wrangler.jsonc`.
|
|
243
|
+
|
|
244
|
+
## Publishing
|
|
245
|
+
|
|
246
|
+
User-facing pull requests should include a concise Changeset:
|
|
247
|
+
|
|
248
|
+
```sh
|
|
249
|
+
npm run changeset
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Use `patch` for fixes, `minor` for features, and `major` for breaking changes.
|
|
253
|
+
The private docs workspace is excluded from package versioning. The committed
|
|
254
|
+
Changesets prerelease state keeps versions on the beta channel. After changesets
|
|
255
|
+
reach `main`, `.github/workflows/changesets.yml` creates or updates a version PR
|
|
256
|
+
containing the package version, lockfile, changelog, and consumed Changesets.
|
|
257
|
+
|
|
258
|
+
Merge the version PR, pull `main`, then tag and push the exact package version:
|
|
259
|
+
|
|
260
|
+
```sh
|
|
261
|
+
git switch main
|
|
262
|
+
git pull --ff-only
|
|
263
|
+
version="$(node -p "JSON.parse(require('node:fs').readFileSync('package.json', 'utf8')).version")"
|
|
264
|
+
git tag -a "v${version}" -m "neondeck v${version}"
|
|
265
|
+
git push origin "v${version}"
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Prerelease tags such as `v1.0.0-beta.1` publish to npm's `next` dist-tag.
|
|
269
|
+
Stable tags publish to `latest`. Before creating a tag, the workflow can validate
|
|
270
|
+
a branch or commit without publishing:
|
|
271
|
+
|
|
272
|
+
```sh
|
|
273
|
+
gh workflow run npm-publish.yml \
|
|
274
|
+
-f release_ref=main \
|
|
275
|
+
-f npm_tag=auto \
|
|
276
|
+
-f dry_run=true
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
The npm release path is separate from the GitHub app archive release:
|
|
280
|
+
|
|
281
|
+
- `.github/workflows/npm-package.yml` validates the packed npm artifact on PRs.
|
|
282
|
+
- `.github/workflows/changesets.yml` maintains the version PR from changesets
|
|
283
|
+
merged to `main`.
|
|
284
|
+
- `.github/workflows/npm-publish.yml` verifies the release tag, runs
|
|
285
|
+
`npm run release:npm:check`, and publishes `neondeck` to npm from `v*` tags.
|
|
286
|
+
|
|
287
|
+
npm publishing uses trusted publishing for GitHub Actions with workflow
|
|
288
|
+
`npm-publish.yml`, environment `npm`, and allowed action `npm publish`. Do not
|
|
289
|
+
add a long-lived npm publish token.
|
|
290
|
+
|
|
291
|
+
## Deeper Runtime Docs
|
|
292
|
+
|
|
293
|
+
The detailed runtime and configuration material belongs in the docs site:
|
|
294
|
+
|
|
295
|
+
- `docs/src/pages/docs/getting-started.astro`
|
|
296
|
+
- `docs/src/pages/docs/configuration.astro`
|
|
297
|
+
- `docs/src/pages/docs/agent-runtime.astro`
|
|
298
|
+
- `docs/src/pages/docs/execution.astro`
|
|
299
|
+
- `docs/src/pages/docs/mcp.astro`
|
|
300
|
+
- `docs/src/pages/docs/memory-learning.astro`
|
|
301
|
+
- `docs/src/pages/docs/deployment.astro`
|
|
302
|
+
- `docs/src/pages/docs/contributing.astro`
|
|
303
|
+
|
|
304
|
+
Update those pages when changing user-facing runtime behavior.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Florian Hines
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# neondeck
|
|
2
|
+
|
|
3
|
+
A companion agent for keeping PRs moving.
|
|
4
|
+
|
|
5
|
+
Neon watches your PRs, tracks CI and release checks, prepares fixes when work
|
|
6
|
+
gets stuck, and can configure its own repos, schedules, models, and deck layout
|
|
7
|
+
through typed actions.
|
|
8
|
+
|
|
9
|
+
It is especially useful on a companion display, vertical panel, or Corsair
|
|
10
|
+
Xeneon Edge-style deck, where your active work can stay visible without taking
|
|
11
|
+
over your editor. The backend is Node 26, Hono, and Flue; the dashboard is Vite,
|
|
12
|
+
React, and Tailwind. Neondeck can run on your machine or on a remote host, with
|
|
13
|
+
mutable state stored in SQLite under a runtime home you control.
|
|
14
|
+
|
|
15
|
+
## Built for work in progress
|
|
16
|
+
|
|
17
|
+
Neon watches your PRs, prepares fixes, and keeps the busywork moving.
|
|
18
|
+
|
|
19
|
+
- **Your PRs, with CI status at a glance.** See open PRs across your repos in
|
|
20
|
+
one panel, with live check status and stale-work flags.
|
|
21
|
+
- **Watch a PR, then let autopilot move it.** Track a PR through merge, checks,
|
|
22
|
+
and deploy. When review feedback or CI failures need action, autopilot can
|
|
23
|
+
prepare a fix in an isolated worktree, run checks, and hand you the diff or
|
|
24
|
+
push it when repo policy allows.
|
|
25
|
+
- **Review and approve PRs on the deck.** Read diffs, leave inline comments,
|
|
26
|
+
resolve threads, and submit approvals or change requests without switching to
|
|
27
|
+
github.com.
|
|
28
|
+
- **Handoff, both directions.** Delegate work to agents like Kilo or Codex, then
|
|
29
|
+
let the finished PR come back to Neon for checks and deployment follow-through.
|
|
30
|
+
- **Conversational briefings and scheduled instructions.** Neon grounds a
|
|
31
|
+
durable Morning Briefing conversation in an inspectable local snapshot, then
|
|
32
|
+
can enrich it with any relevant configured MCP source under normal login and
|
|
33
|
+
approval controls. Follow up in chat, or run your own saved prompt on a timer.
|
|
34
|
+
- **Sandboxed, gated execution.** Keep code-changing work in throwaway
|
|
35
|
+
worktrees, gate shell commands through approval policy, or run work off your
|
|
36
|
+
machine on an `exe.dev` sandbox VM.
|
|
37
|
+
- **Memory that learns from your work.** Let Neon remember approved preferences
|
|
38
|
+
and repo conventions from conversations and PR feedback.
|
|
39
|
+
- **Ask Neon to set up the deck.** Configure repos, models, schedules, layout,
|
|
40
|
+
and display behavior through typed actions instead of hand-editing every file.
|
|
41
|
+
|
|
42
|
+
## Project shape
|
|
43
|
+
|
|
44
|
+
- `src/`: Hono/Flue backend, agents, actions, workflows, persistence, metrics,
|
|
45
|
+
CLI, and runtime-home setup.
|
|
46
|
+
- `web/`: Vite, React, and Tailwind dashboard for the local companion display.
|
|
47
|
+
- `docs/`: Astro marketing/docs site deployed to Cloudflare for
|
|
48
|
+
[neondeck.dev](https://neondeck.dev).
|
|
49
|
+
- `config/`: checked-in defaults copied into new runtime homes.
|
|
50
|
+
- `SOUL.md`: default personality/context material for Neon.
|
|
51
|
+
|
|
52
|
+
## Quick start
|
|
53
|
+
|
|
54
|
+
Use Node 26.4.0 or newer.
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
npm install
|
|
58
|
+
npm run init
|
|
59
|
+
npm run dev
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Open `http://127.0.0.1:5173/`.
|
|
63
|
+
|
|
64
|
+
The setup wizard prepares a runtime home, configures provider secrets, adds
|
|
65
|
+
local repositories, applies a dashboard preset, and can create initial schedules
|
|
66
|
+
and command preapprovals.
|
|
67
|
+
|
|
68
|
+
## Runtime home
|
|
69
|
+
|
|
70
|
+
Mutable local state lives outside the source tree. Neondeck resolves runtime
|
|
71
|
+
home in this order:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
NEONDECK_HOME
|
|
75
|
+
XDG_CONFIG_HOME/neondeck
|
|
76
|
+
~/.config/neondeck
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
That home contains local secrets, runtime config, repo registration, dashboard
|
|
80
|
+
layout, schedules, skills, and separate SQLite databases for Neondeck app state
|
|
81
|
+
and Flue runtime state.
|
|
82
|
+
|
|
83
|
+
## Common commands
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
npm run dev # local backend + dashboard
|
|
87
|
+
npm run cli -- status # runtime readiness and configured paths
|
|
88
|
+
npm run cli -- doctor # local diagnostics
|
|
89
|
+
npm run check # fast local verification
|
|
90
|
+
npm run test:integration # slower workflow coverage
|
|
91
|
+
npm run build # production dashboard/server + docs build
|
|
92
|
+
npm run docs:astro-dev # hot dev server for the docs site
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
After a production build or package install:
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
neondeck service install
|
|
99
|
+
neondeck open
|
|
100
|
+
neondeck open sidebar
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Documentation
|
|
104
|
+
|
|
105
|
+
- [neondeck.dev](https://neondeck.dev): public site and product docs.
|
|
106
|
+
- [Getting started](https://neondeck.dev/docs/getting-started/): install,
|
|
107
|
+
secrets, runtime home, dashboard launch, and local app install.
|
|
108
|
+
- [Configuration](https://neondeck.dev/docs/configuration/): runtime config,
|
|
109
|
+
models, providers, repos, schedules, SOUL, and skills.
|
|
110
|
+
- [Agent runtime](https://neondeck.dev/docs/agent-runtime/): Flue agents,
|
|
111
|
+
actions, workflows, memory, watches, reports, and scheduled tasks.
|
|
112
|
+
- [Execution environments](https://neondeck.dev/docs/execution/): local and
|
|
113
|
+
sandboxed execution policy.
|
|
114
|
+
- [MCP servers](https://neondeck.dev/docs/mcp/): MCP registration, OAuth, tool
|
|
115
|
+
policy, and approvals.
|
|
116
|
+
- [Contributing](https://neondeck.dev/docs/contributing/): roadmap workflow,
|
|
117
|
+
checks, reviews, and PR expectations.
|
|
118
|
+
- [Development](./DEVELOPMENT.md): repo-local setup, checks, builds, packaging,
|
|
119
|
+
docs deployment, and publishing notes.
|
|
120
|
+
|
|
121
|
+
## Status
|
|
122
|
+
|
|
123
|
+
Neondeck is active local-first infrastructure work. The roadmap lives in
|
|
124
|
+
`.plans/ROADMAP.md`; it is the source of truth for implementation order and
|
|
125
|
+
near-term priorities.
|
|
126
|
+
|
|
127
|
+
## License
|
|
128
|
+
|
|
129
|
+
MIT
|
package/SOUL.md
ADDED
package/bin/neondeck.mjs
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from 'node:child_process';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
|
|
5
|
+
const cliEntry = fileURLToPath(new URL('../src/cli/index.ts', import.meta.url));
|
|
6
|
+
const tsxLoader = import.meta.resolve('tsx');
|
|
7
|
+
const child = spawn(
|
|
8
|
+
process.execPath,
|
|
9
|
+
['--import', tsxLoader, cliEntry, ...process.argv.slice(2)],
|
|
10
|
+
{
|
|
11
|
+
stdio: 'inherit',
|
|
12
|
+
env: process.env,
|
|
13
|
+
},
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
child.once('error', (error) => {
|
|
17
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
18
|
+
process.exit(1);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
child.once('exit', (code, signal) => {
|
|
22
|
+
if (signal) {
|
|
23
|
+
process.kill(process.pid, signal);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
process.exit(code ?? 0);
|
|
27
|
+
});
|