@nexus-aethra/dshell-std 0.1.0 → 0.1.2

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/lib/contracts.js CHANGED
@@ -83,16 +83,31 @@ export const SETTLED_STATES = ['done', 'failed', 'timeout', 'cancelled'];
83
83
  export const DSHELL_SSH_PATH = '/api/dshell/ssh';
84
84
  /** Settings namespace owned by this plugin; also the device card's slot key. */
85
85
  export const SSH_SETTINGS_NAMESPACE = 'dshell-ssh';
86
- // ─── workspace — the session archive routes ───
86
+ // ─── workspace — the session delete route ───
87
87
  // moved from packages/dshell/workspace/src/protocol.ts
88
88
  /**
89
89
  * dshell session-panel wire — design 4.7 follow-up.
90
90
  *
91
- * The sidebar's session rows need two things dsh does not offer: an archive
92
- * tag that hides a session without touching its log, and a history purge.
93
- * Both are dshell concepts, so they travel over dshell's own exact route on
94
- * the shared `/api` channel rather than through the Typert Remote table
95
- * (whose client artifacts are generated from dsh's own packages).
91
+ * This route carries ONE dshell-only concern now: the history purge. Its
92
+ * companion, the archive tag, has moved to upstream and left this contract:
93
+ *
94
+ * - The **archive set is upstream's.** `workspaceRegistry.archiveSession` /
95
+ * `unarchiveSession` own it, the stock `workspace-controller` row (enabled in
96
+ * this profile) exposes both as remote commands and pushes a
97
+ * `{ type: 'archived' }` increment, and `ui-settings-unarchive-sessions` —
98
+ * the settings page this profile renders — is its restore surface. dshell
99
+ * supplies the registry's storage half and nothing else; there is no dshell
100
+ * archive UI and no dshell archive route. See packages/dshell/workspace/
101
+ * src/index.ts.
102
+ * - The **history purge still has no upstream.** `SessionPersistence` is
103
+ * append-only — create/open/stat/list and no delete — `session-controller`
104
+ * has no delete command, and the jsonl lease documents "Release never
105
+ * removes". `api-session/removed` is a `session/disposed` relay that
106
+ * upstream's own client turns into a snapshot flag, deleting nothing.
107
+ *
108
+ * The purge travels over dshell's own exact route on the shared `/api` channel
109
+ * rather than through the Typert Remote table (whose client artifacts are
110
+ * generated from dsh's own packages).
96
111
  *
97
112
  * The path sits below the shared channel exactly like file-upload's: the
98
113
  * physical carrier applies dsh's trust and authentication policy before the
@@ -126,4 +141,40 @@ export const DSHELL_STREAM_PATH = '/api/dshell/stream';
126
141
  * with. Answers with no body; the stream is the only place results appear.
127
142
  */
128
143
  export const DSHELL_STREAM_SEND_PATH = '/api/dshell/stream/send';
144
+ // ─── dshell's own data root, and the directory browser that picks it ───
145
+ /**
146
+ * Environment variable holding the directory dshell keeps its own files under.
147
+ *
148
+ * dshell derives every one of its paths from a harness home — `DSH_HOME` when
149
+ * the deployment sets one, `~/.dsh` otherwise — and puts `dshell/` (device
150
+ * registry, buffer state, session tags, mount points) and `dshell-pty/`
151
+ * (transcripts, their timelines, the history database) beneath it.
152
+ *
153
+ * This variable overrides that home for dshell ALONE. The distinct name is the
154
+ * whole point: `DSH_HOME` belongs to the harness and moving it moves sessions,
155
+ * settings and storage too, while a reader who wants their shell transcripts on
156
+ * another disk is not asking to relocate dsh. Two deployments set it — the
157
+ * settings card (`dataDir` in the `dshell` namespace, applied by the host half
158
+ * at start) and a user or unit file exporting it directly, which is what the
159
+ * packaged builds use.
160
+ *
161
+ * It is read at each path resolution rather than cached, for the same reason
162
+ * dsh's own resolution is: the value is a fact about the process, set once
163
+ * before anything asks.
164
+ */
165
+ export const DSHELL_HOME_ENV = 'DSHELL_HOME';
166
+ /**
167
+ * Exact `/api` route path owned by dshell's directory browser.
168
+ *
169
+ * The settings card's data-directory field cannot be typed by everyone and
170
+ * cannot be a native folder dialog: a browser has no access to a host path, and
171
+ * the harness may not even be on the machine drawing the page (the desktop
172
+ * shell and a remote `dsh web` are the same client). So the host lists its own
173
+ * directories and the card draws them — the picker is an ordinary route on the
174
+ * shared `/api` channel, under the same trust and authentication policy as the
175
+ * rest of dshell's routes.
176
+ */
177
+ export const DSHELL_DIRS_PATH = '/api/dshell/dirs';
178
+ /** The cordis service name `DshellFileSystem` publishes under. */
179
+ export const DEVICE_FS_SERVICE = 'dshellDeviceFs';
129
180
  //# sourceMappingURL=contracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH;;;;;;;;;;;;GAYG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AA2KpD,8CAA8C;AAC9C,4DAA4D;AAE5D;;;;;;;;;;;;GAYG;AAEH,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAsH1D,6EAA6E;AAC7E,oDAAoD;AAEpD;;;;;;;;;;GAUG;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAEtD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAA;AAW5C,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAiC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAyLtG,4DAA4D;AAC5D,iDAAiD;AAEjD;;;;;;;;;;;GAWG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAEhD,gFAAgF;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAA;AA6GlD,iDAAiD;AACjD,uDAAuD;AAEvD;;;;;;;;;;;;;;;GAeG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AA0B1D,qDAAqD;AACrD,0DAA0D;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAuChD,yEAAyE;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH;;;;;;;;;;;;GAYG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AA2KpD,8CAA8C;AAC9C,4DAA4D;AAE5D;;;;;;;;;;;;GAYG;AAEH,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAsH1D,6EAA6E;AAC7E,oDAAoD;AAEpD;;;;;;;;;;GAUG;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAEtD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAA;AAW5C,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAiC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;AAyLtG,4DAA4D;AAC5D,iDAAiD;AAEjD;;;;;;;;;;;GAWG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAEhD,gFAAgF;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAA;AA4JlD,+CAA+C;AAC/C,uDAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AA4B1D,qDAAqD;AACrD,0DAA0D;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAuChD,yEAAyE;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAA;AAEhE,0EAA0E;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAA;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAiIlD,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAA"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The one host fact dshell's packages have to agree on before they touch a
3
+ * path: where dshell's own files live.
4
+ *
5
+ * dsh resolves its home per call from the environment (`DSH_HOME`, else
6
+ * `~/.dsh`), which is why a plugin never has to ask what it is. dshell's own
7
+ * data root is different: it is a SETTING, so it is known only once the
8
+ * settings service is up and dshell-mode has read the value — and a plugin
9
+ * whose apply finishes before that would otherwise capture the wrong directory
10
+ * and keep it for the life of the process. That is not hypothetical: a reader
11
+ * who moved their data directory found their device registry empty afterwards,
12
+ * with the file sitting intact at the old location, because `dshell-ssh` had
13
+ * built its store first.
14
+ *
15
+ * So the root is published as a service, and the packages that resolve a path
16
+ * during composition wait for it. The declaration lives here, in the shared
17
+ * layer, because the provider (`dshell-mode`) and the waiters (`dshell-ssh`,
18
+ * `dshell-workspace`) are separate packages that must not import each other —
19
+ * and because the seat is small enough to read in full: a promise that settles
20
+ * with the decision.
21
+ *
22
+ * A package need not wait to resolve a path LATER (a route call, a shell spawn,
23
+ * a file listing): those all happen after composition, so the root is settled by
24
+ * then, and reading it where it is used is the cheaper and equally safe rule.
25
+ * What must not happen is resolving a path while the composition is still
26
+ * running and keeping the answer.
27
+ */
28
+ /** Service name dshell-mode provides and the path-owning packages wait on. */
29
+ export const DSHELL_DATA_ROOT_SERVICE = 'dshellDataRoot';
30
+ //# sourceMappingURL=data-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-root.js","sourceRoot":"","sources":["../src/data-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAA"}
package/lib/index.js CHANGED
@@ -15,6 +15,7 @@
15
15
  * absorbed in one place instead of re-implemented per plugin.
16
16
  */
17
17
  export * from './contracts.js';
18
+ export * from './data-root.js';
18
19
  export * from './host-copy.js';
19
20
  export * from './shell-line.js';
20
21
  export * from './storage.js';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA"}
@@ -548,6 +548,33 @@ export declare const DSHELL_SSH_PATH = "/api/dshell/ssh";
548
548
  export declare const SSH_SETTINGS_NAMESPACE = "dshell-ssh";
549
549
  /** How a device authenticates. */
550
550
  export type DeviceAuth = 'key' | 'password';
551
+ /**
552
+ * What dshell knows about the helper on a device.
553
+ *
554
+ * Three states the device card surfaces differently:
555
+ *
556
+ * - `absent` — no helper has ever been deployed to this device. A device
557
+ * session's RPC lane is unavailable; the assembled-command lane still
558
+ * works. The Test button reports the absence and offers to install.
559
+ * - `present` — a helper is deployed whose digest matches the artifact this
560
+ * build ships. RPC is ready.
561
+ * - `mismatch` — a helper is deployed but its digest disagrees with this
562
+ * build's. The next connection will redploy automatically; the card
563
+ * surfaces the disagreement so the user can decide whether to wait.
564
+ */
565
+ export type DeviceHelperState = 'absent' | 'present' | 'mismatch';
566
+ /** What the helper deployment looks like right now, when known. */
567
+ export interface DeviceHelperStatus {
568
+ readonly state: DeviceHelperState;
569
+ /** Digest of the file on the device, when the last check could read it. */
570
+ readonly onDevice?: string;
571
+ /** Digest of the artifact this build ships; absent means the build is unbundled. */
572
+ readonly expected?: string;
573
+ /** Absolute path the helper lives at, when known. */
574
+ readonly path?: string;
575
+ /** Last check's verbatim result; empty on `absent` with no attempt. */
576
+ readonly message: string;
577
+ }
551
578
  /** One configured device as the UI sees it — never includes secret material. */
552
579
  export interface DeviceView {
553
580
  readonly id: string;
@@ -565,6 +592,8 @@ export interface DeviceView {
565
592
  readonly auth: DeviceAuth;
566
593
  /** Whether the secret for {@link auth} (key or password) is stored. */
567
594
  readonly hasSecret: boolean;
595
+ /** Helper deployment state, when known. Absent for compositions that have not checked. */
596
+ readonly helper?: DeviceHelperStatus | undefined;
568
597
  }
569
598
  /** One device as submitted by the UI; `key` is write-only. */
570
599
  export interface DeviceInput {
@@ -638,6 +667,16 @@ export type SshRequest = {
638
667
  readonly action: 'mount';
639
668
  readonly deviceId: string;
640
669
  readonly remoteRoot?: string | null;
670
+ } | {
671
+ /**
672
+ * Deploy this build's helper to the device, content-addressed by digest.
673
+ *
674
+ * The route runs `mkdir -p ~/.dshell/helper` and `base64 -d > ~/.dshell/helper/helper-<sha256>.mjs`,
675
+ * then `chmod 0700`. The reply carries the resulting {@link DeviceHelperStatus},
676
+ * which the card renders to confirm the deployment.
677
+ */
678
+ readonly action: 'install';
679
+ readonly deviceId: string;
641
680
  };
642
681
  /** One response body; `error` is a refusal the UI shows verbatim. */
643
682
  export interface SshResponse {
@@ -647,16 +686,36 @@ export interface SshResponse {
647
686
  readonly testResult?: string | undefined;
648
687
  /** Local mount directory, answering the `mount` action. */
649
688
  readonly mountPath?: string | undefined;
689
+ /**
690
+ * Helper deployment status from the last check, set when one was requested
691
+ * (`install` action or the eventual three-phase `test` extension).
692
+ */
693
+ readonly helper?: DeviceHelperStatus | undefined;
650
694
  readonly error?: string | undefined;
651
695
  }
652
696
  /**
653
697
  * dshell session-panel wire — design 4.7 follow-up.
654
698
  *
655
- * The sidebar's session rows need two things dsh does not offer: an archive
656
- * tag that hides a session without touching its log, and a history purge.
657
- * Both are dshell concepts, so they travel over dshell's own exact route on
658
- * the shared `/api` channel rather than through the Typert Remote table
659
- * (whose client artifacts are generated from dsh's own packages).
699
+ * This route carries ONE dshell-only concern now: the history purge. Its
700
+ * companion, the archive tag, has moved to upstream and left this contract:
701
+ *
702
+ * - The **archive set is upstream's.** `workspaceRegistry.archiveSession` /
703
+ * `unarchiveSession` own it, the stock `workspace-controller` row (enabled in
704
+ * this profile) exposes both as remote commands and pushes a
705
+ * `{ type: 'archived' }` increment, and `ui-settings-unarchive-sessions` —
706
+ * the settings page this profile renders — is its restore surface. dshell
707
+ * supplies the registry's storage half and nothing else; there is no dshell
708
+ * archive UI and no dshell archive route. See packages/dshell/workspace/
709
+ * src/index.ts.
710
+ * - The **history purge still has no upstream.** `SessionPersistence` is
711
+ * append-only — create/open/stat/list and no delete — `session-controller`
712
+ * has no delete command, and the jsonl lease documents "Release never
713
+ * removes". `api-session/removed` is a `session/disposed` relay that
714
+ * upstream's own client turns into a snapshot flag, deleting nothing.
715
+ *
716
+ * The purge travels over dshell's own exact route on the shared `/api` channel
717
+ * rather than through the Typert Remote table (whose client artifacts are
718
+ * generated from dsh's own packages).
660
719
  *
661
720
  * The path sits below the shared channel exactly like file-upload's: the
662
721
  * physical carrier applies dsh's trust and authentication policy before the
@@ -670,28 +729,26 @@ export declare const DSHELL_SESSIONS_PATH = "/api/dshell/sessions";
670
729
  /** One request body the route accepts; `list` is also the GET shape. */
671
730
  export type SessionRequest = {
672
731
  readonly action: 'list';
673
- } | {
674
- readonly action: 'archive';
675
- readonly sessionId: string;
676
- } | {
677
- readonly action: 'unarchive';
678
- readonly sessionId: string;
679
732
  } | {
680
733
  readonly action: 'delete';
681
734
  readonly sessionId: string;
682
735
  };
683
736
  /**
684
- * One response body. `archived` rides on every response — the tag set after
685
- * the request, so one round trip leaves the caller's snapshot current.
737
+ * One response body. `pendingPurge` rides on every response — the scheduled
738
+ * set after the request, so one round trip leaves the caller's snapshot
739
+ * current.
740
+ *
741
+ * It is only the QUALIFIER half of the archive set: a pending id is always
742
+ * archived too, but the archive half is not dshell's to report any more (see
743
+ * above), and the sidebar reads it from the workspace registry's snapshot.
686
744
  * `error` is a refusal the sidebar shows verbatim; it is not a transport
687
745
  * failure, so the response still carries a 2xx status.
688
746
  */
689
747
  export interface SessionResponse {
690
- readonly archived: readonly string[];
691
748
  /**
692
749
  * Archived ids whose log is scheduled for removal at the next start (the
693
750
  * session was still loaded in this process, so its writer would have
694
- * recreated the directory). Always a subset of `archived`.
751
+ * recreated the directory).
695
752
  */
696
753
  readonly pendingPurge?: readonly string[];
697
754
  readonly error?: string;
@@ -750,4 +807,158 @@ export declare const DSHELL_STREAM_PATH = "/api/dshell/stream";
750
807
  * with. Answers with no body; the stream is the only place results appear.
751
808
  */
752
809
  export declare const DSHELL_STREAM_SEND_PATH = "/api/dshell/stream/send";
810
+ /**
811
+ * Environment variable holding the directory dshell keeps its own files under.
812
+ *
813
+ * dshell derives every one of its paths from a harness home — `DSH_HOME` when
814
+ * the deployment sets one, `~/.dsh` otherwise — and puts `dshell/` (device
815
+ * registry, buffer state, session tags, mount points) and `dshell-pty/`
816
+ * (transcripts, their timelines, the history database) beneath it.
817
+ *
818
+ * This variable overrides that home for dshell ALONE. The distinct name is the
819
+ * whole point: `DSH_HOME` belongs to the harness and moving it moves sessions,
820
+ * settings and storage too, while a reader who wants their shell transcripts on
821
+ * another disk is not asking to relocate dsh. Two deployments set it — the
822
+ * settings card (`dataDir` in the `dshell` namespace, applied by the host half
823
+ * at start) and a user or unit file exporting it directly, which is what the
824
+ * packaged builds use.
825
+ *
826
+ * It is read at each path resolution rather than cached, for the same reason
827
+ * dsh's own resolution is: the value is a fact about the process, set once
828
+ * before anything asks.
829
+ */
830
+ export declare const DSHELL_HOME_ENV = "DSHELL_HOME";
831
+ /**
832
+ * Exact `/api` route path owned by dshell's directory browser.
833
+ *
834
+ * The settings card's data-directory field cannot be typed by everyone and
835
+ * cannot be a native folder dialog: a browser has no access to a host path, and
836
+ * the harness may not even be on the machine drawing the page (the desktop
837
+ * shell and a remote `dsh web` are the same client). So the host lists its own
838
+ * directories and the card draws them — the picker is an ordinary route on the
839
+ * shared `/api` channel, under the same trust and authentication policy as the
840
+ * rest of dshell's routes.
841
+ */
842
+ export declare const DSHELL_DIRS_PATH = "/api/dshell/dirs";
843
+ /** One request body: what to do with the directory being shown. */
844
+ export interface DshellDirsRequest {
845
+ /**
846
+ * `list` (the default) reads a directory, `mkdir` creates one inside it.
847
+ *
848
+ * Two actions rather than two routes because they are the same subject read
849
+ * two ways: the picker shows a directory, and the one way out of a tree whose
850
+ * directory does not exist yet is to make it where the reader is standing.
851
+ */
852
+ readonly action?: 'list' | 'mkdir' | undefined;
853
+ /**
854
+ * A path on the HOST machine. Absolute, or `~`-prefixed; anything else is
855
+ * resolved against the home directory rather than the process's cwd, which is
856
+ * the one thing a browser could not know and would surprise a reader either
857
+ * way.
858
+ *
859
+ * For `mkdir` this is the PARENT directory, and it must already exist.
860
+ */
861
+ readonly path?: string | undefined;
862
+ /**
863
+ * The directory to create, for `mkdir`: ONE path segment, not a path.
864
+ *
865
+ * A name rather than a path on purpose — `mkdir` here is the picker's
866
+ * "new folder", and a field that accepts `a/b/c` is a field that creates
867
+ * three directories somewhere the reader cannot see while typing.
868
+ */
869
+ readonly name?: string | undefined;
870
+ }
871
+ /** One directory below the listed one. Files are not offered: this names a data root. */
872
+ export interface DshellDirsEntry {
873
+ /** The directory's own name (the last path segment). */
874
+ readonly name: string;
875
+ /** Its absolute path; what the field stores. */
876
+ readonly path: string;
877
+ }
878
+ /**
879
+ * One answer.
880
+ *
881
+ * `parent` is `null` at the file system root, which is how the picker knows to
882
+ * stop drawing an up-one-level control. `created` is the directory a `mkdir`
883
+ * request made, and the listing alongside it is that directory's (empty) own —
884
+ * so the picker lands the reader inside what they just made rather than leaving
885
+ * them to find it. `writable` describes the listed directory itself — the card
886
+ * refuses a read-only choice in words rather than letting the harness fail to
887
+ * write after a restart — and is absent when the host could not tell. `home` is
888
+ * where the picker opens and what 「跟随默认」 points at.
889
+ */
890
+ export interface DshellDirsResponse {
891
+ /** The resolved directory that was listed. */
892
+ readonly path?: string;
893
+ /** Its parent, `null` at the root, absent when nothing was listed. */
894
+ readonly parent?: string | null;
895
+ /** The host user's home directory. */
896
+ readonly home?: string;
897
+ /** The directories below `path`, sorted the way the picker draws them. */
898
+ readonly entries?: readonly DshellDirsEntry[];
899
+ /** The directory a `mkdir` created, when one was. */
900
+ readonly created?: string;
901
+ /** Whether `path` is writable by the harness; absent when unknown. */
902
+ readonly writable?: boolean;
903
+ /** Whether the host cut the listing at its cap; the picker says so rather than lying by omission. */
904
+ readonly truncated?: boolean;
905
+ /** Why the answer carries no listing, when it does not. */
906
+ readonly note?: 'noDirectory' | 'notDirectory' | 'noAccess' | 'exists' | 'badName';
907
+ /** A refusal the card shows verbatim. */
908
+ readonly error?: string;
909
+ }
910
+ /**
911
+ * Byte-level filesystem ops on a device, for callers that need them outside
912
+ * the policy fence that `ctx.fs` draws.
913
+ *
914
+ * Two things use it today: the chunked transfer relay in `dshell-files` and
915
+ * the chunked buffer relay in `dshell-buffer`. Both want the operations
916
+ * `ctx.fs` deliberately does not expose — `mkdir`, `remove`, `rename`,
917
+ * `sha256`, `copy` — because the seam's contract is "you read / write text
918
+ * through `ctx.fs`", and the two relays transfer arbitrary bytes.
919
+ *
920
+ * The interface is shaped so a transfer engine does not have to learn anything
921
+ * about the device registry or the routing table. The provider resolves the
922
+ * device from the ambient call's session, and the engine asks for an ops
923
+ * object once, at the top of its function.
924
+ *
925
+ * The shape mirrors `RemoteFileSystem` (which is what the `dshell-ssh`
926
+ * implementation packages): the engine can pass the same paths and read the
927
+ * same replies regardless of which backend answered. A backend that has not
928
+ * pre-deployed a helper rejects with `FsError('FS_NOT_OBSERVED', …)`; an
929
+ * unbound session produces `undefined` from `forInitiator`, the same shape
930
+ * `RemoteFileSystem`'s internal callers expect.
931
+ */
932
+ export interface DeviceFsOps {
933
+ /** Publish one file's whole contents on the device, byte for byte. */
934
+ writeBytes(remote: string, bytes: Uint8Array, signal?: AbortSignal): Promise<void>;
935
+ /** Create one or more directories, optionally recursive. */
936
+ mkdir(paths: readonly string[], recursive: boolean, signal?: AbortSignal): Promise<void>;
937
+ /** Remove one path, recursively and tolerating absence when forced. */
938
+ remove(path: string, force: boolean, signal?: AbortSignal): Promise<void>;
939
+ /** Rename one path to another, optionally overwriting an existing one. */
940
+ rename(from: string, to: string, overwrite: boolean, signal?: AbortSignal): Promise<void>;
941
+ /** The whole-file SHA-256 of one path, computed on the device. */
942
+ sha256(path: string, signal?: AbortSignal): Promise<string>;
943
+ /** Copy one file on the device, end-to-end. */
944
+ copy(source: string, destination: string, overwrite: boolean, expectedSha256: string | undefined, onProgress: (written: number, totalBytes: number) => void, signal: AbortSignal): Promise<{
945
+ destination: string;
946
+ sourceSha256: string;
947
+ bytes: number;
948
+ }>;
949
+ }
950
+ /**
951
+ * The byte-level device ops seat.
952
+ *
953
+ * `forInitiator` answers the device for the ambient call's session, or
954
+ * `undefined` when the session is local / unbound / has no helper. The
955
+ * transfer engine reads it once at the top of its function, and passes the
956
+ * resulting ops object down to every chunk — so the routing decision is
957
+ * made exactly once per copy, not once per chunk.
958
+ */
959
+ export interface DeviceFsSeat {
960
+ readonly forInitiator: () => DeviceFsOps | undefined;
961
+ }
962
+ /** The cordis service name `DshellFileSystem` publishes under. */
963
+ export declare const DEVICE_FS_SERVICE = "dshellDeviceFs";
753
964
  //# sourceMappingURL=contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The one host fact dshell's packages have to agree on before they touch a
3
+ * path: where dshell's own files live.
4
+ *
5
+ * dsh resolves its home per call from the environment (`DSH_HOME`, else
6
+ * `~/.dsh`), which is why a plugin never has to ask what it is. dshell's own
7
+ * data root is different: it is a SETTING, so it is known only once the
8
+ * settings service is up and dshell-mode has read the value — and a plugin
9
+ * whose apply finishes before that would otherwise capture the wrong directory
10
+ * and keep it for the life of the process. That is not hypothetical: a reader
11
+ * who moved their data directory found their device registry empty afterwards,
12
+ * with the file sitting intact at the old location, because `dshell-ssh` had
13
+ * built its store first.
14
+ *
15
+ * So the root is published as a service, and the packages that resolve a path
16
+ * during composition wait for it. The declaration lives here, in the shared
17
+ * layer, because the provider (`dshell-mode`) and the waiters (`dshell-ssh`,
18
+ * `dshell-workspace`) are separate packages that must not import each other —
19
+ * and because the seat is small enough to read in full: a promise that settles
20
+ * with the decision.
21
+ *
22
+ * A package need not wait to resolve a path LATER (a route call, a shell spawn,
23
+ * a file listing): those all happen after composition, so the root is settled by
24
+ * then, and reading it where it is used is the cheaper and equally safe rule.
25
+ * What must not happen is resolving a path while the composition is still
26
+ * running and keeping the answer.
27
+ */
28
+ /** Service name dshell-mode provides and the path-owning packages wait on. */
29
+ export declare const DSHELL_DATA_ROOT_SERVICE = "dshellDataRoot";
30
+ /** Which input decided the root, in the provider's precedence order. */
31
+ export type DshellDataRootSource = 'setting' | 'environment' | 'harness';
32
+ /** What the settlement decided about this process's data root. */
33
+ export interface DshellDataRootPlan {
34
+ /** The directory dshell's own trees are resolved under. */
35
+ readonly root: string;
36
+ /** The input that decided it. */
37
+ readonly source: DshellDataRootSource;
38
+ }
39
+ /** The seat a waiting package reads: a promise, never a captured string. */
40
+ export interface DshellDataRootSeat {
41
+ /** Settles with the decision, once the settings document has been read. */
42
+ readonly settled: Promise<DshellDataRootPlan>;
43
+ }
44
+ //# sourceMappingURL=data-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-root.d.ts","sourceRoot":"","sources":["../../src/data-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,mBAAmB,CAAA;AAExD,wEAAwE;AACxE,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAA;AAExE,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;CACtC;AAED,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;CAC9C"}
@@ -15,6 +15,7 @@
15
15
  * absorbed in one place instead of re-implemented per plugin.
16
16
  */
17
17
  export * from './contracts.js';
18
+ export * from './data-root.js';
18
19
  export * from './host-copy.js';
19
20
  export * from './shell-line.js';
20
21
  export * from './storage.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-aethra/dshell-std",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "dshell standard layer: the wire contracts every plugin shares (paths + shapes), with no dependency on dsh and no feature code — the single place a dsh interface change is absorbed.",
5
5
  "license": "MIT",
6
6
  "repository": {