@vibesdotdev/hq 0.0.0-stage → 1.0.0-rc.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 +18 -0
- package/README.md +49 -2
- package/dist/agent-events/descriptors.d.ts +33 -0
- package/dist/agent-events/descriptors.d.ts.map +1 -0
- package/dist/agent-events/descriptors.js +34 -0
- package/dist/agent-events/descriptors.js.map +1 -0
- package/dist/app/auth/cloud-sync.consumer.d.ts +12 -0
- package/dist/app/auth/cloud-sync.consumer.d.ts.map +1 -0
- package/dist/app/auth/cloud-sync.consumer.js +31 -0
- package/dist/app/auth/cloud-sync.consumer.js.map +1 -0
- package/dist/app/auth/hq.app-auth-machine.record.descriptor.d.ts +5 -0
- package/dist/app/auth/hq.app-auth-machine.record.descriptor.d.ts.map +1 -0
- package/dist/app/auth/hq.app-auth-machine.record.descriptor.js +39 -0
- package/dist/app/auth/hq.app-auth-machine.record.descriptor.js.map +1 -0
- package/dist/app/auth/hq.app-auth-pairings.record.descriptor.d.ts +5 -0
- package/dist/app/auth/hq.app-auth-pairings.record.descriptor.d.ts.map +1 -0
- package/dist/app/auth/hq.app-auth-pairings.record.descriptor.js +43 -0
- package/dist/app/auth/hq.app-auth-pairings.record.descriptor.js.map +1 -0
- package/dist/app/auth/hq.app-auth-tokens.record.descriptor.d.ts +5 -0
- package/dist/app/auth/hq.app-auth-tokens.record.descriptor.d.ts.map +1 -0
- package/dist/app/auth/hq.app-auth-tokens.record.descriptor.js +42 -0
- package/dist/app/auth/hq.app-auth-tokens.record.descriptor.js.map +1 -0
- package/dist/app/auth/schemas/auth.d.ts +146 -0
- package/dist/app/auth/schemas/auth.d.ts.map +1 -0
- package/dist/app/auth/schemas/auth.js +53 -0
- package/dist/app/auth/schemas/auth.js.map +1 -0
- package/dist/app/auth/service.consumer.d.ts +17 -0
- package/dist/app/auth/service.consumer.d.ts.map +1 -0
- package/dist/app/auth/service.consumer.js +79 -0
- package/dist/app/auth/service.consumer.js.map +1 -0
- package/dist/app/auth/sync.consumer.d.ts +2 -0
- package/dist/app/auth/sync.consumer.d.ts.map +1 -0
- package/dist/app/auth/sync.consumer.js +2 -0
- package/dist/app/auth/sync.consumer.js.map +1 -0
- package/dist/app/auth/sync.d.ts +23 -0
- package/dist/app/auth/sync.d.ts.map +1 -0
- package/dist/app/auth/sync.js +290 -0
- package/dist/app/auth/sync.js.map +1 -0
- package/dist/app/auth/types.d.ts +20 -0
- package/dist/app/auth/types.d.ts.map +1 -0
- package/dist/app/auth/types.js +7 -0
- package/dist/app/auth/types.js.map +1 -0
- package/dist/app/sync/hq.app-auth.sync-bridge.descriptor.d.ts +9 -0
- package/dist/app/sync/hq.app-auth.sync-bridge.descriptor.d.ts.map +1 -0
- package/dist/app/sync/hq.app-auth.sync-bridge.descriptor.js +45 -0
- package/dist/app/sync/hq.app-auth.sync-bridge.descriptor.js.map +1 -0
- package/dist/applets/component-ref.d.ts +6 -0
- package/dist/applets/component-ref.d.ts.map +1 -0
- package/dist/applets/component-ref.js +6 -0
- package/dist/applets/component-ref.js.map +1 -0
- package/dist/applets/index.d.ts +3 -0
- package/dist/applets/index.d.ts.map +1 -0
- package/dist/applets/index.js +3 -0
- package/dist/applets/index.js.map +1 -0
- package/dist/approval/approval-resolved.event.descriptor.d.ts +11 -0
- package/dist/approval/approval-resolved.event.descriptor.d.ts.map +1 -0
- package/dist/approval/approval-resolved.event.descriptor.js +11 -0
- package/dist/approval/approval-resolved.event.descriptor.js.map +1 -0
- package/dist/approval/approval-resolved.job.descriptor.d.ts +36 -0
- package/dist/approval/approval-resolved.job.descriptor.d.ts.map +1 -0
- package/dist/approval/approval-resolved.job.descriptor.js +24 -0
- package/dist/approval/approval-resolved.job.descriptor.js.map +1 -0
- package/dist/approval/approval-resolved.job.impl.d.ts +19 -0
- package/dist/approval/approval-resolved.job.impl.d.ts.map +1 -0
- package/dist/approval/approval-resolved.job.impl.js +26 -0
- package/dist/approval/approval-resolved.job.impl.js.map +1 -0
- package/dist/approval/approval-resolved.subscription.descriptor.d.ts +21 -0
- package/dist/approval/approval-resolved.subscription.descriptor.d.ts.map +1 -0
- package/dist/approval/approval-resolved.subscription.descriptor.js +20 -0
- package/dist/approval/approval-resolved.subscription.descriptor.js.map +1 -0
- package/dist/approval/schemas.d.ts +45 -0
- package/dist/approval/schemas.d.ts.map +1 -0
- package/dist/approval/schemas.js +27 -0
- package/dist/approval/schemas.js.map +1 -0
- package/dist/approval/surface-approval-channel.descriptor.d.ts +14 -0
- package/dist/approval/surface-approval-channel.descriptor.d.ts.map +1 -0
- package/dist/approval/surface-approval-channel.descriptor.js +16 -0
- package/dist/approval/surface-approval-channel.descriptor.js.map +1 -0
- package/dist/approval/surface-approval-channel.impl.d.ts +19 -0
- package/dist/approval/surface-approval-channel.impl.d.ts.map +1 -0
- package/dist/approval/surface-approval-channel.impl.js +101 -0
- package/dist/approval/surface-approval-channel.impl.js.map +1 -0
- package/dist/cli/app/handoff/hq.app.handoff.descriptor.d.ts +40 -0
- package/dist/cli/app/handoff/hq.app.handoff.descriptor.d.ts.map +1 -0
- package/dist/cli/app/handoff/hq.app.handoff.descriptor.js +23 -0
- package/dist/cli/app/handoff/hq.app.handoff.descriptor.js.map +1 -0
- package/dist/cli/app/handoff/hq.app.handoff.impl.consumer.d.ts +7 -0
- package/dist/cli/app/handoff/hq.app.handoff.impl.consumer.d.ts.map +1 -0
- package/dist/cli/app/handoff/hq.app.handoff.impl.consumer.js +107 -0
- package/dist/cli/app/handoff/hq.app.handoff.impl.consumer.js.map +1 -0
- package/dist/cli/app/hq.app.cli-group.descriptor.d.ts +12 -0
- package/dist/cli/app/hq.app.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/app/hq.app.cli-group.descriptor.js +12 -0
- package/dist/cli/app/hq.app.cli-group.descriptor.js.map +1 -0
- package/dist/cli/app/pair/hq.app.pair.descriptor.d.ts +43 -0
- package/dist/cli/app/pair/hq.app.pair.descriptor.d.ts.map +1 -0
- package/dist/cli/app/pair/hq.app.pair.descriptor.js +27 -0
- package/dist/cli/app/pair/hq.app.pair.descriptor.js.map +1 -0
- package/dist/cli/app/pair/hq.app.pair.impl.consumer.d.ts +7 -0
- package/dist/cli/app/pair/hq.app.pair.impl.consumer.d.ts.map +1 -0
- package/dist/cli/app/pair/hq.app.pair.impl.consumer.js +89 -0
- package/dist/cli/app/pair/hq.app.pair.impl.consumer.js.map +1 -0
- package/dist/cli/app/shared/options.d.ts +68 -0
- package/dist/cli/app/shared/options.d.ts.map +1 -0
- package/dist/cli/app/shared/options.js +7 -0
- package/dist/cli/app/shared/options.js.map +1 -0
- package/dist/cli/app/token/hq.app.token.descriptor.d.ts +40 -0
- package/dist/cli/app/token/hq.app.token.descriptor.d.ts.map +1 -0
- package/dist/cli/app/token/hq.app.token.descriptor.js +23 -0
- package/dist/cli/app/token/hq.app.token.descriptor.js.map +1 -0
- package/dist/cli/app/token/hq.app.token.impl.consumer.d.ts +7 -0
- package/dist/cli/app/token/hq.app.token.impl.consumer.d.ts.map +1 -0
- package/dist/cli/app/token/hq.app.token.impl.consumer.js +89 -0
- package/dist/cli/app/token/hq.app.token.impl.consumer.js.map +1 -0
- package/dist/cli/channel/hq.channel.cli-group.descriptor.d.ts +12 -0
- package/dist/cli/channel/hq.channel.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.cli-group.descriptor.js +12 -0
- package/dist/cli/channel/hq.channel.cli-group.descriptor.js.map +1 -0
- package/dist/cli/channel/hq.channel.enable.descriptor.d.ts +21 -0
- package/dist/cli/channel/hq.channel.enable.descriptor.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.enable.descriptor.js +16 -0
- package/dist/cli/channel/hq.channel.enable.descriptor.js.map +1 -0
- package/dist/cli/channel/hq.channel.enable.impl.d.ts +7 -0
- package/dist/cli/channel/hq.channel.enable.impl.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.enable.impl.js +23 -0
- package/dist/cli/channel/hq.channel.enable.impl.js.map +1 -0
- package/dist/cli/channel/hq.channel.fire.descriptor.d.ts +17 -0
- package/dist/cli/channel/hq.channel.fire.descriptor.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.fire.descriptor.js +13 -0
- package/dist/cli/channel/hq.channel.fire.descriptor.js.map +1 -0
- package/dist/cli/channel/hq.channel.fire.impl.d.ts +7 -0
- package/dist/cli/channel/hq.channel.fire.impl.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.fire.impl.js +26 -0
- package/dist/cli/channel/hq.channel.fire.impl.js.map +1 -0
- package/dist/cli/channel/hq.channel.list.descriptor.d.ts +16 -0
- package/dist/cli/channel/hq.channel.list.descriptor.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.list.descriptor.js +13 -0
- package/dist/cli/channel/hq.channel.list.descriptor.js.map +1 -0
- package/dist/cli/channel/hq.channel.list.impl.d.ts +7 -0
- package/dist/cli/channel/hq.channel.list.impl.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.list.impl.js +30 -0
- package/dist/cli/channel/hq.channel.list.impl.js.map +1 -0
- package/dist/cli/channel/hq.channel.logs.descriptor.d.ts +24 -0
- package/dist/cli/channel/hq.channel.logs.descriptor.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.logs.descriptor.js +17 -0
- package/dist/cli/channel/hq.channel.logs.descriptor.js.map +1 -0
- package/dist/cli/channel/hq.channel.logs.impl.d.ts +9 -0
- package/dist/cli/channel/hq.channel.logs.impl.d.ts.map +1 -0
- package/dist/cli/channel/hq.channel.logs.impl.js +74 -0
- package/dist/cli/channel/hq.channel.logs.impl.js.map +1 -0
- package/dist/cli/friction/_store-hint.d.ts +7 -0
- package/dist/cli/friction/_store-hint.d.ts.map +1 -0
- package/dist/cli/friction/_store-hint.js +13 -0
- package/dist/cli/friction/_store-hint.js.map +1 -0
- package/dist/cli/friction/hq.friction.cli-group.descriptor.d.ts +11 -0
- package/dist/cli/friction/hq.friction.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.cli-group.descriptor.js +15 -0
- package/dist/cli/friction/hq.friction.cli-group.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.disposition.d.ts +5 -0
- package/dist/cli/friction/hq.friction.disposition.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.disposition.js +64 -0
- package/dist/cli/friction/hq.friction.disposition.js.map +1 -0
- package/dist/cli/friction/hq.friction.emit.descriptor.d.ts +65 -0
- package/dist/cli/friction/hq.friction.emit.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.emit.descriptor.js +70 -0
- package/dist/cli/friction/hq.friction.emit.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.emit.impl.d.ts +7 -0
- package/dist/cli/friction/hq.friction.emit.impl.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.emit.impl.js +85 -0
- package/dist/cli/friction/hq.friction.emit.impl.js.map +1 -0
- package/dist/cli/friction/hq.friction.list.descriptor.d.ts +37 -0
- package/dist/cli/friction/hq.friction.list.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.list.descriptor.js +22 -0
- package/dist/cli/friction/hq.friction.list.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.list.impl.d.ts +7 -0
- package/dist/cli/friction/hq.friction.list.impl.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.list.impl.js +73 -0
- package/dist/cli/friction/hq.friction.list.impl.js.map +1 -0
- package/dist/cli/friction/hq.friction.promote.descriptor.d.ts +21 -0
- package/dist/cli/friction/hq.friction.promote.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.promote.descriptor.js +14 -0
- package/dist/cli/friction/hq.friction.promote.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.promote.impl.d.ts +7 -0
- package/dist/cli/friction/hq.friction.promote.impl.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.promote.impl.js +47 -0
- package/dist/cli/friction/hq.friction.promote.impl.js.map +1 -0
- package/dist/cli/friction/hq.friction.reject.descriptor.d.ts +24 -0
- package/dist/cli/friction/hq.friction.reject.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.reject.descriptor.js +17 -0
- package/dist/cli/friction/hq.friction.reject.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.reject.impl.d.ts +6 -0
- package/dist/cli/friction/hq.friction.reject.impl.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.reject.impl.js +7 -0
- package/dist/cli/friction/hq.friction.reject.impl.js.map +1 -0
- package/dist/cli/friction/hq.friction.resolve.descriptor.d.ts +27 -0
- package/dist/cli/friction/hq.friction.resolve.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.resolve.descriptor.js +18 -0
- package/dist/cli/friction/hq.friction.resolve.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.resolve.impl.d.ts +6 -0
- package/dist/cli/friction/hq.friction.resolve.impl.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.resolve.impl.js +7 -0
- package/dist/cli/friction/hq.friction.resolve.impl.js.map +1 -0
- package/dist/cli/friction/hq.friction.show.descriptor.d.ts +24 -0
- package/dist/cli/friction/hq.friction.show.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.show.descriptor.js +17 -0
- package/dist/cli/friction/hq.friction.show.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.show.impl.d.ts +7 -0
- package/dist/cli/friction/hq.friction.show.impl.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.show.impl.js +64 -0
- package/dist/cli/friction/hq.friction.show.impl.js.map +1 -0
- package/dist/cli/friction/hq.friction.sync.descriptor.d.ts +16 -0
- package/dist/cli/friction/hq.friction.sync.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.sync.descriptor.js +13 -0
- package/dist/cli/friction/hq.friction.sync.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.sync.impl.d.ts +7 -0
- package/dist/cli/friction/hq.friction.sync.impl.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.sync.impl.js +29 -0
- package/dist/cli/friction/hq.friction.sync.impl.js.map +1 -0
- package/dist/cli/friction/hq.friction.triage.descriptor.d.ts +27 -0
- package/dist/cli/friction/hq.friction.triage.descriptor.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.triage.descriptor.js +18 -0
- package/dist/cli/friction/hq.friction.triage.descriptor.js.map +1 -0
- package/dist/cli/friction/hq.friction.triage.impl.d.ts +6 -0
- package/dist/cli/friction/hq.friction.triage.impl.d.ts.map +1 -0
- package/dist/cli/friction/hq.friction.triage.impl.js +7 -0
- package/dist/cli/friction/hq.friction.triage.impl.js.map +1 -0
- package/dist/cli/friction/invocation.d.ts +12 -0
- package/dist/cli/friction/invocation.d.ts.map +1 -0
- package/dist/cli/friction/invocation.js +28 -0
- package/dist/cli/friction/invocation.js.map +1 -0
- package/dist/cli/health/hq.health.descriptor.d.ts +19 -0
- package/dist/cli/health/hq.health.descriptor.d.ts.map +1 -0
- package/dist/cli/health/hq.health.descriptor.js +16 -0
- package/dist/cli/health/hq.health.descriptor.js.map +1 -0
- package/dist/cli/health/hq.health.impl.d.ts +3 -0
- package/dist/cli/health/hq.health.impl.d.ts.map +1 -0
- package/dist/cli/health/hq.health.impl.js +151 -0
- package/dist/cli/health/hq.health.impl.js.map +1 -0
- package/dist/cli/host-platform.d.ts +14 -0
- package/dist/cli/host-platform.d.ts.map +1 -0
- package/dist/cli/host-platform.js +30 -0
- package/dist/cli/host-platform.js.map +1 -0
- package/dist/cli/hq.cli-group.descriptor.d.ts +11 -0
- package/dist/cli/hq.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/hq.cli-group.descriptor.js +11 -0
- package/dist/cli/hq.cli-group.descriptor.js.map +1 -0
- package/dist/cli/init/hq.init.descriptor.d.ts +7 -0
- package/dist/cli/init/hq.init.descriptor.d.ts.map +1 -0
- package/dist/cli/init/hq.init.descriptor.js +36 -0
- package/dist/cli/init/hq.init.descriptor.js.map +1 -0
- package/dist/cli/init/hq.init.impl.d.ts +7 -0
- package/dist/cli/init/hq.init.impl.d.ts.map +1 -0
- package/dist/cli/init/hq.init.impl.js +163 -0
- package/dist/cli/init/hq.init.impl.js.map +1 -0
- package/dist/cli/install/hq.install.descriptor.d.ts +9 -0
- package/dist/cli/install/hq.install.descriptor.d.ts.map +1 -0
- package/dist/cli/install/hq.install.descriptor.js +34 -0
- package/dist/cli/install/hq.install.descriptor.js.map +1 -0
- package/dist/cli/install/hq.install.impl.d.ts +6 -0
- package/dist/cli/install/hq.install.impl.d.ts.map +1 -0
- package/dist/cli/install/hq.install.impl.js +110 -0
- package/dist/cli/install/hq.install.impl.js.map +1 -0
- package/dist/cli/permissions/hq.permissions.descriptor.d.ts +9 -0
- package/dist/cli/permissions/hq.permissions.descriptor.d.ts.map +1 -0
- package/dist/cli/permissions/hq.permissions.descriptor.js +25 -0
- package/dist/cli/permissions/hq.permissions.descriptor.js.map +1 -0
- package/dist/cli/permissions/hq.permissions.impl.d.ts +3 -0
- package/dist/cli/permissions/hq.permissions.impl.d.ts.map +1 -0
- package/dist/cli/permissions/hq.permissions.impl.js +113 -0
- package/dist/cli/permissions/hq.permissions.impl.js.map +1 -0
- package/dist/cli/plugin.d.ts +3 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +77 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/schemas/input.d.ts +117 -0
- package/dist/cli/schemas/input.d.ts.map +1 -0
- package/dist/cli/schemas/input.js +66 -0
- package/dist/cli/schemas/input.js.map +1 -0
- package/dist/cli/service/hq.service.cli-group.descriptor.d.ts +12 -0
- package/dist/cli/service/hq.service.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/service/hq.service.cli-group.descriptor.js +12 -0
- package/dist/cli/service/hq.service.cli-group.descriptor.js.map +1 -0
- package/dist/cli/service/hq.service.list.descriptor.d.ts +16 -0
- package/dist/cli/service/hq.service.list.descriptor.d.ts.map +1 -0
- package/dist/cli/service/hq.service.list.descriptor.js +13 -0
- package/dist/cli/service/hq.service.list.descriptor.js.map +1 -0
- package/dist/cli/service/hq.service.list.impl.d.ts +7 -0
- package/dist/cli/service/hq.service.list.impl.d.ts.map +1 -0
- package/dist/cli/service/hq.service.list.impl.js +31 -0
- package/dist/cli/service/hq.service.list.impl.js.map +1 -0
- package/dist/cli/service/hq.service.manage.descriptor.d.ts +25 -0
- package/dist/cli/service/hq.service.manage.descriptor.d.ts.map +1 -0
- package/dist/cli/service/hq.service.manage.descriptor.js +23 -0
- package/dist/cli/service/hq.service.manage.descriptor.js.map +1 -0
- package/dist/cli/service/hq.service.manage.impl.d.ts +7 -0
- package/dist/cli/service/hq.service.manage.impl.d.ts.map +1 -0
- package/dist/cli/service/hq.service.manage.impl.js +64 -0
- package/dist/cli/service/hq.service.manage.impl.js.map +1 -0
- package/dist/cli/service/hq.service.register.descriptor.d.ts +21 -0
- package/dist/cli/service/hq.service.register.descriptor.d.ts.map +1 -0
- package/dist/cli/service/hq.service.register.descriptor.js +20 -0
- package/dist/cli/service/hq.service.register.descriptor.js.map +1 -0
- package/dist/cli/service/hq.service.register.impl.d.ts +7 -0
- package/dist/cli/service/hq.service.register.impl.d.ts.map +1 -0
- package/dist/cli/service/hq.service.register.impl.js +35 -0
- package/dist/cli/service/hq.service.register.impl.js.map +1 -0
- package/dist/cli/setup/hq.setup.descriptor.d.ts +9 -0
- package/dist/cli/setup/hq.setup.descriptor.d.ts.map +1 -0
- package/dist/cli/setup/hq.setup.descriptor.js +22 -0
- package/dist/cli/setup/hq.setup.descriptor.js.map +1 -0
- package/dist/cli/setup/hq.setup.impl.d.ts +7 -0
- package/dist/cli/setup/hq.setup.impl.d.ts.map +1 -0
- package/dist/cli/setup/hq.setup.impl.js +57 -0
- package/dist/cli/setup/hq.setup.impl.js.map +1 -0
- package/dist/cli/setup/index.d.ts +2 -0
- package/dist/cli/setup/index.d.ts.map +1 -0
- package/dist/cli/setup/index.js +2 -0
- package/dist/cli/setup/index.js.map +1 -0
- package/dist/cli/surface/hq.surface.cli-group.descriptor.d.ts +12 -0
- package/dist/cli/surface/hq.surface.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/surface/hq.surface.cli-group.descriptor.js +12 -0
- package/dist/cli/surface/hq.surface.cli-group.descriptor.js.map +1 -0
- package/dist/cli/surface/hq.surface.list.descriptor.d.ts +20 -0
- package/dist/cli/surface/hq.surface.list.descriptor.d.ts.map +1 -0
- package/dist/cli/surface/hq.surface.list.descriptor.js +20 -0
- package/dist/cli/surface/hq.surface.list.descriptor.js.map +1 -0
- package/dist/cli/surface/hq.surface.list.impl.d.ts +7 -0
- package/dist/cli/surface/hq.surface.list.impl.d.ts.map +1 -0
- package/dist/cli/surface/hq.surface.list.impl.js +35 -0
- package/dist/cli/surface/hq.surface.list.impl.js.map +1 -0
- package/dist/cli/surface/hq.surface.resolve.descriptor.d.ts +22 -0
- package/dist/cli/surface/hq.surface.resolve.descriptor.d.ts.map +1 -0
- package/dist/cli/surface/hq.surface.resolve.descriptor.js +20 -0
- package/dist/cli/surface/hq.surface.resolve.descriptor.js.map +1 -0
- package/dist/cli/surface/hq.surface.resolve.impl.d.ts +7 -0
- package/dist/cli/surface/hq.surface.resolve.impl.d.ts.map +1 -0
- package/dist/cli/surface/hq.surface.resolve.impl.js +29 -0
- package/dist/cli/surface/hq.surface.resolve.impl.js.map +1 -0
- package/dist/client/friction/index.d.ts +58 -0
- package/dist/client/friction/index.d.ts.map +1 -0
- package/dist/client/friction/index.js +146 -0
- package/dist/client/friction/index.js.map +1 -0
- package/dist/client/friction.client.descriptor.d.ts +14 -0
- package/dist/client/friction.client.descriptor.d.ts.map +1 -0
- package/dist/client/friction.client.descriptor.js +14 -0
- package/dist/client/friction.client.descriptor.js.map +1 -0
- package/dist/client/hq.client.descriptor.d.ts +14 -0
- package/dist/client/hq.client.descriptor.d.ts.map +1 -0
- package/dist/client/hq.client.descriptor.js +14 -0
- package/dist/client/hq.client.descriptor.js.map +1 -0
- package/dist/client/index.d.ts +95 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +144 -0
- package/dist/client/index.js.map +1 -0
- package/dist/config/hq-friction.config.descriptor.d.ts +227 -0
- package/dist/config/hq-friction.config.descriptor.d.ts.map +1 -0
- package/dist/config/hq-friction.config.descriptor.js +116 -0
- package/dist/config/hq-friction.config.descriptor.js.map +1 -0
- package/dist/dashboard.d.ts +133 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +371 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/docs/hq.machines.docs.descriptor.d.ts +22 -0
- package/dist/docs/hq.machines.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/hq.machines.docs.descriptor.js +65 -0
- package/dist/docs/hq.machines.docs.descriptor.js.map +1 -0
- package/dist/docs/hq.sessions.docs.descriptor.d.ts +22 -0
- package/dist/docs/hq.sessions.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/hq.sessions.docs.descriptor.js +74 -0
- package/dist/docs/hq.sessions.docs.descriptor.js.map +1 -0
- package/dist/docs/hq.surfaces.docs.descriptor.d.ts +38 -0
- package/dist/docs/hq.surfaces.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/hq.surfaces.docs.descriptor.js +161 -0
- package/dist/docs/hq.surfaces.docs.descriptor.js.map +1 -0
- package/dist/docs/hq.terminal.docs.descriptor.d.ts +22 -0
- package/dist/docs/hq.terminal.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/hq.terminal.docs.descriptor.js +86 -0
- package/dist/docs/hq.terminal.docs.descriptor.js.map +1 -0
- package/dist/friction/clusters.d.ts +23 -0
- package/dist/friction/clusters.d.ts.map +1 -0
- package/dist/friction/clusters.js +56 -0
- package/dist/friction/clusters.js.map +1 -0
- package/dist/friction/fingerprint.d.ts +56 -0
- package/dist/friction/fingerprint.d.ts.map +1 -0
- package/dist/friction/fingerprint.js +113 -0
- package/dist/friction/fingerprint.js.map +1 -0
- package/dist/friction/friction-dispositions.record.descriptor.d.ts +4 -0
- package/dist/friction/friction-dispositions.record.descriptor.d.ts.map +1 -0
- package/dist/friction/friction-dispositions.record.descriptor.js +36 -0
- package/dist/friction/friction-dispositions.record.descriptor.js.map +1 -0
- package/dist/friction/friction-signals.record.descriptor.d.ts +12 -0
- package/dist/friction/friction-signals.record.descriptor.d.ts.map +1 -0
- package/dist/friction/friction-signals.record.descriptor.js +52 -0
- package/dist/friction/friction-signals.record.descriptor.js.map +1 -0
- package/dist/friction/intake.d.ts +79 -0
- package/dist/friction/intake.d.ts.map +1 -0
- package/dist/friction/intake.js +459 -0
- package/dist/friction/intake.js.map +1 -0
- package/dist/friction/jobs/friction-clusters.job.descriptor.d.ts +71 -0
- package/dist/friction/jobs/friction-clusters.job.descriptor.d.ts.map +1 -0
- package/dist/friction/jobs/friction-clusters.job.descriptor.js +34 -0
- package/dist/friction/jobs/friction-clusters.job.descriptor.js.map +1 -0
- package/dist/friction/jobs/friction-clusters.job.impl.d.ts +22 -0
- package/dist/friction/jobs/friction-clusters.job.impl.d.ts.map +1 -0
- package/dist/friction/jobs/friction-clusters.job.impl.js +33 -0
- package/dist/friction/jobs/friction-clusters.job.impl.js.map +1 -0
- package/dist/friction/promote-input.d.ts +37 -0
- package/dist/friction/promote-input.d.ts.map +1 -0
- package/dist/friction/promote-input.js +58 -0
- package/dist/friction/promote-input.js.map +1 -0
- package/dist/friction/promotion-visibility.d.ts +34 -0
- package/dist/friction/promotion-visibility.d.ts.map +1 -0
- package/dist/friction/promotion-visibility.js +57 -0
- package/dist/friction/promotion-visibility.js.map +1 -0
- package/dist/friction/read.d.ts +21 -0
- package/dist/friction/read.d.ts.map +1 -0
- package/dist/friction/read.js +23 -0
- package/dist/friction/read.js.map +1 -0
- package/dist/friction/schemas/disposition.d.ts +42 -0
- package/dist/friction/schemas/disposition.d.ts.map +1 -0
- package/dist/friction/schemas/disposition.js +22 -0
- package/dist/friction/schemas/disposition.js.map +1 -0
- package/dist/friction/schemas/intake.d.ts +167 -0
- package/dist/friction/schemas/intake.d.ts.map +1 -0
- package/dist/friction/schemas/intake.js +69 -0
- package/dist/friction/schemas/intake.js.map +1 -0
- package/dist/friction/schemas/report.d.ts +138 -0
- package/dist/friction/schemas/report.d.ts.map +1 -0
- package/dist/friction/schemas/report.js +63 -0
- package/dist/friction/schemas/report.js.map +1 -0
- package/dist/friction/schemas/signal.d.ts +170 -0
- package/dist/friction/schemas/signal.d.ts.map +1 -0
- package/dist/friction/schemas/signal.js +77 -0
- package/dist/friction/schemas/signal.js.map +1 -0
- package/dist/friction/signal-recorded.event.descriptor.d.ts +53 -0
- package/dist/friction/signal-recorded.event.descriptor.d.ts.map +1 -0
- package/dist/friction/signal-recorded.event.descriptor.js +38 -0
- package/dist/friction/signal-recorded.event.descriptor.js.map +1 -0
- package/dist/friction/store.d.ts +108 -0
- package/dist/friction/store.d.ts.map +1 -0
- package/dist/friction/store.js +461 -0
- package/dist/friction/store.js.map +1 -0
- package/dist/host-guidance/descriptors/accessibility.host-permission-guidance.descriptor.d.ts +8 -0
- package/dist/host-guidance/descriptors/accessibility.host-permission-guidance.descriptor.d.ts.map +1 -0
- package/dist/host-guidance/descriptors/accessibility.host-permission-guidance.descriptor.js +18 -0
- package/dist/host-guidance/descriptors/accessibility.host-permission-guidance.descriptor.js.map +1 -0
- package/dist/host-guidance/descriptors/disk.host-permission-guidance.descriptor.d.ts +8 -0
- package/dist/host-guidance/descriptors/disk.host-permission-guidance.descriptor.d.ts.map +1 -0
- package/dist/host-guidance/descriptors/disk.host-permission-guidance.descriptor.js +18 -0
- package/dist/host-guidance/descriptors/disk.host-permission-guidance.descriptor.js.map +1 -0
- package/dist/host-guidance/descriptors/homebrew.host-health-check.descriptor.d.ts +8 -0
- package/dist/host-guidance/descriptors/homebrew.host-health-check.descriptor.d.ts.map +1 -0
- package/dist/host-guidance/descriptors/homebrew.host-health-check.descriptor.js +14 -0
- package/dist/host-guidance/descriptors/homebrew.host-health-check.descriptor.js.map +1 -0
- package/dist/host-guidance/descriptors/microphone.host-permission-guidance.descriptor.d.ts +8 -0
- package/dist/host-guidance/descriptors/microphone.host-permission-guidance.descriptor.d.ts.map +1 -0
- package/dist/host-guidance/descriptors/microphone.host-permission-guidance.descriptor.js +18 -0
- package/dist/host-guidance/descriptors/microphone.host-permission-guidance.descriptor.js.map +1 -0
- package/dist/host-guidance/kinds/host-health-check.kind.d.ts +17 -0
- package/dist/host-guidance/kinds/host-health-check.kind.d.ts.map +1 -0
- package/dist/host-guidance/kinds/host-health-check.kind.js +22 -0
- package/dist/host-guidance/kinds/host-health-check.kind.js.map +1 -0
- package/dist/host-guidance/kinds/host-permission-guidance.kind.d.ts +17 -0
- package/dist/host-guidance/kinds/host-permission-guidance.kind.d.ts.map +1 -0
- package/dist/host-guidance/kinds/host-permission-guidance.kind.js +22 -0
- package/dist/host-guidance/kinds/host-permission-guidance.kind.js.map +1 -0
- package/dist/host-guidance/registry.d.ts +16 -0
- package/dist/host-guidance/registry.d.ts.map +1 -0
- package/dist/host-guidance/registry.js +24 -0
- package/dist/host-guidance/registry.js.map +1 -0
- package/dist/hq.cloud.plugin.d.ts +3 -0
- package/dist/hq.cloud.plugin.d.ts.map +1 -0
- package/dist/hq.cloud.plugin.js +40 -0
- package/dist/hq.cloud.plugin.js.map +1 -0
- package/dist/hq.consumer.plugin.d.ts +3 -0
- package/dist/hq.consumer.plugin.d.ts.map +1 -0
- package/dist/hq.consumer.plugin.js +15 -0
- package/dist/hq.consumer.plugin.js.map +1 -0
- package/dist/hq.plugin.d.ts +9 -0
- package/dist/hq.plugin.d.ts.map +1 -0
- package/dist/hq.plugin.js +99 -0
- package/dist/hq.plugin.js.map +1 -0
- package/dist/installers/builtin/ai-runtimes/installer.d.ts +21 -0
- package/dist/installers/builtin/ai-runtimes/installer.d.ts.map +1 -0
- package/dist/installers/builtin/ai-runtimes/installer.js +244 -0
- package/dist/installers/builtin/ai-runtimes/installer.js.map +1 -0
- package/dist/installers/builtin/index.d.ts +9 -0
- package/dist/installers/builtin/index.d.ts.map +1 -0
- package/dist/installers/builtin/index.js +15 -0
- package/dist/installers/builtin/index.js.map +1 -0
- package/dist/installers/builtin/language-servers/installer.d.ts +18 -0
- package/dist/installers/builtin/language-servers/installer.d.ts.map +1 -0
- package/dist/installers/builtin/language-servers/installer.js +139 -0
- package/dist/installers/builtin/language-servers/installer.js.map +1 -0
- package/dist/installers/builtin/system-deps/installer.d.ts +8 -0
- package/dist/installers/builtin/system-deps/installer.d.ts.map +1 -0
- package/dist/installers/builtin/system-deps/installer.js +78 -0
- package/dist/installers/builtin/system-deps/installer.js.map +1 -0
- package/dist/installers/compatibility.consumer.plugin.d.ts +3 -0
- package/dist/installers/compatibility.consumer.plugin.d.ts.map +1 -0
- package/dist/installers/compatibility.consumer.plugin.js +26 -0
- package/dist/installers/compatibility.consumer.plugin.js.map +1 -0
- package/dist/installers/core/index.d.ts +3 -0
- package/dist/installers/core/index.d.ts.map +1 -0
- package/dist/installers/core/index.js +3 -0
- package/dist/installers/core/index.js.map +1 -0
- package/dist/installers/core/installer-result.d.ts +10 -0
- package/dist/installers/core/installer-result.d.ts.map +1 -0
- package/dist/installers/core/installer-result.js +14 -0
- package/dist/installers/core/installer-result.js.map +1 -0
- package/dist/installers/core/installer-runtime.d.ts +18 -0
- package/dist/installers/core/installer-runtime.d.ts.map +1 -0
- package/dist/installers/core/installer-runtime.js +5 -0
- package/dist/installers/core/installer-runtime.js.map +1 -0
- package/dist/installers/core/platform.d.ts +6 -0
- package/dist/installers/core/platform.d.ts.map +1 -0
- package/dist/installers/core/platform.js +19 -0
- package/dist/installers/core/platform.js.map +1 -0
- package/dist/installers/core/workspace.d.ts +4 -0
- package/dist/installers/core/workspace.d.ts.map +1 -0
- package/dist/installers/core/workspace.js +11 -0
- package/dist/installers/core/workspace.js.map +1 -0
- package/dist/installers/index.d.ts +6 -0
- package/dist/installers/index.d.ts.map +1 -0
- package/dist/installers/index.js +6 -0
- package/dist/installers/index.js.map +1 -0
- package/dist/installers/schemas/index.d.ts +2 -0
- package/dist/installers/schemas/index.d.ts.map +1 -0
- package/dist/installers/schemas/index.js +2 -0
- package/dist/installers/schemas/index.js.map +1 -0
- package/dist/installers/schemas/platform.d.ts +10 -0
- package/dist/installers/schemas/platform.d.ts.map +1 -0
- package/dist/installers/schemas/platform.js +9 -0
- package/dist/installers/schemas/platform.js.map +1 -0
- package/dist/installers/schemas/types.d.ts +4 -0
- package/dist/installers/schemas/types.d.ts.map +1 -0
- package/dist/installers/schemas/types.js +4 -0
- package/dist/installers/schemas/types.js.map +1 -0
- package/dist/os-wall/channels.wall.d.ts +9 -0
- package/dist/os-wall/channels.wall.d.ts.map +1 -0
- package/dist/os-wall/channels.wall.js +9 -0
- package/dist/os-wall/channels.wall.js.map +1 -0
- package/dist/os-wall/surface-store.wall.d.ts +3 -0
- package/dist/os-wall/surface-store.wall.d.ts.map +1 -0
- package/dist/os-wall/surface-store.wall.js +3 -0
- package/dist/os-wall/surface-store.wall.js.map +1 -0
- package/dist/runtime-path.d.ts +7 -0
- package/dist/runtime-path.d.ts.map +1 -0
- package/dist/runtime-path.js +7 -0
- package/dist/runtime-path.js.map +1 -0
- package/dist/schemas/host-guidance.d.ts +48 -0
- package/dist/schemas/host-guidance.d.ts.map +1 -0
- package/dist/schemas/host-guidance.js +48 -0
- package/dist/schemas/host-guidance.js.map +1 -0
- package/dist/services/backends/index.d.ts +24 -0
- package/dist/services/backends/index.d.ts.map +1 -0
- package/dist/services/backends/index.js +17 -0
- package/dist/services/backends/index.js.map +1 -0
- package/dist/services/builtin/index.d.ts +78 -0
- package/dist/services/builtin/index.d.ts.map +1 -0
- package/dist/services/builtin/index.js +44 -0
- package/dist/services/builtin/index.js.map +1 -0
- package/dist/services/descriptors/vibes-bridge.os-service.descriptor.d.ts +8 -0
- package/dist/services/descriptors/vibes-bridge.os-service.descriptor.d.ts.map +1 -0
- package/dist/services/descriptors/vibes-bridge.os-service.descriptor.js +21 -0
- package/dist/services/descriptors/vibes-bridge.os-service.descriptor.js.map +1 -0
- package/dist/services/descriptors/vibes-mcp.os-service.descriptor.d.ts +8 -0
- package/dist/services/descriptors/vibes-mcp.os-service.descriptor.d.ts.map +1 -0
- package/dist/services/descriptors/vibes-mcp.os-service.descriptor.js +20 -0
- package/dist/services/descriptors/vibes-mcp.os-service.descriptor.js.map +1 -0
- package/dist/services/descriptors/vibes-pm.os-service.descriptor.d.ts +8 -0
- package/dist/services/descriptors/vibes-pm.os-service.descriptor.d.ts.map +1 -0
- package/dist/services/descriptors/vibes-pm.os-service.descriptor.js +20 -0
- package/dist/services/descriptors/vibes-pm.os-service.descriptor.js.map +1 -0
- package/dist/services/index.d.ts +14 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +12 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/kinds/os-service.kind.d.ts +19 -0
- package/dist/services/kinds/os-service.kind.d.ts.map +1 -0
- package/dist/services/kinds/os-service.kind.js +24 -0
- package/dist/services/kinds/os-service.kind.js.map +1 -0
- package/dist/services/registry.d.ts +45 -0
- package/dist/services/registry.d.ts.map +1 -0
- package/dist/services/registry.js +141 -0
- package/dist/services/registry.js.map +1 -0
- package/dist/services/schemas/service.d.ts +79 -0
- package/dist/services/schemas/service.d.ts.map +1 -0
- package/dist/services/schemas/service.js +82 -0
- package/dist/services/schemas/service.js.map +1 -0
- package/dist/svelte/report/ReportProblemDialog.svelte +205 -0
- package/dist/svelte/report/ReportProblemDialog.svelte.d.ts +5 -0
- package/dist/svelte/report/ReportProblemDialog.svelte.d.ts.map +1 -0
- package/dist/svelte/report/capture-context.d.ts +61 -0
- package/dist/svelte/report/capture-context.d.ts.map +1 -0
- package/dist/svelte/report/capture-context.js +100 -0
- package/dist/svelte/report/report.plugin.d.ts +68 -0
- package/dist/svelte/report/report.plugin.d.ts.map +1 -0
- package/dist/svelte/report/report.plugin.js +109 -0
- package/dist/svelte/report/severity.d.ts +32 -0
- package/dist/svelte/report/severity.d.ts.map +1 -0
- package/dist/svelte/report/severity.js +13 -0
- package/dist/tools/applet/applet.schemas.d.ts +6 -0
- package/dist/tools/applet/applet.schemas.d.ts.map +1 -0
- package/dist/tools/applet/applet.schemas.js +6 -0
- package/dist/tools/applet/applet.schemas.js.map +1 -0
- package/dist/utils/exec.d.ts +22 -0
- package/dist/utils/exec.d.ts.map +1 -0
- package/dist/utils/exec.js +38 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/fs.d.ts +10 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +25 -0
- package/dist/utils/fs.js.map +1 -0
- package/package.json +268 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/services/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAON,KAAK,YAAY,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,MAAM,sBAAsB,CAAC;AAI9B,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,mBAAmB,EAAE,CAGrF;AAED,kEAAkE;AAClE,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAEzG;AAyBD;;;GAGG;AACH,wBAAsB,4BAA4B,CACjD,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,GAC7E,OAAO,CAAC,iBAAiB,CAAC,CAuC5B;AAWD,mHAAmH;AACnH,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,eAAe,CACpC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,GAC7E,OAAO,CAAC,0BAA0B,CAAC,CAKrC;AAED,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,GAC7E,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,YAAY,CACjC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,GAC7E,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,WAAW,CAChC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,GAC7E,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CACnC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,GAC7E,OAAO,CAAC,qBAAqB,CAAC,CAIhC;AAED,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,GAC7E,OAAO,CAAC,aAAa,CAAC,CAIxB;AAED,wBAAsB,cAAc,CACnC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,EAC/E,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,mBAAmB,GAC7E,OAAO,CAAC,OAAO,CAAC,CAIlB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OS service lifecycle — thin facade over the platform backend.
|
|
3
|
+
*
|
|
4
|
+
* Catalog identity comes from the runtime (`hq/os-service` descriptors); there
|
|
5
|
+
* is no private Map or static builtin array. Enumerate with:
|
|
6
|
+
* runtime.query('hq/os-service').descriptors()
|
|
7
|
+
* runtime.query('hq/os-service').withId(id)
|
|
8
|
+
*
|
|
9
|
+
* The backend install needs a resolved absolute `command`. A catalog entry that
|
|
10
|
+
* names none runs the host's own Vibes CLI: the self-spawn argv the runtime's
|
|
11
|
+
* host declared (`runtime/host-command`), resolved at use time from the runtime
|
|
12
|
+
* the caller was handed, never at module load and never guessed from an env
|
|
13
|
+
* variable or an install path. A host that declared no re-entry refuses.
|
|
14
|
+
*/
|
|
15
|
+
import * as z from 'zod/v4';
|
|
16
|
+
import { CapabilityError, CaughtFailureSchema, getRuntimeHostCommands, isCapabilityError, settleNow, valueFreeFailure } from '@vibesdotdev/kernel';
|
|
17
|
+
import { getServiceBackend } from "./backends/index.js";
|
|
18
|
+
import { OsServiceDescriptorSchema, ServiceDescriptorSchema } from "./schemas/service.js";
|
|
19
|
+
const KIND = 'hq/os-service';
|
|
20
|
+
/** Enumerate registered `hq/os-service` catalog descriptors from the runtime. */
|
|
21
|
+
export function listOsServiceDescriptors(runtime) {
|
|
22
|
+
if (!runtime.hasKind(KIND))
|
|
23
|
+
return [];
|
|
24
|
+
return runtime.query(KIND).descriptors();
|
|
25
|
+
}
|
|
26
|
+
/** Lookup one catalog descriptor by id (undefined if unknown). */
|
|
27
|
+
export function getOsServiceDescriptor(runtime, id) {
|
|
28
|
+
return listOsServiceDescriptors(runtime).find((d) => d.id === id);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The host's own CLI invocation for a service that names no command: the
|
|
32
|
+
* self-spawn argv `runtime`'s host declared, its first element as the command
|
|
33
|
+
* and the rest ahead of the service's own args. A runtime with no host-command
|
|
34
|
+
* provider refuses `UNAVAILABLE` `host-command-unavailable`; a host that
|
|
35
|
+
* declared no re-entry refuses through its provider. Neither is caught here.
|
|
36
|
+
*/
|
|
37
|
+
async function hostCliInvocation(runtime, args) {
|
|
38
|
+
const [command, ...prefix] = (await getRuntimeHostCommands(runtime)).selfSpawnArgv(KIND);
|
|
39
|
+
return { command, args: [...prefix, ...args] };
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A non-id input is either a concrete install shape (a command already
|
|
43
|
+
* resolved) or a catalog descriptor (materialised through the host CLI).
|
|
44
|
+
* Order matters: a catalog entry that names a command materialises as the
|
|
45
|
+
* install shape, exactly as the command check below always routed it.
|
|
46
|
+
*/
|
|
47
|
+
const ServiceDescriptorInputSchema = z.union([ServiceDescriptorSchema, OsServiceDescriptorSchema]);
|
|
48
|
+
/**
|
|
49
|
+
* Materialise a catalog descriptor (or inline install shape) into a backend
|
|
50
|
+
* `ServiceDescriptor` with an absolute command path.
|
|
51
|
+
*/
|
|
52
|
+
export async function materializeServiceDescriptor(runtime, idOrDescriptor) {
|
|
53
|
+
const asId = z.string().safeParse(idOrDescriptor);
|
|
54
|
+
if (asId.success) {
|
|
55
|
+
const catalog = getOsServiceDescriptor(runtime, asId.data);
|
|
56
|
+
if (!catalog) {
|
|
57
|
+
const available = listOsServiceDescriptors(runtime)
|
|
58
|
+
.map((d) => d.id)
|
|
59
|
+
.join(', ');
|
|
60
|
+
throw new CapabilityError(`Unknown service id: "${asId.data}". Pass a full descriptor or use a builtin id.` +
|
|
61
|
+
(available ? ` Available: ${available}` : ''), 'NOT_FOUND', { reason: 'os-service-unknown', details: { id: asId.data } });
|
|
62
|
+
}
|
|
63
|
+
return materializeCommand(runtime, catalog);
|
|
64
|
+
}
|
|
65
|
+
// Not an id: admit only a service shape. Anything else fails closed with
|
|
66
|
+
// a fixed typed refusal (never the raw schema error). Admission runs inside
|
|
67
|
+
// settlement because parsing reads input getters: a throwing getter escapes
|
|
68
|
+
// safeParse as a raw throw. A getter that refuses typed keeps its identity;
|
|
69
|
+
// any other acquisition failure maps to the same fixed refusal as ordinary
|
|
70
|
+
// invalid input.
|
|
71
|
+
const admitted = settleNow(() => ServiceDescriptorInputSchema.safeParse(idOrDescriptor));
|
|
72
|
+
if (!admitted.ok) {
|
|
73
|
+
if (isCapabilityError(admitted.cause))
|
|
74
|
+
throw admitted.cause;
|
|
75
|
+
throw new CapabilityError('Service input is neither a service id nor a service descriptor shape', 'INVALID_INPUT', {
|
|
76
|
+
reason: 'os-service-descriptor-invalid',
|
|
77
|
+
cause: valueFreeFailure(admitted.cause)
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const asDescriptor = admitted.value;
|
|
81
|
+
if (!asDescriptor.success) {
|
|
82
|
+
throw new CapabilityError('Service input is neither a service id nor a service descriptor shape', 'INVALID_INPUT', {
|
|
83
|
+
reason: 'os-service-descriptor-invalid',
|
|
84
|
+
cause: valueFreeFailure(CaughtFailureSchema.parse(asDescriptor.error))
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return materializeCommand(runtime, asDescriptor.data);
|
|
88
|
+
}
|
|
89
|
+
async function materializeCommand(runtime, descriptor) {
|
|
90
|
+
if (descriptor.command)
|
|
91
|
+
return ServiceDescriptorSchema.parse(descriptor);
|
|
92
|
+
const invocation = await hostCliInvocation(runtime, descriptor.args ?? []);
|
|
93
|
+
return ServiceDescriptorSchema.parse({ ...descriptor, ...invocation });
|
|
94
|
+
}
|
|
95
|
+
export async function registerService(runtime, idOrDescriptor) {
|
|
96
|
+
const descriptor = await materializeServiceDescriptor(runtime, idOrDescriptor);
|
|
97
|
+
const backend = await getServiceBackend(runtime);
|
|
98
|
+
await backend.register(descriptor);
|
|
99
|
+
return { id: descriptor.id, manager: backend.id };
|
|
100
|
+
}
|
|
101
|
+
export async function unregisterService(runtime, idOrDescriptor) {
|
|
102
|
+
const descriptor = await materializeServiceDescriptor(runtime, idOrDescriptor);
|
|
103
|
+
const backend = await getServiceBackend(runtime);
|
|
104
|
+
await backend.unregister(descriptor);
|
|
105
|
+
}
|
|
106
|
+
export async function startService(runtime, idOrDescriptor) {
|
|
107
|
+
const descriptor = await materializeServiceDescriptor(runtime, idOrDescriptor);
|
|
108
|
+
const backend = await getServiceBackend(runtime);
|
|
109
|
+
await backend.start(descriptor);
|
|
110
|
+
}
|
|
111
|
+
export async function stopService(runtime, idOrDescriptor) {
|
|
112
|
+
const descriptor = await materializeServiceDescriptor(runtime, idOrDescriptor);
|
|
113
|
+
const backend = await getServiceBackend(runtime);
|
|
114
|
+
await backend.stop(descriptor);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Restart a registered service in place (`launchctl kickstart -k` on macOS,
|
|
118
|
+
* `systemctl --user restart` on Linux). The receipt carries the pid before and
|
|
119
|
+
* after; `replaced` is false when the OS did not hand out a new main pid.
|
|
120
|
+
*/
|
|
121
|
+
export async function restartService(runtime, idOrDescriptor) {
|
|
122
|
+
const descriptor = await materializeServiceDescriptor(runtime, idOrDescriptor);
|
|
123
|
+
const backend = await getServiceBackend(runtime);
|
|
124
|
+
return backend.restart(descriptor);
|
|
125
|
+
}
|
|
126
|
+
export async function getServiceStatus(runtime, idOrDescriptor) {
|
|
127
|
+
const descriptor = await materializeServiceDescriptor(runtime, idOrDescriptor);
|
|
128
|
+
const backend = await getServiceBackend(runtime);
|
|
129
|
+
return backend.status(descriptor);
|
|
130
|
+
}
|
|
131
|
+
export async function getServiceLogs(runtime, idOrDescriptor, lines) {
|
|
132
|
+
const descriptor = await materializeServiceDescriptor(runtime, idOrDescriptor);
|
|
133
|
+
const backend = await getServiceBackend(runtime);
|
|
134
|
+
return backend.logs(descriptor, lines);
|
|
135
|
+
}
|
|
136
|
+
export async function isServiceRegistered(runtime, idOrDescriptor) {
|
|
137
|
+
const descriptor = await materializeServiceDescriptor(runtime, idOrDescriptor);
|
|
138
|
+
const backend = await getServiceBackend(runtime);
|
|
139
|
+
return backend.isRegistered(descriptor);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/services/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OS Service Schemas
|
|
3
|
+
*
|
|
4
|
+
* A service is an OS-registered daemon that survives reboots.
|
|
5
|
+
* On macOS: LaunchAgent plist in ~/Library/LaunchAgents/
|
|
6
|
+
* On Linux: systemd user unit in ~/.config/systemd/user/
|
|
7
|
+
*
|
|
8
|
+
* Catalog identity lives as `hq/os-service` runtime descriptors — query the
|
|
9
|
+
* runtime, never a private Map/array. The backend install shape
|
|
10
|
+
* (`ServiceDescriptor`) requires a resolved absolute `command` path, which is
|
|
11
|
+
* materialised at install/list time from the host's declared self-spawn argv.
|
|
12
|
+
*/
|
|
13
|
+
import * as z from 'zod/v4';
|
|
14
|
+
export declare const ServiceScopeSchema: z.ZodEnum<{
|
|
15
|
+
user: "user";
|
|
16
|
+
system: "system";
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Runtime catalog descriptor for a builtin OS service.
|
|
20
|
+
* Registered under kind `hq/os-service`. Enumerate via:
|
|
21
|
+
* runtime.query('hq/os-service').descriptors()
|
|
22
|
+
* runtime.query('hq/os-service').withId(id)
|
|
23
|
+
*
|
|
24
|
+
* `command` is optional on the catalog entry — when omitted, materialisation
|
|
25
|
+
* runs the host's own CLI: the self-spawn argv the runtime's host declared
|
|
26
|
+
* (`runtime/host-command`), resolved at use time, never at module load.
|
|
27
|
+
*/
|
|
28
|
+
export declare const OsServiceDescriptorSchema: z.ZodObject<{
|
|
29
|
+
kind: z.ZodLiteral<"hq/os-service">;
|
|
30
|
+
id: z.ZodString;
|
|
31
|
+
name: z.ZodString;
|
|
32
|
+
description: z.ZodOptional<z.ZodString>;
|
|
33
|
+
command: z.ZodOptional<z.ZodString>;
|
|
34
|
+
args: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
35
|
+
env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
36
|
+
workingDirectory: z.ZodOptional<z.ZodString>;
|
|
37
|
+
keepAlive: z.ZodDefault<z.ZodBoolean>;
|
|
38
|
+
autoStart: z.ZodDefault<z.ZodBoolean>;
|
|
39
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
40
|
+
user: "user";
|
|
41
|
+
system: "system";
|
|
42
|
+
}>>;
|
|
43
|
+
label: z.ZodOptional<z.ZodString>;
|
|
44
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
45
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
/**
|
|
49
|
+
* Concrete install shape passed to launchd/systemd backends.
|
|
50
|
+
* `command` is required (absolute path already resolved).
|
|
51
|
+
*/
|
|
52
|
+
export declare const ServiceDescriptorSchema: z.ZodObject<{
|
|
53
|
+
id: z.ZodString;
|
|
54
|
+
name: z.ZodString;
|
|
55
|
+
description: z.ZodDefault<z.ZodString>;
|
|
56
|
+
command: z.ZodString;
|
|
57
|
+
args: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
58
|
+
env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
59
|
+
workingDirectory: z.ZodOptional<z.ZodString>;
|
|
60
|
+
keepAlive: z.ZodDefault<z.ZodBoolean>;
|
|
61
|
+
autoStart: z.ZodDefault<z.ZodBoolean>;
|
|
62
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
63
|
+
user: "user";
|
|
64
|
+
system: "system";
|
|
65
|
+
}>>;
|
|
66
|
+
label: z.ZodOptional<z.ZodString>;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
export declare const ServiceStatusSchema: z.ZodObject<{
|
|
69
|
+
id: z.ZodString;
|
|
70
|
+
registered: z.ZodBoolean;
|
|
71
|
+
running: z.ZodBoolean;
|
|
72
|
+
pid: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
error: z.ZodOptional<z.ZodString>;
|
|
74
|
+
}, z.core.$strip>;
|
|
75
|
+
export type ServiceScope = z.infer<typeof ServiceScopeSchema>;
|
|
76
|
+
export type OsServiceDescriptor = z.infer<typeof OsServiceDescriptorSchema>;
|
|
77
|
+
export type ServiceDescriptor = z.infer<typeof ServiceDescriptorSchema>;
|
|
78
|
+
export type ServiceStatus = z.infer<typeof ServiceStatusSchema>;
|
|
79
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/schemas/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,kBAAkB;;;EAK7B,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;iBAkBpC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;iBAqBlC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OS Service Schemas
|
|
3
|
+
*
|
|
4
|
+
* A service is an OS-registered daemon that survives reboots.
|
|
5
|
+
* On macOS: LaunchAgent plist in ~/Library/LaunchAgents/
|
|
6
|
+
* On Linux: systemd user unit in ~/.config/systemd/user/
|
|
7
|
+
*
|
|
8
|
+
* Catalog identity lives as `hq/os-service` runtime descriptors — query the
|
|
9
|
+
* runtime, never a private Map/array. The backend install shape
|
|
10
|
+
* (`ServiceDescriptor`) requires a resolved absolute `command` path, which is
|
|
11
|
+
* materialised at install/list time from the host's declared self-spawn argv.
|
|
12
|
+
*/
|
|
13
|
+
import * as z from 'zod/v4';
|
|
14
|
+
export const ServiceScopeSchema = z.enum([
|
|
15
|
+
/** Runs as current user (LaunchAgent / systemd --user) */
|
|
16
|
+
'user',
|
|
17
|
+
/** Runs as root/system (LaunchDaemon / systemd system) — requires elevated permissions */
|
|
18
|
+
'system'
|
|
19
|
+
]);
|
|
20
|
+
/**
|
|
21
|
+
* Runtime catalog descriptor for a builtin OS service.
|
|
22
|
+
* Registered under kind `hq/os-service`. Enumerate via:
|
|
23
|
+
* runtime.query('hq/os-service').descriptors()
|
|
24
|
+
* runtime.query('hq/os-service').withId(id)
|
|
25
|
+
*
|
|
26
|
+
* `command` is optional on the catalog entry — when omitted, materialisation
|
|
27
|
+
* runs the host's own CLI: the self-spawn argv the runtime's host declared
|
|
28
|
+
* (`runtime/host-command`), resolved at use time, never at module load.
|
|
29
|
+
*/
|
|
30
|
+
export const OsServiceDescriptorSchema = z.object({
|
|
31
|
+
kind: z.literal('hq/os-service'),
|
|
32
|
+
id: z.string().min(1),
|
|
33
|
+
name: z.string().min(1),
|
|
34
|
+
description: z.string().optional(),
|
|
35
|
+
/** Absolute executable path; omit to resolve at materialisation time */
|
|
36
|
+
command: z.string().min(1).optional(),
|
|
37
|
+
args: z.array(z.string()).default([]),
|
|
38
|
+
env: z.record(z.string(), z.string()).default({}),
|
|
39
|
+
workingDirectory: z.string().optional(),
|
|
40
|
+
keepAlive: z.boolean().default(true),
|
|
41
|
+
autoStart: z.boolean().default(true),
|
|
42
|
+
scope: ServiceScopeSchema.default('user'),
|
|
43
|
+
/** Platform-specific reverse-DNS label, e.g. 'com.vibes.pm' */
|
|
44
|
+
label: z.string().optional(),
|
|
45
|
+
tags: z.array(z.string()).default([]),
|
|
46
|
+
enabled: z.boolean().default(true),
|
|
47
|
+
hardware: z.array(z.string()).optional()
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Concrete install shape passed to launchd/systemd backends.
|
|
51
|
+
* `command` is required (absolute path already resolved).
|
|
52
|
+
*/
|
|
53
|
+
export const ServiceDescriptorSchema = z.object({
|
|
54
|
+
/** Unique service ID, e.g. 'vibes-pm', 'vibes-mcp' */
|
|
55
|
+
id: z.string().min(1),
|
|
56
|
+
/** Human label */
|
|
57
|
+
name: z.string().min(1),
|
|
58
|
+
description: z.string().default(''),
|
|
59
|
+
/** Executable path (absolute) */
|
|
60
|
+
command: z.string().min(1),
|
|
61
|
+
/** Arguments passed to command */
|
|
62
|
+
args: z.array(z.string()).default([]),
|
|
63
|
+
/** Environment variables to inject */
|
|
64
|
+
env: z.record(z.string(), z.string()).default({}),
|
|
65
|
+
/** Working directory */
|
|
66
|
+
workingDirectory: z.string().optional(),
|
|
67
|
+
/** Automatically restart if it crashes */
|
|
68
|
+
keepAlive: z.boolean().default(true),
|
|
69
|
+
/** Start immediately when registered (launchctl load -w / systemctl --user enable) */
|
|
70
|
+
autoStart: z.boolean().default(true),
|
|
71
|
+
scope: ServiceScopeSchema.default('user'),
|
|
72
|
+
/** Platform-specific reverse-DNS label, e.g. 'com.vibes.pm' */
|
|
73
|
+
label: z.string().optional()
|
|
74
|
+
});
|
|
75
|
+
export const ServiceStatusSchema = z.object({
|
|
76
|
+
id: z.string(),
|
|
77
|
+
registered: z.boolean(),
|
|
78
|
+
running: z.boolean(),
|
|
79
|
+
pid: z.number().optional(),
|
|
80
|
+
error: z.string().optional()
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/schemas/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
// "Report a problem": the `hq.report-problem` app-shell utility. Kit renders
|
|
3
|
+
// the trigger and hands this dialog its open state; the dialog captures the
|
|
4
|
+
// page through the handed runtime, previews the exact body, and submits it
|
|
5
|
+
// through the friction client's `report()`.
|
|
6
|
+
import * as Dialog from '@vibesdotdev/kit/components/ui/dialog';
|
|
7
|
+
import * as RadioGroup from '@vibesdotdev/kit/components/ui/radio-group';
|
|
8
|
+
import { Button } from '@vibesdotdev/kit/components/ui/button';
|
|
9
|
+
import { Textarea } from '@vibesdotdev/kit/components/ui/textarea';
|
|
10
|
+
import { Label } from '@vibesdotdev/kit/components/ui/label';
|
|
11
|
+
import { Icon } from '@vibesdotdev/kit/components/icon';
|
|
12
|
+
import type { AppShellUtilityProps } from '@vibesdotdev/kit/app-shell/utility';
|
|
13
|
+
import { peekRuntimeSvelteContext } from '@vibesdotdev/surface-sveltekit/svelte';
|
|
14
|
+
import { getVibesClient } from '@vibesdotdev/kernel/client';
|
|
15
|
+
import { settleNow, type VibesRuntime } from '@vibesdotdev/kernel';
|
|
16
|
+
import type { FrictionClient } from '../../client/friction/index.js';
|
|
17
|
+
import type { FrictionReportCapture } from '../../friction/schemas/report.js';
|
|
18
|
+
import type { FrictionReportResponse } from '../../friction/schemas/intake.js';
|
|
19
|
+
import type { FrictionSeverity } from '../../friction/schemas/signal.js';
|
|
20
|
+
import { buildFrictionReportBody, captureReportContext, type FrictionReportBody } from './capture-context.js';
|
|
21
|
+
import { DEFAULT_REPORT_SEVERITY, REPORT_SEVERITY_OPTIONS } from './severity.js';
|
|
22
|
+
|
|
23
|
+
let {
|
|
24
|
+
open,
|
|
25
|
+
onOpenChange,
|
|
26
|
+
utility,
|
|
27
|
+
signedIn,
|
|
28
|
+
error,
|
|
29
|
+
route
|
|
30
|
+
}: AppShellUtilityProps = $props();
|
|
31
|
+
|
|
32
|
+
const runtimeStore = peekRuntimeSvelteContext();
|
|
33
|
+
|
|
34
|
+
let severity = $state<FrictionSeverity>(DEFAULT_REPORT_SEVERITY);
|
|
35
|
+
let description = $state('');
|
|
36
|
+
let expected = $state('');
|
|
37
|
+
let capture = $state<FrictionReportCapture | null>(null);
|
|
38
|
+
let captureFailure = $state<string | null>(null);
|
|
39
|
+
let occurrenceId = $state('');
|
|
40
|
+
let phase = $state<'editing' | 'sending' | 'sent' | 'failed'>('editing');
|
|
41
|
+
let failure = $state<string | null>(null);
|
|
42
|
+
let receipt = $state<FrictionReportResponse | null>(null);
|
|
43
|
+
|
|
44
|
+
// One body for the preview and the submit: what is shown is what is sent.
|
|
45
|
+
const body = $derived(capture ? buildFrictionReportBody({ severity, description, expected }, capture, occurrenceId) : null);
|
|
46
|
+
const preview = $derived(body?.success ? JSON.stringify(body.data, null, 2) : '');
|
|
47
|
+
const canSend = $derived(phase !== 'sending' && body?.success === true);
|
|
48
|
+
|
|
49
|
+
const NO_RUNTIME = 'Reporting is unavailable: no Vibes runtime is ready on this page.';
|
|
50
|
+
|
|
51
|
+
function reset(): void {
|
|
52
|
+
severity = DEFAULT_REPORT_SEVERITY;
|
|
53
|
+
description = '';
|
|
54
|
+
expected = '';
|
|
55
|
+
capture = null;
|
|
56
|
+
captureFailure = null;
|
|
57
|
+
phase = 'editing';
|
|
58
|
+
failure = null;
|
|
59
|
+
receipt = null;
|
|
60
|
+
// Fixed when the dialog opens, so a retried submit stays one occurrence and the preview matches.
|
|
61
|
+
occurrenceId = crypto.randomUUID();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async function recapture(runtime: VibesRuntime): Promise<void> {
|
|
65
|
+
try {
|
|
66
|
+
capture = await captureReportContext(runtime, { error, route });
|
|
67
|
+
} catch (cause) {
|
|
68
|
+
settleNow(() => runtime.diagnostics.error('Report a problem could not capture the page.', { scope: 'hq', plugin: 'hq.svelte.report', error: cause }));
|
|
69
|
+
captureFailure = cause instanceof Error ? cause.message : 'This page could not be captured.';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
let wasOpen = false;
|
|
74
|
+
$effect(() => {
|
|
75
|
+
if (open && !wasOpen) {
|
|
76
|
+
reset();
|
|
77
|
+
// Kit mounts utilities only inside a ready runtime; a missing one is confirmed absence.
|
|
78
|
+
const runtime = runtimeStore?.runtime;
|
|
79
|
+
if (runtime) void recapture(runtime);
|
|
80
|
+
else captureFailure = NO_RUNTIME;
|
|
81
|
+
}
|
|
82
|
+
wasOpen = open;
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
async function send(): Promise<void> {
|
|
86
|
+
if (!body?.success) return;
|
|
87
|
+
const runtime = runtimeStore?.runtime;
|
|
88
|
+
if (!runtime) {
|
|
89
|
+
failure = NO_RUNTIME;
|
|
90
|
+
phase = 'failed';
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
phase = 'sending';
|
|
94
|
+
failure = null;
|
|
95
|
+
await submit(runtime, body.data);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
async function submit(runtime: VibesRuntime, report: FrictionReportBody): Promise<void> {
|
|
99
|
+
try {
|
|
100
|
+
const reporter = await getVibesClient<FrictionClient>('friction', runtime);
|
|
101
|
+
receipt = await reporter.report(report);
|
|
102
|
+
phase = 'sent';
|
|
103
|
+
} catch (cause) {
|
|
104
|
+
settleNow(() => runtime.diagnostics.error('Report a problem could not send the report.', { scope: 'hq', plugin: 'hq.svelte.report', error: cause }));
|
|
105
|
+
failure = cause instanceof Error ? cause.message : 'The report could not be sent.';
|
|
106
|
+
phase = 'failed';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
</script>
|
|
110
|
+
|
|
111
|
+
<Dialog.Root {open} {onOpenChange}>
|
|
112
|
+
<Dialog.Content class="flex max-h-[90dvh] flex-col sm:max-w-xl" data-testid="report-problem-dialog">
|
|
113
|
+
<Dialog.Header>
|
|
114
|
+
<Dialog.Title>{utility.name}</Dialog.Title>
|
|
115
|
+
<Dialog.Description>
|
|
116
|
+
Tell us what went wrong. The details below are sent with your report so we can find it.
|
|
117
|
+
</Dialog.Description>
|
|
118
|
+
</Dialog.Header>
|
|
119
|
+
|
|
120
|
+
{#if phase === 'sent' && receipt}
|
|
121
|
+
<div class="flex items-start gap-3 rounded-md border border-border bg-muted/40 p-4" role="status" data-testid="report-sent">
|
|
122
|
+
<Icon icon="lucide:circle-check" class="mt-0.5 size-5 text-primary" />
|
|
123
|
+
<div class="space-y-1 text-sm">
|
|
124
|
+
<p class="font-medium text-foreground">Thanks, your report was sent.</p>
|
|
125
|
+
<p class="text-muted-foreground">Reference <code class="font-mono">{receipt.id}</code></p>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
<Dialog.Footer>
|
|
129
|
+
<Button onclick={() => onOpenChange(false)}>Done</Button>
|
|
130
|
+
</Dialog.Footer>
|
|
131
|
+
{:else}
|
|
132
|
+
<!-- Header and footer stay put; only the body scrolls when the viewport is short. -->
|
|
133
|
+
<form
|
|
134
|
+
class="flex min-h-0 min-w-0 flex-1 flex-col gap-4"
|
|
135
|
+
onsubmit={(event) => { event.preventDefault(); void send(); }}
|
|
136
|
+
>
|
|
137
|
+
<div class="-mx-1 min-h-0 flex-1 space-y-5 overflow-y-auto px-1 pb-1" data-testid="report-body">
|
|
138
|
+
<fieldset class="space-y-2">
|
|
139
|
+
<legend class="text-sm font-medium text-foreground">How much is this affecting you?</legend>
|
|
140
|
+
<RadioGroup.Root value={severity} onValueChange={(value) => { severity = value as FrictionSeverity; }} class="gap-2">
|
|
141
|
+
{#each REPORT_SEVERITY_OPTIONS as option (option.severity)}
|
|
142
|
+
<label
|
|
143
|
+
class="flex cursor-pointer items-start gap-3 rounded-md border border-border p-3 transition-colors hover:bg-muted/50 has-[[data-state=checked]]:border-primary has-[[data-state=checked]]:bg-primary/5"
|
|
144
|
+
data-severity={option.severity}
|
|
145
|
+
>
|
|
146
|
+
<RadioGroup.Item value={option.severity} id={`report-severity-${option.severity}`} class="mt-0.5" />
|
|
147
|
+
<span class="space-y-0.5">
|
|
148
|
+
<span class="block text-sm font-medium text-foreground">{option.label}</span>
|
|
149
|
+
<span class="block text-xs text-muted-foreground">{option.hint}</span>
|
|
150
|
+
</span>
|
|
151
|
+
</label>
|
|
152
|
+
{/each}
|
|
153
|
+
</RadioGroup.Root>
|
|
154
|
+
</fieldset>
|
|
155
|
+
|
|
156
|
+
<div class="space-y-2">
|
|
157
|
+
<Label for="report-description">What happened?</Label>
|
|
158
|
+
<Textarea
|
|
159
|
+
id="report-description"
|
|
160
|
+
bind:value={description}
|
|
161
|
+
rows={4}
|
|
162
|
+
placeholder="Describe what you were doing and what went wrong."
|
|
163
|
+
required
|
|
164
|
+
/>
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<div class="space-y-2">
|
|
168
|
+
<Label for="report-expected">What did you expect? <span class="text-muted-foreground">(optional)</span></Label>
|
|
169
|
+
<Textarea id="report-expected" bind:value={expected} rows={2} />
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
{#if !signedIn}
|
|
173
|
+
<p class="text-xs text-muted-foreground" data-testid="report-anonymous">
|
|
174
|
+
You're not signed in, so this report is anonymous.
|
|
175
|
+
</p>
|
|
176
|
+
{/if}
|
|
177
|
+
|
|
178
|
+
<details class="min-w-0 rounded-md border border-border bg-muted/30" open>
|
|
179
|
+
<summary class="cursor-pointer px-3 py-2 text-sm font-medium text-foreground">Exactly what will be sent</summary>
|
|
180
|
+
{#if captureFailure}
|
|
181
|
+
<p class="px-3 pb-3 text-sm text-destructive" role="alert">{captureFailure}</p>
|
|
182
|
+
{:else if !capture}
|
|
183
|
+
<p class="px-3 pb-3 text-sm text-muted-foreground">Capturing this page…</p>
|
|
184
|
+
{:else if body && !body.success}
|
|
185
|
+
<p class="px-3 pb-3 text-sm text-muted-foreground">Describe the problem in at least 5 characters to see the report.</p>
|
|
186
|
+
{:else}
|
|
187
|
+
<pre class="max-h-56 overflow-auto px-3 pb-3 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap text-muted-foreground" data-testid="report-preview">{preview}</pre>
|
|
188
|
+
{/if}
|
|
189
|
+
</details>
|
|
190
|
+
|
|
191
|
+
{#if failure}
|
|
192
|
+
<p class="text-sm text-destructive" role="alert" data-testid="report-failure">{failure}</p>
|
|
193
|
+
{/if}
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<Dialog.Footer class="shrink-0">
|
|
197
|
+
<Button type="button" variant="outline" onclick={() => onOpenChange(false)}>Cancel</Button>
|
|
198
|
+
<Button type="submit" disabled={!canSend}>
|
|
199
|
+
{phase === 'sending' ? 'Sending…' : phase === 'failed' ? 'Try again' : 'Send report'}
|
|
200
|
+
</Button>
|
|
201
|
+
</Dialog.Footer>
|
|
202
|
+
</form>
|
|
203
|
+
{/if}
|
|
204
|
+
</Dialog.Content>
|
|
205
|
+
</Dialog.Root>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AppShellUtilityProps } from '@vibesdotdev/kit/app-shell/utility';
|
|
2
|
+
declare const ReportProblemDialog: import("svelte").Component<AppShellUtilityProps, {}, "">;
|
|
3
|
+
type ReportProblemDialog = ReturnType<typeof ReportProblemDialog>;
|
|
4
|
+
export default ReportProblemDialog;
|
|
5
|
+
//# sourceMappingURL=ReportProblemDialog.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportProblemDialog.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/report/ReportProblemDialog.svelte.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AA+M/E,QAAA,MAAM,mBAAmB,0DAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Report capture: the page facts a "Report a problem" submit carries, read
|
|
3
|
+
* through the handed runtime only. Page facts come from the runtime browser
|
|
4
|
+
* host (`runtime/browser-host` `readPage`), the version from the host fact
|
|
5
|
+
* `hostVersion`, and recent errors from logging's ring-buffer reader. Nothing
|
|
6
|
+
* here reads `window`, `document` or `navigator`.
|
|
7
|
+
*
|
|
8
|
+
* `buildFrictionReportBody` produces the one parsed body the dialog previews
|
|
9
|
+
* and submits, so the preview is exactly what is sent.
|
|
10
|
+
*/
|
|
11
|
+
import { type RuntimeRef } from '@vibesdotdev/kernel';
|
|
12
|
+
import { type FrictionReportCapture } from '../../friction/schemas/report.ts';
|
|
13
|
+
import { FrictionReportInputSchema } from '../../friction/schemas/intake.ts';
|
|
14
|
+
import type { FrictionSeverity } from '../../friction/schemas/signal.ts';
|
|
15
|
+
import type * as z from 'zod/v4';
|
|
16
|
+
/** The handed runtime surface capture reads: its browser host and host version. */
|
|
17
|
+
export type ReportCaptureRuntime = Pick<RuntimeRef, 'hasKind' | 'query' | 'localEnvironment'>;
|
|
18
|
+
/** The error a Kit error surface hands the utility. */
|
|
19
|
+
export interface ReportSurfaceError {
|
|
20
|
+
status: number;
|
|
21
|
+
message?: string;
|
|
22
|
+
}
|
|
23
|
+
/** The page URL without its query or fragment, which may carry tokens or personal data. */
|
|
24
|
+
export declare function stripQueryAndFragment(url: string): string;
|
|
25
|
+
/** Errors older than this are not this page's problem; the ring buffer keeps days of them. */
|
|
26
|
+
export declare const REPORT_ERROR_WINDOW_MS: number;
|
|
27
|
+
/**
|
|
28
|
+
* A route template for a path when the host hands none: every id-like segment
|
|
29
|
+
* (numbers, UUIDs, long hex or opaque tokens) and anything carrying `@` or `%`
|
|
30
|
+
* becomes `[id]`, so reports on different entities group together and the
|
|
31
|
+
* route never carries an identifier the redactor does not see.
|
|
32
|
+
*/
|
|
33
|
+
export declare function routeTemplateFromPath(pathname: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Capture the current page. A host with no page facts refuses
|
|
36
|
+
* `UNAVAILABLE browser-page-unavailable`; a host with no browser host refuses
|
|
37
|
+
* `UNAVAILABLE browser-host-unavailable`. On an error surface, the surface's
|
|
38
|
+
* own error is included even when no boundary recorded it, so a signed-out
|
|
39
|
+
* visitor's report always carries its error condition.
|
|
40
|
+
*/
|
|
41
|
+
export declare function captureReportContext(runtime: ReportCaptureRuntime, options?: {
|
|
42
|
+
/** The route template the host hands (SvelteKit `page.route.id`); derived from the path when absent. */
|
|
43
|
+
route?: string;
|
|
44
|
+
error?: ReportSurfaceError;
|
|
45
|
+
now?: () => Date;
|
|
46
|
+
}): Promise<FrictionReportCapture>;
|
|
47
|
+
/** What the reporter typed in the dialog. */
|
|
48
|
+
export interface ReportForm {
|
|
49
|
+
severity: FrictionSeverity;
|
|
50
|
+
description: string;
|
|
51
|
+
expected?: string;
|
|
52
|
+
}
|
|
53
|
+
/** The report body, parsed exactly as `FrictionClient.report()` sends it. */
|
|
54
|
+
export type FrictionReportBody = z.output<typeof FrictionReportInputSchema>;
|
|
55
|
+
/**
|
|
56
|
+
* The one body the dialog previews and submits. It is parsed through the
|
|
57
|
+
* intake's own schema, so defaults and trimming are already applied, and a
|
|
58
|
+
* body the intake would refuse is refused here, before anything is sent.
|
|
59
|
+
*/
|
|
60
|
+
export declare function buildFrictionReportBody(form: ReportForm, capture: FrictionReportCapture, occurrenceId: string): z.ZodSafeParseResult<FrictionReportBody>;
|
|
61
|
+
//# sourceMappingURL=capture-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-context.d.ts","sourceRoot":"","sources":["../../../src/svelte/report/capture-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAA0C,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE9F,OAAO,EAGN,KAAK,qBAAqB,EAE1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,KAAK,CAAC,MAAM,QAAQ,CAAC;AAEjC,mFAAmF;AACnF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,kBAAkB,CAAC,CAAC;AAE9F,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED,8FAA8F;AAC9F,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAIrD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9D;AAOD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE;IACR,wGAAwG;IACxG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CACZ,GACJ,OAAO,CAAC,qBAAqB,CAAC,CAkChC;AAED,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CASxJ"}
|