@groundnuty/macf-core 0.2.15 → 0.2.17

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/token.d.ts CHANGED
@@ -10,11 +10,27 @@ export interface TokenSource {
10
10
  * paths (e.g. from macf-agent.json) before passing. */
11
11
  readonly keyPath: string;
12
12
  }
13
+ /**
14
+ * Optional behavior flags for `generateToken`.
15
+ *
16
+ * `forceMint`: skip the GH_TOKEN env-var shortcut and always mint a fresh
17
+ * App installation token from APP_ID/INSTALL_ID/KEY_PATH (env or
18
+ * TokenSource). Use this from short-lived subprocesses spawned by a
19
+ * long-running parent (e.g. macf-plugin-cli invoked via npx from a
20
+ * Claude TUI session that's been up >1hr): the parent's GH_TOKEN env is
21
+ * stale (1hr TTL bot installation tokens) and reading it as-is causes
22
+ * 401s. macf#338. Mints from same fallback chain (TokenSource ?? env);
23
+ * only the env-token-shortcut at the top is skipped.
24
+ */
25
+ export interface GenerateTokenOptions {
26
+ readonly forceMint?: boolean;
27
+ }
13
28
  /**
14
29
  * Generate a GitHub App installation token.
15
30
  *
16
31
  * Precedence:
17
- * 1. GH_TOKEN env var (if set, returned as-is — user override wins)
32
+ * 1. GH_TOKEN env var (if set, returned as-is — user override wins).
33
+ * SKIPPED when `opts.forceMint === true` per macf#338.
18
34
  * 2. Explicit TokenSource argument (from macf-agent.json config)
19
35
  * 3. APP_ID / INSTALL_ID / KEY_PATH env vars (legacy fallback for scripts)
20
36
  *
@@ -25,5 +41,5 @@ export interface TokenSource {
25
41
  * identity instead of the configured App. In debug mode, surface
26
42
  * the override so the user can spot the mismatch.
27
43
  */
28
- export declare function generateToken(source?: TokenSource): Promise<string>;
44
+ export declare function generateToken(source?: TokenSource, opts?: GenerateTokenOptions): Promise<string>;
29
45
  //# sourceMappingURL=token.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;4DACwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCzE"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;4DACwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,aAAa,CACjC,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAgCjB"}
package/dist/token.js CHANGED
@@ -5,7 +5,8 @@ const execFileAsync = promisify(execFile);
5
5
  * Generate a GitHub App installation token.
6
6
  *
7
7
  * Precedence:
8
- * 1. GH_TOKEN env var (if set, returned as-is — user override wins)
8
+ * 1. GH_TOKEN env var (if set, returned as-is — user override wins).
9
+ * SKIPPED when `opts.forceMint === true` per macf#338.
9
10
  * 2. Explicit TokenSource argument (from macf-agent.json config)
10
11
  * 3. APP_ID / INSTALL_ID / KEY_PATH env vars (legacy fallback for scripts)
11
12
  *
@@ -16,8 +17,8 @@ const execFileAsync = promisify(execFile);
16
17
  * identity instead of the configured App. In debug mode, surface
17
18
  * the override so the user can spot the mismatch.
18
19
  */
19
- export async function generateToken(source) {
20
- const envToken = process.env['GH_TOKEN'];
20
+ export async function generateToken(source, opts) {
21
+ const envToken = !opts?.forceMint && process.env['GH_TOKEN'];
21
22
  if (envToken) {
22
23
  if (source && process.env['MACF_DEBUG'] === 'true') {
23
24
  process.stderr.write('warn: GH_TOKEN env is set and overrides the configured TokenSource. ' +
package/dist/token.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAe1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAoB;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,MAAM,EAAE,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sEAAsE;gBACtE,wEAAwE;gBACxE,4BAA4B,CAC7B,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE3D,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;QAC3C,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,KAAK;QACjB,mBAAmB,EAAE,SAAS;QAC9B,OAAO,EAAE,OAAO;KACjB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAsB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AA+B1C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAoB,EACpB,IAA2B;IAE3B,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,MAAM,EAAE,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sEAAsE;gBACtE,wEAAwE;gBACxE,4BAA4B,CAC7B,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE3D,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;QAC3C,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,KAAK;QACjB,mBAAmB,EAAE,SAAS;QAC9B,OAAO,EAAE,OAAO;KACjB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAsB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groundnuty/macf-core",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "Shared internals consumed by the MACF CLI and channel-server packages. Not intended for direct external use — will be marked deprecated-internal on first npm publish per DR-022 Amendment A.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",