Ferrell Synthetic Intelligence commited on
Commit ·
dd6c84a
1
Parent(s): 4407241
Add offline community hub
Browse files- README.md +2 -0
- app.js +16 -1
- community/README.md +2 -0
- community/store-schema.json +15 -0
- index.html +8 -0
README.md
CHANGED
|
@@ -49,6 +49,8 @@ The original AIDE Developer's Credo, inspired by broad Mandalorian discipline th
|
|
| 49 |
|
| 50 |
The local CaseFile workflow in the UI creates a private case, imports local evidence, records SHA-256 receipts, and extracts date anchors before model analysis. See `community/journal-desk.md` and `community/casefile-schema.json`.
|
| 51 |
|
|
|
|
|
|
|
| 52 |
## Status
|
| 53 |
|
| 54 |
This is a pre-production engineering release. The Liquid checkpoint is not included until its exact artifact, license, checksum, and evaluation are confirmed. The Qwen weight is downloaded separately from its official repository and should be verified before offline use.
|
|
|
|
| 49 |
|
| 50 |
The local CaseFile workflow in the UI creates a private case, imports local evidence, records SHA-256 receipts, and extracts date anchors before model analysis. See `community/journal-desk.md` and `community/casefile-schema.json`.
|
| 51 |
|
| 52 |
+
The Community Hub provides an offline cache for projects, issues, discussions, and marketplace metadata. Sync remains disabled until an encrypted transport is explicitly configured.
|
| 53 |
+
|
| 54 |
## Status
|
| 55 |
|
| 56 |
This is a pre-production engineering release. The Liquid checkpoint is not included until its exact artifact, license, checksum, and evaluation are confirmed. The Qwen weight is downloaded separately from its official repository and should be verified before offline use.
|
app.js
CHANGED
|
@@ -87,7 +87,14 @@ async function importModel(model) {
|
|
| 87 |
appendLog('MODEL PACK', `${model.name} imported locally. SHA-256: ${hash}. Runtime attachment is still required before inference.`);
|
| 88 |
renderModels();
|
| 89 |
selectModel(model);
|
| 90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
input.click();
|
| 92 |
}
|
| 93 |
|
|
@@ -204,6 +211,12 @@ function renderCasefile() {
|
|
| 204 |
list.innerHTML = state.casefile.evidence.map(item => `<div style="border-left:2px solid #58c7ff;padding-left:5px;margin-top:6px"><b>${esc(item.name)}</b><br>${esc(item.bytes)} bytes | SHA-256 ${esc(item.hash.slice(0, 12))}...<br>dates: ${esc(item.dates.join(', ') || 'none detected')}</div>`).join('');
|
| 205 |
}
|
| 206 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 207 |
async function digestFile(file) {
|
| 208 |
const buffer = await file.arrayBuffer();
|
| 209 |
const digest = await crypto.subtle.digest('SHA-256', buffer);
|
|
@@ -263,6 +276,8 @@ async function boot() {
|
|
| 263 |
appendLog('CASEFILE', `Created ${state.casefile.id}. Boundary: private. Evidence remains on this device.`);
|
| 264 |
};
|
| 265 |
$('#evidence-input').onchange = importEvidence;
|
|
|
|
|
|
|
| 266 |
$('#input').onkeydown = event => { if (event.key === 'Enter') sendChat(); };
|
| 267 |
}
|
| 268 |
|
|
|
|
| 87 |
appendLog('MODEL PACK', `${model.name} imported locally. SHA-256: ${hash}. Runtime attachment is still required before inference.`);
|
| 88 |
renderModels();
|
| 89 |
selectModel(model);
|
| 90 |
+
};
|
| 91 |
+
|
| 92 |
+
const communitySeed = {
|
| 93 |
+
projects: [{ title: 'AIDE Sovereign Workbench', detail: 'Local-first IDE and model harness', boundary: 'private' }],
|
| 94 |
+
issues: [{ title: 'Connect LSP language servers', detail: 'Add the first daemon-managed language server adapter', status: 'open' }],
|
| 95 |
+
discussions: [{ title: 'Welcome to the local developer network', detail: 'No account, relay, or network required', status: 'local' }],
|
| 96 |
+
marketplace: [{ title: 'No marketplace listings yet', detail: 'Publish signed artifacts only after license and checksum review', status: 'empty' }]
|
| 97 |
+
};
|
| 98 |
input.click();
|
| 99 |
}
|
| 100 |
|
|
|
|
| 211 |
list.innerHTML = state.casefile.evidence.map(item => `<div style="border-left:2px solid #58c7ff;padding-left:5px;margin-top:6px"><b>${esc(item.name)}</b><br>${esc(item.bytes)} bytes | SHA-256 ${esc(item.hash.slice(0, 12))}...<br>dates: ${esc(item.dates.join(', ') || 'none detected')}</div>`).join('');
|
| 212 |
}
|
| 213 |
|
| 214 |
+
function renderCommunity(tab = 'projects') {
|
| 215 |
+
const entries = communitySeed[tab] || [];
|
| 216 |
+
$('#community-feed').innerHTML = `<div style="color:#72ff9e;margin-bottom:5px">LOCAL CACHE / SYNC OFF</div>${entries.map(entry => `<div style="border-left:2px solid #b277ff;padding-left:5px;margin:5px 0"><b>${esc(entry.title)}</b><br>${esc(entry.detail)}<br><span style="color:#718994">${esc(entry.boundary || entry.status || 'local')}</span></div>`).join('')}`;
|
| 217 |
+
document.querySelectorAll('[data-community-tab]').forEach(button => button.style.color = button.dataset.communityTab === tab ? '#72ff9e' : '#718994');
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
async function digestFile(file) {
|
| 221 |
const buffer = await file.arrayBuffer();
|
| 222 |
const digest = await crypto.subtle.digest('SHA-256', buffer);
|
|
|
|
| 276 |
appendLog('CASEFILE', `Created ${state.casefile.id}. Boundary: private. Evidence remains on this device.`);
|
| 277 |
};
|
| 278 |
$('#evidence-input').onchange = importEvidence;
|
| 279 |
+
document.querySelectorAll('[data-community-tab]').forEach(button => button.onclick = () => renderCommunity(button.dataset.communityTab));
|
| 280 |
+
renderCommunity();
|
| 281 |
$('#input').onkeydown = event => { if (event.key === 'Enter') sendChat(); };
|
| 282 |
}
|
| 283 |
|
community/README.md
CHANGED
|
@@ -18,3 +18,5 @@ This release contains a local node identity primitive, policy, node manifest, an
|
|
| 18 |
Use Git for code history, signed commits for authorship, end-to-end encryption for group data, explicit replication scopes, replaceable relays for reachability, and user-controlled payment adapters. Never put payment custody or moderation authority in the IDE core.
|
| 19 |
|
| 20 |
See `protocol.md` for the encrypted sync, relay, marketplace, and moderation contracts.
|
|
|
|
|
|
|
|
|
| 18 |
Use Git for code history, signed commits for authorship, end-to-end encryption for group data, explicit replication scopes, replaceable relays for reachability, and user-controlled payment adapters. Never put payment custody or moderation authority in the IDE core.
|
| 19 |
|
| 20 |
See `protocol.md` for the encrypted sync, relay, marketplace, and moderation contracts.
|
| 21 |
+
|
| 22 |
+
The Community Hub stores projects, issues, discussions, and marketplace metadata locally first. Its current UI is a private offline cache; it does not claim that peer synchronization or payments are active.
|
community/store-schema.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
| 3 |
+
"title": "AIDE Offline Community Store",
|
| 4 |
+
"type": "object",
|
| 5 |
+
"required": ["schema_version", "sync", "projects", "issues", "discussions", "marketplace"],
|
| 6 |
+
"properties": {
|
| 7 |
+
"schema_version": {"const": "1.0"},
|
| 8 |
+
"sync": {"enum": ["local-only", "invited-encrypted", "public-publish"]},
|
| 9 |
+
"projects": {"type": "array"},
|
| 10 |
+
"issues": {"type": "array"},
|
| 11 |
+
"discussions": {"type": "array"},
|
| 12 |
+
"marketplace": {"type": "array"}
|
| 13 |
+
},
|
| 14 |
+
"additionalProperties": false
|
| 15 |
+
}
|
index.html
CHANGED
|
@@ -55,6 +55,14 @@
|
|
| 55 |
<input id="evidence-input" type="file" multiple accept=".txt,.md,.json,.csv,.html,.log,.xml" hidden>
|
| 56 |
<div id="case-status" style="color:#91c9aa;font:9px/1.7 ui-monospace,monospace;margin-top:8px">No case open.</div>
|
| 57 |
<div id="evidence-list" style="font:9px/1.5 ui-monospace,monospace;color:#9fb8ba;margin-top:5px"></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
</aside>
|
| 59 |
|
| 60 |
<section class="editor-column">
|
|
|
|
| 55 |
<input id="evidence-input" type="file" multiple accept=".txt,.md,.json,.csv,.html,.log,.xml" hidden>
|
| 56 |
<div id="case-status" style="color:#91c9aa;font:9px/1.7 ui-monospace,monospace;margin-top:8px">No case open.</div>
|
| 57 |
<div id="evidence-list" style="font:9px/1.5 ui-monospace,monospace;color:#9fb8ba;margin-top:5px"></div>
|
| 58 |
+
<div class="section-heading divider">COMMUNITY HUB</div>
|
| 59 |
+
<div class="community-tabs">
|
| 60 |
+
<button data-community-tab="projects">PROJECTS</button>
|
| 61 |
+
<button data-community-tab="issues">ISSUES</button>
|
| 62 |
+
<button data-community-tab="discussions">DISCUSSIONS</button>
|
| 63 |
+
<button data-community-tab="marketplace">MARKET</button>
|
| 64 |
+
</div>
|
| 65 |
+
<div id="community-feed" style="font:9px/1.6 ui-monospace,monospace;color:#9fb8ba;margin-top:7px"></div>
|
| 66 |
</aside>
|
| 67 |
|
| 68 |
<section class="editor-column">
|