@felan-ai/daemon 0.2.0 → 0.3.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.
Files changed (80) hide show
  1. package/dist/daemon/broker.d.ts +5 -2
  2. package/dist/daemon/broker.d.ts.map +1 -1
  3. package/dist/daemon/broker.js +24 -4
  4. package/dist/daemon/broker.js.map +1 -1
  5. package/dist/daemon/commands.d.ts +4 -0
  6. package/dist/daemon/commands.d.ts.map +1 -1
  7. package/dist/daemon/commands.js +27 -15
  8. package/dist/daemon/commands.js.map +1 -1
  9. package/dist/daemon/control-state.d.ts +12 -4
  10. package/dist/daemon/control-state.d.ts.map +1 -1
  11. package/dist/daemon/control-state.js +1 -0
  12. package/dist/daemon/control-state.js.map +1 -1
  13. package/dist/daemon/control-store.d.ts.map +1 -1
  14. package/dist/daemon/control-store.js +1 -3
  15. package/dist/daemon/control-store.js.map +1 -1
  16. package/dist/daemon/host-config.d.ts +9 -0
  17. package/dist/daemon/host-config.d.ts.map +1 -1
  18. package/dist/daemon/host-config.js +18 -2
  19. package/dist/daemon/host-config.js.map +1 -1
  20. package/dist/daemon/lifecycle.d.ts.map +1 -1
  21. package/dist/daemon/lifecycle.js +0 -3
  22. package/dist/daemon/lifecycle.js.map +1 -1
  23. package/dist/daemon/process-adapter.d.ts +2 -0
  24. package/dist/daemon/process-adapter.d.ts.map +1 -1
  25. package/dist/daemon/processes.d.ts.map +1 -1
  26. package/dist/daemon/processes.js +13 -4
  27. package/dist/daemon/processes.js.map +1 -1
  28. package/dist/daemon/profile-storage.d.ts.map +1 -1
  29. package/dist/daemon/profile-storage.js +4 -0
  30. package/dist/daemon/profile-storage.js.map +1 -1
  31. package/dist/daemon/projection.d.ts.map +1 -1
  32. package/dist/daemon/projection.js +11 -2
  33. package/dist/daemon/projection.js.map +1 -1
  34. package/dist/daemon/registry.d.ts +7 -3
  35. package/dist/daemon/registry.d.ts.map +1 -1
  36. package/dist/daemon/registry.js +64 -17
  37. package/dist/daemon/registry.js.map +1 -1
  38. package/dist/daemon/server.d.ts +6 -2
  39. package/dist/daemon/server.d.ts.map +1 -1
  40. package/dist/daemon/server.js +15 -9
  41. package/dist/daemon/server.js.map +1 -1
  42. package/dist/daemon/service.d.ts.map +1 -1
  43. package/dist/daemon/service.js +5 -3
  44. package/dist/daemon/service.js.map +1 -1
  45. package/dist/daemon/session-execution.d.ts +9 -1
  46. package/dist/daemon/session-execution.d.ts.map +1 -1
  47. package/dist/daemon/session-lifecycle-contracts.d.ts +4 -0
  48. package/dist/daemon/session-lifecycle-contracts.d.ts.map +1 -1
  49. package/dist/daemon/session-lifecycle.d.ts.map +1 -1
  50. package/dist/daemon/session-lifecycle.js +3 -0
  51. package/dist/daemon/session-lifecycle.js.map +1 -1
  52. package/dist/daemon/session-runtime.d.ts +6 -0
  53. package/dist/daemon/session-runtime.d.ts.map +1 -1
  54. package/dist/daemon/session-runtime.js.map +1 -1
  55. package/dist/logger.js +1 -1
  56. package/dist/logger.js.map +1 -1
  57. package/dist/remote/commands.d.ts +13 -9
  58. package/dist/remote/commands.d.ts.map +1 -1
  59. package/dist/remote/commands.js +21 -13
  60. package/dist/remote/commands.js.map +1 -1
  61. package/dist/remote/connector.d.ts +6 -0
  62. package/dist/remote/connector.d.ts.map +1 -1
  63. package/dist/remote/connector.js +56 -30
  64. package/dist/remote/connector.js.map +1 -1
  65. package/dist/remote/platform.d.ts +4 -1
  66. package/dist/remote/platform.d.ts.map +1 -1
  67. package/dist/remote/platform.js +6 -2
  68. package/dist/remote/platform.js.map +1 -1
  69. package/dist/remote/state.d.ts +1 -0
  70. package/dist/remote/state.d.ts.map +1 -1
  71. package/dist/remote/state.js +1 -0
  72. package/dist/remote/state.js.map +1 -1
  73. package/dist/remote/text.d.ts.map +1 -1
  74. package/dist/remote/text.js +1 -0
  75. package/dist/remote/text.js.map +1 -1
  76. package/dist/remote/token.d.ts +1 -0
  77. package/dist/remote/token.d.ts.map +1 -1
  78. package/dist/remote/token.js +5 -2
  79. package/dist/remote/token.js.map +1 -1
  80. package/package.json +2 -2
@@ -23,12 +23,15 @@ export class RemoteCommandExecutor {
23
23
  forget(id) { this.options.journal.forget(id); }
24
24
  async run(row, batch) {
25
25
  requestTimestamp(row.id);
26
+ const host = this.options.hostIdentity();
27
+ if (!host)
28
+ throw commandError('unavailable', 'Host identity is unavailable.');
26
29
  const id = row.id.toLowerCase();
27
30
  let identity = createHash('sha256').update(JSON.stringify(row)).digest('hex');
28
31
  let entry = this.options.journal.get(id);
29
32
  if (!entry && this.options.unrecordedIsIndeterminate?.()) {
30
33
  if (!('invalid' in row))
31
- identity = commandIdentity(row.requester.toLowerCase(), row.command, row.channel);
34
+ identity = commandIdentity(row.requester?.toLowerCase(), row.command, row.channel, row.automation);
32
35
  return this.complete(id, identity, failure(id, 'indeterminate', 'Remote command journal was lost. Inspect the session before retrying.'));
33
36
  }
34
37
  try {
@@ -39,14 +42,14 @@ export class RemoteCommandExecutor {
39
42
  return entry.identity === identity && entry.state === 'completed' ? entry.outcome : failure(id, 'request_conflict', 'Remote command identity changed.');
40
43
  throw commandError('invalid_request', 'Invalid remote command row.');
41
44
  }
42
- if (!/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu.test(row.requester))
45
+ if (row.requester !== undefined && !/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu.test(row.requester))
43
46
  throw commandError('invalid_request');
44
- requester = row.requester.toLowerCase();
47
+ requester = row.requester?.toLowerCase();
45
48
  command = parseRemoteCommand(row.command);
46
- identity = commandIdentity(requester, command, row.channel);
49
+ identity = commandIdentity(requester, command, row.channel, row.automation);
47
50
  if (entry && entry.identity !== identity)
48
51
  return failure(id, 'request_conflict', 'Remote command identity changed.');
49
- if (requester !== this.options.owner()?.toLowerCase()) {
52
+ if (host.kind === 'personal' && requester !== host.userId.toLowerCase()) {
50
53
  const outcome = failure(id, 'forbidden', 'Remote commands require the host owner.');
51
54
  return entry ? outcome : this.complete(id, identity, outcome);
52
55
  }
@@ -70,8 +73,11 @@ export class RemoteCommandExecutor {
70
73
  this.options.journal.write(dispatching);
71
74
  entry = dispatching;
72
75
  }
73
- const channel = row.channel;
74
- let response = await this.submit(entry, requester, replay, channel);
76
+ const remote = { ...(requester ? { user: requester } : {}), command: id,
77
+ ...(row.channel ? { channel: row.channel } : {}), ...(row.automation ? { automation: row.automation } : {}),
78
+ ...(command.op === 'sessions.create' && command.params.sessionId ? { sessionId: command.params.sessionId } : {}),
79
+ interactionKinds: this.options.capabilities.interactionKinds };
80
+ let response = await this.submit(entry, remote, replay);
75
81
  if (response.outcome === 'accepted' && command.op === 'sessions.create') {
76
82
  const session = entry.createdSession ?? ('sessionId' in response.result ? response.result.sessionId : undefined);
77
83
  if (typeof session !== 'string')
@@ -82,7 +88,8 @@ export class RemoteCommandExecutor {
82
88
  const dispatching = { id, identity, state: 'dispatching', request: prompt, createdSession: session };
83
89
  this.options.journal.write(dispatching);
84
90
  entry = dispatching;
85
- response = await this.options.submit(prompt, { user: requester, command: id, ...(channel ? { channel } : {}), interactionKinds: this.options.capabilities.interactionKinds });
91
+ const { sessionId: _, ...promptRemote } = remote;
92
+ response = await this.options.submit(prompt, promptRemote);
86
93
  }
87
94
  if (response.outcome === 'accepted')
88
95
  return this.complete(id, identity, { v: 1, re: id, outcome: 'accepted', result: { sessionId: session } });
@@ -101,11 +108,12 @@ export class RemoteCommandExecutor {
101
108
  return this.complete(id, identity, failure(id, code, 'Remote command was rejected.'));
102
109
  }
103
110
  }
104
- async submit(entry, user, replay, channel) {
111
+ async submit(entry, remote, replay) {
105
112
  if (replay && !this.options.lookup(entry.request.id))
106
113
  return failure(entry.id, 'indeterminate', 'The admitted request is no longer retained.');
107
- return this.options.submit(entry.request, { user, command: entry.id, ...(replay ? { requireRetained: true } : {}), ...(channel ? { channel } : {}),
108
- interactionKinds: this.options.capabilities.interactionKinds });
114
+ const { sessionId, ...context } = remote;
115
+ return this.options.submit(entry.request, { ...context, ...(entry.request.op === 'sessions.create' && sessionId ? { sessionId } : {}),
116
+ ...(replay ? { requireRetained: true } : {}) });
109
117
  }
110
118
  map(id, command) {
111
119
  if (command.op !== 'sessions.create')
@@ -130,8 +138,8 @@ export class RemoteCommandExecutor {
130
138
  return outcome;
131
139
  }
132
140
  }
133
- function commandIdentity(requester, command, channel) {
134
- return createHash('sha256').update(canonical({ requester, command, ...(channel ? { channel } : {}) })).digest('hex');
141
+ function commandIdentity(requester, command, channel, automation) {
142
+ return createHash('sha256').update(canonical({ ...(requester ? { requester } : {}), command, ...(channel ? { channel } : {}), ...(automation ? { automation } : {}) })).digest('hex');
135
143
  }
136
144
  function canonical(value) {
137
145
  if (Array.isArray(value))
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/remote/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/remote/commands.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { ProviderSecretStorage } from '../daemon/provider.js';
3
3
  import type { RemoteDatabase } from '../daemon/persistence.js';
4
4
  import type { SessionRegistry } from '../daemon/registry.js';
5
5
  import type { SessionServer } from '../daemon/server.js';
6
+ import type { HostConfig } from '../daemon/host-config.js';
6
7
  import { type RemoteClock } from './backoff.js';
7
8
  import { RemoteOutbox } from './outbox.js';
8
9
  import { PlatformClient } from './platform.js';
@@ -21,6 +22,7 @@ export interface RemoteConnectorOptions {
21
22
  owner: {
22
23
  assertCurrent(): void;
23
24
  };
25
+ remote?: HostConfig['remote'];
24
26
  apiUrl?: string;
25
27
  name?: string;
26
28
  daemonVersion?: string;
@@ -46,6 +48,7 @@ export declare class RemoteConnector {
46
48
  private supported;
47
49
  private configured;
48
50
  private host;
51
+ private hostIdentity;
49
52
  private token;
50
53
  private platform;
51
54
  private generation;
@@ -96,6 +99,8 @@ export declare class RemoteConnector {
96
99
  isShared(session: string): boolean;
97
100
  private rootId;
98
101
  private currentRootId;
102
+ private settings;
103
+ private applySharing;
99
104
  private sharing;
100
105
  private record;
101
106
  private markUnshared;
@@ -105,6 +110,7 @@ export declare class RemoteConnector {
105
110
  private registration;
106
111
  private register;
107
112
  private login;
113
+ private rememberHostIdentity;
108
114
  private connect;
109
115
  private fenceRepairedSessions;
110
116
  private heartbeat;
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/remote/connector.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EAAkD,KAAK,eAAe,EAAE,KAAK,YAAY,EAC/G,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAqC,KAAK,WAAW,EAAoB,MAAM,cAAc,CAAC;AAKrG,OAAO,EAAE,YAAY,EAA8C,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAC;AAG9D,OAAO,EAA4C,WAAW,EAA4B,MAAM,YAAY,CAAC;AAC7G,OAAO,EAAE,eAAe,EAA0B,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE1H,eAAO,MAAM,mBAAmB,EAAE,gBAIjC,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;AACpG,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG;IAC5H,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC,CAAC;CAC9E,CAAC;AACF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,kBAAkB,CAAC,CAAC;IACjE,aAAa,EAAE,qBAAqB,CAAC;IACrC,KAAK,EAAE;QAAE,aAAa,IAAI,IAAI,CAAA;KAAE,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,CAAC,OAAO,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;IACpE,OAAO,CAAC,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpE;AAUD,qBAAa,eAAe;IA+Cd,OAAO,CAAC,QAAQ,CAAC,OAAO;IA9CpC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,gBAAgB,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6D;IACtF,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkE;IAClG,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;gBAExB,OAAO,EAAE,sBAAsB;IA8B5D,KAAK,IAAI,IAAI;IAcb,UAAU,IAAI,IAAI;IAClB,QAAQ,IAAI,IAAI;IAEV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,MAAM,IAAI,YAAY;IAOtB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,aAAa;IA4BrB,UAAU,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;IAIjD,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IA6D5E,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAqBjD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAMlC,OAAO,CAAC,MAAM;IAGd,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,MAAM;IAGd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,KAAK;IAgBb,OAAO,CAAC,OAAO;IAoCf,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,OAAO;IAgCf,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,WAAW;YAcL,OAAO;YAqCP,cAAc;YAOd,iBAAiB;IA6D/B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,UAAU;YA4CJ,MAAM;IA0BpB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;YAGC,OAAO;CAMtB"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/remote/connector.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,9 @@ import { PlatformClient, PlatformError } from './platform.js';
13
13
  import { sessionShared, setSessionSharing, webCreatedSession } from './sharing.js';
14
14
  import { RemoteTextSanitizer } from './text.js';
15
15
  import { RemoteIntegrityError, RemoteStorageError, RemoteStore } from './state.js';
16
- import { HostTokenSource, HostTokenExchangeError } from './token.js';
16
+ import { HostTokenSource, HostTokenExchangeError, PLAIN_HTTP_API_HOSTS } from './token.js';
17
17
  export const REMOTE_CAPABILITIES = {
18
- operations: ['sessions.create', 'prompt', 'steer', 'cancel', 'interaction.answer'],
18
+ operations: ['sessions.create', 'prompt', 'steer', 'follow_up', 'cancel', 'interaction.answer'],
19
19
  interactionKinds: [...INTERACTION_KINDS],
20
20
  features: [...REMOTE_FEATURES],
21
21
  };
@@ -39,6 +39,7 @@ export class RemoteConnector {
39
39
  supported;
40
40
  configured = false;
41
41
  host;
42
+ hostIdentity;
42
43
  token;
43
44
  platform;
44
45
  generation = 0;
@@ -78,15 +79,15 @@ export class RemoteConnector {
78
79
  this.capabilities = structuredClone(options.capabilities ?? REMOTE_CAPABILITIES);
79
80
  this.store = new RemoteStore(options.database);
80
81
  this.outbox = new RemoteOutbox(options.database);
81
- this.lastStatus = { configured: false, share: this.store.settings().share, state: 'off', apiUrl: this.apiOrigin(), projects: [], pending: 0, sessions: 0 };
82
+ this.lastStatus = { configured: false, share: this.settings().share, state: 'off', apiUrl: this.apiOrigin(), projects: [], pending: 0, sessions: 0 };
82
83
  options.owner.assertCurrent();
83
84
  const journal = new RemoteCommandJournal(options.database);
84
85
  this.executor = new RemoteCommandExecutor({
85
86
  submit: (request, remote) => options.server.submitRemote(request, remote),
86
87
  lookup: id => options.server.hasRemoteRequest(id),
87
- owner: () => this.token?.current()?.host.userId,
88
+ hostIdentity: () => this.hostIdentity,
88
89
  clock: this.clock,
89
- projects: () => this.store.settings().projects,
90
+ projects: () => this.settings().projects,
90
91
  isShared: id => this.isShared(id),
91
92
  markWebCreated: id => {
92
93
  options.owner.assertCurrent();
@@ -167,7 +168,7 @@ export class RemoteConnector {
167
168
  }
168
169
  }
169
170
  collectStatus() {
170
- const settings = this.store.settings();
171
+ const settings = this.settings();
171
172
  const issues = [];
172
173
  const omissions = [];
173
174
  for (const id of this.store.sessions()) {
@@ -215,6 +216,9 @@ export class RemoteConnector {
215
216
  : value?.action === 'open_project' ? 'Remote project path must be absolute and its name must be 1–256 bytes.' : 'Invalid remote configuration.';
216
217
  throw commandError('invalid_request', message);
217
218
  }
219
+ if (this.options.remote && ['share', 'open_project', 'close_project'].includes(params.action)) {
220
+ throw commandError('forbidden', 'Remote sharing and projects are managed by host.json.');
221
+ }
218
222
  if (params.action === 'login' && params.apiUrl !== undefined)
219
223
  this.validateApiUrl(params.apiUrl);
220
224
  try {
@@ -248,22 +252,9 @@ export class RemoteConnector {
248
252
  }
249
253
  else {
250
254
  if (params.action === 'share') {
251
- const rows = this.options.registry.list();
252
- const share = this.store.settings().share;
253
- const before = new Map(rows.map(row => [row.id, sessionShared(this.sharing(row.id, row.root, share))]));
255
+ const previous = this.settings().share;
254
256
  this.store.configure({ share: params.share });
255
- for (const row of rows) {
256
- const shared = sessionShared(this.sharing(row.id, row.root, params.share));
257
- if (before.get(row.id) && !shared)
258
- this.markUnshared(row.id);
259
- else if (shared) {
260
- const record = this.store.session(row.id);
261
- if (!before.get(row.id) && record?.backfilled)
262
- this.store.setSession(row.id, { ...record, sharedPending: true, unsharedPending: false });
263
- this.safelyBackfill(row.id);
264
- }
265
- }
266
- this.wakePublish();
257
+ this.applySharing(previous, params.share);
267
258
  }
268
259
  else {
269
260
  if (params.action === 'open_project')
@@ -296,7 +287,7 @@ export class RemoteConnector {
296
287
  if (!root)
297
288
  throw commandError('not_found');
298
289
  const children = this.options.registry.list().filter(row => row.root === root);
299
- const share = this.store.settings().share;
290
+ const share = this.settings().share;
300
291
  const before = new Map(children.map(row => [row.id, sessionShared(this.sharing(row.id, root, share))]));
301
292
  let transition;
302
293
  try {
@@ -336,13 +327,34 @@ export class RemoteConnector {
336
327
  this.rootIds.set(session, row.root);
337
328
  return row.root;
338
329
  }
339
- sharing(session, root = this.rootId(session), share = this.store.settings().share) {
330
+ settings() { return { ...this.store.settings(), ...this.options.remote }; }
331
+ applySharing(previous, next) {
332
+ if (previous !== next) {
333
+ const rows = this.options.registry.list();
334
+ const before = new Map(rows.map(row => [row.id, sessionShared({ ...this.sharing(row.id, row.root, previous), configured: true })]));
335
+ for (const row of rows) {
336
+ const shared = sessionShared({ ...this.sharing(row.id, row.root, next), configured: true });
337
+ if (before.get(row.id) && !shared)
338
+ this.markUnshared(row.id);
339
+ else if (shared) {
340
+ const record = this.store.session(row.id);
341
+ if (!before.get(row.id) && record?.backfilled)
342
+ this.store.setSession(row.id, { ...record, sharedPending: true, unsharedPending: false });
343
+ this.safelyBackfill(row.id);
344
+ }
345
+ }
346
+ this.wakePublish();
347
+ }
348
+ if (this.store.settings().appliedShare !== next)
349
+ this.store.configure({ appliedShare: next });
350
+ }
351
+ sharing(session, root = this.rootId(session), share = this.settings().share) {
340
352
  const record = this.store.session(session);
341
353
  const rootRecord = root && root !== session ? this.store.session(root) : undefined;
342
354
  return { configured: this.configured, share, ...(record ? { record } : {}), ...(rootRecord ? { rootRecord } : {}) };
343
355
  }
344
356
  record(session, share) {
345
- return this.store.session(session) ?? { shared: (share ?? this.store.settings().share) === 'all', explicit: false, origin: 'local', backfilled: false, unsharedPending: false };
357
+ return this.store.session(session) ?? { shared: (share ?? this.settings().share) === 'all', explicit: false, origin: 'local', backfilled: false, unsharedPending: false };
346
358
  }
347
359
  markUnshared(session) {
348
360
  this.text.discard(session);
@@ -371,7 +383,7 @@ export class RemoteConnector {
371
383
  catch {
372
384
  this.state = 'offline';
373
385
  this.reason = 'unavailable';
374
- this.message = 'Remote API URL is invalid. Run /remote login with a valid HTTPS URL (HTTP is allowed only on loopback).';
386
+ this.message = 'Remote API URL is invalid. Run /remote login with a valid HTTPS URL (HTTP is allowed only for local hosts).';
375
387
  // Status requires an HTTP origin even when the configured endpoint cannot be parsed.
376
388
  return 'https://invalid.invalid';
377
389
  }
@@ -381,17 +393,17 @@ export class RemoteConnector {
381
393
  const url = new URL(value);
382
394
  if (url.username || url.password || url.search || url.hash || !['https:', 'http:'].includes(url.protocol)
383
395
  || /[\\\u0000-\u0020\u007f-\u009f]/u.test(value)
384
- || url.protocol === 'http:' && !['localhost', '127.0.0.1', '[::1]'].includes(url.hostname))
396
+ || url.protocol === 'http:' && !PLAIN_HTTP_API_HOSTS.includes(url.hostname))
385
397
  throw new Error();
386
398
  }
387
399
  catch {
388
- throw commandError('invalid_request', 'Remote API URL must use HTTPS (HTTP is allowed only on loopback), without credentials, query or fragment.');
400
+ throw commandError('invalid_request', 'Remote API URL must use HTTPS (HTTP is allowed only for local hosts), without credentials, query or fragment.');
389
401
  }
390
402
  }
391
403
  registration() {
392
404
  return { name: Array.from(this.options.name ?? hostname()).reduce((name, char) => Buffer.byteLength(name + char) <= 128 ? name + char : name, ''),
393
405
  daemonVersion: this.options.daemonVersion ?? DAEMON_VERSION, rowSchemaVersion: ROW_SCHEMA_VERSION,
394
- capabilities: this.capabilities, projects: this.store.settings().projects };
406
+ capabilities: this.capabilities, projects: this.settings().projects };
395
407
  }
396
408
  register(platform) {
397
409
  const generation = this.generation;
@@ -415,6 +427,7 @@ export class RemoteConnector {
415
427
  this.message = undefined;
416
428
  this.supported = undefined;
417
429
  this.attempt = 0;
430
+ this.hostIdentity = undefined;
418
431
  this.reauthorizedPublications.clear();
419
432
  try {
420
433
  try {
@@ -424,10 +437,18 @@ export class RemoteConnector {
424
437
  this.apiOrigin();
425
438
  return;
426
439
  }
440
+ const stored = this.store.settings();
441
+ this.applySharing(stored.appliedShare ?? stored.share, this.settings().share);
427
442
  this.token = (this.options.tokenSource ?? (options => new HostTokenSource(options)))({
428
443
  pat, apiUrl: this.apiUrl(), installId: this.store.settings().installId,
429
444
  daemonVersion: this.options.daemonVersion ?? DAEMON_VERSION, name: this.options.name ?? hostname(), clock: this.clock,
430
445
  });
446
+ const token = this.token;
447
+ const generation = this.generation;
448
+ token.onChange((_value, info) => {
449
+ if (this.current(generation) && this.token === token)
450
+ this.rememberHostIdentity(info);
451
+ });
431
452
  for (const row of this.options.registry.list())
432
453
  this.safelyBackfill(row.id);
433
454
  this.connect();
@@ -438,6 +459,9 @@ export class RemoteConnector {
438
459
  this.message = 'Remote connection settings are unavailable. Run /remote login to retry.';
439
460
  }
440
461
  }
462
+ rememberHostIdentity(info) {
463
+ this.hostIdentity = info.host.userId === undefined ? { kind: 'team' } : { kind: 'personal', userId: info.host.userId };
464
+ }
441
465
  connect() {
442
466
  const token = this.token;
443
467
  const generation = this.generation;
@@ -468,9 +492,11 @@ export class RemoteConnector {
468
492
  await this.bounded(platform.close()).catch(() => { });
469
493
  return;
470
494
  }
471
- const host = token.current()?.host.id;
472
- if (!host)
495
+ const info = token.current();
496
+ if (!info)
473
497
  throw new PlatformError('invalid', 'Host metadata is unavailable.');
498
+ this.rememberHostIdentity(info);
499
+ const host = info.host.id;
474
500
  this.host = host;
475
501
  this.fenceRepairedSessions(host);
476
502
  await this.register(platform);