@ibgib/space-gib 0.0.33 → 0.0.35

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 (118) hide show
  1. package/dist/client/bootstrap.mjs +24 -51
  2. package/dist/client/chunk-FIAGRVBY.mjs +10933 -0
  3. package/dist/client/chunk-XLQ3UCQY.mjs +53 -0
  4. package/dist/client/css/activity-bar.css +435 -0
  5. package/dist/client/css/base.css +167 -0
  6. package/dist/client/css/components.css +218 -0
  7. package/dist/client/css/cosmic.css +557 -0
  8. package/dist/client/css/dev-tools.css +163 -0
  9. package/dist/client/css/landing.css +184 -0
  10. package/dist/client/css/layout.css +1017 -0
  11. package/dist/client/css/onboarding.css +181 -0
  12. package/dist/client/css/repos.css +740 -0
  13. package/dist/client/css/variables.css +64 -0
  14. package/dist/client/index.html +208 -31
  15. package/dist/client/index.mjs +22 -45
  16. package/dist/client/privacy.html +22 -22
  17. package/dist/client/script.mjs +1 -1
  18. package/dist/client/style.css +11 -1056
  19. package/dist/respec-gib.node.mjs +5 -0
  20. package/dist/server/server.mjs +6880 -3110
  21. package/package.json +6 -6
  22. package/src/client/AUTO-GENERATED-version.mts +1 -1
  23. package/src/client/cosmos/seed-cosmos-workspace.mts +83 -0
  24. package/src/client/css/activity-bar.css +435 -0
  25. package/src/client/css/base.css +167 -0
  26. package/src/client/css/components.css +218 -0
  27. package/src/client/css/cosmic.css +557 -0
  28. package/src/client/css/dev-tools.css +163 -0
  29. package/src/client/css/landing.css +184 -0
  30. package/src/client/css/layout.css +1017 -0
  31. package/src/client/css/onboarding.css +181 -0
  32. package/src/client/css/repos.css +740 -0
  33. package/src/client/css/variables.css +64 -0
  34. package/src/client/dev-tools/vcs-workspace.mts +7 -7
  35. package/src/client/index.html +208 -31
  36. package/src/client/privacy.html +22 -22
  37. package/src/client/style.css +11 -1056
  38. package/src/client/ui/component/changes/changes.css +413 -0
  39. package/src/client/ui/component/changes/changes.html +37 -0
  40. package/src/client/ui/component/changes/changes.mts +766 -0
  41. package/src/client/ui/component/changes/index.mts +9 -0
  42. package/src/client/ui/component/chat-view/IMPLEMENTATION.md +48 -0
  43. package/src/client/ui/component/chat-view/chat-view.css +381 -0
  44. package/src/client/ui/component/chat-view/chat-view.html +52 -0
  45. package/src/client/ui/component/chat-view/chat-view.mts +264 -0
  46. package/src/client/ui/component/chat-view/index.mts +9 -0
  47. package/src/client/ui/component/clone/IMPLEMENTATION.md +68 -0
  48. package/src/client/ui/component/clone/clone-constants.mts +16 -0
  49. package/src/client/ui/component/clone/clone-types.mts +60 -0
  50. package/src/client/ui/component/clone/clone.css +383 -0
  51. package/src/client/ui/component/clone/clone.html +89 -0
  52. package/src/client/ui/component/clone/clone.mts +648 -0
  53. package/src/client/ui/component/clone/index.mts +11 -0
  54. package/src/client/ui/component/code-editor/IMPLEMENTATION.md +89 -0
  55. package/src/client/ui/component/code-editor/code-editor.css +357 -0
  56. package/src/client/ui/component/code-editor/code-editor.html +67 -0
  57. package/src/client/ui/component/code-editor/code-editor.mts +643 -0
  58. package/src/client/ui/component/code-editor/index.mts +9 -0
  59. package/src/client/ui/component/cosmos-navigator/IMPLEMENTATION.md +31 -0
  60. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.css +864 -0
  61. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.html +92 -0
  62. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.mts +1317 -0
  63. package/src/client/ui/component/cosmos-navigator/index.mts +18 -0
  64. package/src/client/ui/component/file-explorer/IMPLEMENTATION.md +42 -0
  65. package/src/client/ui/component/file-explorer/file-explorer.css +720 -0
  66. package/src/client/ui/component/file-explorer/file-explorer.html +55 -0
  67. package/src/client/ui/component/file-explorer/file-explorer.mts +1412 -0
  68. package/src/client/ui/component/file-explorer/index.mts +9 -0
  69. package/src/client/ui/component/nested-chat/IMPLEMENTATION.md +18 -0
  70. package/src/client/ui/component/nested-chat/chat/IMPLEMENTATION.md +14 -0
  71. package/src/client/ui/component/nested-chat/chat/chat-constants.mts +14 -0
  72. package/src/client/ui/component/nested-chat/chat/chat-helpers.mts +66 -0
  73. package/src/client/ui/component/nested-chat/chat/chat.css +654 -0
  74. package/src/client/ui/component/nested-chat/chat/chat.html +90 -0
  75. package/src/client/ui/component/nested-chat/chat/chat.mts +561 -0
  76. package/src/client/ui/component/nested-chat/chat/index.mts +7 -0
  77. package/src/client/ui/component/nested-chat/index.mts +14 -0
  78. package/src/client/ui/component/nested-chat/nested-chat-constants.mts +12 -0
  79. package/src/client/ui/component/nested-chat/nested-chat-types.mts +53 -0
  80. package/src/client/ui/component/nested-chat/nested-chat.css +142 -0
  81. package/src/client/ui/component/nested-chat/nested-chat.html +11 -0
  82. package/src/client/ui/component/nested-chat/nested-chat.mts +395 -0
  83. package/src/client/ui/component/notes-explorer/index.mts +9 -0
  84. package/src/client/ui/component/notes-explorer/notes-explorer.css +313 -0
  85. package/src/client/ui/component/notes-explorer/notes-explorer.html +136 -0
  86. package/src/client/ui/component/notes-explorer/notes-explorer.mts +240 -0
  87. package/src/client/ui/component/notes-inspector/index.mts +9 -0
  88. package/src/client/ui/component/notes-inspector/notes-inspector.css +244 -0
  89. package/src/client/ui/component/notes-inspector/notes-inspector.html +97 -0
  90. package/src/client/ui/component/notes-inspector/notes-inspector.mts +152 -0
  91. package/src/client/ui/component/pitch/IMPLEMENTATION.md +48 -0
  92. package/src/client/ui/component/pitch/index.mts +9 -0
  93. package/src/client/ui/component/pitch/pitch.css +295 -0
  94. package/src/client/ui/component/pitch/pitch.html +97 -0
  95. package/src/client/ui/component/pitch/pitch.mts +135 -0
  96. package/src/client/ui/component/timeline/IMPLEMENTATION.md +33 -0
  97. package/src/client/ui/component/timeline/index.mts +9 -0
  98. package/src/client/ui/component/timeline/timeline.css +279 -0
  99. package/src/client/ui/component/timeline/timeline.html +23 -0
  100. package/src/client/ui/component/timeline/timeline.mts +261 -0
  101. package/src/client/ui/component/timeline-item-details/IMPLEMENTATION.md +28 -0
  102. package/src/client/ui/component/timeline-item-details/index.mts +9 -0
  103. package/src/client/ui/component/timeline-item-details/timeline-item-details.css +286 -0
  104. package/src/client/ui/component/timeline-item-details/timeline-item-details.html +64 -0
  105. package/src/client/ui/component/timeline-item-details/timeline-item-details.mts +194 -0
  106. package/src/client/ui/router/index.mts +3 -0
  107. package/src/client/ui/router/space-gib-router-helpers.mts +72 -0
  108. package/src/client/ui/router/space-gib-router-helpers.respec.mts +529 -0
  109. package/src/client/ui/router/space-gib-router-service.mts +63 -0
  110. package/src/client/ui/router/space-gib-router-types.mts +49 -0
  111. package/src/client/ui/shell/cosmic-big-bang.mts +853 -0
  112. package/src/client/ui/shell/space-gib-shell-constants.mts +7 -0
  113. package/src/client/ui/shell/space-gib-shell-service.mts +2297 -32
  114. package/src/server/server.mts +20 -1
  115. package/tsconfig.test.json +5 -1
  116. package/dist/client/chunk-CRJV762I.mjs +0 -3102
  117. package/dist/client/chunk-LXRCF5OS.mjs +0 -25
  118. package/dist/client/chunk-UBDQUZZV.mjs +0 -1
@@ -0,0 +1,64 @@
1
+ /* =========================================================================
2
+ space-gib — style.css
3
+ Dark-first, glassmorphism, premium design.
4
+ ========================================================================= */
5
+
6
+ /* ── Custom properties ── */
7
+ :root {
8
+ /* Palette */
9
+ --clr-bg-deep: #05080f;
10
+ --clr-bg-surface: #0b1120;
11
+ --clr-bg-glass: rgba(11, 17, 32, 0.7);
12
+ --clr-border: rgba(120, 248, 126, 0.12);
13
+ --clr-border-hover: rgba(120, 248, 126, 0.32);
14
+
15
+ --clr-accent: #78f87e;
16
+ --clr-accent-dim: rgba(120, 248, 126, 0.35);
17
+ --clr-accent-glow: rgba(120, 248, 126, 0.15);
18
+
19
+ --clr-text-primary: #e8f0e8;
20
+ --clr-text-secondary: #8fa08f;
21
+ --clr-text-muted: #4a604a;
22
+
23
+ --clr-danger: #ff5b5b;
24
+ --clr-warn: #ffcc44;
25
+ --clr-info: #44aaff;
26
+
27
+ /* Typography */
28
+ --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
29
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
30
+
31
+ /* Spacing / Layout */
32
+ --header-h: 60px;
33
+ --footer-h: 48px;
34
+ --radius-sm: 6px;
35
+ --radius-md: 12px;
36
+ --radius-lg: 20px;
37
+
38
+ /* Shadows */
39
+ --shadow-card: 0 4px 24px rgba(0, 0, 0, 0.5), 0 0 0 1px var(--clr-border);
40
+ --shadow-glow: 0 0 32px var(--clr-accent-glow);
41
+ --shadow-dialog: 0 8px 48px rgba(0, 0, 0, 0.8), 0 0 0 1px var(--clr-border);
42
+
43
+ /* Panel Dimensions */
44
+ --left-panel-width: 250px;
45
+ --right-panel-width: 340px;
46
+ --footer-panel-height: 48px;
47
+
48
+ /* Transition */
49
+ --t-fast: 120ms ease;
50
+ --t-med: 240ms ease;
51
+ --t-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);
52
+
53
+ /* Tab Component Properties */
54
+ --tab-padding: 0.55rem 1.25rem;
55
+ --tab-background-color: rgba(255, 255, 255, 0.03);
56
+ --tab-background-color-hover: rgba(255, 255, 255, 0.08);
57
+ --tab-background-color-active: rgba(120, 248, 126, 0.1);
58
+ --tab-border-radius: var(--radius-sm) var(--radius-sm) 0 0;
59
+ --tab-border-width: 1px;
60
+ --tab-border-color: rgba(255, 255, 255, 0.05);
61
+ --tab-border-color-active: var(--clr-accent-dim);
62
+ --tab-text-color: var(--clr-text-secondary);
63
+ --tab-text-color-active: var(--clr-accent);
64
+ }
@@ -10,12 +10,12 @@ import { getGlobalMetaspace_waitIfNeeded } from '@ibgib/web-gib/dist/helpers.mjs
10
10
  import { WebInMemoryWorkspaceProjectionSpace_V1 } from '@ibgib/web-gib/dist/witness/space/web-in-memory-workspace-projection-space/web-in-memory-workspace-projection-space-v1.mjs';
11
11
  import { InnerSpace_V1 } from '@ibgib/core-gib/dist/witness/space/inner-space/inner-space-v1.mjs';
12
12
  import { DEFAULT_INNER_SPACE_DATA_V1 } from '@ibgib/core-gib/dist/witness/space/inner-space/inner-space-types.mjs';
13
- import { getB2tFSBranchSpaceName } from '@ibgib/core-gib/dist/vcs/branch/branch-helper.mjs';
14
- import { VcsRepository } from '@ibgib/core-gib/dist/vcs/vcs-repository.mjs';
15
- import { VCS_DEFAULT_FOLDER_NAME } from '@ibgib/core-gib/dist/vcs/vcs-core-constants.mjs';
13
+ import { getB2tFSBranchSpaceName } from '@ibgib/core-gib/dist/cosmology/branching/branch/branch-helpers.mjs';
14
+ import { VcsRepository } from '@ibgib/core-gib/dist/cosmology/branching/branching-facade.mjs';
15
+ import { VCS_DEFAULT_FOLDER_NAME } from '@ibgib/core-gib/dist/cosmology/branching/branching-constants.mjs';
16
16
 
17
17
  import { devLog, lc } from './common.mjs';
18
- import { B2TFS_BRANCH_DEFAULT_NAME } from '@ibgib/core-gib/dist/vcs/branch/branch-constants.mjs';
18
+ import { B2TFS_BRANCH_DEFAULT_NAME } from '@ibgib/core-gib/dist/cosmology/branching/branch/branch-constants.mjs';
19
19
 
20
20
  interface VcsDevState {
21
21
  backingSpace?: InnerSpace_V1;
@@ -101,11 +101,11 @@ export function initVcsInitButton(): void {
101
101
  wsSpace.setVirtualFile('.ibgibignore', 'node_modules/\n*.log\n');
102
102
 
103
103
  // 6. Initial stage & commit
104
- const indexIbGib = await repo.getIndexIbGib();
105
- const activeBranchSpace = await repo.getActiveBranchSpace(indexIbGib);
104
+ const galaxyIbGib = await repo.getGalaxyIbGib();
105
+ const activeBranchSpace = await repo.getActiveBranchSpace(galaxyIbGib);
106
106
  await repo.add([], {
107
107
  all: true,
108
- indexIbGib,
108
+ galaxyIbGib,
109
109
  activeBranchSpace,
110
110
  repoRoot: repo.repoRoot!,
111
111
  paths: undefined,
@@ -13,9 +13,10 @@
13
13
  <meta name="description"
14
14
  content="space-gib — ibgib durable storage and SaaS provider. Store, retrieve, and manage ibgib data in a decentralized, content-addressed space." />
15
15
  <title>space-gib · ibgib.space</title>
16
- <link rel="stylesheet" type="text/css" href="style.css">
17
- <script type="module" src="script.mjs" defer></script>
18
- <script type="module" src="index.mjs" defer></script>
16
+ <base href="/" />
17
+ <link rel="stylesheet" type="text/css" href="/style.css">
18
+ <script type="module" src="/script.mjs" defer></script>
19
+ <script type="module" src="/index.mjs" defer></script>
19
20
  </head>
20
21
 
21
22
  <body>
@@ -50,28 +51,203 @@
50
51
  <div id="app-root" class="app-root">
51
52
 
52
53
  <!-- Header Panel -->
53
- <header id="header-panel" class="header-panel">
54
+ <header id="header-panel" class="header-panel pre-bang-hidden">
54
55
  <div class="header-content">
55
- <button id="btn-left-panel-toggle" class="panel-toggle-btn" aria-label="Toggle Left Panel">☰</button>
56
- <a id="space-gib-title-link" href="/" class="brand-link">
57
- <span class="brand-icon">◈</span>
58
- <span class="brand-name">🌌 space<span class="brand-accent">-</span>gib 🌌</span>
56
+ <button id="btn-left-panel-toggle" class="panel-toggle-btn" aria-label="Toggle Left Panel"
57
+ title="Toggle Left Panel"><span class="reflected-icon">◨</span></button>
58
+ <a id="space-gib-title-link" href="/" class="brand-link" title="ibgib.space (Return to Polycosmos)">
59
+ <span class="brand-name">ibgib.space</span>
59
60
  </a>
60
- <nav class="header-nav" aria-label="Main navigation">
61
- <a href="/docs" class="nav-link">Docs</a>
62
- <a href="/api" class="nav-link">API</a>
63
- </nav>
61
+ <div class="header-breadcrumbs" id="header-breadcrumbs">
62
+ <span class="breadcrumb-sep">|</span>
63
+ <button id="btn-header-polycosmos" class="breadcrumb-btn polycosmos-btn" type="button"
64
+ title="Polycosmos (All Projects)">
65
+ <span class="breadcrumb-icon">💥</span>
66
+ </button>
67
+ <span class="breadcrumb-sep" id="header-breadcrumb-cosmos-sep">|</span>
68
+ <div class="cosmos-dropdown-wrapper" id="header-cosmos-wrapper">
69
+ <button id="btn-header-cosmos-select" class="breadcrumb-btn cosmos-select-btn" type="button"
70
+ title="Switch Cosmos Project">
71
+ <span class="breadcrumb-icon">🌌</span>
72
+ <span class="breadcrumb-label" id="header-active-cosmos-name">Cosmos 1</span>
73
+ <span class="dropdown-arrow">▾</span>
74
+ </button>
75
+ <div id="header-cosmos-menu" class="header-dropdown-menu hidden">
76
+ <!-- Dynamically populated list of cosmoses -->
77
+ </div>
78
+ </div>
79
+ <span id="header-temp-badge" class="header-temp-badge" style="display:none;" title="This workspace is temporary and lives purely in-memory in this browser session.">✨ In-Memory (Temporary)</span>
80
+ </div>
81
+
82
+ <!-- Dead-Center Pitch / Investment Button (~90% header height, gold glow) -->
83
+ <button id="btn-header-pitch" class="header-pitch-btn" type="button"
84
+ title="Invest in space-gib (Pitch Deck &amp; Vision)">
85
+ <span class="pitch-btn-emoji">💰</span>
86
+ </button>
87
+
88
+ <!-- Clone Button -->
89
+ <button id="btn-header-clone" class="header-clone-btn" type="button"
90
+ title="Clone / Export Workspace">
91
+ <span class="clone-btn-icon">⤓</span>
92
+ <span class="clone-btn-label">Clone</span>
93
+ </button>
94
+
64
95
  <div id="identity-header-container"></div>
65
96
  <button id="btn-right-panel-toggle" class="panel-toggle-btn" aria-label="Toggle Right Panel">◨</button>
66
97
  </div>
67
98
  </header>
68
99
 
100
+ <!-- In-Memory Playground Warning Banner -->
101
+ <div id="playground-banner" class="playground-banner hidden">
102
+ <div class="playground-banner-content">
103
+ <span class="playground-banner-icon">✨</span>
104
+ <span class="playground-banner-text">
105
+ <strong>Playground Mode:</strong> This workspace is in-memory and ephemeral. Changes and deep links are session-local.
106
+ </span>
107
+ <div class="playground-banner-actions">
108
+ <button id="btn-banner-create-identity" class="playground-banner-action-btn" type="button">
109
+ Sign In / Create Account
110
+ </button>
111
+ </div>
112
+ </div>
113
+ </div>
114
+
69
115
  <!-- Middle Content Row -->
70
116
  <div class="middle-row">
71
- <!-- Left Panel -->
117
+ <!-- Activity Bar (Cosmos Rail: Cosmos at Top, Dynamic App Spaces below) -->
118
+ <nav id="activity-bar" class="activity-bar collapsed" aria-label="Cosmos Activity Bar">
119
+ <div class="activity-bar-top">
120
+ <!-- Polycosmos Overview Button (All Projects) -->
121
+ <button id="activity-btn-polycosmos" class="activity-bar-btn activity-polycosmos-btn" type="button"
122
+ title="Polycosmos (All Projects)">
123
+ <span class="activity-icon">💥</span>
124
+ <span class="activity-label">Bang</span>
125
+ </button>
126
+
127
+ <!-- Cosmos Project Root / Navigation Button -->
128
+ <button id="activity-btn-cosmos" class="activity-bar-btn activity-cosmos-btn" type="button"
129
+ title="Cosmos Project &amp; Navigation">
130
+ <span class="activity-icon">🌌</span>
131
+ <span class="activity-label">Cosmos</span>
132
+ </button>
133
+
134
+ <div class="activity-divider"></div>
135
+
136
+ <!-- Dynamic Spaces Container (Incremental Spaces added from Cosmos) -->
137
+ <div id="activity-spaces-container" class="activity-spaces-container">
138
+ <!-- Dynamically populated space buttons appear here -->
139
+ </div>
140
+ </div>
141
+
142
+ <div class="activity-bar-bottom">
143
+ <button id="activity-btn-settings" class="activity-bar-btn" type="button" title="Global Settings">
144
+ <span class="activity-icon">⚙️</span>
145
+ </button>
146
+ </div>
147
+ </nav>
148
+
149
+ <!-- Left Panel (Primary Side Bar for active space) -->
72
150
  <aside id="left-panel" class="side-panel left-panel collapsed">
73
- <div class="panel-content-inner">
74
- <p class="placeholder-text">Left Panel Content</p>
151
+ <div class="panel-content-inner left-panel-content">
152
+ <!-- Polycosmos Overview & Projects List (Active when Polycosmos 💥 is clicked) -->
153
+ <div id="left-panel-polycosmos-view" class="space-side-view" style="display: none;">
154
+ <div class="side-view-header">
155
+ <span class="side-view-title">
156
+ <span class="side-icon">💥</span>
157
+ Polycosmos
158
+ </span>
159
+ <div class="side-view-actions">
160
+ <button id="btn-side-new-cosmos" class="side-icon-btn" type="button"
161
+ title="New Cosmos (Big Bang)">+</button>
162
+ </div>
163
+ </div>
164
+
165
+ <div class="cosmos-meta-card">
166
+ <div class="cosmos-meta-row">
167
+ <span class="meta-label">All Cosmoses:</span>
168
+ <span class="meta-val" id="polycosmos-total-count">0</span>
169
+ </div>
170
+ </div>
171
+
172
+ <div class="cosmos-spaces-summary">
173
+ <div class="summary-header">
174
+ <span class="summary-title">Cosmos Projects</span>
175
+ </div>
176
+ <div id="polycosmos-projects-list" class="cosmos-spaces-list">
177
+ <!-- Dynamically rendered list of cosmos projects -->
178
+ </div>
179
+ </div>
180
+ </div>
181
+
182
+ <!-- Cosmos Project Overview & Settings (Active when Cosmos 🌌 is clicked) -->
183
+ <div id="left-panel-cosmos-view" class="space-side-view">
184
+ <div class="side-view-header">
185
+ <span class="side-view-title">
186
+ <span class="side-icon">🌌</span>
187
+ Cosmos Settings
188
+ </span>
189
+ <div class="side-view-actions">
190
+ <button id="btn-side-add-space" class="side-icon-btn" type="button"
191
+ title="Add Space to Cosmos">+</button>
192
+ <button id="btn-side-cosmos-settings" class="side-icon-btn" type="button"
193
+ title="Cosmos Project Settings">⚙️</button>
194
+ </div>
195
+ </div>
196
+
197
+ <div class="cosmos-meta-card">
198
+ <div class="cosmos-meta-row">
199
+ <span class="meta-label">Cosmos:</span>
200
+ <span class="meta-val" id="cosmos-project-name">my-cosmos</span>
201
+ </div>
202
+ <div class="cosmos-meta-row">
203
+ <span class="meta-label">Topology:</span>
204
+ <span class="meta-val">Decentralized Project</span>
205
+ </div>
206
+ </div>
207
+
208
+ <div class="cosmos-spaces-summary">
209
+ <div class="summary-header">
210
+ <span class="summary-title">Attached Spaces</span>
211
+ <span class="summary-counter" id="cosmos-spaces-count">0</span>
212
+ </div>
213
+ <div id="cosmos-spaces-list" class="cosmos-spaces-list">
214
+ <p class="empty-list-note">No spaces added yet.<br>Click Code or Text in Cosmos to attach a space.</p>
215
+ </div>
216
+ </div>
217
+ </div>
218
+
219
+ <!-- Code Spaces View (Active when a Code Space button is selected) -->
220
+ <div id="left-panel-code-view" class="space-side-view" style="display: none;">
221
+ <div class="side-view-header">
222
+ <span class="side-view-title">
223
+ <span class="side-icon">&lt;/&gt;</span>
224
+ <span id="left-code-space-title">Code Space 1</span>
225
+ </span>
226
+ <div class="side-view-actions">
227
+ <button id="btn-side-new-space" class="side-icon-btn" type="button"
228
+ title="Initialize New Space">+</button>
229
+ <button id="btn-side-clone-space" class="side-icon-btn" type="button"
230
+ title="Clone Remote Space">⬇</button>
231
+ </div>
232
+ </div>
233
+
234
+ <!-- File Explorer Container (Web Component injected dynamically) -->
235
+ <div id="code-file-explorer-container" class="code-file-explorer-container"></div>
236
+ <!-- Resizer between Explorer and Changes -->
237
+ <div id="resizer-explorer-changes" class="accordion-resizer" title="Drag to resize, double-click to reset"></div>
238
+ <!-- Changes / Staging Accordion Container (Web Component injected dynamically) -->
239
+ <div id="code-changes-container" class="code-changes-container"></div>
240
+ <!-- Resizer between Changes and Timeline -->
241
+ <div id="resizer-changes-timeline" class="accordion-resizer" title="Drag to resize, double-click to reset"></div>
242
+ <!-- Timeline Container (Web Component injected dynamically) -->
243
+ <div id="code-timeline-container" class="code-timeline-container"></div>
244
+ </div>
245
+
246
+ <!-- Text Spaces View (Active when a Text Space button is selected) -->
247
+ <div id="left-panel-text-view" class="space-side-view" style="display: none;">
248
+ <!-- Notes Explorer Container (Web Component injected dynamically) -->
249
+ <div id="notes-explorer-container" class="notes-explorer-container"></div>
250
+ </div>
75
251
  </div>
76
252
  </aside>
77
253
 
@@ -81,17 +257,12 @@
81
257
  <!-- Center Panel -->
82
258
  <main id="center-panel" class="center-panel">
83
259
  <div id="center-panel-content" class="center-panel-content">
84
- <section class="hero-section">
85
- <div class="hero-glyph" aria-hidden="true">◈</div>
86
- <h1 class="hero-title">space-gib</h1>
87
- <p class="hero-tagline">
88
- Durable, content-addressed ibgib storage.<br>
89
- Your data, your keystone, your space.
90
- </p>
91
- <div class="cta-row">
92
- <a href="/docs" class="cta-btn cta-secondary">Learn More</a>
93
- </div>
94
- </section>
260
+ <!-- Dynamic IbGib Web Components (space-gib-cosmos-navigator, space-gib-code-editor, space-gib-pitch, ibgib-identity-manager, etc.) are injected directly here via componentSvc.inject() -->
261
+ </div>
262
+
263
+ <!-- COLLAPSIBLE DEV TOOLS & ENGINE STATUS (Permanently hidden, kept for dev diagnostic tests) -->
264
+ <details id="dev-tools-collapsible" class="dev-tools-collapsible" style="display: none !important;">
265
+ <summary class="dev-tools-summary">🛠️ Developer Diagnostics &amp; Engine Status</summary>
95
266
 
96
267
  <!-- Status / health indicator -->
97
268
  <section class="status-section" id="status-section" aria-live="polite">
@@ -286,7 +457,7 @@
286
457
 
287
458
  <pre id="dev-panel-log" class="dev-panel-log" aria-live="polite" aria-label="Dev log"></pre>
288
459
  </section>
289
- </div>
460
+ </details>
290
461
  </main>
291
462
 
292
463
  <!-- Right Resizer -->
@@ -294,22 +465,28 @@
294
465
 
295
466
  <!-- Right Panel -->
296
467
  <aside id="right-panel" class="side-panel right-panel collapsed">
297
- <div class="panel-content-inner">
298
- <p class="placeholder-text">Right Panel Content</p>
468
+ <div class="panel-content-inner right-panel-content">
469
+ <!-- Code Space Chat / Companion Notes View Container (Web Component injected dynamically) -->
470
+ <div id="code-chat-view-container" class="code-chat-view-container"></div>
471
+ <!-- Notes Mode Contextual Inspector Container (Web Component injected dynamically) -->
472
+ <div id="notes-inspector-container" class="notes-inspector-container" style="display: none;"></div>
299
473
  </div>
300
474
  </aside>
301
475
  </div>
302
476
 
303
477
  <!-- Footer Resizer -->
304
- <div id="footer-resizer" class="resizer resizer-h"></div>
478
+ <div id="footer-resizer" class="resizer resizer-h pre-bang-hidden"></div>
305
479
 
306
480
  <!-- Footer Panel -->
307
- <footer id="footer-panel" class="footer-panel">
481
+ <footer id="footer-panel" class="footer-panel pre-bang-hidden">
308
482
  <p class="footer-text">
309
483
  <span>© ibgib contributors</span> ·
310
484
  <a href="https://ibgib.space" class="footer-link">ibgib.space</a> ·
311
485
  <a href="#" id="link-privacy-policy" class="footer-link">Privacy Policy</a>
312
486
  </p>
487
+ <button id="btn-footer-agent" class="footer-agent-btn" type="button" title="Open Agent Chat">
488
+ <span class="footer-agent-emoji">🤖</span>
489
+ </button>
313
490
  </footer>
314
491
 
315
492
  </div>
@@ -165,19 +165,19 @@
165
165
  </header>
166
166
 
167
167
  <main>
168
- <h1 id="privacypolicy" class="policy-title">Privacy Policy</h1>
168
+ <h1 id="privacy-policy" class="policy-title">Privacy Policy</h1>
169
169
  <p><strong>Status</strong>: DRAFT (Active Development)</p>
170
170
  <p><strong>Effective Date</strong>: August 21, 2026</p>
171
171
  <p><strong>Last Updated</strong>: August 21, 2026</p>
172
172
  <div class="alert-box alert-warning"><div class="alert-icon">⚠️</div><div class="alert-body"><strong>Draft Notice &amp; Active Development Disclaimer</strong>:<br>This Privacy Policy is currently in <strong>draft status</strong>. The <code>ibGib</code> platform, underlying cryptographic keystone engine, and decentralized data graph architecture are under <strong>active research and development</strong>. This document expresses our architectural intent, privacy commitments, and operational principles; however, as the technology is actively evolving, certain features, administrative tooling, and data workflows described herein may be experimental, partially implemented, or subject to change.</div></div>
173
173
  <hr class="divider">
174
- <h2 id="1introductionovervie" class="policy-h2">1. Introduction &amp; Overview</h2>
174
+ <h2 id="1-introduction--overview" class="policy-h2">1. Introduction &amp; Overview</h2>
175
175
  <p>Welcome to <strong>ibGib</strong>. We are committed to transparency, cryptographic self-sovereignty, and user privacy.</p>
176
176
  <p>This Privacy Policy explains how <code>ibGib</code> (including <code>ibgib.space</code>, <code>ibgib.com</code>, and related open-source applications in this monorepo) collects, uses, stores, and protects your information when you interact with our network, services, and applications.</p>
177
177
  <div class="alert-box alert-important"><div class="alert-icon">ℹ️</div><div class="alert-body"><strong>Summary for Everyone</strong>:<br>* <strong>Public Directory</strong>: Just like a public PGP key or public DNS record, your chosen <strong>username</strong>, <strong>registered email address</strong>, and <strong>identity keystone</strong> are part of the public graph so people and your devices can find and authenticate you.<br>* <strong>No Passwords on the Wire</strong>: Your master passphrase, biometric data (Touch ID / Face ID / Windows Hello), and physical security keys (YubiKeys) <strong>never</strong> leave your local device.<br>* <strong>No Data Selling</strong>: We do <strong>not</strong> sell, rent, monetize, or share your personal data with third-party advertisers or data brokers.<br>* <strong>Standard Transport Security</strong>: All communications between your devices and our servers operate over industry-standard <strong>TLS 1.3 / HTTPS</strong> encryption.</div></div>
178
178
  <hr class="divider">
179
- <h2 id="2categoriesofinforma" class="policy-h2">2. Categories of Information We Collect</h2>
180
- <h3 id="aidentitypublicdirec" class="policy-h3">A. Identity &amp; Public Directory Data</h3>
179
+ <h2 id="2-categories-of-information-we-collect" class="policy-h2">2. Categories of Information We Collect</h2>
180
+ <h3 id="a-identity--public-directory-data" class="policy-h3">A. Identity &amp; Public Directory Data</h3>
181
181
  <p>When you create an account or link authentication methods, the following information is recorded in your identity keystone:</p>
182
182
  <ul>
183
183
  <li><strong>Chosen Username</strong>: A human-readable identifier (e.g. <code>alice</code>).</li>
@@ -185,7 +185,7 @@
185
185
  <li><strong>Public Keystone DAG Addresses &amp; Challenge Hashes</strong>: Cryptographic addresses and mathematical challenge hashes (<code class="math">H = \text{Hash}(S)</code>) that define your identity's evolution timeline.</li>
186
186
  <li><strong>Registered Device Delegate Tags</strong>: Public labels for devices authorized to sync on your behalf (e.g. <code>pwd-alice-desk-a9a0</code>, <code>passkey-mobile-b4c1</code>).</li>
187
187
  </ul>
188
- <h3 id="btechnicalconnection" class="policy-h3">B. Technical, Connection &amp; Log Data</h3>
188
+ <h3 id="b-technical-connection--log-data" class="policy-h3">B. Technical, Connection &amp; Log Data</h3>
189
189
  <p>When accessing our hosted web nodes, standard operational connection data may be logged:</p>
190
190
  <ul>
191
191
  <li><strong>Internet Protocol (IP) Address</strong> and approximate geographic origin.</li>
@@ -193,15 +193,15 @@
193
193
  <li><strong>User-Agent Strings</strong>: Browser type, operating system, and client application version.</li>
194
194
  <li><strong>Retention</strong>: Operational and access logs are retained for a bounded window (typically <strong>30 to 90 days</strong>) strictly for system reliability, rate limiting, intrusion detection, and security forensics, after which they are automatically rotated and deleted.</li>
195
195
  </ul>
196
- <h3 id="cworkspaceapplicatio" class="policy-h3">C. Workspace &amp; Application Data</h3>
196
+ <h3 id="c-workspace--application-data" class="policy-h3">C. Workspace &amp; Application Data</h3>
197
197
  <ul>
198
198
  <li><strong>User-Created Content</strong>: Notes, comments, graph nodes, and files stored within your tenant workspace.</li>
199
199
  <li><strong>Storage Status</strong>: Workspace data is stored in tenant-isolated domain spaces. Data in transit is encrypted via TLS 1.3. Data at rest on the server is currently stored unencrypted within your isolated space directory (client-side data encryption is planned as a future capability).</li>
200
200
  </ul>
201
201
  <hr class="divider">
202
- <h2 id="3publicdirectorynatu" class="policy-h2">3. Public Directory Nature of Identity Keystones</h2>
202
+ <h2 id="3-public-directory-nature-of-identity-keystones" class="policy-h2">3. Public Directory Nature of Identity Keystones</h2>
203
203
  <div class="alert-box alert-warning"><div class="alert-icon">⚠️</div><div class="alert-body"><strong>Experimental Architecture Notice</strong>:<br>Identity Keystones are built on an innovative Zero-Knowledge Proof (ZKP) Distributed Ledger Technology (DLT) architecture. While designed to eliminate reliance on central certificate authorities, this technology is experimental. See <a href="#7securityarchitectur">Section 7</a> for detailed security context.</div></div>
204
- <h3 id="innovativezkpdltvsco" class="policy-h3">Innovative ZKP DLT vs. Conventional PKI</h3>
204
+ <h3 id="innovative-zkp-dlt-vs-conventional-pki" class="policy-h3">Innovative ZKP DLT vs. Conventional PKI</h3>
205
205
  <p><code>ibGib</code> is built upon public-key cryptographic principles, but <strong>is not conventional Public Key Infrastructure (PKI)</strong>:</p>
206
206
  <ul>
207
207
  <li>Instead of relying on asymmetric digital signatures (RSA, ECDSA) and centralized X.509 Certificate Authorities (CAs), <code>ibGib</code> identities utilize a <strong>Zero-Knowledge Proof (ZKP) Distributed Ledger Technology (DLT)</strong> architecture with symmetric hash-reveal challenge-response pools.</li>
@@ -212,7 +212,7 @@
212
212
  <li>Hardware biometrics (fingerprints, facial recognition) and security keys operate exclusively within your device's hardware Secure Enclave / TPM via the W3C WebAuthn standard. Raw biometric data is never transmitted over the network or accessible to our servers.</li>
213
213
  </ul>
214
214
  <hr class="divider">
215
- <h2 id="4howweuseyourinforma" class="policy-h2">4. How We Use Your Information</h2>
215
+ <h2 id="4-how-we-use-your-information" class="policy-h2">4. How We Use Your Information</h2>
216
216
  <p>We process personal and cryptographic data solely for the following legitimate purposes:</p>
217
217
  <ol>
218
218
  <li><strong>Identity Resolution &amp; Discovery</strong>: Matching incoming authentication requests and email lookups to the correct tenant domain space.</li>
@@ -222,7 +222,7 @@
222
222
  </ol>
223
223
  <p>We do <strong>not</strong> use your data for profiling, automated decision-making, or third-party targeted advertising.</p>
224
224
  <hr class="divider">
225
- <h2 id="5third-partyservicep" class="policy-h2">5. Third-Party Service Providers</h2>
225
+ <h2 id="5-third-party-service-providers" class="policy-h2">5. Third-Party Service Providers</h2>
226
226
  <p>We utilize minimal third-party services essential to core platform functionality:</p>
227
227
  <ul>
228
228
  <li><strong>Single Sign-On (SSO) Authentication (Optional)</strong>:</li>
@@ -233,29 +233,29 @@
233
233
  <li><strong>Cloud Server &amp; Storage Nodes</strong>: Web nodes, domain space storage, and network routing are hosted on secure cloud infrastructure located in the United States.</li>
234
234
  </ul>
235
235
  <hr class="divider">
236
- <h2 id="6immutabletimelinein" class="policy-h2">6. Immutable Timeline Integrity, Revocations &amp; Data Deletion</h2>
237
- <h3 id="cryptographictimelin" class="policy-h3">Cryptographic Timeline Integrity</h3>
236
+ <h2 id="6-immutable-timeline-integrity-revocations--data-deletion" class="policy-h2">6. Immutable Timeline Integrity, Revocations &amp; Data Deletion</h2>
237
+ <h3 id="cryptographic-timeline-integrity" class="policy-h3">Cryptographic Timeline Integrity</h3>
238
238
  <p><code>ibGib</code> is built on an <strong>append-only, directed acyclic graph (DAG) architecture</strong>. Similar to version control systems (like Git) and cryptographic ledgers (like Bitcoin), timeline records are mathematically linked using cryptographic hashes to ensure data integrity and tamper-evidence. Just as past blocks in a blockchain cannot be modified without destroying cryptographic integrity, historical keystone frames remain part of the verifiable audit chain.</p>
239
- <h3 id="revocationstombstone" class="policy-h3">Revocations &amp; Tombstones</h3>
239
+ <h3 id="revocations--tombstones" class="policy-h3">Revocations &amp; Tombstones</h3>
240
240
  <p>When you modify your identity permissions—such as unlinking a Google SSO provider or revoking a lost device passkey:</p>
241
241
  <ul>
242
242
  <li>The system publishes a cryptographically signed <strong>tombstone evolution frame</strong> (<code class="math">n \to n+1</code>).</li>
243
243
  <li>This frame officially revokes that authority and unlinks the provider from server-side reverse lookup indices.</li>
244
244
  </ul>
245
- <h3 id="contenttakedownsfull" class="policy-h3">Content Takedowns &amp; Full Account Erasure</h3>
245
+ <h3 id="content-takedowns--full-account-erasure" class="policy-h3">Content Takedowns &amp; Full Account Erasure</h3>
246
246
  <ol>
247
247
  <li><strong>Content &amp; Asset Takedowns</strong>: Standalone content nodes and binary file payloads can be unlinked, de-indexed, or removed from server storage upon authorized request or valid legal takedown without compromising structural timeline history.</li>
248
248
  <li><strong>Complete Tenant Erasure</strong>: If you request complete account deletion, your entire tenant domain space (including all hosted keystones, delegate frames, and stored data) and reverse email index entries will be permanently purged and removed from server storage.</li>
249
249
  <li><strong>Local Device Data Control</strong>: You maintain full control over all data stored locally on your physical devices. You may clear your local cryptographic tokens, delegates, and cached workspace data at any time via the application settings or by clearing your browser's IndexedDB / local storage.</li>
250
250
  </ol>
251
251
  <hr class="divider">
252
- <h2 id="7securityarchitectur" class="policy-h2">7. Security Architecture &amp; Experimental Protocol Notice</h2>
253
- <h3 id="innovativeexperiment" class="policy-h3">Innovative &amp; Experimental Nature</h3>
252
+ <h2 id="7-security-architecture--experimental-protocol-notice" class="policy-h2">7. Security Architecture &amp; Experimental Protocol Notice</h2>
253
+ <h3 id="innovative--experimental-nature" class="policy-h3">Innovative &amp; Experimental Nature</h3>
254
254
  <p>Identity Keystones, multi-pool challenge-response mechanisms, and decentralized sync delegates represent innovative, experimental cryptographic protocols. While we apply diligent best efforts in cryptanalysis and utilize industry-standard, proven cryptographic primitives (such as SHA-256, SHA-512, AES, and WebAuthn PRF), the composite architecture is actively evolving. Users should evaluate this platform understanding its experimental research nature.</p>
255
- <h3 id="conventionalsecurity" class="policy-h3">Conventional Security Foundations</h3>
255
+ <h3 id="conventional-security-foundations" class="policy-h3">Conventional Security Foundations</h3>
256
256
  <p>All communications, API endpoints, and authentication exchanges between your client devices and our server infrastructure operate strictly over industry-standard <strong>TLS 1.3 / HTTPS</strong> encryption. Server-side data isolation, atomic file indexing, and timing side-channel protections are implemented following standard enterprise security practices.</p>
257
257
  <hr class="divider">
258
- <h2 id="8yourprivacyrightste" class="policy-h2">8. Your Privacy Rights (Texas TDPSA &amp; US State Privacy Laws)</h2>
258
+ <h2 id="8-your-privacy-rights-texas-tdpsa--us-state-privacy-laws" class="policy-h2">8. Your Privacy Rights (Texas TDPSA &amp; US State Privacy Laws)</h2>
259
259
  <p>If you are a resident of Texas (governed by the <strong>Texas Data Privacy and Security Act - TDPSA</strong>) or other jurisdictions with applicable privacy legislation, you have the following rights regarding your personal data:</p>
260
260
  <ul>
261
261
  <li><strong>Right to Know / Access</strong>: You have the right to confirm whether we process your personal data and to access such data.</li>
@@ -265,17 +265,17 @@
265
265
  <li><strong>Right to Opt-Out of Sale / Targeted Advertising</strong>: We do <strong>not</strong> sell your personal data or process it for targeted advertising, so no opt-out is necessary.</li>
266
266
  <li><strong>Right to Non-Discrimination</strong>: We will never discriminate against you, deny services, or alter pricing for exercising your privacy rights.</li>
267
267
  </ul>
268
- <h3 id="howtoexerciseyourrig" class="policy-h3">How to Exercise Your Rights</h3>
268
+ <h3 id="how-to-exercise-your-rights" class="policy-h3">How to Exercise Your Rights</h3>
269
269
  <p>To submit a privacy inquiry, request data export, or request permanent deletion of your tenant domain space, please contact us using the information in Section 9 below. We will verify your identity (using your registered email or cryptographic keystone proof) and respond within the statutory timeframe (typically 45 days).</p>
270
270
  <hr class="divider">
271
- <h2 id="9contactinformationp" class="policy-h2">9. Contact Information &amp; Policy Updates</h2>
272
- <h3 id="contactus" class="policy-h3">Contact Us</h3>
271
+ <h2 id="9-contact-information--policy-updates" class="policy-h2">9. Contact Information &amp; Policy Updates</h2>
272
+ <h3 id="contact-us" class="policy-h3">Contact Us</h3>
273
273
  <p>If you have questions, comments, or requests regarding this Privacy Policy or our data handling practices, please reach out to us:</p>
274
274
  <ul>
275
275
  <li><strong>Open-Source Packages</strong>: Published on <strong>npm</strong> under the <code>@ibgib</code> scope.</li>
276
276
  <li><strong>Email / Privacy Inquiries</strong>: <code>ibgib.info@gmail.com</code></li>
277
277
  </ul>
278
- <h3 id="updatestothispolicy" class="policy-h3">Updates to This Policy</h3>
278
+ <h3 id="updates-to-this-policy" class="policy-h3">Updates to This Policy</h3>
279
279
  <p>We may update this Privacy Policy from time to time to reflect architectural advancements, legal requirements, or operational changes. When changes are made, the "Last Updated" date at the top of this document will be updated. We encourage you to review this policy periodically.</p>
280
280
  </main>
281
281