@intentic/sandbox-contract 1.345.0 → 1.346.0
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/README.md +26 -14
- package/dist/contracts/accounts.contract.d.ts +0 -80
- package/dist/contracts/accounts.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.d.ts +33 -2
- package/dist/contracts/agent.contract.d.ts.map +1 -1
- package/dist/contracts/agents.contract.d.ts +910 -29
- package/dist/contracts/agents.contract.d.ts.map +1 -1
- package/dist/contracts/agents.contract.js +43 -2
- package/dist/contracts/agents.contract.js.map +1 -1
- package/dist/contracts/device.contract.d.ts +2 -1
- package/dist/contracts/device.contract.d.ts.map +1 -1
- package/dist/contracts/endpoints.contract.d.ts +0 -1
- package/dist/contracts/endpoints.contract.d.ts.map +1 -1
- package/dist/contracts/providers.contract.d.ts +0 -1
- package/dist/contracts/providers.contract.d.ts.map +1 -1
- package/dist/contracts/runner.contract.d.ts +134 -123
- package/dist/contracts/runner.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.d.ts +4 -0
- package/dist/contracts/settings.contract.d.ts.map +1 -1
- package/dist/contracts/system.contract.d.ts +102 -1
- package/dist/contracts/system.contract.d.ts.map +1 -1
- package/dist/contracts/translator.contract.d.ts +0 -80
- package/dist/contracts/translator.contract.d.ts.map +1 -1
- package/dist/events/agent-events.d.ts +43 -0
- package/dist/events/agent-events.d.ts.map +1 -1
- package/dist/events/agent-events.js +42 -37
- package/dist/events/agent-events.js.map +1 -1
- package/dist/events/failure-rows.d.ts +14 -0
- package/dist/events/failure-rows.d.ts.map +1 -0
- package/dist/events/failure-rows.js +109 -0
- package/dist/events/failure-rows.js.map +1 -0
- package/dist/events/sandbox-notice.d.ts +16 -0
- package/dist/events/sandbox-notice.d.ts.map +1 -1
- package/dist/events/sandbox-notice.js +1 -0
- package/dist/events/sandbox-notice.js.map +1 -1
- package/dist/events/system-events.d.ts +68 -0
- package/dist/events/system-events.d.ts.map +1 -1
- package/dist/events/system-events.js +7 -1
- package/dist/events/system-events.js.map +1 -1
- package/dist/index.d.ts +1158 -303
- package/dist/index.d.ts.map +1 -1
- package/dist/models/agent-lanes.d.ts.map +1 -1
- package/dist/models/agent-lanes.js +3 -5
- package/dist/models/agent-lanes.js.map +1 -1
- package/dist/models/agent-standing.d.ts +3 -20
- package/dist/models/agent-standing.d.ts.map +1 -1
- package/dist/models/agent-standing.js +12 -37
- package/dist/models/agent-standing.js.map +1 -1
- package/dist/models/model-pins.d.ts +3 -0
- package/dist/models/model-pins.d.ts.map +1 -1
- package/dist/models/model-pins.js +2 -0
- package/dist/models/model-pins.js.map +1 -1
- package/dist/models/plan-pools.d.ts +23 -5
- package/dist/models/plan-pools.d.ts.map +1 -1
- package/dist/models/plan-pools.js +116 -33
- package/dist/models/plan-pools.js.map +1 -1
- package/dist/protocol/doors/runner-protocol.d.ts +1 -0
- package/dist/protocol/doors/runner-protocol.d.ts.map +1 -1
- package/dist/protocol/doors/runner-protocol.js +1 -0
- package/dist/protocol/doors/runner-protocol.js.map +1 -1
- package/dist/protocol/raw/raw-json-routes.d.ts +3 -1
- package/dist/protocol/raw/raw-json-routes.d.ts.map +1 -1
- package/dist/protocol/raw/raw-routes.d.ts +4 -0
- package/dist/protocol/raw/raw-routes.d.ts.map +1 -1
- package/dist/protocol/raw/raw-routes.js +1 -0
- package/dist/protocol/raw/raw-routes.js.map +1 -1
- package/dist/schemas/agent-next.d.ts +21 -0
- package/dist/schemas/agent-next.d.ts.map +1 -0
- package/dist/schemas/agent-next.js +21 -0
- package/dist/schemas/agent-next.js.map +1 -0
- package/dist/schemas/agent-search.d.ts +45 -0
- package/dist/schemas/agent-search.d.ts.map +1 -0
- package/dist/schemas/agent-search.js +28 -0
- package/dist/schemas/agent-search.js.map +1 -0
- package/dist/schemas/agent.d.ts +9 -0
- package/dist/schemas/agent.d.ts.map +1 -1
- package/dist/schemas/agent.js +14 -10
- package/dist/schemas/agent.js.map +1 -1
- package/dist/schemas/agents-list.d.ts +16 -0
- package/dist/schemas/agents-list.d.ts.map +1 -1
- package/dist/schemas/agents.d.ts +48 -43
- package/dist/schemas/agents.d.ts.map +1 -1
- package/dist/schemas/agents.js +10 -33
- package/dist/schemas/agents.js.map +1 -1
- package/dist/schemas/compose-overlay.d.ts +9 -0
- package/dist/schemas/compose-overlay.d.ts.map +1 -0
- package/dist/schemas/compose-overlay.js +11 -0
- package/dist/schemas/compose-overlay.js.map +1 -0
- package/dist/schemas/composer-drafts.d.ts +169 -0
- package/dist/schemas/composer-drafts.d.ts.map +1 -0
- package/dist/schemas/composer-drafts.js +60 -0
- package/dist/schemas/composer-drafts.js.map +1 -0
- package/dist/schemas/device-commands.d.ts +63 -0
- package/dist/schemas/device-commands.d.ts.map +1 -0
- package/dist/schemas/device-commands.js +42 -0
- package/dist/schemas/device-commands.js.map +1 -0
- package/dist/schemas/device-folder.d.ts +11 -0
- package/dist/schemas/device-folder.d.ts.map +1 -1
- package/dist/schemas/device-folder.js +1 -0
- package/dist/schemas/device-folder.js.map +1 -1
- package/dist/schemas/devices.d.ts +14 -67
- package/dist/schemas/devices.d.ts.map +1 -1
- package/dist/schemas/devices.js +7 -45
- package/dist/schemas/devices.js.map +1 -1
- package/dist/schemas/environment.d.ts.map +1 -1
- package/dist/schemas/environment.js.map +1 -1
- package/dist/schemas/hosts.d.ts +27 -0
- package/dist/schemas/hosts.d.ts.map +1 -1
- package/dist/schemas/hosts.js +21 -0
- package/dist/schemas/hosts.js.map +1 -1
- package/dist/schemas/privacy-egress.d.ts +41 -0
- package/dist/schemas/privacy-egress.d.ts.map +1 -0
- package/dist/schemas/privacy-egress.js +30 -0
- package/dist/schemas/privacy-egress.js.map +1 -0
- package/dist/schemas/privacy.d.ts +1 -0
- package/dist/schemas/privacy.d.ts.map +1 -1
- package/dist/schemas/privacy.js +1 -0
- package/dist/schemas/privacy.js.map +1 -1
- package/dist/schemas/providers/plan-limits.d.ts +2 -130
- package/dist/schemas/providers/plan-limits.d.ts.map +1 -1
- package/dist/schemas/providers/plan-limits.js +5 -23
- package/dist/schemas/providers/plan-limits.js.map +1 -1
- package/dist/schemas/providers/provider-oauth.d.ts +0 -82
- package/dist/schemas/providers/provider-oauth.d.ts.map +1 -1
- package/dist/schemas/providers/provider-oauth.js +1 -6
- package/dist/schemas/providers/provider-oauth.js.map +1 -1
- package/dist/schemas/providers/refusals.d.ts +64 -0
- package/dist/schemas/providers/refusals.d.ts.map +1 -0
- package/dist/schemas/providers/refusals.js +33 -0
- package/dist/schemas/providers/refusals.js.map +1 -0
- package/dist/schemas/sessions.js +1 -1
- package/dist/schemas/sessions.js.map +1 -1
- package/dist/schemas/settings.d.ts +4 -0
- package/dist/schemas/settings.d.ts.map +1 -1
- package/dist/schemas/settings.js +2 -0
- package/dist/schemas/settings.js.map +1 -1
- package/dist/schemas/system.d.ts +16 -0
- package/dist/schemas/system.d.ts.map +1 -1
- package/dist/schemas/system.js +11 -0
- package/dist/schemas/system.js.map +1 -1
- package/dist/state/definition.d.ts +8 -0
- package/dist/state/definition.d.ts.map +1 -1
- package/dist/state/runtime-state.d.ts +3 -0
- package/dist/state/runtime-state.d.ts.map +1 -1
- package/dist/state/runtime-state.js +1 -0
- package/dist/state/runtime-state.js.map +1 -1
- package/dist/state/sandbox-build.d.ts +20 -0
- package/dist/state/sandbox-build.d.ts.map +1 -0
- package/dist/state/sandbox-build.js +43 -0
- package/dist/state/sandbox-build.js.map +1 -0
- package/dist/state/ways-back.d.ts +4 -0
- package/dist/state/ways-back.d.ts.map +1 -0
- package/dist/state/ways-back.js +8 -0
- package/dist/state/ways-back.js.map +1 -0
- package/dist/text/land-rows.d.ts +14 -0
- package/dist/text/land-rows.d.ts.map +1 -0
- package/dist/text/land-rows.js +86 -0
- package/dist/text/land-rows.js.map +1 -0
- package/dist/text/transcript-fold.d.ts +4 -2
- package/dist/text/transcript-fold.d.ts.map +1 -1
- package/dist/text/transcript-fold.js +21 -187
- package/dist/text/transcript-fold.js.map +1 -1
- package/package.json +6 -6
- package/src/contracts/agents.contract.ts +49 -25
- package/src/events/agent-events.ts +95 -78
- package/src/events/failure-rows.ts +148 -0
- package/src/events/sandbox-notice.ts +11 -2
- package/src/events/system-events.ts +14 -4
- package/src/ids/project-dir.test.ts +2 -2
- package/src/ids/project-dir.ts +4 -4
- package/src/models/agent-lanes.ts +7 -21
- package/src/models/agent-runtimes.ts +2 -2
- package/src/models/agent-standing.ts +31 -96
- package/src/models/model-pins.test.ts +31 -1
- package/src/models/model-pins.ts +17 -0
- package/src/models/plan-pools.test.ts +159 -24
- package/src/models/plan-pools.ts +215 -83
- package/src/protocol/doors/runner-protocol.ts +4 -1
- package/src/protocol/raw/raw-routes.ts +1 -0
- package/src/schemas/agent-next.ts +34 -0
- package/src/schemas/agent-search.ts +51 -0
- package/src/schemas/agent.ts +21 -12
- package/src/schemas/agents.ts +24 -63
- package/src/schemas/compose-overlay.test.ts +35 -0
- package/src/schemas/compose-overlay.ts +19 -0
- package/src/schemas/composer-drafts.ts +86 -0
- package/src/schemas/device-commands.ts +89 -0
- package/src/schemas/device-folder.ts +9 -0
- package/src/schemas/devices.ts +24 -106
- package/src/schemas/environment.ts +8 -9
- package/src/schemas/hosts.ts +56 -0
- package/src/schemas/machine-presence.test.ts +33 -0
- package/src/schemas/privacy-egress.test.ts +83 -0
- package/src/schemas/privacy-egress.ts +86 -0
- package/src/schemas/privacy.ts +4 -0
- package/src/schemas/project-delivery.ts +1 -1
- package/src/schemas/providers/plan-limits.test.ts +16 -0
- package/src/schemas/providers/plan-limits.ts +8 -49
- package/src/schemas/providers/provider-oauth.ts +1 -13
- package/src/schemas/providers/refusals.ts +62 -0
- package/src/schemas/sessions.ts +1 -1
- package/src/schemas/settings.ts +2 -0
- package/src/schemas/system.ts +15 -0
- package/src/state/runtime-state.ts +5 -0
- package/src/state/sandbox-build.test.ts +95 -0
- package/src/state/sandbox-build.ts +96 -0
- package/src/state/ways-back.test.ts +36 -0
- package/src/state/ways-back.ts +19 -0
- package/src/state/workspace-state.ts +1 -1
- package/src/text/land-rows.ts +111 -0
- package/src/text/transcript-fold.test.ts +38 -9
- package/src/text/transcript-fold.ts +30 -232
- package/dist/events/undelivered.d.ts +0 -10
- package/dist/events/undelivered.d.ts.map +0 -1
- package/dist/events/undelivered.js +0 -22
- package/dist/events/undelivered.js.map +0 -1
- package/dist/state/history-state.d.ts +0 -3
- package/dist/state/history-state.d.ts.map +0 -1
- package/dist/state/history-state.js +0 -153
- package/dist/state/history-state.js.map +0 -1
- package/src/events/undelivered.ts +0 -33
- package/src/state/history-state.ts +0 -313
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
import type { StateFile } from "./state-portability.js";
|
|
2
|
-
|
|
3
|
-
// /history holds daemon state outside /work's `.intentic/`: real git dirs (in-tree .git is a pointer file), the fleet's
|
|
4
|
-
// database and each conversation's directory, ledgers, checkpoint scopes, isolated checkouts. Nothing here is watched,
|
|
5
|
-
// unlike `.intentic`. history-state-coverage.test.ts enforces this list stays complete.
|
|
6
|
-
|
|
7
|
-
// historyRoot-relative paths, forward-slash, matched by prefix; a directory keeps its trailing slash so it can't
|
|
8
|
-
// prefix-match a sibling file.
|
|
9
|
-
export const HISTORY_STATE_FILES: readonly StateFile[] = [
|
|
10
|
-
/* ---- the machinery a restored workspace is inert without ---- */
|
|
11
|
-
|
|
12
|
-
// Every repo's real git dir, including root's own; missing it breaks a repo outright. Branches live here too.
|
|
13
|
-
{ path: "gits/", portability: "carry" },
|
|
14
|
-
// Checkpoint timeline (one bare repo per scope); lets "restore to before that turn" still reach back.
|
|
15
|
-
{ path: "scopes/", portability: "carry" },
|
|
16
|
-
// The fleet and everything keyed by a conversation that must agree with it: each card's record, its checkout's
|
|
17
|
-
// per-repo provenance, what each message restores to, its turn in flight and its armed watches, plus automation
|
|
18
|
-
// fires in flight. Packed as a snapshot taken for the bundle, never as the live file and its WAL, and landed row
|
|
19
|
-
// by row into the target's own database. Watches carry safely: they hold no credential, only names.
|
|
20
|
-
{ path: "conversations.db", portability: "carry" },
|
|
21
|
-
// One directory per conversation: its transcript, what its last turn was told before its own words, and a fenced
|
|
22
|
-
// conversation's own runtime session store (what `.intentic/records/sessions/claude/` holds for every other).
|
|
23
|
-
// Carried whole, like the conversation it is.
|
|
24
|
-
{ path: "conversations/", portability: "carry" },
|
|
25
|
-
// The tasks this sandbox's conversations handed to linked sandboxes (links/linked-children.ts), followed until they
|
|
26
|
-
// settle: part of the conversations' own record, so it goes where they go.
|
|
27
|
-
{ path: "links/linked-children.json", portability: "carry" },
|
|
28
|
-
// One file per agent a conversation spawned (agent/subagents/spawned-children.ts): what its parent supervises it by
|
|
29
|
-
// (its run, session, last report and result), read back at boot so a restart does not orphan it. Part of the
|
|
30
|
-
// conversations' own record, so it goes where they go.
|
|
31
|
-
{ path: "spawned-children/", portability: "carry" },
|
|
32
|
-
// One file per workflow run a conversation started (agent/subagents/workflows/script-runs.ts): its script, its calls and what
|
|
33
|
-
// each handed back, so a restart picks it up where it was and a later run can resume from its finished calls. Part of
|
|
34
|
-
// the conversations' own record, so it goes where they go.
|
|
35
|
-
{ path: "script-runs/", portability: "carry" },
|
|
36
|
-
// The long tool outputs those transcripts name rather than hold, stored once by content for every record naming
|
|
37
|
-
// them; a transcript without them keeps only each output's start.
|
|
38
|
-
{ path: "blobs/", portability: "carry" },
|
|
39
|
-
// Index of published-page conversations; the pages travel with /work anyway, this makes one withdrawable.
|
|
40
|
-
{ path: "shares.json", portability: "carry" },
|
|
41
|
-
// Each person's own answer to which words their editor uses here (developer or maker), keyed by sign-in address
|
|
42
|
-
// (settings/member-audience.ts). Carried: it is theirs, and asking again after a move would be a question already
|
|
43
|
-
// answered.
|
|
44
|
-
{ path: "member-audience.json", portability: "carry" },
|
|
45
|
-
// Each person's own answers to the editor's getting-started checklist (put away, a step passed over), keyed by sign-in
|
|
46
|
-
// address (settings/member-getting-started.ts). Carried for the same reason: a checklist someone put away should not
|
|
47
|
-
// come back after a move.
|
|
48
|
-
{ path: "member-getting-started.json", portability: "carry" },
|
|
49
|
-
// Who confirmed the AI notice, and which wording (settings/member-ai-literacy.ts). Carried: it is the record an office
|
|
50
|
-
// shows for the AI Act's literacy duty, and a move must not make everyone confirm again or lose who already did.
|
|
51
|
-
{ path: "member-ai-literacy.json", portability: "carry" },
|
|
52
|
-
{ path: "activity.jsonl", portability: "carry" },
|
|
53
|
-
// The audit trail (one hash-chained file per month, the checkpoint retention leaves, the forwarder's cursor and the
|
|
54
|
-
// audit settings last seen). Carried: an office's trail has to survive the sandbox moving, and a fresh chain on the
|
|
55
|
-
// target would read as the old one having been deleted.
|
|
56
|
-
{ path: "audit/", portability: "carry" },
|
|
57
|
-
{ path: "usage.jsonl", portability: "carry" },
|
|
58
|
-
{ path: "account-usage.json", portability: "carry" },
|
|
59
|
-
// What each provider's usage answers have been made of (their paths, and one redacted sample), so an answer that
|
|
60
|
-
// changes is noticed. Carried: the provider answers the same wherever the sandbox runs, and a fresh record would
|
|
61
|
-
// take the next changed answer as the first one.
|
|
62
|
-
{ path: "provider-answers.json", portability: "carry" },
|
|
63
|
-
// Per-account stay-away for a provider's usage endpoint. Carried, not re-earned: earning one costs the very read it
|
|
64
|
-
// holds off, and is answered with a deadline measured from that moment. Entries past their instant are inert.
|
|
65
|
-
{ path: "usage-parks.json", portability: "carry" },
|
|
66
|
-
{ path: "provider-refusals.json", portability: "carry" },
|
|
67
|
-
// Models refused to this sandbox's credentials; expires daily, same subscriptions apply elsewhere.
|
|
68
|
-
{ path: "model-refusals.json", portability: "carry" },
|
|
69
|
-
// When a model every credential is benched on reopens. Carried for the same reason as the refusals around it: the
|
|
70
|
-
// wait belongs to the subscription, not to the machine that hit it, and entries past their instant are inert.
|
|
71
|
-
{ path: "model-cooldowns.json", portability: "carry" },
|
|
72
|
-
// What each account has run out of, for a plan publishing no allowance to poll — the refusal is the reading.
|
|
73
|
-
// Carried like the refusals above: an allowance belongs to the account, not to the machine that spent it.
|
|
74
|
-
{ path: "observed-limits.json", portability: "carry" },
|
|
75
|
-
// When each provider's allowance last ran out and under how many agents, which the spawn listing quotes beside the
|
|
76
|
-
// figure left. Carried like the refusals: it describes the subscription's windows, not the machine that spent them.
|
|
77
|
-
{ path: "run-outs.json", portability: "carry" },
|
|
78
|
-
// First-time dependency setup requests; carried so an interrupted queue survives export, entries self-remove.
|
|
79
|
-
{ path: "dependency-requests.json", portability: "carry" },
|
|
80
|
-
// Which device cards were already offered; carry, not identity, since it holds ids, never a token.
|
|
81
|
-
{ path: "host-setup-seeded.json", portability: "carry" },
|
|
82
|
-
// The deploy engine's own ledgers: a run's events and check results the Pipelines view reads.
|
|
83
|
-
{ path: "apply-events.ndjson", portability: "carry" },
|
|
84
|
-
{ path: "check-events/", portability: "carry" },
|
|
85
|
-
|
|
86
|
-
// User-started operator panels resume on this sandbox after a restart; a moved sandbox starts inert.
|
|
87
|
-
{ path: "panels.json", portability: "derived" },
|
|
88
|
-
// Receipts name kept commands lost with container-local capture storage; never replay arbitrary commands.
|
|
89
|
-
{ path: "kept-jobs/", portability: "derived" },
|
|
90
|
-
// The last hour's turns `agents message` and each link started (the daemon's store/start-window.ts), so a restart does
|
|
91
|
-
// not reopen their hourly ceilings; a moved sandbox starts its hour afresh.
|
|
92
|
-
{ path: "turn-starts.json", portability: "derived" },
|
|
93
|
-
|
|
94
|
-
/* ---- regenerated by the target ---- */
|
|
95
|
-
|
|
96
|
-
// Deliberately omitted: the branch lives in gits/, the registry in conversations.db; regenerated on the next turn.
|
|
97
|
-
{
|
|
98
|
-
path: "worktrees/",
|
|
99
|
-
portability: "derived",
|
|
100
|
-
note: "Each conversation re-attaches its checkout from its branch on its next turn.",
|
|
101
|
-
},
|
|
102
|
-
// Search phrase index, derived from the conversations' transcripts; rebuilt by the first boot's backfill instead.
|
|
103
|
-
{ path: "said-index/", portability: "derived", note: "Rebuilt from the carried transcripts by the first boot's backfill." },
|
|
104
|
-
// What each connected machine and browser publishes as its tools, so one that is asleep still appears in a turn
|
|
105
|
-
// (peers/peer-tool-memory.ts). Re-asked of every peer the moment it reconnects, and about software that stayed
|
|
106
|
-
// behind on somebody else's computer, so it is not worth carrying.
|
|
107
|
-
{ path: "peer-tools.json", portability: "derived" },
|
|
108
|
-
{ path: "overlays/", portability: "derived" },
|
|
109
|
-
{ path: "logs/", portability: "derived" },
|
|
110
|
-
{ path: "trash/", portability: "derived" },
|
|
111
|
-
{ path: ".isolation-probe", portability: "derived" },
|
|
112
|
-
// Finished bundles, excluded so an export doesn't pack every prior export in; kept off /work, unwatched.
|
|
113
|
-
{ path: "exports/", portability: "derived" },
|
|
114
|
-
// Each transcript as it was before this format converted it, zstd-compressed: a local way back, never read here.
|
|
115
|
-
{ path: "backups/", portability: "derived" },
|
|
116
|
-
// Bundles being taken in, mid-review; excluded as someone else's. Deleted on apply/abandon, swept after a crash.
|
|
117
|
-
{ path: "arrivals/", portability: "derived" },
|
|
118
|
-
// The agent engines this sandbox installed beside the image's own, each with its pointer file; reinstalled on demand.
|
|
119
|
-
{ path: "engines/", portability: "derived" },
|
|
120
|
-
// An update the host downloaded and built for this sandbox (`ic sandbox prepare`); about this machine only.
|
|
121
|
-
{ path: "update-staged.json", portability: "derived" },
|
|
122
|
-
// A download the host is running for this sandbox right now (ic rewrites it every few seconds, removes it when done).
|
|
123
|
-
{ path: "update-preparing.json", portability: "derived" },
|
|
124
|
-
// What the host last did about this sandbox's version (ic writes it), the owner's skipped release, and why the
|
|
125
|
-
// last boot could not start (the daemon writes it, the host's probation reads it): all rebuilt by whoever next says.
|
|
126
|
-
{ path: "update-outcome.json", portability: "derived" },
|
|
127
|
-
{ path: "update-skipped.json", portability: "derived" },
|
|
128
|
-
// Whether this sandbox takes downloaded updates by itself, a pause, and the update it last started unasked
|
|
129
|
-
// (system/updates/update-policy.ts): about this machine's restarts, so a moved sandbox starts on the default.
|
|
130
|
-
{ path: "update-policy.json", portability: "derived" },
|
|
131
|
-
{ path: "boot-failure.json", portability: "derived" },
|
|
132
|
-
// A rebuild's ask that the next boot resume the turns it cuts (restart-resume.ts): about this machine's next boot only,
|
|
133
|
-
// read once by it, so a moved sandbox starts without one.
|
|
134
|
-
{ path: "restart-resume.json", portability: "derived" },
|
|
135
|
-
// Spawned children paused on a re-run the sandbox booked for them (agent/subagents/paused-children.ts): the booking
|
|
136
|
-
// is this process's memory, so the next boot tells each parent that its child stays stopped, then forgets the entry.
|
|
137
|
-
// About this machine's restarts, so a moved sandbox starts without it.
|
|
138
|
-
{ path: "paused-children.json", portability: "derived" },
|
|
139
|
-
// When this machine's daemon booted (system/boot/boot-history.ts), for telling a restart storm from a restart: about
|
|
140
|
-
// this machine's restarts, so a moved sandbox starts without it.
|
|
141
|
-
{ path: "boot-history.json", portability: "derived" },
|
|
142
|
-
// When each housekeeping chore last ran (system/chore-clock.ts), so a restart does not run a daily one again; a moved
|
|
143
|
-
// sandbox runs each once at its first boot.
|
|
144
|
-
{ path: "chore-clock.json", portability: "derived" },
|
|
145
|
-
// The last disk measurement (system/resources/storage/disk-storage.ts), kept so a restart still shows one, dated. About
|
|
146
|
-
// this machine's volumes, so a moved sandbox measures its own.
|
|
147
|
-
{ path: "storage-scan.json", portability: "derived" },
|
|
148
|
-
|
|
149
|
-
/* ---- the unprivileged agent's execution domain (the daemon's workload/domain/agent-domain-view.ts) ---- */
|
|
150
|
-
|
|
151
|
-
// The agent's own HOME and the per-runtime homes beside it: what the agent keeps outlives a recreate, which includes
|
|
152
|
-
// any login a command-line tool it ran saved there. `secret` for that, since the daemon cannot tell one from the rest.
|
|
153
|
-
{
|
|
154
|
-
path: "agent-home/",
|
|
155
|
-
portability: "secret",
|
|
156
|
-
note: "Sign the agent's own command-line tools in again where it used them.",
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
path: "agent-homes/",
|
|
160
|
-
portability: "secret",
|
|
161
|
-
note: "Sign the agent's own command-line tools in again where it used them.",
|
|
162
|
-
},
|
|
163
|
-
// Container storage a domain's runtime filled, pulled again on demand.
|
|
164
|
-
{ path: "agent-containers/", portability: "derived" },
|
|
165
|
-
// Each domain view's staging directory (`agent-domain-` and a random suffix), removed when its domain ends.
|
|
166
|
-
{ path: "agent-domain-", portability: "derived" },
|
|
167
|
-
|
|
168
|
-
/* ---- credentials ---- */
|
|
169
|
-
|
|
170
|
-
// The ssh alias dir ~/.ssh/intentic-hosts symlinks to: per-host config, each key's public half, password files, and a
|
|
171
|
-
// key with a passphrase. Every other private key is in the key store under the auth root (ssh-keys/).
|
|
172
|
-
{
|
|
173
|
-
path: "ssh-hosts/",
|
|
174
|
-
portability: "secret",
|
|
175
|
-
note: "Re-add each ssh host on the Capabilities view, its key does not travel.",
|
|
176
|
-
},
|
|
177
|
-
// The container sshd's host key (docker-entrypoint.sh generates it once): the sandbox's SSH identity, which desktop
|
|
178
|
-
// sync pins. A private key, so it stays; the target makes its own on first boot.
|
|
179
|
-
{
|
|
180
|
-
path: "ssh-host-keys/",
|
|
181
|
-
portability: "secret",
|
|
182
|
-
note: "Clear this sandbox's old host key from your computer's known_hosts before syncing it again.",
|
|
183
|
-
},
|
|
184
|
-
// The cli-proxy's config, which holds the routed subscriptions' provider tokens.
|
|
185
|
-
{
|
|
186
|
-
path: "translator/",
|
|
187
|
-
portability: "secret",
|
|
188
|
-
note: "Sign the routed AI subscriptions in again on the Agent tab.",
|
|
189
|
-
},
|
|
190
|
-
|
|
191
|
-
/* ---- identity: what binds this sandbox to its owner, its browsers and its host ---- */
|
|
192
|
-
|
|
193
|
-
// Signs every browser session cookie; carrying it would let the holder mint sessions against the target.
|
|
194
|
-
{ path: "session-secret", portability: "identity", note: "Sign in again, the target signs its own sessions." },
|
|
195
|
-
// The platform's id for this sandbox's row, as its announce last said (system/boot/platform-row.ts): the target is
|
|
196
|
-
// its own row, and learns its own id at its first announce.
|
|
197
|
-
{ path: "platform-row.json", portability: "identity", note: "The target learns its own platform id when it first announces." },
|
|
198
|
-
// Who owns this sandbox, who else may reach it and at what tier, and the hashed control tokens programs present:
|
|
199
|
-
// the daemon's to decide, so kept off the workspace every turn writes (auth/members/identity-off-workspace.ts moved
|
|
200
|
-
// them from `.intentic/identity/` on 2026-10-06). An access list that traveled would let a source sandbox hand
|
|
201
|
-
// itself the target's ownership, and a token authenticates against the sandbox that minted it.
|
|
202
|
-
{ path: "identity/owner.json", portability: "identity", note: "The target is bound by its own owner's first sign-in." },
|
|
203
|
-
{
|
|
204
|
-
path: "identity/members.json",
|
|
205
|
-
portability: "identity",
|
|
206
|
-
note: "Re-invite collaborators from the Access tab, a grant is the platform's record, and the target enforces its own copy.",
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
path: "identity/control-tokens.json",
|
|
210
|
-
portability: "identity",
|
|
211
|
-
note: "Mint fresh control tokens, the old ones authenticate against the source sandbox.",
|
|
212
|
-
},
|
|
213
|
-
// The links other sandboxes hand this one tasks through (links/inbound-links.ts): hashed tokens like the control
|
|
214
|
-
// tokens, each minted here, and the tasks filed under them; elsewhere they would let the paired sandboxes reach the
|
|
215
|
-
// target in this one's name.
|
|
216
|
-
{
|
|
217
|
-
path: "identity/links.json",
|
|
218
|
-
portability: "identity",
|
|
219
|
-
note: "Pair the sandboxes that hand this one tasks again from its Access tab: their links name the source sandbox.",
|
|
220
|
-
},
|
|
221
|
-
// Public keys, the owner's require-a-passkey switch and the hashes of their recovery codes, moved from
|
|
222
|
-
// `.intentic/identity/passkeys.json` the same way (the passkeys-off-workspace step), since a passkey sign-in trusts
|
|
223
|
-
// the row it finds: a copy that traveled would let a source sandbox's passkeys open the target.
|
|
224
|
-
{
|
|
225
|
-
path: "identity/passkeys.json",
|
|
226
|
-
portability: "identity",
|
|
227
|
-
note: "Passkeys are bound to the sandbox they were registered with: add them again on the new one from its Access tab.",
|
|
228
|
-
},
|
|
229
|
-
{
|
|
230
|
-
path: "browser-access-disabled",
|
|
231
|
-
portability: "identity",
|
|
232
|
-
note: "Account-deletion retirement belongs to the source sandbox; the imported copy starts with fresh browser access.",
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
path: "push.json",
|
|
236
|
-
portability: "identity",
|
|
237
|
-
note: "Re-enable notifications in the browsers you use, a push subscription is bound to the sandbox that minted it.",
|
|
238
|
-
},
|
|
239
|
-
{ path: "sync-enrollments.json", portability: "identity", note: "Re-pair desktop sync from the Sync tab." },
|
|
240
|
-
{ path: "sync-pair-consumed.json", portability: "identity" },
|
|
241
|
-
{ path: "host-enrollments.json", portability: "identity" },
|
|
242
|
-
// A connected browser's enrollment, paired to this sandbox; carrying it elsewhere is dead weight or worse.
|
|
243
|
-
{ path: "webext-enrollments.json", portability: "identity", note: "Pair your browser again from its card: the extension is still installed." },
|
|
244
|
-
// The browser pairing burn list; a redeemed pairing must not read as fresh wherever this file travels.
|
|
245
|
-
{ path: "webext-pair-consumed.json", portability: "identity" },
|
|
246
|
-
// A phone's enrollment and its wake channel, paired to this sandbox; the app on the phone stays installed.
|
|
247
|
-
{ path: "phone-enrollments.json", portability: "identity", note: "Pair your phone again from its card: the app is still installed." },
|
|
248
|
-
{ path: "phone-pair-consumed.json", portability: "identity" },
|
|
249
|
-
{ path: "phone-wake.json", portability: "identity" },
|
|
250
|
-
// Which computers' keyrings each phone paired with for Passwords (phones/phone-pairings.ts): a shortcut over the
|
|
251
|
-
// keyrings' own pinned keys, keyed by phones paired to this sandbox, so it stays with the pairings above.
|
|
252
|
-
{ path: "phone-pairings.json", portability: "identity" },
|
|
253
|
-
// Setup-device pairing burn list; carrying it would mark another sandbox's fresh pairing as spent.
|
|
254
|
-
{ path: "host-pair-consumed.json", portability: "identity" },
|
|
255
|
-
// Lands waiting for the computer whose folder they go to, and which computer last held each attached folder
|
|
256
|
-
// (conversations/land/project-delivery.ts): about the machine this sandbox runs beside, whose folders a moved
|
|
257
|
-
// sandbox does not have.
|
|
258
|
-
{ path: "project-deliveries.json", portability: "identity" },
|
|
259
|
-
// The folders attached to this computer's own sandbox, by name (the daemon's system/projects-registry.ts): which of the
|
|
260
|
-
// computer's folders sync in, so it stays with the sandbox that runs beside them. The folders' copies and repos travel
|
|
261
|
-
// with /work and gits/; a moved sandbox treats them as ordinary repos.
|
|
262
|
-
{ path: "projects.json", portability: "identity", note: "Attach the folders again from the desktop app on the computer that holds them." },
|
|
263
|
-
// A runner's enrollment names this sandbox as parent; elsewhere its digest would dial the old parent.
|
|
264
|
-
{ path: "runner-enrollments.json", portability: "identity" },
|
|
265
|
-
{ path: "runner-pair-consumed.json", portability: "identity" },
|
|
266
|
-
// This container's own identity and reconnect token; elsewhere it would dial the parent as this runner.
|
|
267
|
-
{ path: "runner-identity.json", portability: "identity" },
|
|
268
|
-
// The owner's yes to a workspace's hooks, pinned to their bytes: a trust decision the target's owner makes again.
|
|
269
|
-
{ path: "hook-approvals.json", portability: "identity", note: "Approve the workspace's Claude Code hooks again from Approvals." },
|
|
270
|
-
// The hook sets waiting for that yes; the next turn that finds them lists them again.
|
|
271
|
-
{ path: "hook-requests.json", portability: "derived" },
|
|
272
|
-
// The owner's yes to each workspace extension's declared powers, decided again by the target's owner.
|
|
273
|
-
{ path: "extension-approvals.json", portability: "identity", note: "Approve the extensions written in this workspace again from Extensions." },
|
|
274
|
-
// The owner's yes to each item in the approvals queue, pinned to what it will do: the queue travels with /work, and
|
|
275
|
-
// an item that arrives approved without its yes is not carried out until the target's owner gives it again.
|
|
276
|
-
{
|
|
277
|
-
path: "approval-decisions.json",
|
|
278
|
-
portability: "identity",
|
|
279
|
-
note: "Approve again from Approvals anything that was approved and had not run yet.",
|
|
280
|
-
},
|
|
281
|
-
// The wakes automations hold for a person, one file each (the daemon's automations/held-wakes-store.ts): daemon-minted, so
|
|
282
|
-
// kept where no turn writes. They travel with the workspace as they always did; a countdown hold arrives waiting for a
|
|
283
|
-
// person, since the key that signed it stays behind.
|
|
284
|
-
{ path: "automation-holds/", portability: "carry" },
|
|
285
|
-
{ path: "automation-holds.key", portability: "identity", note: "A held wake that was counting down arrives waiting for your yes instead." },
|
|
286
|
-
// What waits for an automation fire not journalled yet (the daemon's automations/durable/inbox-store.ts): a channel
|
|
287
|
-
// message in its debounce or behind a running fire, a workspace event behind its chore. Travels with the turn journal
|
|
288
|
-
// in conversations.db, which names the rows a fire already took.
|
|
289
|
-
{ path: "automation-listener-inbox.json", portability: "carry" },
|
|
290
|
-
{ path: "automation-workspace-inbox.json", portability: "carry" },
|
|
291
|
-
{ path: "local-cert/", portability: "identity" },
|
|
292
|
-
|
|
293
|
-
/* ---- the state engine's own bookkeeping (the daemon's store/evolution/state-journal.ts) ---- */
|
|
294
|
-
|
|
295
|
-
// Pre-images of the history files an update's conversions changed; `secret` since identity files are among them.
|
|
296
|
-
{ path: "converting/", portability: "secret", note: "An update's undo record stays with the sandbox it happened on." },
|
|
297
|
-
// Which conversion episodes are open or recently committed, and earlier addresses awaiting removal.
|
|
298
|
-
{ path: "state-journal.json", portability: "derived" },
|
|
299
|
-
// Every conversation the import of the pre-1.308 layout settled (the daemon's conversations/registry/pre-1308-import.ts),
|
|
300
|
-
// so one deleted after its import is not brought back from the old files still on disk. About this volume only.
|
|
301
|
-
{ path: "pre-1308-import.json", portability: "derived" },
|
|
302
|
-
|
|
303
|
-
/* ---- written beside the daemon, by the image, the host's ic and the package manager ---- */
|
|
304
|
-
|
|
305
|
-
// The terminal's typed history (the image's HISTFILE, made by docker-entrypoint.sh): the owner's own, kept so its
|
|
306
|
-
// suggestions survive a rebuild. `secret`, since a typed line can hold a pasted token.
|
|
307
|
-
{ path: "shell/", portability: "secret" },
|
|
308
|
-
// ic's copy of its records for this sandbox (ic's sandbox/mirror.rs): its channel and rollback target, the machine
|
|
309
|
-
// that keeps it, its backups and repairs. About the machine it runs on, so the target's ic writes its own.
|
|
310
|
-
{ path: ".ic/", portability: "identity" },
|
|
311
|
-
// pnpm's package store for installs in a checkout under /history, kept at the top of the mount pnpm finds it on.
|
|
312
|
-
{ path: ".pnpm-store/", portability: "derived" },
|
|
313
|
-
];
|