@wrongstack/core 0.89.3 → 0.104.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-bridge-DbVe1dHT.d.ts → agent-bridge-mOxbpFcg.d.ts} +1 -1
- package/dist/{agent-subagent-runner-C6eqID1t.d.ts → agent-subagent-runner-DukQLUcS.d.ts} +5 -5
- package/dist/{brain-s9DyD_Vf.d.ts → brain-Dfv4Y82E.d.ts} +1 -1
- package/dist/{config-84VaZpH6.d.ts → config-BSU-6vah.d.ts} +1 -1
- package/dist/coordination/index.d.ts +9 -9
- package/dist/coordination/index.js +103 -0
- package/dist/coordination/index.js.map +1 -1
- package/dist/defaults/index.d.ts +18 -17
- package/dist/defaults/index.js +276 -12
- package/dist/defaults/index.js.map +1 -1
- package/dist/execution/index.d.ts +61 -365
- package/dist/execution/index.js +423 -8
- package/dist/execution/index.js.map +1 -1
- package/dist/extension/index.d.ts +4 -4
- package/dist/goal-preamble-CI8lxeY1.d.ts +378 -0
- package/dist/{goal-store-DvWLNu52.d.ts → goal-store-ht0VmR1A.d.ts} +63 -21
- package/dist/{index-CqrroYcU.d.ts → index-BWRN6wOb.d.ts} +5 -5
- package/dist/{index-D3Nax3YU.d.ts → index-DIKEcfgC.d.ts} +3 -3
- package/dist/index.d.ts +31 -29
- package/dist/index.js +530 -53
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/index.d.ts +4 -4
- package/dist/kernel/index.d.ts +6 -6
- package/dist/{mcp-servers-D3E5ixAR.d.ts → mcp-servers-CXCsANdY.d.ts} +1 -1
- package/dist/{multi-agent-coordinator-DHNrjPaA.d.ts → multi-agent-coordinator-51LvnXkD.d.ts} +1 -1
- package/dist/{null-fleet-bus-BzzciAc4.d.ts → null-fleet-bus-D09hMzFQ.d.ts} +5 -5
- package/dist/observability/index.d.ts +1 -1
- package/dist/{parallel-eternal-engine-CTpcrb9O.d.ts → parallel-eternal-engine-CUtmM_0V.d.ts} +24 -5
- package/dist/{path-resolver-B7hgMAVe.d.ts → path-resolver-DDJiMAtX.d.ts} +1 -1
- package/dist/{pipeline-C1Ad9OjI.d.ts → pipeline-BqiA_UMr.d.ts} +2 -2
- package/dist/{plan-templates-CNphsz0n.d.ts → plan-templates-BdDxl9cI.d.ts} +2 -2
- package/dist/{provider-runner-cqvlB_oS.d.ts → provider-runner-BUunikwY.d.ts} +1 -1
- package/dist/sdd/index.d.ts +11 -6
- package/dist/sdd/index.js +124 -5
- package/dist/sdd/index.js.map +1 -1
- package/dist/{session-event-bridge-IVzs2GpE.d.ts → session-event-bridge-BpJ5trO9.d.ts} +1 -1
- package/dist/{skill-BJxzIyyN.d.ts → skill-Bj6Ezqb8.d.ts} +1 -1
- package/dist/skills/index.d.ts +1 -1
- package/dist/spec-TBi3Jr6T.d.ts +78 -0
- package/dist/storage/index.d.ts +21 -9
- package/dist/storage/index.js +157 -14
- package/dist/storage/index.js.map +1 -1
- package/dist/task-format-vGOIftmK.d.ts +23 -0
- package/dist/task-graph-u1q9Jkyk.d.ts +84 -0
- package/dist/types/index.d.ts +15 -14
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.js +110 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/tech-stack/SKILL.md +177 -0
- package/dist/task-graph-DJBqO0EY.d.ts +0 -161
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as BridgeTransport, a as BridgeMessage, A as AgentBridge, b as AgentBridgeConfig } from './agent-subagent-runner-
|
|
1
|
+
import { B as BridgeTransport, a as BridgeMessage, A as AgentBridge, b as AgentBridgeConfig } from './agent-subagent-runner-DukQLUcS.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* In-memory pub/sub transport for agent-to-agent messaging.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { c as ToolCallPipelinePayload, d as ToolWrapper, E as ExtensionRegistry, S as SystemPromptContributor, e as ToolRegistry, P as ProviderRegistry, A as AgentPipelines, f as ToolExecutorLike, g as AgentInit, h as AgentInput, R as RunResult } from './index-
|
|
2
|
-
import { C as Container, R as ReadonlyPipeline, a as Renderer } from './pipeline-
|
|
3
|
-
import { E as EventBus,
|
|
1
|
+
import { c as ToolCallPipelinePayload, d as ToolWrapper, E as ExtensionRegistry, S as SystemPromptContributor, e as ToolRegistry, P as ProviderRegistry, A as AgentPipelines, f as ToolExecutorLike, g as AgentInit, h as AgentInput, R as RunResult } from './index-DIKEcfgC.js';
|
|
2
|
+
import { C as Container, R as ReadonlyPipeline, a as Renderer } from './pipeline-BqiA_UMr.js';
|
|
3
|
+
import { E as EventBus, c as EventName, L as Listener } from './brain-Dfv4Y82E.js';
|
|
4
4
|
import { R as RetryPolicy, E as ErrorHandler } from './retry-policy-BcmuT_V0.js';
|
|
5
5
|
import { L as Logger } from './logger-B63L5bTg.js';
|
|
6
6
|
import { T as Tracer } from './observability-D-HZN_mF.js';
|
|
7
7
|
import { P as PermissionPolicy } from './permission-BDv7z0mk.js';
|
|
8
8
|
import { U as Usage, C as Context, J as JSONSchema, R as Request, b as Response, g as ContentBlock, l as TextBlock, T as Tool, P as Provider, o as RunOptions } from './context-CNRYfhUv.js';
|
|
9
|
-
import { H as HookEvent, a as HookMatcher, I as InProcessHook,
|
|
9
|
+
import { H as HookEvent, a as HookMatcher, I as InProcessHook, d as Config } from './config-BSU-6vah.js';
|
|
10
10
|
import { W as WireFamily } from './models-registry-B6_KfS65.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -1053,4 +1053,4 @@ interface AgentRunnerOptions {
|
|
|
1053
1053
|
*/
|
|
1054
1054
|
declare function makeAgentSubagentRunner(opts: AgentRunnerOptions): SubagentRunner;
|
|
1055
1055
|
|
|
1056
|
-
export { type AgentBridge as A, type BridgeTransport as B, type CoordinatorStatus as C, type
|
|
1056
|
+
export { type AgentBridge as A, type BridgeTransport as B, type CoordinatorStatus as C, type DoneCondition as D, type PluginPipelines as E, FleetBus as F, type ToolRegistryView as G, type ProviderRegistryView as H, type MCPRegistryView as I, type SlashCommandRegistryView as J, type SessionWriterView as K, type MetricsSinkView as L, type MultiAgentCoordinator as M, type Plugin as N, type CoordinatorEvents as O, type PluginAPI as P, type PluginCapabilities as Q, type PluginDependency as R, type SubagentConfig as S, type TaskSpec as T, type SubagentContext as U, type SubagentError as V, type SubagentErrorKind as W, type SubagentRunContext as X, type SubagentRunOutcome as Y, type TaskDelegation as Z, type ProviderFactory as _, type BridgeMessage as a, type AgentBridgeConfig as b, type MultiAgentConfig as c, type SubagentRunner as d, type SpawnResult as e, type TaskResult as f, Agent as g, type AgentFactory as h, type AgentFactoryResult as i, type AgentRunnerOptions as j, BudgetExceededError as k, type BudgetKind as l, type BudgetLimits as m, type BudgetNegotiationMode as n, type BudgetThresholdDecision as o, type BudgetThresholdHandler as p, BudgetThresholdSignal as q, type BudgetUsage as r, type FleetEvent as s, type FleetHandler as t, type FleetUsage as u, FleetUsageAggregator as v, SubagentBudget as w, type SubagentUsageSnapshot as x, makeAgentSubagentRunner as y, type SlashCommand as z };
|
|
@@ -946,4 +946,4 @@ declare class DefaultBrainArbiter implements BrainArbiter {
|
|
|
946
946
|
}
|
|
947
947
|
declare function formatHumanPrompt(request: BrainDecisionRequest): string;
|
|
948
948
|
|
|
949
|
-
export { type
|
|
949
|
+
export { type BrainDecision as B, DefaultBrainArbiter as D, EventBus as E, HumanEscalatingBrainArbiter as H, type Listener as L, type MemoryScope as M, ObservableBrainArbiter as O, type ScoredEntry as S, type BrainDecisionRequest as a, type BrainArbiter as b, type EventName as c, type BrainDecisionOption as d, BrainDecisionQueue as e, type BrainDecisionSource as f, type BrainFallback as g, type BrainRisk as h, type DefaultBrainArbiterOptions as i, formatHumanPrompt as j, type MemoryEntry as k, type MemoryStore as l, type MemoryRelevanceContext as m, type EventLogger as n, type EventMap as o, MEMORY_TYPE_LABELS as p, type MemoryClearedPayload as q, type MemoryConsolidatedPayload as r, type MemoryForgottenPayload as s, type MemoryPriority as t, type MemoryRememberedPayload as u, type MemoryType as v, ScopedEventBus as w };
|
|
@@ -503,4 +503,4 @@ interface ConfigStore {
|
|
|
503
503
|
watch(cb: (next: Readonly<Config>, prev: Readonly<Config>) => void): () => void;
|
|
504
504
|
}
|
|
505
505
|
|
|
506
|
-
export { type AutonomyConfig as A, listContextWindowModes as B, type
|
|
506
|
+
export { type AutonomyConfig as A, listContextWindowModes as B, type ContextWindowAggressiveOn as C, DEFAULT_CONTEXT_WINDOW_MODE_ID as D, resolveContextWindowPolicy as E, type FeaturesConfig as F, type HookEvent as H, type InProcessHook as I, type LaunchConfig as L, type MCPServerConfig as M, type PluginConfig as P, type ShellHook as S, type ToolsConfig as T, type HookMatcher as a, type HookEntry as b, type ContextWindowPolicy as c, type Config as d, type ConfigStore as e, type ConfigLoader as f, type SyncConfig as g, type ModelMatrixEntry as h, type HookInput as i, type HookOutcome as j, CONTEXT_WINDOW_MODES as k, type ContextConfig as l, type ContextWindowConfigLike as m, type ContextWindowMode as n, type ContextWindowModeId as o, type ContextWindowThresholds as p, type CustomModelDefinition as q, type IndexingConfig as r, type LogConfig as s, type ProviderApiKey as t, type ProviderConfig as u, type SessionLoggingConfig as v, type SyncCategory as w, formatContextWindowModeList as x, getContextWindowMode as y, isContextWindowModeId as z };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { A as ACP_AGENTS, a as AGENTS_BY_PHASE, b as AGENT_CATALOG, c as ALL_AGENT_DEFINITIONS, d as ALL_FLEET_AGENTS, e as AUDIT_LOG_AGENT, f as AutoExtendCeiling, g as AutoExtendPolicy, B as BUG_HUNTER_AGENT, h as BugFinding, C as CollabBudgetConfig, i as CollabBudgetOverrides, j as CollabBudgetWarningPayload, k as CollabDebugReport, l as CollabSession, m as CollabSessionOptions, n as CreateDelegateToolOptions, o as CriticConcern, p as CriticEvaluation, D as DEFAULT_DIRECTOR_PREAMBLE, q as DEFAULT_SUBAGENT_BASELINE, r as DelegateHost, s as Director, t as DirectorAlert, u as DirectorAlertLevel, v as DirectorCancelCollabPayload, w as DirectorPromptParts, x as DirectorSessionFactory, y as DirectorSessionFactoryOptions, F as FLEET_ROSTER, z as FLEET_ROSTER_BUDGETS, E as FLEET_ROSTER_WITHACP, G as FleetCostCapError, H as FleetManager, I as FleetManagerOptions, J as FleetRosterBudget, K as FleetSpawnBudgetError, L as ICoordinator, M as IFleetManager, N as LargeAnswerStore, O as NULL_FLEET_BUS, R as REFACTOR_PLANNER_AGENT, P as RefactorPhase, Q as RefactorPlan, S as SECURITY_SCANNER_AGENT, T as SharedFileEntry, U as SharedFileSnapshot, V as SubagentPromptParts, W as applyRosterBudget, X as attachAutoExtend, Y as composeDirectorPrompt, Z as composeSubagentPrompt, _ as createDelegateTool, $ as getAgentDefinition, a0 as makeAskResultTool, a1 as makeAskTool, a2 as makeAssignTool, a3 as makeAwaitTasksTool, a4 as makeCollabDebugTool, a5 as makeDirectorSessionFactory, a6 as makeFleetEmitTool, a7 as makeFleetHealthTool, a8 as makeFleetSessionTool, a9 as makeFleetStatusTool, aa as makeFleetUsageTool, ab as makeRollUpTool, ac as makeSpawnTool, ad as makeTerminateTool, ae as makeWorkCompleteTool, af as rosterSummaryFromConfigs } from '../null-fleet-bus-
|
|
3
|
-
import { A as AgentDefinition } from '../multi-agent-coordinator-
|
|
4
|
-
export { T as AGENT_TOOL_PRESETS, b as AgentBudgetTier, c as AgentCapability, d as AgentPhase, e as DEFAULT_DISPATCH_ROLE, a as DefaultMultiAgentCoordinator, f as DispatchCandidate, D as DispatchClassifier, g as DispatchMethod, h as DispatchOptions, i as DispatchResult, H as HEAVY_BUDGET, L as LIGHT_BUDGET, M as MEDIUM_BUDGET, j as MultiAgentCoordinatorOptions, k as dispatchAgent, m as makeLLMClassifier, s as scoreAgents } from '../multi-agent-coordinator-
|
|
5
|
-
export { h as AgentFactory, i as AgentFactoryResult, j as AgentRunnerOptions, k as BudgetExceededError, l as BudgetKind, m as BudgetLimits, n as BudgetNegotiationMode, o as BudgetThresholdDecision, p as BudgetThresholdHandler, q as BudgetThresholdSignal, r as BudgetUsage, F as FleetBus, s as FleetEvent, t as FleetHandler, u as FleetUsage, v as FleetUsageAggregator, w as SubagentBudget, x as SubagentUsageSnapshot, y as makeAgentSubagentRunner } from '../agent-subagent-runner-
|
|
6
|
-
export { I as InMemoryAgentBridge, a as InMemoryBridgeTransport, c as createMessage } from '../agent-bridge-
|
|
1
|
+
export { b as BrainArbiter, B as BrainDecision, d as BrainDecisionOption, e as BrainDecisionQueue, a as BrainDecisionRequest, f as BrainDecisionSource, g as BrainFallback, h as BrainRisk, D as DefaultBrainArbiter, i as DefaultBrainArbiterOptions, H as HumanEscalatingBrainArbiter, O as ObservableBrainArbiter, j as formatHumanPrompt } from '../brain-Dfv4Y82E.js';
|
|
2
|
+
export { A as ACP_AGENTS, a as AGENTS_BY_PHASE, b as AGENT_CATALOG, c as ALL_AGENT_DEFINITIONS, d as ALL_FLEET_AGENTS, e as AUDIT_LOG_AGENT, f as AutoExtendCeiling, g as AutoExtendPolicy, B as BUG_HUNTER_AGENT, h as BugFinding, C as CollabBudgetConfig, i as CollabBudgetOverrides, j as CollabBudgetWarningPayload, k as CollabDebugReport, l as CollabSession, m as CollabSessionOptions, n as CreateDelegateToolOptions, o as CriticConcern, p as CriticEvaluation, D as DEFAULT_DIRECTOR_PREAMBLE, q as DEFAULT_SUBAGENT_BASELINE, r as DelegateHost, s as Director, t as DirectorAlert, u as DirectorAlertLevel, v as DirectorCancelCollabPayload, w as DirectorPromptParts, x as DirectorSessionFactory, y as DirectorSessionFactoryOptions, F as FLEET_ROSTER, z as FLEET_ROSTER_BUDGETS, E as FLEET_ROSTER_WITHACP, G as FleetCostCapError, H as FleetManager, I as FleetManagerOptions, J as FleetRosterBudget, K as FleetSpawnBudgetError, L as ICoordinator, M as IFleetManager, N as LargeAnswerStore, O as NULL_FLEET_BUS, R as REFACTOR_PLANNER_AGENT, P as RefactorPhase, Q as RefactorPlan, S as SECURITY_SCANNER_AGENT, T as SharedFileEntry, U as SharedFileSnapshot, V as SubagentPromptParts, W as applyRosterBudget, X as attachAutoExtend, Y as composeDirectorPrompt, Z as composeSubagentPrompt, _ as createDelegateTool, $ as getAgentDefinition, a0 as makeAskResultTool, a1 as makeAskTool, a2 as makeAssignTool, a3 as makeAwaitTasksTool, a4 as makeCollabDebugTool, a5 as makeDirectorSessionFactory, a6 as makeFleetEmitTool, a7 as makeFleetHealthTool, a8 as makeFleetSessionTool, a9 as makeFleetStatusTool, aa as makeFleetUsageTool, ab as makeRollUpTool, ac as makeSpawnTool, ad as makeTerminateTool, ae as makeWorkCompleteTool, af as rosterSummaryFromConfigs } from '../null-fleet-bus-D09hMzFQ.js';
|
|
3
|
+
import { A as AgentDefinition } from '../multi-agent-coordinator-51LvnXkD.js';
|
|
4
|
+
export { T as AGENT_TOOL_PRESETS, b as AgentBudgetTier, c as AgentCapability, d as AgentPhase, e as DEFAULT_DISPATCH_ROLE, a as DefaultMultiAgentCoordinator, f as DispatchCandidate, D as DispatchClassifier, g as DispatchMethod, h as DispatchOptions, i as DispatchResult, H as HEAVY_BUDGET, L as LIGHT_BUDGET, M as MEDIUM_BUDGET, j as MultiAgentCoordinatorOptions, k as dispatchAgent, m as makeLLMClassifier, s as scoreAgents } from '../multi-agent-coordinator-51LvnXkD.js';
|
|
5
|
+
export { h as AgentFactory, i as AgentFactoryResult, j as AgentRunnerOptions, k as BudgetExceededError, l as BudgetKind, m as BudgetLimits, n as BudgetNegotiationMode, o as BudgetThresholdDecision, p as BudgetThresholdHandler, q as BudgetThresholdSignal, r as BudgetUsage, F as FleetBus, s as FleetEvent, t as FleetHandler, u as FleetUsage, v as FleetUsageAggregator, w as SubagentBudget, x as SubagentUsageSnapshot, y as makeAgentSubagentRunner } from '../agent-subagent-runner-DukQLUcS.js';
|
|
6
|
+
export { I as InMemoryAgentBridge, a as InMemoryBridgeTransport, c as createMessage } from '../agent-bridge-mOxbpFcg.js';
|
|
7
7
|
import '../context-CNRYfhUv.js';
|
|
8
8
|
import 'node:events';
|
|
9
9
|
import '../director-state-BfeCUbmk.js';
|
|
10
|
-
import '../config-
|
|
10
|
+
import '../config-BSU-6vah.js';
|
|
11
11
|
import '../models-registry-B6_KfS65.js';
|
|
12
|
-
import '../index-
|
|
12
|
+
import '../index-DIKEcfgC.js';
|
|
13
13
|
import '../logger-B63L5bTg.js';
|
|
14
|
-
import '../pipeline-
|
|
14
|
+
import '../pipeline-BqiA_UMr.js';
|
|
15
15
|
import '../observability-D-HZN_mF.js';
|
|
16
16
|
import '../permission-BDv7z0mk.js';
|
|
17
17
|
import '../retry-policy-BcmuT_V0.js';
|
|
@@ -3487,6 +3487,109 @@ Working rules:
|
|
|
3487
3487
|
"cloud cost"
|
|
3488
3488
|
]
|
|
3489
3489
|
}
|
|
3490
|
+
},
|
|
3491
|
+
{
|
|
3492
|
+
config: {
|
|
3493
|
+
id: "tech-stack",
|
|
3494
|
+
name: "Tech Stack Validator",
|
|
3495
|
+
role: "tech-stack",
|
|
3496
|
+
tools: ["search", "fetch", "read", "grep", "glob", "outdated", "audit", "json"],
|
|
3497
|
+
prompt: `You are the Tech Stack Validator \u2014 a single-shot validation agent that fires
|
|
3498
|
+
before any package, library, or framework choice is committed.
|
|
3499
|
+
|
|
3500
|
+
Your ONLY job: verify that a technology choice is current, real, and not obsolete.
|
|
3501
|
+
You are the "this isn't code, this is 10-year-old technology" agent. Intervene
|
|
3502
|
+
hard when the LLM hallucinates a version number or suggests dead tech.
|
|
3503
|
+
|
|
3504
|
+
## Critical rules
|
|
3505
|
+
|
|
3506
|
+
1. **Verify existence.** Search npm registry (fetch https://registry.npmjs.org/<pkg>/latest)
|
|
3507
|
+
or web search. A package that doesn't exist = hallucination.
|
|
3508
|
+
|
|
3509
|
+
2. **Check latest version.** Never trust any version number from the model. Always
|
|
3510
|
+
fetch the actual latest stable version from npm or the project's release page.
|
|
3511
|
+
|
|
3512
|
+
3. **Reject dead packages.** No release in >2 years + unresolved critical issues =
|
|
3513
|
+
dead. Suggest a maintained replacement.
|
|
3514
|
+
|
|
3515
|
+
4. **Reject prehistoric tech.** Any package/pattern superseded \u22655 years ago is
|
|
3516
|
+
REJECTED. Key blocklist:
|
|
3517
|
+
- axios / node-fetch / got / request \u2192 native fetch (Node 18+)
|
|
3518
|
+
- moment \u2192 date-fns / luxon / Temporal
|
|
3519
|
+
- jQuery (new projects) \u2192 vanilla DOM / React
|
|
3520
|
+
- Gulp / Grunt \u2192 tsup / esbuild / vite
|
|
3521
|
+
- CoffeeScript / Flow \u2192 TypeScript
|
|
3522
|
+
- Bluebird \u2192 native Promises
|
|
3523
|
+
- crypto-js \u2192 node:crypto / Web Crypto
|
|
3524
|
+
- Bower \u2192 npm/pnpm
|
|
3525
|
+
- underscore \u2192 lodash or native ES2020+
|
|
3526
|
+
|
|
3527
|
+
5. **The intervention phrase.** When rejecting on age grounds, you MUST output
|
|
3528
|
+
exactly: "This isn't code, this is X-year-old technology." where X =
|
|
3529
|
+
current year \u2212 the year the technology was made obsolete. Follow with
|
|
3530
|
+
what replaced it and a one-step migration path.
|
|
3531
|
+
|
|
3532
|
+
6. **Prefer built-in over third-party.** Check Node 22+ native APIs first:
|
|
3533
|
+
node:test, node:sqlite, fetch, WebSocket, Web Crypto \u2014 all built-in.
|
|
3534
|
+
|
|
3535
|
+
## Workflow (single-shot \u2014 do NOT loop)
|
|
3536
|
+
|
|
3537
|
+
1. Receive the proposed package + version
|
|
3538
|
+
2. Search npm registry or web for the latest version
|
|
3539
|
+
3. Check age, maintenance status, deprecation
|
|
3540
|
+
4. Output verdict: APPROVED (with exact version) or REJECTED (with replacement)
|
|
3541
|
+
|
|
3542
|
+
## Output format
|
|
3543
|
+
|
|
3544
|
+
### Tech Stack Validation \u2014 <package>
|
|
3545
|
+
|
|
3546
|
+
**Status**: APPROVED | REJECTED
|
|
3547
|
+
|
|
3548
|
+
**Package**: <name>@<version>
|
|
3549
|
+
**Source**: <URL you checked \u2014 npm registry, GitHub, web search>
|
|
3550
|
+
**Age**: <first release> \u2014 <last release date>
|
|
3551
|
+
**Verdict**: 1\u20132 sentence explanation.
|
|
3552
|
+
|
|
3553
|
+
When REJECTED on age:
|
|
3554
|
+
**"This isn't code, this is X-year-old technology."**
|
|
3555
|
+
**Replaced by**: <modern alternative>
|
|
3556
|
+
**Migration**: <one concrete step>
|
|
3557
|
+
|
|
3558
|
+
When APPROVED:
|
|
3559
|
+
**Install**: pnpm add <name>@^<major>.<minor>.0`
|
|
3560
|
+
},
|
|
3561
|
+
budget: {
|
|
3562
|
+
timeoutMs: 6e4,
|
|
3563
|
+
maxIterations: 5,
|
|
3564
|
+
maxToolCalls: 20,
|
|
3565
|
+
maxTokens: 4e4,
|
|
3566
|
+
maxCostUsd: 0.1
|
|
3567
|
+
},
|
|
3568
|
+
capability: {
|
|
3569
|
+
phase: "meta",
|
|
3570
|
+
summary: "Single-shot tech stack validator: checks npm for latest versions, rejects dead/obsolete packages, enforces modern alternatives.",
|
|
3571
|
+
keywords: [
|
|
3572
|
+
"tech stack",
|
|
3573
|
+
"version",
|
|
3574
|
+
"package",
|
|
3575
|
+
"library",
|
|
3576
|
+
"framework",
|
|
3577
|
+
"dependency",
|
|
3578
|
+
"install",
|
|
3579
|
+
"upgrade",
|
|
3580
|
+
"latest",
|
|
3581
|
+
"npm",
|
|
3582
|
+
"pnpm add",
|
|
3583
|
+
"outdated",
|
|
3584
|
+
"obsolete",
|
|
3585
|
+
"deprecated",
|
|
3586
|
+
"what version",
|
|
3587
|
+
"which package",
|
|
3588
|
+
"check version",
|
|
3589
|
+
"verify version",
|
|
3590
|
+
"is this current"
|
|
3591
|
+
]
|
|
3592
|
+
}
|
|
3490
3593
|
}
|
|
3491
3594
|
];
|
|
3492
3595
|
|