litlaunch 1.0.0__tar.gz

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.
Files changed (137) hide show
  1. litlaunch-1.0.0/.gitattributes +6 -0
  2. litlaunch-1.0.0/.github/workflows/ci.yml +73 -0
  3. litlaunch-1.0.0/.gitignore +54 -0
  4. litlaunch-1.0.0/CHANGELOG.md +177 -0
  5. litlaunch-1.0.0/LICENSE +24 -0
  6. litlaunch-1.0.0/PKG-INFO +594 -0
  7. litlaunch-1.0.0/README.md +558 -0
  8. litlaunch-1.0.0/docs/architecture.md +221 -0
  9. litlaunch-1.0.0/docs/assets/screenshots/diagnostics-page-artifacts-events.png +0 -0
  10. litlaunch-1.0.0/docs/assets/screenshots/diagnostics-page-overview.png +0 -0
  11. litlaunch-1.0.0/docs/assets/screenshots/diagnostics-page-posture-snapshot.png +0 -0
  12. litlaunch-1.0.0/docs/browser_support.md +83 -0
  13. litlaunch-1.0.0/docs/cli.md +459 -0
  14. litlaunch-1.0.0/docs/diagnostics_page.md +175 -0
  15. litlaunch-1.0.0/docs/inspect.md +118 -0
  16. litlaunch-1.0.0/docs/installation.md +54 -0
  17. litlaunch-1.0.0/docs/integration/packaging_notes.md +98 -0
  18. litlaunch-1.0.0/docs/integration/rolethread.md +104 -0
  19. litlaunch-1.0.0/docs/integration.md +23 -0
  20. litlaunch-1.0.0/docs/overview.md +69 -0
  21. litlaunch-1.0.0/docs/philosophy.md +60 -0
  22. litlaunch-1.0.0/docs/quickstart.md +357 -0
  23. litlaunch-1.0.0/docs/runtime_events.md +99 -0
  24. litlaunch-1.0.0/docs/security.md +169 -0
  25. litlaunch-1.0.0/docs/troubleshooting.md +143 -0
  26. litlaunch-1.0.0/docs/window_monitoring.md +186 -0
  27. litlaunch-1.0.0/examples/minimal_app/README.md +41 -0
  28. litlaunch-1.0.0/examples/minimal_app/app.py +57 -0
  29. litlaunch-1.0.0/pyproject.toml +94 -0
  30. litlaunch-1.0.0/scripts/check_release.py +601 -0
  31. litlaunch-1.0.0/src/litlaunch/__init__.py +192 -0
  32. litlaunch-1.0.0/src/litlaunch/__main__.py +8 -0
  33. litlaunch-1.0.0/src/litlaunch/_protocols.py +35 -0
  34. litlaunch-1.0.0/src/litlaunch/artifacts.py +79 -0
  35. litlaunch-1.0.0/src/litlaunch/backend.py +85 -0
  36. litlaunch-1.0.0/src/litlaunch/backend_start.py +393 -0
  37. litlaunch-1.0.0/src/litlaunch/browsers/__init__.py +32 -0
  38. litlaunch-1.0.0/src/litlaunch/browsers/base.py +126 -0
  39. litlaunch-1.0.0/src/litlaunch/browsers/chrome.py +97 -0
  40. litlaunch-1.0.0/src/litlaunch/browsers/default.py +93 -0
  41. litlaunch-1.0.0/src/litlaunch/browsers/edge.py +89 -0
  42. litlaunch-1.0.0/src/litlaunch/browsers/launch.py +292 -0
  43. litlaunch-1.0.0/src/litlaunch/browsers/registry.py +153 -0
  44. litlaunch-1.0.0/src/litlaunch/cli/__init__.py +5 -0
  45. litlaunch-1.0.0/src/litlaunch/cli/__main__.py +6 -0
  46. litlaunch-1.0.0/src/litlaunch/cli/commands.py +498 -0
  47. litlaunch-1.0.0/src/litlaunch/cli/common.py +105 -0
  48. litlaunch-1.0.0/src/litlaunch/cli/config.py +430 -0
  49. litlaunch-1.0.0/src/litlaunch/cli/create.py +179 -0
  50. litlaunch-1.0.0/src/litlaunch/cli/help.py +384 -0
  51. litlaunch-1.0.0/src/litlaunch/cli/inspect.py +382 -0
  52. litlaunch-1.0.0/src/litlaunch/cli/main.py +377 -0
  53. litlaunch-1.0.0/src/litlaunch/cli/preview.py +324 -0
  54. litlaunch-1.0.0/src/litlaunch/colors.py +101 -0
  55. litlaunch-1.0.0/src/litlaunch/config.py +309 -0
  56. litlaunch-1.0.0/src/litlaunch/console.py +599 -0
  57. litlaunch-1.0.0/src/litlaunch/console_style.py +76 -0
  58. litlaunch-1.0.0/src/litlaunch/diagnostics_page.py +1926 -0
  59. litlaunch-1.0.0/src/litlaunch/events.py +195 -0
  60. litlaunch-1.0.0/src/litlaunch/exceptions.py +25 -0
  61. litlaunch-1.0.0/src/litlaunch/exposure.py +254 -0
  62. litlaunch-1.0.0/src/litlaunch/governance.py +186 -0
  63. litlaunch-1.0.0/src/litlaunch/health.py +81 -0
  64. litlaunch-1.0.0/src/litlaunch/inspect/__init__.py +41 -0
  65. litlaunch-1.0.0/src/litlaunch/inspect/collect.py +680 -0
  66. litlaunch-1.0.0/src/litlaunch/inspect/models.py +140 -0
  67. litlaunch-1.0.0/src/litlaunch/inspect/render_bundle.py +50 -0
  68. litlaunch-1.0.0/src/litlaunch/inspect/render_html.py +288 -0
  69. litlaunch-1.0.0/src/litlaunch/inspect/render_json.py +16 -0
  70. litlaunch-1.0.0/src/litlaunch/inspect/streamlit_check.py +33 -0
  71. litlaunch-1.0.0/src/litlaunch/launcher.py +553 -0
  72. litlaunch-1.0.0/src/litlaunch/lifecycle.py +83 -0
  73. litlaunch-1.0.0/src/litlaunch/monitored.py +365 -0
  74. litlaunch-1.0.0/src/litlaunch/monitored_browser.py +432 -0
  75. litlaunch-1.0.0/src/litlaunch/monitored_common.py +59 -0
  76. litlaunch-1.0.0/src/litlaunch/planning.py +109 -0
  77. litlaunch-1.0.0/src/litlaunch/platforms/__init__.py +15 -0
  78. litlaunch-1.0.0/src/litlaunch/platforms/detect.py +182 -0
  79. litlaunch-1.0.0/src/litlaunch/ports.py +130 -0
  80. litlaunch-1.0.0/src/litlaunch/process.py +98 -0
  81. litlaunch-1.0.0/src/litlaunch/profiles/__init__.py +9 -0
  82. litlaunch-1.0.0/src/litlaunch/profiles/core.py +332 -0
  83. litlaunch-1.0.0/src/litlaunch/profiles/detection.py +89 -0
  84. litlaunch-1.0.0/src/litlaunch/profiles/rendering.py +207 -0
  85. litlaunch-1.0.0/src/litlaunch/profiles/state.py +107 -0
  86. litlaunch-1.0.0/src/litlaunch/profiles/wizard.py +920 -0
  87. litlaunch-1.0.0/src/litlaunch/profiles/writer.py +267 -0
  88. litlaunch-1.0.0/src/litlaunch/py.typed +1 -0
  89. litlaunch-1.0.0/src/litlaunch/redaction.py +143 -0
  90. litlaunch-1.0.0/src/litlaunch/runtime_console.py +292 -0
  91. litlaunch-1.0.0/src/litlaunch/session.py +516 -0
  92. litlaunch-1.0.0/src/litlaunch/shortcut_writer.py +479 -0
  93. litlaunch-1.0.0/src/litlaunch/shutdown.py +723 -0
  94. litlaunch-1.0.0/src/litlaunch/streamlit.py +120 -0
  95. litlaunch-1.0.0/src/litlaunch/transport.py +232 -0
  96. litlaunch-1.0.0/src/litlaunch/version.py +6 -0
  97. litlaunch-1.0.0/src/litlaunch/windowing/__init__.py +35 -0
  98. litlaunch-1.0.0/src/litlaunch/windowing/base.py +137 -0
  99. litlaunch-1.0.0/src/litlaunch/windowing/noop.py +42 -0
  100. litlaunch-1.0.0/src/litlaunch/windowing/polling.py +303 -0
  101. litlaunch-1.0.0/src/litlaunch/windowing/windows.py +302 -0
  102. litlaunch-1.0.0/tests/integration/test_real_streamlit_smoke.py +41 -0
  103. litlaunch-1.0.0/tests/test_backend.py +86 -0
  104. litlaunch-1.0.0/tests/test_browser_base.py +48 -0
  105. litlaunch-1.0.0/tests/test_browser_detection.py +328 -0
  106. litlaunch-1.0.0/tests/test_browser_launch.py +286 -0
  107. litlaunch-1.0.0/tests/test_ci_workflow.py +43 -0
  108. litlaunch-1.0.0/tests/test_cli.py +3124 -0
  109. litlaunch-1.0.0/tests/test_config.py +233 -0
  110. litlaunch-1.0.0/tests/test_console.py +772 -0
  111. litlaunch-1.0.0/tests/test_diagnostics_page.py +636 -0
  112. litlaunch-1.0.0/tests/test_events.py +117 -0
  113. litlaunch-1.0.0/tests/test_examples.py +97 -0
  114. litlaunch-1.0.0/tests/test_exposure.py +597 -0
  115. litlaunch-1.0.0/tests/test_health.py +106 -0
  116. litlaunch-1.0.0/tests/test_imports.py +298 -0
  117. litlaunch-1.0.0/tests/test_inspect.py +845 -0
  118. litlaunch-1.0.0/tests/test_launcher_browser.py +40 -0
  119. litlaunch-1.0.0/tests/test_launcher_runtime.py +1154 -0
  120. litlaunch-1.0.0/tests/test_lifecycle.py +60 -0
  121. litlaunch-1.0.0/tests/test_metadata.py +252 -0
  122. litlaunch-1.0.0/tests/test_monitored.py +639 -0
  123. litlaunch-1.0.0/tests/test_no_shell_true.py +8 -0
  124. litlaunch-1.0.0/tests/test_platforms.py +121 -0
  125. litlaunch-1.0.0/tests/test_ports.py +195 -0
  126. litlaunch-1.0.0/tests/test_process.py +164 -0
  127. litlaunch-1.0.0/tests/test_profile_detection.py +71 -0
  128. litlaunch-1.0.0/tests/test_profile_wizard.py +250 -0
  129. litlaunch-1.0.0/tests/test_profile_writer.py +259 -0
  130. litlaunch-1.0.0/tests/test_profiles.py +247 -0
  131. litlaunch-1.0.0/tests/test_release_hygiene.py +301 -0
  132. litlaunch-1.0.0/tests/test_session.py +871 -0
  133. litlaunch-1.0.0/tests/test_shortcut_writer.py +232 -0
  134. litlaunch-1.0.0/tests/test_shutdown.py +721 -0
  135. litlaunch-1.0.0/tests/test_streamlit_command.py +207 -0
  136. litlaunch-1.0.0/tests/test_windowing.py +377 -0
  137. litlaunch-1.0.0/tests/test_windows_windowing.py +266 -0
@@ -0,0 +1,6 @@
1
+ * text=auto eol=lf
2
+
3
+ # Windows command scripts may require CRLF when executed by native shells.
4
+ *.bat text eol=crlf
5
+ *.cmd text eol=crlf
6
+ *.ps1 text eol=crlf
@@ -0,0 +1,73 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ test:
13
+ name: Test (${{ matrix.os }}, Python ${{ matrix.python-version }})
14
+ runs-on: ${{ matrix.os }}
15
+ timeout-minutes: 15
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ os:
20
+ - windows-latest
21
+ - ubuntu-latest
22
+ - macos-latest
23
+ python-version:
24
+ - "3.10"
25
+ - "3.11"
26
+ - "3.12"
27
+ - "3.13"
28
+ - "3.14"
29
+
30
+ steps:
31
+ - name: Check out repository
32
+ uses: actions/checkout@v6
33
+
34
+ - name: Set up Python
35
+ uses: actions/setup-python@v6
36
+ with:
37
+ python-version: ${{ matrix.python-version }}
38
+
39
+ - name: Install development dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ python -m pip install -e ".[dev]"
43
+
44
+ - name: Run tests
45
+ run: python -m pytest
46
+
47
+ - name: Run Ruff lint
48
+ run: python -m ruff check .
49
+
50
+ - name: Check Ruff formatting
51
+ run: python -m ruff format --check .
52
+
53
+ build:
54
+ name: Build and release hygiene
55
+ runs-on: ubuntu-latest
56
+ timeout-minutes: 15
57
+
58
+ steps:
59
+ - name: Check out repository
60
+ uses: actions/checkout@v6
61
+
62
+ - name: Set up Python
63
+ uses: actions/setup-python@v6
64
+ with:
65
+ python-version: "3.14"
66
+
67
+ - name: Install development dependencies
68
+ run: |
69
+ python -m pip install --upgrade pip
70
+ python -m pip install -e ".[dev]"
71
+
72
+ - name: Run release hygiene checks
73
+ run: python scripts/check_release.py
@@ -0,0 +1,54 @@
1
+ # Python bytecode and cache directories
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ .pytest_cache/
6
+ .ruff_cache/
7
+ .mypy_cache/
8
+ .pyre/
9
+ .pytype/
10
+ .coverage
11
+ .coverage.*
12
+ htmlcov/
13
+
14
+ # Virtual environments
15
+ .venv/
16
+ venv/
17
+ env/
18
+ ENV/
19
+
20
+ # Build and packaging artifacts
21
+ build/
22
+ dist/
23
+ *.egg-info/
24
+ *.egg
25
+ pip-wheel-metadata/
26
+
27
+ # Tooling and test environments
28
+ .tox/
29
+ .nox/
30
+ .hypothesis/
31
+ .claude/
32
+
33
+ # Local environment and secrets
34
+ .env
35
+ .env.*
36
+ !.env.example
37
+
38
+ # Editor and OS metadata
39
+ .idea/
40
+ .vscode/
41
+ *.swp
42
+ *.swo
43
+ .DS_Store
44
+ Thumbs.db
45
+ desktop.ini
46
+
47
+ # Logs and local scratch files
48
+ *.log
49
+ *.tmp
50
+ *.temp
51
+ .litlaunch/
52
+
53
+ # dev personal files
54
+ notes/
@@ -0,0 +1,177 @@
1
+ # Changelog
2
+
3
+ LitLaunch uses PEP 440 public versions. The `1.0.0` release is the first stable
4
+ LitLaunch release and aligns with the coordinated LitLaunch / RoleThread
5
+ launch.
6
+
7
+ Granular pre-release history is preserved in git. This changelog now presents
8
+ the project history at the level most useful to release users and integrators.
9
+
10
+ ## 1.0.0 - Stable
11
+
12
+ - Promoted LitLaunch from the release-candidate line to the first stable
13
+ release, with the PyPI classifier set to
14
+ `Development Status :: 5 - Production/Stable`.
15
+ - Preserved the narrow runtime-governance scope: LitLaunch owns launch
16
+ orchestration, backend lifecycle, browser/app-window strategy, diagnostics,
17
+ profiles, shortcuts, runtime events, shutdown, and support artifacts without
18
+ replacing or securing Streamlit applications.
19
+
20
+ ## 1.0.0rc6 - Release Candidate
21
+
22
+ - Refined generated diagnostics pages so runtime event sessions render as
23
+ console-style lifecycle replays near the bottom of the page, with raw JSONL
24
+ still available for support/debug review.
25
+
26
+ ## 1.0.0rc5 - Release Candidate
27
+
28
+ - Moved profile loading, writing, detection, and wizard internals into the
29
+ dedicated `litlaunch.profiles` package while preserving top-level profile
30
+ imports, CLI behavior, and profile file compatibility.
31
+
32
+ ## 1.0.0rc4 - Release Candidate
33
+
34
+ - Improved generated diagnostics pages with human-readable runtime session
35
+ summaries from runtime event logs while preserving raw JSONL event access and
36
+ event-mix chart support.
37
+
38
+ ## 1.0.0rc3 - Release Candidate
39
+
40
+ - Updated generated diagnostics pages to parse native runtime event JSONL logs
41
+ for event-mix charts while preserving legacy/plain event-line support and
42
+ safe malformed-line handling.
43
+
44
+ ## 1.0.0rc2 - Release Candidate
45
+
46
+ - Added optional runtime event log support for CLI/profile/Python launches via
47
+ `runtime_event_log`, `--event-log`, and the local JSONL
48
+ `create_runtime_event_file_sink()` helper.
49
+ - Composed runtime event log sinks with app-provided `event_sink` callbacks so
50
+ packaged apps can keep product logs without losing custom integration hooks.
51
+ - Improved generated diagnostics pages with an env-var-first event log resolver
52
+ and fallback path support for app-data or project-local runtime logs.
53
+ - Updated generated diagnostics page charts for Streamlit's `width="stretch"`
54
+ API to avoid `use_container_width` deprecation warnings.
55
+
56
+ ## 1.0.0rc1 - Release Candidate
57
+
58
+ Summary:
59
+
60
+ - Feature-complete release candidate for the coordinated LitLaunch / RoleThread
61
+ launch.
62
+ - Stable public API and documentation posture pending final RoleThread
63
+ validation.
64
+ - Package metadata remains Beta for the release-candidate line; the
65
+ Production/Stable classifier is reserved for final `1.0.0`.
66
+
67
+ Highlights:
68
+
69
+ - CLI and Python API launch paths for owned Streamlit runtimes, including
70
+ `litlaunch`, `python -m litlaunch`, `litlaunch run`, profiles, and direct
71
+ `StreamlitLauncher` usage.
72
+ - Managed Chromium browser-window lifecycle for browser mode, using temporary
73
+ profile isolation, controlled Edge/Chrome launch shapes, exact-window
74
+ monitoring, graceful fallback, and no browser-process killing.
75
+ - Webapp/app-window lifecycle monitoring for app-style launches, including
76
+ close-to-shutdown behavior where platform support is available.
77
+ - Browser support boundaries for Microsoft Edge, Chrome/Chromium, default
78
+ browser fallback, app-mode/webapp behavior, and managed browser profiles.
79
+ - Graceful shutdown orchestration with app cleanup requests, loopback-scoped
80
+ shutdown endpoint handling, port release checks, and Ctrl+C reliability.
81
+ - Shutdown hook support, `ShutdownHookStatus`, bounded hook failure reporting,
82
+ hook console visibility controls, and app-owned cleanup messaging through the
83
+ LitLaunch console grammar.
84
+ - Runtime event sink API for structured lifecycle events that packaged apps can
85
+ write to product logs or support trails without scraping console output.
86
+ - Runtime governance layer composing trust mode, runtime exposure,
87
+ acknowledgement state, transport/TLS posture, launch allow/block posture, and
88
+ recommendations.
89
+ - Runtime exposure and transport security diagnostics, including trust modes,
90
+ network-visible host guidance, Streamlit-native TLS detection, plaintext HTTP
91
+ warnings, and honest security-boundary language.
92
+ - Diagnostics and reporting outputs for inspect/report workflows, HTML reports,
93
+ JSON diagnostics, support bundles, privacy warnings, and pattern-based
94
+ redaction limits.
95
+ - Generated Streamlit-native diagnostics/support page API, including
96
+ app-owned generated code, posture cards, operational charts, event trail,
97
+ support artifact controls, and `auto`/`dark`/`light` theme modes.
98
+ - Project-local generated artifact layout under `.litlaunch/`, including
99
+ `.litlaunch/reports/`, `.litlaunch/shortcuts/`, and
100
+ `.litlaunch/tmp/browser-profiles/`.
101
+ - Profile system and profile wizard for repeatable launch behavior, trust
102
+ modes, Streamlit flag passthrough, browser/window options, and guided local
103
+ configuration.
104
+ - Native shortcut generation with Windows `.lnk`, Linux `.desktop`, macOS
105
+ `.app` bundle limited-validation support, and script fallback via
106
+ `--kind script`.
107
+ - Packaged/distributed application positioning and support for workflows built
108
+ with tools such as PyInstaller, Inno Setup, and local desktop-style runtime
109
+ distributions.
110
+ - Console UX polish for normal, verbose, quiet, and no-color output, including
111
+ bounded error/cause/next-step messaging and consistent status grammar.
112
+ - Security/privacy posture hardening around support bundles, credential hygiene,
113
+ diagnostics redaction, internal docs boundaries, and release artifact policy.
114
+ - Release hygiene tooling for classifier/version consistency, credential
115
+ prefix scanning, forbidden archive entries, package artifact inspection,
116
+ twine checks, and installed-wheel smoke validation.
117
+
118
+ ## Beta Development Era
119
+
120
+ The 0.91.x line hardened LitLaunch from a capable Streamlit launcher into a
121
+ runtime-governance and operational-launch layer for real applications.
122
+
123
+ Major beta-era work included:
124
+
125
+ - Runtime hardening for backend startup, health checks, browser launch,
126
+ graceful shutdown, port release, and repeated launch/close workflows.
127
+ - Browser lifecycle breakthroughs, including duplicate-tab prevention,
128
+ Streamlit headless ownership, managed Chromium profile isolation,
129
+ Edge/Chrome top-level window detection, first-run prompt suppression, and
130
+ monitored browser-window close-to-shutdown.
131
+ - Webapp/app-window monitoring improvements that made app-mode close behavior
132
+ explicit, testable, and reliable without weakening Ctrl+C shutdown.
133
+ - Runtime governance passes that introduced trust modes, exposure
134
+ classification, acknowledgement enforcement, TLS/transport posture, and
135
+ concise diagnostics summaries.
136
+ - Diagnostics/reporting expansion across inspect, report, HTML, JSON, support
137
+ bundle, browser/platform, runtime exposure, transport security, and
138
+ governance outputs.
139
+ - Generated diagnostics/support page work, moving from a generator API to a
140
+ polished Streamlit-native support surface with artifact controls, event
141
+ trail, operational visuals, and theme modes.
142
+ - Runtime event sink support for app-owned lifecycle trails and packaged-app
143
+ support logs without telemetry or built-in persistence.
144
+ - Profile and shortcut polish, including the profile wizard, profile
145
+ documentation, project-local `.litlaunch/` artifacts, and native shortcut
146
+ outputs.
147
+ - Shutdown hook maturity, including `ShutdownHookStatus`, hook visibility
148
+ controls, normal/verbose console behavior, and bounded hook error reporting.
149
+ - Public docs, CLI help, README/PyPI positioning, packaged-app messaging, and
150
+ cross-platform workflow alignment.
151
+ - Release-readiness hardening, including metadata/classifier checks,
152
+ credential scanning, sdist/wheel hygiene, internal docs visibility, and
153
+ package smoke validation.
154
+
155
+ ## Alpha Development Era
156
+
157
+ The early alpha line established LitLaunch's core runtime shape and project
158
+ philosophy.
159
+
160
+ Major alpha-era work included:
161
+
162
+ - Initial `StreamlitLauncher` abstraction for launching Streamlit apps from
163
+ Python while owning the backend process.
164
+ - CLI foundations for launch, inspect, report, browser/platform discovery,
165
+ examples, and workflow help.
166
+ - Browser detection and launch strategies for default browser, Edge,
167
+ Chrome/Chromium, and app-mode/webapp behavior.
168
+ - Basic profile support for repeatable launch configuration and early
169
+ Streamlit flag passthrough.
170
+ - Graceful shutdown groundwork, including cleanup callbacks, backend stop
171
+ orchestration, and port release validation.
172
+ - Early diagnostics/reporting primitives for platform, Streamlit availability,
173
+ browser support, command preview, and app path validation.
174
+ - Packaged-application groundwork for local-first apps, working-directory
175
+ handling, app-mode launches, and installer/runtime integration scenarios.
176
+ - Console rendering foundations with status labels, normal/verbose output
177
+ shaping, and developer-facing troubleshooting guidance.
@@ -0,0 +1,24 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Sierra Cognitive Group, LLC
4
+
5
+ LitLaunch is developed and maintained by LatticeFoundry,
6
+ a software division of Sierra Cognitive Group, LLC.
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to deal
10
+ in the Software without restriction, including without limitation the rights
11
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in all
16
+ copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24
+ SOFTWARE.