@raidiant/notifai 10.1.0 → 10.1.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 +37 -0
- package/README.md +3 -0
- package/dist/cli-bin.d.ts +21 -1
- package/dist/cli-bin.js +141 -10
- package/dist/cli-bin.js.map +1 -1
- package/dist/cli-update-contract.d.ts +7 -0
- package/dist/cli-update-contract.js +10 -0
- package/dist/cli-update-contract.js.map +1 -0
- package/dist/client.d.ts +6 -1
- package/dist/client.js +1 -0
- package/dist/client.js.map +1 -1
- package/dist/codex-wake.d.ts +2 -0
- package/dist/codex-wake.js +2 -1
- package/dist/codex-wake.js.map +1 -1
- package/dist/commands-auth.d.ts +15 -1
- package/dist/commands-auth.js +29 -11
- package/dist/commands-auth.js.map +1 -1
- package/dist/commands-core.d.ts +9 -2
- package/dist/commands-core.js +11 -4
- package/dist/commands-core.js.map +1 -1
- package/dist/commands-devices.d.ts +10 -1
- package/dist/commands-devices.js +17 -13
- package/dist/commands-devices.js.map +1 -1
- package/dist/commands-doctor.js +93 -49
- package/dist/commands-doctor.js.map +1 -1
- package/dist/commands-hooks.js +47 -10
- package/dist/commands-hooks.js.map +1 -1
- package/dist/commands-init.d.ts +16 -0
- package/dist/commands-init.js +254 -93
- package/dist/commands-init.js.map +1 -1
- package/dist/commands-send-support.js +3 -0
- package/dist/commands-send-support.js.map +1 -1
- package/dist/commands-send.d.ts +1 -1
- package/dist/commands-send.js +121 -35
- package/dist/commands-send.js.map +1 -1
- package/dist/commands-skill.js +72 -54
- package/dist/commands-skill.js.map +1 -1
- package/dist/commands-update.d.ts +10 -0
- package/dist/commands-update.js +141 -0
- package/dist/commands-update.js.map +1 -0
- package/dist/commands.d.ts +2 -1
- package/dist/commands.js +2 -1
- package/dist/commands.js.map +1 -1
- package/dist/hook-adapter.d.ts +2 -0
- package/dist/hook-adapter.js +12 -1
- package/dist/hook-adapter.js.map +1 -1
- package/dist/hooks.d.ts +43 -2
- package/dist/hooks.js +163 -21
- package/dist/hooks.js.map +1 -1
- package/dist/invocation-context.d.ts +1 -0
- package/dist/invocation-context.js +9 -1
- package/dist/invocation-context.js.map +1 -1
- package/dist/main-run.d.ts +1 -0
- package/dist/main-run.js +42 -0
- package/dist/main-run.js.map +1 -0
- package/dist/main.js +10 -31
- package/dist/main.js.map +1 -1
- package/dist/native-skills.d.ts +13 -3
- package/dist/native-skills.js +51 -12
- package/dist/native-skills.js.map +1 -1
- package/dist/node-floor.d.ts +19 -0
- package/dist/node-floor.js +39 -0
- package/dist/node-floor.js.map +1 -0
- package/dist/orca-session-title.d.ts +5 -4
- package/dist/orca-session-title.js +32 -19
- package/dist/orca-session-title.js.map +1 -1
- package/dist/platform.d.ts +11 -17
- package/dist/platform.js +20 -23
- package/dist/platform.js.map +1 -1
- package/dist/program.d.ts +2 -1
- package/dist/program.js +22 -5
- package/dist/program.js.map +1 -1
- package/dist/question-settlement-process.d.ts +15 -0
- package/dist/question-settlement-process.js +35 -0
- package/dist/question-settlement-process.js.map +1 -0
- package/dist/readiness.d.ts +25 -1
- package/dist/readiness.js +32 -2
- package/dist/readiness.js.map +1 -1
- package/dist/release.d.ts +5 -5
- package/dist/release.js +5 -5
- package/dist/setup-destinations.d.ts +23 -0
- package/dist/setup-destinations.js +44 -0
- package/dist/setup-destinations.js.map +1 -0
- package/dist/skill-integrity.d.ts +49 -0
- package/dist/skill-integrity.js +154 -0
- package/dist/skill-integrity.js.map +1 -0
- package/dist/skill-source/manifest.json +16 -0
- package/dist/skill-source/notifai/SKILL.md +390 -0
- package/dist/skill-source/notifai/references/harness-setup.md +220 -0
- package/package.json +11 -14
- package/src/atomic-file.ts +0 -198
- package/src/claude-wake.test.ts +0 -321
- package/src/claude-wake.ts +0 -499
- package/src/cli-bin.test.ts +0 -38
- package/src/cli-bin.ts +0 -67
- package/src/cli-release.test.ts +0 -46
- package/src/cli-release.ts +0 -78
- package/src/client.test.ts +0 -390
- package/src/client.ts +0 -345
- package/src/codex-wake.test.ts +0 -254
- package/src/codex-wake.ts +0 -297
- package/src/command-session.ts +0 -38
- package/src/commands-agent-sessions.ts +0 -72
- package/src/commands-auth.ts +0 -205
- package/src/commands-config.ts +0 -336
- package/src/commands-core.ts +0 -298
- package/src/commands-devices.test.ts +0 -15
- package/src/commands-devices.ts +0 -173
- package/src/commands-doctor.ts +0 -1440
- package/src/commands-guidance.ts +0 -181
- package/src/commands-harness-context.ts +0 -207
- package/src/commands-hook-shape.ts +0 -69
- package/src/commands-hooks.ts +0 -2268
- package/src/commands-init.ts +0 -878
- package/src/commands-io.ts +0 -108
- package/src/commands-logs.ts +0 -243
- package/src/commands-project.ts +0 -47
- package/src/commands-send-support.test.ts +0 -156
- package/src/commands-send-support.ts +0 -311
- package/src/commands-send.ts +0 -769
- package/src/commands-setup-proof.test.ts +0 -72
- package/src/commands-setup-proof.ts +0 -124
- package/src/commands-skill.test.ts +0 -44
- package/src/commands-skill.ts +0 -204
- package/src/commands-sounds.test.ts +0 -106
- package/src/commands-sounds.ts +0 -49
- package/src/commands.test.ts +0 -7828
- package/src/commands.ts +0 -75
- package/src/config-schema.test.ts +0 -153
- package/src/config-schema.ts +0 -349
- package/src/config.test.ts +0 -581
- package/src/config.ts +0 -475
- package/src/credentials.test.ts +0 -403
- package/src/credentials.ts +0 -403
- package/src/file-lock-process-worker.test.ts +0 -64
- package/src/file-lock.test.ts +0 -320
- package/src/file-lock.ts +0 -393
- package/src/fixtures/hermes-0.20.6-classic-cli-local.json +0 -50
- package/src/fixtures/openclaw-2026.7.1-2-agent-local.json +0 -57
- package/src/generated-session-label.ts +0 -155
- package/src/guidance-content.ts +0 -278
- package/src/guidance-render.ts +0 -56
- package/src/guidance.test.ts +0 -327
- package/src/guidance.ts +0 -233
- package/src/harness-integration.test.ts +0 -294
- package/src/harnesses.test.ts +0 -149
- package/src/harnesses.ts +0 -164
- package/src/hook-adapter.test.ts +0 -496
- package/src/hook-adapter.ts +0 -410
- package/src/hook-input.test.ts +0 -39
- package/src/hook-input.ts +0 -72
- package/src/hooks.test.ts +0 -5549
- package/src/hooks.ts +0 -3759
- package/src/install-hooks.test.ts +0 -1614
- package/src/install-hooks.ts +0 -1501
- package/src/interactive.test.ts +0 -387
- package/src/interactive.ts +0 -858
- package/src/invocation-context.test.ts +0 -352
- package/src/invocation-context.ts +0 -197
- package/src/logging-process-worker.test.ts +0 -45
- package/src/logging.test.ts +0 -544
- package/src/logging.ts +0 -698
- package/src/main.ts +0 -36
- package/src/native-skills.test.ts +0 -115
- package/src/native-skills.ts +0 -162
- package/src/onboarding-docs.test.ts +0 -25
- package/src/openclaw-plugin.ts +0 -409
- package/src/opencode-plugin.ts +0 -298
- package/src/orca-session-title.test.ts +0 -54
- package/src/orca-session-title.ts +0 -103
- package/src/pack-feedback-slice.test.ts +0 -212
- package/src/pack-feedback-slice.ts +0 -187
- package/src/platform.test.ts +0 -152
- package/src/platform.ts +0 -173
- package/src/program.test.ts +0 -282
- package/src/program.ts +0 -818
- package/src/project-enablement.test.ts +0 -55
- package/src/project-enablement.ts +0 -99
- package/src/question-caps.test.ts +0 -49
- package/src/question-timing.ts +0 -56
- package/src/readiness.test.ts +0 -25
- package/src/readiness.ts +0 -179
- package/src/release.ts +0 -51
- package/src/send-attempts.test.ts +0 -143
- package/src/send-attempts.ts +0 -188
- package/src/send.test.ts +0 -28
- package/src/send.ts +0 -436
- package/src/session-activation.ts +0 -61
- package/src/session-end-log-lock-worker.test.ts +0 -35
- package/src/session-labels.test.ts +0 -490
- package/src/session-labels.ts +0 -474
- package/src/skill.test.ts +0 -415
- package/src/sound-ref.test.ts +0 -31
- package/src/sound-ref.ts +0 -34
- package/src/trust-policy.test.ts +0 -701
- package/src/ui/banner.ts +0 -95
- package/src/ui/config-view.test.ts +0 -90
- package/src/ui/config-view.ts +0 -138
- package/src/ui/help.test.ts +0 -16
- package/src/ui/help.ts +0 -128
- package/src/ui/theme.test.ts +0 -92
- package/src/ui/theme.ts +0 -265
- package/src/url-policy.ts +0 -399
- package/tsconfig.json +0 -10
package/dist/main.js
CHANGED
|
@@ -1,33 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* resolved anything. It configures itself from disk and disables itself if it
|
|
13
|
-
* cannot write, so nothing below has to handle it failing.
|
|
14
|
-
*/
|
|
15
|
-
const logger = bootstrapLogger();
|
|
16
|
-
const deps = {
|
|
17
|
-
io: realIo(),
|
|
18
|
-
store: defaultCredentialStore(),
|
|
19
|
-
env: process.env,
|
|
20
|
-
cwd: process.cwd(),
|
|
21
|
-
nativeSkills,
|
|
22
|
-
logger,
|
|
23
|
-
};
|
|
24
|
-
const startedAt = Date.now();
|
|
25
|
-
process.on('exit', (code) => {
|
|
26
|
-
logger.info('cli.end', {
|
|
27
|
-
exit: code,
|
|
28
|
-
duration_ms: Date.now() - startedAt,
|
|
29
|
-
flags: argvFlagNames(process.argv.slice(2)),
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
await buildProgram(deps).parseAsync(process.argv);
|
|
2
|
+
import { belowNodeFloor, nodeFloorMessage } from './node-floor.js';
|
|
3
|
+
// Before anything else is parsed. `node-floor.js` imports nothing and uses no
|
|
4
|
+
// syntax newer than the floor it checks, so it can report on the runtimes that
|
|
5
|
+
// would otherwise fail somewhere in a dependency with no mention of Notifai.
|
|
6
|
+
if (belowNodeFloor(process.version)) {
|
|
7
|
+
for (const line of nodeFloorMessage(process.version))
|
|
8
|
+
process.stderr.write(`${line}\n`);
|
|
9
|
+
process.exit(2);
|
|
10
|
+
}
|
|
11
|
+
await import('./main-run.js');
|
|
33
12
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElE,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAA;IACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA"}
|
package/dist/native-skills.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { npxLaunch } from './platform.js';
|
|
1
2
|
/**
|
|
2
3
|
* Exact reviewed version of the external `skills` installer.
|
|
3
4
|
*
|
|
4
|
-
* The
|
|
5
|
-
*
|
|
5
|
+
* The installer program must not float on `latest`. Notifai gives this pinned
|
|
6
|
+
* version a verified local copy from the installed npm package.
|
|
6
7
|
*/
|
|
7
8
|
export declare const SKILLS_INSTALLER_SPEC = "skills@1.5.23";
|
|
8
9
|
/** The two scopes offered by the skills installer. */
|
|
@@ -28,6 +29,11 @@ export interface SkillsAddOptions {
|
|
|
28
29
|
cwd: string;
|
|
29
30
|
env: NodeJS.ProcessEnv;
|
|
30
31
|
}
|
|
32
|
+
export interface SkillsOperationFailure {
|
|
33
|
+
code: number;
|
|
34
|
+
error: string;
|
|
35
|
+
}
|
|
36
|
+
export type SkillsOperationResult = number | SkillsOperationFailure;
|
|
31
37
|
export interface SkillsRemoveOptions {
|
|
32
38
|
skill: string;
|
|
33
39
|
scope: SkillScope;
|
|
@@ -36,12 +42,16 @@ export interface SkillsRemoveOptions {
|
|
|
36
42
|
}
|
|
37
43
|
export interface NativeSkills {
|
|
38
44
|
/** Launch the native interactive `npx skills add` flow. */
|
|
39
|
-
add(options: SkillsAddOptions): Promise<
|
|
45
|
+
add(options: SkillsAddOptions): Promise<SkillsOperationResult>;
|
|
40
46
|
/** Uninstall one installer-managed skill in one scope. */
|
|
41
47
|
remove(options: SkillsRemoveOptions): Promise<number>;
|
|
42
48
|
/** Read installer-managed inventory from lock files. Does not spawn npx. */
|
|
43
49
|
list(scope: SkillScope, cwd: string, env: NodeJS.ProcessEnv): Promise<SkillsListResult>;
|
|
44
50
|
}
|
|
51
|
+
export declare function runSkillsCommand(args: string[], options: {
|
|
52
|
+
cwd: string;
|
|
53
|
+
env: NodeJS.ProcessEnv;
|
|
54
|
+
}, resolveLaunch?: typeof npxLaunch): Promise<SkillsOperationResult>;
|
|
45
55
|
/** argv for `npx`, including the pinned installer spec. */
|
|
46
56
|
export declare function skillsAddArgv(options: SkillsAddOptions): string[];
|
|
47
57
|
/** argv for uninstalling one skill in one installer scope. */
|
package/dist/native-skills.js
CHANGED
|
@@ -2,11 +2,13 @@ import { spawn } from 'node:child_process';
|
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { accountHome, npxLaunch } from './platform.js';
|
|
5
|
+
import { packageVersion } from './release.js';
|
|
6
|
+
import { stageShippedSkillBundle } from './skill-integrity.js';
|
|
5
7
|
/**
|
|
6
8
|
* Exact reviewed version of the external `skills` installer.
|
|
7
9
|
*
|
|
8
|
-
* The
|
|
9
|
-
*
|
|
10
|
+
* The installer program must not float on `latest`. Notifai gives this pinned
|
|
11
|
+
* version a verified local copy from the installed npm package.
|
|
10
12
|
*/
|
|
11
13
|
export const SKILLS_INSTALLER_SPEC = 'skills@1.5.23';
|
|
12
14
|
function skillLockPath(scope, cwd, env) {
|
|
@@ -43,9 +45,11 @@ function skillsFromLock(scope, cwd, env) {
|
|
|
43
45
|
{
|
|
44
46
|
name,
|
|
45
47
|
scope,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
// skills@1.5.23 records the source-relative SKILL.md as `skillPath`.
|
|
49
|
+
// It is not the installed destination and is therefore not trusted for
|
|
50
|
+
// readiness. The installer contract puts skills at this conventional
|
|
51
|
+
// path for both scopes.
|
|
52
|
+
path: conventionalSkillPath(scope, name, cwd, env),
|
|
49
53
|
source: typeof entry.source === 'string' ? entry.source : null,
|
|
50
54
|
sourceType: typeof entry.sourceType === 'string' ? entry.sourceType : null,
|
|
51
55
|
sourceUrl: typeof entry.sourceUrl === 'string' ? entry.sourceUrl : null,
|
|
@@ -54,11 +58,26 @@ function skillsFromLock(scope, cwd, env) {
|
|
|
54
58
|
];
|
|
55
59
|
});
|
|
56
60
|
}
|
|
57
|
-
function
|
|
61
|
+
export function runSkillsCommand(args, options, resolveLaunch = npxLaunch) {
|
|
58
62
|
return new Promise((resolve) => {
|
|
59
|
-
|
|
63
|
+
let launch;
|
|
64
|
+
try {
|
|
65
|
+
launch = resolveLaunch(args, options);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
resolve({
|
|
69
|
+
code: 1,
|
|
70
|
+
error: error instanceof Error ? error.message : 'the native skills installer could not start',
|
|
71
|
+
});
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
60
74
|
const child = spawn(launch.file, launch.args, launch.options);
|
|
61
|
-
child.on('error', () =>
|
|
75
|
+
child.on('error', () => {
|
|
76
|
+
resolve({
|
|
77
|
+
code: 1,
|
|
78
|
+
error: 'the native skills installer could not start on this machine; repair the local Node.js and npm installation, then rerun setup',
|
|
79
|
+
});
|
|
80
|
+
});
|
|
62
81
|
child.on('exit', (code) => resolve(code ?? 1));
|
|
63
82
|
});
|
|
64
83
|
}
|
|
@@ -68,9 +87,10 @@ export function skillsAddArgv(options) {
|
|
|
68
87
|
if (options.scope === 'global')
|
|
69
88
|
args.push('--global');
|
|
70
89
|
// An explicit scope is the unattended contract. Native `--yes` keeps all
|
|
71
|
-
// remaining installer prompts non-interactive after the scope is chosen
|
|
90
|
+
// remaining installer prompts non-interactive after the scope is chosen;
|
|
91
|
+
// `--copy` keeps the installed directory independent of temporary staging.
|
|
72
92
|
if (options.scope !== undefined)
|
|
73
|
-
args.push('--yes');
|
|
93
|
+
args.push('--copy', '--yes');
|
|
74
94
|
return args;
|
|
75
95
|
}
|
|
76
96
|
/** argv for uninstalling one skill in one installer scope. */
|
|
@@ -84,10 +104,29 @@ export function skillsRemoveArgv(options) {
|
|
|
84
104
|
/** The only process/filesystem adapter Notifai needs for the external installer. */
|
|
85
105
|
export const nativeSkills = {
|
|
86
106
|
async add(options) {
|
|
87
|
-
|
|
107
|
+
const version = packageVersion();
|
|
108
|
+
if (version === null) {
|
|
109
|
+
return { code: 1, error: 'this CLI cannot establish which packaged skill belongs to it' };
|
|
110
|
+
}
|
|
111
|
+
const staged = stageShippedSkillBundle(options.cwd, version);
|
|
112
|
+
if (!staged.ok)
|
|
113
|
+
return { code: 1, error: staged.error };
|
|
114
|
+
try {
|
|
115
|
+
return await runSkillsCommand(skillsAddArgv({ ...options, source: staged.staged.source }), {
|
|
116
|
+
cwd: options.cwd,
|
|
117
|
+
env: options.env,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
staged.staged.cleanup();
|
|
122
|
+
}
|
|
88
123
|
},
|
|
89
124
|
async remove(options) {
|
|
90
|
-
|
|
125
|
+
const result = await runSkillsCommand(skillsRemoveArgv(options), {
|
|
126
|
+
cwd: options.cwd,
|
|
127
|
+
env: options.env,
|
|
128
|
+
});
|
|
129
|
+
return typeof result === 'number' ? result : result.code;
|
|
91
130
|
},
|
|
92
131
|
async list(scope, cwd, env) {
|
|
93
132
|
// Presence is already on disk. `npx skills list` takes seconds and cannot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-skills.js","sourceRoot":"","sources":["../src/native-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"native-skills.js","sourceRoot":"","sources":["../src/native-skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Node version this CLI needs, asserted before anything else loads.
|
|
3
|
+
*
|
|
4
|
+
* `engines` in package.json is advisory: npm prints a warning at install time
|
|
5
|
+
* and runs the binary anyway. So a reader on an older Node met a parser or
|
|
6
|
+
* module error naming a file they did not write, with no mention of Notifai,
|
|
7
|
+
* of Node, or of anything to do about it.
|
|
8
|
+
*
|
|
9
|
+
* This module is deliberately plain — no imports, no syntax newer than the
|
|
10
|
+
* floor it is checking — so it can run and report on the runtimes it exists to
|
|
11
|
+
* turn away. Everything else is loaded after it passes.
|
|
12
|
+
*/
|
|
13
|
+
export declare const NODE_MAJOR_FLOOR = 20;
|
|
14
|
+
export declare const NODE_MINOR_FLOOR = 12;
|
|
15
|
+
/** The major from a `process.version` string, or null when unrecognisable. */
|
|
16
|
+
export declare function nodeMajor(version: string): number | null;
|
|
17
|
+
export declare function belowNodeFloor(version: string): boolean;
|
|
18
|
+
/** One sentence for what is wrong, one for what to do about it. */
|
|
19
|
+
export declare function nodeFloorMessage(version: string): string[];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Node version this CLI needs, asserted before anything else loads.
|
|
3
|
+
*
|
|
4
|
+
* `engines` in package.json is advisory: npm prints a warning at install time
|
|
5
|
+
* and runs the binary anyway. So a reader on an older Node met a parser or
|
|
6
|
+
* module error naming a file they did not write, with no mention of Notifai,
|
|
7
|
+
* of Node, or of anything to do about it.
|
|
8
|
+
*
|
|
9
|
+
* This module is deliberately plain — no imports, no syntax newer than the
|
|
10
|
+
* floor it is checking — so it can run and report on the runtimes it exists to
|
|
11
|
+
* turn away. Everything else is loaded after it passes.
|
|
12
|
+
*/
|
|
13
|
+
export const NODE_MAJOR_FLOOR = 20;
|
|
14
|
+
export const NODE_MINOR_FLOOR = 12;
|
|
15
|
+
/** The major from a `process.version` string, or null when unrecognisable. */
|
|
16
|
+
export function nodeMajor(version) {
|
|
17
|
+
const match = /^v?(\d+)\./.exec(version);
|
|
18
|
+
if (match === null)
|
|
19
|
+
return null;
|
|
20
|
+
const major = Number(match[1]);
|
|
21
|
+
return Number.isFinite(major) ? major : null;
|
|
22
|
+
}
|
|
23
|
+
export function belowNodeFloor(version) {
|
|
24
|
+
const match = /^v?(\d+)\.(\d+)\.(\d+)/.exec(version);
|
|
25
|
+
// An unrecognisable version is not evidence of an old runtime, and refusing
|
|
26
|
+
// to run on one would strand a reader whose Node is fine.
|
|
27
|
+
if (match === null)
|
|
28
|
+
return false;
|
|
29
|
+
const [major, minor] = [Number(match[1]), Number(match[2])];
|
|
30
|
+
return major < NODE_MAJOR_FLOOR || (major === NODE_MAJOR_FLOOR && minor < NODE_MINOR_FLOOR);
|
|
31
|
+
}
|
|
32
|
+
/** One sentence for what is wrong, one for what to do about it. */
|
|
33
|
+
export function nodeFloorMessage(version) {
|
|
34
|
+
return [
|
|
35
|
+
`Notifai needs Node ${NODE_MAJOR_FLOOR}.${NODE_MINOR_FLOOR} or newer; this is Node ${version}.`,
|
|
36
|
+
`next: install Node ${NODE_MAJOR_FLOOR}.${NODE_MINOR_FLOOR}+ (https://nodejs.org), then run this again.`,
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=node-floor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-floor.js","sourceRoot":"","sources":["../src/node-floor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAElC,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpD,4EAA4E;IAC5E,0DAA0D;IAC1D,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAChC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3D,OAAO,KAAK,GAAG,gBAAgB,IAAI,CAAC,KAAK,KAAK,gBAAgB,IAAI,KAAK,GAAG,gBAAgB,CAAC,CAAA;AAC7F,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO;QACL,sBAAsB,gBAAgB,IAAI,gBAAgB,2BAA2B,OAAO,GAAG;QAC/F,sBAAsB,gBAAgB,IAAI,gBAAgB,8CAA8C;KACzG,CAAA;AACH,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export type OrcaSessionTitleLookup = (env: NodeJS.ProcessEnv) => string | undefined;
|
|
2
2
|
export type OrcaCommand = (executable: string, args: readonly string[]) => string | null;
|
|
3
3
|
/**
|
|
4
|
-
* Read the User-facing task name assigned to this exact Orca
|
|
4
|
+
* Read the User-facing task name assigned to this exact Orca Agent Session.
|
|
5
5
|
*
|
|
6
|
-
* The environment contributes only
|
|
7
|
-
* exact id and
|
|
8
|
-
*
|
|
6
|
+
* The environment contributes only opaque selectors. Orca must return the
|
|
7
|
+
* exact worktree id and path plus the exact pane before its task title becomes
|
|
8
|
+
* trusted; Project, branch, path, worktree, and pane strings are never
|
|
9
|
+
* promoted into an Agent Session label.
|
|
9
10
|
*/
|
|
10
11
|
export declare function readOrcaSessionTitle(env: NodeJS.ProcessEnv, command?: OrcaCommand): string | undefined;
|
|
@@ -34,6 +34,15 @@ function worktreePathFromId(value) {
|
|
|
34
34
|
? worktreePath
|
|
35
35
|
: null;
|
|
36
36
|
}
|
|
37
|
+
function opaqueSelector(value) {
|
|
38
|
+
if (value === undefined ||
|
|
39
|
+
value.length === 0 ||
|
|
40
|
+
value.length > 1_024 ||
|
|
41
|
+
containsControlCharacter(value)) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
37
46
|
function orcaExecutable(env) {
|
|
38
47
|
const configured = env['ORCA_CLI_COMMAND']?.trim();
|
|
39
48
|
if (configured !== undefined && configured.length > 0) {
|
|
@@ -42,11 +51,12 @@ function orcaExecutable(env) {
|
|
|
42
51
|
return env['ORCA_DEV_REPO_ROOT'] === undefined ? 'orca' : 'orca-dev';
|
|
43
52
|
}
|
|
44
53
|
/**
|
|
45
|
-
* Read the User-facing task name assigned to this exact Orca
|
|
54
|
+
* Read the User-facing task name assigned to this exact Orca Agent Session.
|
|
46
55
|
*
|
|
47
|
-
* The environment contributes only
|
|
48
|
-
* exact id and
|
|
49
|
-
*
|
|
56
|
+
* The environment contributes only opaque selectors. Orca must return the
|
|
57
|
+
* exact worktree id and path plus the exact pane before its task title becomes
|
|
58
|
+
* trusted; Project, branch, path, worktree, and pane strings are never
|
|
59
|
+
* promoted into an Agent Session label.
|
|
50
60
|
*/
|
|
51
61
|
export function readOrcaSessionTitle(env, command = runOrcaCommand) {
|
|
52
62
|
if (env['TERM_PROGRAM'] !== 'Orca')
|
|
@@ -57,18 +67,15 @@ export function readOrcaSessionTitle(env, command = runOrcaCommand) {
|
|
|
57
67
|
const expectedPath = worktreePathFromId(worktreeId);
|
|
58
68
|
if (expectedPath === null)
|
|
59
69
|
return undefined;
|
|
70
|
+
const paneKey = opaqueSelector(env['ORCA_PANE_KEY']);
|
|
71
|
+
if (paneKey === null)
|
|
72
|
+
return undefined;
|
|
60
73
|
const executable = orcaExecutable(env);
|
|
61
74
|
if (executable === null)
|
|
62
75
|
return undefined;
|
|
63
76
|
let output;
|
|
64
77
|
try {
|
|
65
|
-
output = command(executable, [
|
|
66
|
-
'worktree',
|
|
67
|
-
'show',
|
|
68
|
-
'--worktree',
|
|
69
|
-
`id:${worktreeId}`,
|
|
70
|
-
'--json',
|
|
71
|
-
]);
|
|
78
|
+
output = command(executable, ['worktree', 'ps', '--json']);
|
|
72
79
|
}
|
|
73
80
|
catch {
|
|
74
81
|
return undefined;
|
|
@@ -85,14 +92,20 @@ export function readOrcaSessionTitle(env, command = runOrcaCommand) {
|
|
|
85
92
|
if (typeof parsed !== 'object' || parsed === null)
|
|
86
93
|
return undefined;
|
|
87
94
|
const response = parsed;
|
|
88
|
-
|
|
89
|
-
if (response.ok !== true ||
|
|
90
|
-
worktree?.id !== worktreeId ||
|
|
91
|
-
worktree.path !== expectedPath ||
|
|
92
|
-
typeof worktree.displayName !== 'string' ||
|
|
93
|
-
worktree.displayName.trim().length === 0) {
|
|
95
|
+
if (response.ok !== true || !Array.isArray(response.result?.worktrees))
|
|
94
96
|
return undefined;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
const worktrees = response.result.worktrees.filter((candidate) => typeof candidate === 'object' &&
|
|
98
|
+
candidate !== null &&
|
|
99
|
+
candidate.worktreeId === worktreeId &&
|
|
100
|
+
candidate.path === expectedPath);
|
|
101
|
+
if (worktrees.length !== 1 || !Array.isArray(worktrees[0].agents))
|
|
102
|
+
return undefined;
|
|
103
|
+
const agents = worktrees[0].agents.filter((candidate) => typeof candidate === 'object' &&
|
|
104
|
+
candidate !== null &&
|
|
105
|
+
candidate.paneKey === paneKey);
|
|
106
|
+
if (agents.length !== 1)
|
|
107
|
+
return undefined;
|
|
108
|
+
const taskTitle = agents[0].taskTitle;
|
|
109
|
+
return typeof taskTitle === 'string' && taskTitle.trim().length > 0 ? taskTitle : undefined;
|
|
97
110
|
}
|
|
98
111
|
//# sourceMappingURL=orca-session-title.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orca-session-title.js","sourceRoot":"","sources":["../src/orca-session-title.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,IAAI,MAAM,WAAW,CAAA;AAK5B,MAAM,cAAc,GAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;IACvD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE;YACpC,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,GAAG,GAAG,IAAI;YACrB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC,IAAI,EAAE,CAAA;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC/C,OAAO,SAAS,GAAG,EAAE,IAAI,SAAS,KAAK,GAAG,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,IAAI,wBAAwB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9F,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACxC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;IAC/C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAChF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QAC/E,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED,SAAS,cAAc,CAAC,GAAsB;IAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAA;IAClD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAA;IACjE,CAAC;IACD,OAAO,GAAG,CAAC,oBAAoB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAA;AACtE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"orca-session-title.js","sourceRoot":"","sources":["../src/orca-session-title.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts
CHANGED
|
@@ -44,30 +44,24 @@ export declare function urlOpenLaunch(url: string, platform?: NodeJS.Platform):
|
|
|
44
44
|
/** Best-effort browser open. Failure is silent: the URL is printed either way. */
|
|
45
45
|
export declare function openUrl(url: string, platform?: NodeJS.Platform): void;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* doubled. Everything else is inert once quoted, including `& | > < ^`.
|
|
51
|
-
*/
|
|
52
|
-
export declare function quoteCmdArgument(value: string): string;
|
|
53
|
-
/**
|
|
54
|
-
* A single `/c` argument for `cmd /d /s /c`.
|
|
55
|
-
*
|
|
56
|
-
* `/s` strips the first and last quote when both ends are quotes, so the
|
|
57
|
-
* payload is wrapped once more around the already-quoted argv. What cmd then
|
|
58
|
-
* runs is `"npx.cmd" "-y" …` with no unquoted metacharacters.
|
|
47
|
+
* Resolve npm's JavaScript npx entry point when this Windows Node installation
|
|
48
|
+
* exposes it. Invoking that file with the current Node runtime avoids the
|
|
49
|
+
* cwd-sensitive relative paths embedded in some npx.cmd shims.
|
|
59
50
|
*/
|
|
60
|
-
export declare function
|
|
51
|
+
export declare function windowsNpxCli(nodeExecutable?: string): string | null;
|
|
61
52
|
/**
|
|
62
|
-
* Launch `npx`
|
|
53
|
+
* Launch `npx` without making its resolution depend on the target project.
|
|
63
54
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
55
|
+
* Prefer npm's JavaScript entry point, which avoids both CreateProcess's
|
|
56
|
+
* inability to run `.cmd` files and shims whose relative paths depend on the
|
|
57
|
+
* working directory. A nonstandard Windows Node layout fails closed instead
|
|
58
|
+
* of executing an environment-selected shell or command shim; POSIX can
|
|
59
|
+
* execute `npx` directly without a shell.
|
|
67
60
|
*/
|
|
68
61
|
export declare function npxLaunch(args: readonly string[], options: {
|
|
69
62
|
cwd: string;
|
|
70
63
|
env: NodeJS.ProcessEnv;
|
|
64
|
+
nodeExecutable?: string;
|
|
71
65
|
platform?: NodeJS.Platform;
|
|
72
66
|
stdio?: SpawnOptions['stdio'];
|
|
73
67
|
}): ProcessLaunch;
|
package/dist/platform.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
2
3
|
import os from 'node:os';
|
|
3
4
|
import path from 'node:path';
|
|
4
5
|
/** Drive letter or UNC. MSYS `/c/Users/…` is not a Windows account home. */
|
|
@@ -93,44 +94,40 @@ export function openUrl(url, platform = process.platform) {
|
|
|
93
94
|
}
|
|
94
95
|
}
|
|
95
96
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* doubled. Everything else is inert once quoted, including `& | > < ^`.
|
|
100
|
-
*/
|
|
101
|
-
export function quoteCmdArgument(value) {
|
|
102
|
-
return `"${value.replace(/%/g, '%%').replace(/"/g, '""')}"`;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* A single `/c` argument for `cmd /d /s /c`.
|
|
106
|
-
*
|
|
107
|
-
* `/s` strips the first and last quote when both ends are quotes, so the
|
|
108
|
-
* payload is wrapped once more around the already-quoted argv. What cmd then
|
|
109
|
-
* runs is `"npx.cmd" "-y" …` with no unquoted metacharacters.
|
|
97
|
+
* Resolve npm's JavaScript npx entry point when this Windows Node installation
|
|
98
|
+
* exposes it. Invoking that file with the current Node runtime avoids the
|
|
99
|
+
* cwd-sensitive relative paths embedded in some npx.cmd shims.
|
|
110
100
|
*/
|
|
111
|
-
export function
|
|
112
|
-
|
|
101
|
+
export function windowsNpxCli(nodeExecutable = process.execPath) {
|
|
102
|
+
const bundledWithNode = path.join(path.dirname(nodeExecutable), 'node_modules', 'npm', 'bin', 'npx-cli.js');
|
|
103
|
+
return existsSync(bundledWithNode) ? bundledWithNode : null;
|
|
113
104
|
}
|
|
114
105
|
/**
|
|
115
|
-
* Launch `npx`
|
|
106
|
+
* Launch `npx` without making its resolution depend on the target project.
|
|
116
107
|
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
108
|
+
* Prefer npm's JavaScript entry point, which avoids both CreateProcess's
|
|
109
|
+
* inability to run `.cmd` files and shims whose relative paths depend on the
|
|
110
|
+
* working directory. A nonstandard Windows Node layout fails closed instead
|
|
111
|
+
* of executing an environment-selected shell or command shim; POSIX can
|
|
112
|
+
* execute `npx` directly without a shell.
|
|
120
113
|
*/
|
|
121
114
|
export function npxLaunch(args, options) {
|
|
122
115
|
const platform = options.platform ?? process.platform;
|
|
123
116
|
const stdio = options.stdio ?? 'inherit';
|
|
124
117
|
if (platform === 'win32') {
|
|
118
|
+
const nodeExecutable = options.nodeExecutable ?? process.execPath;
|
|
119
|
+
const npxCli = windowsNpxCli(nodeExecutable);
|
|
120
|
+
if (npxCli === null) {
|
|
121
|
+
throw new Error('this Windows Node.js installation is missing its bundled npm tools; repair or reinstall Node.js, then rerun setup');
|
|
122
|
+
}
|
|
125
123
|
return {
|
|
126
|
-
file:
|
|
127
|
-
args: [
|
|
124
|
+
file: nodeExecutable,
|
|
125
|
+
args: [npxCli, ...args],
|
|
128
126
|
options: {
|
|
129
127
|
cwd: options.cwd,
|
|
130
128
|
env: options.env,
|
|
131
129
|
stdio,
|
|
132
130
|
windowsHide: true,
|
|
133
|
-
windowsVerbatimArguments: true,
|
|
134
131
|
},
|
|
135
132
|
};
|
|
136
133
|
}
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { acknowledgeCommand, askCommand, accessStatusCommand, agentSessionRenameCommand, authStatusCommand, capabilitiesCommand, closeCommand, configExplainCommand, configSetCommand, configShowCommand, configUnsetCommand, devicesCommand, doctorCommand, guidanceSetCommand, guidanceShowCommand, guidanceUnsetCommand, hookRunCommand, hooksInstallCommand, hooksUninstallCommand, initCommand, loginCommand, logoutCommand, projectDisableCommand, projectEnableCommand, projectStatusCommand, logsCommand, repliesCommand, sendCommand, soundsCommand, statusCommand, type CommandDeps } from './commands.js';
|
|
2
|
+
import { acknowledgeCommand, askCommand, accessStatusCommand, agentSessionRenameCommand, authStatusCommand, capabilitiesCommand, closeCommand, cliUpdateCommand, configExplainCommand, configSetCommand, configShowCommand, configUnsetCommand, devicesCommand, doctorCommand, guidanceSetCommand, guidanceShowCommand, guidanceUnsetCommand, hookRunCommand, hooksInstallCommand, hooksUninstallCommand, initCommand, loginCommand, logoutCommand, projectDisableCommand, projectEnableCommand, projectStatusCommand, logsCommand, repliesCommand, sendCommand, soundsCommand, statusCommand, type CommandDeps } from './commands.js';
|
|
3
3
|
/**
|
|
4
4
|
* Every command implementation the tree dispatches to, injectable so a test
|
|
5
5
|
* can parse real argv and assert the exact flags a command would receive —
|
|
@@ -9,6 +9,7 @@ import { acknowledgeCommand, askCommand, accessStatusCommand, agentSessionRename
|
|
|
9
9
|
declare const defaultRunners: {
|
|
10
10
|
init: typeof initCommand;
|
|
11
11
|
doctor: typeof doctorCommand;
|
|
12
|
+
update: typeof cliUpdateCommand;
|
|
12
13
|
login: typeof loginCommand;
|
|
13
14
|
logout: typeof logoutCommand;
|
|
14
15
|
authStatus: typeof authStatusCommand;
|