Ferrell Synthetic Intelligence commited on
Commit
06eb337
·
1 Parent(s): 6f0baaa

Add sovereign community node policy

Browse files
Files changed (4) hide show
  1. app.js +8 -1
  2. community/README.md +18 -0
  3. community/node-manifest.json +23 -0
  4. index.html +4 -1
app.js CHANGED
@@ -1,4 +1,4 @@
1
- const state = { manifest: null, selected: null, files: {
2
  'agent.ts': `import { ChatMessage, ModelAdapter } from './types';
3
  import { LocalModelRouter } from './router';
4
 
@@ -154,6 +154,13 @@ async function boot() {
154
  state.manifest = { models: [] };
155
  appendLog('BOOT', 'Could not load models/manifest.json.', 'warning');
156
  }
 
 
 
 
 
 
 
157
  renderModels();
158
  const firstReady = state.manifest.models.find(model => model.status !== 'pending');
159
  if (firstReady) selectModel(firstReady);
 
1
+ const state = { manifest: null, node: null, selected: null, files: {
2
  'agent.ts': `import { ChatMessage, ModelAdapter } from './types';
3
  import { LocalModelRouter } from './router';
4
 
 
154
  state.manifest = { models: [] };
155
  appendLog('BOOT', 'Could not load models/manifest.json.', 'warning');
156
  }
157
+ try {
158
+ const nodeResponse = await fetch('community/node-manifest.json', { cache: 'no-store' });
159
+ state.node = await nodeResponse.json();
160
+ $('#node-status').innerHTML = `<b>LOCAL-FIRST</b><br>Network: ${esc(state.node.network_default)}<br>Private data: ${esc(state.node.replication.private)}<br>Group sync: ${esc(state.node.capabilities.encrypted_group_sync ? 'enabled' : 'disabled')}`;
161
+ } catch (error) {
162
+ $('#node-status').textContent = 'Node policy unavailable.';
163
+ }
164
  renderModels();
165
  const firstReady = state.manifest.models.find(model => model.status !== 'pending');
166
  if (firstReady) selectModel(firstReady);
community/README.md ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # AIDE Sovereign Community Node
2
+
3
+ The community layer is local-first and disabled by default. A user can develop privately without an account, server, relay, payment provider, or network connection.
4
+
5
+ ## Boundaries
6
+
7
+ - `private`: local-only repository, prompts, traces, credentials, and drafts.
8
+ - `group`: explicitly invited collaborators; encrypted sync and signed changes are required.
9
+ - `public`: deliberately published repository, discussion, issue, or release artifact.
10
+ - `marketplace`: public artifact plus license, price or bounty terms, checksums, and payout provider disclosure.
11
+
12
+ ## Current Status
13
+
14
+ This release contains the policy and node manifest only. Peer sync, relays, payments, and moderation services are not implemented and must not be represented as available. The UI must show those capabilities as disabled until their adapters are installed and audited.
15
+
16
+ ## Required Design
17
+
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.
community/node-manifest.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": "1.0",
3
+ "node_mode": "local-first",
4
+ "node_id": "generated-on-first-run",
5
+ "network_default": "disabled",
6
+ "data_boundaries": ["private", "group", "public", "marketplace"],
7
+ "replication": {
8
+ "private": "never",
9
+ "group": "invitation-and-encryption-required",
10
+ "public": "explicit-publish-only",
11
+ "marketplace": "explicit-publish-and-license-required"
12
+ },
13
+ "capabilities": {
14
+ "local_git": true,
15
+ "encrypted_group_sync": false,
16
+ "direct_peer_discovery": false,
17
+ "relay": false,
18
+ "payments": false,
19
+ "moderation": "local-block-mute-report"
20
+ },
21
+ "policy": "No source, prompts, model traces, credentials, or private project metadata leave this device unless the user changes the boundary and approves the action.",
22
+ "future_adapters": ["encrypted-peer-sync", "user-selected-relay", "payment-provider", "artifact-moderation"]
23
+ }
index.html CHANGED
@@ -22,6 +22,7 @@
22
  <button class="activity-button" title="Source control">GIT</button>
23
  <button class="activity-button" title="Run and debug">RUN</button>
24
  <button class="activity-button" title="Model lanes">AI</button>
 
25
  <span></span>
26
  <button class="activity-button" title="Settings">CFG</button>
27
  </nav>
@@ -45,6 +46,8 @@
45
  <li>Writes require approval</li>
46
  <li>Model output is untrusted</li>
47
  </ul>
 
 
48
  </aside>
49
 
50
  <section class="editor-column">
@@ -55,7 +58,7 @@
55
  <pre id="code" contenteditable="true" spellcheck="false"></pre>
56
  </div>
57
  <div class="bottom-panel">
58
- <div class="panel-tabs"><b>TERMINAL</b><span>PROBLEMS <em>0</em></span><span>OUTPUT</span><span>COLLABORATION</span></div>
59
  <div id="terminal" class="terminal"><p><b>~/agent-kit $</b> aide runtime status</p><p class="muted">network: disabled | writes: approval required | coordinator: bounded</p><p class="ok">ready: model registry loaded; coding lane awaiting local checkpoint</p><p><b>~/agent-kit $</b> <span class="cursor"></span></p></div>
60
  </div>
61
  <footer class="statusbar"><span>LOCAL ONLY</span><span>GIT main*</span><span>UTF-8</span><span>TypeScript</span><b>READY</b></footer>
 
22
  <button class="activity-button" title="Source control">GIT</button>
23
  <button class="activity-button" title="Run and debug">RUN</button>
24
  <button class="activity-button" title="Model lanes">AI</button>
25
+ <button class="activity-button" title="Sovereign community">NODE</button>
26
  <span></span>
27
  <button class="activity-button" title="Settings">CFG</button>
28
  </nav>
 
46
  <li>Writes require approval</li>
47
  <li>Model output is untrusted</li>
48
  </ul>
49
+ <div class="section-heading divider">LOCAL NODE</div>
50
+ <div id="node-status" class="node-status" style="border:1px solid #285344;background:#0d211c;color:#91c9aa;padding:9px;font:9px/1.7 ui-monospace,monospace">Loading node policy...</div>
51
  </aside>
52
 
53
  <section class="editor-column">
 
58
  <pre id="code" contenteditable="true" spellcheck="false"></pre>
59
  </div>
60
  <div class="bottom-panel">
61
+ <div class="panel-tabs"><b>TERMINAL</b><span>PROBLEMS <em>0</em></span><span>OUTPUT</span><span>COLLABORATION</span><span>COMMUNITY</span></div>
62
  <div id="terminal" class="terminal"><p><b>~/agent-kit $</b> aide runtime status</p><p class="muted">network: disabled | writes: approval required | coordinator: bounded</p><p class="ok">ready: model registry loaded; coding lane awaiting local checkpoint</p><p><b>~/agent-kit $</b> <span class="cursor"></span></p></div>
63
  </div>
64
  <footer class="statusbar"><span>LOCAL ONLY</span><span>GIT main*</span><span>UTF-8</span><span>TypeScript</span><b>READY</b></footer>