@raidiant/notifai 11.7.1 → 12.0.0-beta.11
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 +53 -0
- package/NOTICE +16 -0
- package/THIRD_PARTY_NOTICES +725 -0
- package/bin/notifai.mjs +11420 -0
- package/data/install.ps1 +318 -0
- package/data/release.json +1 -0
- package/inventory.json +1 -0
- package/npm-adapter-files.json +52 -0
- package/package.json +14 -44
- package/README.md +0 -168
- package/dist/agent-update-notice.d.ts +0 -7
- package/dist/agent-update-notice.js +0 -77
- package/dist/agent-update-notice.js.map +0 -1
- package/dist/atomic-file.d.ts +0 -30
- package/dist/atomic-file.js +0 -148
- package/dist/atomic-file.js.map +0 -1
- package/dist/attendant-update.d.ts +0 -15
- package/dist/attendant-update.js +0 -96
- package/dist/attendant-update.js.map +0 -1
- package/dist/claude-wake.d.ts +0 -108
- package/dist/claude-wake.js +0 -369
- package/dist/claude-wake.js.map +0 -1
- package/dist/cli-bin.d.ts +0 -26
- package/dist/cli-bin.js +0 -220
- package/dist/cli-bin.js.map +0 -1
- package/dist/cli-contract.d.ts +0 -16
- package/dist/cli-contract.js +0 -27
- package/dist/cli-contract.js.map +0 -1
- package/dist/cli-release.d.ts +0 -36
- package/dist/cli-release.js +0 -85
- package/dist/cli-release.js.map +0 -1
- package/dist/client.d.ts +0 -109
- package/dist/client.js +0 -217
- package/dist/client.js.map +0 -1
- package/dist/codex-answer-control.d.ts +0 -14
- package/dist/codex-answer-control.js +0 -41
- package/dist/codex-answer-control.js.map +0 -1
- package/dist/codex-answer-presentation.d.ts +0 -18
- package/dist/codex-answer-presentation.js +0 -113
- package/dist/codex-answer-presentation.js.map +0 -1
- package/dist/codex-input-lifecycle.d.ts +0 -10
- package/dist/codex-input-lifecycle.js +0 -63
- package/dist/codex-input-lifecycle.js.map +0 -1
- package/dist/codex-native-control.d.ts +0 -13
- package/dist/codex-native-control.js +0 -120
- package/dist/codex-native-control.js.map +0 -1
- package/dist/codex-native-turn.d.ts +0 -37
- package/dist/codex-native-turn.js +0 -155
- package/dist/codex-native-turn.js.map +0 -1
- package/dist/codex-question-bindings.d.ts +0 -76
- package/dist/codex-question-bindings.js +0 -151
- package/dist/codex-question-bindings.js.map +0 -1
- package/dist/codex-queue-control.d.ts +0 -21
- package/dist/codex-queue-control.js +0 -59
- package/dist/codex-queue-control.js.map +0 -1
- package/dist/codex-tool-messages.d.ts +0 -7
- package/dist/codex-tool-messages.js +0 -126
- package/dist/codex-tool-messages.js.map +0 -1
- package/dist/codex-wake.d.ts +0 -58
- package/dist/codex-wake.js +0 -135
- package/dist/codex-wake.js.map +0 -1
- package/dist/command-session.d.ts +0 -14
- package/dist/command-session.js +0 -31
- package/dist/command-session.js.map +0 -1
- package/dist/commands-acknowledge.d.ts +0 -13
- package/dist/commands-acknowledge.js +0 -116
- package/dist/commands-acknowledge.js.map +0 -1
- package/dist/commands-agent-sessions.d.ts +0 -6
- package/dist/commands-agent-sessions.js +0 -51
- package/dist/commands-agent-sessions.js.map +0 -1
- package/dist/commands-ask.d.ts +0 -62
- package/dist/commands-ask.js +0 -503
- package/dist/commands-ask.js.map +0 -1
- package/dist/commands-auth.d.ts +0 -76
- package/dist/commands-auth.js +0 -421
- package/dist/commands-auth.js.map +0 -1
- package/dist/commands-close.d.ts +0 -6
- package/dist/commands-close.js +0 -273
- package/dist/commands-close.js.map +0 -1
- package/dist/commands-config.d.ts +0 -31
- package/dist/commands-config.js +0 -272
- package/dist/commands-config.js.map +0 -1
- package/dist/commands-core.d.ts +0 -145
- package/dist/commands-core.js +0 -190
- package/dist/commands-core.js.map +0 -1
- package/dist/commands-devices.d.ts +0 -41
- package/dist/commands-devices.js +0 -144
- package/dist/commands-devices.js.map +0 -1
- package/dist/commands-doctor.d.ts +0 -25
- package/dist/commands-doctor.js +0 -1553
- package/dist/commands-doctor.js.map +0 -1
- package/dist/commands-guidance.d.ts +0 -27
- package/dist/commands-guidance.js +0 -150
- package/dist/commands-guidance.js.map +0 -1
- package/dist/commands-harness-context.d.ts +0 -57
- package/dist/commands-harness-context.js +0 -102
- package/dist/commands-harness-context.js.map +0 -1
- package/dist/commands-hook-attend.d.ts +0 -70
- package/dist/commands-hook-attend.js +0 -655
- package/dist/commands-hook-attend.js.map +0 -1
- package/dist/commands-hook-diagnostics.d.ts +0 -37
- package/dist/commands-hook-diagnostics.js +0 -136
- package/dist/commands-hook-diagnostics.js.map +0 -1
- package/dist/commands-hook-install.d.ts +0 -26
- package/dist/commands-hook-install.js +0 -784
- package/dist/commands-hook-install.js.map +0 -1
- package/dist/commands-hook-run.d.ts +0 -29
- package/dist/commands-hook-run.js +0 -933
- package/dist/commands-hook-run.js.map +0 -1
- package/dist/commands-hook-shape.d.ts +0 -19
- package/dist/commands-hook-shape.js +0 -48
- package/dist/commands-hook-shape.js.map +0 -1
- package/dist/commands-init.d.ts +0 -42
- package/dist/commands-init.js +0 -901
- package/dist/commands-init.js.map +0 -1
- package/dist/commands-io.d.ts +0 -2
- package/dist/commands-io.js +0 -117
- package/dist/commands-io.js.map +0 -1
- package/dist/commands-logs.d.ts +0 -30
- package/dist/commands-logs.js +0 -201
- package/dist/commands-logs.js.map +0 -1
- package/dist/commands-native-acknowledge.d.ts +0 -8
- package/dist/commands-native-acknowledge.js +0 -114
- package/dist/commands-native-acknowledge.js.map +0 -1
- package/dist/commands-project.d.ts +0 -4
- package/dist/commands-project.js +0 -41
- package/dist/commands-project.js.map +0 -1
- package/dist/commands-receive.d.ts +0 -3
- package/dist/commands-receive.js +0 -59
- package/dist/commands-receive.js.map +0 -1
- package/dist/commands-send-support.d.ts +0 -59
- package/dist/commands-send-support.js +0 -258
- package/dist/commands-send-support.js.map +0 -1
- package/dist/commands-send.d.ts +0 -34
- package/dist/commands-send.js +0 -900
- package/dist/commands-send.js.map +0 -1
- package/dist/commands-setup-proof.d.ts +0 -43
- package/dist/commands-setup-proof.js +0 -134
- package/dist/commands-setup-proof.js.map +0 -1
- package/dist/commands-skill.d.ts +0 -21
- package/dist/commands-skill.js +0 -199
- package/dist/commands-skill.js.map +0 -1
- package/dist/commands-sounds.d.ts +0 -12
- package/dist/commands-sounds.js +0 -35
- package/dist/commands-sounds.js.map +0 -1
- package/dist/commands-update-check.d.ts +0 -6
- package/dist/commands-update-check.js +0 -102
- package/dist/commands-update-check.js.map +0 -1
- package/dist/commands-update-resume.d.ts +0 -7
- package/dist/commands-update-resume.js +0 -143
- package/dist/commands-update-resume.js.map +0 -1
- package/dist/commands-update-skill.d.ts +0 -5
- package/dist/commands-update-skill.js +0 -36
- package/dist/commands-update-skill.js.map +0 -1
- package/dist/commands-update.d.ts +0 -11
- package/dist/commands-update.js +0 -286
- package/dist/commands-update.js.map +0 -1
- package/dist/commands.d.ts +0 -26
- package/dist/commands.js +0 -27
- package/dist/commands.js.map +0 -1
- package/dist/config-schema.d.ts +0 -62
- package/dist/config-schema.js +0 -302
- package/dist/config-schema.js.map +0 -1
- package/dist/config.d.ts +0 -181
- package/dist/config.js +0 -357
- package/dist/config.js.map +0 -1
- package/dist/credentials.d.ts +0 -96
- package/dist/credentials.js +0 -342
- package/dist/credentials.js.map +0 -1
- package/dist/file-lock.d.ts +0 -34
- package/dist/file-lock.js +0 -367
- package/dist/file-lock.js.map +0 -1
- package/dist/generated-session-label.d.ts +0 -2
- package/dist/generated-session-label.js +0 -152
- package/dist/generated-session-label.js.map +0 -1
- package/dist/guidance-content.d.ts +0 -53
- package/dist/guidance-content.js +0 -248
- package/dist/guidance-content.js.map +0 -1
- package/dist/guidance-render.d.ts +0 -25
- package/dist/guidance-render.js +0 -47
- package/dist/guidance-render.js.map +0 -1
- package/dist/guidance.d.ts +0 -69
- package/dist/guidance.js +0 -173
- package/dist/guidance.js.map +0 -1
- package/dist/harness-session-title.d.ts +0 -22
- package/dist/harness-session-title.js +0 -74
- package/dist/harness-session-title.js.map +0 -1
- package/dist/harnesses.d.ts +0 -65
- package/dist/harnesses.js +0 -159
- package/dist/harnesses.js.map +0 -1
- package/dist/hermes-attendant.d.ts +0 -38
- package/dist/hermes-attendant.js +0 -337
- package/dist/hermes-attendant.js.map +0 -1
- package/dist/hermes-plugin.d.ts +0 -11
- package/dist/hermes-plugin.js +0 -299
- package/dist/hermes-plugin.js.map +0 -1
- package/dist/hook-acknowledgements.d.ts +0 -70
- package/dist/hook-acknowledgements.js +0 -490
- package/dist/hook-acknowledgements.js.map +0 -1
- package/dist/hook-adapter.d.ts +0 -48
- package/dist/hook-adapter.js +0 -419
- package/dist/hook-adapter.js.map +0 -1
- package/dist/hook-events.d.ts +0 -105
- package/dist/hook-events.js +0 -130
- package/dist/hook-events.js.map +0 -1
- package/dist/hook-gates.d.ts +0 -7
- package/dist/hook-gates.js +0 -20
- package/dist/hook-gates.js.map +0 -1
- package/dist/hook-input.d.ts +0 -10
- package/dist/hook-input.js +0 -64
- package/dist/hook-input.js.map +0 -1
- package/dist/hook-lifecycle.d.ts +0 -112
- package/dist/hook-lifecycle.js +0 -2031
- package/dist/hook-lifecycle.js.map +0 -1
- package/dist/hook-project-sessions.d.ts +0 -28
- package/dist/hook-project-sessions.js +0 -141
- package/dist/hook-project-sessions.js.map +0 -1
- package/dist/hook-question-lock.d.ts +0 -29
- package/dist/hook-question-lock.js +0 -217
- package/dist/hook-question-lock.js.map +0 -1
- package/dist/hook-question-retirement.d.ts +0 -74
- package/dist/hook-question-retirement.js +0 -314
- package/dist/hook-question-retirement.js.map +0 -1
- package/dist/hook-question-state.d.ts +0 -58
- package/dist/hook-question-state.js +0 -239
- package/dist/hook-question-state.js.map +0 -1
- package/dist/hook-session-state.d.ts +0 -127
- package/dist/hook-session-state.js +0 -488
- package/dist/hook-session-state.js.map +0 -1
- package/dist/hook-types.d.ts +0 -476
- package/dist/hook-types.js +0 -4
- package/dist/hook-types.js.map +0 -1
- package/dist/injection-render.d.ts +0 -36
- package/dist/injection-render.js +0 -61
- package/dist/injection-render.js.map +0 -1
- package/dist/install-hooks.d.ts +0 -470
- package/dist/install-hooks.js +0 -1622
- package/dist/install-hooks.js.map +0 -1
- package/dist/integration-health.d.ts +0 -26
- package/dist/integration-health.js +0 -133
- package/dist/integration-health.js.map +0 -1
- package/dist/interactive.d.ts +0 -22
- package/dist/interactive.js +0 -644
- package/dist/interactive.js.map +0 -1
- package/dist/invocation-context.d.ts +0 -47
- package/dist/invocation-context.js +0 -164
- package/dist/invocation-context.js.map +0 -1
- package/dist/local-path.d.ts +0 -7
- package/dist/local-path.js +0 -27
- package/dist/local-path.js.map +0 -1
- package/dist/logging.d.ts +0 -157
- package/dist/logging.js +0 -599
- package/dist/logging.js.map +0 -1
- package/dist/main-run.d.ts +0 -1
- package/dist/main-run.js +0 -42
- package/dist/main-run.js.map +0 -1
- package/dist/main.d.ts +0 -2
- package/dist/main.js +0 -12
- package/dist/main.js.map +0 -1
- package/dist/native-answer-operation.d.ts +0 -70
- package/dist/native-answer-operation.js +0 -247
- package/dist/native-answer-operation.js.map +0 -1
- package/dist/native-skills.d.ts +0 -64
- package/dist/native-skills.js +0 -167
- package/dist/native-skills.js.map +0 -1
- package/dist/node-floor.d.ts +0 -19
- package/dist/node-floor.js +0 -32
- package/dist/node-floor.js.map +0 -1
- package/dist/npm-invocation.d.ts +0 -34
- package/dist/npm-invocation.js +0 -53
- package/dist/npm-invocation.js.map +0 -1
- package/dist/openclaw-continuation-bridge.d.ts +0 -7
- package/dist/openclaw-continuation-bridge.js +0 -64
- package/dist/openclaw-continuation-bridge.js.map +0 -1
- package/dist/openclaw-gateway-readiness.d.ts +0 -1
- package/dist/openclaw-gateway-readiness.js +0 -24
- package/dist/openclaw-gateway-readiness.js.map +0 -1
- package/dist/openclaw-generation.d.ts +0 -21
- package/dist/openclaw-generation.js +0 -115
- package/dist/openclaw-generation.js.map +0 -1
- package/dist/openclaw-message-bridge.d.ts +0 -8
- package/dist/openclaw-message-bridge.js +0 -93
- package/dist/openclaw-message-bridge.js.map +0 -1
- package/dist/openclaw-pending.d.ts +0 -8
- package/dist/openclaw-pending.js +0 -47
- package/dist/openclaw-pending.js.map +0 -1
- package/dist/openclaw-plugin.d.ts +0 -75
- package/dist/openclaw-plugin.js +0 -1353
- package/dist/openclaw-plugin.js.map +0 -1
- package/dist/openclaw-session-access.d.ts +0 -12
- package/dist/openclaw-session-access.js +0 -79
- package/dist/openclaw-session-access.js.map +0 -1
- package/dist/opencode-plugin.d.ts +0 -88
- package/dist/opencode-plugin.js +0 -286
- package/dist/opencode-plugin.js.map +0 -1
- package/dist/orca-session-title.d.ts +0 -11
- package/dist/orca-session-title.js +0 -111
- package/dist/orca-session-title.js.map +0 -1
- package/dist/pack-feedback-slice.d.ts +0 -35
- package/dist/pack-feedback-slice.js +0 -126
- package/dist/pack-feedback-slice.js.map +0 -1
- package/dist/pairing-qr.d.ts +0 -5
- package/dist/pairing-qr.js +0 -24
- package/dist/pairing-qr.js.map +0 -1
- package/dist/pending-pairing.d.ts +0 -38
- package/dist/pending-pairing.js +0 -70
- package/dist/pending-pairing.js.map +0 -1
- package/dist/platform.d.ts +0 -67
- package/dist/platform.js +0 -140
- package/dist/platform.js.map +0 -1
- package/dist/process-identity.d.ts +0 -26
- package/dist/process-identity.js +0 -82
- package/dist/process-identity.js.map +0 -1
- package/dist/program.d.ts +0 -59
- package/dist/program.js +0 -691
- package/dist/program.js.map +0 -1
- package/dist/project-enablement.d.ts +0 -21
- package/dist/project-enablement.js +0 -71
- package/dist/project-enablement.js.map +0 -1
- package/dist/question-settlement-process.d.ts +0 -17
- package/dist/question-settlement-process.js +0 -35
- package/dist/question-settlement-process.js.map +0 -1
- package/dist/question-timing.d.ts +0 -46
- package/dist/question-timing.js +0 -48
- package/dist/question-timing.js.map +0 -1
- package/dist/readiness.d.ts +0 -153
- package/dist/readiness.js +0 -149
- package/dist/readiness.js.map +0 -1
- package/dist/release.d.ts +0 -31
- package/dist/release.js +0 -52
- package/dist/release.js.map +0 -1
- package/dist/send-attempts.d.ts +0 -26
- package/dist/send-attempts.js +0 -139
- package/dist/send-attempts.js.map +0 -1
- package/dist/send.d.ts +0 -115
- package/dist/send.js +0 -421
- package/dist/send.js.map +0 -1
- package/dist/session-activation.d.ts +0 -13
- package/dist/session-activation.js +0 -64
- package/dist/session-activation.js.map +0 -1
- package/dist/session-attendant-probe.d.ts +0 -85
- package/dist/session-attendant-probe.js +0 -173
- package/dist/session-attendant-probe.js.map +0 -1
- package/dist/session-attendant-state.d.ts +0 -70
- package/dist/session-attendant-state.js +0 -256
- package/dist/session-attendant-state.js.map +0 -1
- package/dist/session-attendant.d.ts +0 -143
- package/dist/session-attendant.js +0 -520
- package/dist/session-attendant.js.map +0 -1
- package/dist/session-delivery.d.ts +0 -249
- package/dist/session-delivery.js +0 -576
- package/dist/session-delivery.js.map +0 -1
- package/dist/session-handoff.d.ts +0 -98
- package/dist/session-handoff.js +0 -118
- package/dist/session-handoff.js.map +0 -1
- package/dist/session-input-wakes.d.ts +0 -78
- package/dist/session-input-wakes.js +0 -239
- package/dist/session-input-wakes.js.map +0 -1
- package/dist/session-inputs.d.ts +0 -57
- package/dist/session-inputs.js +0 -434
- package/dist/session-inputs.js.map +0 -1
- package/dist/session-labels.d.ts +0 -56
- package/dist/session-labels.js +0 -396
- package/dist/session-labels.js.map +0 -1
- package/dist/session-message-handoff.d.ts +0 -39
- package/dist/session-message-handoff.js +0 -107
- package/dist/session-message-handoff.js.map +0 -1
- package/dist/setup-destinations.d.ts +0 -23
- package/dist/setup-destinations.js +0 -44
- package/dist/setup-destinations.js.map +0 -1
- package/dist/skill-integrity.d.ts +0 -54
- package/dist/skill-integrity.js +0 -164
- package/dist/skill-integrity.js.map +0 -1
- package/dist/skill-source/manifest.json +0 -40
- package/dist/skill-source/notifai/SKILL.md +0 -350
- package/dist/skill-source/notifai/references/diagnostics.md +0 -36
- package/dist/skill-source/notifai/references/harness-setup.md +0 -384
- package/dist/skill-source/notifai/references/native-questions.md +0 -51
- package/dist/skill-source/notifai/references/notes-and-edits.md +0 -54
- package/dist/skill-source/notifai/references/send-details.md +0 -14
- package/dist/skill-source/notifai/references/updates.md +0 -116
- package/dist/skill-source/notifai/references/writing-examples.md +0 -56
- package/dist/sound-ref.d.ts +0 -23
- package/dist/sound-ref.js +0 -28
- package/dist/sound-ref.js.map +0 -1
- package/dist/ui/banner.d.ts +0 -22
- package/dist/ui/banner.js +0 -87
- package/dist/ui/banner.js.map +0 -1
- package/dist/ui/config-view.d.ts +0 -30
- package/dist/ui/config-view.js +0 -108
- package/dist/ui/config-view.js.map +0 -1
- package/dist/ui/help.d.ts +0 -44
- package/dist/ui/help.js +0 -107
- package/dist/ui/help.js.map +0 -1
- package/dist/ui/theme.d.ts +0 -90
- package/dist/ui/theme.js +0 -244
- package/dist/ui/theme.js.map +0 -1
- package/dist/update-handoff.d.ts +0 -29
- package/dist/update-handoff.js +0 -69
- package/dist/update-handoff.js.map +0 -1
- package/dist/url-policy.d.ts +0 -85
- package/dist/url-policy.js +0 -369
- package/dist/url-policy.js.map +0 -1
- package/dist/version.d.ts +0 -40
- package/dist/version.js +0 -132
- package/dist/version.js.map +0 -1
- package/dist/wake-support.d.ts +0 -40
- package/dist/wake-support.js +0 -95
- package/dist/wake-support.js.map +0 -1
package/dist/codex-wake.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { accessSync, constants, existsSync } from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { configHome } from './install-hooks.js';
|
|
4
|
-
import {} from './hook-types.js';
|
|
5
|
-
import { deliverIntoCodexThread } from './session-handoff.js';
|
|
6
|
-
import { abortedDelivery, cancelledDelivery, holdForNextTurn, runWakeCommand } from './wake-support.js';
|
|
7
|
-
/** Codex thread ids are UUIDs, and `--thread` wants that exact id. */
|
|
8
|
-
const THREAD_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
9
|
-
/**
|
|
10
|
-
* The per-thread durable inbox `codex queue` writes to, relative to `$CODEX_HOME`.
|
|
11
|
-
*
|
|
12
|
-
* Named for diagnostics only. Notifai never opens it: the schema is private to
|
|
13
|
-
* Codex, versioned by its own migration table, and the supported writer is the
|
|
14
|
-
* CLI. Reading it here would couple Notifai to an internal shape it does not own.
|
|
15
|
-
*/
|
|
16
|
-
export const CODEX_QUEUE_STORE_FILE = 'queue_1.sqlite';
|
|
17
|
-
export function codexHome(env) {
|
|
18
|
-
return configHome(env, 'CODEX_HOME', '.codex');
|
|
19
|
-
}
|
|
20
|
-
export function codexQueueStorePath(env) {
|
|
21
|
-
return path.join(codexHome(env), CODEX_QUEUE_STORE_FILE);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Whether this Stop hook could queue an answer into its own thread.
|
|
25
|
-
*
|
|
26
|
-
* The only precondition the route actually has is an exact thread id: queueing
|
|
27
|
-
* needs no writer lock, no daemon, no socket and no platform syscall, and it
|
|
28
|
-
* succeeds against a live, busy or stopped thread alike. The absence of the
|
|
29
|
-
* queue store is deliberately *not* a blocker — Codex creates it on first
|
|
30
|
-
* write — so this reports readiness, never a store-existence gate.
|
|
31
|
-
*/
|
|
32
|
-
export function inspectCodexQueue(threadId, _env) {
|
|
33
|
-
if (threadId === undefined || !THREAD_ID.test(threadId)) {
|
|
34
|
-
return {
|
|
35
|
-
state: 'unavailable',
|
|
36
|
-
reason: 'the Codex session id is not a thread id, so no inbox can be named',
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
return { state: 'ready', threadId };
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Low-level exact-thread wake transport. Production callers wrap this route
|
|
43
|
-
* with sessionInputRoute: only a content-free wake goes into the native queue,
|
|
44
|
-
* and the foreground consumer claims current input immediately before stdout.
|
|
45
|
-
*
|
|
46
|
-
* Queue exit 0 proves storage, never presentation. A busy owner may consume
|
|
47
|
-
* the wake much later; an exited thread keeps it until reopened. There is no
|
|
48
|
-
* cold-resume path here, which would consume the queue and a repeated prompt.
|
|
49
|
-
*/
|
|
50
|
-
export function codexWakeRoute(options) {
|
|
51
|
-
const env = options.env ?? process.env;
|
|
52
|
-
const adapters = options.adapters ?? systemCodexWakeAdapters(env);
|
|
53
|
-
return {
|
|
54
|
-
kind: 'session-queue',
|
|
55
|
-
async deliver(event) {
|
|
56
|
-
const written = await deliverIntoCodexThread({
|
|
57
|
-
threadId: options.threadId,
|
|
58
|
-
cwd: options.cwd,
|
|
59
|
-
env,
|
|
60
|
-
adapters,
|
|
61
|
-
text: event.context,
|
|
62
|
-
// `codex queue` is a subprocess writer.
|
|
63
|
-
begin: () => event.commitDelivery('subprocess'),
|
|
64
|
-
...(event.writeGuard === undefined ? {} : { guard: event.writeGuard }),
|
|
65
|
-
onSpawn: (pgid) => event.writerGroup?.(pgid),
|
|
66
|
-
});
|
|
67
|
-
if (written.status === 'unavailable')
|
|
68
|
-
return holdForNextTurn(written.reason);
|
|
69
|
-
if (written.status === 'cancelled' || written.status === 'stopped')
|
|
70
|
-
return cancelledDelivery();
|
|
71
|
-
if (written.status === 'aborted')
|
|
72
|
-
return abortedDelivery();
|
|
73
|
-
if (written.status === 'failed') {
|
|
74
|
-
// A claimed answer (the Session Attendant holds this thread's lease)
|
|
75
|
-
// may have reached the queue: it is reported unconfirmed and never
|
|
76
|
-
// written again, exactly like a failed inbox write. An unclaimed one
|
|
77
|
-
// is held for the next turn, as it always was.
|
|
78
|
-
if (event.writeGuard !== undefined)
|
|
79
|
-
throw written.error;
|
|
80
|
-
return holdForNextTurn(`queueing the answer into the Codex thread failed: ${written.reason}`);
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
notes: [
|
|
84
|
-
"queued the accepted answer into the Codex thread's durable inbox; it starts a turn when that thread is next live",
|
|
85
|
-
],
|
|
86
|
-
// `stage: queued`, never `delivered`: exit 0 is identical against an
|
|
87
|
-
// exited thread, so this write proves storage and never consumption.
|
|
88
|
-
// Consumption is observable elsewhere and only elsewhere — this
|
|
89
|
-
// session's own UserPromptSubmit fires with the queued text.
|
|
90
|
-
log: { route: 'session-queue', stage: 'queued' },
|
|
91
|
-
// The journal still settles here, and must. `delivered` is this
|
|
92
|
-
// codebase's token for "the harness itself accepted the write", which
|
|
93
|
-
// is exactly what happened; it has never meant the model acted on it
|
|
94
|
-
// (see DeliveryAcknowledgement). Holding instead would replay the
|
|
95
|
-
// answer at every turn-end while Codex also delivers the queued copy,
|
|
96
|
-
// which is the one failure this route has to avoid.
|
|
97
|
-
acknowledgement: 'delivered',
|
|
98
|
-
};
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
function runCodex(args, options) {
|
|
103
|
-
return runWakeCommand('codex', args, options);
|
|
104
|
-
}
|
|
105
|
-
export function systemCodexWakeAdapters(env = process.env) {
|
|
106
|
-
return {
|
|
107
|
-
available: () => executableOnPath('codex', env),
|
|
108
|
-
async queue(threadId, cwd, context, onSpawn, signal) {
|
|
109
|
-
if (!existsSync(cwd))
|
|
110
|
-
throw new Error(`Codex thread cwd no longer exists: ${cwd}`);
|
|
111
|
-
await runCodex(['queue', '--thread', threadId, '--message', context], {
|
|
112
|
-
cwd,
|
|
113
|
-
env,
|
|
114
|
-
...(onSpawn === undefined ? {} : { onSpawn }),
|
|
115
|
-
...(signal === undefined ? {} : { signal }),
|
|
116
|
-
});
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
/** Whether `name` resolves to an executable file on this environment's PATH (POSIX). */
|
|
121
|
-
function executableOnPath(name, env) {
|
|
122
|
-
for (const directory of (env['PATH'] ?? '').split(path.delimiter)) {
|
|
123
|
-
if (directory === '')
|
|
124
|
-
continue;
|
|
125
|
-
try {
|
|
126
|
-
accessSync(path.join(directory, name), constants.X_OK);
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
catch {
|
|
130
|
-
// Not here; keep looking.
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=codex-wake.js.map
|
package/dist/codex-wake.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-wake.js","sourceRoot":"","sources":["../src/codex-wake.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { CommandDeps } from './commands-core.js';
|
|
2
|
-
export interface ResolvedCommandSession {
|
|
3
|
-
sessionId: string;
|
|
4
|
-
source: 'exact-harness' | 'stable-id' | 'project-pointer';
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Resolve only Question Routing lifecycle ownership.
|
|
8
|
-
*
|
|
9
|
-
* Exact harness identity wins across checkouts. A stable question/request id
|
|
10
|
-
* wins next. The cwd pointer remains a compatibility fallback for shells that
|
|
11
|
-
* genuinely have no exact harness identity; it never owns Project or config
|
|
12
|
-
* scope, which stay with the command's invocation directory.
|
|
13
|
-
*/
|
|
14
|
-
export declare function resolveCommandSession(deps: CommandDeps, stableId?: string): ResolvedCommandSession | null;
|
package/dist/command-session.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { resolveActiveHarness } from './commands-harness-context.js';
|
|
2
|
-
import { readProjectSession } from './hook-project-sessions.js';
|
|
3
|
-
import { findOwningSession } from './hook-session-state.js';
|
|
4
|
-
/**
|
|
5
|
-
* Resolve only Question Routing lifecycle ownership.
|
|
6
|
-
*
|
|
7
|
-
* Exact harness identity wins across checkouts. A stable question/request id
|
|
8
|
-
* wins next. The cwd pointer remains a compatibility fallback for shells that
|
|
9
|
-
* genuinely have no exact harness identity; it never owns Project or config
|
|
10
|
-
* scope, which stay with the command's invocation directory.
|
|
11
|
-
*/
|
|
12
|
-
export function resolveCommandSession(deps, stableId) {
|
|
13
|
-
if (stableId !== undefined) {
|
|
14
|
-
const owner = findOwningSession(stableId, deps.env);
|
|
15
|
-
if (owner.ambiguous)
|
|
16
|
-
return null;
|
|
17
|
-
if (owner.sessionId !== null)
|
|
18
|
-
return { sessionId: owner.sessionId, source: 'stable-id' };
|
|
19
|
-
}
|
|
20
|
-
const now = (deps.now ?? Date.now)();
|
|
21
|
-
const resolution = resolveActiveHarness(deps.env, deps.cwd, now);
|
|
22
|
-
if (resolution.contested.length > 0)
|
|
23
|
-
return null;
|
|
24
|
-
if (resolution.active?.sessionId !== undefined &&
|
|
25
|
-
resolution.contested.length === 0) {
|
|
26
|
-
return { sessionId: resolution.active.sessionId, source: 'exact-harness' };
|
|
27
|
-
}
|
|
28
|
-
const pointer = readProjectSession(deps.cwd, deps.env, now);
|
|
29
|
-
return pointer === null ? null : { sessionId: pointer, source: 'project-pointer' };
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=command-session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-session.js","sourceRoot":"","sources":["../src/command-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAO3D;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAiB,EACjB,QAAiB;IAEjB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACnD,IAAI,KAAK,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAChC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAC1F,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACpC,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChE,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAChD,IACE,UAAU,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS;QAC1C,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EACjC,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;IAC5E,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC3D,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAA;AACpF,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type CommandDeps } from './commands-core.js';
|
|
2
|
-
import { type NativeAcknowledgeFlags } from './commands-native-acknowledge.js';
|
|
3
|
-
/**
|
|
4
|
-
* Record the one Agent Acknowledgement associated with a replied-to request
|
|
5
|
-
* (`req_…`) or a Session Message handed into the session (`sm_…`), dispatched
|
|
6
|
-
* by the identifier's prefix.
|
|
7
|
-
*
|
|
8
|
-
* `--text` is optional here because the acknowledgement is not: an account may
|
|
9
|
-
* turn the agent's written reply off, and the receipt must still be recorded so
|
|
10
|
-
* the user sees that an agent read the answer. The service holds the account's
|
|
11
|
-
* snapshot, so it — not this process — decides whether text was owed.
|
|
12
|
-
*/
|
|
13
|
-
export declare function acknowledgeCommand(deps: CommandDeps, id: string, flags: NativeAcknowledgeFlags): Promise<number>;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/** Agent-authored acknowledgement submission and local obligation clearing. */
|
|
2
|
-
import { AGENT_ACKNOWLEDGEMENT_MAX_LENGTH, SESSION_MESSAGE_ID_PREFIX, } from '@raidiant/notifai-protocol';
|
|
3
|
-
import { resolveCommandSession } from './command-session.js';
|
|
4
|
-
import { EXIT, authedClient, loadLoggedConfig, log, reportError, } from './commands-core.js';
|
|
5
|
-
import { clearAcknowledgementObligation } from './hook-acknowledgements.js';
|
|
6
|
-
import { openclawOwnsMessage, openclawOwnsReply } from './openclaw-session-access.js';
|
|
7
|
-
import { acknowledgeNativeAnswer } from './commands-native-acknowledge.js';
|
|
8
|
-
/**
|
|
9
|
-
* Record the one Agent Acknowledgement associated with a replied-to request
|
|
10
|
-
* (`req_…`) or a Session Message handed into the session (`sm_…`), dispatched
|
|
11
|
-
* by the identifier's prefix.
|
|
12
|
-
*
|
|
13
|
-
* `--text` is optional here because the acknowledgement is not: an account may
|
|
14
|
-
* turn the agent's written reply off, and the receipt must still be recorded so
|
|
15
|
-
* the user sees that an agent read the answer. The service holds the account's
|
|
16
|
-
* snapshot, so it — not this process — decides whether text was owed.
|
|
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
|
-
}
|
|
25
|
-
const requestId = id;
|
|
26
|
-
const subject = id.startsWith(SESSION_MESSAGE_ID_PREFIX) ? 'message' : 'request';
|
|
27
|
-
if (deps.env['NOTIFAI_ACTIVE_HARNESS'] === 'openclaw') {
|
|
28
|
-
const sessionKey = deps.env['NOTIFAI_ACTIVE_SESSION_ID'] ?? '';
|
|
29
|
-
const owned = subject === 'request'
|
|
30
|
-
? openclawOwnsReply(sessionKey, requestId, deps.env, deps.cwd)
|
|
31
|
-
: openclawOwnsMessage(sessionKey, id, deps.env, deps.cwd);
|
|
32
|
-
if (!owned) {
|
|
33
|
-
deps.io.err('This acknowledgement does not belong to the current OpenClaw session generation.');
|
|
34
|
-
return EXIT.usage;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
const text = flags.text?.trim() ?? '';
|
|
38
|
-
if (flags.text !== undefined && text.length === 0) {
|
|
39
|
-
deps.io.err('--text must contain non-whitespace text. Drop it to acknowledge without text.');
|
|
40
|
-
return EXIT.usage;
|
|
41
|
-
}
|
|
42
|
-
if (text.length > AGENT_ACKNOWLEDGEMENT_MAX_LENGTH) {
|
|
43
|
-
deps.io.err(`--text must be at most ${AGENT_ACKNOWLEDGEMENT_MAX_LENGTH} characters after trimming. Shorten it: an acknowledgement is a receipt, not a report.`);
|
|
44
|
-
return EXIT.usage;
|
|
45
|
-
}
|
|
46
|
-
const logger = log(deps);
|
|
47
|
-
const lifecycleSession = resolveCommandSession(deps, requestId);
|
|
48
|
-
const config = loadLoggedConfig(deps, {
|
|
49
|
-
cwd: deps.cwd,
|
|
50
|
-
env: deps.env,
|
|
51
|
-
...(lifecycleSession === null ? {} : { sessionId: lifecycleSession.sessionId }),
|
|
52
|
-
});
|
|
53
|
-
logger.info('acknowledgement.attempted', {
|
|
54
|
-
...(subject === 'message' ? { message_id: id } : { request_id: id }),
|
|
55
|
-
characters: text.length,
|
|
56
|
-
});
|
|
57
|
-
const authed = authedClient(deps, config);
|
|
58
|
-
if (!authed)
|
|
59
|
-
return EXIT.auth;
|
|
60
|
-
if (subject === 'message') {
|
|
61
|
-
return acknowledgeMessage(deps, authed.client, id, text, flags.json === true, lifecycleSession?.sessionId ?? null);
|
|
62
|
-
}
|
|
63
|
-
try {
|
|
64
|
-
const result = await authed.client.putAgentAcknowledgement(requestId, text.length > 0 ? { text } : {});
|
|
65
|
-
const output = {
|
|
66
|
-
request_id: requestId,
|
|
67
|
-
outcome: result.status,
|
|
68
|
-
acknowledgement: result.agent_acknowledgement,
|
|
69
|
-
agent_acknowledgement_required: true,
|
|
70
|
-
};
|
|
71
|
-
logger.info('acknowledgement.outcome', {
|
|
72
|
-
request_id: requestId,
|
|
73
|
-
outcome: result.status,
|
|
74
|
-
text_chars: result.agent_acknowledgement.text.length,
|
|
75
|
-
created_at: result.agent_acknowledgement.created_at,
|
|
76
|
-
agent_acknowledgement_required: true,
|
|
77
|
-
});
|
|
78
|
-
if (lifecycleSession !== null) {
|
|
79
|
-
clearAcknowledgementObligation(lifecycleSession.sessionId, deps.env, requestId);
|
|
80
|
-
}
|
|
81
|
-
if (flags.json)
|
|
82
|
-
deps.io.out(JSON.stringify(output, null, 2));
|
|
83
|
-
else {
|
|
84
|
-
deps.io.out(`Agent Acknowledgement ${result.status} for ${requestId} at ${result.agent_acknowledgement.created_at}.`);
|
|
85
|
-
}
|
|
86
|
-
return EXIT.ok;
|
|
87
|
-
}
|
|
88
|
-
catch (err) {
|
|
89
|
-
return reportError(deps, err, { operation: 'agent_acknowledgement', request_id: requestId });
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
async function acknowledgeMessage(deps, client, messageId, text, json, sessionId) {
|
|
93
|
-
const logger = log(deps);
|
|
94
|
-
try {
|
|
95
|
-
const result = await client.putSessionMessageAcknowledgement(messageId, text.length > 0 ? { text } : {});
|
|
96
|
-
logger.info('acknowledgement.outcome', {
|
|
97
|
-
message_id: messageId,
|
|
98
|
-
outcome: result.status,
|
|
99
|
-
text_chars: result.agent_acknowledgement.text.length,
|
|
100
|
-
created_at: result.agent_acknowledgement.created_at,
|
|
101
|
-
});
|
|
102
|
-
if (sessionId !== null)
|
|
103
|
-
clearAcknowledgementObligation(sessionId, deps.env, messageId);
|
|
104
|
-
if (json) {
|
|
105
|
-
deps.io.out(JSON.stringify({ message_id: messageId, outcome: result.status, acknowledgement: result.agent_acknowledgement }, null, 2));
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
deps.io.out(`Agent Acknowledgement ${result.status} for ${messageId} at ${result.agent_acknowledgement.created_at}.`);
|
|
109
|
-
}
|
|
110
|
-
return EXIT.ok;
|
|
111
|
-
}
|
|
112
|
-
catch (err) {
|
|
113
|
-
return reportError(deps, err, { operation: 'session_message_acknowledgement', message_id: messageId });
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=commands-acknowledge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands-acknowledge.js","sourceRoot":"","sources":["../src/commands-acknowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type CommandDeps } from './commands-core.js';
|
|
2
|
-
export interface AgentSessionRenameFlags {
|
|
3
|
-
json?: boolean;
|
|
4
|
-
}
|
|
5
|
-
/** Rename only the exact harness-owned Agent Session running this command. */
|
|
6
|
-
export declare function agentSessionRenameCommand(deps: CommandDeps, label: string, flags?: AgentSessionRenameFlags): Promise<number>;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { resolveActiveHarness } from './commands-harness-context.js';
|
|
2
|
-
import { authedClient, EXIT, loadLoggedConfig, reportError, } from './commands-core.js';
|
|
3
|
-
import { normalizeExplicitSessionLabel, renameStoredSessionLabel, } from './session-labels.js';
|
|
4
|
-
/** Rename only the exact harness-owned Agent Session running this command. */
|
|
5
|
-
export async function agentSessionRenameCommand(deps, label, flags = {}) {
|
|
6
|
-
const now = deps.now?.() ?? Date.now();
|
|
7
|
-
const resolution = resolveActiveHarness(deps.env, deps.cwd, now);
|
|
8
|
-
const active = resolution.active;
|
|
9
|
-
if (resolution.contested.length > 0 || active?.sessionId === undefined) {
|
|
10
|
-
deps.io.err('No exact active Agent Session can be proven here. Run this command inside the Agent Session you intend to rename.');
|
|
11
|
-
return EXIT.usage;
|
|
12
|
-
}
|
|
13
|
-
const normalized = normalizeExplicitSessionLabel({
|
|
14
|
-
env: deps.env,
|
|
15
|
-
sessionId: active.sessionId,
|
|
16
|
-
label,
|
|
17
|
-
});
|
|
18
|
-
if (!normalized.ok) {
|
|
19
|
-
deps.io.err(normalized.error);
|
|
20
|
-
return EXIT.usage;
|
|
21
|
-
}
|
|
22
|
-
const config = loadLoggedConfig(deps, { cwd: deps.cwd, env: deps.env });
|
|
23
|
-
const auth = authedClient(deps, config);
|
|
24
|
-
if (!auth)
|
|
25
|
-
return EXIT.auth;
|
|
26
|
-
try {
|
|
27
|
-
const renamed = await auth.client.putAgentSessionLabel({
|
|
28
|
-
session_id: active.sessionId,
|
|
29
|
-
label: normalized.label,
|
|
30
|
-
});
|
|
31
|
-
const local = renameStoredSessionLabel({
|
|
32
|
-
env: deps.env,
|
|
33
|
-
sessionId: active.sessionId,
|
|
34
|
-
label: renamed.label,
|
|
35
|
-
harness: active.harness,
|
|
36
|
-
now,
|
|
37
|
-
});
|
|
38
|
-
if (!local.ok) {
|
|
39
|
-
deps.io.err(local.error);
|
|
40
|
-
return EXIT.failed;
|
|
41
|
-
}
|
|
42
|
-
deps.io.out(flags.json
|
|
43
|
-
? JSON.stringify(renamed)
|
|
44
|
-
: `Agent Session renamed to "${renamed.label}" across your Notifai account.`);
|
|
45
|
-
return EXIT.ok;
|
|
46
|
-
}
|
|
47
|
-
catch (err) {
|
|
48
|
-
return reportError(deps, err, { operation: 'agent_session_rename' });
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=commands-agent-sessions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands-agent-sessions.js","sourceRoot":"","sources":["../src/commands-agent-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,gBAAgB,EAChB,WAAW,GAEZ,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAM5B,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAiB,EACjB,KAAa,EACb,QAAiC,EAAE;IAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;IACtC,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QACvE,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,mHAAmH,CACpH,CAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,6BAA6B,CAAC;QAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK;KACN,CAAC,CAAA;IACF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACvE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,CAAA;IAC3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YACrD,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,wBAAwB,CAAC;YACrC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG;SACJ,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACxB,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,KAAK,CAAC,IAAI;YACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACzB,CAAC,CAAC,6BAA6B,OAAO,CAAC,KAAK,gCAAgC,CAC/E,CAAA;QACD,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAA;IACtE,CAAC;AACH,CAAC"}
|
package/dist/commands-ask.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/** Validation and durable registration for the agent-facing ask command. */
|
|
2
|
-
import { type QuestionT } from '@raidiant/notifai-protocol';
|
|
3
|
-
import { type CommandDeps } from './commands-core.js';
|
|
4
|
-
export interface AskFlags {
|
|
5
|
-
/** Emit the registration and its turn obligation as one JSON object. */
|
|
6
|
-
json?: boolean;
|
|
7
|
-
choice?: string[];
|
|
8
|
-
/** The single question is multi-select: several answers may be chosen. */
|
|
9
|
-
multi?: boolean;
|
|
10
|
-
/** Optional standalone Markdown Body for focused detail. */
|
|
11
|
-
body?: string;
|
|
12
|
-
/** Allow visible backslash-n sequences in `--body`. */
|
|
13
|
-
literalBackslashN?: boolean;
|
|
14
|
-
/** Raw JSON for a multi-question form; replaces the positional question. */
|
|
15
|
-
form?: string;
|
|
16
|
-
image?: string[];
|
|
17
|
-
imageAlt?: string[];
|
|
18
|
-
project?: string;
|
|
19
|
-
sessionLabel?: string;
|
|
20
|
-
}
|
|
21
|
-
export interface AskFailure {
|
|
22
|
-
ok: false;
|
|
23
|
-
registered: false;
|
|
24
|
-
code: string;
|
|
25
|
-
check_id: string;
|
|
26
|
-
exit_code: number;
|
|
27
|
-
remedy: string;
|
|
28
|
-
message: string;
|
|
29
|
-
user_action?: {
|
|
30
|
-
code: string;
|
|
31
|
-
harness: string;
|
|
32
|
-
action: string;
|
|
33
|
-
message: string;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
/** One stable failure contract for every machine-readable ask refusal. */
|
|
37
|
-
export declare function reportAskFailure(deps: CommandDeps, flags: Pick<AskFlags, 'json'>, failure: Omit<AskFailure, 'ok' | 'registered'>): number;
|
|
38
|
-
export interface BuiltQuestions {
|
|
39
|
-
questions: QuestionT[];
|
|
40
|
-
/** Purpose-written plain text for the collapsed banner and list surfaces. */
|
|
41
|
-
summary: string;
|
|
42
|
-
/** Optional standalone Markdown Body for focused detail. */
|
|
43
|
-
body?: string;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Turn ask input into questions plus authored presentation content. Everything is
|
|
47
|
-
* validated at registration because a later hook failure is easy to miss.
|
|
48
|
-
*/
|
|
49
|
-
export declare function buildQuestions(flags: AskFlags, question: string | undefined): {
|
|
50
|
-
ok: true;
|
|
51
|
-
questions: QuestionT[];
|
|
52
|
-
summary: string;
|
|
53
|
-
body?: string;
|
|
54
|
-
} | {
|
|
55
|
-
ok: false;
|
|
56
|
-
error: string;
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Registers and starts submission immediately, without waiting for turn end.
|
|
60
|
-
* The exact harness keeps ownership of answer delivery while work continues.
|
|
61
|
-
*/
|
|
62
|
-
export declare function askCommand(deps: CommandDeps, question: string | undefined, flags: AskFlags): number | Promise<number>;
|