Download the PHP package empire2/gaze-ticketsystem without Composer

On this page you can find all versions of the php package empire2/gaze-ticketsystem. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package gaze-ticketsystem

Gaze Ticketsystem

Standalone Laravel ticket-system. Livewire-driven kanban + list board, AI-assisted ticket analysis, follow-up reminders, notifications, and a soft optional integration with empire2/gaze-ghostwriter for turning support drafts into tickets.

CI Latest Version

The package ships:

Requirements

Install

Composer will pull empiretwo/gaze-laravel automatically; the gaze CLI binary is downloaded into vendor/bin/gaze by its bundled installer plugin (Composer asks you to trust the plugin once).

Optional:

Seed the default ticket statuses and types from your DatabaseSeeder:

Configuration

config/gaze-ticketsystem.php exposes every host integration point. The most relevant keys:

Key Purpose
enabled Master switch; disables routes + Livewire registration when false.
user_model Authenticatable model used for assignees, creators and comment authors.
customer_model Optional. When set, the create form shows a customer search box and Ticket::customer() returns a real relation; when null, customer search is hidden.
admin_resolver Optional callable(): Collection<Authenticatable> used to populate "assign to" dropdowns and follow-up notification recipients.
layout Blade layout used by the package's Livewire components (default components.layouts.app).
middleware Middleware stack for the package routes (default ['web', 'auth']).
route_prefix URL prefix (default tickets).
schedule_follow_ups When true the service provider registers CheckTicketFollowUpsCommand to run hourly in production.
source_resolvers Map of source_type => TicketSourceResolver class-string. See "Optional Ghostwriter integration" below.
ai.* AI feature flags + analysis model.
notifications.follow_up_due_after_hours Threshold used by host applications to trigger follow-up notifications.
media.disk Disk used for ticket / comment attachments.

Host User model integration

The package never imports your User model. Instead, three things must line up:

  1. The model class is configured via gaze-ticketsystem.user_model.
  2. The model is Authenticatable (any standard Laravel User works).
  3. The "admins" lookup either:
    • is provided as a closure in gaze-ticketsystem.admin_resolver, or
    • exposes an admins() query scope on the user model.

The package ships an IsTicketAdmin trait you can drop onto your user model as a starting point:

Or wire it via config without touching the model:

The contract is: the resolver returns an Illuminate\Support\Collection<Authenticatable>.

Optional Ghostwriter integration

When empire2/gaze-ghostwriter is installed alongside this package, support drafts can be turned into tickets via the bundled GhostwriterSourceResolver (already mapped under 'support_draft' in the default config).

The GhostwriterSourceResolver feature-detects ghostwriter at runtime — it is safe to ship in stand-alone setups and silently no-ops when the upstream classes are missing.

To wire your own source type, implement the contract:

Then map it in config/gaze-ticketsystem.php:

Visiting /tickets/create?prefill=1&source_type=crm_inquiry&source_id=42 will then prefill the ticket form from your CRM record, and Ticket::sourceUrl() will link back to it.

Quick start

Then visit /tickets for the kanban board, /tickets/{ticket} for the split view, and /tickets/settings to manage statuses + types.

Privacy boundaries

This package routes every text prompt and structured LLM response through the empiretwo/gaze-laravel boundary. With gaze_enabled=true (config key gaze-ticketsystem.ai.gaze_enabled, env GAZE_TICKETSYSTEM_GAZE_ENABLED), prompts are passed through gaze clean before they reach the model, and the restore step puts placeholder tokens back into the model output before persistence. With gaze_enabled=false (default), the GuardedAgentRunner short-circuits with GazeDisabledException — there is no bypass branch, all three AI entry points (analyzeRaw, analyze, replyToComment) fail closed.

Image attachments are NOT redacted. Gaze is a text-only boundary. Ticket screenshots and other image attachments are sent to the configured AI provider as-is. Each AI call with non-empty attachments emits a Log::warning('gaze-ticketsystem AI call with un-redactable image attachments', ['ticket_id' => ..., 'count' => N]) so operators can audit out-of-band PII exposure. Treat image upload as out-of-band PII exposure and disable image attachments if your compliance posture forbids it.

Embeddings: this package does not generate embeddings — it only sends text prompts (with optional images) to a structured-output agent. If you add embedding paths in a downstream extension, route the input text through Gaze::clean() only (no restore) and skip the call when gaze_enabled=false (fail-closed).

Console commands

When gaze-ticketsystem.schedule_follow_ups is true (default), the service provider registers the command to run hourly in production. Disable it and wire it up yourself in routes/console.php if you need different scheduling.

Testing

The package ships its own Pest test suite. Tests that exercise the full Livewire UI assume a host User model is configured — see tests/TestCase.php for the orchestration. The GhostwriterIntegrationTest is skipped automatically when empire2/gaze-ghostwriter is not installed.

Changelog

See CHANGELOG.md.

License

MIT — see LICENSE.


All versions of gaze-ticketsystem with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
ext-json Version *
illuminate/console Version ^12.0
illuminate/contracts Version ^12.0
illuminate/database Version ^12.0
illuminate/notifications Version ^12.0
illuminate/queue Version ^12.0
illuminate/support Version ^12.0
laravel/ai Version ^0.4.3
livewire/livewire Version ^4.0
empiretwo/gaze-laravel Version ^0.6
spatie/laravel-activitylog Version ^4.8
spatie/laravel-medialibrary Version ^11.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package empire2/gaze-ticketsystem contains the following files

Loading the files please wait ...