@oharness/engine 0.2.1 → 0.3.0
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/dist/agent/skills.d.ts +10 -2
- package/dist/agent/skills.js +38 -12
- package/dist/agent/skills.js.map +1 -1
- package/dist/auth/manager.d.ts +13 -0
- package/dist/auth/manager.js +22 -0
- package/dist/auth/manager.js.map +1 -1
- package/dist/auth/providers/openai-codex.d.ts +46 -0
- package/dist/auth/providers/openai-codex.js +201 -0
- package/dist/auth/providers/openai-codex.js.map +1 -0
- package/dist/harness.js +14 -3
- package/dist/harness.js.map +1 -1
- package/dist/mcp/builtin.d.ts +13 -0
- package/dist/mcp/builtin.js +93 -0
- package/dist/mcp/builtin.js.map +1 -0
- package/dist/mcp/client.d.ts +5 -1
- package/dist/mcp/client.js +11 -4
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/manager.d.ts +13 -1
- package/dist/mcp/manager.js +30 -2
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/secrets.d.ts +15 -0
- package/dist/mcp/secrets.js +61 -0
- package/dist/mcp/secrets.js.map +1 -1
- package/dist/providers/builtin.js +17 -4
- package/dist/providers/builtin.js.map +1 -1
- package/dist/providers/catalog.d.ts +27 -3
- package/dist/providers/catalog.js +10 -0
- package/dist/providers/catalog.js.map +1 -1
- package/dist/providers/catalog.json +38 -3
- package/dist/providers/piai.d.ts +1 -1
- package/dist/providers/piai.js +10 -1
- package/dist/providers/piai.js.map +1 -1
- package/dist/providers/registry.js +4 -2
- package/dist/providers/registry.js.map +1 -1
- package/dist/runtime-plugins/builtin/media.d.ts +33 -0
- package/dist/runtime-plugins/builtin/media.js +315 -0
- package/dist/runtime-plugins/builtin/media.js.map +1 -0
- package/dist/runtime-plugins/host.d.ts +2 -0
- package/dist/runtime-plugins/host.js +3 -2
- package/dist/runtime-plugins/host.js.map +1 -1
- package/dist/runtime-plugins/index.d.ts +1 -0
- package/dist/runtime-plugins/index.js.map +1 -1
- package/dist/runtime-plugins/types.d.ts +5 -0
- package/package.json +2 -1
- package/skills/media-generation/SKILL.md +96 -0
- package/skills/plugin-creator/SKILL.md +120 -0
- package/skills/plugin-creator/scripts/create-plugin.mjs +76 -0
- package/skills/plugin-creator/scripts/validate-plugin.mjs +46 -0
- package/skills/plugin-creator/scripts/validate-runtime-plugin.mjs +28 -0
- package/skills/skill-authoring/SKILL.md +4 -1
- package/skills/skill-creator/SKILL.md +98 -0
- package/skills/skill-creator/scripts/create-skill.mjs +75 -0
- package/skills/skill-creator/scripts/validate-runtime-skill.mjs +36 -0
- package/skills/skill-creator/scripts/validate-skill.mjs +40 -0
package/dist/agent/skills.d.ts
CHANGED
|
@@ -14,15 +14,23 @@ export interface Skill {
|
|
|
14
14
|
/** Full instructions, loaded by the `skill` tool. */
|
|
15
15
|
body: string;
|
|
16
16
|
/** Directory holding SKILL.md, so the body can reference scripts/ etc. */
|
|
17
|
-
directory
|
|
17
|
+
directory?: string;
|
|
18
18
|
/** Where it came from, for `/skills`. */
|
|
19
|
-
source: "builtin" | "project" | "user" | "config";
|
|
19
|
+
source: "builtin" | "project" | "user" | "config" | "runtime";
|
|
20
20
|
}
|
|
21
|
+
/** In-memory skill contributed by a trusted RuntimePlugin. */
|
|
22
|
+
export type RuntimeSkill = Pick<Skill, "name" | "description" | "body"> & {
|
|
23
|
+
/** Optional base for scripts/reference files used by the skill body. */
|
|
24
|
+
directory?: string;
|
|
25
|
+
};
|
|
21
26
|
export declare class SkillRegistry {
|
|
22
27
|
private readonly skills;
|
|
28
|
+
private readonly runtimeSkills;
|
|
23
29
|
private readonly logger;
|
|
24
30
|
constructor(logger?: Logger);
|
|
25
31
|
register(skill: Skill): this;
|
|
32
|
+
/** Register one runtime-owned skill and return an idempotent cleanup. */
|
|
33
|
+
registerScoped(skill: RuntimeSkill): () => void;
|
|
26
34
|
get(name: string): Skill | undefined;
|
|
27
35
|
list(): Skill[];
|
|
28
36
|
get size(): number;
|
package/dist/agent/skills.js
CHANGED
|
@@ -32,6 +32,7 @@ function builtinSkillsDir() {
|
|
|
32
32
|
const MAX_LISTED_FILES = 20;
|
|
33
33
|
export class SkillRegistry {
|
|
34
34
|
skills = new Map();
|
|
35
|
+
runtimeSkills = new Map();
|
|
35
36
|
logger;
|
|
36
37
|
constructor(logger) {
|
|
37
38
|
this.logger = (logger ?? createLogger("skills")).child("registry");
|
|
@@ -40,11 +41,26 @@ export class SkillRegistry {
|
|
|
40
41
|
this.skills.set(skill.name, skill);
|
|
41
42
|
return this;
|
|
42
43
|
}
|
|
44
|
+
/** Register one runtime-owned skill and return an idempotent cleanup. */
|
|
45
|
+
registerScoped(skill) {
|
|
46
|
+
validateRuntimeSkill(skill);
|
|
47
|
+
if (this.get(skill.name))
|
|
48
|
+
throw new Error(`Duplicate skill: ${skill.name}`);
|
|
49
|
+
const registered = { ...skill, source: "runtime" };
|
|
50
|
+
this.runtimeSkills.set(skill.name, registered);
|
|
51
|
+
return () => {
|
|
52
|
+
if (this.runtimeSkills.get(skill.name) === registered)
|
|
53
|
+
this.runtimeSkills.delete(skill.name);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
43
56
|
get(name) {
|
|
44
|
-
return this.skills.get(name);
|
|
57
|
+
return this.runtimeSkills.get(name) ?? this.skills.get(name);
|
|
45
58
|
}
|
|
46
59
|
list() {
|
|
47
|
-
|
|
60
|
+
const merged = new Map(this.skills);
|
|
61
|
+
for (const [name, skill] of this.runtimeSkills)
|
|
62
|
+
merged.set(name, skill);
|
|
63
|
+
return [...merged.values()].sort((a, b) => a.name.localeCompare(b.name));
|
|
48
64
|
}
|
|
49
65
|
get size() {
|
|
50
66
|
return this.skills.size;
|
|
@@ -99,25 +115,35 @@ export class SkillRegistry {
|
|
|
99
115
|
* act on that.
|
|
100
116
|
*/
|
|
101
117
|
export async function renderSkill(skill) {
|
|
102
|
-
const files = await listSkillFiles(skill.directory);
|
|
103
118
|
const parts = [
|
|
104
119
|
`<skill name="${skill.name}">`,
|
|
105
120
|
skill.body.trim(),
|
|
106
|
-
"",
|
|
107
|
-
`Base directory: ${skill.directory}`,
|
|
108
|
-
"Relative paths in this skill (scripts/, reference/, …) resolve against that directory.",
|
|
109
121
|
];
|
|
110
|
-
if (
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
122
|
+
if (skill.directory) {
|
|
123
|
+
const files = await listSkillFiles(skill.directory);
|
|
124
|
+
parts.push("", `Base directory: ${skill.directory}`, "Relative paths in this skill (scripts/, reference/, …) resolve against that directory.");
|
|
125
|
+
if (files.length > 0) {
|
|
126
|
+
parts.push("", "Files in this skill:");
|
|
127
|
+
for (const file of files.slice(0, MAX_LISTED_FILES))
|
|
128
|
+
parts.push(` ${file}`);
|
|
129
|
+
if (files.length > MAX_LISTED_FILES)
|
|
130
|
+
parts.push(` … ${files.length - MAX_LISTED_FILES} more`);
|
|
116
131
|
}
|
|
117
132
|
}
|
|
133
|
+
else if (skill.source === "runtime") {
|
|
134
|
+
parts.push("", "This runtime skill has no filesystem base directory.");
|
|
135
|
+
}
|
|
118
136
|
parts.push("</skill>");
|
|
119
137
|
return parts.join("\n");
|
|
120
138
|
}
|
|
139
|
+
function validateRuntimeSkill(skill) {
|
|
140
|
+
if (!skill || typeof skill.name !== "string" || !/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(skill.name) ||
|
|
141
|
+
skill.name.length >= 64 || typeof skill.description !== "string" || !skill.description.trim() ||
|
|
142
|
+
typeof skill.body !== "string" || !skill.body.trim() ||
|
|
143
|
+
(skill.directory !== undefined && (!path.isAbsolute(skill.directory) || !skill.directory))) {
|
|
144
|
+
throw new Error("Invalid runtime skill definition");
|
|
145
|
+
}
|
|
146
|
+
}
|
|
121
147
|
// ---------------------------------------------------------------------------
|
|
122
148
|
async function scanDirectory(root, source, logger) {
|
|
123
149
|
let entries;
|
package/dist/agent/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/agent/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/agent/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/manager.d.ts
CHANGED
|
@@ -67,6 +67,19 @@ export declare class AuthManager {
|
|
|
67
67
|
* one would work until it silently did not.
|
|
68
68
|
*/
|
|
69
69
|
accessToken(providerId: string): Promise<string | undefined>;
|
|
70
|
+
/**
|
|
71
|
+
* The raw secret for a provider, from the same places `resolve` looks.
|
|
72
|
+
*
|
|
73
|
+
* `resolve` returns headers, which is all a request needs and not enough for
|
|
74
|
+
* a subprocess that wants the key itself. The source order has to match it
|
|
75
|
+
* or the two disagree: a provider whose key is exported resolves from the
|
|
76
|
+
* environment, and reading only the store would report that provider as
|
|
77
|
+
* unconfigured while its completions were working fine.
|
|
78
|
+
*
|
|
79
|
+
* OAuth goes through `accessToken` so an expiring token is refreshed rather
|
|
80
|
+
* than handed over dead.
|
|
81
|
+
*/
|
|
82
|
+
secret(providerId: string): Promise<string | undefined>;
|
|
70
83
|
/** Whether a provider has usable credentials, without making a request. */
|
|
71
84
|
isAuthenticated(providerId: string): Promise<boolean>;
|
|
72
85
|
status(): Promise<AuthStatus[]>;
|
package/dist/auth/manager.js
CHANGED
|
@@ -2,6 +2,7 @@ import { errorMessage } from "../core/errors.js";
|
|
|
2
2
|
import { createLogger } from "../util/logger.js";
|
|
3
3
|
import { anthropicAuth } from "./providers/anthropic.js";
|
|
4
4
|
import { officialAuth } from "./providers/official.js";
|
|
5
|
+
import { openaiCodexAuth } from "./providers/openai-codex.js";
|
|
5
6
|
import { ottoportAuth } from "./providers/ottoport.js";
|
|
6
7
|
import { apiKeyProvider } from "./providers/generic.js";
|
|
7
8
|
import { AuthStore } from "./store.js";
|
|
@@ -10,6 +11,7 @@ export const BUILTIN_AUTH_PROVIDERS = [
|
|
|
10
11
|
officialAuth,
|
|
11
12
|
anthropicAuth,
|
|
12
13
|
ottoportAuth,
|
|
14
|
+
openaiCodexAuth,
|
|
13
15
|
apiKeyProvider({
|
|
14
16
|
id: "openai",
|
|
15
17
|
label: "OpenAI",
|
|
@@ -112,6 +114,26 @@ export class AuthManager {
|
|
|
112
114
|
}
|
|
113
115
|
return credential.type === "oauth" && !isExpired(credential) ? credential.access : undefined;
|
|
114
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* The raw secret for a provider, from the same places `resolve` looks.
|
|
119
|
+
*
|
|
120
|
+
* `resolve` returns headers, which is all a request needs and not enough for
|
|
121
|
+
* a subprocess that wants the key itself. The source order has to match it
|
|
122
|
+
* or the two disagree: a provider whose key is exported resolves from the
|
|
123
|
+
* environment, and reading only the store would report that provider as
|
|
124
|
+
* unconfigured while its completions were working fine.
|
|
125
|
+
*
|
|
126
|
+
* OAuth goes through `accessToken` so an expiring token is refreshed rather
|
|
127
|
+
* than handed over dead.
|
|
128
|
+
*/
|
|
129
|
+
async secret(providerId) {
|
|
130
|
+
const provider = this.providers.get(providerId);
|
|
131
|
+
const discovered = await provider?.discover?.().catch(() => undefined);
|
|
132
|
+
const credential = discovered?.credential ?? (await this.store.get(providerId));
|
|
133
|
+
if (!credential)
|
|
134
|
+
return undefined;
|
|
135
|
+
return credential.type === "oauth" ? this.accessToken(providerId) : credential.key;
|
|
136
|
+
}
|
|
115
137
|
/** Whether a provider has usable credentials, without making a request. */
|
|
116
138
|
async isAuthenticated(providerId) {
|
|
117
139
|
const resolved = await this.resolve({ providerId });
|
package/dist/auth/manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/auth/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/auth/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { AuthProvider } from "../types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* ChatGPT subscription authentication, borrowed from the Codex CLI.
|
|
4
|
+
*
|
|
5
|
+
* The endpoint behind this provider (`chatgpt.com/backend-api`) accepts no API
|
|
6
|
+
* key at all — only a ChatGPT OAuth token — so unlike every other entry in the
|
|
7
|
+
* catalog there is no env var that can stand in for a login.
|
|
8
|
+
*
|
|
9
|
+
* Where that token comes from is the decision worth recording. Running the
|
|
10
|
+
* OAuth flow here is possible: the client id the Codex CLI registered is
|
|
11
|
+
* visible in any client that implements this, and reusing it is what the other
|
|
12
|
+
* implementations do. This build does not, for the same reason the Anthropic
|
|
13
|
+
* provider defers to the `ant` CLI — a hardcoded client id is another
|
|
14
|
+
* application's OAuth registration, and a login that claims to be Codex is a
|
|
15
|
+
* claim we are not entitled to make. So `codex login` owns the login, and this
|
|
16
|
+
* reads what it wrote.
|
|
17
|
+
*
|
|
18
|
+
* That also settles refresh, which is the part that would otherwise go wrong
|
|
19
|
+
* quietly. OpenAI rotates the refresh token on every use, so a second process
|
|
20
|
+
* refreshing the same credential invalidates the first one's copy — refreshing
|
|
21
|
+
* here would log the user out of their own `codex` command at random. The rule
|
|
22
|
+
* is therefore: read, never refresh. An expired token is reported as no
|
|
23
|
+
* credential, and the fix is to run `codex login` again.
|
|
24
|
+
*
|
|
25
|
+
* The read is cheap enough to do per request, which is what keeps it correct:
|
|
26
|
+
* whatever the CLI refreshed last is what the next request carries.
|
|
27
|
+
*/
|
|
28
|
+
/** Sentinel meaning "the credential lives in the Codex CLI profile". */
|
|
29
|
+
export declare const CODEX_CLI_MARKER = "__codex_cli_profile__";
|
|
30
|
+
export interface CodexCredential {
|
|
31
|
+
access: string;
|
|
32
|
+
accountId?: string;
|
|
33
|
+
/** Epoch milliseconds, from the token's own `exp`; 0 when it states none. */
|
|
34
|
+
expires: number;
|
|
35
|
+
}
|
|
36
|
+
/** Where the Codex CLI keeps its credentials. `CODEX_HOME` moves the lot. */
|
|
37
|
+
export declare function codexAuthPath(): string;
|
|
38
|
+
/**
|
|
39
|
+
* The ChatGPT credential the Codex CLI holds, or nothing.
|
|
40
|
+
*
|
|
41
|
+
* An API-key login (`auth_mode: "apikey"`) is deliberately not a match: that
|
|
42
|
+
* key belongs to the platform API and is rejected by this endpoint, so
|
|
43
|
+
* accepting it here would trade a clear "not signed in" for a 401 mid-turn.
|
|
44
|
+
*/
|
|
45
|
+
export declare function codexCredential(): Promise<CodexCredential | undefined>;
|
|
46
|
+
export declare const openaiCodexAuth: AuthProvider;
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { parseJson } from "../../util/json.js";
|
|
5
|
+
import { isExpired } from "../types.js";
|
|
6
|
+
/**
|
|
7
|
+
* ChatGPT subscription authentication, borrowed from the Codex CLI.
|
|
8
|
+
*
|
|
9
|
+
* The endpoint behind this provider (`chatgpt.com/backend-api`) accepts no API
|
|
10
|
+
* key at all — only a ChatGPT OAuth token — so unlike every other entry in the
|
|
11
|
+
* catalog there is no env var that can stand in for a login.
|
|
12
|
+
*
|
|
13
|
+
* Where that token comes from is the decision worth recording. Running the
|
|
14
|
+
* OAuth flow here is possible: the client id the Codex CLI registered is
|
|
15
|
+
* visible in any client that implements this, and reusing it is what the other
|
|
16
|
+
* implementations do. This build does not, for the same reason the Anthropic
|
|
17
|
+
* provider defers to the `ant` CLI — a hardcoded client id is another
|
|
18
|
+
* application's OAuth registration, and a login that claims to be Codex is a
|
|
19
|
+
* claim we are not entitled to make. So `codex login` owns the login, and this
|
|
20
|
+
* reads what it wrote.
|
|
21
|
+
*
|
|
22
|
+
* That also settles refresh, which is the part that would otherwise go wrong
|
|
23
|
+
* quietly. OpenAI rotates the refresh token on every use, so a second process
|
|
24
|
+
* refreshing the same credential invalidates the first one's copy — refreshing
|
|
25
|
+
* here would log the user out of their own `codex` command at random. The rule
|
|
26
|
+
* is therefore: read, never refresh. An expired token is reported as no
|
|
27
|
+
* credential, and the fix is to run `codex login` again.
|
|
28
|
+
*
|
|
29
|
+
* The read is cheap enough to do per request, which is what keeps it correct:
|
|
30
|
+
* whatever the CLI refreshed last is what the next request carries.
|
|
31
|
+
*/
|
|
32
|
+
/** Sentinel meaning "the credential lives in the Codex CLI profile". */
|
|
33
|
+
export const CODEX_CLI_MARKER = "__codex_cli_profile__";
|
|
34
|
+
/** `codex login` writes ChatGPT tokens; an API-key login writes this instead. */
|
|
35
|
+
const CHATGPT_AUTH_MODE = "chatgpt";
|
|
36
|
+
/** The claim the ChatGPT account id hides under, in both of OpenAI's tokens. */
|
|
37
|
+
const JWT_AUTH_CLAIM = "https://api.openai.com/auth";
|
|
38
|
+
/** Where the Codex CLI keeps its credentials. `CODEX_HOME` moves the lot. */
|
|
39
|
+
export function codexAuthPath() {
|
|
40
|
+
const home = process.env["CODEX_HOME"];
|
|
41
|
+
return home ? path.join(home, "auth.json") : path.join(homedir(), ".codex", "auth.json");
|
|
42
|
+
}
|
|
43
|
+
function decodeJwtClaims(token) {
|
|
44
|
+
const parts = token.split(".");
|
|
45
|
+
if (parts.length !== 3)
|
|
46
|
+
return undefined;
|
|
47
|
+
let json;
|
|
48
|
+
try {
|
|
49
|
+
json = Buffer.from(parts[1] ?? "", "base64url").toString("utf8");
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const parsed = parseJson(json);
|
|
55
|
+
return parsed.ok ? parsed.value : undefined;
|
|
56
|
+
}
|
|
57
|
+
function accountIdFromToken(token) {
|
|
58
|
+
const claims = decodeJwtClaims(token);
|
|
59
|
+
const auth = claims?.[JWT_AUTH_CLAIM];
|
|
60
|
+
const id = auth?.chatgpt_account_id;
|
|
61
|
+
return typeof id === "string" && id.length > 0 ? id : undefined;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* When this token stops being accepted, in epoch milliseconds.
|
|
65
|
+
*
|
|
66
|
+
* `0` means the token states no expiry, which is treated as "let the server
|
|
67
|
+
* decide" rather than as "expired" — refusing to send a token we merely failed
|
|
68
|
+
* to parse would turn a working login into a silent one.
|
|
69
|
+
*/
|
|
70
|
+
function expiryFromToken(token) {
|
|
71
|
+
const exp = decodeJwtClaims(token)?.["exp"];
|
|
72
|
+
return typeof exp === "number" && Number.isFinite(exp) ? exp * 1000 : 0;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The ChatGPT credential the Codex CLI holds, or nothing.
|
|
76
|
+
*
|
|
77
|
+
* An API-key login (`auth_mode: "apikey"`) is deliberately not a match: that
|
|
78
|
+
* key belongs to the platform API and is rejected by this endpoint, so
|
|
79
|
+
* accepting it here would trade a clear "not signed in" for a 401 mid-turn.
|
|
80
|
+
*/
|
|
81
|
+
export async function codexCredential() {
|
|
82
|
+
let raw;
|
|
83
|
+
try {
|
|
84
|
+
raw = await readFile(codexAuthPath(), "utf8");
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Not installed, never logged in, or a file we cannot read: all "no".
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
const parsed = parseJson(raw);
|
|
91
|
+
if (!parsed.ok)
|
|
92
|
+
return undefined;
|
|
93
|
+
const file = parsed.value;
|
|
94
|
+
const access = file.tokens?.access_token;
|
|
95
|
+
if (!access)
|
|
96
|
+
return undefined;
|
|
97
|
+
if (file.auth_mode && file.auth_mode !== CHATGPT_AUTH_MODE)
|
|
98
|
+
return undefined;
|
|
99
|
+
const accountId = file.tokens?.account_id ?? accountIdFromToken(access);
|
|
100
|
+
return {
|
|
101
|
+
access,
|
|
102
|
+
expires: expiryFromToken(access),
|
|
103
|
+
...(accountId ? { accountId } : {}),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** A Codex credential that is still good, or nothing. */
|
|
107
|
+
async function usableCodexCredential() {
|
|
108
|
+
const credential = await codexCredential();
|
|
109
|
+
if (!credential)
|
|
110
|
+
return undefined;
|
|
111
|
+
// Expiry is checked against the token itself rather than `last_refresh`:
|
|
112
|
+
// the CLI renews on its own schedule and only the token knows the deadline.
|
|
113
|
+
if (credential.expires > 0 && credential.expires <= Date.now())
|
|
114
|
+
return undefined;
|
|
115
|
+
return credential;
|
|
116
|
+
}
|
|
117
|
+
function chatgptAuth(credential, source) {
|
|
118
|
+
return {
|
|
119
|
+
headers: {
|
|
120
|
+
authorization: `Bearer ${credential.access}`,
|
|
121
|
+
// The wire layer derives this from the token as well, and sets the same
|
|
122
|
+
// value; stating it here keeps the resolved credential complete for
|
|
123
|
+
// anything that reads it without going through a request.
|
|
124
|
+
...(credential.accountId ? { "chatgpt-account-id": credential.accountId } : {}),
|
|
125
|
+
},
|
|
126
|
+
// An OpenAI key from a neighbouring provider must not ride along: this
|
|
127
|
+
// endpoint reads the bearer token and rejects the pair.
|
|
128
|
+
removeHeaders: ["x-api-key"],
|
|
129
|
+
source,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export const openaiCodexAuth = {
|
|
133
|
+
id: "openai-codex",
|
|
134
|
+
label: "ChatGPT (Codex)",
|
|
135
|
+
methods: [
|
|
136
|
+
{
|
|
137
|
+
type: "api",
|
|
138
|
+
// No prompts: there is nothing for the user to paste. The method exists
|
|
139
|
+
// so that "log in" has an answer, and all it does is check.
|
|
140
|
+
label: "ChatGPT subscription via the Codex CLI (run `codex login` first)",
|
|
141
|
+
async authorize() {
|
|
142
|
+
const credential = await codexCredential();
|
|
143
|
+
if (!credential) {
|
|
144
|
+
return {
|
|
145
|
+
type: "failed",
|
|
146
|
+
error: `no ChatGPT login found at ${codexAuthPath()}. Install the Codex CLI and run \`codex login\`, then retry.`,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
if (credential.expires > 0 && credential.expires <= Date.now()) {
|
|
150
|
+
return {
|
|
151
|
+
type: "failed",
|
|
152
|
+
error: "the Codex CLI's ChatGPT login has expired. Run `codex login` again, then retry.",
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
// A marker rather than the token: the CLI owns refresh, and a copy
|
|
156
|
+
// taken here would be the stale one within days.
|
|
157
|
+
return {
|
|
158
|
+
type: "success",
|
|
159
|
+
key: CODEX_CLI_MARKER,
|
|
160
|
+
metadata: { source: "codex-cli" },
|
|
161
|
+
};
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
async loader(credential) {
|
|
166
|
+
// A credential this harness holds itself comes first — there is no such
|
|
167
|
+
// flow today, but if one is added it is the more specific answer and must
|
|
168
|
+
// not be shadowed by whatever the CLI happens to have.
|
|
169
|
+
if (credential?.type === "oauth" && !isExpired(credential)) {
|
|
170
|
+
return chatgptAuth({
|
|
171
|
+
access: credential.access,
|
|
172
|
+
expires: credential.expires,
|
|
173
|
+
...(credential.accountId ? { accountId: credential.accountId } : {}),
|
|
174
|
+
}, "stored:oauth");
|
|
175
|
+
}
|
|
176
|
+
const fromCli = await usableCodexCredential();
|
|
177
|
+
if (fromCli)
|
|
178
|
+
return chatgptAuth(fromCli, "codex-cli");
|
|
179
|
+
return undefined;
|
|
180
|
+
},
|
|
181
|
+
/**
|
|
182
|
+
* Nothing to do, and deliberately so: the token came from the Codex CLI,
|
|
183
|
+
* OpenAI rotates the refresh token on use, and renewing it here would
|
|
184
|
+
* invalidate the copy the CLI holds. The loader re-reads the file on every
|
|
185
|
+
* request, so the CLI's own refresh is picked up without one happening here.
|
|
186
|
+
*/
|
|
187
|
+
async refresh(credential) {
|
|
188
|
+
void credential;
|
|
189
|
+
return undefined;
|
|
190
|
+
},
|
|
191
|
+
async discover() {
|
|
192
|
+
const credential = await usableCodexCredential();
|
|
193
|
+
if (!credential)
|
|
194
|
+
return undefined;
|
|
195
|
+
return {
|
|
196
|
+
credential: { type: "api", key: CODEX_CLI_MARKER, metadata: { source: "codex-cli" } },
|
|
197
|
+
source: "codex-cli",
|
|
198
|
+
};
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
//# sourceMappingURL=openai-codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-codex.js","sourceRoot":"","sources":["../../../src/auth/providers/openai-codex.ts"],"names":[],"mappings":"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"}
|
package/dist/harness.js
CHANGED
|
@@ -16,6 +16,7 @@ import { loadConfig, loadProjectConfig, loadProjectInstructions, mergeConfig } f
|
|
|
16
16
|
import { discoverPlugins, pluginContributions } from "./plugins.js";
|
|
17
17
|
import { McpManager } from "./mcp/manager.js";
|
|
18
18
|
import { beginMcpLogin, forgetMcpAuth } from "./mcp/oauth.js";
|
|
19
|
+
import { createMediaPlugin } from "./runtime-plugins/builtin/media.js";
|
|
19
20
|
import { expandSecrets } from "./mcp/secrets.js";
|
|
20
21
|
import { Scheduler } from "./schedule/scheduler.js";
|
|
21
22
|
import { SyncClient } from "./sync/client.js";
|
|
@@ -143,7 +144,7 @@ export class Harness {
|
|
|
143
144
|
],
|
|
144
145
|
...(config.readableRoots !== undefined ? { readableRoots: config.readableRoots } : {}),
|
|
145
146
|
});
|
|
146
|
-
this.mcp = new McpManager(this.logger, this.auth.store);
|
|
147
|
+
this.mcp = new McpManager(this.logger, this.auth.store, (id) => this.auth.secret(id));
|
|
147
148
|
this.store = new SessionStore(config.sessionDir);
|
|
148
149
|
this.scheduler = new Scheduler(this, config.schedules ?? []);
|
|
149
150
|
this.ephemeral = opts.ephemeral === true;
|
|
@@ -158,7 +159,7 @@ export class Harness {
|
|
|
158
159
|
return this.accountToken();
|
|
159
160
|
} });
|
|
160
161
|
this.pluginHost = new PluginHost({
|
|
161
|
-
tools: this.tools, hooks: this.hooks, models: this.providers,
|
|
162
|
+
tools: this.tools, skills: this.skills, hooks: this.hooks, models: this.providers,
|
|
162
163
|
auth: this.auth, audit: this.runtimeAudit, logger: this.logger.child("plugins"),
|
|
163
164
|
extensions: this.extensions,
|
|
164
165
|
});
|
|
@@ -232,7 +233,17 @@ export class Harness {
|
|
|
232
233
|
}
|
|
233
234
|
}, token: () => harness.accountToken(), syncUrl: () => resolveSyncUrl(harness.config.sync),
|
|
234
235
|
}, (service) => { harness.memoryService = service; });
|
|
235
|
-
|
|
236
|
+
/**
|
|
237
|
+
* Media generation, when the account has a gateway to generate with.
|
|
238
|
+
*
|
|
239
|
+
* A plugin rather than an MCP server declaration, because the vendor's
|
|
240
|
+
* tools are not the ones this harness should be offering: the backend's
|
|
241
|
+
* name would be in every tool name, the results would be URLs that
|
|
242
|
+
* expire rather than files, and nothing would say what a call is about
|
|
243
|
+
* to cost. The plugin wraps all three.
|
|
244
|
+
*/
|
|
245
|
+
const media = createMediaPlugin({ secret: () => harness.auth.secret("ottoport") });
|
|
246
|
+
await harness.pluginHost.boot([{ plugin: memory }, { plugin: media, required: false }, ...platform, ...(opts.runtimePlugins ?? [])], config.runtimePlugins);
|
|
236
247
|
// Awaited, though it touches no network: deciding whether to mirror reads
|
|
237
248
|
// config and asks git for the project id, and both are local. Leaving it
|
|
238
249
|
// unawaited made `syncStatus()` lie for the first few milliseconds of
|