@raidiant/notifai 10.1.7 → 11.0.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 +56 -0
- package/README.md +23 -13
- package/dist/claude-wake.d.ts +1 -2
- package/dist/claude-wake.js +15 -61
- package/dist/claude-wake.js.map +1 -1
- package/dist/cli-bin.js +3 -14
- package/dist/cli-bin.js.map +1 -1
- package/dist/cli-contract.d.ts +12 -0
- package/dist/cli-contract.js +19 -0
- package/dist/cli-contract.js.map +1 -0
- package/dist/cli-release.d.ts +0 -1
- package/dist/cli-release.js +5 -21
- package/dist/cli-release.js.map +1 -1
- package/dist/client.d.ts +2 -2
- package/dist/codex-wake.d.ts +1 -1
- package/dist/codex-wake.js +8 -36
- package/dist/codex-wake.js.map +1 -1
- package/dist/command-session.js +2 -1
- package/dist/command-session.js.map +1 -1
- package/dist/commands-acknowledge.d.ts +13 -0
- package/dist/commands-acknowledge.js +67 -0
- package/dist/commands-acknowledge.js.map +1 -0
- package/dist/commands-ask.d.ts +63 -0
- package/dist/commands-ask.js +407 -0
- package/dist/commands-ask.js.map +1 -0
- package/dist/commands-close.d.ts +6 -0
- package/dist/commands-close.js +197 -0
- package/dist/commands-close.js.map +1 -0
- package/dist/commands-config.js +2 -2
- package/dist/commands-config.js.map +1 -1
- package/dist/commands-core.js +2 -2
- package/dist/commands-core.js.map +1 -1
- package/dist/commands-doctor.js +61 -120
- package/dist/commands-doctor.js.map +1 -1
- package/dist/commands-harness-context.d.ts +0 -1
- package/dist/commands-harness-context.js +2 -4
- package/dist/commands-harness-context.js.map +1 -1
- package/dist/commands-hook-diagnostics.d.ts +27 -0
- package/dist/commands-hook-diagnostics.js +97 -0
- package/dist/commands-hook-diagnostics.js.map +1 -0
- package/dist/commands-hook-install.d.ts +26 -0
- package/dist/commands-hook-install.js +551 -0
- package/dist/commands-hook-install.js.map +1 -0
- package/dist/commands-hook-run.d.ts +29 -0
- package/dist/commands-hook-run.js +517 -0
- package/dist/commands-hook-run.js.map +1 -0
- package/dist/commands-init.d.ts +2 -7
- package/dist/commands-init.js +59 -92
- package/dist/commands-init.js.map +1 -1
- package/dist/commands-send.js +35 -3
- package/dist/commands-send.js.map +1 -1
- package/dist/commands-skill.js +5 -5
- package/dist/commands-skill.js.map +1 -1
- package/dist/commands-update.js +17 -31
- package/dist/commands-update.js.map +1 -1
- package/dist/commands.d.ts +11 -6
- package/dist/commands.js +9 -4
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +14 -4
- package/dist/config.js +35 -9
- package/dist/config.js.map +1 -1
- package/dist/file-lock.d.ts +3 -0
- package/dist/file-lock.js +33 -17
- package/dist/file-lock.js.map +1 -1
- package/dist/guidance-content.js +30 -15
- package/dist/guidance-content.js.map +1 -1
- package/dist/hook-acknowledgements.d.ts +42 -0
- package/dist/hook-acknowledgements.js +316 -0
- package/dist/hook-acknowledgements.js.map +1 -0
- package/dist/hook-events.d.ts +6 -0
- package/dist/hook-events.js +22 -0
- package/dist/hook-events.js.map +1 -0
- package/dist/hook-gates.d.ts +7 -0
- package/dist/hook-gates.js +21 -0
- package/dist/hook-gates.js.map +1 -0
- package/dist/hook-lifecycle.d.ts +93 -0
- package/dist/{hooks.js → hook-lifecycle.js} +61 -1359
- package/dist/hook-lifecycle.js.map +1 -0
- package/dist/hook-project-sessions.d.ts +28 -0
- package/dist/hook-project-sessions.js +141 -0
- package/dist/hook-project-sessions.js.map +1 -0
- package/dist/hook-question-lock.d.ts +7 -0
- package/dist/hook-question-lock.js +173 -0
- package/dist/hook-question-lock.js.map +1 -0
- package/dist/hook-question-retirement.d.ts +57 -0
- package/dist/hook-question-retirement.js +261 -0
- package/dist/hook-question-retirement.js.map +1 -0
- package/dist/hook-question-state.d.ts +45 -0
- package/dist/hook-question-state.js +196 -0
- package/dist/hook-question-state.js.map +1 -0
- package/dist/hook-session-state.d.ts +31 -0
- package/dist/hook-session-state.js +249 -0
- package/dist/hook-session-state.js.map +1 -0
- package/dist/{hooks.d.ts → hook-types.d.ts} +17 -236
- package/dist/hook-types.js +4 -0
- package/dist/hook-types.js.map +1 -0
- package/dist/install-hooks.d.ts +75 -60
- package/dist/install-hooks.js +299 -209
- package/dist/install-hooks.js.map +1 -1
- package/dist/interactive.d.ts +3 -16
- package/dist/interactive.js +19 -95
- package/dist/interactive.js.map +1 -1
- package/dist/local-path.d.ts +7 -0
- package/dist/local-path.js +27 -0
- package/dist/local-path.js.map +1 -0
- package/dist/node-floor.js +3 -10
- package/dist/node-floor.js.map +1 -1
- package/dist/npm-invocation.d.ts +34 -0
- package/dist/npm-invocation.js +53 -0
- package/dist/npm-invocation.js.map +1 -0
- package/dist/openclaw-plugin.d.ts +12 -3
- package/dist/openclaw-plugin.js +42 -16
- package/dist/openclaw-plugin.js.map +1 -1
- package/dist/opencode-plugin.d.ts +2 -2
- package/dist/opencode-plugin.js +4 -6
- package/dist/opencode-plugin.js.map +1 -1
- package/dist/program.js +11 -13
- package/dist/program.js.map +1 -1
- package/dist/project-enablement.d.ts +6 -0
- package/dist/project-enablement.js +11 -27
- package/dist/project-enablement.js.map +1 -1
- package/dist/question-settlement-process.d.ts +1 -1
- package/dist/readiness.d.ts +0 -2
- package/dist/readiness.js +0 -4
- package/dist/readiness.js.map +1 -1
- package/dist/send.d.ts +8 -4
- package/dist/send.js +145 -26
- package/dist/send.js.map +1 -1
- package/dist/session-activation.d.ts +3 -1
- package/dist/session-activation.js +16 -0
- package/dist/session-activation.js.map +1 -1
- package/dist/skill-source/manifest.json +4 -4
- package/dist/skill-source/notifai/SKILL.md +60 -60
- package/dist/skill-source/notifai/references/harness-setup.md +42 -16
- package/dist/ui/config-view.d.ts +0 -2
- package/dist/ui/config-view.js +1 -5
- package/dist/ui/config-view.js.map +1 -1
- package/dist/ui/theme.d.ts +0 -3
- package/dist/ui/theme.js +0 -1
- package/dist/ui/theme.js.map +1 -1
- package/dist/version.d.ts +22 -0
- package/dist/version.js +51 -0
- package/dist/version.js.map +1 -0
- package/dist/wake-support.d.ts +8 -0
- package/dist/wake-support.js +38 -0
- package/dist/wake-support.js.map +1 -0
- package/package.json +2 -2
- package/dist/cli-update-contract.d.ts +0 -7
- package/dist/cli-update-contract.js +0 -10
- package/dist/cli-update-contract.js.map +0 -1
- package/dist/commands-hooks.d.ts +0 -160
- package/dist/commands-hooks.js +0 -1800
- package/dist/commands-hooks.js.map +0 -1
- package/dist/hooks.js.map +0 -1
|
@@ -30,17 +30,25 @@ either as broken.
|
|
|
30
30
|
## Install deliberately
|
|
31
31
|
|
|
32
32
|
Flagless `notifai init --json` needs no answer and closes everything before
|
|
33
|
-
this point. Hooks place files, so this is where a question belongs: ask
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
tell the user to run setup commands
|
|
33
|
+
this point. Hooks place files, so this is where a question belongs: ask whether
|
|
34
|
+
they want questions routed. There is no scope to ask about — Notifai installs
|
|
35
|
+
one lifecycle mechanism per harness, for this machine, and whether it acts in a
|
|
36
|
+
project is `notifai project enable`. Never tell the user to run setup commands
|
|
37
|
+
themselves.
|
|
37
38
|
|
|
38
39
|
```bash
|
|
39
|
-
notifai init --hooks --
|
|
40
|
+
notifai init --hooks --json
|
|
40
41
|
```
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
Installing the agent guidance skill keeps its own independent placement choice,
|
|
44
|
+
which belongs to `npx skills` and says nothing about where hooks land:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
notifai init --skills --skills-scope <project|global> --json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
A machine-wide Notifai skill is guidance, not routing evidence. The active
|
|
51
|
+
harness needs its installed hook and a current session pointer.
|
|
44
52
|
|
|
45
53
|
Installed definitions call one stable user-level adapter at
|
|
46
54
|
`~/.notifai/bin/hook-adapter`. `hooks install` atomically retargets that adapter
|
|
@@ -55,8 +63,12 @@ later upgrades must not require another.
|
|
|
55
63
|
|
|
56
64
|
`notifai ask --json` owns its admission check. On failure, branch on its stable
|
|
57
65
|
`code`, `check_id`, `exit_code`, and `remedy`; do not run a routine doctor pass
|
|
58
|
-
first.
|
|
59
|
-
|
|
66
|
+
first. The current Agent Session's UserPromptSubmit observation proves that the
|
|
67
|
+
exact session owns this turn. A historical Stop observation is diagnostic
|
|
68
|
+
telemetry, not an admission prerequisite: the installed, trusted, current,
|
|
69
|
+
singular Stop definition and its continuation owner establish that the asking
|
|
70
|
+
turn can route the question. Ask exposes no `--session-id` override and will
|
|
71
|
+
not guess one.
|
|
60
72
|
When the failure includes a User-owned trust or permission `user_action`, relay
|
|
61
73
|
the exact `remedy`, say the hooks need the User's trust or approval, and wait.
|
|
62
74
|
Never bypass that gap with `notifai send --reply`.
|
|
@@ -98,10 +110,13 @@ request ID, inspect the original with `notifai replies <request_id> --json` and
|
|
|
98
110
|
SessionStart is absent, reinstall the current hooks and start a fresh Agent Session;
|
|
99
111
|
UserPromptSubmit does not activate it. Codex SubagentStart uses the same
|
|
100
112
|
reporting-only worker contract and explicit textual delegation rule as
|
|
101
|
-
Claude.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
113
|
+
Claude. A fresh install writes the Machine layer's `~/.codex/hooks.json`, or
|
|
114
|
+
joins inline `[hooks]` when that is the layer's existing representation.
|
|
115
|
+
Upgrades preserve whichever source already owns Notifai's approved handlers,
|
|
116
|
+
because moving the same definition between files creates a new Codex trust
|
|
117
|
+
identity. One install covers every project and every worktree, so there is
|
|
118
|
+
nothing to repeat in a new checkout; a Project-scoped `.codex` hook file from
|
|
119
|
+
an older Notifai is removed once the Machine copy is proven current.
|
|
105
120
|
- **Cursor:** start one fresh conversation, send one prompt, and let the first
|
|
106
121
|
completed or errored turn finish. Cursor's `SessionStart` context is currently
|
|
107
122
|
lossy, so one visible synthetic follow-up activates Notifai through its native
|
|
@@ -196,9 +211,11 @@ If a companion device is missing, ask the user to open a supported companion
|
|
|
196
211
|
build, sign in, and grant notification permission. Do not emulate that, and do
|
|
197
212
|
not treat Provider Acceptance as Companion Receipt proof.
|
|
198
213
|
|
|
199
|
-
To stop
|
|
200
|
-
|
|
201
|
-
|
|
214
|
+
To stop Notifai acting in one project while leaving other projects wired, run
|
|
215
|
+
`notifai project disable` — that is the per-project switch. `notifai hooks
|
|
216
|
+
uninstall` removes the machine's lifecycle wiring for every project; pass
|
|
217
|
+
`--harness <name>` to name one when several are wired. Uninstall also clears
|
|
218
|
+
any Project-scoped hook file an older Notifai left in this checkout.
|
|
202
219
|
|
|
203
220
|
## Reading the record
|
|
204
221
|
|
|
@@ -221,6 +238,15 @@ setting; `notifai config show --explain` includes advanced keys and the file
|
|
|
221
238
|
each value came from. Beyond the usual scopes, `--session <id>` writes a
|
|
222
239
|
preference that lasts only for one Agent Session.
|
|
223
240
|
|
|
241
|
+
With no scope flag, `notifai config set` writes Machine-Global Configuration.
|
|
242
|
+
`--local` writes a personal Project Override under the user's configuration
|
|
243
|
+
directory; one local Git checkout and all its linked worktrees resolve to the
|
|
244
|
+
same file. `--project` is deliberately different: it writes the tracked shared
|
|
245
|
+
`.notifai/config.toml` at the repository root. Do not create that repository
|
|
246
|
+
file during setup or to preserve personal state, and do not reach into another
|
|
247
|
+
worktree to write it—make the explicit shared change in the active checkout and
|
|
248
|
+
merge it through Git.
|
|
249
|
+
|
|
224
250
|
`ask_notifications` is the setting that turns question routing off for a scope;
|
|
225
251
|
`ask_grace_seconds` is the terminal-first window described above;
|
|
226
252
|
`reply_window_seconds` is how long an answer is still accepted, a day by
|
package/dist/ui/config-view.d.ts
CHANGED
|
@@ -28,5 +28,3 @@ export declare function renderConfigList(config: CliConfig, options?: {
|
|
|
28
28
|
export declare function renderConfigExplain(key: ConfigKey, config: CliConfig): string[];
|
|
29
29
|
/** The flat form, unchanged, for anything that is not a person at a terminal. */
|
|
30
30
|
export declare function renderConfigPlain(config: CliConfig, explain: boolean): string[];
|
|
31
|
-
/** Longest visible line, for callers that need to size a rule or a box. */
|
|
32
|
-
export declare function widestLine(lines: readonly string[]): number;
|
package/dist/ui/config-view.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { CONFIG_KEYS } from '../config.js';
|
|
9
9
|
import { CONFIG_GROUPS, acceptedValues, configInfo, configKeysByGroup, describeSource, formatValue, } from '../config-schema.js';
|
|
10
|
-
import { glyph, pad, style, terminalWidth,
|
|
10
|
+
import { glyph, pad, style, terminalWidth, wrap } from './theme.js';
|
|
11
11
|
/**
|
|
12
12
|
* The full settings listing, grouped and explained.
|
|
13
13
|
*
|
|
@@ -105,8 +105,4 @@ export function renderConfigPlain(config, explain) {
|
|
|
105
105
|
return `${key} = ${JSON.stringify(entry.value)}${provenance}`;
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
/** Longest visible line, for callers that need to size a rule or a box. */
|
|
109
|
-
export function widestLine(lines) {
|
|
110
|
-
return Math.max(0, ...lines.map((line) => width(line)));
|
|
111
|
-
}
|
|
112
108
|
//# sourceMappingURL=config-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-view.js","sourceRoot":"","sources":["../../src/ui/config-view.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,WAAW,EAAkC,MAAM,cAAc,CAAA;AAC1E,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"config-view.js","sourceRoot":"","sources":["../../src/ui/config-view.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/theme.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
/** True when the terminal can render the box-drawing and status glyphs below. */
|
|
2
2
|
export declare const unicode: boolean;
|
|
3
|
-
export declare const color: import("picocolors/types.js").Colors & {
|
|
4
|
-
createColors: (enabled?: boolean) => import("picocolors/types.js").Colors;
|
|
5
|
-
};
|
|
6
3
|
/**
|
|
7
4
|
* Brand ramp, shared with the companion app icon: pink → coral → rose →
|
|
8
5
|
* magenta. Used for the wordmark and for accenting the surfaces a human sees.
|
package/dist/ui/theme.js
CHANGED
|
@@ -30,7 +30,6 @@ function supportsTrueColor(env = process.env) {
|
|
|
30
30
|
return true;
|
|
31
31
|
return env['TERM_PROGRAM'] === 'iTerm.app' || env['TERM_PROGRAM'] === 'vscode';
|
|
32
32
|
}
|
|
33
|
-
export const color = pc;
|
|
34
33
|
/**
|
|
35
34
|
* Brand ramp, shared with the companion app icon: pink → coral → rose →
|
|
36
35
|
* magenta. Used for the wordmark and for accenting the surfaces a human sees.
|
package/dist/ui/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,iFAAiF;AACjF,MAAM,CAAC,MAAM,OAAO,GAClB,OAAO,CAAC,QAAQ,KAAK,OAAO;IAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS;IACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ;IACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,cAAc,CAAA;AAE9C,6EAA6E;AAC7E,SAAS,iBAAiB,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,IAAI,CAAC,EAAE,CAAC,gBAAgB;QAAE,OAAO,KAAK,CAAA;IACtC,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IACxC,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IACvD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,CAAA;AAChF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** @typedef {'before' | 'equal' | 'after' | 'unparseable'} VersionComparison */
|
|
2
|
+
/**
|
|
3
|
+
* The numeric release identity shared by CLI, harness, and runtime checks.
|
|
4
|
+
* Pre-release/build suffixes identify artifacts but do not change capability
|
|
5
|
+
* floors, matching the version comparisons these callers previously owned.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} value
|
|
8
|
+
* @returns {readonly [number, number, number] | null}
|
|
9
|
+
*/
|
|
10
|
+
export function parseVersion(value: string): readonly [number, number, number] | null;
|
|
11
|
+
/**
|
|
12
|
+
* Compare two release identities without silently treating malformed input as
|
|
13
|
+
* zero. Every caller must choose its own safe posture for `unparseable`.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} left
|
|
16
|
+
* @param {string} right
|
|
17
|
+
* @returns {VersionComparison}
|
|
18
|
+
*/
|
|
19
|
+
export function compareVersions(left: string, right: string): VersionComparison;
|
|
20
|
+
/** @param {string} value */
|
|
21
|
+
export function isSemVer(value: string): boolean;
|
|
22
|
+
export type VersionComparison = "before" | "equal" | "after" | "unparseable";
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const SEMVER = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
|
|
2
|
+
const ORDERED_VERSION = /^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/;
|
|
3
|
+
/** @typedef {'before' | 'equal' | 'after' | 'unparseable'} VersionComparison */
|
|
4
|
+
/**
|
|
5
|
+
* The numeric release identity shared by CLI, harness, and runtime checks.
|
|
6
|
+
* Pre-release/build suffixes identify artifacts but do not change capability
|
|
7
|
+
* floors, matching the version comparisons these callers previously owned.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} value
|
|
10
|
+
* @returns {readonly [number, number, number] | null}
|
|
11
|
+
*/
|
|
12
|
+
export function parseVersion(value) {
|
|
13
|
+
const match = ORDERED_VERSION.exec(value);
|
|
14
|
+
if (match === null)
|
|
15
|
+
return null;
|
|
16
|
+
const parsed = /** @type {readonly [number, number, number]} */ ([
|
|
17
|
+
Number(match[1]),
|
|
18
|
+
Number(match[2]),
|
|
19
|
+
Number(match[3]),
|
|
20
|
+
]);
|
|
21
|
+
return parsed.every(Number.isSafeInteger) ? parsed : null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Compare two release identities without silently treating malformed input as
|
|
25
|
+
* zero. Every caller must choose its own safe posture for `unparseable`.
|
|
26
|
+
*
|
|
27
|
+
* @param {string} left
|
|
28
|
+
* @param {string} right
|
|
29
|
+
* @returns {VersionComparison}
|
|
30
|
+
*/
|
|
31
|
+
export function compareVersions(left, right) {
|
|
32
|
+
const a = parseVersion(left);
|
|
33
|
+
const b = parseVersion(right);
|
|
34
|
+
if (a === null || b === null)
|
|
35
|
+
return 'unparseable';
|
|
36
|
+
for (let index = 0; index < a.length; index += 1) {
|
|
37
|
+
const leftPart = a[index];
|
|
38
|
+
const rightPart = b[index];
|
|
39
|
+
if (leftPart === undefined || rightPart === undefined)
|
|
40
|
+
return 'unparseable';
|
|
41
|
+
if (leftPart === rightPart)
|
|
42
|
+
continue;
|
|
43
|
+
return leftPart < rightPart ? 'before' : 'after';
|
|
44
|
+
}
|
|
45
|
+
return 'equal';
|
|
46
|
+
}
|
|
47
|
+
/** @param {string} value */
|
|
48
|
+
export function isSemVer(value) {
|
|
49
|
+
return SEMVER.test(value);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.js"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,iLAAiL,CAAA;AAChM,MAAM,eAAe,GAAG,oCAAoC,CAAA;AAE5D,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,KAAK;IAChC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,MAAM,GAAG,gDAAgD,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAI,EAAE,KAAK;IACzC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,aAAa,CAAA;IAClD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;QACzB,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,aAAa,CAAA;QAC3E,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAQ;QACpC,OAAO,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;IAClD,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,QAAQ,CAAC,KAAK;IAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DeliveryOutcome } from './hook-types.js';
|
|
2
|
+
export declare function holdForNextTurn(reason: string): DeliveryOutcome;
|
|
3
|
+
export declare function cancelledDelivery(): DeliveryOutcome;
|
|
4
|
+
/** Run one harness child and preserve its diagnostic stderr on failure. */
|
|
5
|
+
export declare function runWakeCommand(command: string, args: readonly string[], options?: {
|
|
6
|
+
cwd?: string;
|
|
7
|
+
env?: NodeJS.ProcessEnv;
|
|
8
|
+
}): Promise<string>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
export function holdForNextTurn(reason) {
|
|
3
|
+
return {
|
|
4
|
+
notes: [`holding the accepted answer for the next turn: ${reason}`],
|
|
5
|
+
log: { route: 'hold-for-next-turn', stage: 'queued', reason },
|
|
6
|
+
acknowledgement: 'held',
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export function cancelledDelivery() {
|
|
10
|
+
return {
|
|
11
|
+
notes: ['the Agent Session ended before answer delivery; stopping this observer'],
|
|
12
|
+
log: { route: 'hold-for-next-turn', stage: 'queued', reason: 'session-ended' },
|
|
13
|
+
acknowledgement: 'held',
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Run one harness child and preserve its diagnostic stderr on failure. */
|
|
17
|
+
export function runWakeCommand(command, args, options = {}) {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
const child = spawn(command, [...args], {
|
|
20
|
+
...(options.cwd === undefined ? {} : { cwd: options.cwd }),
|
|
21
|
+
...(options.env === undefined ? {} : { env: options.env }),
|
|
22
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
23
|
+
});
|
|
24
|
+
const stdout = [];
|
|
25
|
+
const stderr = [];
|
|
26
|
+
child.stdout?.on('data', (chunk) => stdout.push(Buffer.from(chunk)));
|
|
27
|
+
child.stderr?.on('data', (chunk) => stderr.push(Buffer.from(chunk)));
|
|
28
|
+
child.once('error', reject);
|
|
29
|
+
child.once('exit', (code, signal) => {
|
|
30
|
+
if (code === 0) {
|
|
31
|
+
resolve(Buffer.concat(stdout).toString());
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
reject(new Error(`${command} ${args[0] ?? ''} exited ${code === null ? `on ${String(signal)}` : String(code)}: ${Buffer.concat(stderr).toString().trim()}`));
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=wake-support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-support.js","sourceRoot":"","sources":["../src/wake-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAG1C,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO;QACL,KAAK,EAAE,CAAC,kDAAkD,MAAM,EAAE,CAAC;QACnE,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC7D,eAAe,EAAE,MAAM;KACxB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,KAAK,EAAE,CAAC,wEAAwE,CAAC;QACjF,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE;QAC9E,eAAe,EAAE,MAAM;KACxB,CAAA;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,IAAuB,EACvB,UAAqD,EAAE;IAEvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;YACtC,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1D,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1D,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAA;QACF,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACrF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACrF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACzC,OAAM;YACR,CAAC;YACD,MAAM,CACJ,IAAI,KAAK,CACP,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1I,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@raidiant/notifai",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Send native device notifications from agents and local programs",
|
|
6
6
|
"bin": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
],
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@clack/prompts": "^1.7.0",
|
|
15
|
-
"@raidiant/notifai-protocol": "6.
|
|
15
|
+
"@raidiant/notifai-protocol": "6.1.2",
|
|
16
16
|
"commander": "^14.0.0",
|
|
17
17
|
"picocolors": "^1.1.1",
|
|
18
18
|
"smol-toml": "^1.4.0"
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve the current published CLI independently of every installed
|
|
3
|
-
* `notifai` command. The fetched build owns the locally derived prefix repair,
|
|
4
|
-
* so this action neither invokes the stale PATH winner nor exposes local
|
|
5
|
-
* installation paths.
|
|
6
|
-
*/
|
|
7
|
-
export declare function cliUpdateRecoveryCommand(): string;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve the current published CLI independently of every installed
|
|
3
|
-
* `notifai` command. The fetched build owns the locally derived prefix repair,
|
|
4
|
-
* so this action neither invokes the stale PATH winner nor exposes local
|
|
5
|
-
* installation paths.
|
|
6
|
-
*/
|
|
7
|
-
export function cliUpdateRecoveryCommand() {
|
|
8
|
-
return 'npx --yes @raidiant/notifai@latest update';
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=cli-update-contract.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli-update-contract.js","sourceRoot":"","sources":["../src/cli-update-contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,2CAA2C,CAAA;AACpD,CAAC"}
|
package/dist/commands-hooks.d.ts
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { type QuestionT } from '@raidiant/notifai-protocol';
|
|
2
|
-
import { type HookInstallableHarness } from './harnesses.js';
|
|
3
|
-
import { type HookHarness } from './hooks.js';
|
|
4
|
-
import { type Installation } from './install-hooks.js';
|
|
5
|
-
import { type CommandDeps } from './commands-core.js';
|
|
6
|
-
import { type ActiveHarnessSession } from './commands-harness-context.js';
|
|
7
|
-
export declare const HOOK_EVENTS: readonly ["session-start", "subagent-start", "activation-stop", "user-prompt-submit", "stop", "session-end"];
|
|
8
|
-
export type HookEvent = (typeof HOOK_EVENTS)[number];
|
|
9
|
-
/** Lifecycle handlers one installed harness must carry in this CLI build. */
|
|
10
|
-
export declare function requiredHookEvents(harness: HookInstallableHarness): readonly HookEvent[];
|
|
11
|
-
/** SessionEnd cleanup must precede every diagnostic that can wait on a file lock. */
|
|
12
|
-
export declare function hookDefersDiagnosticsUntilAfterCleanup(event: unknown): event is 'session-end';
|
|
13
|
-
/**
|
|
14
|
-
* Runs one harness hook. Contract with every harness: hook JSON arrives on
|
|
15
|
-
* stdin, harness output (if any) goes to stdout, diagnostics go to stderr, and
|
|
16
|
-
* exit 0 with no stdout means "no decision or added context — carry on as normal".
|
|
17
|
-
*
|
|
18
|
-
* Every failure path in here must reach that no-decision state. A hook that
|
|
19
|
-
* throws, or that blocks past the harness's timeout, degrades the agent for a
|
|
20
|
-
* feature the user only asked to make it more convenient.
|
|
21
|
-
*/
|
|
22
|
-
export declare function hookRunCommand(deps: CommandDeps, event: string, readStdin: () => Promise<string>, harness?: HookHarness): Promise<number>;
|
|
23
|
-
/**
|
|
24
|
-
* What went wrong, in terms of what to do about it.
|
|
25
|
-
*
|
|
26
|
-
* On 2026-08-03 a contract change shipped without the server deploy that goes
|
|
27
|
-
* with it. The CLI stamped `lifecycle` on every question draft, the deployed
|
|
28
|
-
* server rejected the unknown field, and escalation stopped working entirely —
|
|
29
|
-
* announced as "hook failed, deferring to the terminal", which reads like a
|
|
30
|
-
* flaky network. The information needed to diagnose it in one second was
|
|
31
|
-
* already in hand: a 422 whose details name the offending path. It was being
|
|
32
|
-
* thrown away by `String(err)`.
|
|
33
|
-
*
|
|
34
|
-
* A hook still exits 0 whatever this says. Handing the terminal back is always
|
|
35
|
-
* right; the only question is whether the user is told anything they can use.
|
|
36
|
-
*/
|
|
37
|
-
export declare function describeHookFailure(err: unknown): string[];
|
|
38
|
-
export interface AskFlags {
|
|
39
|
-
/** Emit the registration and its turn obligation as one JSON object. */
|
|
40
|
-
json?: boolean;
|
|
41
|
-
choice?: string[];
|
|
42
|
-
/** The single question is multi-select: several answers may be chosen. */
|
|
43
|
-
multi?: boolean;
|
|
44
|
-
/** Optional Markdown context appended after the question block. */
|
|
45
|
-
body?: string;
|
|
46
|
-
/** Allow visible backslash-n sequences in `--body`. */
|
|
47
|
-
literalBackslashN?: boolean;
|
|
48
|
-
/** Raw JSON for a multi-question form; replaces the positional question. */
|
|
49
|
-
form?: string;
|
|
50
|
-
image?: string[];
|
|
51
|
-
imageAlt?: string[];
|
|
52
|
-
project?: string;
|
|
53
|
-
sessionLabel?: string;
|
|
54
|
-
}
|
|
55
|
-
export interface AskFailure {
|
|
56
|
-
ok: false;
|
|
57
|
-
registered: false;
|
|
58
|
-
code: string;
|
|
59
|
-
check_id: string;
|
|
60
|
-
exit_code: number;
|
|
61
|
-
remedy: string;
|
|
62
|
-
message: string;
|
|
63
|
-
user_action?: {
|
|
64
|
-
code: string;
|
|
65
|
-
harness: string;
|
|
66
|
-
action: string;
|
|
67
|
-
message: string;
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
export declare const CODEX_HOOK_APPROVAL_USER_ACTION: {
|
|
71
|
-
readonly code: "codex_hook_approval_required";
|
|
72
|
-
readonly harness: "codex";
|
|
73
|
-
readonly action: "approve_or_enable_notifai_hooks";
|
|
74
|
-
readonly message: "Open `/hooks` in Codex, approve or enable the Notifai handlers, then tell me when it is done. I will finish setup and verify a fresh session.";
|
|
75
|
-
};
|
|
76
|
-
export declare const CODEX_FRESH_SESSION_USER_ACTION: {
|
|
77
|
-
readonly code: "codex_fresh_session_required";
|
|
78
|
-
readonly harness: "codex";
|
|
79
|
-
readonly action: "start_fresh_codex_session";
|
|
80
|
-
readonly message: "Start one fresh Codex session, send one prompt in it, then retry the question.";
|
|
81
|
-
};
|
|
82
|
-
export declare const CODEX_STALE_STOP_DEFINITION_PROBLEM = "the exact Codex Agent Session activated before the current Stop definition; Codex can keep the earlier timeout in that session even when the file on disk is current. Start one fresh Codex session, send one prompt in it, then retry";
|
|
83
|
-
export declare const CODEX_STOP_DEFINITION_NOT_SINGULAR_PROBLEM = "the active Codex configuration does not contain exactly one Notifai Stop definition, so no singular turn-end owner can be proven";
|
|
84
|
-
export declare const CODEX_ACTIVATION_INSTALLATION_MISSING_PROBLEM = "the exact Codex Agent Session activation checkout has no matching hook installation";
|
|
85
|
-
/** One stable failure contract for every machine-readable ask refusal. */
|
|
86
|
-
export declare function reportAskFailure(deps: CommandDeps, flags: Pick<AskFlags, 'json'>, failure: Omit<AskFailure, 'ok' | 'registered'>): number;
|
|
87
|
-
export interface BuiltQuestions {
|
|
88
|
-
questions: QuestionT[];
|
|
89
|
-
/**
|
|
90
|
-
* Canonical Markdown body. The question already travels as the notification
|
|
91
|
-
* title and as structured questions, so the body carries only the context —
|
|
92
|
-
* repeating the question there put it on the lock screen and the reply
|
|
93
|
-
* screen twice. Only when there is no context does the question text stand
|
|
94
|
-
* in, because the wire requires a body.
|
|
95
|
-
*/
|
|
96
|
-
body: string;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Turn ask input into questions plus their canonical body. Everything is
|
|
100
|
-
* validated at registration because a later hook failure is easy to miss.
|
|
101
|
-
*/
|
|
102
|
-
export declare function buildQuestions(flags: AskFlags, question: string | undefined): {
|
|
103
|
-
ok: true;
|
|
104
|
-
questions: QuestionT[];
|
|
105
|
-
body: string;
|
|
106
|
-
} | {
|
|
107
|
-
ok: false;
|
|
108
|
-
error: string;
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* Registers a question for turn-end routing. Returns immediately so the agent
|
|
112
|
-
* can ask in prose and end its turn; the terminal keeps the question to itself
|
|
113
|
-
* for `ask_grace_seconds` before it reaches any device.
|
|
114
|
-
*/
|
|
115
|
-
export declare function askCommand(deps: CommandDeps, question: string | undefined, flags: AskFlags): number | Promise<number>;
|
|
116
|
-
/**
|
|
117
|
-
* One fail-closed admission gate shared by every active harness route.
|
|
118
|
-
* Finding a file is not readiness: the exact session, one current definition,
|
|
119
|
-
* the stable adapter, a long enough Stop owner, and (for Codex) trust must all
|
|
120
|
-
* be true before `ask` is allowed to create an answerable notification.
|
|
121
|
-
*/
|
|
122
|
-
export declare function activeQuestionRouteProblems(deps: CommandDeps, active: ActiveHarnessSession, installations: Installation[]): string[];
|
|
123
|
-
/** The least disruptive verified way to make each installed adapter run once. */
|
|
124
|
-
export declare function hookActivationAdvice(installations: Installation[]): string;
|
|
125
|
-
/**
|
|
126
|
-
* Record the one Agent Acknowledgement associated with a replied-to request.
|
|
127
|
-
*
|
|
128
|
-
* `--text` is optional here because the acknowledgement is not: an account may
|
|
129
|
-
* turn the agent's written reply off, and the receipt must still be recorded so
|
|
130
|
-
* the user sees that an agent read the answer. The service holds the account's
|
|
131
|
-
* snapshot, so it — not this process — decides whether text was owed.
|
|
132
|
-
*/
|
|
133
|
-
export declare function acknowledgeCommand(deps: CommandDeps, requestId: string, flags: {
|
|
134
|
-
text?: string;
|
|
135
|
-
json?: boolean;
|
|
136
|
-
}): Promise<number>;
|
|
137
|
-
/** Retire a question so a late answer is rejected rather than silently lost. */
|
|
138
|
-
export declare function closeCommand(deps: CommandDeps, requestId: string | undefined, flags?: {
|
|
139
|
-
json?: boolean;
|
|
140
|
-
pending?: boolean;
|
|
141
|
-
}): Promise<number>;
|
|
142
|
-
export interface HooksInstallFlags {
|
|
143
|
-
harness?: string;
|
|
144
|
-
global?: boolean;
|
|
145
|
-
/** Init owns the final setup result and suppresses per-harness close narration. */
|
|
146
|
-
narrate?: boolean;
|
|
147
|
-
/** Test seam; production resolves the running CLI. */
|
|
148
|
-
execPath?: string;
|
|
149
|
-
scriptPath?: string;
|
|
150
|
-
}
|
|
151
|
-
/** True when this process is `npx` / `npm exec`, not a global or linked install. */
|
|
152
|
-
export declare function runningViaNpx(env: NodeJS.ProcessEnv, scriptPath: string): boolean;
|
|
153
|
-
export declare function hooksInstallCommand(deps: CommandDeps, flags: HooksInstallFlags): number;
|
|
154
|
-
export declare function hooksUninstallCommand(deps: CommandDeps, flags: HooksInstallFlags): number;
|
|
155
|
-
/**
|
|
156
|
-
* Which harnesses to wire. An explicit `--harness` still wins as a singleton.
|
|
157
|
-
* Otherwise: every detected harness, or a human picker when detection is empty
|
|
158
|
-
* or names more than one.
|
|
159
|
-
*/
|
|
160
|
-
export declare function pickHarnessesToInstall(deps: CommandDeps, requested?: string): Promise<HookInstallableHarness[] | null>;
|