@starlove/orbit 1.0.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.
Files changed (86) hide show
  1. package/.dockerignore +13 -0
  2. package/Dockerfile +34 -0
  3. package/README.md +216 -0
  4. package/SKILL-ORBIT.md +94 -0
  5. package/build.mjs +204 -0
  6. package/dist/full/apple-touch-icon.png +0 -0
  7. package/dist/full/cursors/live_arrow.cur +0 -0
  8. package/dist/full/cursors/live_link.cur +0 -0
  9. package/dist/full/cursors/live_move.cur +0 -0
  10. package/dist/full/cursors/live_select.cur +0 -0
  11. package/dist/full/cursors/live_unavail.cur +0 -0
  12. package/dist/full/favicon-32x32.png +0 -0
  13. package/dist/full/index.html +314 -0
  14. package/dist/full/js/app.70be7d06.js +554 -0
  15. package/dist/full/js/app.70be7d06.js.map +7 -0
  16. package/dist/full/orbits-favicon.png +0 -0
  17. package/dist/full/orbits-logo-bg.png +0 -0
  18. package/dist/full/orbits-logo.png +0 -0
  19. package/dist/full/styles.c2e3d20a.css +4892 -0
  20. package/dist/full/version.json +6 -0
  21. package/docs/AGENT_PROTOCOL.md +379 -0
  22. package/docs/MCP_SETUP.md +49 -0
  23. package/docs/mcp-client.example.json +13 -0
  24. package/package.json +62 -0
  25. package/pnpm-workspace.yaml +2 -0
  26. package/public/apple-touch-icon.png +0 -0
  27. package/public/cursors/live_arrow.cur +0 -0
  28. package/public/cursors/live_link.cur +0 -0
  29. package/public/cursors/live_move.cur +0 -0
  30. package/public/cursors/live_select.cur +0 -0
  31. package/public/cursors/live_unavail.cur +0 -0
  32. package/public/favicon-32x32.png +0 -0
  33. package/public/index.html +314 -0
  34. package/public/js/api.js +35 -0
  35. package/public/js/app.js +35 -0
  36. package/public/js/board-menu.js +145 -0
  37. package/public/js/config.js +19 -0
  38. package/public/js/create-card.js +153 -0
  39. package/public/js/dom.js +19 -0
  40. package/public/js/drawer.js +137 -0
  41. package/public/js/format.js +108 -0
  42. package/public/js/kanban.js +475 -0
  43. package/public/js/local-backend.js +934 -0
  44. package/public/js/main.js +142 -0
  45. package/public/js/modal.js +31 -0
  46. package/public/js/router.js +114 -0
  47. package/public/js/search.js +53 -0
  48. package/public/js/settings-tabs.js +7 -0
  49. package/public/js/settings.js +931 -0
  50. package/public/js/sse.js +156 -0
  51. package/public/js/starscape.js +315 -0
  52. package/public/js/state.js +54 -0
  53. package/public/js/ticket-detail.js +766 -0
  54. package/public/js/toast.js +74 -0
  55. package/public/js/transport.js +22 -0
  56. package/public/js/unread.js +121 -0
  57. package/public/orbits-favicon.png +0 -0
  58. package/public/orbits-logo-bg.png +0 -0
  59. package/public/orbits-logo.png +0 -0
  60. package/public/styles.css +4892 -0
  61. package/src/cli/orbit.js +438 -0
  62. package/src/core/agent.js +262 -0
  63. package/src/core/auth.js +49 -0
  64. package/src/core/backups.js +136 -0
  65. package/src/core/board.js +112 -0
  66. package/src/core/boards.js +310 -0
  67. package/src/core/bootstrap.js +162 -0
  68. package/src/core/db.js +237 -0
  69. package/src/core/delete-board.js +53 -0
  70. package/src/core/events.js +314 -0
  71. package/src/core/http.js +81 -0
  72. package/src/core/paths.js +25 -0
  73. package/src/core/provision-repo-board.js +113 -0
  74. package/src/core/queries.js +246 -0
  75. package/src/core/registry.js +207 -0
  76. package/src/core/relations.js +163 -0
  77. package/src/core/router.js +414 -0
  78. package/src/core/search.js +70 -0
  79. package/src/core/seed.js +226 -0
  80. package/src/core/snapshots.js +255 -0
  81. package/src/core/states.js +167 -0
  82. package/src/core/system-picker.js +93 -0
  83. package/src/core/tickets.js +344 -0
  84. package/src/core/util.js +105 -0
  85. package/src/mcp-server.js +773 -0
  86. package/src/server.js +48 -0
@@ -0,0 +1,314 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Orbit</title>
7
+ <link
8
+ rel="icon"
9
+ type="image/png"
10
+ sizes="32x32"
11
+ href="./favicon-32x32.png"
12
+ />
13
+ <link
14
+ rel="apple-touch-icon"
15
+ sizes="180x180"
16
+ href="./apple-touch-icon.png"
17
+ />
18
+ <link rel="stylesheet" href="styles.c2e3d20a.css" />
19
+ </head>
20
+ <body>
21
+ <div class="grain">
22
+ <div class="milky-way" aria-hidden="true"></div>
23
+ </div>
24
+ <header class="topbar">
25
+ <div class="brand" aria-label="Orbit">
26
+ <img class="mark" src="./orbits-logo.png" alt="Orbits logo" />
27
+ </div>
28
+ <div class="controls">
29
+ <span class="topbar-controls-gap" aria-hidden="true"></span>
30
+ <div class="topbar-search" id="topbarSearch">
31
+ <input
32
+ id="searchInput"
33
+ placeholder="Search tickets, comments, decisions..."
34
+ autocomplete="off"
35
+ />
36
+ <div id="searchResults" class="search-results" hidden></div>
37
+ </div>
38
+ <button
39
+ id="newTicketBtn"
40
+ type="button"
41
+ class="topbar-btn btn-sun topbar-ctl-shrink"
42
+ >
43
+ <span class="btn-plus" aria-hidden="true">+</span>
44
+ <span class="btn-sun-label">New Card</span>
45
+ </button>
46
+ <div class="topbar-menu">
47
+ <button
48
+ type="button"
49
+ id="boardMenuBtn"
50
+ class="topbar-chip topbar-ctl-shrink"
51
+ aria-expanded="false"
52
+ aria-haspopup="true"
53
+ aria-controls="boardFlyout"
54
+ >
55
+ <svg
56
+ class="topbar-icon"
57
+ width="16"
58
+ height="16"
59
+ viewBox="0 0 24 24"
60
+ fill="none"
61
+ aria-hidden="true"
62
+ >
63
+ <rect
64
+ x="4"
65
+ y="4"
66
+ width="6"
67
+ height="16"
68
+ rx="1.5"
69
+ stroke="currentColor"
70
+ stroke-width="2"
71
+ />
72
+ <rect
73
+ x="14"
74
+ y="4"
75
+ width="6"
76
+ height="16"
77
+ rx="1.5"
78
+ stroke="currentColor"
79
+ stroke-width="2"
80
+ />
81
+ </svg>
82
+ Board
83
+ </button>
84
+ <div
85
+ id="boardFlyout"
86
+ class="menu-flyout menu-flyout--align-end"
87
+ hidden
88
+ role="menu"
89
+ ></div>
90
+ </div>
91
+ <button
92
+ id="themeToggle"
93
+ type="button"
94
+ class="topbar-btn ghost topbar-ctl-shrink"
95
+ aria-label="Toggle theme"
96
+ >
97
+ <svg
98
+ class="topbar-icon"
99
+ id="themeIcon"
100
+ width="16"
101
+ height="16"
102
+ viewBox="0 0 24 24"
103
+ fill="none"
104
+ stroke="currentColor"
105
+ stroke-width="2"
106
+ stroke-linecap="round"
107
+ aria-hidden="true"
108
+ >
109
+ <circle cx="12" cy="12" r="5" />
110
+ <path
111
+ d="M12 1v2m0 18v2M4.2 4.2l1.4 1.4m12.8 12.8l1.4 1.4M1 12h2m18 0h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4"
112
+ />
113
+ </svg>
114
+ </button>
115
+ <button
116
+ id="settingsBtn"
117
+ type="button"
118
+ class="topbar-btn ghost topbar-ctl-shrink"
119
+ >
120
+ <svg
121
+ class="topbar-icon"
122
+ width="16"
123
+ height="16"
124
+ viewBox="0 0 24 24"
125
+ fill="none"
126
+ stroke="currentColor"
127
+ stroke-width="2"
128
+ stroke-linecap="round"
129
+ stroke-linejoin="round"
130
+ aria-hidden="true"
131
+ >
132
+ <path
133
+ d="M12.22 2h-.44a2 2 0 00-2 2v.18a2 2 0 01-1 1.73l-.43.25a2 2 0 01-2 0l-.15-.08a2 2 0 00-2.73.73l-.22.38a2 2 0 00.73 2.73l.15.1a2 2 0 011 1.72v.51a2 2 0 01-1 1.74l-.15.09a2 2 0 00-.73 2.73l.22.38a2 2 0 002.73.73l.15-.08a2 2 0 012 0l.43.25a2 2 0 011 1.73V20a2 2 0 002 2h.44a2 2 0 002-2v-.18a2 2 0 011-1.73l.43-.25a2 2 0 012 0l.15.08a2 2 0 002.73-.73l.22-.39a2 2 0 00-.73-2.73l-.15-.08a2 2 0 01-1-1.74v-.5a2 2 0 011-1.74l.15-.09a2 2 0 00.73-2.73l-.22-.38a2 2 0 00-2.73-.73l-.15.08a2 2 0 01-2 0l-.43-.25a2 2 0 01-1-1.73V4a2 2 0 00-2-2z"
134
+ />
135
+ <circle cx="12" cy="12" r="3" />
136
+ </svg>
137
+ Settings
138
+ </button>
139
+ </div>
140
+ </header>
141
+
142
+ <div
143
+ id="createFlyoutBackdrop"
144
+ class="create-flyout-backdrop"
145
+ hidden
146
+ aria-hidden="true"
147
+ ></div>
148
+ <div
149
+ id="createFlyout"
150
+ class="create-flyout"
151
+ hidden
152
+ aria-label="New card"
153
+ >
154
+ <div id="createFlyoutInner" class="create-flyout-inner"></div>
155
+ </div>
156
+
157
+ <main class="board-main">
158
+ <div id="kanban" class="kanban" aria-live="polite"></div>
159
+ </main>
160
+ <footer class="frame-footer" aria-label="Application signature">
161
+ <span class="frame-footer-title">Orbit</span>
162
+ <span class="frame-footer-subtitle"><em>a Starscape app</em></span>
163
+ </footer>
164
+
165
+ <div
166
+ id="drawerBackdrop"
167
+ class="drawer-backdrop"
168
+ hidden
169
+ aria-hidden="true"
170
+ ></div>
171
+ <aside id="drawer" class="drawer" hidden aria-label="Panel">
172
+ <header class="drawer-header">
173
+ <div class="drawer-title-block">
174
+ <span
175
+ id="drawerEyebrow"
176
+ class="drawer-eyebrow"
177
+ hidden
178
+ ></span>
179
+ <h2 id="drawerTitle" class="drawer-title-text"></h2>
180
+ <div
181
+ id="drawerSubtitle"
182
+ class="drawer-subtitle"
183
+ hidden
184
+ ></div>
185
+ </div>
186
+ <nav
187
+ id="drawerTabs"
188
+ class="drawer-tabs"
189
+ role="tablist"
190
+ hidden
191
+ ></nav>
192
+ <button
193
+ type="button"
194
+ id="drawerArchiveBtn"
195
+ class="drawer-archive"
196
+ aria-label="Archive card"
197
+ title="Archive card"
198
+ hidden
199
+ >
200
+ <svg
201
+ viewBox="0 0 24 24"
202
+ width="18"
203
+ height="18"
204
+ fill="none"
205
+ stroke="currentColor"
206
+ stroke-width="2"
207
+ stroke-linecap="round"
208
+ stroke-linejoin="round"
209
+ aria-hidden="true"
210
+ >
211
+ <path d="M3 6h18" />
212
+ <path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" />
213
+ <path
214
+ d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"
215
+ />
216
+ <path d="M10 11v6" />
217
+ <path d="M14 11v6" />
218
+ </svg>
219
+ </button>
220
+ <button
221
+ type="button"
222
+ id="drawerCloseBtn"
223
+ class="drawer-close"
224
+ aria-label="Close panel"
225
+ >
226
+ ×
227
+ </button>
228
+ </header>
229
+ <div id="drawerInner" class="drawer-inner"></div>
230
+ </aside>
231
+
232
+ <template id="commentFormTemplate">
233
+ <form class="comment-form">
234
+ <textarea
235
+ name="body"
236
+ placeholder="Add a comment, decision, or instruction..."
237
+ required
238
+ ></textarea>
239
+ <button type="submit">Comment</button>
240
+ </form>
241
+ </template>
242
+
243
+ <!-- Generic modal dialog — content varies by use-case.
244
+ The welcome dialog auto-shows on the preview edition via main.js.
245
+ Other uses: call openModal(el) from any module that imports modal.js. -->
246
+ <dialog
247
+ id="welcomeDialog"
248
+ class="orbit-dialog"
249
+ aria-labelledby="welcomeDialogTitle"
250
+ >
251
+ <div class="welcome-dialog-inner">
252
+ <div class="welcome-dialog-head">
253
+ <img
254
+ class="welcome-dialog-logo"
255
+ src="./orbits-logo.png"
256
+ alt=""
257
+ aria-hidden="true"
258
+ />
259
+ <span class="welcome-dialog-edition-pill"
260
+ >Preview Edition</span
261
+ >
262
+ </div>
263
+ <div class="welcome-dialog-body">
264
+ <h2 id="welcomeDialogTitle" class="welcome-dialog-title">
265
+ No-AI Browser Preview
266
+ </h2>
267
+ <p class="welcome-dialog-lede">
268
+ You're using the local, browser-only preview of
269
+ <strong>Orbit</strong> — a developer-first kanban board
270
+ built for teams working alongside AI agents.
271
+ </p>
272
+ <ul class="welcome-dialog-notices">
273
+ <li>
274
+ <span class="welcome-dialog-notice-label"
275
+ >No AI</span
276
+ >
277
+ Boards are stored in your browser only. AI features,
278
+ MCP server, and server-side sync require the full
279
+ install.
280
+ </li>
281
+ <li>
282
+ <span class="welcome-dialog-notice-label"
283
+ >Download</span
284
+ >
285
+ Get the full app at
286
+ <a
287
+ class="welcome-dialog-link"
288
+ href="https://orbit.starscape.app/install"
289
+ >orbit.starscape.app/install</a
290
+ >
291
+ </li>
292
+ <li>
293
+ <span class="welcome-dialog-notice-label"
294
+ >Coming soon</span
295
+ >
296
+ Paid cloud hosting for teams — no install required.
297
+ </li>
298
+ </ul>
299
+ </div>
300
+ <footer class="welcome-dialog-footer">
301
+ <button
302
+ type="button"
303
+ class="welcome-dialog-cta"
304
+ data-modal-close
305
+ >
306
+ Get started
307
+ </button>
308
+ </footer>
309
+ </div>
310
+ </dialog>
311
+
312
+ <script src="js/app.70be7d06.js" type="module"></script>
313
+ </body>
314
+ </html>