instar 1.3.1651 → 1.3.1653
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.
- package/dashboard/console/allowed.js +13 -2
- package/dashboard/console/console.css +1 -1
- package/dashboard/console/services-model.js +44 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +10 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install/engine.d.ts +2 -14
- package/dist/commands/install/engine.d.ts.map +1 -1
- package/dist/commands/install/engine.js.map +1 -1
- package/dist/commands/install.d.ts +2 -10
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +15 -147
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +151 -7
- package/dist/commands/server.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +3 -0
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/slack-cli.d.ts.map +1 -1
- package/dist/commands/slack-cli.js +2 -1
- package/dist/commands/slack-cli.js.map +1 -1
- package/dist/core/BackupManager.d.ts.map +1 -1
- package/dist/core/BackupManager.js +1 -0
- package/dist/core/BackupManager.js.map +1 -1
- package/dist/core/CodexLifecycleProductionComposition.d.ts +1 -1
- package/dist/core/CodexLifecycleProductionComposition.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +14 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +85 -3
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SessionManager.d.ts +53 -0
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +217 -6
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/appInboundDispatch.d.ts +5 -0
- package/dist/core/appInboundDispatch.d.ts.map +1 -1
- package/dist/core/appInboundDispatch.js +5 -1
- package/dist/core/appInboundDispatch.js.map +1 -1
- package/dist/core/memorySandboxProbe.d.ts +19 -0
- package/dist/core/memorySandboxProbe.d.ts.map +1 -0
- package/dist/core/memorySandboxProbe.js +73 -0
- package/dist/core/memorySandboxProbe.js.map +1 -0
- package/dist/core/memorySessionPolicy.d.ts +44 -0
- package/dist/core/memorySessionPolicy.d.ts.map +1 -0
- package/dist/core/memorySessionPolicy.js +122 -0
- package/dist/core/memorySessionPolicy.js.map +1 -0
- package/dist/core/types.d.ts +10 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/data/stageBCertifiedSet.d.ts +12 -0
- package/dist/data/stageBCertifiedSet.d.ts.map +1 -1
- package/dist/data/stageBCertifiedSet.js +16 -0
- package/dist/data/stageBCertifiedSet.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/dist/install/doorSteps.d.ts +72 -0
- package/dist/install/doorSteps.d.ts.map +1 -0
- package/dist/install/doorSteps.js +162 -0
- package/dist/install/doorSteps.js.map +1 -0
- package/dist/{commands/install → install}/doors.d.ts +4 -4
- package/dist/install/doors.d.ts.map +1 -0
- package/dist/{commands/install → install}/doors.js +6 -6
- package/dist/install/doors.js.map +1 -0
- package/dist/messaging/SpawnRequestManager.d.ts +2 -0
- package/dist/messaging/SpawnRequestManager.d.ts.map +1 -1
- package/dist/messaging/SpawnRequestManager.js +3 -0
- package/dist/messaging/SpawnRequestManager.js.map +1 -1
- package/dist/messaging/TelegramAdapter.d.ts +20 -0
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +69 -7
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/messaging/slack/ChannelManager.d.ts +3 -1
- package/dist/messaging/slack/ChannelManager.d.ts.map +1 -1
- package/dist/messaging/slack/ChannelManager.js +5 -2
- package/dist/messaging/slack/ChannelManager.js.map +1 -1
- package/dist/messaging/slack/SlackAdapter.d.ts +14 -0
- package/dist/messaging/slack/SlackAdapter.d.ts.map +1 -1
- package/dist/messaging/slack/SlackAdapter.js +26 -0
- package/dist/messaging/slack/SlackAdapter.js.map +1 -1
- package/dist/monitoring/TriageOrchestrator.d.ts +1 -0
- package/dist/monitoring/TriageOrchestrator.d.ts.map +1 -1
- package/dist/monitoring/TriageOrchestrator.js +5 -0
- package/dist/monitoring/TriageOrchestrator.js.map +1 -1
- package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
- package/dist/native/instar-desktop-host +0 -0
- package/dist/recommended/catalog.d.ts +35 -0
- package/dist/recommended/catalog.d.ts.map +1 -0
- package/dist/recommended/catalog.js +131 -0
- package/dist/recommended/catalog.js.map +1 -0
- package/dist/recommended/offerPrerequisites.d.ts +16 -0
- package/dist/recommended/offerPrerequisites.d.ts.map +1 -0
- package/dist/recommended/offerPrerequisites.js +84 -0
- package/dist/recommended/offerPrerequisites.js.map +1 -0
- package/dist/recommended/serviceIds.d.ts.map +1 -1
- package/dist/recommended/serviceIds.js +2 -4
- package/dist/recommended/serviceIds.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +7 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/scheduler/JobScheduler.d.ts +2 -0
- package/dist/scheduler/JobScheduler.d.ts.map +1 -1
- package/dist/scheduler/JobScheduler.js +8 -1
- package/dist/scheduler/JobScheduler.js.map +1 -1
- package/dist/server/AgentServer.d.ts +2 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +1 -1
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +20 -3
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/memorySessionGuard.d.ts +29 -0
- package/dist/server/memorySessionGuard.d.ts.map +1 -0
- package/dist/server/memorySessionGuard.js +57 -0
- package/dist/server/memorySessionGuard.js.map +1 -0
- package/dist/server/middleware.d.ts +8 -1
- package/dist/server/middleware.d.ts.map +1 -1
- package/dist/server/middleware.js +22 -1
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/mobileCapacityRoutes.d.ts +258 -0
- package/dist/server/mobileCapacityRoutes.d.ts.map +1 -0
- package/dist/server/mobileCapacityRoutes.js +710 -0
- package/dist/server/mobileCapacityRoutes.js.map +1 -0
- package/dist/server/mobileConversationRoutes.js +1 -1
- package/dist/server/mobileConversationRoutes.js.map +1 -1
- package/dist/server/mobileOpsRoutes.d.ts +120 -0
- package/dist/server/mobileOpsRoutes.d.ts.map +1 -0
- package/dist/server/mobileOpsRoutes.js +432 -0
- package/dist/server/mobileOpsRoutes.js.map +1 -0
- package/dist/server/mobilePairingRoutes.d.ts.map +1 -1
- package/dist/server/mobilePairingRoutes.js +11 -0
- package/dist/server/mobilePairingRoutes.js.map +1 -1
- package/dist/server/recommendedServiceRoutes.d.ts +1 -0
- package/dist/server/recommendedServiceRoutes.d.ts.map +1 -1
- package/dist/server/recommendedServiceRoutes.js +7 -1
- package/dist/server/recommendedServiceRoutes.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +333 -136
- package/dist/server/routes.js.map +1 -1
- package/dist/threadline/PairingInviteTelegram.d.ts.map +1 -1
- package/dist/threadline/PairingInviteTelegram.js +5 -2
- package/dist/threadline/PairingInviteTelegram.js.map +1 -1
- package/dist/users/MemoryAudience.d.ts +131 -0
- package/dist/users/MemoryAudience.d.ts.map +1 -0
- package/dist/users/MemoryAudience.js +198 -0
- package/dist/users/MemoryAudience.js.map +1 -0
- package/dist/users/MemoryInboundTracker.d.ts +40 -0
- package/dist/users/MemoryInboundTracker.d.ts.map +1 -0
- package/dist/users/MemoryInboundTracker.js +62 -0
- package/dist/users/MemoryInboundTracker.js.map +1 -0
- package/dist/users/MemoryPrivacy.d.ts +132 -0
- package/dist/users/MemoryPrivacy.d.ts.map +1 -0
- package/dist/users/MemoryPrivacy.js +347 -0
- package/dist/users/MemoryPrivacy.js.map +1 -0
- package/dist/users/wireMemoryPrivacy.d.ts +38 -0
- package/dist/users/wireMemoryPrivacy.d.ts.map +1 -0
- package/dist/users/wireMemoryPrivacy.js +94 -0
- package/dist/users/wireMemoryPrivacy.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +68 -68
- package/src/data/stageBCertifiedSet.ts +16 -0
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/src/data/state-coherence-registry.json +15 -0
- package/src/scaffold/templates.ts +7 -0
- package/src/templates/scripts/slack-reply.sh +3 -1
- package/upgrades/1.3.1652.md +74 -0
- package/upgrades/1.3.1653.md +20 -0
- package/upgrades/side-effects/memory-privacy-sandbox-setup.md +66 -0
- package/upgrades/side-effects/memory-privacy.md +79 -0
- package/upgrades/side-effects/mobile-native-capacity-screens.md +108 -0
- package/upgrades/side-effects/mobile-native-ops-screens.md +96 -0
- package/upgrades/side-effects/owner-checks-fail-closed.md +57 -0
- package/upgrades/side-effects/recommended-services-catalog.md +72 -0
- package/upgrades/side-effects/recommended-services-prereqs.md +69 -0
- package/dist/commands/install/doors.d.ts.map +0 -1
- package/dist/commands/install/doors.js.map +0 -1
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
buildProfile, buildHistory, buildGuards, buildSuggestions, buildFeatures, flattenFeature, profileChanges,
|
|
9
9
|
walkToEnabled, canTurnOff, canUndoOff, needsConsent, facts, applyText, refusalText, PROFILE_LABEL, PROFILE_SENTENCE, STATE_WORD,
|
|
10
10
|
} from './allowed-model.js';
|
|
11
|
+
import { buildServices } from './services-model.js';
|
|
11
12
|
import { el, setKids, pageHead, section, sheet, closeSheet, story, details, note, cantTell, actionButton, askPin, operatorSession, forgetOperatorSession, firstPaint, arrivalScroll } from './ui.js';
|
|
12
13
|
import { legacyHref } from './nav-model.js';
|
|
13
14
|
|
|
@@ -41,9 +42,10 @@ const errWords = (r) => {
|
|
|
41
42
|
export async function renderAllowed(main, ctx) {
|
|
42
43
|
const { get, post } = ctx;
|
|
43
44
|
firstPaint(main, el('section', { class: 'hero page-hero' }, el('div', { class: 'eyebrow', text: 'Settings · What I’m allowed to do' }), el('h1', { class: 'page-title skeleton', text: 'Loading' })));
|
|
44
|
-
const [auto, hist, elev, guardsRes, featRes] = await Promise.all([
|
|
45
|
-
get('/autonomy'), get('/autonomy/history'), get('/autonomy/elevation'), get('/guards?scope=pool', 8000), get('/features'),
|
|
45
|
+
const [auto, hist, elev, guardsRes, featRes, servicesRes] = await Promise.all([
|
|
46
|
+
get('/autonomy'), get('/autonomy/history'), get('/autonomy/elevation'), get('/guards?scope=pool', 8000), get('/features'), get('/recommended-services'),
|
|
46
47
|
]);
|
|
48
|
+
const services = buildServices(servicesRes);
|
|
47
49
|
const profile = buildProfile(auto);
|
|
48
50
|
const history = buildHistory(hist);
|
|
49
51
|
const suggestions = buildSuggestions(elev);
|
|
@@ -59,6 +61,7 @@ export async function renderAllowed(main, ctx) {
|
|
|
59
61
|
guardsBlock(guards, refresh),
|
|
60
62
|
suggestionsBlock(suggestions, post, refresh),
|
|
61
63
|
featuresBlock(features, refresh),
|
|
64
|
+
servicesBlock(services),
|
|
62
65
|
history.ok ? section({ id: 'history', title: 'History', rows: history.rows, collapsed: true, empty: 'The profile has never been changed.' })
|
|
63
66
|
: el('section', { class: 'list-section', id: 'sec-history' }, note(history.reason)),
|
|
64
67
|
),
|
|
@@ -177,6 +180,14 @@ function suggestionsBlock(sg, post, refresh) {
|
|
|
177
180
|
}
|
|
178
181
|
|
|
179
182
|
// ── Features ──────────────────────────────────────────────────────────────
|
|
183
|
+
// ── Outside services ──────────────────────────────────────────────────────
|
|
184
|
+
function servicesBlock(services) {
|
|
185
|
+
if (!services.ok) return el('section', { class: 'list-section', id: 'sec-services' }, el('div', { class: 'list-head' }, el('h2', { class: 'eyebrow', text: 'Outside services' })), cantTell(services.reason));
|
|
186
|
+
const wrap = section({ id: 'services', title: 'Outside services', rows: services.rows, onRow: (r) => sheet({ title: r.main }, story(r.lines)) });
|
|
187
|
+
if (services.note) wrap.querySelector('.list-head').after(note(services.note));
|
|
188
|
+
return wrap;
|
|
189
|
+
}
|
|
190
|
+
|
|
180
191
|
function featuresBlock(features, refresh) {
|
|
181
192
|
const wrap = el('section', { class: 'list-section', id: 'sec-features' });
|
|
182
193
|
if (!features.ok) { wrap.append(el('div', { class: 'list-head' }, el('h2', { class: 'eyebrow', text: 'Features' })), cantTell(features.reason)); return wrap; }
|
|
@@ -480,7 +480,7 @@ a.fact:hover { border-color: var(--accent); color: var(--text); }
|
|
|
480
480
|
.fact.attn { border-color: rgb(251 191 36 / .35); } .fact.attn .fact-n { color: var(--attn); }
|
|
481
481
|
.fact.bad { border-color: var(--bad-line); } .fact.bad .fact-n { color: var(--bad); }
|
|
482
482
|
.page-sections { display: flex; flex-direction: column; gap: var(--s-4); margin-top: var(--s-4); }
|
|
483
|
-
.list-section { border: 1px solid var(--hairline); border-radius: var(--r-lg); background: var(--surface); padding: var(--s-3) var(--s-4) var(--s-2); }
|
|
483
|
+
.list-section { scroll-margin-top: 64px; border: 1px solid var(--hairline); border-radius: var(--r-lg); background: var(--surface); padding: var(--s-3) var(--s-4) var(--s-2); }
|
|
484
484
|
.list-head { display: flex; align-items: center; gap: var(--s-2); width: 100%; min-height: 40px; background: none; border: 0; padding: 0; text-align: left; color: inherit; }
|
|
485
485
|
button.list-head { cursor: pointer; }
|
|
486
486
|
.list-head .eyebrow { margin: 0; }
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Outside services, on "What I'm allowed to do" — pure view-model
|
|
2
|
+
// (docs/specs/recommended-services.md, Surfaces). Read only: every word about a service comes
|
|
3
|
+
// from the server's catalog, and a backup is never described as stronger than its status.
|
|
4
|
+
|
|
5
|
+
const BACKUP_WORDS = {
|
|
6
|
+
exercised: 'Proven: a drill switched this service off and the backup worked.',
|
|
7
|
+
specified: 'Built, but not yet proven by switching this service off.',
|
|
8
|
+
gap: 'Not complete yet.',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
function choiceWord(s) {
|
|
12
|
+
if (s.choice === 'yes') return 'You said yes';
|
|
13
|
+
if (s.choice === 'no' || s.legacyDeclined) return 'You said no';
|
|
14
|
+
return s.available ? 'Not decided' : 'Not available yet';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function backupText(s) {
|
|
18
|
+
const status = BACKUP_WORDS[s.backupStatus] || 'Unknown.';
|
|
19
|
+
const what = s.backup || 'None yet.';
|
|
20
|
+
return `${what} ${status}${s.gapWhen ? ` ${s.gapWhen}` : ''}`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** GET /recommended-services → the rows, or the reason there are none. */
|
|
24
|
+
export function buildServices(res) {
|
|
25
|
+
if (!res || !res.ok) return { ok: false, reason: `Can’t tell which outside services are set up: ${(res && res.reason) || 'the server did not answer'}.` };
|
|
26
|
+
const list = res.data && Array.isArray(res.data.services) ? res.data.services : null;
|
|
27
|
+
if (!list) return { ok: false, reason: 'Can’t tell which outside services are set up: the answer had no list.' };
|
|
28
|
+
const rows = list.map((s) => ({
|
|
29
|
+
key: s.service,
|
|
30
|
+
main: s.name || s.service,
|
|
31
|
+
sub: s.benefit || '',
|
|
32
|
+
end: choiceWord(s),
|
|
33
|
+
lines: [
|
|
34
|
+
{ label: 'What you get', text: s.benefit },
|
|
35
|
+
{ label: 'What leaves this machine', text: s.dataLeaves },
|
|
36
|
+
{ label: 'Cost', text: s.cost },
|
|
37
|
+
{ label: 'Account', text: s.account },
|
|
38
|
+
{ label: 'If you say no', text: backupText(s) },
|
|
39
|
+
].filter((l) => l.text),
|
|
40
|
+
}));
|
|
41
|
+
const available = list.filter((s) => s.available).length;
|
|
42
|
+
const note = available ? null : 'I can’t set any of these up for you yet. Each one becomes available once I’ve proven its setup works. You don’t need to do anything.';
|
|
43
|
+
return { ok: true, rows, available, note };
|
|
44
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
*
|
|
29
29
|
* Existing project adds .instar/ and appends to CLAUDE.md.
|
|
30
30
|
*/
|
|
31
|
+
import { isBlankAgentHome, markNewAgent } from '../recommended/offerPrerequisites.js';
|
|
31
32
|
import { applyInitPosture, decideInitPosture, parseTtl } from '../core/ThrowawayAgentGuard.js';
|
|
32
33
|
import fs from 'node:fs';
|
|
33
34
|
import os from 'node:os';
|
|
@@ -297,6 +298,9 @@ async function initFreshProject(projectName, options) {
|
|
|
297
298
|
const identity = defaultIdentity(projectName);
|
|
298
299
|
// Create .instar/ state directory
|
|
299
300
|
const stateDir = path.join(projectDir, '.instar');
|
|
301
|
+
// An existing agent stays out of offers until its first list, so only a blank home counts as new.
|
|
302
|
+
if (isBlankAgentHome(stateDir))
|
|
303
|
+
markNewAgent(stateDir);
|
|
300
304
|
ensureStateDir(stateDir);
|
|
301
305
|
console.log(` ${pc.green('✓')} Created .instar/`);
|
|
302
306
|
// Write identity files
|
|
@@ -653,6 +657,9 @@ async function initExistingProject(options) {
|
|
|
653
657
|
}
|
|
654
658
|
// Create state directory
|
|
655
659
|
const stateDir = path.join(projectDir, '.instar');
|
|
660
|
+
// An existing agent stays out of offers until its first list, so only a blank home counts as new.
|
|
661
|
+
if (isBlankAgentHome(stateDir))
|
|
662
|
+
markNewAgent(stateDir);
|
|
656
663
|
ensureStateDir(stateDir);
|
|
657
664
|
console.log(pc.green(' Created:') + ' .instar/');
|
|
658
665
|
// Write config. A reviewed package carrying valid Echo-signed Stage-B
|
|
@@ -994,6 +1001,9 @@ async function initStandaloneAgent(agentName, options) {
|
|
|
994
1001
|
}
|
|
995
1002
|
// Create directory structure
|
|
996
1003
|
fs.mkdirSync(projectDir, { recursive: true });
|
|
1004
|
+
// An existing agent stays out of offers until its first list, so only a blank home counts as new.
|
|
1005
|
+
if (isBlankAgentHome(stateDir))
|
|
1006
|
+
markNewAgent(stateDir);
|
|
997
1007
|
ensureStateDir(stateDir);
|
|
998
1008
|
console.log(` ${pc.green('✓')} Created ${projectDir}`);
|
|
999
1009
|
// Generate identity
|