@undefineds.co/linx 0.3.19 → 0.3.20

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 (39) hide show
  1. package/dist/lib/auto-mode/pod-persistence.js +0 -2
  2. package/dist/lib/auto-mode/pod-persistence.js.map +1 -1
  3. package/dist/lib/capture/persistence.js +377 -0
  4. package/dist/lib/capture/persistence.js.map +1 -0
  5. package/dist/lib/capture/tool.js +242 -0
  6. package/dist/lib/capture/tool.js.map +1 -0
  7. package/dist/lib/linx-cloud-errors.js +5 -0
  8. package/dist/lib/linx-cloud-errors.js.map +1 -1
  9. package/dist/lib/linx-status-line.js +8 -1
  10. package/dist/lib/linx-status-line.js.map +1 -1
  11. package/dist/lib/pi-adapter/branding.js +103 -34
  12. package/dist/lib/pi-adapter/branding.js.map +1 -1
  13. package/dist/lib/pi-adapter/interactive.js +32 -23
  14. package/dist/lib/pi-adapter/interactive.js.map +1 -1
  15. package/dist/lib/pi-adapter/pod-mirror.js +102 -4
  16. package/dist/lib/pi-adapter/pod-mirror.js.map +1 -1
  17. package/dist/lib/pi-adapter/pod-native.js +0 -2
  18. package/dist/lib/pi-adapter/pod-native.js.map +1 -1
  19. package/dist/lib/pi-adapter/runtime.js +12 -2
  20. package/dist/lib/pi-adapter/runtime.js.map +1 -1
  21. package/dist/lib/status-line-command.js +2 -2
  22. package/dist/lib/status-line-command.js.map +1 -1
  23. package/dist/lib/symphony/pod-projection.js +4 -6
  24. package/dist/lib/symphony/pod-projection.js.map +1 -1
  25. package/dist/lib/symphony-command.js +1 -1
  26. package/dist/lib/symphony-command.js.map +1 -1
  27. package/dist/skills/basic/SKILL.md +46 -0
  28. package/dist/skills/capture/SKILL.md +165 -0
  29. package/dist/skills/symphony/SKILL.md +8 -4
  30. package/dist/skills/xpod-cli/SKILL.md +13 -2
  31. package/package.json +2 -2
  32. package/vendor/agent-runtime/dist/coordination.d.ts +93 -0
  33. package/vendor/agent-runtime/dist/coordination.js +145 -0
  34. package/vendor/agent-runtime/dist/index.d.ts +1 -0
  35. package/vendor/agent-runtime/dist/index.js +1 -0
  36. package/vendor/agent-runtime/dist/reconciler.d.ts +11 -0
  37. package/vendor/agent-runtime/dist/reconciler.js +41 -3
  38. package/vendor/agent-runtime/dist/symphony.d.ts +9 -9
  39. package/vendor/agent-runtime/dist/symphony.js +4 -4
@@ -0,0 +1,242 @@
1
+ import { defineTool } from '@earendil-works/pi-coding-agent';
2
+ import { Type } from 'typebox';
3
+ import { getDefaultPodDataSession } from '../pod-data-session.js';
4
+ import { drizzle, solidResources } from '../models.js';
5
+ import { persistObservedCapture, persistAmbiguousCapture, recordCaptureCommit, recordCaptureReviewEvent, requestCaptureApproval, } from './persistence.js';
6
+ const CaptureOperation = {
7
+ OBSERVED_CANDIDATE: 'observed_candidate',
8
+ DIRECT_COMMIT_EVENT: 'direct_commit_event',
9
+ OPTIMISTIC_COMMIT_EVENT: 'optimistic_commit_event',
10
+ AMBIGUOUS_INPUT: 'ambiguous_input',
11
+ APPROVAL_REQUEST: 'approval_request',
12
+ REVIEW_EVENT: 'review_event',
13
+ };
14
+ export function createLinxCaptureTool(dependencies = {}) {
15
+ const getPodDataSession = dependencies.getPodDataSession ?? getDefaultPodDataSession;
16
+ const createDb = dependencies.createDb ?? createDefaultCaptureDb;
17
+ return defineTool({
18
+ name: 'linx_capture',
19
+ label: 'LinX Capture',
20
+ description: 'Persist LinX CaptureCandidate, CaptureEvent, ApprovalRequest, and InputRequest records to the active Solid Pod using shared LinX models.',
21
+ promptSnippet: 'linx_capture: record Secretary capture candidates, capture events, and Approval/Input gates in the active Pod.',
22
+ promptGuidelines: [
23
+ 'Use linx_capture for CaptureCandidate/CaptureEvent ledgers; use xpod obj for formal typed resource writes when the target resource itself must be created.',
24
+ 'Do not use linx_capture to silently create user-facing taxonomy; choose approval_request or ambiguous_input when authority or missing information is required.',
25
+ 'Always provide the source IRI or durable source URL for duplicate detection and auditability.',
26
+ ],
27
+ parameters: Type.Object({
28
+ operation: Type.Union([
29
+ Type.Literal(CaptureOperation.OBSERVED_CANDIDATE),
30
+ Type.Literal(CaptureOperation.DIRECT_COMMIT_EVENT),
31
+ Type.Literal(CaptureOperation.OPTIMISTIC_COMMIT_EVENT),
32
+ Type.Literal(CaptureOperation.AMBIGUOUS_INPUT),
33
+ Type.Literal(CaptureOperation.APPROVAL_REQUEST),
34
+ Type.Literal(CaptureOperation.REVIEW_EVENT),
35
+ ]),
36
+ id: Type.Optional(Type.String()),
37
+ eventId: Type.Optional(Type.String()),
38
+ source: Type.Optional(Type.String()),
39
+ summary: Type.Optional(Type.String()),
40
+ targetResource: Type.Optional(Type.String()),
41
+ suggestedType: Type.Optional(Type.String()),
42
+ suggestedTarget: Type.Optional(Type.String()),
43
+ confidence: Type.Optional(Type.Union([Type.Literal('low'), Type.Literal('medium'), Type.Literal('high')])),
44
+ reason: Type.Optional(Type.String()),
45
+ actor: Type.Optional(Type.String()),
46
+ chat: Type.Optional(Type.String()),
47
+ thread: Type.Optional(Type.String()),
48
+ task: Type.Optional(Type.String()),
49
+ run: Type.Optional(Type.String()),
50
+ sourceHash: Type.Optional(Type.String()),
51
+ metadata: Type.Optional(Type.Record(Type.String(), Type.Any())),
52
+ createdAt: Type.Optional(Type.Union([Type.String(), Type.Number()])),
53
+ approval: Type.Optional(Type.String()),
54
+ inputRequest: Type.Optional(Type.String()),
55
+ inputRequestId: Type.Optional(Type.String()),
56
+ prompt: Type.Optional(Type.String()),
57
+ inputOptions: Type.Optional(Type.String()),
58
+ requestKind: Type.Optional(Type.String()),
59
+ requester: Type.Optional(Type.String()),
60
+ assignedTo: Type.Optional(Type.String()),
61
+ inputContext: Type.Optional(Type.String()),
62
+ approvalId: Type.Optional(Type.String()),
63
+ session: Type.Optional(Type.String()),
64
+ toolCallId: Type.Optional(Type.String()),
65
+ toolName: Type.Optional(Type.String()),
66
+ target: Type.Optional(Type.String()),
67
+ action: Type.Optional(Type.String()),
68
+ risk: Type.Optional(Type.String()),
69
+ approvalOptions: Type.Optional(Type.String()),
70
+ approvalContext: Type.Optional(Type.String()),
71
+ expiresAt: Type.Optional(Type.Union([Type.String(), Type.Number()])),
72
+ about: Type.Optional(Type.String()),
73
+ candidateId: Type.Optional(Type.String()),
74
+ candidateIri: Type.Optional(Type.String()),
75
+ decision: Type.Optional(Type.Union([
76
+ Type.Literal('promoted'),
77
+ Type.Literal('rejected'),
78
+ Type.Literal('corrected'),
79
+ Type.Literal('rollback'),
80
+ Type.Literal('ignored'),
81
+ ])),
82
+ userCorrection: Type.Optional(Type.String()),
83
+ }),
84
+ async execute(toolCallId, rawParams) {
85
+ const params = rawParams;
86
+ try {
87
+ const session = await getPodDataSession();
88
+ if (!session) {
89
+ return errorResult('No active LinX Pod session. Run /login or linx login before recording capture data.');
90
+ }
91
+ const db = createDb(session);
92
+ const result = await executeCaptureOperation({ db, webId: session.webId }, params, toolCallId);
93
+ return okResult(params.operation, result);
94
+ }
95
+ catch (error) {
96
+ return errorResult(error instanceof Error ? error.message : String(error));
97
+ }
98
+ },
99
+ });
100
+ }
101
+ function createDefaultCaptureDb(session) {
102
+ if (!session.solidSession) {
103
+ throw new Error('Active LinX Pod session is missing a Solid session for capture persistence.');
104
+ }
105
+ return drizzle(session.solidSession, {
106
+ logger: false,
107
+ disableInteropDiscovery: true,
108
+ podUrl: session.podUrl,
109
+ resourcePreparation: 'best-effort',
110
+ schema: solidResources,
111
+ });
112
+ }
113
+ async function executeCaptureOperation(context, params, toolCallId) {
114
+ switch (params.operation) {
115
+ case CaptureOperation.OBSERVED_CANDIDATE:
116
+ return persistObservedCapture(context, buildObservedInput(params));
117
+ case CaptureOperation.DIRECT_COMMIT_EVENT:
118
+ return recordCaptureCommit(context, {
119
+ ...buildCommitInput(params),
120
+ decision: 'direct_commit',
121
+ });
122
+ case CaptureOperation.OPTIMISTIC_COMMIT_EVENT:
123
+ return recordCaptureCommit(context, {
124
+ ...buildCommitInput(params),
125
+ decision: 'optimistic_commit',
126
+ });
127
+ case CaptureOperation.AMBIGUOUS_INPUT:
128
+ return persistAmbiguousCapture(context, {
129
+ ...buildObservedInput(params),
130
+ inputRequestId: requireString(params, 'inputRequestId'),
131
+ session: requireString(params, 'session'),
132
+ prompt: requireString(params, 'prompt'),
133
+ inputOptions: params.inputOptions,
134
+ requestKind: params.requestKind,
135
+ requester: params.requester,
136
+ assignedTo: params.assignedTo,
137
+ inputContext: params.inputContext,
138
+ expiresAt: params.expiresAt,
139
+ });
140
+ case CaptureOperation.APPROVAL_REQUEST:
141
+ return requestCaptureApproval(context, {
142
+ ...buildObservedInput(params),
143
+ approvalId: requireString(params, 'approvalId'),
144
+ session: requireString(params, 'session'),
145
+ toolCallId: params.toolCallId ?? toolCallId,
146
+ toolName: params.toolName,
147
+ target: requireString(params, 'target'),
148
+ action: requireString(params, 'action'),
149
+ risk: requireString(params, 'risk'),
150
+ approvalOptions: params.approvalOptions,
151
+ approvalContext: params.approvalContext,
152
+ assignedTo: params.assignedTo,
153
+ expiresAt: params.expiresAt,
154
+ });
155
+ case CaptureOperation.REVIEW_EVENT:
156
+ return recordCaptureReviewEvent(context, {
157
+ eventId: requireString(params, 'eventId'),
158
+ source: requireString(params, 'source'),
159
+ decision: params.decision ?? 'corrected',
160
+ candidateId: params.candidateId,
161
+ candidateIri: params.candidateIri,
162
+ targetResource: params.targetResource,
163
+ suggestedType: params.suggestedType,
164
+ suggestedTarget: params.suggestedTarget,
165
+ confidence: params.confidence,
166
+ reason: params.reason,
167
+ userCorrection: params.userCorrection,
168
+ approval: params.approval,
169
+ inputRequest: params.inputRequest,
170
+ actor: params.actor,
171
+ chat: params.chat,
172
+ thread: params.thread,
173
+ task: params.task,
174
+ run: params.run,
175
+ about: params.about,
176
+ metadata: params.metadata,
177
+ createdAt: params.createdAt,
178
+ });
179
+ }
180
+ }
181
+ function buildObservedInput(params) {
182
+ return {
183
+ id: requireString(params, 'id'),
184
+ eventId: requireString(params, 'eventId'),
185
+ source: requireString(params, 'source'),
186
+ summary: requireString(params, 'summary'),
187
+ suggestedType: params.suggestedType,
188
+ suggestedTarget: params.suggestedTarget,
189
+ confidence: params.confidence,
190
+ reason: params.reason,
191
+ actor: params.actor,
192
+ chat: params.chat,
193
+ thread: params.thread,
194
+ task: params.task,
195
+ run: params.run,
196
+ sourceHash: params.sourceHash,
197
+ metadata: params.metadata,
198
+ createdAt: params.createdAt,
199
+ };
200
+ }
201
+ function buildCommitInput(params) {
202
+ return {
203
+ eventId: requireString(params, 'eventId'),
204
+ source: requireString(params, 'source'),
205
+ targetResource: requireString(params, 'targetResource'),
206
+ suggestedType: params.suggestedType,
207
+ suggestedTarget: params.suggestedTarget,
208
+ confidence: params.confidence,
209
+ reason: params.reason,
210
+ approval: params.approval,
211
+ inputRequest: params.inputRequest,
212
+ actor: params.actor,
213
+ chat: params.chat,
214
+ thread: params.thread,
215
+ task: params.task,
216
+ run: params.run,
217
+ about: params.about,
218
+ metadata: params.metadata,
219
+ createdAt: params.createdAt,
220
+ };
221
+ }
222
+ function requireString(params, key) {
223
+ const value = params[key];
224
+ if (typeof value !== 'string' || value.trim().length === 0) {
225
+ throw new Error(`linx_capture ${params.operation} requires ${String(key)}`);
226
+ }
227
+ return value;
228
+ }
229
+ function okResult(operation, result) {
230
+ return {
231
+ content: [{ type: 'text', text: `Capture ${operation} recorded: ${JSON.stringify(result)}` }],
232
+ details: { operation, result },
233
+ };
234
+ }
235
+ function errorResult(message) {
236
+ return {
237
+ content: [{ type: 'text', text: message }],
238
+ details: { error: message },
239
+ isError: true,
240
+ };
241
+ }
242
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/lib/capture/tool.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,11 @@ export function isLinxCloudAuthExpiredMessage(errorOrMessage) {
41
41
  || normalized.includes('invalid solid token')
42
42
  || (normalized.includes('401') && normalized.includes('unauthorized'));
43
43
  }
44
+ export function isLinxCloudLoginRequiredMessage(errorOrMessage) {
45
+ const normalized = stripAnsi(errorOrMessage instanceof Error ? errorOrMessage.message : String(errorOrMessage)).toLowerCase();
46
+ return normalized.includes('no linx cloud login found')
47
+ || normalized.includes('no credentials found. run `linx login` first');
48
+ }
44
49
  function isCloudChatCompletionsPath(pathname) {
45
50
  const segments = normalizePathname(pathname).split('/').filter(Boolean);
46
51
  return segments.length >= 3
@@ -1 +1 @@
1
- {"version":3,"file":"linx-cloud-errors.js","sourceRoot":"","sources":["../../src/lib/linx-cloud-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linx-cloud-errors.js","sourceRoot":"","sources":["../../src/lib/linx-cloud-errors.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
3
3
  import { truncateToWidth, visibleWidth } from '@earendil-works/pi-tui';
4
4
  import { getSolidLinxAppDir } from './solid-local-store.js';
5
5
  export const DEFAULT_STATUS_LINE_TOKENS = [
6
+ 'mode',
6
7
  'total-input-tokens',
7
8
  'total-output-tokens',
8
9
  'context-usage',
@@ -33,9 +34,12 @@ const STATUS_LINE_TOKEN_ALIASES = {
33
34
  pwd: 'current-dir',
34
35
  branch: 'git-branch',
35
36
  reasoning: 'thinking',
37
+ peer: 'mode',
38
+ state: 'mode',
39
+ workspace: 'current-dir',
36
40
  };
37
41
  const STATUS_LINE_TOKENS = new Set(LINX_STATUS_LINE_TOKEN_NAMES);
38
- export function buildLinxFooterStatusLine(input) {
42
+ export function buildLinxTuiStatusLine(input) {
39
43
  const config = readLinxStatusLineConfig();
40
44
  const context = createStatusLineContext(input);
41
45
  const parts = config.tokens
@@ -57,10 +61,13 @@ function createStatusLineContext(input) {
57
61
  contextUsage,
58
62
  autoCompactEnabled: input.autoCompactEnabled,
59
63
  gitBranch: normalizeText(input.footerData?.getGitBranch?.()),
64
+ modeLabel: normalizeText(input.modeLabel),
60
65
  };
61
66
  }
62
67
  function renderStatusLineToken(token, context) {
63
68
  switch (token) {
69
+ case 'mode':
70
+ return context.modeLabel;
64
71
  case 'total-input-tokens':
65
72
  return context.usage.input > 0 ? `↑${formatTokenCount(context.usage.input)}` : null;
66
73
  case 'total-output-tokens':
@@ -1 +1 @@
1
- {"version":3,"file":"linx-status-line.js","sourceRoot":"","sources":["../../src/lib/linx-status-line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linx-status-line.js","sourceRoot":"","sources":["../../src/lib/linx-status-line.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { extractUsernameFromWebId, resolveProfileDisplayName } from '../profile-
11
11
  import { LINX_TUI_KEYMAP_COMMAND, LINX_TUI_KEYMAP_LABEL, LINX_TUI_LOGIN_COMMAND } from '../linx-tui-contract.js';
12
12
  import { suppressPodStatusOutput } from './pod-status-output.js';
13
13
  import { LINX_RUNTIME_MANAGED_AUTH_KEY } from './runtime.js';
14
- import { formatLinxCliErrorMessage } from '../linx-cloud-errors.js';
14
+ import { formatLinxCliErrorMessage, isLinxCloudLoginRequiredMessage } from '../linx-cloud-errors.js';
15
15
  import { getSolidLinxAgentDir } from '../solid-local-store.js';
16
16
  export const LINX_AGENT_DIR = getSolidLinxAgentDir();
17
17
  export const LINX_UPDATE_PACKAGE_NAME = '@undefineds.co/linx';
@@ -201,7 +201,7 @@ async function installLinxUpdateAndRestart(interactive, newVersion) {
201
201
  }
202
202
  interactive.showStatus?.(`LinX ${newVersion} installed. Restarting...`);
203
203
  interactive.ui?.requestRender?.();
204
- restartCurrentProcess(interactive);
204
+ restartCurrentLinxProcess(interactive);
205
205
  }
206
206
  function runNpmInstallLatest() {
207
207
  const npmCommand = process.env.npm_execpath || 'npm';
@@ -225,18 +225,48 @@ function runNpmInstallLatest() {
225
225
  });
226
226
  });
227
227
  }
228
- function restartCurrentProcess(interactive) {
229
- const child = spawn(process.execPath, process.argv.slice(1), {
230
- cwd: process.cwd(),
231
- env: process.env,
232
- stdio: 'inherit',
233
- detached: false,
234
- });
235
- child.on('error', (error) => {
236
- interactive.showError?.(`LinX restart failed: ${error.message}`);
237
- });
238
- interactive.stop?.();
239
- setTimeout(() => process.exit(0), 50);
228
+ export function createLinxRestartProcessPlan(options = {}) {
229
+ return {
230
+ command: options.execPath ?? process.execPath,
231
+ args: (options.argv ?? process.argv).slice(1),
232
+ cwd: options.cwd ?? process.cwd(),
233
+ env: {
234
+ ...(options.env ?? process.env),
235
+ LINX_RESTARTED_AFTER_UPDATE: '1',
236
+ },
237
+ };
238
+ }
239
+ export function restartCurrentLinxProcess(interactive, options = {}) {
240
+ const plan = createLinxRestartProcessPlan(options);
241
+ const spawnProcess = options.spawnProcess ?? spawn;
242
+ const setTimeoutFn = options.setTimeoutFn ?? setTimeout;
243
+ const exitProcess = options.exitProcess ?? process.exit.bind(process);
244
+ const delayMs = options.delayMs ?? 100;
245
+ const exitDelayMs = options.exitDelayMs ?? 50;
246
+ // The child TUI must not start while the old TUI still owns raw stdin.
247
+ // Otherwise parent/child can race in process.stdin.setRawMode(), which shows
248
+ // up as "setRawMode EIO" and leaves a half-Pi, half-LinX screen.
249
+ try {
250
+ interactive.stop?.();
251
+ }
252
+ catch (error) {
253
+ const message = error instanceof Error ? error.message : String(error);
254
+ interactive.showError?.(`LinX restart cleanup failed: ${message}`);
255
+ }
256
+ setTimeoutFn(() => {
257
+ const child = spawnProcess(plan.command, plan.args, {
258
+ cwd: plan.cwd,
259
+ env: plan.env,
260
+ stdio: 'inherit',
261
+ detached: false,
262
+ });
263
+ child.on('error', (error) => {
264
+ interactive.showError?.(`LinX restart failed: ${error.message}`);
265
+ });
266
+ child.on('spawn', () => {
267
+ setTimeoutFn(() => exitProcess(0), exitDelayMs);
268
+ });
269
+ }, delayMs);
240
270
  }
241
271
  function showLinxUpdateFallback(interactive, newVersion) {
242
272
  const lines = [
@@ -301,11 +331,17 @@ function patchAuthExpiredSessionEvents(interactive) {
301
331
  }
302
332
  interactive.handleEvent = async function patchedHandleEvent(event) {
303
333
  const normalizedEvent = normalizeLinxCliErrorEvent(event);
304
- if (eventHasLinxAuthExpiredError(normalizedEvent)) {
305
- showLinxAuthExpiredRecoveryNotice(this);
306
- prepareLinxAuthExpiredRetry(this);
307
- suppressLinxAuthExpiredAssistantError(this);
308
- scheduleLinxCloudLogin(this, 'expired');
334
+ const authPromptReason = resolveLinxAuthPromptReasonFromEvent(normalizedEvent);
335
+ if (authPromptReason) {
336
+ if (authPromptReason === 'expired') {
337
+ showLinxAuthExpiredRecoveryNotice(this);
338
+ prepareLinxAuthExpiredRetry(this);
339
+ suppressLinxAuthExpiredAssistantError(this);
340
+ }
341
+ else {
342
+ showLinxAuthRequiredRecoveryNotice(this);
343
+ }
344
+ scheduleLinxCloudLogin(this, authPromptReason);
309
345
  return undefined;
310
346
  }
311
347
  const result = await originalHandleEvent(normalizedEvent);
@@ -319,31 +355,46 @@ function patchAuthExpiredLoginPrompt(interactive) {
319
355
  }
320
356
  interactive.showError = function patchedShowError(errorMessage) {
321
357
  const text = typeof errorMessage === 'string' ? errorMessage : String(errorMessage);
322
- if (this[LINX_AUTH_REPORTING_ERROR] || !isLinxAuthExpiredError(text)) {
358
+ const authPromptReason = resolveLinxAuthPromptReasonFromText(text);
359
+ if (this[LINX_AUTH_REPORTING_ERROR] || !authPromptReason) {
323
360
  return originalShowError(formatLinxCliErrorMessage(errorMessage));
324
361
  }
325
- showLinxAuthExpiredRecoveryNotice(this);
326
- prepareLinxAuthExpiredRetry(this);
327
- scheduleLinxCloudLogin(this, 'expired');
362
+ if (authPromptReason === 'expired') {
363
+ showLinxAuthExpiredRecoveryNotice(this);
364
+ prepareLinxAuthExpiredRetry(this);
365
+ }
366
+ else {
367
+ showLinxAuthRequiredRecoveryNotice(this);
368
+ }
369
+ scheduleLinxCloudLogin(this, authPromptReason);
328
370
  return undefined;
329
371
  };
330
372
  }
373
+ function resolveLinxAuthPromptReasonFromText(text) {
374
+ if (isLinxAuthExpiredError(text)) {
375
+ return 'expired';
376
+ }
377
+ if (isLinxCloudLoginRequiredMessage(text)) {
378
+ return 'required';
379
+ }
380
+ return null;
381
+ }
331
382
  function isLinxAuthExpiredError(text) {
332
383
  const normalized = stripAnsi(text).toLowerCase();
333
384
  return normalized.includes('linx cloud login expired')
334
385
  || normalized.includes('invalid solid token')
335
386
  || (normalized.includes('chat request failed (401)') && normalized.includes('unauthorized'));
336
387
  }
337
- function eventHasLinxAuthExpiredError(event) {
388
+ function resolveLinxAuthPromptReasonFromEvent(event) {
338
389
  if (!isRecord(event)) {
339
- return false;
390
+ return null;
340
391
  }
341
392
  const message = isRecord(event.message) ? event.message : undefined;
342
393
  const topLevelErrorMessage = typeof event.errorMessage === 'string' ? event.errorMessage : '';
343
394
  const errorMessage = typeof message?.errorMessage === 'string' ? message.errorMessage : '';
344
395
  const error = isRecord(event.error) ? event.error : undefined;
345
396
  const nestedErrorMessage = typeof error?.errorMessage === 'string' ? error.errorMessage : '';
346
- return isLinxAuthExpiredError(`${topLevelErrorMessage}\n${errorMessage}\n${nestedErrorMessage}`);
397
+ return resolveLinxAuthPromptReasonFromText(`${topLevelErrorMessage}\n${errorMessage}\n${nestedErrorMessage}`);
347
398
  }
348
399
  function normalizeLinxCliErrorEvent(event) {
349
400
  if (typeof event === 'string') {
@@ -383,6 +434,14 @@ function showLinxAuthExpiredRecoveryNotice(interactive) {
383
434
  ].join('\n'));
384
435
  interactive.ui?.requestRender?.();
385
436
  }
437
+ function showLinxAuthRequiredRecoveryNotice(interactive) {
438
+ interactive.showStatus?.([
439
+ 'LinX Cloud login required.',
440
+ 'No local Solid session is available for LinX Cloud.',
441
+ 'Choose a sign-in method below, or run /login if the selector is not visible.',
442
+ ].join('\n'));
443
+ interactive.ui?.requestRender?.();
444
+ }
386
445
  async function startLinxCloudLogin(interactive, options = {}) {
387
446
  if (interactive[LINX_AUTH_LOGIN_IN_PROGRESS]) {
388
447
  return;
@@ -504,7 +563,7 @@ function matchSelectorChoice(value, options) {
504
563
  ?? options.find((option) => stripAnsi(option).trim() === stripAnsi(normalized).trim());
505
564
  }
506
565
  function buildLinxAuthPromptTitle(reason, providerLabel) {
507
- if (reason === 'startup') {
566
+ if (reason === 'startup' || reason === 'required') {
508
567
  return [
509
568
  'LinX Cloud login required',
510
569
  `Connect to ${providerLabel} before using LinX TUI.`,
@@ -780,7 +839,7 @@ function authStatusPrefix(reason) {
780
839
  if (reason === 'expired') {
781
840
  return 'LinX Cloud login refreshed.';
782
841
  }
783
- if (reason === 'startup') {
842
+ if (reason === 'startup' || reason === 'required') {
784
843
  return 'LinX Cloud connected.';
785
844
  }
786
845
  return 'LinX Cloud authorization updated.';
@@ -977,12 +1036,7 @@ function patchHeader(interactive) {
977
1036
  }
978
1037
  let profileDisplayName = null;
979
1038
  const replacement = new LinxWelcomeCard(() => buildLinxWelcomeCardState(this, profileDisplayName));
980
- const currentHeader = this.customHeader ?? this.builtInHeader;
981
- const index = this.headerContainer?.children?.indexOf?.(currentHeader) ?? -1;
982
- if (index >= 0) {
983
- this.headerContainer.children[index] = replacement;
984
- }
985
- this.customHeader = replacement;
1039
+ setLinxWelcomeHeader(this, replacement);
986
1040
  this.ui?.requestRender?.();
987
1041
  this.updateTerminalTitle?.();
988
1042
  void suppressPodStatusOutput(() => resolveProfileDisplayName())
@@ -997,6 +1051,21 @@ function patchHeader(interactive) {
997
1051
  .catch(() => undefined);
998
1052
  };
999
1053
  }
1054
+ function setLinxWelcomeHeader(interactive, replacement) {
1055
+ if (typeof interactive.setExtensionHeader === 'function') {
1056
+ interactive.setExtensionHeader(() => replacement);
1057
+ return;
1058
+ }
1059
+ const currentHeader = interactive.customHeader ?? interactive.builtInHeader;
1060
+ const index = interactive.headerContainer?.children?.indexOf?.(currentHeader) ?? -1;
1061
+ if (index >= 0) {
1062
+ interactive.headerContainer.children[index] = replacement;
1063
+ }
1064
+ else if (Array.isArray(interactive.headerContainer?.children)) {
1065
+ interactive.headerContainer.children.unshift(replacement);
1066
+ }
1067
+ interactive.customHeader = replacement;
1068
+ }
1000
1069
  class LinxWelcomeCard {
1001
1070
  getState;
1002
1071
  constructor(getState) {