@raidiant/notifai 11.6.3-beta.2 → 11.7.1-beta.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/CHANGELOG.md +31 -3
- package/dist/atomic-file.d.ts +1 -1
- package/dist/atomic-file.js.map +1 -1
- package/dist/client.d.ts +5 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/codex-answer-control.d.ts +14 -0
- package/dist/codex-answer-control.js +41 -0
- package/dist/codex-answer-control.js.map +1 -0
- package/dist/codex-answer-presentation.d.ts +18 -0
- package/dist/codex-answer-presentation.js +113 -0
- package/dist/codex-answer-presentation.js.map +1 -0
- package/dist/codex-input-lifecycle.d.ts +10 -0
- package/dist/codex-input-lifecycle.js +63 -0
- package/dist/codex-input-lifecycle.js.map +1 -0
- package/dist/codex-native-control.d.ts +13 -0
- package/dist/codex-native-control.js +120 -0
- package/dist/codex-native-control.js.map +1 -0
- package/dist/codex-native-turn.d.ts +18 -0
- package/dist/codex-native-turn.js +46 -4
- package/dist/codex-native-turn.js.map +1 -1
- package/dist/codex-question-bindings.d.ts +76 -0
- package/dist/codex-question-bindings.js +151 -0
- package/dist/codex-question-bindings.js.map +1 -0
- package/dist/codex-queue-control.d.ts +21 -0
- package/dist/codex-queue-control.js +59 -0
- package/dist/codex-queue-control.js.map +1 -0
- package/dist/codex-tool-messages.js +40 -16
- package/dist/codex-tool-messages.js.map +1 -1
- package/dist/commands-acknowledge.d.ts +2 -4
- package/dist/commands-acknowledge.js +7 -0
- package/dist/commands-acknowledge.js.map +1 -1
- package/dist/commands-ask.js +64 -12
- package/dist/commands-ask.js.map +1 -1
- package/dist/commands-auth.d.ts +3 -1
- package/dist/commands-auth.js +88 -28
- package/dist/commands-auth.js.map +1 -1
- package/dist/commands-close.js +51 -3
- package/dist/commands-close.js.map +1 -1
- package/dist/commands-core.d.ts +7 -0
- package/dist/commands-core.js +1 -0
- package/dist/commands-core.js.map +1 -1
- package/dist/commands-hook-attend.js +50 -10
- package/dist/commands-hook-attend.js.map +1 -1
- package/dist/commands-hook-run.js +2 -1
- package/dist/commands-hook-run.js.map +1 -1
- package/dist/commands-init.d.ts +2 -0
- package/dist/commands-init.js +3 -3
- package/dist/commands-init.js.map +1 -1
- package/dist/commands-io.js +7 -0
- package/dist/commands-io.js.map +1 -1
- package/dist/commands-native-acknowledge.d.ts +8 -0
- package/dist/commands-native-acknowledge.js +114 -0
- package/dist/commands-native-acknowledge.js.map +1 -0
- package/dist/credentials.d.ts +5 -0
- package/dist/credentials.js.map +1 -1
- package/dist/file-lock.js +37 -22
- package/dist/file-lock.js.map +1 -1
- package/dist/hermes-attendant.js +4 -0
- package/dist/hermes-attendant.js.map +1 -1
- package/dist/hook-acknowledgements.d.ts +1 -0
- package/dist/hook-acknowledgements.js +3 -1
- package/dist/hook-acknowledgements.js.map +1 -1
- package/dist/hook-lifecycle.d.ts +12 -1
- package/dist/hook-lifecycle.js +145 -79
- package/dist/hook-lifecycle.js.map +1 -1
- package/dist/hook-question-retirement.js +2 -1
- package/dist/hook-question-retirement.js.map +1 -1
- package/dist/hook-question-state.d.ts +6 -2
- package/dist/hook-question-state.js +19 -7
- package/dist/hook-question-state.js.map +1 -1
- package/dist/hook-session-state.d.ts +5 -1
- package/dist/hook-session-state.js +48 -14
- package/dist/hook-session-state.js.map +1 -1
- package/dist/hook-types.d.ts +23 -1
- package/dist/hook-types.js.map +1 -1
- package/dist/native-answer-operation.d.ts +70 -0
- package/dist/native-answer-operation.js +247 -0
- package/dist/native-answer-operation.js.map +1 -0
- package/dist/pairing-qr.d.ts +5 -0
- package/dist/pairing-qr.js +24 -0
- package/dist/pairing-qr.js.map +1 -0
- package/dist/pending-pairing.d.ts +1 -0
- package/dist/pending-pairing.js +7 -5
- package/dist/pending-pairing.js.map +1 -1
- package/dist/program.js +9 -3
- package/dist/program.js.map +1 -1
- package/dist/session-attendant-probe.d.ts +1 -1
- package/dist/session-attendant-probe.js +2 -1
- package/dist/session-attendant-probe.js.map +1 -1
- package/dist/session-attendant-state.d.ts +5 -0
- package/dist/session-attendant-state.js +29 -10
- package/dist/session-attendant-state.js.map +1 -1
- package/dist/session-delivery.d.ts +29 -0
- package/dist/session-delivery.js +3 -1
- package/dist/session-delivery.js.map +1 -1
- package/dist/session-input-wakes.d.ts +78 -0
- package/dist/session-input-wakes.js +239 -0
- package/dist/session-input-wakes.js.map +1 -0
- package/dist/session-inputs.d.ts +41 -6
- package/dist/session-inputs.js +199 -19
- package/dist/session-inputs.js.map +1 -1
- package/dist/skill-source/manifest.json +8 -4
- package/dist/skill-source/notifai/SKILL.md +30 -28
- package/dist/skill-source/notifai/references/harness-setup.md +33 -20
- package/dist/skill-source/notifai/references/native-questions.md +51 -0
- package/package.json +10 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type CommandDeps } from './commands-core.js';
|
|
2
|
+
import { type NativeAcknowledgeFlags } from './commands-native-acknowledge.js';
|
|
2
3
|
/**
|
|
3
4
|
* Record the one Agent Acknowledgement associated with a replied-to request
|
|
4
5
|
* (`req_…`) or a Session Message handed into the session (`sm_…`), dispatched
|
|
@@ -9,7 +10,4 @@ import { type CommandDeps } from './commands-core.js';
|
|
|
9
10
|
* the user sees that an agent read the answer. The service holds the account's
|
|
10
11
|
* snapshot, so it — not this process — decides whether text was owed.
|
|
11
12
|
*/
|
|
12
|
-
export declare function acknowledgeCommand(deps: CommandDeps, id: string, flags:
|
|
13
|
-
text?: string;
|
|
14
|
-
json?: boolean;
|
|
15
|
-
}): Promise<number>;
|
|
13
|
+
export declare function acknowledgeCommand(deps: CommandDeps, id: string, flags: NativeAcknowledgeFlags): Promise<number>;
|
|
@@ -4,6 +4,7 @@ import { resolveCommandSession } from './command-session.js';
|
|
|
4
4
|
import { EXIT, authedClient, loadLoggedConfig, log, reportError, } from './commands-core.js';
|
|
5
5
|
import { clearAcknowledgementObligation } from './hook-acknowledgements.js';
|
|
6
6
|
import { openclawOwnsMessage, openclawOwnsReply } from './openclaw-session-access.js';
|
|
7
|
+
import { acknowledgeNativeAnswer } from './commands-native-acknowledge.js';
|
|
7
8
|
/**
|
|
8
9
|
* Record the one Agent Acknowledgement associated with a replied-to request
|
|
9
10
|
* (`req_…`) or a Session Message handed into the session (`sm_…`), dispatched
|
|
@@ -15,6 +16,12 @@ import { openclawOwnsMessage, openclawOwnsReply } from './openclaw-session-acces
|
|
|
15
16
|
* snapshot, so it — not this process — decides whether text was owed.
|
|
16
17
|
*/
|
|
17
18
|
export async function acknowledgeCommand(deps, id, flags) {
|
|
19
|
+
if (id.startsWith('q_'))
|
|
20
|
+
return acknowledgeNativeAnswer(deps, id, flags);
|
|
21
|
+
if (flags.operationId !== undefined || flags.nativeAnswers !== undefined) {
|
|
22
|
+
deps.io.err('--operation-id and --native-answers require the exact local q_ question identity.');
|
|
23
|
+
return EXIT.usage;
|
|
24
|
+
}
|
|
18
25
|
const requestId = id;
|
|
19
26
|
const subject = id.startsWith(SESSION_MESSAGE_ID_PREFIX) ? 'message' : 'request';
|
|
20
27
|
if (deps.env['NOTIFAI_ACTIVE_HARNESS'] === 'openclaw') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands-acknowledge.js","sourceRoot":"","sources":["../src/commands-acknowledge.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EACL,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,gBAAgB,EAChB,GAAG,EACH,WAAW,GAEZ,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"commands-acknowledge.js","sourceRoot":"","sources":["../src/commands-acknowledge.ts"],"names":[],"mappings":"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"}
|
package/dist/commands-ask.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/** Validation and durable registration for the agent-facing ask command. */
|
|
2
2
|
import { CAPABILITIES_V1, QUESTION_TEXT_MAX_LENGTH, REPLY_MAX_QUESTIONS, validateDraft, } from '@raidiant/notifai-protocol';
|
|
3
|
-
import { EXIT, authedClient, log } from './commands-core.js';
|
|
3
|
+
import { EXIT, authedClient, log, makeClient } from './commands-core.js';
|
|
4
4
|
import { resolveActiveHarness } from './commands-harness-context.js';
|
|
5
5
|
import { CODEX_FRESH_SESSION_USER_ACTION, CODEX_HOOK_APPROVAL_USER_ACTION, CODEX_STALE_STOP_DEFINITION_PROBLEM, CODEX_STOP_DEFINITION_NOT_SINGULAR_PROBLEM, activeQuestionRouteProblems, } from './commands-hook-diagnostics.js';
|
|
6
6
|
import { resolveDraftInvocation, uploadImage } from './commands-send-support.js';
|
|
7
7
|
import { loadConfig } from './config.js';
|
|
8
8
|
import { HERMES_QUESTION_ROUTING_UNAVAILABLE, isHookInstallableHarness } from './harnesses.js';
|
|
9
|
-
import { registerQuestion } from './hook-lifecycle.js';
|
|
10
|
-
import { readSessionState } from './hook-session-state.js';
|
|
9
|
+
import { QuestionRegistrationChanged, registerQuestion } from './hook-lifecycle.js';
|
|
10
|
+
import { readSessionIncarnation, readSessionState } from './hook-session-state.js';
|
|
11
|
+
import { currentCodexQuestionContext, nativeQuestionTitle } from './codex-question-bindings.js';
|
|
11
12
|
import { hermesQuestionRouteReady } from './session-attendant-state.js';
|
|
12
13
|
import { codexRoutingTrustProblems, findInstallations } from './install-hooks.js';
|
|
13
14
|
import { inferInvocationContext } from './invocation-context.js';
|
|
@@ -179,20 +180,48 @@ function buildAskDraft(config, built, flags, invocation, mediaIds) {
|
|
|
179
180
|
}
|
|
180
181
|
return { ok: true, draft: result.draft };
|
|
181
182
|
}
|
|
182
|
-
function recordRegisteredQuestion(deps, sessionId, built, draft, json = false) {
|
|
183
|
+
function recordRegisteredQuestion(deps, sessionId, built, draft, service, json = false) {
|
|
184
|
+
const ordinary = () => persistRegisteredQuestion(deps, sessionId, built, draft, service, json);
|
|
185
|
+
if (built.questions.some(question => question.multi === true))
|
|
186
|
+
return ordinary();
|
|
187
|
+
const local = currentCodexQuestionContext(readSessionState(sessionId, deps.env), sessionId, deps.env);
|
|
188
|
+
if (local === null)
|
|
189
|
+
return ordinary();
|
|
190
|
+
const credential = deps.store.load();
|
|
191
|
+
if (credential === null || credential.machineId !== service.machine_id || credential.baseUrl !== service.base_url)
|
|
192
|
+
return ordinary();
|
|
193
|
+
const persist = (nativeAdmission) => persistRegisteredQuestion(deps, sessionId, built, draft, service, json, nativeAdmission, local.owner_key);
|
|
194
|
+
// Discovery is optional and bounded. Missing service support must not create
|
|
195
|
+
// a hidden binding or block ordinary question registration. Do not cache it.
|
|
196
|
+
const client = makeClient(deps, service.base_url, `Bearer nfm_${credential.machineId}.${credential.secret}`, { timeoutMs: 1500 });
|
|
197
|
+
return client.compatibility().then(support => persist(Array.isArray(support?.server_capabilities) && support.server_capabilities.includes('harness_answers')
|
|
198
|
+
? { owner_key: local.owner_key, turn_id: local.snapshot.latest.id, service } : undefined), () => persist());
|
|
199
|
+
}
|
|
200
|
+
function persistRegisteredQuestion(deps, sessionId, built, draft, service, json = false, nativeAdmission, ownerKey) {
|
|
183
201
|
let questionId;
|
|
202
|
+
const credential = deps.store.load();
|
|
203
|
+
if (credential === null || credential.machineId !== service.machine_id || credential.baseUrl !== service.base_url) {
|
|
204
|
+
return askFailure(deps, { json }, 'auth_required', 'credential', 'The Approved Machine changed before question registration completed.', 'retry the same ask from the intended signed-in machine', EXIT.auth);
|
|
205
|
+
}
|
|
184
206
|
try {
|
|
185
207
|
questionId = registerQuestion(sessionId, deps.env, {
|
|
186
208
|
question: built.questions[0].text,
|
|
187
209
|
summary: draft.presentation.summary,
|
|
210
|
+
service_identity: service,
|
|
188
211
|
questions: built.questions,
|
|
189
212
|
...(draft.presentation.body !== undefined ? { body: draft.presentation.body } : {}),
|
|
190
213
|
...(draft.project !== undefined ? { project: draft.project } : {}),
|
|
191
214
|
...(draft.source !== undefined ? { source: draft.source } : {}),
|
|
192
215
|
...(draft.presentation.media !== undefined ? { media: draft.presentation.media } : {}),
|
|
193
|
-
}, (deps.now ?? Date.now)())
|
|
216
|
+
}, (deps.now ?? Date.now)(), nativeAdmission, { ...(ownerKey === undefined ? {} : { owner_key: ownerKey }), machineStillMatches: () => {
|
|
217
|
+
const current = deps.store.load();
|
|
218
|
+
return current !== null && current.machineId === service.machine_id && current.baseUrl === service.base_url;
|
|
219
|
+
} });
|
|
194
220
|
}
|
|
195
221
|
catch (err) {
|
|
222
|
+
if (err instanceof QuestionRegistrationChanged) {
|
|
223
|
+
return askFailure(deps, { json }, err.reason === 'credential' ? 'auth_required' : 'session_changed', err.reason === 'credential' ? 'credential' : 'question_registration', err.message, 'retry the same ask from the current Agent Session and intended signed-in machine', err.reason === 'credential' ? EXIT.auth : EXIT.failed);
|
|
224
|
+
}
|
|
196
225
|
return askFailure(deps, { json }, 'registration_failed', 'question_registration', `Could not register the question: ${err instanceof Error ? err.message : String(err)}`, 'retire an older pending question if the limit was reached, then retry the same ask', EXIT.failed);
|
|
197
226
|
}
|
|
198
227
|
log(deps).info('ask.registered', {
|
|
@@ -221,6 +250,9 @@ function recordRegisteredQuestion(deps, sessionId, built, draft, json = false) {
|
|
|
221
250
|
const nextStep = submission === 'starting'
|
|
222
251
|
? 'Submission starts without ending this turn. Continue independent work while Question Routing owns the answer return path.'
|
|
223
252
|
: 'Background startup failed. Keep this registration; ordinary lifecycle hooks can recover it. Inspect status before relying on submission.';
|
|
253
|
+
const native = readSessionState(sessionId, deps.env).codex_question_bindings?.find(binding => binding.question_id === questionId && binding.owner_key === readSessionIncarnation(sessionId, deps.env)?.key);
|
|
254
|
+
const nativeCommand = `notifai acknowledge ${questionId} --operation-id native-1 --native-answers '<actual answers JSON>' --text '<concrete work this answer sets in motion>' --json`;
|
|
255
|
+
const nativeInstruction = `If you use request_user_input_async, copy the native titles and options exactly in this turn. For an answer you actually read from that native form, your first dependent command must be: ${nativeCommand}. Use the registered question/choice IDs. Use a distinct operation ID for each distinct submission; retry the same ID and immutable body after failure, omitting answers/text only after the command confirms the operation was saved. Do not report an app answer again as a native answer. Keep the app watcher; do not close the question after native acknowledgement. If you did not emit the exact marked native form, ordinary conversation answers still retire with notifai close ${questionId}. Native linking is optional and capability-dependent; never promise form closure.`;
|
|
224
256
|
// The block below is the densest guidance this CLI prints, and until now it
|
|
225
257
|
// was prose only: an agent could not read back the choice ids it must branch
|
|
226
258
|
// on without asking the server for them. The JSON form carries the same
|
|
@@ -240,6 +272,12 @@ function recordRegisteredQuestion(deps, sessionId, built, draft, json = false) {
|
|
|
240
272
|
...(entry.choices === undefined ? {} : { choices: entry.choices }),
|
|
241
273
|
...(entry.multi === true ? { multi: true } : {}),
|
|
242
274
|
})),
|
|
275
|
+
...(native === undefined ? {} : { native_question: {
|
|
276
|
+
tool: 'request_user_input_async',
|
|
277
|
+
questions: native.questions.map(binding => ({ question_id: binding.question.id, title: nativeQuestionTitle(binding),
|
|
278
|
+
...(binding.question.choices === undefined ? {} : { options: binding.question.choices.map(choice => choice.label) }) })),
|
|
279
|
+
instructions: nativeInstruction,
|
|
280
|
+
} }),
|
|
243
281
|
status: `notifai status ${questionId}`,
|
|
244
282
|
close: `notifai close ${questionId}`,
|
|
245
283
|
next: {
|
|
@@ -247,7 +285,9 @@ function recordRegisteredQuestion(deps, sessionId, built, draft, json = false) {
|
|
|
247
285
|
in_this_turn: `Ask the question in the conversation and explain what each answer will change. ${nextStep}`,
|
|
248
286
|
route_neutral: 'Never say where the answer must arrive; it returns by whatever route the harness supports.',
|
|
249
287
|
on_answer: 'Acknowledge it, then resume the committed work without asking the user to confirm again.',
|
|
250
|
-
answered_outside_notifai:
|
|
288
|
+
answered_outside_notifai: native === undefined
|
|
289
|
+
? `If they answer in the conversation instead, run \`notifai close ${questionId}\` to retire this question.`
|
|
290
|
+
: nativeInstruction,
|
|
251
291
|
},
|
|
252
292
|
}, null, 2));
|
|
253
293
|
return EXIT.ok;
|
|
@@ -281,14 +321,25 @@ function recordRegisteredQuestion(deps, sessionId, built, draft, json = false) {
|
|
|
281
321
|
}
|
|
282
322
|
deps.io.out('When the answer arrives, resume the matching work without asking the user to confirm again. Frame this as work you will resume, not as approval you receive.');
|
|
283
323
|
deps.io.out('A Notifai answer cannot answer a harness permission prompt or interactive picker; leave those to the harness and user.');
|
|
284
|
-
|
|
324
|
+
if (native !== undefined) {
|
|
325
|
+
deps.io.out(nativeInstruction);
|
|
326
|
+
deps.io.out(JSON.stringify({ native_questions: native.questions.map(binding => ({ title: nativeQuestionTitle(binding),
|
|
327
|
+
question_id: binding.question.id, ...(binding.question.choices === undefined ? {} : { options: binding.question.choices.map(choice => choice.label) }),
|
|
328
|
+
...(binding.question.choices === undefined ? {} : { choice_ids: binding.question.choices.map(choice => choice.id) }),
|
|
329
|
+
})) }));
|
|
330
|
+
}
|
|
331
|
+
else
|
|
332
|
+
deps.io.out(`If they answer in this conversation instead, retire it with \`notifai close ${questionId}\`.`);
|
|
285
333
|
return EXIT.ok;
|
|
286
334
|
}
|
|
287
|
-
async function uploadAskMedia(deps, config, sessionId, built, flags, invocation) {
|
|
335
|
+
async function uploadAskMedia(deps, config, sessionId, built, flags, invocation, service) {
|
|
288
336
|
const authed = authedClient(deps, config);
|
|
289
337
|
if (!authed) {
|
|
290
338
|
return askFailure(deps, flags, 'auth_required', 'credential', 'Question routing is not paired on this machine.', 'run `notifai init --json`', EXIT.auth);
|
|
291
339
|
}
|
|
340
|
+
if (authed.service.base_url !== service.base_url || authed.service.machine_id !== service.machine_id) {
|
|
341
|
+
return askFailure(deps, flags, 'machine_changed', 'credential', 'The Approved Machine changed before the question media upload started.', 'retry the same ask from the intended signed-in machine', EXIT.auth);
|
|
342
|
+
}
|
|
292
343
|
const mediaIds = [];
|
|
293
344
|
for (const image of flags.image ?? []) {
|
|
294
345
|
if (image.startsWith('med_')) {
|
|
@@ -307,7 +358,7 @@ async function uploadAskMedia(deps, config, sessionId, built, flags, invocation)
|
|
|
307
358
|
if (!ready.ok) {
|
|
308
359
|
return askFailure(deps, flags, 'invalid_draft', 'draft', ready.error, 'fix the reported field and retry');
|
|
309
360
|
}
|
|
310
|
-
return recordRegisteredQuestion(deps, sessionId, built, ready.draft, flags.json === true);
|
|
361
|
+
return recordRegisteredQuestion(deps, sessionId, built, ready.draft, service, flags.json === true);
|
|
311
362
|
}
|
|
312
363
|
/**
|
|
313
364
|
* Registers and starts submission immediately, without waiting for turn end.
|
|
@@ -350,7 +401,8 @@ export function askCommand(deps, question, flags) {
|
|
|
350
401
|
}
|
|
351
402
|
}
|
|
352
403
|
}
|
|
353
|
-
|
|
404
|
+
const credential = deps.store.load();
|
|
405
|
+
if (credential === null) {
|
|
354
406
|
return askFailure(deps, flags, 'auth_required', 'credential', 'Question routing is not paired on this machine.', 'run `notifai init --json`', EXIT.auth);
|
|
355
407
|
}
|
|
356
408
|
// An agent calling this gets no hook payload. Harness-native environment
|
|
@@ -444,8 +496,8 @@ export function askCommand(deps, question, flags) {
|
|
|
444
496
|
return askFailure(deps, flags, 'invalid_draft', 'draft', preflight.error, 'fix the reported field and retry');
|
|
445
497
|
}
|
|
446
498
|
if ((flags.image?.length ?? 0) > 0) {
|
|
447
|
-
return uploadAskMedia(deps, routingConfig, sessionId, built, flags, source.invocation);
|
|
499
|
+
return uploadAskMedia(deps, routingConfig, sessionId, built, flags, source.invocation, { base_url: credential.baseUrl, machine_id: credential.machineId });
|
|
448
500
|
}
|
|
449
|
-
return recordRegisteredQuestion(deps, sessionId, built, preflight.draft, flags.json === true);
|
|
501
|
+
return recordRegisteredQuestion(deps, sessionId, built, preflight.draft, { base_url: credential.baseUrl, machine_id: credential.machineId }, flags.json === true);
|
|
450
502
|
}
|
|
451
503
|
//# sourceMappingURL=commands-ask.js.map
|
package/dist/commands-ask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands-ask.js","sourceRoot":"","sources":["../src/commands-ask.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands-ask.js","sourceRoot":"","sources":["../src/commands-ask.ts"],"names":[],"mappings":"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"}
|
package/dist/commands-auth.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export type PairingOutcome = 'pending' | 'denied' | 'expired' | 'not_started';
|
|
|
30
30
|
* same setup command — the next run resumes this very handshake rather than
|
|
31
31
|
* starting a second one.
|
|
32
32
|
*/
|
|
33
|
-
export declare function pendingApprovalBlocker(pairing: PendingPairing): ReadinessState;
|
|
33
|
+
export declare function pendingApprovalBlocker(pairing: PendingPairing, env?: NodeJS.ProcessEnv): ReadinessState;
|
|
34
34
|
/**
|
|
35
35
|
* The state `init` reports when an approval ended without a credential. Each
|
|
36
36
|
* outcome is named, because "not paired" alone sends an agent straight back
|
|
@@ -63,6 +63,8 @@ export declare function loginCommand(deps: CommandDeps, flags: {
|
|
|
63
63
|
name?: string;
|
|
64
64
|
baseUrl?: string;
|
|
65
65
|
open?: boolean;
|
|
66
|
+
approval?: string;
|
|
67
|
+
approvalEmail?: string;
|
|
66
68
|
}, onBlocked?: LoginBlockedSink): Promise<number>;
|
|
67
69
|
export declare function logoutCommand(deps: CommandDeps): number;
|
|
68
70
|
export declare function authStatusCommand(deps: CommandDeps, flags: {
|
package/dist/commands-auth.js
CHANGED
|
@@ -2,6 +2,7 @@ import {} from '@raidiant/notifai-protocol';
|
|
|
2
2
|
import { sha256Hex } from '@raidiant/notifai-protocol/node';
|
|
3
3
|
import { randomBytes } from 'node:crypto';
|
|
4
4
|
import os from 'node:os';
|
|
5
|
+
import { renderPairingQr, terminalPairingQr, pairingQrPath, pairingQrTextPath } from './pairing-qr.js';
|
|
5
6
|
import { ApiCallError, NetworkError } from './client.js';
|
|
6
7
|
import {} from './config.js';
|
|
7
8
|
import { checkApproveUrl } from './url-policy.js';
|
|
@@ -29,23 +30,25 @@ export function pairingApprovalUrl(approveUrl, confirmationSecret) {
|
|
|
29
30
|
* same setup command — the next run resumes this very handshake rather than
|
|
30
31
|
* starting a second one.
|
|
31
32
|
*/
|
|
32
|
-
export function pendingApprovalBlocker(pairing) {
|
|
33
|
+
export function pendingApprovalBlocker(pairing, env) {
|
|
33
34
|
return {
|
|
34
35
|
id: 'credential',
|
|
35
36
|
title: 'This machine',
|
|
36
37
|
status: 'gap',
|
|
37
|
-
detail: `waiting for you to approve this computer
|
|
38
|
+
detail: `waiting for you to review and approve this computer (code ${pairing.code})`,
|
|
38
39
|
technical: {
|
|
39
40
|
pairing_outcome: 'pending',
|
|
40
41
|
pairing: {
|
|
41
42
|
approve_url: pairing.approve_url,
|
|
43
|
+
...(env ? { qr_path: pairingQrPath(env), qr_text_path: pairingQrTextPath(env) } : {}),
|
|
44
|
+
alternatives: ['qr', 'notification', 'browser'],
|
|
42
45
|
code: pairing.code,
|
|
43
46
|
expires_at: pairing.expires_at,
|
|
44
47
|
},
|
|
45
48
|
},
|
|
46
49
|
remedy: {
|
|
47
50
|
by: 'user-here',
|
|
48
|
-
summary: `
|
|
51
|
+
summary: `scan the local QR to review this computer in Notifai and compare code ${pairing.code}; browser approval is also available at ${pairing.approve_url}`,
|
|
49
52
|
command: SETUP_COMMAND,
|
|
50
53
|
// The next run resumes this handshake through the same login path.
|
|
51
54
|
interactive: true,
|
|
@@ -97,6 +100,14 @@ export function pairingOutcomeBlocker(outcome, detail) {
|
|
|
97
100
|
* service's `expired`, `denied`, or unknown answer discards one.
|
|
98
101
|
*/
|
|
99
102
|
export async function loginCommand(deps, flags, onBlocked) {
|
|
103
|
+
if (flags.approval !== undefined && !['qr', 'notification', 'browser'].includes(flags.approval)) {
|
|
104
|
+
deps.io.err('Choose --approval qr, notification, or browser.');
|
|
105
|
+
return EXIT.usage;
|
|
106
|
+
}
|
|
107
|
+
if (flags.approvalEmail && flags.approval && flags.approval !== 'notification') {
|
|
108
|
+
deps.io.err('--approval-email is for --approval notification.');
|
|
109
|
+
return EXIT.usage;
|
|
110
|
+
}
|
|
100
111
|
const config = loadLoggedConfig(deps, { cwd: deps.cwd, env: deps.env, flags: { base_url: flags.baseUrl } });
|
|
101
112
|
const baseUrl = config.base_url.value;
|
|
102
113
|
const interactive = deps.io.interactive === true;
|
|
@@ -148,20 +159,51 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
148
159
|
writePendingPairing(deps.env, started);
|
|
149
160
|
return started;
|
|
150
161
|
};
|
|
162
|
+
let route = flags.approval ?? (flags.approvalEmail ? 'notification' : 'qr');
|
|
151
163
|
const announce = async (pairing, resumed) => {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
164
|
+
const file = await renderPairingQr(deps.env, pairing.approve_url);
|
|
165
|
+
deps.io.out(`Pairing code: ${pairing.code}`);
|
|
166
|
+
if (route === 'qr') {
|
|
167
|
+
if (interactive && deps.io.note)
|
|
168
|
+
await deps.io.note(await terminalPairingQr(pairing.approve_url), 'Scan to approve in Notifai');
|
|
169
|
+
else {
|
|
170
|
+
deps.io.out('Scan to approve in Notifai:');
|
|
171
|
+
deps.io.out(await terminalPairingQr(pairing.approve_url, false));
|
|
172
|
+
}
|
|
173
|
+
deps.io.out(`Local QR image: ${file}`);
|
|
155
174
|
}
|
|
156
|
-
|
|
157
|
-
deps.io.
|
|
158
|
-
|
|
175
|
+
if (interactive && flags.approval === undefined && flags.approvalEmail === undefined && deps.io.select) {
|
|
176
|
+
route = await deps.io.select('Connect this computer', [
|
|
177
|
+
{ value: 'qr', label: 'Scan the QR', hint: 'Approve in your signed-in Notifai app' },
|
|
178
|
+
{ value: 'notification', label: 'Send approval notification', hint: 'Enter your Account email' },
|
|
179
|
+
{ value: 'browser', label: 'Use browser approval' },
|
|
180
|
+
]) ?? 'qr';
|
|
159
181
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
// a second tab on the page they are looking at.
|
|
163
|
-
if (flags.open !== false && (interactive || !resumed))
|
|
182
|
+
deps.io.out(`Browser alternative: ${pairing.approve_url}`);
|
|
183
|
+
if (route === 'browser' && flags.open !== false)
|
|
164
184
|
deps.io.openUrl(pairing.approve_url);
|
|
185
|
+
if (route === 'notification') {
|
|
186
|
+
const email = (flags.approvalEmail ?? (interactive ? await deps.io.text?.('Account email') : null))?.trim();
|
|
187
|
+
if (!email) {
|
|
188
|
+
deps.io.err('For an approval notification, run `notifai init --approval notification --approval-email <email>`; QR and browser approval use the same pairing.');
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
if (email.toLowerCase() !== pairing.approval_email?.toLowerCase()) {
|
|
192
|
+
try {
|
|
193
|
+
await client.requestPairingNotification(pairing.pairing_id, pairing.poll_verifier, email);
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
reportError(deps, err);
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
pairing.approval_email = email;
|
|
200
|
+
writePendingPairing(deps.env, pairing);
|
|
201
|
+
}
|
|
202
|
+
deps.io.out('Approval invitation requested. Review it if it arrives; QR and browser approval remain available.');
|
|
203
|
+
}
|
|
204
|
+
// The default QR does not open a browser or send an approval notification.
|
|
205
|
+
void resumed;
|
|
206
|
+
return true;
|
|
165
207
|
};
|
|
166
208
|
// A handshake started against another service, or under another machine
|
|
167
209
|
// name, is not this one; only an identical errand is resumed.
|
|
@@ -181,7 +223,6 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
181
223
|
else {
|
|
182
224
|
active = pairing;
|
|
183
225
|
}
|
|
184
|
-
await announce(active, resumed);
|
|
185
226
|
let expiresAt = Date.parse(active.expires_at);
|
|
186
227
|
let intervalMs = Math.max(active.poll_interval_seconds, 1) * 1000;
|
|
187
228
|
const approvalWaitMessage = () => {
|
|
@@ -191,10 +232,22 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
191
232
|
const remaining = minutes > 0 ? `${minutes}m ${seconds.toString().padStart(2, '0')}s` : `${seconds}s`;
|
|
192
233
|
return `Waiting for approval… code ${active.code} · ${remaining} left`;
|
|
193
234
|
};
|
|
194
|
-
const
|
|
235
|
+
const progress = {};
|
|
236
|
+
let announced = false;
|
|
237
|
+
const announceActive = async () => {
|
|
238
|
+
if (announced)
|
|
239
|
+
return true;
|
|
240
|
+
const ready = await announce(active, resumed);
|
|
241
|
+
announced = true;
|
|
242
|
+
if (ready && interactive)
|
|
243
|
+
progress.spinner = await deps.io.spinner?.(approvalWaitMessage()) ?? null;
|
|
244
|
+
return ready;
|
|
245
|
+
};
|
|
195
246
|
// A resumed handshake the service no longer knows is replaced once, in the
|
|
196
247
|
// same run, so the User is handed a fresh code instead of a dead end.
|
|
197
248
|
const replaceStale = async () => {
|
|
249
|
+
progress.spinner?.stop('Previous approval expired');
|
|
250
|
+
progress.spinner = null;
|
|
198
251
|
clearPendingPairing(deps.env);
|
|
199
252
|
if (!resumed)
|
|
200
253
|
return false;
|
|
@@ -205,8 +258,7 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
205
258
|
resumed = false;
|
|
206
259
|
expiresAt = Date.parse(active.expires_at);
|
|
207
260
|
intervalMs = Math.max(active.poll_interval_seconds, 1) * 1000;
|
|
208
|
-
|
|
209
|
-
spinner?.message(approvalWaitMessage());
|
|
261
|
+
announced = false;
|
|
210
262
|
return true;
|
|
211
263
|
};
|
|
212
264
|
for (;;) {
|
|
@@ -216,14 +268,18 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
216
268
|
}
|
|
217
269
|
catch (err) {
|
|
218
270
|
if (err instanceof NetworkError) {
|
|
271
|
+
if (!await announceActive()) {
|
|
272
|
+
onBlocked?.(pendingApprovalBlocker(active, deps.env));
|
|
273
|
+
return EXIT.auth;
|
|
274
|
+
}
|
|
219
275
|
if (!interactive) {
|
|
220
276
|
// The handshake is intact; only this check could not be made.
|
|
221
277
|
deps.io.err(err.message);
|
|
222
278
|
deps.io.out(`Waiting for approval. Run \`${SETUP_COMMAND}\` again once it is approved.`);
|
|
223
|
-
onBlocked?.(pendingApprovalBlocker(active));
|
|
279
|
+
onBlocked?.(pendingApprovalBlocker(active, deps.env));
|
|
224
280
|
return EXIT.network;
|
|
225
281
|
}
|
|
226
|
-
spinner?.message(`Connection lost — retrying… code ${active.code}`);
|
|
282
|
+
progress.spinner?.message(`Connection lost — retrying… code ${active.code}`);
|
|
227
283
|
await sleep(intervalMs);
|
|
228
284
|
continue;
|
|
229
285
|
}
|
|
@@ -232,14 +288,14 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
232
288
|
continue;
|
|
233
289
|
return EXIT.auth;
|
|
234
290
|
}
|
|
235
|
-
spinner?.error('Pairing failed');
|
|
291
|
+
progress.spinner?.error('Pairing failed');
|
|
236
292
|
return reportError(deps, err);
|
|
237
293
|
}
|
|
238
294
|
if (poll.status === 'approved' && poll.machine_id) {
|
|
239
295
|
deps.store.save({ machineId: poll.machine_id, secret: active.secret, baseUrl, machineName: active.machine_name });
|
|
240
296
|
clearPendingPairing(deps.env);
|
|
241
297
|
if (interactive) {
|
|
242
|
-
spinner?.stop(`Machine "${active.machine_name}" approved`);
|
|
298
|
+
progress.spinner?.stop(`Machine "${active.machine_name}" approved`);
|
|
243
299
|
await deps.io.outro?.(`Credential stored in ${deps.store.describe()}`);
|
|
244
300
|
}
|
|
245
301
|
else {
|
|
@@ -249,9 +305,9 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
249
305
|
}
|
|
250
306
|
if (poll.status === 'denied') {
|
|
251
307
|
clearPendingPairing(deps.env);
|
|
252
|
-
spinner?.error('Pairing denied');
|
|
253
|
-
deps.io.err('Pairing was denied
|
|
254
|
-
onBlocked?.(pairingOutcomeBlocker('denied', 'you denied this computer
|
|
308
|
+
progress.spinner?.error('Pairing denied');
|
|
309
|
+
deps.io.err('Pairing was denied.');
|
|
310
|
+
onBlocked?.(pairingOutcomeBlocker('denied', 'you denied this computer'));
|
|
255
311
|
return EXIT.auth;
|
|
256
312
|
}
|
|
257
313
|
// Proof-gated: the server never returns this from lookup. Stop now rather
|
|
@@ -262,7 +318,7 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
262
318
|
// choosing a plan after cutover — so its line wins whenever it sends one.
|
|
263
319
|
const accessUrl = setupAccessUrl(baseUrl);
|
|
264
320
|
const next = poll.next_action ?? `Open ${accessUrl} to set up access, then retry.`;
|
|
265
|
-
spinner?.error('Pairing stopped');
|
|
321
|
+
progress.spinner?.error('Pairing stopped');
|
|
266
322
|
// One wall, said once. When a caller takes the blocker it closes the
|
|
267
323
|
// visit on this exact errand, so repeating the destination here would
|
|
268
324
|
// leave the User three phrasings of one step to choose between.
|
|
@@ -286,20 +342,24 @@ export async function loginCommand(deps, flags, onBlocked) {
|
|
|
286
342
|
continue;
|
|
287
343
|
break;
|
|
288
344
|
}
|
|
345
|
+
if (!await announceActive()) {
|
|
346
|
+
onBlocked?.(pendingApprovalBlocker(active, deps.env));
|
|
347
|
+
return EXIT.auth;
|
|
348
|
+
}
|
|
289
349
|
// Still pending. Nobody at this terminal means nobody to wait for: hand
|
|
290
350
|
// the errand back and let the next run resume the same handshake.
|
|
291
351
|
if (!interactive) {
|
|
292
352
|
deps.io.out(`Waiting for approval. Run \`${SETUP_COMMAND}\` again once it is approved.`);
|
|
293
|
-
onBlocked?.(pendingApprovalBlocker(active));
|
|
353
|
+
onBlocked?.(pendingApprovalBlocker(active, deps.env));
|
|
294
354
|
return EXIT.auth;
|
|
295
355
|
}
|
|
296
356
|
if (now() >= expiresAt)
|
|
297
357
|
break;
|
|
298
|
-
spinner?.message(approvalWaitMessage());
|
|
358
|
+
progress.spinner?.message(approvalWaitMessage());
|
|
299
359
|
await sleep(Math.min(intervalMs, Math.max(0, expiresAt - now())));
|
|
300
360
|
}
|
|
301
361
|
clearPendingPairing(deps.env);
|
|
302
|
-
spinner?.error('Pairing expired');
|
|
362
|
+
progress.spinner?.error('Pairing expired');
|
|
303
363
|
deps.io.err(`Pairing expired before it was approved. Run \`${SETUP_COMMAND}\` again.`);
|
|
304
364
|
onBlocked?.(pairingOutcomeBlocker('expired', 'the approval expired before it was given'));
|
|
305
365
|
return EXIT.auth;
|