@ornexus/neocortex 3.9.16 → 3.9.21

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/install.ps1 CHANGED
@@ -15,7 +15,7 @@ param(
15
15
  [string]$ServerUrl = "https://api.neocortex.ornexus.com"
16
16
  )
17
17
 
18
- $VERSION = "3.9.16"
18
+ $VERSION = "3.9.21"
19
19
 
20
20
  # =============================================================================
21
21
  # CONFIGURACOES
package/install.sh CHANGED
@@ -4,7 +4,7 @@
4
4
  # Development Orchestrator
5
5
 
6
6
  # Versao do instalador
7
- VERSION="3.9.16"
7
+ VERSION="3.9.21"
8
8
 
9
9
  # Flags
10
10
  MIGRATION_DETECTED=false
@@ -711,6 +711,7 @@ install_agent() {
711
711
 
712
712
  # Dynamic description: patch tier from existing config (if activated)
713
713
  patch_description_tier "$DEST_DIR/neocortex.md"
714
+ patch_description_tier "$DEST_DIR/neocortex.agent.yaml"
714
715
 
715
716
  # Cleanup: remover workflow.md de instalacoes anteriores (v3.8 -> v3.9)
716
717
  if [ -f "$DEST_DIR/workflow.md" ]; then
@@ -1187,6 +1188,7 @@ create_project_dirs() {
1187
1188
 
1188
1189
  # Dynamic description: patch tier
1189
1190
  patch_description_tier "$project_dir/.claude/agents/neocortex/neocortex.md"
1191
+ patch_description_tier "$project_dir/.claude/agents/neocortex/neocortex.agent.yaml"
1190
1192
 
1191
1193
  # Thin-client: cleanup legacy IP from previous installs
1192
1194
  auto_cleanup_legacy_project "$project_dir"
@@ -1271,6 +1273,49 @@ show_migration_info() {
1271
1273
  fi
1272
1274
  }
1273
1275
 
1276
+ # =============================================================================
1277
+ # TIER-BASED PLATFORM GATING (Story 57.4)
1278
+ # =============================================================================
1279
+
1280
+ # Read tier from config.json (defaults to "free" if not found)
1281
+ get_tier_from_config() {
1282
+ local config_file="$HOME/.neocortex/config.json"
1283
+ if [ -f "$config_file" ]; then
1284
+ local tier
1285
+ tier=$(cat "$config_file" 2>/dev/null | grep -o '"tier"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*"\([^"]*\)"$/\1/')
1286
+ [ -n "$tier" ] && echo "$tier" || echo "free"
1287
+ else
1288
+ echo "free"
1289
+ fi
1290
+ }
1291
+
1292
+ # Check if a platform is allowed for the current tier
1293
+ # Returns 0 if allowed, 1 if blocked
1294
+ check_platform_tier() {
1295
+ local platform=$1
1296
+ local tier=$2
1297
+ case "$platform" in
1298
+ claude-code) return 0 ;; # Always allowed
1299
+ cursor|gemini-cli|codex)
1300
+ if [ "$tier" = "free" ]; then
1301
+ warn "$platform requer plano Pro. Plataforma disponivel: Claude Code."
1302
+ info "Upgrade: ${CYAN}https://neocortex.dev/pricing${NC}"
1303
+ return 1
1304
+ fi
1305
+ return 0
1306
+ ;;
1307
+ vscode|antigravity)
1308
+ if [ "$tier" != "enterprise" ]; then
1309
+ warn "$platform requer plano Enterprise."
1310
+ info "Upgrade: ${CYAN}https://neocortex.dev/pricing${NC}"
1311
+ return 1
1312
+ fi
1313
+ return 0
1314
+ ;;
1315
+ esac
1316
+ return 0 # Unknown platforms pass through
1317
+ }
1318
+
1274
1319
  # =============================================================================
1275
1320
  # MAIN
1276
1321
  # =============================================================================
@@ -1289,8 +1334,14 @@ main() {
1289
1334
 
1290
1335
  debug "Targets: $SELECTED_TARGETS"
1291
1336
 
1292
- # Validate targets
1337
+ # Read user tier for platform gating
1338
+ local user_tier
1339
+ user_tier=$(get_tier_from_config)
1340
+ debug "User tier: $user_tier"
1341
+
1342
+ # Validate targets (name check + tier check)
1293
1343
  local invalid_targets=""
1344
+ local blocked_targets=""
1294
1345
  for target in $(echo "$SELECTED_TARGETS" | tr ',' ' '); do
1295
1346
  echo "$VALID_TARGETS" | grep -wq "$target" || invalid_targets="$invalid_targets $target"
1296
1347
  done
@@ -1301,6 +1352,32 @@ main() {
1301
1352
  exit 1
1302
1353
  fi
1303
1354
 
1355
+ # Filter out tier-blocked platforms
1356
+ local allowed_targets=""
1357
+ for target in $(echo "$SELECTED_TARGETS" | tr ',' ' '); do
1358
+ if check_platform_tier "$target" "$user_tier"; then
1359
+ if [ -z "$allowed_targets" ]; then
1360
+ allowed_targets="$target"
1361
+ else
1362
+ allowed_targets="$allowed_targets,$target"
1363
+ fi
1364
+ else
1365
+ blocked_targets="$blocked_targets $target"
1366
+ fi
1367
+ done
1368
+
1369
+ if [ -n "$blocked_targets" ]; then
1370
+ info "Plataforma(s) bloqueada(s) por tier:$blocked_targets"
1371
+ fi
1372
+
1373
+ # Use only allowed targets
1374
+ if [ -n "$allowed_targets" ]; then
1375
+ SELECTED_TARGETS="$allowed_targets"
1376
+ else
1377
+ SELECTED_TARGETS="claude-code"
1378
+ info "Usando plataforma padrao: claude-code"
1379
+ fi
1380
+
1304
1381
  # Count targets for step total
1305
1382
  local target_count=$(echo "$SELECTED_TARGETS" | tr ',' ' ' | wc -w | tr -d ' ')
1306
1383
  if echo "$SELECTED_TARGETS" | grep -q "claude-code"; then
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ornexus/neocortex",
3
- "version": "3.9.16",
4
- "description": "Neocortex v3.9.16 - Orquestrador de Desenvolvimento de Epics & Stories para Claude Code",
3
+ "version": "3.9.21",
4
+ "description": "Neocortex v3.9.21 - Orquestrador de Desenvolvimento de Epics & Stories para Claude Code",
5
5
  "keywords": [
6
6
  "claude",
7
7
  "claude-code",
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiCH,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,0BAA0B;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzD;AAsBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAiFvE;AA6JD;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAiF1E;AAID;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDtE"}
1
+ {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkCH,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,0BAA0B;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzD;AAuBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAiFvE;AA0KD;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAuG1E;AAgBD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDtE"}
@@ -25,6 +25,7 @@ import { homedir } from 'node:os';
25
25
  import { LicenseClient } from '../license/license-client.js';
26
26
  import { EncryptedCache } from '../cache/encrypted-cache.js';
27
27
  import { NoOpCache } from '../types/index.js';
28
+ import { TierAwareClient } from '../tier/tier-aware-client.js';
28
29
  // ── Constants ─────────────────────────────────────────────────────────────
29
30
  const DEFAULT_SERVER_URL = 'https://api.neocortex.ornexus.com';
30
31
  const CONFIG_DIR = join(homedir(), '.neocortex');
@@ -33,6 +34,7 @@ const CACHE_DIR = join(CONFIG_DIR, 'cache');
33
34
  const MENU_CACHE_FILE = join(CACHE_DIR, 'menu-cache.json');
34
35
  const MENU_CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
35
36
  const DEFAULT_TIMEOUT_MS = 30_000;
37
+ const CLIENT_VERSION = '0.1.0';
36
38
  // ── State Snapshot Collection ──────────────────────────────────────────────
37
39
  /**
38
40
  * Read state.json and construct a sanitized snapshot for the server.
@@ -120,6 +122,10 @@ function getMenuCache() {
120
122
  return null;
121
123
  const raw = readFileSync(MENU_CACHE_FILE, 'utf-8');
122
124
  const cache = JSON.parse(raw);
125
+ // Invalidate on version mismatch (stale cache from previous install)
126
+ if (cache.version !== CLIENT_VERSION) {
127
+ return null;
128
+ }
123
129
  // Check TTL
124
130
  if (Date.now() - cache.cachedAt > MENU_CACHE_TTL_MS) {
125
131
  return null; // Expired
@@ -137,6 +143,7 @@ function setMenuCache(instructions, metadata) {
137
143
  instructions,
138
144
  metadata,
139
145
  cachedAt: Date.now(),
146
+ version: CLIENT_VERSION,
140
147
  };
141
148
  writeFileSync(MENU_CACHE_FILE, JSON.stringify(cache), 'utf-8');
142
149
  }
@@ -177,7 +184,11 @@ async function getAuthTokenAndClient(serverUrl, licenseKey) {
177
184
  const token = await client.getToken();
178
185
  if (!token)
179
186
  return null;
180
- return { token, client };
187
+ const tierClient = new TierAwareClient({
188
+ cacheProvider,
189
+ licenseClient: client,
190
+ });
191
+ return { token, client, tierClient };
181
192
  }
182
193
  catch {
183
194
  return null;
@@ -193,7 +204,7 @@ async function sendInvokeRequest(serverUrl, body, authToken) {
193
204
  headers: {
194
205
  'Content-Type': 'application/json',
195
206
  'Authorization': `Bearer ${authToken}`,
196
- 'X-Client-Version': '0.1.0',
207
+ 'X-Client-Version': CLIENT_VERSION,
197
208
  },
198
209
  body: JSON.stringify(body),
199
210
  signal: controller.signal,
@@ -245,7 +256,6 @@ async function sendInvokeRequest(serverUrl, body, authToken) {
245
256
  */
246
257
  export async function invoke(options) {
247
258
  const projectRoot = options.projectRoot ?? process.cwd();
248
- const format = options.format ?? 'plain';
249
259
  const platformTarget = options.platformTarget ?? 'claude-code';
250
260
  // 1. Determine server URL
251
261
  const config = loadConfig();
@@ -274,6 +284,24 @@ export async function invoke(options) {
274
284
  exitCode: 2, // Not configured
275
285
  };
276
286
  }
287
+ // 4a. Pre-flight tier check (optimistic -- if it fails, still proceed)
288
+ const trigger = extractTrigger(trimmedArgs);
289
+ if (trigger) {
290
+ try {
291
+ const preFlightResult = await auth.tierClient.preFlightCheck(trigger);
292
+ if (!preFlightResult.allowed) {
293
+ process.stderr.write(`[neocortex] ${preFlightResult.message}\n`);
294
+ return {
295
+ success: false,
296
+ error: preFlightResult.message ?? 'Trigger not available on your plan',
297
+ exitCode: 1,
298
+ };
299
+ }
300
+ }
301
+ catch {
302
+ // Fail-open: pre-flight errors should not block invocation
303
+ }
304
+ }
277
305
  const requestBody = {
278
306
  args: trimmedArgs,
279
307
  projectRoot: projectRoot.replace(homedir(), '~'), // Sanitize absolute path
@@ -307,6 +335,10 @@ export async function invoke(options) {
307
335
  if (!trimmedArgs && result.data.metadata?.mode === 'menu') {
308
336
  setMenuCache(result.data.instructions, result.data.metadata);
309
337
  }
338
+ // 6a. Update cached quota from server response metadata (Epic 60)
339
+ if (result.data.metadata) {
340
+ auth.tierClient.updateQuotaFromResponse(result.data.metadata).catch(() => { });
341
+ }
310
342
  return {
311
343
  success: true,
312
344
  instructions: result.data.instructions,
@@ -314,6 +346,16 @@ export async function invoke(options) {
314
346
  exitCode: 0,
315
347
  };
316
348
  }
349
+ // ── Trigger Extraction ──────────────────────────────────────────────────
350
+ /**
351
+ * Extract trigger name from args string.
352
+ * Triggers start with '*' (e.g., "*yolo", "*implement", "*status").
353
+ * Returns the trigger name without the '*' prefix, or null if no trigger.
354
+ */
355
+ function extractTrigger(args) {
356
+ const match = args.match(/^\*([a-zA-Z][\w-]*)/);
357
+ return match ? match[1] : null;
358
+ }
317
359
  // ── CLI Entry Point ───────────────────────────────────────────────────────
318
360
  /**
319
361
  * CLI handler for the invoke command.
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"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"}
@@ -52,4 +52,5 @@ export { ClientCircuitBreaker, type CircuitState, type CircuitBreakerConfig, typ
52
52
  export { OfflineTelemetryQueue, type TelemetryEvent, type QueueConfig, type QueueStats, type FlushResult, } from './telemetry/index.js';
53
53
  export { getCacheStatus, formatCacheStatus, type CacheStatusInfo, type CacheStatusOptions, } from './commands/cache-status.js';
54
54
  export { invoke, invokeCliHandler, collectStateSnapshot, type InvokeOptions, type InvokeResult, } from './commands/invoke.js';
55
+ export { TierAwareClient, type TierAwareClientOptions, type PreFlightResult, type QuotaSnapshot, } from './tier/index.js';
55
56
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,YAAY,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI3D,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrF,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAI9E,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI9E,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,KAAK,aAAa,EAClB,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,YAAY,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI3D,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrF,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAI9E,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI9E,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,KAAK,aAAa,EAClB,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC"}
@@ -34,4 +34,6 @@ export { OfflineTelemetryQueue, } from './telemetry/index.js';
34
34
  export { getCacheStatus, formatCacheStatus, } from './commands/cache-status.js';
35
35
  // ── Invoke Command (Story 45.2) ────────────────────────────────────────
36
36
  export { invoke, invokeCliHandler, collectStateSnapshot, } from './commands/invoke.js';
37
+ // ── Tier Awareness (Epic 60) ─────────────────────────────────────────
38
+ export { TierAwareClient, } from './tier/index.js';
37
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8CH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM3D,2EAA2E;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErF,0EAA0E;AAE1E,OAAO,EAAE,cAAc,EAA8B,MAAM,kBAAkB,CAAC;AAE9E,2EAA2E;AAE3E,OAAO,EACL,cAAc,EACd,cAAc,GAEf,MAAM,gCAAgC,CAAC;AAExC,2EAA2E;AAE3E,OAAO,EACL,cAAc,GAEf,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,gCAAgC,CAAC;AAExC,4EAA4E;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,4EAA4E;AAE5E,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAgB9E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,4EAA4E;AAE5E,OAAO,EACL,oBAAoB,EAIpB,kBAAkB,EAClB,gBAAgB,EAGhB,kBAAkB,EAElB,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAE/B,2EAA2E;AAE3E,OAAO,EACL,qBAAqB,GAKtB,MAAM,sBAAsB,CAAC;AAE9B,2EAA2E;AAE3E,OAAO,EACL,cAAc,EACd,iBAAiB,GAGlB,MAAM,4BAA4B,CAAC;AAEpC,0EAA0E;AAE1E,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8CH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM3D,2EAA2E;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErF,0EAA0E;AAE1E,OAAO,EAAE,cAAc,EAA8B,MAAM,kBAAkB,CAAC;AAE9E,2EAA2E;AAE3E,OAAO,EACL,cAAc,EACd,cAAc,GAEf,MAAM,gCAAgC,CAAC;AAExC,2EAA2E;AAE3E,OAAO,EACL,cAAc,GAEf,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,gCAAgC,CAAC;AAExC,4EAA4E;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,4EAA4E;AAE5E,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAgB9E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,4EAA4E;AAE5E,OAAO,EACL,oBAAoB,EAIpB,kBAAkB,EAClB,gBAAgB,EAGhB,kBAAkB,EAElB,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAE/B,2EAA2E;AAE3E,OAAO,EACL,qBAAqB,GAKtB,MAAM,sBAAsB,CAAC;AAE9B,2EAA2E;AAE3E,OAAO,EACL,cAAc,EACd,iBAAiB,GAGlB,MAAM,4BAA4B,CAAC;AAEpC,0EAA0E;AAE1E,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAE9B,wEAAwE;AAExE,OAAO,EACL,eAAe,GAIhB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license FSL-1.1
3
+ * Copyright (c) 2026 OrNexus AI
4
+ */
5
+ export { TierAwareClient, type TierAwareClientOptions, type PreFlightResult, type QuotaSnapshot, type SubscriptionTier, } from './tier-aware-client.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tier/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license FSL-1.1
3
+ * Copyright (c) 2026 OrNexus AI
4
+ */
5
+ export { TierAwareClient, } from './tier-aware-client.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tier/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,GAKhB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * @license FSL-1.1
3
+ * Copyright (c) 2026 OrNexus AI
4
+ *
5
+ * This file is part of Neocortex CLI, licensed under the
6
+ * Functional Source License, Version 1.1 (FSL-1.1).
7
+ *
8
+ * Change Date: February 20, 2029
9
+ * Change License: MIT
10
+ *
11
+ * See the LICENSE file in the project root for full license text.
12
+ */
13
+ /**
14
+ * @neocortex/client - TierAwareClient
15
+ *
16
+ * Client-side tier awareness: JWT tier extraction, cached tier,
17
+ * pre-flight trigger checks, quota caching from response metadata,
18
+ * and offline enforcement via cached quota data.
19
+ *
20
+ * Follows the same "NEVER throws" pattern as LicenseClient.
21
+ * Fail-open: if anything fails, default to 'free' tier / allow operation.
22
+ * No stdout output (preserve pipe compatibility) -- stderr only.
23
+ *
24
+ * Epic 60
25
+ */
26
+ import type { CacheProvider } from '../types/index.js';
27
+ import type { LicenseClient } from '../license/license-client.js';
28
+ /** Subscription tier (inlined to avoid import path issues) */
29
+ export type SubscriptionTier = 'free' | 'pro' | 'enterprise';
30
+ /** Result of a pre-flight trigger check */
31
+ export interface PreFlightResult {
32
+ readonly allowed: boolean;
33
+ readonly message?: string;
34
+ }
35
+ /** Cached quota data from server response metadata */
36
+ export interface QuotaSnapshot {
37
+ readonly stepsRemaining: number;
38
+ readonly invocationsRemaining: number;
39
+ readonly stepsLimit: number;
40
+ readonly invocationsLimit: number;
41
+ readonly cachedAt: number;
42
+ }
43
+ export interface TierAwareClientOptions {
44
+ readonly cacheProvider: CacheProvider;
45
+ readonly licenseClient: LicenseClient;
46
+ }
47
+ export declare class TierAwareClient {
48
+ private readonly cache;
49
+ private readonly licenseClient;
50
+ private cachedTier;
51
+ constructor(options: TierAwareClientOptions);
52
+ /**
53
+ * Get the current tier. Checks in-memory, then cache, then JWT token.
54
+ * NEVER throws - returns 'free' on failure (fail-open).
55
+ */
56
+ getCachedTier(): Promise<SubscriptionTier>;
57
+ /**
58
+ * Update cached tier (called when server returns tier info).
59
+ */
60
+ updateTier(tier: SubscriptionTier): Promise<void>;
61
+ /**
62
+ * Check if a trigger is allowed for the current tier WITHOUT calling the server.
63
+ * Returns immediately (in-memory lookup).
64
+ * NEVER throws - returns { allowed: true } on failure (fail-open).
65
+ */
66
+ preFlightCheck(trigger: string, tier?: SubscriptionTier): Promise<PreFlightResult>;
67
+ /**
68
+ * Update cached quota from server response metadata.
69
+ * Called after each successful invoke.
70
+ */
71
+ updateQuotaFromResponse(metadata: Record<string, unknown>): Promise<void>;
72
+ /**
73
+ * Get cached quota for today.
74
+ * NEVER throws - returns null if cache empty or expired.
75
+ */
76
+ getCachedQuota(): Promise<QuotaSnapshot | null>;
77
+ /**
78
+ * Check quota in offline mode using cached data.
79
+ * NEVER throws - returns { allowed: true } on failure (fail-open).
80
+ *
81
+ * @param isOffline - Whether the circuit breaker is in L2+ degradation
82
+ */
83
+ offlineQuotaCheck(isOffline?: boolean): Promise<PreFlightResult>;
84
+ /**
85
+ * Extract tier from JWT payload via base64url decode.
86
+ * No cryptographic verification - client-side is UX only.
87
+ */
88
+ private extractTierFromJwt;
89
+ private buildUpgradeMessage;
90
+ private getQuotaCacheKey;
91
+ }
92
+ //# sourceMappingURL=tier-aware-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier-aware-client.d.ts","sourceRoot":"","sources":["../../src/tier/tier-aware-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAIlE,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;AAE7D,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAoDD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAID,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,UAAU,CAAiC;gBAEvC,OAAO,EAAE,sBAAsB;IAO3C;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA4BhD;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAmBxF;;;OAGG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/E;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAmBrD;;;;;OAKG;IACG,iBAAiB,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAkC7E;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;CAKzB"}
@@ -0,0 +1,244 @@
1
+ /**
2
+ * @license FSL-1.1
3
+ * Copyright (c) 2026 OrNexus AI
4
+ *
5
+ * This file is part of Neocortex CLI, licensed under the
6
+ * Functional Source License, Version 1.1 (FSL-1.1).
7
+ *
8
+ * Change Date: February 20, 2029
9
+ * Change License: MIT
10
+ *
11
+ * See the LICENSE file in the project root for full license text.
12
+ */
13
+ // ── Constants ────────────────────────────────────────────────────────────
14
+ const TIER_CACHE_KEY = 'neocortex:tier';
15
+ const QUOTA_CACHE_KEY_PREFIX = 'neocortex:quota:';
16
+ const QUOTA_TTL_MS = 5 * 60 * 1000; // 5 minutes
17
+ const TIER_CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
18
+ const VALID_TIERS = new Set(['free', 'pro', 'enterprise']);
19
+ const DEFAULT_TIER = 'free';
20
+ // ── Trigger Gates (inlined from shared tier-config to avoid import issues) ─
21
+ const TRIGGER_GATES = {
22
+ 'status': 'free',
23
+ 'init': 'free',
24
+ 'create-epic': 'free',
25
+ 'idea-diagnose': 'free',
26
+ 'idea-research': 'free',
27
+ 'generate-epic': 'free',
28
+ 'exec': 'pro',
29
+ 'yolo': 'pro',
30
+ 'epic': 'pro',
31
+ 'setup-branch': 'free',
32
+ 'diagnose': 'free',
33
+ 'research': 'free',
34
+ 'write-spec': 'free',
35
+ 'create-tasks': 'free',
36
+ 'implement': 'free',
37
+ 'update-memory': 'free',
38
+ 'commit': 'free',
39
+ 'sync': 'free',
40
+ 'create-pr': 'free',
41
+ 'review': 'pro',
42
+ 'merge': 'free',
43
+ 'fix-blocked': 'free',
44
+ 'finalize-epic': 'free',
45
+ 'cleanup': 'free',
46
+ 'resolve-conflicts': 'free',
47
+ 'audit': 'free',
48
+ 'menu': 'free',
49
+ 'plans': 'free',
50
+ };
51
+ const TIER_HIERARCHY = {
52
+ free: 0,
53
+ pro: 1,
54
+ enterprise: 2,
55
+ };
56
+ // ── TierAwareClient ──────────────────────────────────────────────────────
57
+ export class TierAwareClient {
58
+ cache;
59
+ licenseClient;
60
+ cachedTier = null;
61
+ constructor(options) {
62
+ this.cache = options.cacheProvider;
63
+ this.licenseClient = options.licenseClient;
64
+ }
65
+ // ── Story 60.1: Tier Extraction from JWT + Cache ────────────────────
66
+ /**
67
+ * Get the current tier. Checks in-memory, then cache, then JWT token.
68
+ * NEVER throws - returns 'free' on failure (fail-open).
69
+ */
70
+ async getCachedTier() {
71
+ try {
72
+ // 1. In-memory
73
+ if (this.cachedTier)
74
+ return this.cachedTier;
75
+ // 2. EncryptedCache
76
+ const cached = await this.cache.get(TIER_CACHE_KEY);
77
+ if (cached && VALID_TIERS.has(cached)) {
78
+ this.cachedTier = cached;
79
+ return this.cachedTier;
80
+ }
81
+ // 3. Extract from JWT
82
+ const token = await this.licenseClient.getToken();
83
+ if (token) {
84
+ const tier = this.extractTierFromJwt(token);
85
+ this.cachedTier = tier;
86
+ // Persist to cache (fire-and-forget)
87
+ this.cache.set(TIER_CACHE_KEY, tier, TIER_CACHE_TTL_MS).catch(() => { });
88
+ return tier;
89
+ }
90
+ return DEFAULT_TIER;
91
+ }
92
+ catch {
93
+ return DEFAULT_TIER;
94
+ }
95
+ }
96
+ /**
97
+ * Update cached tier (called when server returns tier info).
98
+ */
99
+ async updateTier(tier) {
100
+ try {
101
+ if (!VALID_TIERS.has(tier))
102
+ return;
103
+ this.cachedTier = tier;
104
+ await this.cache.set(TIER_CACHE_KEY, tier, TIER_CACHE_TTL_MS).catch(() => { });
105
+ }
106
+ catch {
107
+ // Non-critical
108
+ }
109
+ }
110
+ // ── Story 60.2: Pre-flight Trigger Check ────────────────────────────
111
+ /**
112
+ * Check if a trigger is allowed for the current tier WITHOUT calling the server.
113
+ * Returns immediately (in-memory lookup).
114
+ * NEVER throws - returns { allowed: true } on failure (fail-open).
115
+ */
116
+ async preFlightCheck(trigger, tier) {
117
+ try {
118
+ const userTier = tier ?? await this.getCachedTier();
119
+ const requiredTier = TRIGGER_GATES[trigger] ?? 'free';
120
+ if (TIER_HIERARCHY[userTier] >= TIER_HIERARCHY[requiredTier]) {
121
+ return { allowed: true };
122
+ }
123
+ const message = this.buildUpgradeMessage(trigger, userTier, requiredTier);
124
+ return { allowed: false, message };
125
+ }
126
+ catch {
127
+ // Fail-open: allow on error
128
+ return { allowed: true };
129
+ }
130
+ }
131
+ // ── Story 60.3: Quota Cache from Response ───────────────────────────
132
+ /**
133
+ * Update cached quota from server response metadata.
134
+ * Called after each successful invoke.
135
+ */
136
+ async updateQuotaFromResponse(metadata) {
137
+ try {
138
+ const quotaRemaining = metadata.quotaRemaining;
139
+ if (!quotaRemaining)
140
+ return;
141
+ const snapshot = {
142
+ stepsRemaining: quotaRemaining.stepsRemaining ?? 0,
143
+ invocationsRemaining: quotaRemaining.invocationsRemaining ?? 0,
144
+ stepsLimit: quotaRemaining.stepsLimit ?? 0,
145
+ invocationsLimit: quotaRemaining.invocationsLimit ?? 0,
146
+ cachedAt: Date.now(),
147
+ };
148
+ const dateKey = this.getQuotaCacheKey();
149
+ await this.cache.set(dateKey, JSON.stringify(snapshot), QUOTA_TTL_MS).catch(() => { });
150
+ }
151
+ catch {
152
+ // Non-critical
153
+ }
154
+ }
155
+ /**
156
+ * Get cached quota for today.
157
+ * NEVER throws - returns null if cache empty or expired.
158
+ */
159
+ async getCachedQuota() {
160
+ try {
161
+ const dateKey = this.getQuotaCacheKey();
162
+ const raw = await this.cache.get(dateKey);
163
+ if (!raw)
164
+ return null;
165
+ const snapshot = JSON.parse(raw);
166
+ // Validate TTL (EncryptedCache already handles this, but double-check)
167
+ if (Date.now() - snapshot.cachedAt > QUOTA_TTL_MS)
168
+ return null;
169
+ return snapshot;
170
+ }
171
+ catch {
172
+ return null;
173
+ }
174
+ }
175
+ // ── Story 60.4: Offline Enforcement ─────────────────────────────────
176
+ /**
177
+ * Check quota in offline mode using cached data.
178
+ * NEVER throws - returns { allowed: true } on failure (fail-open).
179
+ *
180
+ * @param isOffline - Whether the circuit breaker is in L2+ degradation
181
+ */
182
+ async offlineQuotaCheck(isOffline = false) {
183
+ try {
184
+ if (!isOffline)
185
+ return { allowed: true };
186
+ const quota = await this.getCachedQuota();
187
+ // Fail-open: if no cached quota, allow
188
+ if (!quota)
189
+ return { allowed: true };
190
+ // Check steps
191
+ if (quota.stepsRemaining <= 0 && quota.stepsLimit > 0) {
192
+ return {
193
+ allowed: false,
194
+ message: `Daily step limit reached (${quota.stepsLimit}/${quota.stepsLimit}). Resets at 00:00 UTC.`,
195
+ };
196
+ }
197
+ // Check invocations
198
+ if (quota.invocationsRemaining <= 0 && quota.invocationsLimit > 0) {
199
+ return {
200
+ allowed: false,
201
+ message: `Daily invocation limit reached (${quota.invocationsLimit}/${quota.invocationsLimit}). Resets at 00:00 UTC.`,
202
+ };
203
+ }
204
+ return { allowed: true };
205
+ }
206
+ catch {
207
+ // Fail-open
208
+ return { allowed: true };
209
+ }
210
+ }
211
+ // ── Private Helpers ─────────────────────────────────────────────────
212
+ /**
213
+ * Extract tier from JWT payload via base64url decode.
214
+ * No cryptographic verification - client-side is UX only.
215
+ */
216
+ extractTierFromJwt(token) {
217
+ try {
218
+ const parts = token.split('.');
219
+ if (parts.length !== 3)
220
+ return DEFAULT_TIER;
221
+ // Decode base64url payload
222
+ const payload = parts[1];
223
+ const decoded = Buffer.from(payload, 'base64url').toString('utf8');
224
+ const claims = JSON.parse(decoded);
225
+ const tier = claims.tier;
226
+ if (tier && VALID_TIERS.has(tier)) {
227
+ return tier;
228
+ }
229
+ return DEFAULT_TIER;
230
+ }
231
+ catch {
232
+ return DEFAULT_TIER;
233
+ }
234
+ }
235
+ buildUpgradeMessage(trigger, currentTier, requiredTier) {
236
+ return `The *${trigger} command requires ${requiredTier.toUpperCase()} plan. Your current plan: ${currentTier.toUpperCase()}. Upgrade: neocortex.dev/pricing`;
237
+ }
238
+ getQuotaCacheKey() {
239
+ const now = new Date();
240
+ const dateStr = now.toISOString().slice(0, 10); // YYYY-MM-DD UTC
241
+ return `${QUOTA_CACHE_KEY_PREFIX}${dateStr}`;
242
+ }
243
+ }
244
+ //# sourceMappingURL=tier-aware-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier-aware-client.js","sourceRoot":"","sources":["../../src/tier/tier-aware-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- # 🧠 Neocortex v3.9.16 (Free) | OrNexus Team
1
+ # 🧠 Neocortex v3.9.21 (Free) | OrNexus Team
2
2
 
3
3
  This project uses Neocortex, a Development Orchestrator (Free).
4
4
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex
3
- description: "🧠 Neocortex v3.9.16 (Free) | OrNexus Team"
3
+ description: "🧠 Neocortex v3.9.21 (Free) | OrNexus Team"
4
4
  ---
5
5
 
6
6
  # Neocortex - Thin Client Interface
@@ -4,7 +4,7 @@ agent:
4
4
  name: 'Neocortex'
5
5
  title: 'Development Orchestrator (Free)'
6
6
  icon: '>'
7
- version: '3.9.16'
7
+ version: '3.9.21'
8
8
  architecture: 'thin-client'
9
9
  module: stand-alone
10
10
  hasSidecar: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex
3
- description: "🧠 Neocortex v3.9.16 (Free) | OrNexus Team"
3
+ description: "🧠 Neocortex v3.9.21 (Free) | OrNexus Team"
4
4
  model: opus
5
5
  color: blue
6
6
  tools:
@@ -56,7 +56,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
56
56
  ┌────────────────────────────────────────────────────────────┐
57
57
  │ │
58
58
  │ ####### N E O C O R T E X │
59
- │ ### ######## v3.9.16
59
+ │ ### ######## v3.9.21
60
60
  │ ######### ##### │
61
61
  │ ## ############## Development Orchestrator │
62
62
  │ ## ### ###### ## OrNexus Team (Free) │
@@ -1,4 +1,4 @@
1
- # 🧠 Neocortex v3.9.16 (Free) | OrNexus Team
1
+ # 🧠 Neocortex v3.9.21 (Free) | OrNexus Team
2
2
 
3
3
  You are a Development Orchestrator (Free). All orchestration logic is delivered by the remote Neocortex server.
4
4
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex
3
- description: "🧠 Neocortex v3.9.16 (Free) | OrNexus Team"
3
+ description: "🧠 Neocortex v3.9.21 (Free) | OrNexus Team"
4
4
  model: fast
5
5
  readonly: false
6
6
  is_background: false
@@ -18,7 +18,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
18
18
  ┌────────────────────────────────────────────────────────────┐
19
19
  │ │
20
20
  │ ####### N E O C O R T E X │
21
- │ ### ######## v3.9.16
21
+ │ ### ######## v3.9.21
22
22
  │ ######### ##### │
23
23
  │ ## ############## Development Orchestrator │
24
24
  │ ## ### ###### ## OrNexus Team (Free) │
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex
3
- description: "🧠 Neocortex v3.9.16 (Free) | OrNexus Team"
3
+ description: "🧠 Neocortex v3.9.21 (Free) | OrNexus Team"
4
4
  kind: local
5
5
  tools:
6
6
  - read_file
@@ -25,7 +25,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
25
25
  ┌────────────────────────────────────────────────────────────┐
26
26
  │ │
27
27
  │ ####### N E O C O R T E X │
28
- │ ### ######## v3.9.16
28
+ │ ### ######## v3.9.21
29
29
  │ ######### ##### │
30
30
  │ ## ############## Development Orchestrator │
31
31
  │ ## ### ###### ## OrNexus Team (Free) │
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "neocortex"
3
- description: "🧠 Neocortex v3.9.16 (Free) | OrNexus Team"
3
+ description: "🧠 Neocortex v3.9.21 (Free) | OrNexus Team"
4
4
  tools:
5
5
  - readFile
6
6
  - editFiles
@@ -26,7 +26,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
26
26
  ┌────────────────────────────────────────────────────────────┐
27
27
  │ │
28
28
  │ ####### N E O C O R T E X │
29
- │ ### ######## v3.9.16
29
+ │ ### ######## v3.9.21
30
30
  │ ######### ##### │
31
31
  │ ## ############## Development Orchestrator │
32
32
  │ ## ### ###### ## OrNexus Team (Free) │