@cortexkit/opencode-anthropic-auth 1.22.0 → 2.0.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.
Files changed (91) hide show
  1. package/README.md +259 -198
  2. package/dist/billing-lineage.d.ts +51 -0
  3. package/dist/cli-failure.d.ts +69 -0
  4. package/dist/cli.d.ts +16 -10
  5. package/dist/cli.js +111 -6
  6. package/dist/custody-dimensions.d.ts +19 -0
  7. package/dist/custody-mode.d.ts +46 -0
  8. package/dist/effort-history.d.ts +11 -2
  9. package/dist/fable-fallback.d.ts +1 -1
  10. package/dist/index-1jkyhgyr.js +2 -0
  11. package/dist/{index-bx5hsgf8.js → index-2arfb1y3.js} +2 -2
  12. package/dist/{index-926t2bzc.js → index-4ya27n12.js} +1 -1
  13. package/dist/{index-cgez4m0h.js → index-aaajxwzd.js} +1 -1
  14. package/dist/index-ae3fq4n6.js +42 -0
  15. package/dist/index-fds0s2j4.js +2 -0
  16. package/dist/index-nngmvczq.js +450 -0
  17. package/dist/index-pn597b6f.js +2 -0
  18. package/dist/{index-7f57ewkp.js → index-rqync0pc.js} +1 -1
  19. package/dist/index.js +1 -33
  20. package/dist/native-command.d.ts +19 -0
  21. package/dist/prime-manager-registry.d.ts +5 -1
  22. package/dist/rpc/notifications.d.ts +4 -3
  23. package/dist/rpc/port-file.js +1 -1
  24. package/dist/rpc/protocol.d.ts +15 -4
  25. package/dist/rpc/protocol.js +1 -1
  26. package/dist/rpc/rpc-client.d.ts +3 -1
  27. package/dist/rpc/rpc-client.js +1 -1
  28. package/dist/rpc/rpc-dir.js +1 -1
  29. package/dist/rpc/rpc-server.d.ts +5 -1
  30. package/dist/rpc/server-registry.d.ts +10 -0
  31. package/dist/setup/activation.d.ts +7 -0
  32. package/dist/setup/claustrum.d.ts +26 -0
  33. package/dist/setup/command-runner.d.ts +2 -0
  34. package/dist/setup/command.d.ts +20 -0
  35. package/dist/setup/command.test.d.ts +1 -0
  36. package/dist/setup/detect.d.ts +5 -0
  37. package/dist/setup/jsonc.d.ts +9 -0
  38. package/dist/setup/native-activation.d.ts +29 -0
  39. package/dist/setup/native-enrollment.d.ts +26 -0
  40. package/dist/setup/native-enrollment.test.d.ts +1 -0
  41. package/dist/setup/native-local.d.ts +20 -0
  42. package/dist/setup/native-login.d.ts +3 -0
  43. package/dist/setup/native-paths.d.ts +15 -0
  44. package/dist/setup/native-paths.test.d.ts +1 -0
  45. package/dist/setup/opencode-config.d.ts +18 -0
  46. package/dist/setup/paths.d.ts +15 -0
  47. package/dist/setup/pi.d.ts +18 -0
  48. package/dist/setup/process-fence.d.ts +20 -0
  49. package/dist/setup/process-fence.test.d.ts +1 -0
  50. package/dist/setup/types.d.ts +37 -0
  51. package/dist/sidebar-state.d.ts +3 -1
  52. package/dist/sidebar-state.js +1 -1
  53. package/dist/transform.d.ts +5 -1
  54. package/dist/tui/command-dialogs.d.ts +32 -2
  55. package/dist/tui-preferences.js +2 -2
  56. package/dist/v2/activation.d.ts +7 -0
  57. package/dist/v2/adapter.d.ts +276 -0
  58. package/dist/v2/install.d.ts +13 -0
  59. package/dist/v2/lifecycle.d.ts +8 -0
  60. package/dist/v2/menu-contract.d.ts +8 -0
  61. package/dist/v2/menu.d.ts +10 -0
  62. package/dist/v2/models.d.ts +6 -0
  63. package/dist/v2/ownership.d.ts +11 -0
  64. package/dist/v2/prime.d.ts +12 -0
  65. package/dist/v2/rpc.d.ts +50 -0
  66. package/dist/v2/server.d.ts +8 -0
  67. package/dist/v2/server.js +4 -0
  68. package/dist/v2/setup.d.ts +58 -0
  69. package/dist/v2/source.d.ts +41 -0
  70. package/dist/v2/tui.d.ts +13 -0
  71. package/dist/v2/tui.js +2 -0
  72. package/dist/v2/wire.d.ts +36 -0
  73. package/package.json +26 -6
  74. package/src/rpc/notifications.ts +37 -26
  75. package/src/rpc/protocol.ts +24 -7
  76. package/src/rpc/rpc-client.ts +18 -1
  77. package/src/rpc/rpc-server.ts +38 -8
  78. package/src/rpc/server-registry.ts +61 -0
  79. package/src/sidebar-state.ts +26 -2
  80. package/src/tui/command-dialogs.tsx +537 -68
  81. package/src/tui/entry.mjs +44 -18
  82. package/src/tui-compiled/rpc/protocol.ts +24 -7
  83. package/src/tui-compiled/rpc/rpc-client.ts +18 -1
  84. package/src/tui-compiled/sidebar-state.ts +26 -2
  85. package/src/tui-compiled/tui/command-dialogs.tsx +488 -95
  86. package/src/tui-compiled/tui.tsx +25 -7
  87. package/src/tui.tsx +38 -9
  88. package/dist/index-8aga2zwv.js +0 -4
  89. package/dist/index-d3f8g6ve.js +0 -428
  90. package/dist/index-sh51yqxs.js +0 -2
  91. package/dist/logger-jrkranbz.js +0 -1
@@ -0,0 +1,19 @@
1
+ import { type AccountStorage, type CustodyStatusState } from '@cortexkit/anthropic-auth-core';
2
+ /** Only the enrolled scoped roster can establish vault ownership. */
3
+ export declare function isFallbackAccountVaultServed(accountId: string, storage: AccountStorage | null): boolean;
4
+ export declare function fallbackCustodyDimensions(storage: AccountStorage | null): {
5
+ fallbacks: 'M';
6
+ evidence: 'N';
7
+ } | {
8
+ fallbacks: "R" | "T";
9
+ evidence: 'V';
10
+ };
11
+ export declare function mainCustodyDimension(auth: {
12
+ type: string;
13
+ access?: string;
14
+ refresh?: string;
15
+ }): "R" | "T" | "X";
16
+ export declare function custodyStateFor(account: {
17
+ id: string;
18
+ role: 'main' | 'fallback';
19
+ }, storage: AccountStorage | null): CustodyStatusState;
@@ -0,0 +1,46 @@
1
+ export declare class CustodyStateMismatchError extends Error {
2
+ readonly verdict: string;
3
+ readonly dimensions: {
4
+ mode: 'L' | 'C';
5
+ main: 'R' | 'T' | 'X';
6
+ fallbacks: 'R' | 'T' | 'M';
7
+ evidence: 'V' | 'N';
8
+ };
9
+ readonly code = "custody_state_mismatch";
10
+ constructor(verdict: string, dimensions: {
11
+ mode: 'L' | 'C';
12
+ main: 'R' | 'T' | 'X';
13
+ fallbacks: 'R' | 'T' | 'M';
14
+ evidence: 'V' | 'N';
15
+ });
16
+ toJSON(): {
17
+ code: string;
18
+ verdict: string;
19
+ dimensions: {
20
+ mode: 'L' | 'C';
21
+ main: 'R' | 'T' | 'X';
22
+ fallbacks: 'R' | 'T' | 'M';
23
+ evidence: 'V' | 'N';
24
+ };
25
+ };
26
+ }
27
+ /**
28
+ * Check custody independently from account availability. Modes L/C mean local
29
+ * and Claustrum vault. Main R/T/X means a real login, inert tombstone, or no
30
+ * recognized OAuth marker; fallback R/T/M means local rows, token-free vault
31
+ * inventory, or missing roster. Evidence V/N means verified or unavailable.
32
+ * Local mode still requires completed migration and local account rows. Vault
33
+ * mode requires enrollment authority, the host marker and a readable roster,
34
+ * not an active primary. Each request separately authorizes its chosen account;
35
+ * the marker enables the provider but cannot authenticate it. Ordinary OpenCode
36
+ * API-key authentication remains outside this OAuth custody check.
37
+ */
38
+ export declare function reconcileCustodyStartup(input: {
39
+ mode: 'L' | 'C';
40
+ main: 'R' | 'T' | 'X';
41
+ fallbacks: 'R' | 'T' | 'M';
42
+ evidence: 'V' | 'N';
43
+ authority?: 'committed' | 'retired';
44
+ }): {
45
+ verdict: 'LOCAL_SERVE' | 'CLAUSTRUM_SERVE';
46
+ };
@@ -1,16 +1,21 @@
1
1
  import { type AdaptiveEffort } from '@cortexkit/anthropic-auth-core';
2
2
  export declare const EFFORT_MARKER_PREFIX = "<cortexkit-internal-effort-v2 ";
3
+ export declare const EFFORT_ANCHOR_PREFIX = "<cortexkit-internal-effort-anchor-v1 ";
3
4
  export declare const EFFORT_PLAN_REQUEST_HEADER = "x-cortexkit-effort-plan";
4
5
  export type OpenCodeEffortMarkerPlan = {
5
6
  scope: string;
6
7
  baseline: AdaptiveEffort;
7
8
  markerCount: number;
8
9
  digest: string;
10
+ transitionTokens: readonly string[];
11
+ anchorToken?: string;
9
12
  sessionId: string;
10
13
  messageId: string;
11
14
  };
12
15
  export declare class EffortMarkerCorrelationError extends Error {
13
- constructor(message: string);
16
+ readonly check: string;
17
+ readonly details: Record<string, unknown>;
18
+ constructor(message: string, check?: string, details?: Record<string, unknown>);
14
19
  }
15
20
  type OpenCodeMessageInfo = {
16
21
  id?: unknown;
@@ -40,12 +45,14 @@ export declare function encodeOpenCodeEffortPlan(plan: OpenCodeEffortMarkerPlan)
40
45
  */
41
46
  export declare function markOpenCodeEffortTransitions(messages: MutableOpenCodeMessage[]): OpenCodeEffortMarkerPlan | null;
42
47
  /** Consume request-correlated markers and insert Anthropic effort system messages. */
43
- export declare function applyOpenCodeEffortMarkers(body: Record<string, unknown>, enabled: boolean, requestPlanHeader?: string): {
48
+ export declare function applyOpenCodeEffortMarkers(body: Record<string, unknown>, enabled: boolean, requestPlanHeader?: string, resolvedPlan?: OpenCodeEffortMarkerPlan): {
44
49
  found: number;
45
50
  inserted: number;
46
51
  };
47
52
  export declare class OpenCodeEffortPlanTracker {
48
53
  private readonly plans;
54
+ private readonly history;
55
+ private readonly historyByMessage;
49
56
  record(plan: OpenCodeEffortMarkerPlan): void;
50
57
  clear(sessionId: string, messageId: string): void;
51
58
  markHeaders(input: {
@@ -53,6 +60,8 @@ export declare class OpenCodeEffortPlanTracker {
53
60
  messageId: string;
54
61
  headers: Record<string, string>;
55
62
  }): boolean;
63
+ resolveHeader(value: string | undefined): OpenCodeEffortMarkerPlan | undefined;
64
+ private remember;
56
65
  private key;
57
66
  }
58
67
  export {};
@@ -27,7 +27,7 @@ export type FableFallbackPlan = {
27
27
  * the same classifier refusal shape and recovery period. Mythos has no
28
28
  * classifiers and Sonnet 5 is not flagged — both stay outside this gate.
29
29
  */
30
- export type RecoverableRefusalFamily = 'fable-5' | 'fable-5-1' | 'opus-5';
30
+ export type RecoverableRefusalFamily = 'fable-5' | 'fable-5-1' | 'opus-5' | 'opus-5-5';
31
31
  export declare function recoverableRefusalFamily(model: unknown): RecoverableRefusalFamily | null;
32
32
  export declare function isRecoverableRefusalModel(model: unknown): model is string;
33
33
  export declare class FableFallbackManager {
@@ -0,0 +1,2 @@
1
+ var z=(f)=>f!==null&&typeof f==="object"&&!Array.isArray(f),G=(f)=>z(f)&&typeof f.sessionId==="string"&&f.sessionId.length>0,Z=(f)=>{if(!G(f)||!z(f)||f.command!=="claude"||typeof f.sectionId!=="string"||typeof f.actionId!=="string")return!1;if(f.itemId!==void 0&&typeof f.itemId!=="string")return!1;if(f.confirmed!==void 0&&typeof f.confirmed!=="boolean")return!1;if(f.values!==void 0&&(!z(f.values)||!Object.values(f.values).every((q)=>q===null||typeof q==="string"||typeof q==="boolean"||typeof q==="number"&&Number.isFinite(q))))return!1;return!0};function B(f){return{"~standard":{version:1,vendor:"cortexkit-native",validate:(q)=>f(q)?{value:q}:{issues:[{message:"Invalid native menu payload"}]}}}}var W=(f)=>z(f)&&f.command==="claude"&&z(f.menu)&&f.menu.command==="claude"&&typeof f.menu.title==="string"&&Array.isArray(f.menu.sections),$=(f)=>z(f)&&f.command==="claude"&&typeof f.ok==="boolean"&&typeof f.text==="string"&&z(f.menu)&&Array.isArray(f.menu.sections),A={id:"cortexkit-anthropic-native",methods:{open:{input:B(G),output:B(W)},apply:{input:B(Z),output:B($)}},events:{opened:{schema:B((f)=>G(f)&&W(f.payload))},notification:{schema:B((f)=>G(f)&&typeof f.message==="string"&&["info","warning","error"].includes(String(f.kind)))}}};async function L(f,q,X){let K=new AbortController,H=(j)=>({sessionId:j,notify(F,J="info"){D.events.emit("notification",{sessionId:j,message:F,kind:J}).catch(()=>{})}}),D=await f.rpc.register(A,{open:(j)=>q.open(H(j.sessionId)),apply:(j)=>q.apply(j,H(j.sessionId))}),Q;try{Q=await f.command.transform((j)=>j.add({name:"claude",description:"Native Claude accounts and settings",async execute(F){let J=await q.open(H(F.sessionID));await D.events.emit("opened",{sessionId:F.sessionID,payload:J})}}))}catch(j){throw await D.dispose(),j}let Y=(async()=>{try{for await(let j of f.event.subscribe({signal:K.signal}))if(j.type==="session.deleted")X.forgetSession(j.data.sessionID)}catch{}})(),S=!1;return{async dispose(){if(S)return;S=!0,K.abort(),await Promise.all([D.dispose(),Q.dispose(),Y])}}}
2
+ export{A as s,L as t};
@@ -1,2 +1,2 @@
1
- var e=["claude-account","claude-cache","claude-cachekeep","claude-prime","claude-start","claude-quota","claude-dump","claude-fast","claude-routing","claude-killswitch","claude-logging"];
2
- export{e as pd};
1
+ var t=["claude-account","claude-cache","claude-cachekeep","claude-prime","claude-start","claude-quota","claude-dump","claude-fast","claude-routing","claude-killswitch","claude-logging"];
2
+ export{t as p};
@@ -1,2 +1,2 @@
1
1
  import{mkdir as l,readdir as u,readFile as c,rename as p,unlink as m,writeFile as d}from"node:fs/promises";import{join as a}from"node:path";function f(t){try{return process.kill(t,0),!0}catch(r){return r.code==="EPERM"}}async function b(t,r){await l(t,{recursive:!0});let s={...r,startedAt:Date.now()},e=a(t,`port-${r.pid}.json`),i=`${e}.${process.pid}.tmp`;return await d(i,JSON.stringify(s),{encoding:"utf8",mode:384}),await p(i,e),e}async function h(t,r){let s;try{s=await u(t)}catch{return null}let e=[];for(let n of s){if(!n.startsWith("port-")||!n.endsWith(".json"))continue;try{let o=JSON.parse(await c(a(t,n),"utf8"));if(Number.isFinite(o.port))if(f(o.pid))e.push(o);else m(a(t,n)).catch(()=>{})}catch{}}if(e.length===0)return null;let i=r&&r>=1?e.filter((n)=>n.pid===r):[];return(i.length>0?i:e).sort((n,o)=>o.startedAt-n.startedAt)[0]??null}
2
- export{b as nd,h as od};
2
+ export{b as pe,h as qe};
@@ -1,2 +1,2 @@
1
1
  import{createRequire as q}from"node:module";var j=Object.create;var{getPrototypeOf:k,defineProperty:i,getOwnPropertyNames:l}=Object;var m=Object.prototype.hasOwnProperty;function n(a){return this[a]}var o,p,r=(a,b,d)=>{var f=a!=null&&typeof a==="object";if(f){var g=b?o??=new WeakMap:p??=new WeakMap,h=g.get(a);if(h)return h}d=a!=null?j(k(a)):{};let c=b||!a||!a.__esModule?i(d,"default",{value:a,enumerable:!0}):d;for(let e of l(a))if(!m.call(c,e))i(c,e,{get:n.bind(a,e),enumerable:!0});if(f)g.set(a,c);return c};var s=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var u=q(import.meta.url);
2
- export{r as sd,s as td,u as ud};
2
+ export{r as re,s as se,u as te};