quoxcli 0.0.0-stage → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +35 -0
- package/README.md +144 -2
- package/bin/quox.js +265 -0
- package/bin/quoxon.js +8 -0
- package/lib/api/endpoints/admin.js +151 -0
- package/lib/api/endpoints/aee.js +38 -0
- package/lib/api/endpoints/agent-attach.js +126 -0
- package/lib/api/endpoints/agent-schedules.js +26 -0
- package/lib/api/endpoints/agents.js +63 -0
- package/lib/api/endpoints/assistants.js +62 -0
- package/lib/api/endpoints/audit.js +14 -0
- package/lib/api/endpoints/auth.js +50 -0
- package/lib/api/endpoints/awareness.js +34 -0
- package/lib/api/endpoints/away.js +15 -0
- package/lib/api/endpoints/backup-schedules.js +20 -0
- package/lib/api/endpoints/backups.js +86 -0
- package/lib/api/endpoints/brain.js +140 -0
- package/lib/api/endpoints/budgets.js +62 -0
- package/lib/api/endpoints/calendarq.js +71 -0
- package/lib/api/endpoints/catalog.js +14 -0
- package/lib/api/endpoints/chat.js +61 -0
- package/lib/api/endpoints/consent.js +26 -0
- package/lib/api/endpoints/contactsq.js +68 -0
- package/lib/api/endpoints/conversations.js +46 -0
- package/lib/api/endpoints/custom-roles.js +92 -0
- package/lib/api/endpoints/divisions.js +56 -0
- package/lib/api/endpoints/domains.js +38 -0
- package/lib/api/endpoints/engagement.js +231 -0
- package/lib/api/endpoints/engine.js +11 -0
- package/lib/api/endpoints/entity.js +50 -0
- package/lib/api/endpoints/executions.js +45 -0
- package/lib/api/endpoints/fetchAllowlist.js +27 -0
- package/lib/api/endpoints/file.js +20 -0
- package/lib/api/endpoints/files.js +40 -0
- package/lib/api/endpoints/github.js +21 -0
- package/lib/api/endpoints/governance.js +43 -0
- package/lib/api/endpoints/hat.js +66 -0
- package/lib/api/endpoints/inbox.js +52 -0
- package/lib/api/endpoints/inboxq.js +120 -0
- package/lib/api/endpoints/index.js +242 -0
- package/lib/api/endpoints/invites.js +19 -0
- package/lib/api/endpoints/llm-policy.js +43 -0
- package/lib/api/endpoints/lucid.js +89 -0
- package/lib/api/endpoints/members.js +32 -0
- package/lib/api/endpoints/memory.js +94 -0
- package/lib/api/endpoints/mfa.js +32 -0
- package/lib/api/endpoints/mind.js +13 -0
- package/lib/api/endpoints/mon.js +184 -0
- package/lib/api/endpoints/notesq.js +43 -0
- package/lib/api/endpoints/objectives.js +68 -0
- package/lib/api/endpoints/orgs.js +38 -0
- package/lib/api/endpoints/plugins.js +152 -0
- package/lib/api/endpoints/powers.js +75 -0
- package/lib/api/endpoints/presence.js +33 -0
- package/lib/api/endpoints/prompts.js +69 -0
- package/lib/api/endpoints/qlarity.js +122 -0
- package/lib/api/endpoints/quoxbox.js +55 -0
- package/lib/api/endpoints/quoxchat.js +54 -0
- package/lib/api/endpoints/quoxflow.js +32 -0
- package/lib/api/endpoints/quoxplan.js +121 -0
- package/lib/api/endpoints/quoxseo.js +114 -0
- package/lib/api/endpoints/reach.js +47 -0
- package/lib/api/endpoints/router.js +17 -0
- package/lib/api/endpoints/runs.js +38 -0
- package/lib/api/endpoints/safety.js +53 -0
- package/lib/api/endpoints/scim.js +46 -0
- package/lib/api/endpoints/scopes.js +14 -0
- package/lib/api/endpoints/security.js +69 -0
- package/lib/api/endpoints/setup.js +90 -0
- package/lib/api/endpoints/skills.js +200 -0
- package/lib/api/endpoints/sso.js +67 -0
- package/lib/api/endpoints/stepup.js +20 -0
- package/lib/api/endpoints/tags.js +32 -0
- package/lib/api/endpoints/teams.js +56 -0
- package/lib/api/endpoints/telephony.js +46 -0
- package/lib/api/endpoints/tg.js +56 -0
- package/lib/api/endpoints/tools.js +50 -0
- package/lib/api/endpoints/traces.js +157 -0
- package/lib/api/endpoints/triggers.js +96 -0
- package/lib/api/endpoints/user-library.js +41 -0
- package/lib/api/endpoints/users.js +20 -0
- package/lib/api/endpoints/v1.js +585 -0
- package/lib/api/endpoints/vault.js +192 -0
- package/lib/api/endpoints/voice.js +22 -0
- package/lib/api/endpoints/volt.js +84 -0
- package/lib/api/endpoints/ward.js +47 -0
- package/lib/api/endpoints/webhooks.js +46 -0
- package/lib/api/endpoints/workflows.js +169 -0
- package/lib/api/endpoints/x.js +32 -0
- package/lib/api/endpoints.js +15 -0
- package/lib/commands/actions.js +61 -0
- package/lib/commands/admin.js +375 -0
- package/lib/commands/aee.js +99 -0
- package/lib/commands/agent.js +337 -0
- package/lib/commands/agentAttach.js +1528 -0
- package/lib/commands/approvals.js +119 -0
- package/lib/commands/aside.js +24 -0
- package/lib/commands/ask.js +144 -0
- package/lib/commands/assistant.js +169 -0
- package/lib/commands/auth.js +464 -0
- package/lib/commands/awareness.js +88 -0
- package/lib/commands/backup.js +377 -0
- package/lib/commands/brain.js +1085 -0
- package/lib/commands/budget.js +241 -0
- package/lib/commands/build.js +170 -0
- package/lib/commands/calendar.js +216 -0
- package/lib/commands/capabilities.js +34 -0
- package/lib/commands/chat.js +295 -0
- package/lib/commands/claude.js +380 -0
- package/lib/commands/config-cmd.js +106 -0
- package/lib/commands/consent.js +84 -0
- package/lib/commands/contacts.js +1016 -0
- package/lib/commands/contactsSelftest.js +132 -0
- package/lib/commands/conversation.js +105 -0
- package/lib/commands/dashboard.js +43 -0
- package/lib/commands/department.js +96 -0
- package/lib/commands/dev.js +620 -0
- package/lib/commands/devResident.js +326 -0
- package/lib/commands/devSupervisor.js +1062 -0
- package/lib/commands/discord.js +132 -0
- package/lib/commands/doctor.js +181 -0
- package/lib/commands/domain.js +114 -0
- package/lib/commands/done.js +347 -0
- package/lib/commands/engagement.js +597 -0
- package/lib/commands/entity.js +119 -0
- package/lib/commands/facebook.js +212 -0
- package/lib/commands/fetchAllowlist.js +71 -0
- package/lib/commands/file.js +165 -0
- package/lib/commands/fleet.js +1189 -0
- package/lib/commands/governance.js +647 -0
- package/lib/commands/gripe.js +355 -0
- package/lib/commands/hat.js +374 -0
- package/lib/commands/helpers.js +96 -0
- package/lib/commands/hyperion.js +58 -0
- package/lib/commands/inbox.js +173 -0
- package/lib/commands/instagram.js +264 -0
- package/lib/commands/integration.js +100 -0
- package/lib/commands/inventory.js +115 -0
- package/lib/commands/invites.js +45 -0
- package/lib/commands/licence.js +139 -0
- package/lib/commands/linkedin.js +178 -0
- package/lib/commands/llm-policy.js +117 -0
- package/lib/commands/llm.js +45 -0
- package/lib/commands/lucid.js +597 -0
- package/lib/commands/mail.js +531 -0
- package/lib/commands/memory.js +361 -0
- package/lib/commands/mind.js +71 -0
- package/lib/commands/mon.js +581 -0
- package/lib/commands/monitoring.js +86 -0
- package/lib/commands/motion.js +22 -0
- package/lib/commands/notes.js +1246 -0
- package/lib/commands/notesBatch.js +160 -0
- package/lib/commands/notesBridges.js +56 -0
- package/lib/commands/notesLinks.js +60 -0
- package/lib/commands/notification.js +57 -0
- package/lib/commands/nucleus.js +123 -0
- package/lib/commands/objective.js +240 -0
- package/lib/commands/offload.js +89 -0
- package/lib/commands/onboard.js +329 -0
- package/lib/commands/open.js +56 -0
- package/lib/commands/org.js +276 -0
- package/lib/commands/peek.js +28 -0
- package/lib/commands/plan.js +944 -0
- package/lib/commands/plugin-doctor.js +1091 -0
- package/lib/commands/plugin.js +649 -0
- package/lib/commands/policy.js +78 -0
- package/lib/commands/powers.js +296 -0
- package/lib/commands/presence.js +89 -0
- package/lib/commands/prompt.js +350 -0
- package/lib/commands/provider.js +159 -0
- package/lib/commands/qlarity.js +706 -0
- package/lib/commands/quoxbox.js +270 -0
- package/lib/commands/quoxchat.js +275 -0
- package/lib/commands/quoxseo.js +378 -0
- package/lib/commands/reach.js +159 -0
- package/lib/commands/role.js +286 -0
- package/lib/commands/router.js +77 -0
- package/lib/commands/rows.js +358 -0
- package/lib/commands/run.js +187 -0
- package/lib/commands/safety.js +107 -0
- package/lib/commands/scim.js +88 -0
- package/lib/commands/scope.js +58 -0
- package/lib/commands/security.js +157 -0
- package/lib/commands/server.js +292 -0
- package/lib/commands/service.js +89 -0
- package/lib/commands/settings.js +99 -0
- package/lib/commands/setup.js +569 -0
- package/lib/commands/skillManifest.js +113 -0
- package/lib/commands/skillRightsFormat.js +38 -0
- package/lib/commands/skills.js +687 -0
- package/lib/commands/slot.js +1451 -0
- package/lib/commands/sso.js +229 -0
- package/lib/commands/status.js +137 -0
- package/lib/commands/tag.js +91 -0
- package/lib/commands/team.js +142 -0
- package/lib/commands/tg.js +240 -0
- package/lib/commands/tiktok.js +218 -0
- package/lib/commands/tips.js +23 -0
- package/lib/commands/tool.js +304 -0
- package/lib/commands/trace.js +530 -0
- package/lib/commands/trigger.js +223 -0
- package/lib/commands/update.js +46 -0
- package/lib/commands/vault.js +1447 -0
- package/lib/commands/vm.js +237 -0
- package/lib/commands/voice.js +213 -0
- package/lib/commands/volt.js +570 -0
- package/lib/commands/walkthrough.js +32 -0
- package/lib/commands/watch.js +167 -0
- package/lib/commands/webhook.js +137 -0
- package/lib/commands/welcome.js +14 -0
- package/lib/commands/workflow.js +660 -0
- package/lib/commands/x.js +448 -0
- package/lib/core/actingAs.js +136 -0
- package/lib/core/activeSummary.js +186 -0
- package/lib/core/aee.js +53 -0
- package/lib/core/agentAlias.js +163 -0
- package/lib/core/approvalContext.js +61 -0
- package/lib/core/aside.js +54 -0
- package/lib/core/askDecision.js +60 -0
- package/lib/core/auth.js +501 -0
- package/lib/core/banner.js +143 -0
- package/lib/core/brainPrime.js +90 -0
- package/lib/core/callerSource.js +129 -0
- package/lib/core/claudeLs.js +94 -0
- package/lib/core/cliBuild.js +62 -0
- package/lib/core/client.js +693 -0
- package/lib/core/commandRegistrars.js +121 -0
- package/lib/core/completions.js +163 -0
- package/lib/core/config.js +669 -0
- package/lib/core/confirm.js +37 -0
- package/lib/core/customHats.js +168 -0
- package/lib/core/deeplinks.js +76 -0
- package/lib/core/doneEngineFetch.js +227 -0
- package/lib/core/errors.js +441 -0
- package/lib/core/global-flags.js +190 -0
- package/lib/core/governedSession.js +402 -0
- package/lib/core/hyperion.js +102 -0
- package/lib/core/inboxResolution.js +65 -0
- package/lib/core/lazyCommands.js +122 -0
- package/lib/core/liveSessionsReport.js +112 -0
- package/lib/core/offload.js +504 -0
- package/lib/core/org-override.js +52 -0
- package/lib/core/orgResolve.js +70 -0
- package/lib/core/output.js +239 -0
- package/lib/core/peek.js +126 -0
- package/lib/core/prodEnv.js +7 -0
- package/lib/core/profileUsers.js +51 -0
- package/lib/core/promptCancel.js +18 -0
- package/lib/core/quoxglyph.js +158 -0
- package/lib/core/repoPath.js +11 -0
- package/lib/core/residentAlarm.js +282 -0
- package/lib/core/residentAuth.js +243 -0
- package/lib/core/residentPump.js +229 -0
- package/lib/core/residentSeed.js +106 -0
- package/lib/core/rootOptions.js +39 -0
- package/lib/core/router.js +168 -0
- package/lib/core/selfUpdate.js +188 -0
- package/lib/core/sessionHeartbeat.js +192 -0
- package/lib/core/sessionsOverview.js +224 -0
- package/lib/core/slotKeeper.js +527 -0
- package/lib/core/slotWake.js +120 -0
- package/lib/core/supervisorEngine.js +933 -0
- package/lib/core/systemdInstaller.js +256 -0
- package/lib/core/version.js +87 -0
- package/lib/core/vm.js +361 -0
- package/lib/core/vmTui.js +86 -0
- package/lib/core/walkthrough.js +35 -0
- package/lib/hyperion/deck.js +29 -0
- package/lib/lucid/LucidCard.jsx +68 -0
- package/lib/lucid/LucidIntro.jsx +92 -0
- package/lib/lucid/blind.js +71 -0
- package/lib/lucid/cards.js +86 -0
- package/lib/lucid/deck.js +32 -0
- package/lib/lucid/fmt.js +139 -0
- package/lib/lucid/markdown.js +81 -0
- package/lib/lucid/motion.js +56 -0
- package/lib/lucid/sitrep.js +173 -0
- package/lib/plugins/loader.js +93 -0
- package/lib/quoxon/activity.js +116 -0
- package/lib/quoxon/aocl.js +117 -0
- package/lib/quoxon/api.js +952 -0
- package/lib/quoxon/app.js +4032 -0
- package/lib/quoxon/approvalFacts.js +94 -0
- package/lib/quoxon/approvalsView.js +325 -0
- package/lib/quoxon/asideView.js +40 -0
- package/lib/quoxon/ask.js +121 -0
- package/lib/quoxon/away.js +52 -0
- package/lib/quoxon/bang.js +224 -0
- package/lib/quoxon/bulkRisk.js +17 -0
- package/lib/quoxon/capabilities.js +82 -0
- package/lib/quoxon/cells.js +53 -0
- package/lib/quoxon/commandShort.js +112 -0
- package/lib/quoxon/commands.js +479 -0
- package/lib/quoxon/connect.js +654 -0
- package/lib/quoxon/connectCard.js +45 -0
- package/lib/quoxon/consent.js +86 -0
- package/lib/quoxon/context.js +68 -0
- package/lib/quoxon/copy.js +34 -0
- package/lib/quoxon/countdownLine.js +11 -0
- package/lib/quoxon/demo.autoplay.js +29 -0
- package/lib/quoxon/demo.fixtures.js +24 -0
- package/lib/quoxon/demo.js +76 -0
- package/lib/quoxon/devObserver.js +20 -0
- package/lib/quoxon/dividerAocl.js +191 -0
- package/lib/quoxon/dividerRule.js +57 -0
- package/lib/quoxon/dragonModes.js +150 -0
- package/lib/quoxon/dragonView.js +41 -0
- package/lib/quoxon/earlyInput.js +40 -0
- package/lib/quoxon/echo.js +15 -0
- package/lib/quoxon/egg.js +36 -0
- package/lib/quoxon/events.js +677 -0
- package/lib/quoxon/feedback.js +50 -0
- package/lib/quoxon/gallery.js +237 -0
- package/lib/quoxon/handoffOffer.js +78 -0
- package/lib/quoxon/hatSwitch.js +37 -0
- package/lib/quoxon/headless.js +161 -0
- package/lib/quoxon/hostUrls.js +41 -0
- package/lib/quoxon/indicator.js +197 -0
- package/lib/quoxon/intent.js +52 -0
- package/lib/quoxon/keys.js +164 -0
- package/lib/quoxon/launcher.js +103 -0
- package/lib/quoxon/main.js +176 -0
- package/lib/quoxon/markdown.js +341 -0
- package/lib/quoxon/markdownSettle.js +19 -0
- package/lib/quoxon/matrixDomains.json +46 -0
- package/lib/quoxon/mentions.js +90 -0
- package/lib/quoxon/mind.js +103 -0
- package/lib/quoxon/mode.js +46 -0
- package/lib/quoxon/model.js +311 -0
- package/lib/quoxon/modelPrefs.js +345 -0
- package/lib/quoxon/motion/clock.js +70 -0
- package/lib/quoxon/motion/color.js +35 -0
- package/lib/quoxon/motion/frame.js +14 -0
- package/lib/quoxon/motion/level.js +91 -0
- package/lib/quoxon/motion/reveal.js +54 -0
- package/lib/quoxon/motion/ring.js +79 -0
- package/lib/quoxon/mouse.js +211 -0
- package/lib/quoxon/noai.js +57 -0
- package/lib/quoxon/objects/agent.js +61 -0
- package/lib/quoxon/objects/away.js +72 -0
- package/lib/quoxon/objects/crystal.js +100 -0
- package/lib/quoxon/objects/fetch.js +182 -0
- package/lib/quoxon/objects/fleet.js +149 -0
- package/lib/quoxon/objects/health.js +186 -0
- package/lib/quoxon/objects/index.js +106 -0
- package/lib/quoxon/objects/ladder.js +71 -0
- package/lib/quoxon/objects/memory.js +44 -0
- package/lib/quoxon/objects/mirror.js +137 -0
- package/lib/quoxon/objects/model.js +118 -0
- package/lib/quoxon/objects/peek.js +17 -0
- package/lib/quoxon/objects/proof.js +110 -0
- package/lib/quoxon/objects/prove.js +130 -0
- package/lib/quoxon/objects/replay.js +125 -0
- package/lib/quoxon/objects/sitrep.js +58 -0
- package/lib/quoxon/objects/skill.js +105 -0
- package/lib/quoxon/objects/view.js +87 -0
- package/lib/quoxon/objects/workflow.js +119 -0
- package/lib/quoxon/observers.js +42 -0
- package/lib/quoxon/onboarding/copy.js +263 -0
- package/lib/quoxon/onboarding/credential.js +108 -0
- package/lib/quoxon/onboarding/detect.js +22 -0
- package/lib/quoxon/onboarding/dockerOffer.js +45 -0
- package/lib/quoxon/onboarding/failureCause.js +33 -0
- package/lib/quoxon/onboarding/finish.js +134 -0
- package/lib/quoxon/onboarding/index.js +94 -0
- package/lib/quoxon/onboarding/installRunner.js +284 -0
- package/lib/quoxon/onboarding/intent.js +53 -0
- package/lib/quoxon/onboarding/journey.js +73 -0
- package/lib/quoxon/onboarding/preflight.js +156 -0
- package/lib/quoxon/onboarding/probe.js +65 -0
- package/lib/quoxon/onboarding/runner.js +58 -0
- package/lib/quoxon/onboarding/view.js +682 -0
- package/lib/quoxon/orgLabel.js +10 -0
- package/lib/quoxon/orgSwitch.js +33 -0
- package/lib/quoxon/ownBroadcast.js +22 -0
- package/lib/quoxon/palette.js +43 -0
- package/lib/quoxon/print.js +98 -0
- package/lib/quoxon/profileSwitch.js +53 -0
- package/lib/quoxon/promptHistory.js +41 -0
- package/lib/quoxon/providers.js +48 -0
- package/lib/quoxon/qart.js +348 -0
- package/lib/quoxon/qdragon.js +410 -0
- package/lib/quoxon/qdragonFly.js +61 -0
- package/lib/quoxon/qdragonScenes.js +282 -0
- package/lib/quoxon/qeyes.js +213 -0
- package/lib/quoxon/qglyph.js +143 -0
- package/lib/quoxon/qhello.js +58 -0
- package/lib/quoxon/qmotion.js +132 -0
- package/lib/quoxon/render.js +1167 -0
- package/lib/quoxon/resend.js +72 -0
- package/lib/quoxon/roster.js +307 -0
- package/lib/quoxon/route.js +39 -0
- package/lib/quoxon/rows.js +711 -0
- package/lib/quoxon/rowsStore.js +80 -0
- package/lib/quoxon/rules.js +130 -0
- package/lib/quoxon/screenContext.js +150 -0
- package/lib/quoxon/screenFrames.js +254 -0
- package/lib/quoxon/session.js +238 -0
- package/lib/quoxon/sessionDead.js +17 -0
- package/lib/quoxon/signin.js +125 -0
- package/lib/quoxon/skills.js +30 -0
- package/lib/quoxon/slash/agents.js +112 -0
- package/lib/quoxon/slash/argSources.js +65 -0
- package/lib/quoxon/slash/args.js +65 -0
- package/lib/quoxon/slash/automate.js +89 -0
- package/lib/quoxon/slash/broadcast.js +140 -0
- package/lib/quoxon/slash/broadcastRun.js +108 -0
- package/lib/quoxon/slash/card.js +30 -0
- package/lib/quoxon/slash/challenge.js +114 -0
- package/lib/quoxon/slash/cliCommand.js +53 -0
- package/lib/quoxon/slash/cliLeaves.json +948 -0
- package/lib/quoxon/slash/compact.js +90 -0
- package/lib/quoxon/slash/confirm.js +30 -0
- package/lib/quoxon/slash/crystallize.js +69 -0
- package/lib/quoxon/slash/dashboard.js +136 -0
- package/lib/quoxon/slash/draft.js +54 -0
- package/lib/quoxon/slash/hatWalk.js +206 -0
- package/lib/quoxon/slash/inverses.js +77 -0
- package/lib/quoxon/slash/killer.js +24 -0
- package/lib/quoxon/slash/killerApi.js +16 -0
- package/lib/quoxon/slash/ledger.js +88 -0
- package/lib/quoxon/slash/listView.js +30 -0
- package/lib/quoxon/slash/modelCmd.js +261 -0
- package/lib/quoxon/slash/palette.js +118 -0
- package/lib/quoxon/slash/paletteController.js +169 -0
- package/lib/quoxon/slash/panels.js +116 -0
- package/lib/quoxon/slash/picker.js +56 -0
- package/lib/quoxon/slash/restart.js +202 -0
- package/lib/quoxon/slash/resume.js +59 -0
- package/lib/quoxon/slash/rowCmd.js +157 -0
- package/lib/quoxon/slash/rowWalk.js +175 -0
- package/lib/quoxon/slash/settings.js +60 -0
- package/lib/quoxon/slash/spawn.js +177 -0
- package/lib/quoxon/slash/stepUp.js +274 -0
- package/lib/quoxon/slash/stepUpCard.js +60 -0
- package/lib/quoxon/slash/stepUpCmds.js +78 -0
- package/lib/quoxon/slash/undoApi.js +38 -0
- package/lib/quoxon/slash/undoCmd.js +49 -0
- package/lib/quoxon/slash/undoWish.js +15 -0
- package/lib/quoxon/slash/watch.js +164 -0
- package/lib/quoxon/slash/wish.js +23 -0
- package/lib/quoxon/slash/wishCmd.js +32 -0
- package/lib/quoxon/slotChat.js +300 -0
- package/lib/quoxon/slotFormat.js +195 -0
- package/lib/quoxon/slotRun.js +131 -0
- package/lib/quoxon/sound/index.js +186 -0
- package/lib/quoxon/sound/mapping.js +120 -0
- package/lib/quoxon/sound/output.js +52 -0
- package/lib/quoxon/sound/synth.js +122 -0
- package/lib/quoxon/stray.js +22 -0
- package/lib/quoxon/suggestCommand.js +59 -0
- package/lib/quoxon/term.js +141 -0
- package/lib/quoxon/textBuffer.js +416 -0
- package/lib/quoxon/theme.js +286 -0
- package/lib/quoxon/tips.js +433 -0
- package/lib/quoxon/toolError.js +41 -0
- package/lib/quoxon/transcript.js +188 -0
- package/lib/quoxon/web/qface.js +89 -0
- package/lib/quoxon/welcome.js +52 -0
- package/lib/quoxon/whatsnew.js +136 -0
- package/lib/quoxon/whatsnew.jsonl +89 -0
- package/lib/quoxon/windowOrg.js +113 -0
- package/lib/server/diag.js +129 -0
- package/lib/server/doctor.js +71 -0
- package/lib/server/install.js +149 -0
- package/lib/server/pluginEnable.js +161 -0
- package/lib/server/skew.js +56 -0
- package/lib/server/snapshot.js +131 -0
- package/lib/server/status.js +128 -0
- package/lib/server/sys.js +65 -0
- package/lib/server/uninstall.js +63 -0
- package/lib/server/update.js +234 -0
- package/lib/toolOutputShape.js +315 -0
- package/lib/tui/app.jsx +289 -0
- package/lib/tui/components/Breadcrumb.jsx +42 -0
- package/lib/tui/components/ChatInput.jsx +68 -0
- package/lib/tui/components/Confirm.jsx +32 -0
- package/lib/tui/components/DataTable.jsx +270 -0
- package/lib/tui/components/DetailPanel.jsx +241 -0
- package/lib/tui/components/HelpOverlay.jsx +67 -0
- package/lib/tui/components/Layout.jsx +129 -0
- package/lib/tui/components/Palette.jsx +141 -0
- package/lib/tui/components/SearchInput.jsx +125 -0
- package/lib/tui/components/Sparkline.jsx +55 -0
- package/lib/tui/components/StatusBar.jsx +133 -0
- package/lib/tui/components/Toast.jsx +52 -0
- package/lib/tui/hooks/useApi.js +44 -0
- package/lib/tui/hooks/useHealth.js +90 -0
- package/lib/tui/hooks/usePolledApi.js +86 -0
- package/lib/tui/hooks/useTerminalSize.js +46 -0
- package/lib/tui/index.js +56 -0
- package/lib/tui/intro/Intro.jsx +332 -0
- package/lib/tui/jsx-loader.js +32 -0
- package/lib/tui/keys.js +87 -0
- package/lib/tui/registry.js +49 -0
- package/lib/tui/theme.js +103 -0
- package/lib/tui/views/AdminView.jsx +398 -0
- package/lib/tui/views/AgentView.jsx +204 -0
- package/lib/tui/views/BackupView.jsx +225 -0
- package/lib/tui/views/BrainView.jsx +223 -0
- package/lib/tui/views/ChatView.jsx +468 -0
- package/lib/tui/views/FilesView.jsx +218 -0
- package/lib/tui/views/FleetView.jsx +234 -0
- package/lib/tui/views/GovernanceView.jsx +453 -0
- package/lib/tui/views/HealthView.jsx +216 -0
- package/lib/tui/views/HyperionDeck.jsx +79 -0
- package/lib/tui/views/InboxView.jsx +228 -0
- package/lib/tui/views/LucidDeck.jsx +719 -0
- package/lib/tui/views/MainMenu.jsx +123 -0
- package/lib/tui/views/MemoryView.jsx +377 -0
- package/lib/tui/views/ObjectivesView.jsx +230 -0
- package/lib/tui/views/OrgView.jsx +229 -0
- package/lib/tui/views/ToolView.jsx +221 -0
- package/lib/tui/views/VaultView.jsx +422 -0
- package/lib/tui/views/WorkflowView.jsx +329 -0
- package/package.json +75 -4
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 'tg.*' endpoints — Telegram Pro (QTG-PRO P0), collector-direct
|
|
3
|
+
* (services/collector/server.js), no org segment in the URL — same shape
|
|
4
|
+
* as `quoxbox.*`/`quoxplan.*`/`traces.*`/`aee.*`/`mon.*`. Every route below
|
|
5
|
+
* is `requireServiceOrUserAuth()` server-side (X-Service-Key /
|
|
6
|
+
* INTERNAL_SERVICE_KEY or a user JWT), not org-scoped.
|
|
7
|
+
*
|
|
8
|
+
* - tg.status: GET /telegram-pro/onboarding/status (server.js, thin wrapper
|
|
9
|
+
* around services/collector/lib/telegramPro/onboardingService.js
|
|
10
|
+
* getOnboardingStatus()). Optional ?bot_id= query param.
|
|
11
|
+
* - tg.bindOwner: POST /telegram-pro/onboarding/bind-owner (onboardingService
|
|
12
|
+
* bindOwner()) — 409 when a primary owner binding already exists for the
|
|
13
|
+
* bot/chat, body carries the existing binding.
|
|
14
|
+
* - tg.leases.list: GET /session-leases (sessionLeaseStore.list()) — terminal
|
|
15
|
+
* identity leases for parallel Claude Code sessions on this dev box.
|
|
16
|
+
* - tg.webhook.info: GET /webhook/telegram/info — bot_id is NOT yet honored
|
|
17
|
+
* server-side (single-bot lookup only); passed through here so the CLI is
|
|
18
|
+
* forward-compatible once the backend adds per-bot support.
|
|
19
|
+
* - tg.webhook.setup: POST /webhook/telegram/setup — registers the webhook
|
|
20
|
+
* with Telegram and persists config via the auth service.
|
|
21
|
+
*
|
|
22
|
+
* See cli/lib/api/endpoints/index.js for the fragment convention.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
export const tg = {
|
|
26
|
+
'tg.status': {
|
|
27
|
+
method: 'GET',
|
|
28
|
+
service: 'collector',
|
|
29
|
+
path: () => `/telegram-pro/onboarding/status`,
|
|
30
|
+
tags: ['live-safe'],
|
|
31
|
+
},
|
|
32
|
+
'tg.bindOwner': {
|
|
33
|
+
method: 'POST',
|
|
34
|
+
service: 'collector',
|
|
35
|
+
path: () => `/telegram-pro/onboarding/bind-owner`,
|
|
36
|
+
tags: ['live-write'],
|
|
37
|
+
},
|
|
38
|
+
'tg.leases.list': {
|
|
39
|
+
method: 'GET',
|
|
40
|
+
service: 'collector',
|
|
41
|
+
path: () => `/session-leases`,
|
|
42
|
+
tags: ['live-safe'],
|
|
43
|
+
},
|
|
44
|
+
'tg.webhook.info': {
|
|
45
|
+
method: 'GET',
|
|
46
|
+
service: 'collector',
|
|
47
|
+
path: () => `/webhook/telegram/info`,
|
|
48
|
+
tags: ['live-safe'],
|
|
49
|
+
},
|
|
50
|
+
'tg.webhook.setup': {
|
|
51
|
+
method: 'POST',
|
|
52
|
+
service: 'collector',
|
|
53
|
+
path: () => `/webhook/telegram/setup`,
|
|
54
|
+
tags: ['live-write'],
|
|
55
|
+
},
|
|
56
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 'tools.*' endpoints — extracted from the former monolithic
|
|
3
|
+
* cli/lib/api/endpoints.js as part of the per-domain fragment split.
|
|
4
|
+
* See cli/lib/api/endpoints/index.js for aggregation + the fragment convention.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export const tools = {
|
|
8
|
+
'tools.create': {
|
|
9
|
+
method: 'POST',
|
|
10
|
+
service: 'auth',
|
|
11
|
+
path: ({ orgId }) => `/api/orgs/${orgId}/tools`,
|
|
12
|
+
tags: ['live-write'],
|
|
13
|
+
},
|
|
14
|
+
'tools.delete': {
|
|
15
|
+
method: 'DELETE',
|
|
16
|
+
service: 'auth',
|
|
17
|
+
path: ({ orgId, toolId }) => `/api/orgs/${orgId}/tools/${toolId}`,
|
|
18
|
+
tags: ['live-write'],
|
|
19
|
+
},
|
|
20
|
+
'tools.get': {
|
|
21
|
+
method: 'GET',
|
|
22
|
+
service: 'auth',
|
|
23
|
+
path: ({ orgId, toolId }) => `/api/orgs/${orgId}/tools/${toolId}`,
|
|
24
|
+
tags: ['live-safe'],
|
|
25
|
+
},
|
|
26
|
+
'tools.install-to-scope': {
|
|
27
|
+
method: 'POST',
|
|
28
|
+
service: 'auth',
|
|
29
|
+
path: () => `/api/tools/install-to-scope`,
|
|
30
|
+
tags: ['live-write'],
|
|
31
|
+
},
|
|
32
|
+
'tools.list': {
|
|
33
|
+
method: 'GET',
|
|
34
|
+
service: 'auth',
|
|
35
|
+
path: ({ orgId }) => `/api/orgs/${orgId}/tools`,
|
|
36
|
+
tags: ['live-safe'],
|
|
37
|
+
},
|
|
38
|
+
'tools.publish': {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
service: 'auth',
|
|
41
|
+
path: ({ orgId, toolId }) => `/api/orgs/${orgId}/tools/${toolId}/publish`,
|
|
42
|
+
tags: ['live-write'],
|
|
43
|
+
},
|
|
44
|
+
'tools.update': {
|
|
45
|
+
method: 'PATCH',
|
|
46
|
+
service: 'auth',
|
|
47
|
+
path: ({ orgId, toolId }) => `/api/orgs/${orgId}/tools/${toolId}`,
|
|
48
|
+
tags: ['live-write'],
|
|
49
|
+
},
|
|
50
|
+
};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 'traces.*' endpoints — TRV (Trace Replay & Visualization) API, added as
|
|
3
|
+
* part of WP4.1 (STREAM_CLI_PARITY_PLAN.md §2.3 #8).
|
|
4
|
+
*
|
|
5
|
+
* Backend: services/collector/server.js, mounted at plain `/traces` (NOT
|
|
6
|
+
* org-scoped in the URL — collector-direct, same pattern as aee.js/chat.js).
|
|
7
|
+
* Verified at the handlers (server.js:11718-12348).
|
|
8
|
+
*
|
|
9
|
+
* ORG-SCOPING FINDING (backend, not fixed here — feeds the multi-tenant
|
|
10
|
+
* audit): none of the three list reads below (traces.list, replaySessions.list,
|
|
11
|
+
* comparisons.list, correlations.list) filter by org, despite the write side
|
|
12
|
+
* accepting an optional `org_id` body field on create:
|
|
13
|
+
* - `GET /traces` queries the `envelopes` table, which has NO org_id
|
|
14
|
+
* column at all (see migrations/aee/000-baseline.sql) — every trace on
|
|
15
|
+
* the instance is returned regardless of caller.
|
|
16
|
+
* - `GET /traces/replay-sessions`, `GET /traces/comparisons`, and
|
|
17
|
+
* `GET /traces/correlations` all run a bare `SELECT * ... LIMIT ? OFFSET ?`
|
|
18
|
+
* with no `WHERE org_id = ?` (server.js:2014/2026/2037 prepared
|
|
19
|
+
* statements), even though `replay_sessions.org_id`, `trace_comparisons
|
|
20
|
+
* .org_id`, and `trace_correlations.org_id` columns exist WITH indexes
|
|
21
|
+
* built specifically for this (migrations/volt/000-baseline.sql:175-206)
|
|
22
|
+
* — org_id is stored on write but never used to filter on read. Same
|
|
23
|
+
* "leak" shape as the triggers.* / workflows.list findings documented in
|
|
24
|
+
* endpoints/triggers.js and endpoints/workflows.js. Not fixed here —
|
|
25
|
+
* out of scope for a CLI work package; flagging for the multi-tenant
|
|
26
|
+
* audit that requested this check.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
export const traces = {
|
|
30
|
+
// ── Trace assembly (TRV-2) ──
|
|
31
|
+
'traces.list': {
|
|
32
|
+
method: 'GET',
|
|
33
|
+
service: 'collector',
|
|
34
|
+
path: () => `/traces`,
|
|
35
|
+
tags: ['live-safe'],
|
|
36
|
+
},
|
|
37
|
+
'traces.get': {
|
|
38
|
+
method: 'GET',
|
|
39
|
+
service: 'collector',
|
|
40
|
+
path: ({ id }) => `/traces/${id}`,
|
|
41
|
+
tags: ['live-safe'],
|
|
42
|
+
},
|
|
43
|
+
'traces.simulate': {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
service: 'collector',
|
|
46
|
+
path: ({ id }) => `/traces/${id}/simulate`,
|
|
47
|
+
tags: ['live-write'],
|
|
48
|
+
},
|
|
49
|
+
'traces.compare': {
|
|
50
|
+
method: 'POST',
|
|
51
|
+
service: 'collector',
|
|
52
|
+
path: () => `/traces/compare`,
|
|
53
|
+
tags: ['live-write'],
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
// ── Replay sessions (TRV-1) ──
|
|
57
|
+
'traces.replaySessions.create': {
|
|
58
|
+
method: 'POST',
|
|
59
|
+
service: 'collector',
|
|
60
|
+
path: () => `/traces/replay-sessions`,
|
|
61
|
+
tags: ['live-write'],
|
|
62
|
+
},
|
|
63
|
+
'traces.replaySessions.list': {
|
|
64
|
+
method: 'GET',
|
|
65
|
+
service: 'collector',
|
|
66
|
+
path: () => `/traces/replay-sessions`,
|
|
67
|
+
tags: ['live-safe'],
|
|
68
|
+
},
|
|
69
|
+
'traces.replaySessions.get': {
|
|
70
|
+
method: 'GET',
|
|
71
|
+
service: 'collector',
|
|
72
|
+
path: ({ id }) => `/traces/replay-sessions/${id}`,
|
|
73
|
+
tags: ['live-safe'],
|
|
74
|
+
},
|
|
75
|
+
'traces.replaySessions.update': {
|
|
76
|
+
method: 'PUT',
|
|
77
|
+
service: 'collector',
|
|
78
|
+
path: ({ id }) => `/traces/replay-sessions/${id}`,
|
|
79
|
+
tags: ['live-write'],
|
|
80
|
+
},
|
|
81
|
+
'traces.replaySessions.delete': {
|
|
82
|
+
method: 'DELETE',
|
|
83
|
+
service: 'collector',
|
|
84
|
+
path: ({ id }) => `/traces/replay-sessions/${id}`,
|
|
85
|
+
tags: ['live-write'],
|
|
86
|
+
},
|
|
87
|
+
'traces.replaySessions.deleteAll': {
|
|
88
|
+
method: 'DELETE',
|
|
89
|
+
service: 'collector',
|
|
90
|
+
path: () => `/traces/replay-sessions`,
|
|
91
|
+
tags: ['live-write'],
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
// ── Comparisons (TRV-1) ──
|
|
95
|
+
'traces.comparisons.create': {
|
|
96
|
+
method: 'POST',
|
|
97
|
+
service: 'collector',
|
|
98
|
+
path: () => `/traces/comparisons`,
|
|
99
|
+
tags: ['live-write'],
|
|
100
|
+
},
|
|
101
|
+
'traces.comparisons.list': {
|
|
102
|
+
method: 'GET',
|
|
103
|
+
service: 'collector',
|
|
104
|
+
path: () => `/traces/comparisons`,
|
|
105
|
+
tags: ['live-safe'],
|
|
106
|
+
},
|
|
107
|
+
'traces.comparisons.get': {
|
|
108
|
+
method: 'GET',
|
|
109
|
+
service: 'collector',
|
|
110
|
+
path: ({ id }) => `/traces/comparisons/${id}`,
|
|
111
|
+
tags: ['live-safe'],
|
|
112
|
+
},
|
|
113
|
+
'traces.comparisons.update': {
|
|
114
|
+
method: 'PUT',
|
|
115
|
+
service: 'collector',
|
|
116
|
+
path: ({ id }) => `/traces/comparisons/${id}`,
|
|
117
|
+
tags: ['live-write'],
|
|
118
|
+
},
|
|
119
|
+
'traces.comparisons.delete': {
|
|
120
|
+
method: 'DELETE',
|
|
121
|
+
service: 'collector',
|
|
122
|
+
path: ({ id }) => `/traces/comparisons/${id}`,
|
|
123
|
+
tags: ['live-write'],
|
|
124
|
+
},
|
|
125
|
+
'traces.comparisons.deleteAll': {
|
|
126
|
+
method: 'DELETE',
|
|
127
|
+
service: 'collector',
|
|
128
|
+
path: () => `/traces/comparisons`,
|
|
129
|
+
tags: ['live-write'],
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
// ── Correlation cache (TRV-1) ──
|
|
133
|
+
'traces.correlations.get': {
|
|
134
|
+
method: 'GET',
|
|
135
|
+
service: 'collector',
|
|
136
|
+
path: ({ runId }) => `/traces/correlations/${runId}`,
|
|
137
|
+
tags: ['live-safe'],
|
|
138
|
+
},
|
|
139
|
+
'traces.correlations.create': {
|
|
140
|
+
method: 'POST',
|
|
141
|
+
service: 'collector',
|
|
142
|
+
path: () => `/traces/correlations`,
|
|
143
|
+
tags: ['live-write'],
|
|
144
|
+
},
|
|
145
|
+
'traces.correlations.list': {
|
|
146
|
+
method: 'GET',
|
|
147
|
+
service: 'collector',
|
|
148
|
+
path: () => `/traces/correlations`,
|
|
149
|
+
tags: ['live-safe'],
|
|
150
|
+
},
|
|
151
|
+
'traces.correlations.delete': {
|
|
152
|
+
method: 'DELETE',
|
|
153
|
+
service: 'collector',
|
|
154
|
+
path: ({ runId }) => `/traces/correlations/${runId}`,
|
|
155
|
+
tags: ['live-write'],
|
|
156
|
+
},
|
|
157
|
+
};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 'triggers.*' endpoints — WP2.2 (docs/STREAM_CLI_PARITY_PLAN.md §2.3 #2).
|
|
3
|
+
* See cli/lib/api/endpoints/index.js for aggregation + the fragment convention.
|
|
4
|
+
*
|
|
5
|
+
* STEP 0 — quoxflow access path decision (documented here so future quoxflow
|
|
6
|
+
* work packages don't have to re-derive it):
|
|
7
|
+
*
|
|
8
|
+
* DIRECT to quoxflow (service: 'quoxflow'), NOT via the collector proxy.
|
|
9
|
+
*
|
|
10
|
+
* Evidence:
|
|
11
|
+
* - services/collector/server.js proxies quoxflow ONLY on three explicit,
|
|
12
|
+
* hand-mounted paths: `GET /quoxflow/evidence`, `GET /quoxflow/observations`,
|
|
13
|
+
* `GET /quoxflow/skills[/:id]` (server.js ~19140-19260, "STUDY-REV P6.C —
|
|
14
|
+
* QuoxFlow evidence + observations proxy" / "CLI-COCKPIT — QuoxFlow
|
|
15
|
+
* skill-library (QSKL) read-only proxy"). Nothing forwards `/api/triggers/*`
|
|
16
|
+
* or `/api/workflows/:id/activate|deactivate` — grepping server.js for
|
|
17
|
+
* 'quoxflow' turns up no catch-all proxy, only these three routes plus
|
|
18
|
+
* health-check plumbing. Fable's note that collector proxies are
|
|
19
|
+
* per-path explicit (not a wildcard) is confirmed live in this file.
|
|
20
|
+
* - quoxflow/src/api/app.ts mounts `createTriggersRoutes` at `app.route('/api/triggers', ...)`
|
|
21
|
+
* and `createWorkflowLifecycleRoutes` at `app.route('/api/workflows', ...)`
|
|
22
|
+
* (both confirmed by reading app.ts directly) — i.e. the real paths are
|
|
23
|
+
* `/api/triggers/webhooks|schedules|events` and
|
|
24
|
+
* `/api/workflows/:id/activate|deactivate`, neither proxied by collector.
|
|
25
|
+
* - quoxflow/src/api/middleware/auth.ts verifies the SAME JWT_SECRET as the
|
|
26
|
+
* QuoxCORE auth service, so a normal `quox login` bearer token is valid
|
|
27
|
+
* against quoxflow directly with zero extra auth plumbing.
|
|
28
|
+
* - cli/lib/commands/doctor.js already references `service: 'quoxflow',
|
|
29
|
+
* port: 3200` for its health check, establishing the service name — but
|
|
30
|
+
* cli/lib/core/config.js's SERVICE_PORTS never actually had a `quoxflow`
|
|
31
|
+
* key, so that health check silently resolved to the wrong URL (falls
|
|
32
|
+
* through to the base profile URL, unmodified port). Fixed alongside
|
|
33
|
+
* this fragment by adding `quoxflow: 3200` to SERVICE_PORTS, matching
|
|
34
|
+
* docker-compose.yml's `127.0.0.1:${QUOXFLOW_PORT:-3200}:3200` mapping.
|
|
35
|
+
*
|
|
36
|
+
* Conclusion: direct is both the only reachable path AND now correctly
|
|
37
|
+
* wired (QUOX_QUOXFLOW_URL env override still available per the standard
|
|
38
|
+
* getServiceUrl() convention for non-docker-compose deployments).
|
|
39
|
+
*
|
|
40
|
+
* BACKEND FINDING (not fixed here — flagged for triage): none of
|
|
41
|
+
* GET /api/triggers/webhooks, /schedules, or /events accept or filter by an
|
|
42
|
+
* org/workflow scope — quoxflow/src/api/routes/triggers.ts calls
|
|
43
|
+
* `config.webhookRegistry.getAll()` / `config.eventBus.getSubscriptions()`
|
|
44
|
+
* unfiltered, returning every registered trigger across every org/workflow
|
|
45
|
+
* on the instance. This is a cross-tenant read surface; the CLI commands
|
|
46
|
+
* here pass the data through as-is (no client-side org filtering exists to
|
|
47
|
+
* mask it) and this comment intentionally does not silently filter either,
|
|
48
|
+
* since a client-side filter would hide the real gap instead of surfacing it.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
export const triggers = {
|
|
52
|
+
'triggers.events': {
|
|
53
|
+
method: 'GET',
|
|
54
|
+
service: 'quoxflow',
|
|
55
|
+
path: () => `/api/triggers/events`,
|
|
56
|
+
tags: ['live-safe'],
|
|
57
|
+
},
|
|
58
|
+
'triggers.schedules': {
|
|
59
|
+
method: 'GET',
|
|
60
|
+
service: 'quoxflow',
|
|
61
|
+
path: () => `/api/triggers/schedules`,
|
|
62
|
+
tags: ['live-safe'],
|
|
63
|
+
},
|
|
64
|
+
'triggers.webhooks': {
|
|
65
|
+
method: 'GET',
|
|
66
|
+
service: 'quoxflow',
|
|
67
|
+
path: () => `/api/triggers/webhooks`,
|
|
68
|
+
tags: ['live-safe'],
|
|
69
|
+
},
|
|
70
|
+
// SITE-CLI 2026-10-19: pause/resume a schedule without re-applying the workflow JSON. quoxflow's
|
|
71
|
+
// src/api/routes/schedules.ts (mounted at /api/schedules) is org-scoped (cross-org = 404), persists
|
|
72
|
+
// node.config.paused and emits SCHEDULE.PAUSED / SCHEDULE.RESUMED envelopes.
|
|
73
|
+
'triggers.schedule-list': {
|
|
74
|
+
method: 'GET',
|
|
75
|
+
service: 'quoxflow',
|
|
76
|
+
path: () => `/api/schedules`,
|
|
77
|
+
tags: ['live-safe'],
|
|
78
|
+
},
|
|
79
|
+
'triggers.schedule-pause': {
|
|
80
|
+
method: 'POST',
|
|
81
|
+
service: 'quoxflow',
|
|
82
|
+
path: ({ workflowId, nodeId }) => `/api/schedules/${encodeURIComponent(workflowId)}/${encodeURIComponent(nodeId)}/pause`,
|
|
83
|
+
},
|
|
84
|
+
'triggers.schedule-resume': {
|
|
85
|
+
method: 'POST',
|
|
86
|
+
service: 'quoxflow',
|
|
87
|
+
path: ({ workflowId, nodeId }) => `/api/schedules/${encodeURIComponent(workflowId)}/${encodeURIComponent(nodeId)}/resume`,
|
|
88
|
+
},
|
|
89
|
+
// The public webhook ingress (quoxflow src/api/routes/webhook-triggers.ts, mounted at /webhooks). It copies every
|
|
90
|
+
// request header into the run's trigger data, so the CLI fires it with NO credentials (noAuth).
|
|
91
|
+
'triggers.webhook-fire': {
|
|
92
|
+
method: 'POST',
|
|
93
|
+
service: 'quoxflow',
|
|
94
|
+
path: ({ path }) => `/webhooks/${path}`,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 'user-library.*' endpoints — WP2.3 (docs/STREAM_CLI_PARITY_PLAN.md §2.3 #3).
|
|
3
|
+
* See cli/lib/api/endpoints/index.js for aggregation + the fragment convention.
|
|
4
|
+
*
|
|
5
|
+
* Per-org/per-user saved workflow library ("My Library"). Backend: the auth
|
|
6
|
+
* service (NOT quoxflow, NOT proxied) — services/auth/routes/user-library.js,
|
|
7
|
+
* mounted at plain `/api` (server.js:724), so the router's own
|
|
8
|
+
* `/orgs/:orgId/user-library` paths are the real, final routes.
|
|
9
|
+
*
|
|
10
|
+
* Always scoped to `user_id = req.user.id` in addition to `org_id` (see the
|
|
11
|
+
* route file's own header comment) — another user in the same org cannot see
|
|
12
|
+
* or delete these entries. No cross-tenant/cross-user leak found here, unlike
|
|
13
|
+
* the quoxflow triggers.* list routes.
|
|
14
|
+
*
|
|
15
|
+
* POST /api/orgs/:orgId/user-library body: { name, description?, definition_json, source?, source_workflow_id?, tags? }
|
|
16
|
+
* 201 { entry } | 400 name/definition_json missing | 409 duplicate name
|
|
17
|
+
* GET /api/orgs/:orgId/user-library query: { source? } ('curated'|'n8n-imported'|'mine')
|
|
18
|
+
* 200 { entries: [...] } ordered by updated_at DESC
|
|
19
|
+
* DELETE /api/orgs/:orgId/user-library/:id 200 { ok: true } | 404 (not found or wrong owner — same code, no leak)
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export const userLibrary = {
|
|
23
|
+
'user-library.create': {
|
|
24
|
+
method: 'POST',
|
|
25
|
+
service: 'auth',
|
|
26
|
+
path: ({ orgId }) => `/api/orgs/${orgId}/user-library`,
|
|
27
|
+
tags: ['live-write'],
|
|
28
|
+
},
|
|
29
|
+
'user-library.delete': {
|
|
30
|
+
method: 'DELETE',
|
|
31
|
+
service: 'auth',
|
|
32
|
+
path: ({ orgId, id }) => `/api/orgs/${orgId}/user-library/${id}`,
|
|
33
|
+
tags: ['live-write'],
|
|
34
|
+
},
|
|
35
|
+
'user-library.list': {
|
|
36
|
+
method: 'GET',
|
|
37
|
+
service: 'auth',
|
|
38
|
+
path: ({ orgId }) => `/api/orgs/${orgId}/user-library`,
|
|
39
|
+
tags: ['live-safe'],
|
|
40
|
+
},
|
|
41
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 'users.*' endpoints — extracted from the former monolithic
|
|
3
|
+
* cli/lib/api/endpoints.js as part of the per-domain fragment split.
|
|
4
|
+
* See cli/lib/api/endpoints/index.js for aggregation + the fragment convention.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export const users = {
|
|
8
|
+
'users.me.notification-channels.list': {
|
|
9
|
+
method: 'GET',
|
|
10
|
+
service: 'auth',
|
|
11
|
+
path: () => `/api/users/me/notification-channels`,
|
|
12
|
+
tags: ['live-safe'],
|
|
13
|
+
},
|
|
14
|
+
'users.me.notification-channels.update': {
|
|
15
|
+
method: 'PUT',
|
|
16
|
+
service: 'auth',
|
|
17
|
+
path: ({ type }) => `/api/users/me/notification-channels/${type}`,
|
|
18
|
+
tags: ['live-write'],
|
|
19
|
+
},
|
|
20
|
+
};
|